是一個秒表
;設置數字變量
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
燒入到單片機里面不顯示,為什么啊,謝謝了。。。。。!
|