51单片机汇编语言按键控制数码管加1加到999

自己写了一个按键控制数码管程序,按键一次数码管显示加一,加到255后无法再加了,到了这个地步我知道肯定要多加一个寄存器来计数,怎么想也想不出加了寄存器以后要干什么活,我试过判断第一个寄存器是否等99是清零寄存器第二个寄存器加一然后返回到第一个寄存器,可是这样不行,大神们帮帮我吧,最后贴出程序咯,最好不要用中断,因为我没学,基础很重要!谢谢啦

思路是对的,细节描述有问题,算法描述要严谨。为什么要99时清零啊,这可能就是错误的地方了。
系统初始化时,清除使用到的寄存器!!然后,当需要加1时做如下动作

寄存器a = a+1
如果寄存器a == 100,{寄存器b=b+1;寄存器a = 0}

这样就可以了,b中的1代表100,a中的1就是1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-10
检测到按键:
mov a,30h

inc a
mov 30h,a
cjne a,#100,bj1
bj1: jc bj2
mov 30h,#0
mov a,31h
inc a
mov 31h,a
bj2: 然后把31h处理到第一位显示,30h值处理到后2位显示本回答被提问者采纳
第2个回答  2013-06-10
.
你可能用的是单字节加法程序,
单字节最大只能表示到255,
999需要用双字节表示了,
所以你得改用双字节加法程序。
第3个回答  2013-06-10
楼主 ,你定义的变量最大值应该是255,如果你用C的话 直接在变量前面加一个unsigned,这样他的最大值就增加了,可以达到999
相似回答