请大家帮忙看看小弟的矩阵键盘检验程序

2019-07-15 20:52发布

小弟我是大二的新生 寒假在家无聊自学单片机看了郭天祥老师键盘那章 自己做了个检验键盘第一行的程序 就是按第一行第一个按钮然数码管显示1 第二个按钮数码管显示2 程序调试好了没问题 就是单片机上数码管按了键盘按钮没反应 我对照了郭老师的程序看了很久没发现问题 想请教各位师兄 师姐 同学 帮忙看看 谢谢了
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit du=P2^6;
sbit we=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,};
uchar temp,num;
void delayms(uint x);
void main()
{
        du=1;
        P0=0;
        du=0;
        we=1;
        P0=0xc0;
        we=0;
        while(1)
        {       
                P3=0xfe;
                temp=P3;
                temp=temp&0xf0;
                while(temp!=0xf0)
                {
                        delayms(5);
                        temp=P3;
                        temp=temp&0xf0;
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                switch(temp)
                                {
                                        case 0xee:num=1;break;
                                        case 0xde:num=2;break;
                                        case 0xbe:num=3;break;
                                        case 0x7e:num=4;break;
                                }
                               
                        }
               
                }
                du=1;
                P0=table[num];
                du=0;
        }
}
void delayms(uint x)
{
        uint i,j;
        for(i=x;x>0;i--)
        for(j=110;j>0;j--);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。