刚入手一个单片机开发板,遇到不懂得地方,求大神帮忙解答。问题在下面程序的旁边#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口的高四位应该是行或列的输入
实例62 4×4矩阵式键盘
⒈ 电路设计 …⒉ 程序设计 …⒊ Keil调试 …⒋ Proteus仿真 …
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。书中电路和程序设计有详细说明,程序语句条条有注解。
⒈ 电路设计 …⒉ 程序设计 …⒊ Keil调试 …⒋ Proteus仿真 …
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。
书中电路和程序设计有详细说明,程序语句条条有注解。
一周热门 更多>