; Lauflicht mit Programmauswahl ; und Geschwindigkeitsregelung über Poti ; erstellt 12_2005 von T.Patek .title "Lauflicht" .vers "ST6225" .romsize 4 .input "6215_REG.ASM" shift .def 84H acopy .def 85H psi .EQU 3 dout .EQU 4 tout .EQU 5 eti .EQU 6 tmz .EQU 7 gen .EQU 4 pds .EQU 4 sta .EQU 5 eoc .EQU 6 .ORG 0FFEH JP START .ORG 0080H START RETI LDI wdr, 0FFH ;Definieren PortB als Ausgang LDI ddrb, 0FFH ;PortC als dig. Eingang, PortA als analog. Eing. LDI orb, 00H LDI ddrc, 00H LDI orc, 00H LDI drc, 00H LDI ddra, 07FH LDI ora, 080H LDI dra,080H LDI shift, 0FEH loop LDI wdr, 0FFH LD a,drc ;Abfrage Port C -> Programmauswahl ANDI a,0F0H ;Fehlervermeidung, nur Leitungen 4-7 als PINs verwirklicht CPI a,10000000b JRZ marke LDI wdr, 0FFH ;Laufprogramm 1 LDI drb,01111110b ;Setzen einer LED mit 0 (negative Logik) CALL waste JP weiter ;---------- marke JP loop2 ;marke wird verwendet damit kein ;overflow durch den begrenzten ;---------- ;Sprung JRZ entsteht weiter LDI drb,10111101b CALL waste LDI drb,11011011b CALL waste LDI drb,11100111b CALL waste LDI drb,11011011b CALL waste LDI drb,10111101b CALL waste JP loop loop2 LDI wdr, 0FFH ;Laufprogramm 2 1.Teil, Runterlaufen LDI a, 0FFH ADDI a,1 LD a,shift LD drb,a CALL waste RLC a JRNC back LD shift,a JP loop2 LDI wdr, 0FFH back LDI drb,0BFH ;2.Teil, wieder hochlaufen CALL waste LDI drb,0DFH CALL waste LDI drb,0EFH CALL waste LDI drb,0F7H CALL waste LDI drb,0FBH CALL waste LDI drb,0FDH CALL waste LDI shift, 0FEH JP loop waste ;Zeitschleife LD acopy,a SET sta,adcr ;Einlesen eines Wertes 25-255 über AD-Wandler adc JRR eoc,adcr,adc ;an PortA LD a,adr LD Y,a yloop LDI X,200 xloop LDI wdr, 0FFH DEC X JRNZ xloop DEC Y JRNZ yloop LD a,acopy RET