这几天,一直在写电子秒表程序,今天终于调试出来了!感觉还不错,很好!误差非常小,很适合做电子时钟
源程序的一个小模块,现把源代码上传,和大家一起分享一下!!
ORG 0000H
SJMP START
ORG 000BH
LJMP TIME0
ORG 001BH
LJMP TIME1
ORG 0045H
START:MOV SP,#60H
MOV 40H,#0
MOV 41H,#0
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
SETB EA
SETB ET0
SETB ET1
MOV TMOD,#11H
MOV TL1,#80H
MOV TH1,#0C1H
MOV TL0,#0B0H
MOV TH0,#3CH
MOV R2,#20
SETB PT0
SETB P2.5
SETB TR0
SETB TR1
SJMP $
TIME0:PUSH ACC
PUSH PSW
MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ R2,BACK
MOV R2,#20
INC 40H
MOV A,40H
MOV B,#10
DIV AB
MOV 30H,A
MOV A,B
MOV 31H,A
MOV A,40H
CJNE A,#60,BACK
MOV 30H,#0
MOV 31H,#0
MOV 40H,#0
INC 41H
MOV A,41H
MOV B,#10
DIV AB
MOV 32H,A
MOV A,B
MOV 33H,A
MOV A,41H
CJNE A,#60,BACK
MOV 32H,#0
MOV 33H,#0
MOV 41H,#0
BACK:POP PSW
POP ACC
RETI
TIME1:PUSH ACC
PUSH PSW
MOV TL1,#80H
MOV TH1,#0C1H
MOV DPTR,#TAB1
MOV R0,#31H
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
SETB P2.0
CLR P2.3
LCALL DELAY
SETB P2.2
SETB P2.1
MOV R1,#30H
MOV A,@R1
MOVC A,@A+DPTR
SETB P2.3
MOV P0,A
SETB P2.0
CLR P2.2
LCALL DELAY
MOV DPTR,#TAB2
MOV A,33H
MOVC A,@A+DPTR
SETB P2.2
MOV P0,A
SETB P2.0
CLR P2.1
LCALL DELAY
MOV DPTR,#TAB1
MOV A,32H
MOVC A,@A+DPTR
SETB P2.1
MOV P0,A
CLR P2.0
LCALL DELAY
POP PSW
POP ACC
RETI
DELAY:MOV R7,#02H
DL:MOV R6,#0FFH
DL1:DJNZ R6,DL1
DJNZ R7,DL
RET
TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
TAB2:DB 40H,79H,24H,30H,19H
DB 12H,02H,78H,00H,10H
END
