独立按键控制数码管加减,然后减到0再按一次首位灯管全亮

2019-03-24 16:53发布

求解答!!独立按键控制数码管加减,然后减到0再按一次,首位灯管就全亮了【如图】,按多少次减就要加多少次才正常显示,蒙了


#include <reg52.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char
       
sbit DU = P2^6;
sbit WE = P2^7;
sbit key_s2 = P3^0;
sbit key_s4 = P3^2;
uchar num;

uchar code tabel[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};

void delay(uint z)       
{
    uint x,y;
          for(x = z;x > 0;x --)
             for(y = 114; y > 0;y--);
}

void main()
{
                WE = 1;
                P0 = 0xFE;
                WE = 0;
       
                while(1)
        {
               
                        if(key_s2 == 0)
                        {
                                        delay(20);
                                if(key_s2 == 0)
                                        {
                        num++;
                        if(num != 9)
                               
                        while(!key_s2);                               
                        }
                }
                        if(key_s4 == 0)
                        {
                                        delay(20);
                                if(key_s4 == 0)
                                {
                            if(num > 0);
                   num--;
                           while(!key_s4);
                 }       
        }
                DU = 1;
                P0 = tabel[num];
                DU = 0;
   }
}


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
tiankai001
1楼-- · 2019-03-24 22:12
if(num > 0);
                   num--;这个应该在if语句中,你现在这样写不对
懒猫爱飞
2楼-- · 2019-03-25 01:12
 精彩回答 2  元偷偷看……
Amezzerary
3楼-- · 2019-03-25 02:01
tiankai001 发表于 2019-3-4 08:45
if(num > 0);
                   num--;这个应该在if语句中,你现在这样写不对

按照您的回答,问题已经解决,非常感谢
Amezzerary
4楼-- · 2019-03-25 04:07
懒猫爱飞 发表于 2019-3-4 08:51
1) 关于你这按键,按下不抬起就在那死等,这个机制最好更改一下,不然按下按键不抬起,数码管显示会有问题 ...

您的建议我会注意的,我是初学者,这些还不太懂

一周热门 更多>