team "kugelsortieranlage" martin plenz mt4 alexander merkel mt4
TRANSCRIPT
Team "Kugelsortieranlage"
Martin Plenz MT4 Alexander Merkel MT4
Aufgabenstellung
d ≤ Referenzdurchmesser d > Referenzdurchmesser
unsortierte Kugeln
Blockschaltbild
Schaltplan
Glättungskondensator
Vorwiderstand / Empfänger
Vorwiderstand / Sender
Schutzfunktion für P1.1
Schaltplan
IR-Fototransistor IR-Diode LD271
Struktogramm
Quellcode;------------------------------------------------------------------------------;Programmbeschreibung;------------------------------------------------------------------------------;;Programm: Durch einen EIN-Taster (P1.2) wird das System gestartet.; Die Statusanzeige (Diode P3.3) leuchtet und zeigt die; Betriebsbereitschaft an. Erfolgt nun eine Unterbrechung; der Lichtschranke (P4.0) schaltet die Weiche (Servomotor P1.1); für ca. 1 Sekunde um und fährt danach wieder in die; Ausgangsstellung zurück. Durch einen AUS-Taster (P1.3) wird; die Abfrage der Lichtschranke beendet und die Dioden P3.3; wird ausgeschaltet. ; ;Datum: 09.02.03 ;Programmiert: Martin Plenz, Alexander Merkel;;Verwendete Einspruenge:;;Verwendete Unterprogramme: ;;Verwendete Register und Variable:;Registerbank(0) ; ;Kommentar: ;;Aenderungen:;Datum:
Quellcode;------------------------------------------------------------------------------;Initialisierungsteil für allgemeine Konstanten;------------------------------------------------------------------------------ Periode_low EQU 0E0H ;legt die Periodendauer fest 20msPeriode_high EQU 0B1H ;45536 = 0B1E0HPWM_links_low EQU 0B0H ;Compare Wert 1.36ms = 18.64msPWM_links_high EQU 0FAH ;Compare Wert FAB0HPWM_rechts_low EQU 02AH ;Compare Wert 1.75ms = 18.25 ms PWM_rechts_high EQU 0F9H ;Compare Wert F8F8HOeffnungszeit EQU 005H ;Legt die Öffnungszeit der Weiche fest CSEG AT 0H ;Legt absolute Codesegmentadresse auf 0hjmp INIT ;------------------------------------------------------------------------------;Initialisierungsteil für On-Chip Peripherie;------------------------------------------------------------------------------ ORG 100H ;Programmstart bei 100HINIT: mov T2CON,#00010001B ;Einstellungen Timer2: ;Timer mit f=f(osz)/12 ;Mode 0 ->Reload bei Ueberlaufmov CCEN,#00001000B ;Compare Mode des CC1 freigebenmov CRCL,#Periode_low ;Low Byte Compare Reload Capturemov CRCH,#Periode_high ;High Byte Compare Reload Capture
Quellcode
;------------------------------------------------------------------------------;Programmschleife;------------------------------------------------------------------------------ ANFANG:setb P3.3 ;Diode P3.3 ausSCHLEIFE1:jnb P1.2,EIN ;Taster zum Einschalten abfragenjmp SCHLEIFE1 ;------------------------------------------------------------------------------ EIN:mov CCL1,#PWM_links_low ;Die Werte für Stellung Rechts werdenmov CCH1,#PWM_links_high ;ins Compare Capture Register geschrieben.clr P3.3 ;Diode P3.3 einschaltenSCHLEIFE2:jnb P1.3,ANFANG ;Taster zum Ausschalten abfragenjnb P4.0,WEICHE_AUF ;Lichtschrankenabfragejmp SCHLEIFE2
QuellcodeWEICHE_AUF:mov CCL1,#PWM_rechts_low ;Die Werte für Stellung Rechts werden mov CCH1,#PWM_rechts_high ;ins Compare Capture Register geschrieben. mov R1,#0FFH ;Warteschleife von ca. 1,0 Sekundenmov R2,#0FFHmov R3,#OeffnungszeitWARTE: djnz R1,WARTEmov R1, #0FFHdjnz R2,WARTEmov R2, #0FFHmov R1, #0FFHdjnz R3,WARTE mov CCL1,#PWM_links_low ;Die Werte für Stellung Links werdenmov CCH1,#PWM_links_high ;ins Compare Capture Register geschrieben.jmp SCHLEIFE2 ;------------------------------------------------------------------------------ end
Wir Danken für Ihre Aufmerksamkeit!