刚入手一个单片机开发板,遇到不懂得地方,求大神帮忙解答。问题在下面程序的旁边#include<reg52.h>
#include"bstv51.h"
uchar code table[17]={0x3f , 0x06 , 0x5b ,0x4f , 0x66 , 0x6d ,0x7d ,
0x07 , 0x7f , 0x6f ,0x77 , 0x7c , 0x39 ,
0x5e , 0x79 , 0x71 , 0x00};
void delay(uint xms) //Ñó3ùxms
{
uint i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void display(uchar num)
{
P0=table[num];
DU=1;
DU=0;
}
void keyscan4x4()
{
uchar temp,key;
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)----------------------------------------------------这句是什么意思啊,看不懂,是在判断什么呢?
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)--------------------------------------上面都判断了,为什么这里还要判断。
{
temp=P3;
switch(temp)
{
case 0xee:
key=0;
break;
case 0xde:
key=1;
break;
case 0xbe:
key=2;
break;
case 0x7e:
key=3;
break;
}
while(temp!=0xf0)-------------------------------还有这句什么意思,
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
此帖出自
小平头技术问答
P3口的高四位应该是行或列的输入
一周热门 更多>