简单的单片机矩阵键盘程序的写法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void delay1ms(uint t)
{
uint x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
void keyinit()
{
uchar temp;
P2=0x7f;
temp=P2;
temp&=0x0f;
if(temp!=0x0f)
{
delay1ms(2);
temp=P2;
#include<reg52.h>//QQ591421516编写
#define uint unsigned int
#define uchar unsigned char
uchar num;
uchar code we[]={0xfe,0xfd};
uchar code du[]={0xc0,0xf9,
0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
delay1ms(3);
P1=we[1];
P0=du[b%10];
delay1ms(3);
}
void main()
{
while(1)
{
keyinit();
display(num);
}
}
case 0xbe:num=7;break;
}
}
}
P2=0xdf;
temp=P2;
temp&=0x0f;
if(temp!=0x0f)
{
delay1ms(2);
temp=P2;
temp&=0x0f;
if(temp!=0x0f)
{
temp=P2;
switch(temp)
{
case 0xd7:num=8;break;
{
temp=P2;
switch(temp)
{
case 0xe7:num=12;break;
case 0xeb:num=13;break;
case 0xed:num=14;break;
case 0xee:num=15;break;
}
}
}
}
void display(uchar b)
{
P1=we[0];
P0=du[b/10];
case 0xdb:num=9;break;
case 0xdd:num=10;break;
case 0xde:num=11;break;
}
}
}
P2=0xef;
temp=P2;
temp&=0x0f;
if(temp!=0x0f)
{
delay1ms(2);
temp=P2;
temp&=0x0f;
if(temp!=0x0f)
temp&=0x0f;
if(temp!=0x0f)
{
delay1ms(2);
temp=P2;
temp&=0x0f;
if(temp!=0x0f)
{
temp=P2;
switch(temp)
{
case 0xb7:num=4;break;
case 0xbb:num=5;break;
case 0xbd:num=6;break;
temp&=0x0f;
if(temp!=0x0f)
{
temp=P2;
switch(temp)
{
case 0x77:num=0;break;
case 0x7b:num=1;break;
case 0x7d:num=2;break;
case 0x7e:num=3;break;
}百度文库
}
}
P2=0xbf;
temp=P2;
相关文档
最新文档