单片机-09-键盘数码管

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机原理及接口技术单片机接口技术9.1键盘接口技术键盘工作原理•按键本质上是一个开关,通过接通或断开一个回路,使电路出现通和断两种状态,即“开关”状态,•计算机通过识别电路的通断(判断输入电平的高/低或1/0状态)来判断按键是否按下,从而进行相应的处理。字符共阳极LED字形码字形码共阴极LEDI/O口计算机+5VRK按键动作的识别•查询扫描–软件实现•定时扫描–用定时器完成•中断扫描–用外部中断0或1识别按键动作按键抖动及消除•触点式开关按键一般靠弹簧弹起复位,按键在按下和放开时有机械振动,会出现虽然只按了一次键,但按键触点接通/断开多次的情况,这称为键抖动。阶段稳定按键过程前沿抖动后沿抖动抖动时间的长短与开关的机械特性有关,一般为510ms,计算机在识别按键时必须消除抖动的影响,否则会出现人工按一次键而计算机处理多次的问题。消除抖动可以用硬件或软件的方法完成。9.1.2独立式键盘•独立式键盘的特点是每个按键独占一根I/O线,每个按键的工作不会影响其它I/O口线的状态。•按键电路配置灵活,软件结构简单,但按键较多时,需占用较多的I/O口,如果系统的I/O设备较多,不宜采用这种方式。•独立式按键的软件一般采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平(与硬件接法有关),则可确认该I/O口线所对应的按键已按下,去除抖动后如仍然是按下的,则转向该键的功能处理程序P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51+5V按键检测、处理子程序KEY:MOVA,P1;读入I/O口状态CPLAJZXEND;无键按下,返回XD:MOVR0,A;暂存按键状态LCALLDELAY;延时10ms。去抖MOVA,P1;再次读入按键状态CPLAJZXEND;无键按下,返回CJNEA,R0,XEND;和前次按键不同,抖动,返回JBACC.0,KEY0;0号键按下,转0号键处理程序JBACC.1,KEY1┆JBACC.7,KEY7KEY0:……;0号键处理程序,略SJMPXEND;处理完毕,返回┆KEY7:……XEND:RET9.1.3行列式键盘•行列式键盘(也称矩阵式)由行线和列线组成,按键位于行、列线的交叉点上•行列式键盘较独立式键盘节省I/O口线•行列式键盘的按键识别方法比独立式键盘要复杂一些,常用的方法有–扫描法–线反转法一.行列式键盘按键扫描识别法K0K1K2K3K4K5K6K7K8K9K10K11K12K13K14K15L1R1R2R3R4L2L3L45V计算机I/O口行列式键盘扫描流程当前列号=1当前列输出低其余列为高输入为低?读当前行延时再读当前行输入为低?当前列号加1当前行号加1列扫描完成?当前行号=1行扫描完成?置有键按下标志保存当前行列号清有键按下标志返回NYNYYNYN三.键盘的扫描工作方式1.编程扫描方式2.定时扫描方式3.中断扫描方式中断入口有键按下?去抖标志=1?处理标志=1?处理标志1识别按键保存键号返回去抖标志0处理标志0去抖标志1NYNYYN中断式键盘•无键按下时,CPU不扫描键盘,而有键按下时,通过相应电路产生中断请求,CPU响应中断,执行键盘扫描程序,识别按键•该方式节约CPU时间P1.0P1.1P1.3P1.2P1.4P1.5P1.6P1.7INT1单片机+5V四.键真值和键盘编码•无论采用什么方式检测键状态,最终都需要确定出按下的键的“代号”,以便后续程序执行该按键的功能。•键的“代号”可用键真值或键的编码表示•对于行列式键盘,按键的位置由行号和列号唯一确定,因此可将按键对应的行、列的二进制编码合成一个字节来代表该键,这就是键真值9.2LED显示器接口技术9.4.2.1LED显示原理及字形码1.数码管结构数码管由8个按“8”字形排列的发光二极管(简称字段)构成通过各字段的不同组合可以显示数字09、字符AF、H、L、P、R、U、Y、符号“”及小数点“”数码管分为共阴极和共阳极两种结构2.字形码•要显示出某个字形,必须依靠输出接口对不同的字段给出高电平(对于共阴极LED,电平相反)agdfecbfGabedGcdpdpg7437389C51P2.7ALEP0WRRDA0A1D0~D7CS8255RESETGNDWRRD+5V88PB0PB7PB6PB5PB4PB3PB2PB12510×8agdfecbfGabedGcdpdpg7437389C51P2.7ALEP0WRRDA0A1D0~D7CS8255RESETGNDWRRD+5V88PB0PB7PB6PB5PB4PB3PB2PB12510×8当A=00000110B时,执行:MOVX@DPTR,A或MOVX@Ri,A后,PB1和PB2为高电平,其余引脚为低电平,于是LED的b、c段亮,显示字形“1”如果使用共阳极LED,则显示“1”时,8255PB口应该输出11111001B,即字形码F9H注意•LED的字形码不是固定不变的,而与LED各引脚与接口电路输出端的连接顺序有关•LED字形码的确定,是依赖于具体电路中,各字段与CPU输出的数据位的直接或间接对应关系。静态显示接口•单片机驱动LED数码管的方法有静态显示和动态(扫描)显示两种。•静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后不需要刷新,直到下一次显示内容需要更新时再传送新的数据,静态显示特点•静态显示显示稳定,占用CPU时间少•但一个LED数码管要占用8根I/O口线,如果有多位数码管,需要扩展I/O口,单片机9.2.2动态显示接口•动态显示需要CPU时刻对显示器件进行刷新,占用的CPU时间多,•动态显示所需硬件少,电路相对简单,能节省线路板空间,适合于显示位数较多的系统。扫描频率的确定•频率太低,LED将出现闪烁现象;频率太高每个LED点亮的时间太短,LED亮度太低•若两次显示之间的时间间隔小于32ms时,人眼即不会感到闪烁,因此,LED的扫描频率可按下式计算:f=32×N–f为扫描的频率,对应时间(T=1/f);–32ms对应的频率约为32Hz;–N是LED的个数。–即每位数码管点亮时间不得超过T(=1/f)秒,每隔T秒后需点亮下一位数码管。LED串口动态显示电路

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功