目录
一、矩阵键盘是什么?
二、使用步骤
1.Porteus仿真图
2.中断扫描代码
总结
一、矩阵键盘是什么?
矩阵键盘由行线与列线组成,常用于按键较多的场景,比较节省IO口.
二、使用步骤
1.Porteus仿真图
仿真图如下:
仿真实验中使用了AT89C51芯片,共阳极数码管,74LS21等元件。数码管负责显示按键值,在中断查询中将行线P1.0-P1.3连接74LS21与门输出接到单片机外部中断0,当按键按下时,产生按键中断请求信号。
2.中断扫描代码
代码如下(示例):
#include <REGX51.H>
#define uchar unsigned char
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
uchar dis[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay(uchar t)
{
unsigned int j;
for(j=0;j<t;j++)
{}
}
void main()
{
IT0=1;
EX0=1;
EA=1;
P1=0x0f; //P1.4-P1.7为低,P1口低四为输入
while(1)
{
}
}
void SeverInt0() interrupt 0
{
uchar i,temp;
P1=0xef; //中断查询,逐列查询
for(i=0;i<=3;i++)
{
if(L1==0)P2=dis[i];
if(L2==0)P2=dis[i+4];
if(L3==0)P2=dis[i+8];
if(L4==0)P2=dis[i+12];
delay(500);
temp=P1;
temp=temp|0x0f;
temp=temp<<1; //左移1位
temp=temp|0x0f;
P1=temp;
}
P1=0x0f; //恢复初始状态
}
其实就是用中断服务函数去判断按键号并做出相应的处理文章来源:https://www.toymoban.com/news/detail-776720.html
总结
中断方式查询按键提高了单片机的工作效率,提高了按键的响应速度。文章来源地址https://www.toymoban.com/news/detail-776720.html
到了这里,关于C51使用中断来扫描矩阵键盘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!