120 likes | 226 Views
Team "Kugelsortieranlage". Martin Plenz MT4 Alexander Merkel MT4. Aufgabenstellung. unsortierte Kugeln. d ≤ Referenzdurchmesser. d > Referenzdurchmesser. Blockschaltbild . Schaltplan. Schutzfunktion für P1.1. Vorwiderstand / Empfänger.
E N D
Team "Kugelsortieranlage" Martin Plenz MT4 Alexander Merkel MT4
Aufgabenstellung unsortierte Kugeln d ≤ Referenzdurchmesser d > Referenzdurchmesser
Schaltplan Schutzfunktion für P1.1 Vorwiderstand / Empfänger Glättungskondensator Vorwiderstand / Sender
Schaltplan IR-Fototransistor IR-Diode LD271
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 20ms Periode_high EQU 0B1H ;45536 = 0B1E0H PWM_links_low EQU 0B0H ;Compare Wert 1.36ms = 18.64ms PWM_links_high EQU 0FAH ;Compare Wert FAB0H PWM_rechts_low EQU 02AH ;Compare Wert 1.75ms = 18.25 ms PWM_rechts_high EQU 0F9H ;Compare Wert F8F8H Oeffnungszeit EQU 005H ;Legt die Öffnungszeit der Weiche fest CSEG AT 0H ;Legt absolute Codesegmentadresse auf 0h jmp INIT ;------------------------------------------------------------------------------ ;Initialisierungsteil für On-Chip Peripherie ;------------------------------------------------------------------------------ ORG 100H ;Programmstart bei 100H INIT: mov T2CON,#00010001B ;Einstellungen Timer2: ;Timer mit f=f(osz)/12 ;Mode 0 ->Reload bei Ueberlauf mov CCEN,#00001000B ;Compare Mode des CC1 freigeben mov CRCL,#Periode_low ;Low Byte Compare Reload Capture mov CRCH,#Periode_high ;High Byte Compare Reload Capture
Quellcode ;------------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------------ ANFANG: setb P3.3 ;Diode P3.3 aus SCHLEIFE1: jnb P1.2,EIN ;Taster zum Einschalten abfragen jmp SCHLEIFE1 ;------------------------------------------------------------------------------ EIN: mov CCL1,#PWM_links_low ;Die Werte für Stellung Rechts werden mov CCH1,#PWM_links_high ;ins Compare Capture Register geschrieben. clr P3.3 ;Diode P3.3 einschalten SCHLEIFE2: jnb P1.3,ANFANG ;Taster zum Ausschalten abfragen jnb P4.0,WEICHE_AUF ;Lichtschrankenabfrage jmp SCHLEIFE2
Quellcode WEICHE_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 Sekunden mov R2,#0FFH mov R3,#Oeffnungszeit WARTE: djnz R1,WARTE mov R1, #0FFH djnz R2,WARTE mov R2, #0FFH mov R1, #0FFH djnz R3,WARTE mov CCL1,#PWM_links_low ;Die Werte für Stellung Links werden mov CCH1,#PWM_links_high ;ins Compare Capture Register geschrieben. jmp SCHLEIFE2 ;------------------------------------------------------------------------------ end