| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 977 人关注过本帖
标题:请教3按钮控制4位数码管移位加减(做仪表必用)
只看楼主 加入收藏
whp1124
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-8-3
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:1 
请教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位
      }
}

我这里只贴了个位加减和十位加的代码,但是运行时只能实现个位加减,

请高手帮我看看错在哪,还是我一开始的处理思路就不对,

要是能给个差不多的成功案例让小弟学习学习,小弟感激不尽
搜索更多相关主题的帖子: 数码管 仪表 按键 
2011-12-10 10:46
少凡
Rank: 2
等 级:论坛游民
帖 子:14
专家分:31
注 册:2010-10-10
收藏
得分:10 
加我QQ:284663303 我给你写写
2011-12-12 09:09
快速回复:请教3按钮控制4位数码管移位加减(做仪表必用)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051356 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved