基于STM32控制的智能键盘
摘要:本设计选择STM32为核心控制元件,设计了用4个IO口实现4*4矩阵键盘,使用C语言进行编程。矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。 关键词:STM32 矩阵键盘 ARM 显示电路
1 引言
随着21世纪的到来,以前的单个端口连接的按键已经不能满足人们在大型或公共场合的需求。电子信息行业将是人类社会的高科技行业之一,4*4矩阵键盘设计师当今社会中使用的最广的技术之一。4*4矩阵式键盘采用STM32为核心,主要由矩阵式键盘电路、显示电路等组成,软件选用C语言编程。STM32将检测到的按键信号转换成数字量,显示于数码管上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。
2 总体设计方案
该智能键盘电路由ARM最小系统,矩阵键盘电路和显示电路组成,在常规的4*4矩阵键盘的基础上,通过改进实现了用4个IO口完成4*4矩阵键盘。 2.1 总体设计框图
本电路主要由3大部分电路组成:矩阵键盘电路、ARM最小系统电路、按键显示电路。其中ATM最小系统主要由复位电路和时钟电路组成。电路复位后数码管显示字符“—” 表示没有按键,显示电路由STM32的PD0—PD7来控制数码管显示是哪个按键按下。总体设计方框图,如图1所示。
复位电路 时钟电路 STM32 矩阵键盘电路 按键显示电路
图1总体设计方框图
1
3 智能键盘设计原理分析
3.1 STM32复位和时钟电路设计
此电路主要是复位电路和时钟电路两部分,其中复位电路采用按键手动复位和上电自动复位组合,电路如图2(右)所示:其中14脚为STM32的复位端。时钟电路如图2(左)所示:晶振采用的是8MHz和32.786KHz,8MKz分别接STM32的12脚和13脚,32.786KHz分别接STM32的8脚和9脚。
图2STM复位和时钟电路设计
3.2 矩阵键盘电路的设计
该电路的四个端子分别接STM32的PB12—PB15,电路如图3所示。
2
图3 矩阵键盘电路
该矩阵键盘电路扫描方法如下:
(1)PB15,PB14,PB13,PB12设置为输入并内部上拉。程序读取这四个IO口的引脚电平,如果某个IO为低电平,则是该列中相应IO口对应行处的按键按下。
(2)PB15输出低电平,PB14,PB13,PB12设置为输入并内部上拉。程序读取PB14,PB13,PB12这三个IO口的引脚电平。如果某个IO为低电平,则是第一列中相应IO口对应行处的按键按下。
(3)PB14输出低电平,PB15,PB13,PB12设置为输入并内部上拉。程序读取PB15,PB13,PB12这三个IO口的引脚电平。如果某个IO为低电平,则是第二列中相应IO口对应行处的按键按下。
(4)PB13输出低电平,PB15,PB14,PB12设置为输入并内部上拉。程序读取PB15,PB14,PB12这三个IO口的引脚电平。如果某个IO为低电平,则是第三列中相应IO口对应行处的按键按下。
(5)PB12输出低电平,PB15,PB14,PB13设置为输入并内部上拉。程序读取PB15,PB14,PB13这三个IO口的引脚电平。如果某个IO为低电平,则是第四列中相应IO口对应行处的按键按下。 3.3按键去抖动
每隔10ms扫描键盘一次,当扫描某个按键按下时,则开始计数,当连续4次 扫描(也就是40ms)都是这个按键按下时,说明按键有效。如果不到四次计数,就采集不到该按键按下,则说明该按键无效。
3
3.4 按键显示电路
本设计采用STM32的IO口PD0—PD7来控制数码管来实时显示按键状态。当按键有按下时,数码管将显示对应的按键编号“0—F”,对应表示的按键是“SW1—SW16”。按键显示电路,如图4。
图4 按键显示电路
4 程序流程图
程序流程图,如图4所示。
4
5 总体电路图
总体电路图,如图6所示。 图5 程序流程图
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于STM32控制的智能键盘+程序在线全文阅读。
相关推荐: