在基于微控制器(MCU)的项目中,矩阵式键盘常被用作输入设备。将矩阵键盘连接至微控制器的常规做法需使用微控制器的多个I/O引脚。然后MCU运用扫描算法来确认按住了哪些键。这种办法的一个弊端就是需要大量MCU的I/O引脚来连接键盘。例如,连接一个4×3键盘需7个数字I/O引脚。而当项目采用的是低引脚数MCU,或使用的MCU不具备足够的可用I/O引脚数时,就出现了问题。
对于这一问题,有两个解决办法:使用现成的I/O扩展器,或用一只电阻排,为每个键设定一个唯一的电压,然后使用模拟引脚来读取电压值,判断按住了哪个键。每个方案都有其不足之处。
由于在大多数情况下,I/O扩展器需通过特殊的通信协议(如I2C协议或SPI协议)来读写数据,MCU需要具备内置通信模块,或用户需实现相关的通信协议软件,而这明显增加了MCU的负担。另一方面,当按键数量增加时,通过电阻排给各按键分配独特电压会变得很繁琐,而这最终将导致电压裕度较小。此外,由于电阻值会随温度而变化,使用较小的电压裕度可能导致读取错误,甚至连开关弹跳都可能成为导致电压出错的重要原因。这种方法的另一个弊端是要求MCU中有模拟输入引脚。这里描述的实例显示出能够高效解决上述所有问题的办法,及其具备的几个优势:它只需要两只I/O引脚,而不论连接的开关数量有多少;不需要特别的通信协议;不需要模拟引脚。本实例基于两个CD4017约翰逊计数器,这种计数器很常见而且不贵。
图1显示出4×3键盘采用的电路。R1、R4、R5和R6用于限流,D7、D4、D5和D6构成一个“或”门。
这里描述的例子显示出如何采用这种方法来读取4×3键盘。其中一个CD4017被用来控制键盘行,另一个控制键盘列。
MCU生成时钟信号,然后将其供给控制列的计数器IC。起初,列计数器和行计数器的第0个输出处于逻辑高位。在收到时钟脉冲后,列计数器将增加。在收到第四个时钟脉冲时,列计数器将重置,并同时将行计数器增加1。在列控制器重置后,行控制器增加,并在收到第五个来自列控制器的时钟脉冲后重置。在生成时钟脉冲的同时,应增加MCU的计数变量,并且在第五个时钟脉冲到达行控制器时,将计数变量重置为1。键盘的两个输出做“或”运算,并连接到MCU的一个外部中断引脚。
只有当行和列的相关按钮均处于逻辑高位,一个按钮被按下时才会发生中断。如果按钮的行或列处于逻辑零值,则不会发生中断。
中断发生时,MCU读取当时的计数值,所读取的值即对应于刚按下的按钮。
当MCU每隔一段时间产生时钟脉冲时,MCU内的时钟计数增加;这一计数等于键盘上的开关数目,按下这些开关时可造成中断。图2中的流程图描述了这一情况。
注意:虽然本例仅展示了4×3键盘的读取方法,但可以用两个4017计数器的剩余输出来读取10×10键盘。另外,必要时,还可以级联更多的4017IC来扩展键盘。
关键字:I O引脚将 矩阵键盘 微控制器
引用地址:
利用两个I/O引脚将4×3矩阵键盘连接至微控制器
推荐阅读最新更新时间:2024-03-16 15:57
基于PIC单片机厨房控制的设计
随着智能家电控制技术的不断发展,具有多功能和智能化的厨房控制器成为厨房电器设备发展的主流。和传统单一厨房设备控制器相比,多功能厨房控制器具有占用空间小、成本低、功能多、便于设备统一管理,使用安全、方便等优点。 系统以PIC单片机作为主控制芯片,选用VFD(Vacuum Fluorescent Display)真空荧光屏为显示器,结合气敏传感器,热敏电阻,高压点火器,继电器等受控对象,通过检测外部信号以及内部定时时间状态可以控制各种受控对象工作状态之间的相互转换,实现对厨房电器设备的智能控制。系统结构框图如图1所示。 1 各单元电路硬件设计 1.1 电源电路设计 设计所需的6组工作电源均由如图2所示的电路提供。6组
[单片机]
单片机的串口通信编程的总结
本次小结的主要目的是更加明确单片机的串口中断是如何发生的。即:是如何触发串口中断的发送功能的。在说明中我使用特殊的字体颜色来强调重点部分和注意事项。 程序一: 本程序是使用软件设置TI来实现串口中断的触发,如果在初始化函数中不增加 TI=1; 这条语句,那么是不会触发中断的 #include STC89C5X.h //包含51单片机的头文件 #define uint unsigned int #define uchar unsigned char /* 串口通讯接口定义 RXD-------P3.0 数据接收端 TXD-------P3.1 数据发送端 */ /*====================
[单片机]
FR81S家族32位微控制器打造车身控制平台
随着全球变暖,汽车工业需要生产更加环保和燃料更加有效率的汽车。改进安全和舒适性的豪华汽车需求在先进国家不断增加,同时在中国、印度和巴西等迅速发展中国家对有紧凑型汽车需求也有强烈需求。 为了响应这些需求,很多汽车制造商都在推动车身控制应用平台设计。相应地,也需要容易集成到这些平台中的微控制器(MCU)。为了满足这些需求,富士通半导体推出了MB91520系列,丰富了其32位微控制器FR81S家族。新系列提供了各种引脚配置和内存容量,为车身控制应用提供了许多外设功能,以及作为标准特性的内置的降低成本功能,以此提供一个最合适的平台解决方案。针对无刷DC电机和安全功能的专用定时器也能够支持AUTOSAR。 富士通半导体针对车身控制推出的
[单片机]
基于51单片机的广告灯左移电路设计与程序分析
1.实验任务 做单一灯的左移右移,硬件 电路 如图4.4.1所示,八个 发光二极管 L1-L8分别接在 单片机 的P1.0-P1.7接口上,输出“0”时,发光 二极管 亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。 2. 电路原理图 图4.4.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。 4. 程序设计内容 我们可以运用输出端口指令MOV P1,A或MOV
[单片机]
PIC系列单片机简介
一、引言 据统计,我国的单片机年容量已达1-3亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。这说明单片机应用在我国才刚刚起步,有着广阔的前景。培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义。 当今单片机厂商琳琅满目,产品性能各异。针对具体情况,我们应选何种型号呢?首先,我们来弄清两个概念:集中指令集(CISC)和精简指令集(RISC)。采用CISC结构的单片机数据线和指令线分时复用,即所谓冯.诺伊曼结构。它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限,价格亦高。采用RISC结构的单片机数据线和指令线分离,即所谓哈佛结构。这使得取指令和取数据可同时进
[单片机]
2009年盛群新产品发表会在京隆重举行
为了使国内广大客户更好地了解盛群单片机产品的特点与发展,更好地应用此类单片机开发出众多创新型智能电子产品,盛群半导体有限公司10月23日在北京丽亭华苑举办“2009年盛群新产品发表会”。 负责协办此次展会的华荣汇电子科技(北京)有限公司总经理朱光辉说:“实际上这也是一个聚会,新老朋友大家欢聚一堂。” 盛群半导体执行副总经理张治到会并发言,他表示今年尽管受半导体行业危机所累,盛群业绩不是非常理想,但还是推出了多款针对消费市场及医疗市场的新品。 值得注意的是,盛群半导体针对小尺寸应用推出8管脚单片机HT48R系列,但其并没有透露具体价格,仅表示“价格绝对是非常有竞争力的。” 尽管微控制器占据了盛群
[单片机]
基于AT89C51单片机的无级调光系统的实现
在生活中有很多可以自主调节挡位的设备,比如台灯的亮度、玩具车的速度、风扇的转速等等。它们调节档位的方式各有不同,有些是改变功率,有些是改变动力,但都离不开对激励或输入信号的改变,我们这里简单介绍一下对LED灯的无级调光的实现,可以自己动手做一个可变亮度的小灯。 一、所需器材: AT89C51×1、100Ω定值电阻×1、LED×1、示波器×1、滑动变阻器×1、直流电压表×1、ADC0808×1、500kHz时钟信号×1、+5V直流电源×2。 主要器材介绍:(我们这里只做简单介绍,各接口定义可自行查阅资料——反正这里也用不着) (1)AT89C51:AT89C51是一种带4K字节FLASH存储器(FPEROM—Flas
[单片机]
单片机的结构原理详细说明
8051是MCS-51系列单片机的非常典型的产品,我们用这一个代表性的型号进行系统的单片机原理讲解。 8051单片机包含中央处理器、数据存储器(RAM)、定时/计数器、程序存储器(ROM)、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别对其原理加以说明: ·数据存储器(RAM): 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·中央处理器: 中央处理器(CPU)是整个单
[单片机]