小弟我是大二的新生 寒假在家无聊自学
单片机看了郭天祥老师键盘那章 自己做了个检验键盘第一行的程序 就是按第一行第一个按钮然数码管显示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--);
}
程序粗看下没看出啥问题,目前LZ的程序是没按键时不停重复main函数,或者改成一直检测按键,等到有按键等有按键按下程序才继续执行试试?
个人本身新手,这段时间没怎么接触程序,又忘了不少,呵呵
一周热门 更多>