请教3按钮控制4位数码管移位加减(做仪表必用)
本人想做1个3个按钮4位数码管简单的仪表面板,但是只能实现个位加减,本人想通过移位按钮分别能在十,百,千位上随意加减三个按钮分别是KEY_ADD,KEY_DEC,KEY_MOVE.
程序如下:
while (1) //主循环
{
if(!KEY_ADD) //如果检测到低电平,说明按键按下
{
DelayMs(10); //延时去抖,一般10-20ms
if(!KEY_ADD) //再次确认按键是否按下,没有按下则退出
{
while(!KEY_ADD);//如果确认按下按键等待按键释放,没有释放则一直等待
{
if(num<9999) //加操作
num=num++;
}
}
}
if(!KEY_DEC) //如果检测到低电平,说明按键按下
{
DelayMs(10); //延时去抖,一般10-20ms
if(!KEY_DEC) //再次确认按键是否按下,没有按下则退出
{
while(!KEY_DEC);//如果确认按下按键等待按键释放,没有释放则一直等待
{
if(num>0) //减操作
num--;
}
}
}
if(!KEY_MOVE)
{
DelayMs(10); //延时去抖,一般10-20ms
if(!KEY_MOVE==1)
{
while(!KEY_MOVE==1);//如果确认按下按键等待按键释放,没有释放则一直等待
{
if(!KEY_ADD) //如果检测到低电平,说明按键按下
{
DelayMs(10); //延时去抖,一般10-20ms
if(!KEY_ADD) //再次确认按键是否按下,没有按下则退出
{
while(!KEY_ADD);//如果确认按下按键等待按键释放,没有释放则一直等待
{
if(num<9999) //加操作
num=num+10;
}
}
}
}
}
}
TempData[0]=dofly_DuanMa[num/1000]|0X80;
TempData[1]=dofly_DuanMa[(num%1000)/100];
TempData[2]=dofly_DuanMa[((num%1000)%100)/10];
TempData[3]=dofly_DuanMa[((num%1000)%100)%10];
Display(0,4); //显示4位
}
}
我这里只贴了个位加减和十位加的代码,但是运行时只能实现个位加减,
请高手帮我看看错在哪,还是我一开始的处理思路就不对,
要是能给个差不多的成功案例让小弟学习学习,小弟感激不尽