C51使用中断来扫描矩阵键盘

这篇具有很好参考价值的文章主要介绍了C51使用中断来扫描矩阵键盘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、矩阵键盘是什么?

二、使用步骤

1.Porteus仿真图

2.中断扫描代码

总结

一、矩阵键盘是什么?

矩阵键盘由行线与列线组成,常用于按键较多的场景,比较节省IO口.

二、使用步骤

1.Porteus仿真图

仿真图如下:

  仿真实验中使用了AT89C51芯片,共阳极数码管,74LS21等元件。数码管负责显示按键值,在中断查询中将行线P1.0-P1.3连接74LS21与门输出接到单片机外部中断0,当按键按下时,产生按键中断请求信号。
矩阵键盘中断扫描,矩阵,单片机,proteus

 

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

到了这里,关于C51使用中断来扫描矩阵键盘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C51单片机实验——中断实验

    实验环境:普中实验系统;Keil μVision 4软件; 实验目的: (1)掌握单片机中断原理和中断响应过程。 (2)设计自己的中断程序具体实验内容,并通过程序设计控制实验箱上的2个按键,实现对应的中断内容。 硬件连线: 按键k3连接P3.2口 按键k4连接P3.3口 LED灯连接P2口 实验主

    2024年02月05日
    浏览(63)
  • C51单片机——中断与定时器

    中断是大多数CPU最精彩的部分之一,下面我们通过讲解和编程练习学习中断和定时器相关概念 目录 1.1.什么是中断 1.2.中断的种类 1.3中断的相关概念 1.4. 51单片机可用中断及相关引脚 1.4.寄存器 1.5.中断优先级 在未进行任何关于优先级的设置情况下,51 单片机(52 单片机)中断

    2024年02月03日
    浏览(62)
  • 【单片机c51】两个外中断的应用

    1.在51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0*)接有一只按钮开关K1,在外部中断1引脚P3.3(INT1*)接有一只按钮开关K2。 程序要求:K1和K2都未按下时,P1口的8只LED呈流水灯显示。仅K1按下时,上下4只LED交替闪烁10次。仅K2按下时,8只LED全部闪烁10次,再回到流

    2024年02月06日
    浏览(49)
  • AT89C51单片机实现单片机串口互动(中断方式,单片机--单片机,应答)

     说一下功能:客户机发送0x01到服务机 2服务单片机应答0xf2到客户机 3客户机接收到0xf2,发送信息153432这6个数字到服务机 4client发送完信息后发送0xaa结束通信 5server接收到0xaa后回复0xaa结束通信,从此老死不相往来 看代码: 服务端代码:    

    2024年02月13日
    浏览(53)
  • C51单片机中断系统与定时器/计时器(理论部分)

    前言 文章的开始,有人可能会问,我们在前几节课学了延时函数,为什么不用延时函数来取代定时器,而必须学定时器呢?这里,有如下几个理由: 1.使用delay函数时,单片机的cpu做不了其他事情,只能等待延时结束。 2.用了定时器cpu就可以做其他的事情,只要定时器溢出时

    2023年04月15日
    浏览(39)
  • 题解:按钮加减计数器设计(单片机C51)(外部中断)

               需求 :使用 4位共阴极段码表及共阳极数码管 ,通过 外部中断 方式,实现 两个按钮 分配加1、减1功能 。         今天我就来 讲解 一下 这道题 : 目录 1.代码 1.1定义头文件 1.2定义延时函数(毫秒) 1.3定义主函数 1.4定义0~15共阴极数码管字符码 1.5定义中断

    2024年02月02日
    浏览(55)
  • c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图

         单片机一般采用中断方式接受数据,这样便于及时处理 其中发送数据段采用的是查询方式,接收端采用了中断方式, 要注意的地方有: 在中断处理函数int_0()内,处理数据前要先关闭中断,否则中断可能会不断传过来, EA=0; 然后退出中断处理函数前恢复中断处理能力:

    2024年02月13日
    浏览(60)
  • 51单片机入门教程__矩阵键盘的使用

    一、矩阵键盘的使用 1、在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式 采用逐行或主列的“扫描”,就可以读出任何位置按键的状态(扫描快速) 2、原理图 3、 扫描的区分 数码管通过快速循环不同位数,实现数码管同时显示的效果,而矩阵键

    2024年02月16日
    浏览(49)
  • 二、51单片机 使用Proteus仿真掌握矩阵键盘(仿真及代码)

    学习内容:通过proteus实现对51单片机矩阵的掌握 1 、键盘接口设计。键盘——向单片机输入数据、命令等功能,是人机对话的主要手段。由若干按键按照一定规则组成。每一个按键实质上是一个按键开关,按构造可分为有触点开关按键和无触点按键。有触点开关按键常见的有

    2024年02月11日
    浏览(41)
  • 使用51单片机的矩阵键盘和LCD1602做一个密码锁

    文章目录 前言 一、工具准备 工具一:51单片机 工具二:LCD1602液晶显示屏 工具三:Keil软件 二、开始操作 1.LCD1602的程序调试 2.矩阵键盘的程序调试 3.密码锁程序设计 总结 51单片机是一种8位的可编程控制元件,广泛应用于各种工业生产、家电中。51单片机的厂家有很多,如

    2023年04月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包