二、51单片机 使用Proteus仿真掌握矩阵键盘(仿真及代码)

这篇具有很好参考价值的文章主要介绍了二、51单片机 使用Proteus仿真掌握矩阵键盘(仿真及代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习内容:通过proteus实现对51单片机矩阵的掌握

1、键盘接口设计。键盘——向单片机输入数据、命令等功能,是人机对话的主要手段。由若干按键按照一定规则组成。每一个按键实质上是一个按键开关,按构造可分为有触点开关按键和无触点按键。有触点开关按键常见的有:触摸式键盘、薄膜键盘、导电橡胶、按键式键盘等,最常用按键式键盘。无触点开关按键有电容式按键、光电式按键和磁感应按键等。键盘的任务。任务3项。(1)判别是否有键按下?若有,进入第(2)步。(2)识别哪一个键被按下,并求出相应的键值。(3)根据键值,找到相应键值处理程序入口。

两种去抖动方法。一种是用软件延时来消除按键抖动,基本思想:在检测到有键按下时,该键所对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10ms的子程序后,检测该行线为高电平,说明按键确实已经松开。采取以上措施,可消除两个抖动期t1和t3的影响。另一种去除按键抖动的方法是采用专用的键盘/显示器接口芯片,这类芯片中都有自动去抖动的硬件电路。

2、独立式键盘接口设计案例。独立式键盘特点各键相互独立,每个按键各接一条I/O口线,通过检测I/O输入线的电平状态,易判断哪个按键被按下,图中上拉电阻保证按键未按下时,保证对应I/O口线为稳定高电平。当某一按键按下时,对应I/O口线就变成低电平,与其他按键相连的I/O口线仍为高电平。

本设计案例矩阵键盘十六个按键分别对应0~F, Proteus仿真图如下

二、51单片机 使用Proteus仿真掌握矩阵键盘(仿真及代码)

源码如下:文章来源地址https://www.toymoban.com/news/detail-502521.html

#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
sbit L0=P1^0;
sbit L1=P1^1;
sbit L2=P1^2;
sbit L3=P1^3;          // 定义列 //
uchar jyw[16]={0xc0,0xf9,0xa4,0xb0,            //数码管显示值0-F对应的段码值//
               0x99,0x92,0x82,0xf8,
               0x80,0x90,0x88,0x83,
               0xc6,0xa1,0x86,0x8e};

void delay(unsigned int time)                   //延时子程序//
{
   unsigned int i;
   for(i=0;i<time;i++)
   {}
}
main()                      //主程序//
{
	while(1)
	{
		P1=0xef;            //行扫描初值11101111//
		if (L0==0) P0=jyw[0];        //检测第一列有无按键按下,若有,对应的键值分别为0(一行),4(二行),8(三行),C(四行)//
		if (L1==0) P0=jyw[1];        //检测第二列有无按键按下,若有,对应的键值分别为1(一行),5(二行),9(三行),d(四行)//
		if (L2==0) P0=jyw[2];        //检测第三列有无按键按下,若有,对应的键值分别为2(一行),6(二行),A(三行),E(四行)//
		if (L3==0) P0=jyw[3];        //检测第四列有无按键按下,若有,对应的键值分别为3(一行),7(二行),b(三行),F(四行)//
		delay(500);
		
		P1=0xdf;           //行扫描初值11011111//
		if (L0==0) P0=jyw[4];        //检测第一列有无按键按下,若有,对应的键值分别为0(一行),4(二行),8(三行),C(四行)//
		if (L1==0) P0=jyw[5];        //检测第二列有无按键按下,若有,对应的键值分别为1(一行),5(二行),9(三行),d(四行)//
		if (L2==0) P0=jyw[6];        //检测第三列有无按键按下,若有,对应的键值分别为2(一行),6(二行),A(三行),E(四行)//
		if (L3==0) P0=jyw[7];        //检测第四列有无按键按下,若有,对应的键值分别为3(一行),7(二行),b(三行),F(四行)//
		delay(500);
		
		P1=0xbf;             //行扫描初值10111111//
		if (L0==0) P0=jyw[8];        //检测第一列有无按键按下,若有,对应的键值分别为0(一行),4(二行),8(三行),C(四行)//
		if (L1==0) P0=jyw[9];        //检测第二列有无按键按下,若有,对应的键值分别为1(一行),5(二行),9(三行),d(四行)//
		if (L2==0) P0=jyw[10];        //检测第三列有无按键按下,若有,对应的键值分别为2(一行),6(二行),A(三行),E(四行)//
		if (L3==0) P0=jyw[11];        //检测第四列有无按键按下,若有,对应的键值分别为3(一行),7(二行),b(三行),F(四行)//
		delay(500);
		
		P1=0x7f;             //行扫描初值//
		if (L0==0) P0=jyw[12];        //检测第一列有无按键按下,若有,对应的键值分别为0(一行),4(二行),8(三行),C(四行)//
		if (L1==0) P0=jyw[13];        //检测第二列有无按键按下,若有,对应的键值分别为1(一行),5(二行),9(三行),d(四行)//
		if (L2==0) P0=jyw[14];        //检测第三列有无按键按下,若有,对应的键值分别为2(一行),6(二行),A(三行),E(四行)//
		if (L3==0) P0=jyw[15];        //检测第四列有无按键按下,若有,对应的键值分别为3(一行),7(二行),b(三行),F(四行)//
		delay(500);
	} 
}

到了这里,关于二、51单片机 使用Proteus仿真掌握矩阵键盘(仿真及代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【PROTEUS-51单片机串口通信仿真】

    本次实验对51单片机的串口进行了双机通信的仿真,实现了51单片机的简单双机通信;现对本次仿真的结构及实现的功能做简要的介绍, 本次仿真主要构成:主机U1-MASTER、从机U2-SLAVE、以及LED显示部分(第一部分显示主机接收到的信息、第二部分显示从机接收到的信号); 实

    2024年01月15日
    浏览(57)
  • 【Proteus仿真】【51单片机】贪吃蛇游戏

    本项目使用Proteus8仿真51单片机控制器,使用8*8LED点阵、按键模块等。 主要功能: 系统运行后,可操作4个按键控制小蛇方向。 B站演示视频:https://space.bilibili.com/444388619 视频地址:https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联

    2024年02月06日
    浏览(32)
  • 【Proteus仿真】【51单片机】智能婴儿车

    本项目使用Proteus8仿真51单片机控制器,使用LCD1604显示模块、按键模块、LED和蜂鸣器、DHT11温湿度、DS18B20温度传感器、SR04超声波,声音传感器、L298N直流电机、语音蓝牙控制等。 主要功能: 系统运行后,LCD1604显示DHT11检测环境湿度值、DS18B20检测体温、HC-SR04超声波检测距离、

    2024年02月08日
    浏览(35)
  • 【Proteus仿真】【51单片机】智能温控风扇设计

    本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、蜂鸣器、L298N电机驱动模块、直流电机、DS18B20温度传感器等。 系统运行后,LCD1602显示传感器检测的温度值; 默认以自动模式运行,若按下K4键切换为手动模式,此时可以 通过K1和K2控制风扇加减速,风扇档位共

    2024年02月16日
    浏览(42)
  • 【Proteus仿真】【51单片机】水箱液位监控系统

    本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、蜂鸣器、液位传感器、PCF8591 ADC转换器、水泵等。 主要功能: 系统运行后,LCD1602显示当前水位、上下限阈值和工作模式,系统默认处于自动模式。若检测水位高于上限,声光报警,开启抽水。若检测水位低于下限

    2024年02月07日
    浏览(34)
  • 【Proteus仿真】【51单片机】电子密码锁设计

    本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、矩阵按键、蜂鸣器、EEPROM模块、继电器模块等。 系统运行后,LCD1602显示密码输入提示界面,系统存储在EEPROM的初始密码为123456, 用户可通过矩阵按键S1-S10输入数值0-9,当在密码输入过程中有误,可按S11键回删并重新输

    2024年02月13日
    浏览(29)
  • 【Proteus仿真】【51单片机】声光控节能灯设计

    本项目使用Proteus8仿真51单片机控制器,使用人体红外传感器、声音传感器、光线传感器模块,PCF8591 ADC模块、LED灯等。 系统运行后,声/光/红外同时控制灯亮灭, 光敏控制灯在白天不亮,只在晚上 声控检测到声音或红外检测到人 靠近时灯亮,声音消失或人离开后 延时5秒灯

    2024年02月03日
    浏览(33)
  • 【Proteus仿真】【51单片机】贪吃蛇游戏-LCD12864

    本项目使用Proteus8仿真51单片机控制器,使LCD12864液晶,按键等。 主要功能: 系统运行后,LCD12864液晶显示游戏界面,可通过K1-K4键控制蛇的运行方向;每当吃到实物得分加1;当蛇撞墙或撞身时,游戏结束,可按下复位键开始。 B站演示视频:https://space.bilibili.com/444388619 视频地

    2024年02月04日
    浏览(33)
  • 【Proteus仿真】【51单片机】PWM电机调速系统设计

    本项目使用Proteus8仿真51单片机控制器,使用L298N电机模块、数码管模块、按键模块、LED指示灯模块等。 系统运行后,数码管显示电机当前运行档位和速度。 可通过按键K4启动与停止,按键K1加速、按键K2减速,按键K3换向; 档位可在1-5挡。 最终可实现: 按键功能:具有加速、

    2023年04月17日
    浏览(37)
  • 【Proteus仿真】【51单片机】温度报警控制系统设计

    本项目使用Proteus8仿真51单片机控制器,使用继电器模块、DS18B20温度传感器模块、LCD1602模块、蜂鸣器、按键模块等。 主要功能: 系统运行后,LCD1602显示DS18B20采集温度值、温度上下限阈值。可通过K1、K2键对温度上限设置,可通过K3、K4键对温度下限设置,若检测温度大于或小

    2024年02月09日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包