当前位置:首页 > 单片机 > 单片机
[导读]   一、矩阵式键盘    1.工作原理    矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。一个4x4的行、列结构可以构成16只按键的键盘,在按键数量较多的场合,矩阵式键盘比独立式键盘

 

  一、矩阵式键盘

1.工作原理

矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。一个4x4的行、列结构可以构成16只按键的键盘,在按键数量较多的场合,矩阵式键盘比独立式键盘,更节省I/0口。

如图1所示,每只按键在行列线交节点上,一端接行线,另一端按列线,列线通过上拉电阻RP1接到VCC上,设QO~Q3为低电平,在没有动作时行线处于低电平状态,列线处于高电平状态,而当有按键被接下时,该键所在的列线的电平由高变低,这也是识别矩阵式键盘是否有键被接下的关键所在。要将行与列线信号配合起来并作适当的处理才行。

2.按键识别方法

下面以下图中9号键被接下为例,来说明该按键是如何被识别出来的。当9号键被接下时,与之键相连的列线3的电平将由与此键相连的行线A的电平决定。由于在天键接下时列线处于高电平状态,如果让所有行线也处于高电平,那么将不会引起列线电平的变化,也就没法判断有无键被接下,更不用说是判断接下的是哪个键了。如果将所有行线置为低电平,则接下的键所在的列线将变成低电平,根据此变化能准确判定该列有按键接下,但仍不能确定是哪个键被按下,即被接下的键在哪一行。若某时刻让一条行线处于低电平,让其余所有行线处于高电平,如A行为低电平,其余行为高电平,因为是按键9被按下,所以列3立刻变为低电平,据此可确定是A行与列3交叉点的按键(即9号键)被按下。同理可以判断出矩阵键盘中每一个被接下的键所在的行、列,即知道被按下的键名。

  根据上面的分析,可以总结出用单片机控制和读取I/0的状态来识别矩阵键盘按键的方法:

第一步,单片机通过总线地址adr0、adr1、adr2、adr3,分别扫描矩阵键盘的四条行线,看是否有按健被接下;

第二步,单片机调用延时去抖程序排除干扰因素,确认有按键被接下,然后通过总线数据线ADO、AD1、AD2、AD3,读回列线电平状态再通过软件读出行线和列线的交叉点,即找出被接下的键。

以上识别按键的方法称为扫描法。

  二、液晶显示

液晶显示器微功耗、体积小、显示内容丰富、超薄轻巧,在袖珍式仪表和低功耗系统中得到越广泛的应用。字符型液晶模块采用5×7点阵图形显示字符,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等,下面以2行16个字的LMl602液晶模块来介绍其编程方法。

LMl602采用标准的(14)脚接口,其引脚定义及功能如下表所示。VSS为地,VDD按5V正电源;VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一只1Oka的电位器来调整对比度;RS为寄存器选择,为高电平时选择数据寄存器、低电平时选择指令寄存器;RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW均为低电平时可以写入指令或显示地址,当RS为低电平、RW为高电平时可以读忙信号;当RS为高电平、RW为低电平时可以写入数据。E为使能端,当E由高电平跳变成低电平时,液晶模块执行命令。DO~D7为8位双向数据线。

LMl602液晶模块内部的字符发生存储器CGROM内存储了160个不同的点阵字符图形,包括阿拉伯数字、英文字母的大小写、常用符号和日文假名等。每个字符都有一个固定的代码,如大写英文字母“A”的代码是O1OOOOO1B(41H),只要显示地址41H中的点阵字符图形,使用者就能看到字母“A”。

引脚 符号引脚说明1VSS电源地2VDD电源正3VL液晶显示偏压信号4RS数据 /命令选择端(H/L)5R/W读 /写选择端(H/L)6E使能信号7DOData I/08D1Data I/09D2Data I/010D3Data I/011D4Data I/012D5Data I/013D6Data I/014D7Data I/015BLA背光源正极16BLK背光源负极

  2.基本操作时序

读状态:输入RS=L、RW=H、E=H输出DO~D7=状态字

写指令:输入RS=L、RW=L、DO~D7=指令码、E=高脉冲输出无

读数据:输入RS=H、RW=H、E=H输出DO~D7=数据

写数据:输入RS=H、RW=L、DO~D7=数据、E=高脉冲输出无

3.初始化流程

初始化过程(复位过程)

延时15ms

写指令38H(不检测忙信号)

延时5ms写指令38H

(不检测忙信号)

延时5ms

写指令38H(不检测忙信号)

延时5ms

写指令38H(不检测忙信号)

  说明:以后每次写指令、读/写数据操作之前均需检测忙信号。

写指令38H:显示模式设置

写指令08H:显示关闭

写指令01H:显示清屏

写指令06H:显示光标移动设置

写指令0CH:显示开及光标设置

给出以上具体操作时序主要是为了帮助大家更好地理解LCD驱动程序,并按照基本初始化流程书写驱动程序。驱动程序没不需要每次都编写,需要使用时,只要把以前编写的驱动程序作为头文件调用即可。液晶驱动程序见后边附程序。

三、单片机总线模式键盘检测与液晶显示总体电路

下图中的总线键盘主要是用于制作大键盘。单片机通过74LS138与74LS573进行总线模式扩展,使键盘扫描和液晶显示共用数据口通过地址信号分别控制与二者间的数据传输,以充分地利用单片机的I/O口资源。

 

  四、按键程序流程图

按键程序流程如下图所示。

  本实验在已Proteus仿真软件上验证通过。通过Keil软件进行编程,然后将生成的Hex文件加载到51单片机中,就能观察到液晶屏显示的实验现象内容。在矩阵键盘上按下任意键,在液晶显示器上就会以移位显示的方式看到软件定义的键值。 

键盘和显示器是单片机应用系统经常使用的人机交互界面,此实验可以帮助单片机初学者了解总线模式,学会用总线模式实现键盘扫描与液晶显示的技术。

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭