标题: 关于51单片机按键控制数码管,为什么我按下p35没有反应,当数字应变为2时会变成巳 ... [打印本页]

作者: zhzh123456    时间: 2021-3-21 10:46
标题: 关于51单片机按键控制数码管,为什么我按下p35没有反应,当数字应变为2时会变成巳 ...

#include <REGX52.H>
sbit k1=P3^4;
sbit k2=P3^5;
unsigned char table[]={0xc0,0xf9,0x4,0xb0,0x99,0x92,0x02,
                        0xf8,0x00,0x10};
void Delay(unsigned char x)               
{
        while(x--)
        {
                unsigned char i,j;
i = 2;
        j = 239;
        do
        {
                while (--j);
        } while (--i);
}
}
void main ()
{
int n=0;
        P2_0=0;
        P2_1=1;
        P2_2=1;
        P2_3=1;
        P2_4=1;
        while(1)
        {
if(k1==0)
{
Delay(500);
        if(k1==0)
        {
++n;
                if(n==10)
                        n=0;
}
while(k1==1);
}
if(k2==0)
{
Delay(500);
        if(k2==0)
        {
--n;
                if(n<0)
                        n=9;
                while(k2==0);
}
}
P2_0=0;
        P2_1=0;
        P2_2=0;
        P2_3=0;
        P2_4=0;
   P0=table[n];
}
}

作者: 张天师    时间: 2021-3-21 12:24
while(k1==1)改为while(k1==0);
作者: zhzh123456    时间: 2021-3-21 14:52
张天师 发表于 2021-3-21 12:24
while(k1==1)改为while(k1==0);

谢谢大佬,我这太不小心了,那个2变成巳咋解决
作者: wulin    时间: 2021-3-21 16:41
zhzh123456 发表于 2021-3-21 14:52
谢谢大佬,我这太不小心了,那个2变成巳咋解决

对比楼主写的数组
有误table[]={0xc0,0xf9,0x4,0xb0,0x99,0x92,0x02, 0xf8,0x00,0x10};
正确table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
作者: zhzh123456    时间: 2021-3-26 22:28
wulin 发表于 2021-3-21 16:41
对比楼主写的数组
有误table[]={0xc0,0xf9,0x4,0xb0,0x99,0x92,0x02, 0xf8,0x00,0x10};
正确table[]={0 ...

谢谢大佬
作者: lwh999995    时间: 2021-3-26 23:29
应该对数码管的位进行控制,还得数码管消影才行




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1