smallC 发表于 2020-7-17 20:43:39

求大佬指点迷津

想要写一个按一下键数值加一的程序,但不按的时候是0,按下去数码管就全亮了,不知道错在哪。求大佬指点,程序具体如下:
#include"reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit hc1=P2^2;
sbit hc2=P2^3;
sbit hc3=P2^4;
sbit k1=P3^1;

u16 m,a;

u8 code sz[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管断码

void delay(u16 i)
{
while(i--);
}

int add()          //按下按键数值加一
{
if(k1==0)
{
    delay(100);
        if(k1==0)
        {
           a++;
        }
        while(!k1);
}
}

void display()        //使右边第一个数码管点亮
{
hc1=0;
hc2=0;
hc3=0;
}

void main()
{
while(1)
{
display();
m=add();
P0=sz;
}
}
页: [1]
查看完整版本: 求大佬指点迷津