sorry maat, ik ben nu bezig aan een super moeilijke vak. Ik zit nu letterlijk met 2 verschillende dingen bezig.
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 R1,#000H ;seconden op 0 (hoef je maar 1x uit te voeren
MOV R2,#000H ;minuten op 0
MOV R3,#000H ;uren op 0
MOV P0,#00000001B ;P0 op 1 zetten, Po wordt gebruikt voor het looplicht
MAIN: LCALL KLOK
LJMP MAIN
KLOK: JNB TF0,KLOK ;als TF0=0, spring naar klok
CLR TF0
MOV A,R1
ANL A,#00000001B
JZ EVEN ;als bit0=0, dan is het een even getal, spring dan naar routine EVEN
JNZ ONEVEN ;anders spring naar ONEVEN
RET
EVEN: MOV A,P0
RL A
MOV P0,A
RET
ONEVEN: MOV A,P0
RR A
MOV P0,A
RET
optellen:
INC R1
CJNE R1,#60d,weergave ; maximumwaarde = 60 seconden
MOV R1,#0
INC R2 ; verhogen van de minuten
CJNE R2,#60d,weergave ; maximumwaarde = 60 minuten
MOV R2,#0
INC R3 ; verhogen van de uren
CJNE R3,#24d,weergave ; maximumwaarde = 24 uren
MOV R3,#0
RET
weergave:
MOV P1,R1; seconden worden weergegeven op poort0
MOV P2,R2; minuten worden weergegeven op poort1
MOV P3,R3; uren worden weergegeven op poort2
RET
END; einde van het progamma
Dit is mijn volledige opgave, ik weet alleen niet of dat het echt marcheer. Ik kan dat moeilijk zien op mijn simulatie