//计数器(0-100)
//此程序功用是:手动计数器,当按键按下时,计数加一,液晶显现一次(加一的成果)。
ORG00H
LJMPSTART
ORG30H
START:MOVDPTR,#TABLE;设置段码首地址
MOVR0,#00H;计数初值存R0
MOVP0,#3FH
MOVP2,#3FH;复位时数码管显现0
S1:INCR0
CJNER0,#100,S2;到100的话从头归零
MOVR0,#00H
S2:JBP3.3,$;在此死循环等候按键按下
LCALLDELAY;消除颤动延时
JBP3.3,S2
S3:MOVA,R0
MOVB,#10
DIVAB;别离计数值的个位和十位
MOVCA,@A+DPTR
MOVP0,A
MOVA,B
MOVCA,@A+DPTR
MOVP2,A
JBP3.3,S1;等候按键捡起
LJMPS3
DELAY:MOVR5,#20H;延时10ms
D1:MOVR6,#250
DJNZR6,$
DJNZR5,D1
RET
TABLE:DB3FH,06H,5BH,4FH,66H;0-9七段码值
DB6DH,7DH,07H,7FH,6FH
END