《单片机原理与项目——键值显示》由会员分享,可在线阅读,更多相关《单片机原理与项目——键值显示(36页珍藏版)》请在金锄头文库上搜索。
1、单片机与嵌入系统单片机与嵌入系统2008 /02电气与自动化项目 键值显示 一、项目描述 通过完成二个键值显示任务,掌握独立式键盘和行列式键盘电路的构成与工作原理、键盘接口电路的设计与键值显示程序的编写。 二、主要知识点与能力目标知识要点: (1)键盘结构与应用特点; (2)独立式键盘接口电路设计与程序编写; (3)行列式键盘接口电路设计与程序编写。能力目标: (1)能根据项目要求正确选用键盘的结构; (2)能设计典型的键盘接口电路; (3)能编写键值显示应用程序。项目任务一: 编写程序,将八位独立式按键的键值显示在八位数码管对应位上。 相关知识 1:键盘的分类按结构分: 独立式 矩阵式按编码
2、分: 全编码键盘(硬件电路实现) 非编码键盘:软件查询实现相关知识2:键盘接口需要解决的问题1. 键抖动问题:机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图5.1所示,抖动时间的长短与开关的机械特性有关,一般为510 ms。相关知识2:键盘接口需要解决的问题 图5.1 按键触点的机械抖动 相关知识2:键盘接口需要解决的问题抖动的消除方法: 在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。相关知识2:键盘接口需要解决的问题硬件消抖: 采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图5
3、.2是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。相关知识2:键盘接口需要解决的问题图5.2 双稳态去抖电路相关知识2:键盘接口需要解决的问题软件消抖: 当检测有键按下时,执行10 20ms左右的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持,则确认该键处于闭合状态。同理,在检测到按键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。相关知识3:独立式按键单片机控制系统中,往往只需要几个功能键时,可采用独立式按键结构。独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O
4、口线的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。独立式按键的典型应用如图5.3所示。相关知识3:独立式按键图5.3 独立式按键电路完成项目任务一 利用实验仪平台编写程序,将八位KG1KG8开关键的键值显示在八位数码管对应位上。即当KG3开关拨动时,在八位数码管SM3上显示数字3。 实验仪键盘接口电路图5.4 键盘接口电路实验平台键盘电路分析 实验平台利用8155的PA口、PB口和PC口,作为扩展I/O口,其中,PA口定义为输入口,扩展为8位数字输入口,与KG1KG8相连,开关两端分别接地与高电平,当开关拨动时
5、,电平变化可由PA口读入。 实验平台数码管显示电路 图5.4 键盘接口电路图5.5 键盘接口电路实验平台数码管显示电路分析 实验平台有8个七段数码管,这8个七段数码管的驱动电路是由两片74LS373(U24,U8)组成。 其中,标号U24的74LS373为七段数码管提供段选通信号,标号U8的74LS373为八个七段数码管的片选信号。“SMCS1”、“SMCS2”片选信号由标号U26的74LS138译码反相后得到,地址分别为C000H、C800H。 程序结构提示 独立式按键的软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的开关
6、键已拨动,然后再转向该键的功能处理程序。项目任务二:设计2*8结构行列式键盘,并编写程序使按键键值显示在八位数码管最低位。 相关知识 1:矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如图5.6所示。 相关知识 1:矩阵式键盘的结构及原理图5.6 矩阵式键盘结构 由图可知,一个44的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。 在5.6图所示矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时
7、,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。相关知识 1:矩阵式键盘的结构及原理扫描法: 在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。流程: 当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环。 键号=行首键号(0、4、8、12)+列号(0、1、2、3)相关知识 2:矩阵式键盘按键识别相关知识2:矩阵式键盘工作方式键盘的工作方式:编程扫描、定时扫描、中断扫描。编程扫描方式: 利
8、用CPU完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时,CPU不再响应键输入要求,直到CPU重新扫描键盘为止。键盘扫描程序包括:(1) 有无键按下。(2) 键盘扫描取得闭合键的行、列值。(3) 用查表法得到键值。(4) 判断闭合键是否释放,如没释放则继续等待。(5) 将闭合键键号保存,同时转去执行该闭合键的功能相关知识2:矩阵式键盘工作方式定时扫描方式:定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键
9、的功能程序。定时扫描方式的硬件电路与编程扫描方式相同 相关知识2:矩阵式键盘工作方式。图5.7 定时扫描方式程序流程图相关知识2:矩阵式键盘工作方式中断扫描方式: 为提高CPU工作效率,采用中断扫描工作方式。工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。电路如图5.8所示。相关知识2:矩阵式键盘工作方式图5.8 中断扫描键盘电路完成项目任务二 利用实验平台2*8结构行列式键盘,编写程序使按键键值显示在八位数码管最低位。即按下按键,在SM1上显示按键键值0F。 实验仪键盘接口电路图5.4 键盘接口电路实验平台键盘电路分析
10、PB口和PC口的PC4、PC5组成2*8键盘驱动电路。其中PB口定义为输出口, PB口为键盘的列驱动,常态下设置为低电平。PC口定义为输入口,PC口的PC4、PC5两口为键盘的行驱动,经上拉电阻,平时为高。 若有键按下,则PC4、PC5两口对应脚的状态变低,且PC4,PC5经74LS00、74LS04实际上相“与”接到单片机外部中断口INT0(P3.2),产生中断。通过对PB赋值进行列扫描,读入PC口状态,从而确定键值。实验平台数码管显示电路 图5.4 键盘接口电路图5.5 键盘接口电路实验平台数码管显示电路分析 实验平台有8个七段数码管,这8个七段数码管的驱动电路是由两片74LS373(U24,U8)组成。 其中,标号U24的74LS373为七段数码管提供段选通信号,标号U8的74LS373为八个七段数码管的片选信号。“SMCS1”、“SMCS2”片选信号由标号U26的74LS138译码反相后得到,地址分别为C000H、C800H。 程序结构提示 当键盘无键按下时,中断输输入端为高电平,显示主程序正常执行 ;当有键按下时,中断输入端为低电平,向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描子程序,确定键值。