[信息与通信]第六章 at89s51 单片机并行接口扩展技术

[信息与通信]第六章 at89s51 单片机并行接口扩展技术

ID:33193317

大小:1.27 MB

页数:55页

时间:2019-02-21

[信息与通信]第六章 at89s51 单片机并行接口扩展技术_第1页
[信息与通信]第六章 at89s51 单片机并行接口扩展技术_第2页
[信息与通信]第六章 at89s51 单片机并行接口扩展技术_第3页
[信息与通信]第六章 at89s51 单片机并行接口扩展技术_第4页
[信息与通信]第六章 at89s51 单片机并行接口扩展技术_第5页
资源描述:

《[信息与通信]第六章 at89s51 单片机并行接口扩展技术》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第六章AT89S51单片机并行接口扩展技术    本章主要讨论了单片机系统的各种并行接口扩展技术,包括扩展键盘/显示器接口、8155接口、以及A/D、D/A接口等。6.1键盘/显示器接口扩展   键盘和显示器是单片机系统的中最重要的组成部分,键盘为输入设备,通过键盘可以设置系统的参数或输命令;显示器则为输出设备,单片机通过显示器显示采集的数据或处理结果。本节首先介绍单片机系统扩展键盘和LED显示技术。6.1.1 键盘的工作原理 (1)按键的去抖动处理。键盘是一组按钮开关矩阵,通常情况下,按钮开关处于断开状态,当按下键时它们才闭合(短路),

2、如图6.1所示。按照识别按键的方法不同,键盘可分为编码键盘和非编码键盘。按键的识别由专用的硬件实现,并能产生键值的称为编码键盘,自编软件识别的键盘称为非编码键盘。由于采用非编码键盘可以降低成本,在单片机系统中,当按键数量不多时,大家更喜欢采用非编码键盘。    通常情况下,当按下和松开按钮开关K1时,由于机械触点的弹性作用,图6.1中O点的电压变化如图6.2所示。没按键时,O点为高电平(t1);按下的瞬间,O点的电压处于一种不稳定(抖动)状态(t2);然后,进入闭合期,O点电压为低电平(t3);当松开的瞬间,O点的电压再一次处于抖动状态(

3、t4);最后,O点电压恢复为高电平(t5)。按一次键要经过两个抖动期t1和t2,每次抖动的时间大约在5~10ms之间。由于单片机工作在微秒数量级,必须进行去抖动处理,否则,按键一次会造成单片机的多次响应。常用的去抖动方法有两种,一种是采用硬件电路如滤波电路、双稳态电路等实现去抖;另一种是通过软件实现,即发现有键按下时,延时10~20ms再查询一次,若仍为低电平说明确实有键被按下,然后,等待按键的释放,即查询到图6.1中的O点为高电平时,还要延时10~20ms,当O点仍为高电平时,才为一次按键结束。如果不检测按键的释放,当按键时间很长时,同

4、样可能一次按键造成单片机的多次处理。  (2)键盘的结构与工作原理。非编码键盘按照结构的不同可分为:独立式键盘和行列式键盘。独立式键盘的处理程序简单,适合于键数较少的场合,行列式键盘处理程序稍复杂点,适合于键数较多的场合。   1)独立式键盘及其工作原理。独立式键盘是各按键互相独立,分别接一条输入数据线,各按键的状态互不影响,结构如图6.3所示。    当没有键被按下时,由于外边有上拉电阻,读得P1口的值为0FFH,当有键被按下时,如K4被按下,则读得P1口的值为0F7H。只要读得数据口的值即可知道是否有键被按下,或按下了哪个键。   2

5、)行列式键盘的结构与工作原理。键数较多时,独立式键盘结构需要占用很多I/O口线,会浪费许多资源,这时,常采用行列式键盘结构,即将键盘排列成行、列矩阵式,如图6.4所示。   图6.4中,每一水平线(行线)与垂直线(列线)的交叉处连接一个按钮开关,即开关的两端分别接在行线和列线上,N个行线和M个列线可组成M×N个按键的键盘。工作原理为所有行线输出为高电平,所有列线输出为低电平,读行线,若有键闭合,读回的行线值不全为高。   对按键的识别方法如下:   第一步:确定是否有键被按下。具体方法为所有的行线输出高电平,所有的列线输出低电平,读行线,

6、若行线中有低电平,延时20ms再读一次行线(去抖动),若仍为低电平说明有键闭合,把读到的四位行线状态保存起来;   第二步:当确认有键闭合时,使所有的行线输出低电平,所有的列线输出高电平,然后,读列线状态;   第三步:将第一次读得的四位行线值作为低4位,第二次读得的4位列线值做为高4位组成一个字节,然后,将该字节取反得到的值称为键值。   键值和键号是两个不同的概念,键值即当有键按下时,单片机读得的值,键号是印在键帽上的值,两者存在一一对应的关系。如在图6.4中,设键号为“6”的键闭合,则第一次读的行线P1.3、P1.2、P1.1、P1

7、.0的状态为1101;第二次的列线P1.7、P1.6、P1.5、P1.4的状态为1011,列、行状态组合后为10111101B,取反后为01000010B,以十六进数计为42H,即键号为“6”的键对应的键值为42H。同理可以求出图6.4中的其它键号与键值的对应关系如表6.1所示:   表6.1中的键值由两位16进制数组成,高位和低位分别为闭合键所在列号和行号,1、2、4、8分别表示第1、2、3、4行或列,如果需要可以通过软件将键值转成键号。  【例6.1】设某单片机系统的键盘电路如图6.4所示,编写程序当有键闭合时,将闭合键的键号存于键盘

8、缓冲KEYBUFF单元,并将按键标志KPRESSED置1。   解:设键盘缓冲KEYBUFF为30H单元,按键标志KPRESSED的位地址为00H,系统的晶体振荡器频率为6MHz,子程序段如下

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。