ORG 0h LJMP start ORG 30h start: MOV SCON,#40h ; serieel kanaal van mode1 8-bit UART variabele baudrate instellen MOV TMOD,#22h ; instellen timer1 als 8-bit auto reload voor baudrategenerator ORL PCON,#80h ; baudrate verdubbelaar activeren MOV TH1,#243 ; 4800 baudrate MOV TL1,#243 ; 4800 baudrate SETB TR1 ; baudrategenerator activeren MOV P0,#00000001b MOV R0,#0 ; register voor de seconden van de klok MOV R1,#0 ; register voor de minuten van de klok MOV R2,#0 ; register voor de uren van de klok lus: MOV R4,#0 ; nog commentaar zetten klok: CLR TR0 ; de timer0 wordt eerst gewist voor de programma begint CLR TF0 ; wissen van de overflow vlag van timer0 MOV TH0,#37h MOV TL0,#37h ; startwaarde voor 200µs SETB TR0 ; timer0 starten MOV A, R1 ; de informatie van R1 wordt uitgegeven aan de accumulator ANL A, #00000001b JZ links ; sprong naar links JNZ rechts ; sprong naar rechts lus2: JNB TF0,$ ; wachten tot vlag van timer0 omhoog gaat DJNZ R4,klok ; -1 bit als R4 is niet 0 CALL optellen ; seconde bijtellen op klok LJMP lus ; volgende seconde afpassen optellen: INC R0 CJNE R0,#60d,weergave ; maximumwaarde = 60 seconden MOV R0,#0 INC R1 ; verhogen van de minuten CJNE R1,#60d,weergave ; maximumwaarde = 60 minuten MOV R1,#0 INC R2 ; verhogen van de uren CJNE R2,#24,weergave ; maximumwaarde = 24 uren MOV R2,#0 weergave: MOV P1,R0; seconden worden weergegeven op poort0 MOV P2,R1; minuten worden weergegeven op poort1 MOV P3,R2; uren worden weergegeven op poort2 RET; terugkeren naar het programma rechts: MOV A,P0 ; de informatie van poort0 wordt uitgegeven op de accumulator RR A ; rotate right accu, de looplicht gaat naar rechts bewegen MOV P0,A ; de informatie van de accumulator wordt uitgegeven op poort0 CALL lus2 ; oproepen van lus2 links: MOV A,P0 ; de informatie van poort0 wordt uitgegeven op de accumulator RL A ; rotate left accu, de looplicht gaat naar links bewegen MOV P0,A ; de informatie van de accumulator wordt uitgegeven op poort0 CALL lus2 ; oproepen van lus2 RET; terugkeren naar het programma END; einde van het progamma