//计数器(0-100)
//此程序功能是:手动计数器,当按键按下时,计数加一,液晶显示一次(加一的结果)。
ORG 00H
LJMP START
ORG 30H
START: MOV DPTR,#TABLE ;设置段码首地址
MOV R0,#00H ;计数初值存R0
MOV P0,#3FH
MOV P2,#3FH ;复位时数码管显示0
S1: INC R0
CJNE R0,#100,S2 ;到100的话重新归零
MOV R0,#00H
S2: JB P3.3,$ ;在此死循环等待按键按下
LCALL DELAY ;消除抖动延时
JB P3.3,S2
S3: MOV A,R0
MOV B,#10
DIV AB ;分离计数值的个位和十位
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
JB P3.3,S1 ;等待按键拾起
LJMP S3
DELAY: MOV R5,#20H ;延时10ms
D1: MOV R6,#250
DJNZ R6,$
DJNZ R5,D1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H ;0-9七段码值
DB 6DH,7DH,07H,7FH,6FH
END
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』