//此程序功用是:手动计数器,当按键按下时,计数加一,液晶显现一次(加一的成果)。
//源程序和proteus下载地址:http://proteus.5d6d.com/thread-9003-1-1.html
ORG0000H
LJMPSTART
ORG0030H
START:MOVDPTR,#TABLE ;设置段码首地址
MOVR0,#00H ;计数初值存R0
MOVP0,#3FH
MOVP2,#3FH ;复位时数码管显现0
S1:INCR0
CJNER0,#100,S2
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