;================================================================ LedPort Equ P2 SegPort Equ P0 Timer1 Equ 0FB23H Sec400Chg Bit 30H Sec10Chg Bit 31H SecChg Bit 32H MinChg Bit 33H Sec400 Data 34H Sec10 Data 35H Second Data 36H Temp Data 37H Relieve Data 38H Temp1 Data 39H ;================================================================ Org 0000H Ajmp Main ;================================================================ InitSysT: Mov Relieve,#50 Mov TMod,#00100000B Mov TL1,#Low(Timer1) Mov TH1,#High(Timer1) Setb EA Setb ET1 Setb TR1 Mov Sec400,#40 Mov Sec10,#10 Mov Second,#60 Clr Sec400Chg Clr Sec10Chg Clr SecChg Clr MinChg Ret ;================================================================ Org 001BH Mov TL1,#Low(Timer1) Mov TH1,#High(TImer1) AJmp CTC1Entry CTC1Entry: Setb Sec400Chg Djnz Sec400,T1IntOut Mov Sec400,#40 Setb Sec10Chg Inc Sec10HEX Djnz Sec10,T1IntOut Mov Sec10,#10 Setb SecChg Djnz Second,T1IntOut Mov Second,#60 Setb MinChg T1IntOut: RetI ;================================================================ Delay: Mov R6,#40 Delay1: Mov R7,#0 Delay2: Djnz R7,Delay2 Djnz R6,Delay1 Ret ;================================================================ SegDisplay: Mov Dptr,#Table SegLoop: Movc A,@A+Dptr Mov SegPort,A Ret ;---------------------------------------------------------------- Table: DB 11000000B DB 11111001B DB 10100100B DB 10110000B DB 10011001B DB 10010010B DB 10000010B DB 11011000B DB 10000000B DB 10010000B ;================================================================ Main: MOv Temp1,#11111110B Mov Temp,#0 Acall InitSysT MainLoop0: Jbc Sec400Chg,DoSec400 MainLoop1: Jbc Sec10Chg,DoSec10 MainLoop2: Jbc SecChg,DoSecond MainLoop3: Jbc MinChg,DoMinute Ajmp MainLoop0 DoSec400: Sjmp MainLoop1 DoSec10: Mov A,Temp Acall SegDisplay Djnz Relieve,L3 Mov Relieve,#50 Inc Temp Mov A,Temp Cjne A,#9,MainLoop2 Mov Temp,#0 L3: Sjmp MainLoop2 DoSecond: Mov LedPort,Temp1 Mov A,Temp1 Rl A Mov Temp1,A Sjmp MainLoop3 DoMinute: Sjmp MainLoop0 ;================================================================ End