是一个秒表
;设置数字变量
BAIMIAO EQU 33H ;0.01位秒
HAOMIAO EQU 34H;0.01秒
MIAO EQU 35H;1秒
SHIMIAO EQU 36H;10秒
FEN EQU 37H;分
ORG 0000H
AJMP START
ORG 0030H
;初始化
START: CLR C
CLR P2.2
CLR P2.3
CLR P2.4
MOV BAIMIAO,#0
MOV HAOMIAO,#0
MOV MIAO,#0
MOV SHIMIAO,#0
MOV FEN,#0
MOV DPTR,#TABLE
MOV A,#00H
MOVC A,@A+DPTR
LCALL XIANSHI
LCALL KAISHI ;显示00000
JIAYI:LCALL YANSHI
INC BAIMIAO
LCALL XIANSHI
LCALL ANJIAN
MOV A, BAIMIAO ;判断0.01秒位是否进位
CLR C
SUBB A,#10
JNZ JIAYI
INC HAOMIAO
CLR BAIMIAO
MOV A, HAOMIAO ;判断0.1秒位是否进位
CLR C
SUBB A,#10
JNZ JIAYI
INC MIAO
CLR HAOMIAO
LCALL FENGMINGQI1
MOV A, MIAO ;判断1秒位是否进位
CLR C
SUBB A,#10
JNZ JIAYI
INC SHIMIAO
CLR MIAO
MOV A, MIAO ;判断10秒位是否进位
CLR C
SUBB A,#6
JNZ JIAYI
INC FEN
CLR SHIMIAO
MOV A, MIAO ;判断分是否进位
CLR C
SUBB A,#10
JNZ JIAYI
JINGAO: ;溢出警告
LCALL FENGMINGQI2
MOV A,#00H ;判断是否有清零指令
MOV A,P3
ANL A,#04H
JZ START
AJMP JINGAO ;判断复位
SJMP $
ANJIAN:MOV A,#00H ;判断是否有清零指令
MOV A,P3
ANL A,#04H
JZ START
MOV A,#0 ;判断开始指令
MOV A,P3
ANL A,#01H
JNZ KAISHI
MOV A,#00H ;判断是否有停止指令
MOV A,P3
CLR C
ANL A,#02H
JNZ JIXU
ACALL XIANSHI
AJMP ANJIAN
JIXU:
RET
XIANSHI:
MOV A, BAIMIAO ;判断0.01秒位是否进位
CLR C
SUBB A,#10
JZ BUXIANSHI
DL2:MOV R6,#30
MOV DPTR,#TABLE
MOV A,BAIMIAO
MOVC A,@A+DPTR
CLR P2.2
CLR P2.3
CLR P2.4
MOV P0,A
ACALL DELAY
MOV DPTR,#TABLE
MOV A,HAOMIAO
MOVC A,@A+DPTR
SETB P2.2
CLR P2.3
CLR P2.4
MOV P0,A
ACALL DELAY
MOV DPTR,#TABLE
MOV A,MIAO
MOVC A,@A+DPTR
CLR P2.2
SETB P2.3
CLR P2.4
MOV P0,A
ACALL DELAY
MOV DPTR,#TABLE
MOV A,SHIMIAO
MOVC A,@A+DPTR
SETB P2.2
SETB P2.3
CLR P2.4
MOV P0,A
ACALL DELAY
MOV DPTR,#TABLE
MOV A,FEN
MOVC A,@A+DPTR
CLR P2.2
CLR P2.3
CLR P2.4
MOV P0,A
ACALL DELAY
DJNZ R6,DL2
BUXIANSHI:
RET
KAISHI:
MOV A,#0
MOV A,P3
ANL A,#01H
JNZ KAISHI
RET
YANSHI:;误差 0us ;延时0.01s
MOV R7,#01H
DL1:
MOV R4,#26H
DL0:
MOV R5,#82H
DJNZ R5,$
DJNZ R4,DL0
DJNZ R7,DL1
RET
FENGMINGQI1:MOV R3,#20 ;响0.1s
JISHU:
SETB P1.0
ACALL DELAY
CLR P1.0
DJNZ R3,JISHU
RET
FENGMINGQI2: MOV R2,#50 ;响5s
JISHU2:
ACALL FENGMINGQI1
DJNZ R3, JISHU2
DELAY: ;5ms
MOV R4,#013H
DL3:
MOV R5,#082H
DJNZ R5,$
DJNZ R4,DL3
RET
TABLE:DB 0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH, 087H,0FFH,0EFH;0,1,2,3,4,5,6,7,8,9
END
烧入到单片机里面不显示,为什么啊,谢谢了!!!!!!!
|