网站大量收购闲置独家精品文档,联系QQ:2885784924

《单片机原理、接口与C51应用程序设计》课件第9章.ppt

《单片机原理、接口与C51应用程序设计》课件第9章.ppt

  1. 1、本文档共104页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第9章单片机与键盘、显示器的接口技术

9.1单片机与键盘的接口

9.2单片机与LED显示器的接口

9.3键盘/显示接口芯片及其应用

9.4单片机与LCD显示器的接口

9.1单片机与键盘的接口

9.1.1按键电路和抖动的消除

键盘一般由一组机械按键按一定的规律组成,其结构与

产生的波形如图9.1所示。

图9.1开关按键及波形

图9.1(a)为键盘的工作原理,一般键盘通过I/O口与单片

机相连,键的状态通过读入键值的高低电平来区分。正常状

况下,与键盘所连接的单片机的I/O端口被设置为高电平,

当有键按下时,与之相连的单片机的I/O端口将被钳位成低

电平。图9.1(b)为按键产生的波形,一般键盘采用机械弹性

开关。由于机械触点的弹性作用,在闭合和断开瞬间会有抖

动发生,抖动时间的长短一般在5ms~10ms之间。为确保

按键不产生误动作,必须有防抖措施。防抖有硬件和软件两

种实现方法。

硬件防抖是指采用硬件电路的方法对键盘的按下抖动和

释放抖动进行消除,经过防抖电路后使按键的电平信号只有

两种稳定的状态。硬件防抖措施的典型做法是采用RS触发

器构成双稳态消抖电路,如图9.2所示。经过RS触发器后,

输出端的信号变为标准的矩形波。

硬件防抖电路能消除键盘的抖动,但若系统中的按键数

较多,则硬件防抖电路将变得较为复杂,成本也较高。硬件

防抖一般用在按键数较少的系统中。当系统中按键数较多时,

可以采用软件防抖来消除键盘的抖动。软件防抖是指当软件

检测到第一次按键按下时,执行一个10ms的延时程序,之

后再检测该键电平是否仍维持在闭合状态,若仍然保持,则

确认此键是真正按下,从而消除了抖动。

图9.2硬件防抖电路

9.1.2独立式键盘与单片机的接口

键盘接口有独立式键盘接口和行列式键盘接口两种。

独立式键盘是每个按键独立地占用一条I/O接口线,每条I/O

接口线上按键的工作状态不会影响其它I/O口线的工作状态。

通过检测输入线的电平状态可以很容易地判断哪个按键按下,

如图9.3所示。当无按键按下时,对应的I/O线为高电平;当

某一按键按下时,相应的I/O线变为低电平。

图9.3独立式按键接口电路

9.1.3行列式键盘

行列式键盘也称矩阵式键盘,通过I/O口线组成行、列

结构,按键设置在行、列的交叉点上。如图9.4所示,一个

8×4的行、列结构可组成32个键的键盘。这样当单片机系统

的I/O口资源有限时,可以大量节省I/O口线。

图9.48×4行列式键盘

行列式键盘设置在行、列的交点上,行线、列线分别连

接到按键开关的两端,当有按键按下时,行线与列线相连。

行列式键盘必须由软件来判断是否有键按下和按下键盘的键

值。

1.是否有键按下的判别

首先由CPU从8155的PA口输出一个全为0的数据,此时

PA7~PA0全部为低电平,如果有键按下,则PB0~PB3中总

会有一根线被拉至低电平。当CPU去读8155的PB口时,

PB3~PB0不全为1,表明这时有键按下;相反,当CPU去读

8155的PB口时,PB3~PB0全为1,表明这时无键按下。

2.键值的判别

若第5行第4列的按键被按下(即图中带圆圈的键),则使

第4根列线与第5根行线导通,原先处于高电平的第4根列线

被第5根行线钳位到低电平。所以CPU读8155的PB口时PB3

=0。

从硬件图中可以看到,只要是第4列的键按下,CPU读

8155的PB口时PB3始终为0。PB口读得的值为××××

0111B。若读得PB口的值为××××1101B,显然可以断定

是第2列键被按下。

行值的判断可采用扫描法。首先使8155的PA口输出仅

PA0为0,其余位均为1,去读PB口的值,如读得PB3~PB0

为全1,则按键肯定不在第一行;然后使PA1为0,其余位均

为1,读PB口,若仍为全1,则按键肯定不在第二行;之后

继续使PA2为0,其余位为1,读PB口,以此类推,直到读出

PB3~PB0不全为1或PA7为0为止。当PB3~PB0不全为1时,

对应行的键一定被按下。若第5行第4列键按下,则在PA口

输出时,PB0~PB3不全为1,而是××××0

111B。

行输出(PA口) 数据和列输入(PB口) 数据中“0”对应的

位置,表示该键的键值,即键值=行值×10H+列值。图9.5

中各个键的键值如表9.1所示。

表9.1键值的表示(十六进制)

9.2单片机与LED显示器的接口

9.

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档