标题: 关于7SEG-BCD的问题 [打印本页]

作者: 电子狗    时间: 2016-6-3 18:13
标题: 关于7SEG-BCD的问题
简易计分器 ,proteus仿真数码管用的是7SEG-BCD,实物中没有这个现在想换成7SEG-MPX2,但是不知该如何修改程序,希望有大神帮忙看看








ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:  MOV 50H, #00H ;BCD分值存储单元
       MOV 51H, #00H ;HEX分值存储单元(减1操作处理单元)
       MOV P3, #00H ;显示初始状态清零
LOOP:  MOV P2, #0FFH
       MOV A, P2 ;   
       JNB ACC.3, ADD3
       JNB ACC.2, ADD2 ;判断是什么操作
       JNB ACC.1, ADD1 ;
       JNB ACC.0, SUBB1         








       SJMP LOOP
       ORG 0050H
ADD3:  MOV A, 51H
       ADD A, #03H ;为减1做准备
       MOV 51H, A
       MOV A, 50H ;加2程序处理
       ADD A, #03H
       DA A
       MOV P3, A
       MOV 50H, A
       LCALL DELAY
       SJMP LOOP

ADD2:  MOV A, 51H
       ADD A, #02H ;为减1做准备
       MOV 51H, A
       MOV A, 50H ;加2程序处理
       ADD A, #02H
       DA A
       MOV P3, A
       MOV 50H, A
       LCALL DELAY
       SJMP LOOP   ;加1分分支程序
ADD1:  MOV A, 51H
       ADD A, #01H ;为减1做准备
       MOV 51H, A
       MOV A, 50H ;加1程序处理
       ADD A, #01H
       DA A
       MOV P3, A
       MOV 50H, A
       LCALL DELAY
       SJMP LOOP
SUBB1: MOV A, 51H
       CJNE A, #00H, DEC1 ;如果减到0,将不再减1
       AJMP LOOP
DEC1:  DEC A
       MOV 51H, A
       MOV B, #10
       DIV AB
       SWAP A
       ORL A, B
       MOV P3, A

       MOV 50H, A
       LCALL DELAY
       AJMP LOOP
       ORG 0200H
       DELAY:  MOV  R5, #10 ;0.2S延时
D1:    MOV  R6, #40
D2:    MOV  R7, #248
       DJNZ  R7, $
       DJNZ  R6, D2
       DJNZ  R5, D1
       RET
       END






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1