//4x4矩阵键盘的扫描程序
//按相应的按键,数码管显示相应的数字,键盘接口为行列式,
//*********************************
#include<AT89X51.h>
//unsigned char code ttable[7]={0};
unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99, //0~4
0x92,0x82,0xF8,0x80,0x90, //5~9
0x88,0x83,0xC6,0xA1,0x86,0x8E}; //A~F
void KeyScan();
void delay10ms(unsigned char time);
void Dispaly(unsigned char k);
unsigned char key,temp;
void main() //主程序
{
while(1)
{
KeyScan();
}
}
void KeyScan() //按键扫描子程序
{
P1=0xFF;
P1_3=0;
temp=P1;
temp&=0xF0;
if(temp !=0xF0)
{
delay10ms(1);
temp=P1;
temp&=0xF0;
if(temp !=0xF0)
{
temp=P1;
temp&=0xF0;
switch(temp)
{
case 0x70:
key=3;break;
case 0xB0:
key=2;break;
case 0xD0:
key=1;break;
case 0xE0:
key=0;break;
}
Dispaly(key);
}
}
P1=0xFF;
P1_2=0;
temp=P1;
temp&=0xF0;
if(temp !=0xF0)
{
delay10ms(1);
temp=P1;
temp&=0xF0;
if(temp !=0xF0)
{
temp=P1;
temp&=0xF0;
switch(temp)
{
case 0x70:
key=7;break;
case 0xB0:
key=6;break;
case 0xD0:
key=5;break;
case 0xE0:
key=4;break;
}
Dispaly(key);
}
}
P1=0xFF;
P1_1=0;
temp=P1;
temp&=0xF0;
if(temp !=0xF0)
{
delay10ms(1);
temp=P1;
temp&=0xF0;
if(temp !=0xF0)
{
temp=P1;
temp&=0xF0;
switch(temp)
{
case 0x70:
key=11;break;
case 0xB0:
key=10;break;
case 0xD0:
key=9;break;
case 0xE0:
key=8;break;
}
Dispaly(key);
}
}
P1=0xFF;
P1_0=0;
temp=P1;
temp&=0xF0;
if(temp !=0xF0)
{
delay10ms(1);
temp=P1;
temp&=0xF0;
if(temp !=0xF0)
{
temp=P1;
temp&=0xF0;
switch(temp)
{
case 0x70:
key=15;break;
case 0xB0:
key=14;break;
case 0xD0:
key=13;break;
case 0xE0:
key=12;break;
}
Dispaly(key);
}
}
}
//延时程序
void delay10ms(unsigned char time)
{
unsigned char a,b,c;
for(a=0;a<time;a++)
for(b=0;b<10;b++)
for(c=0;c<120;c++)
;
}
void Dispaly(unsigned char k) //显示程序
{
P0=table[k];
P2=0xFF;
P0_7=0;
}
KEY_SCAN.rar_单片机键盘
版权申诉
128 浏览量
2022-09-24
14:43:40
上传
评论
收藏 33KB RAR 举报
JonSco
- 粉丝: 77
- 资源: 1万+
最新资源
- 数据库管理工具:dbeaver-ce-23.0.1-amd64.deb
- 数据库管理工具:dbeaver-ce-24.1.0-x86-64-setup.exe
- 编程实战:基于ASP.NET架构的通用作业批改管理系统(完整源代码+毕设文档)
- 宁波大学每日学习nbuoj题目全解
- 数据库管理工具:dbeaver-ce-24.1.0-stable.x86-64.rpm
- 数据库管理工具:dbeaver-ce-24.1.0-macos-x86-64.dmg
- 指针实现单向链表初学c++者适用
- 毕设项目:通用作业批改管理系统(含源代码+毕设文档+ASP.NET)
- 数据库管理工具:dbeaver-ce-24.0.5-x86-64-setup.exe
- 数据库管理工具:dbeaver-ce-24.0.5-stable.x86-64.rpm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0