51单片机汇编语言,按键控制数码管加一加到999,求帮助

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

不需要让寄存器加到255,程序可以这样处理:每一次按键都判断下个位寄存器否加到10,如果加到10了,就把个位寄存器清零,十位寄存器加1。再判断十位寄存器是否加到10,如果加到10了,就把十位寄存器清零,百位寄存器加1。依次类推,程序处理很简单
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-13
把程序发给我帮你修改(361222075@qq.com)本回答被提问者采纳

51单片机汇编语言按键控制数码管加一加到999
对于汇编:可以定义三个存储区,如30H、31H、32H,都是十进制的,按键按下时30H加1,当加到10时,31H加1,当31H加到10时,32H加1,即可 而显示函数可以放在主函数中,将三个存储区分别扫描送出去即可 对于C语言:定义char 型最大256不行,那就定义unsigned int 就够用了,按键按下就让它++,...

51单片机汇编语言按键控制数码管加1加到999
如果寄存器a == 100,{寄存器b=b+1;寄存器a = 0} 这样就可以了,b中的1代表100,a中的1就是1

c51单片机怎么用两个按键控制两个数码管的加减,加到99就好,求程序
1、首先先在proteus画出仿真图,方便仿真程序。2、接着来编写程序,先来写入头函数。2、根据自己在proteus画的图,定义一下管脚根据你的原理图进行编写。3、然后写一个延时函数,来调节流水灯的时间间隔延时时间自己定义。4、下图就是主函数,包括流水灯的反复循环和j流水灯的方向。5、检查没有错误,...

单片机C51实现按键一次数码管加1程序问题。高手进。
设计一个单片机C51程序,实现功能是,1、按KEY1只有红灯亮,KEY2只有黄灯亮,KEY3只有绿灯亮。2、开始右数码管显示0,每按KEY1一次数码管显示加1,至9后再循环。先已经编好程序,第一个实现,但第二个总弄不对。感觉问题很简单,就是差一点,高手帮我看一下。... 展开 #include "key.h"sbit LED_RED=P3^0;s...

51单片机按键控制数码管数据的加减
#02HSJMP T0DIST001:MOV P2,#01HT0DIS:MOV A,@R0MOVC A,@A+DPTRCPL AMOV P0,AINC SCANLEDMOV A,SCANLEDANL A,#01HMOV SCANLED,APOP ACCRETI;---LEDTAB1:DB 0C0H;"0"00HDB 0F9H;"1"01HDB 0A4H;"2"02HDB 0B0H;"3"03HDB 99H;"4"04HDB 92H;"5"05HDB 82H;...

51单片机按键控制数码管数字加减问题
void keyScan() \/\/1*5按键扫描函数 { P3 = P3 | 0xf8; \/\/P3高5位置1,设置为输入,默认为高电平 0xf8=11111000 keyValue = P3;if((keyValue & 0xf8) != 0xf8) { \/\/判断是否有按键按下 delay(20); \/\/延时肖抖 keyValue = P3;if((keyValue & 0xf8) != 0xf8) ...

请教高手,用51单片机独立按键控制数码管数字加减,为什么在按下独立按...
因为你按键的时候影响了数码管刷新;数码管一般都是动态扫描的,利用人眼的视觉暂留做的,你按下按键的时候,肯定有延时消抖,延时的时候就影响了数码管显示,所以数码管刷新的慢了,人眼就能分辨出来亮和灭的状态...解决办法 1、改进按键扫描 2、改进数码管显示 3、用嵌入式系统 以上三选一即可解决 ...

51单片机设计一个程序:按键每按一次,数码管加1;当数码管加到9后又...
include<reg51.h> sbit k1=P3^3;define uint16 unsigned int define uchar unsigned char uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(){ uint16 i=1000;while(i--);} void main(){ uchar n ;P2=0xfe;P1=0xff;while(1){ if...

51单片机怎么用按键控制一个数码管,按一下显示一个数字,顺序显示
1、首先,要把代码写好,点亮数码管。2、代码写完后,要确认原先写好的代码是不是正确的。3、确认代码无误后,进入下一步,就是在这一行代码(箭头所指)的地方,将这四个字删去。4、然后如图所示,四个字已经删去,只要改成数字相应的代码即可。5、这里改成的是代表数字0的代码,如图所示。6、...

51单片机按键控制数码管?
void SendOneChar(char c) \/\/发送字节到PC { TI=0;SBUF = c;while(!TI);TI=0;} void SendString(char *st) \/\/发送字符串到PC { while(*st){ SendOneChar(*st++);} } void main(){ SCON = 0x50; \/\/SCON: mode 1, 8-bit UART, enable rcvr TMOD = 0x20; \/\/TMOD...

相似回答