- 1、本文档共104页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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.
您可能关注的文档
最近下载
- 领导班子2025年民主生活会对照检查材料例文(四个带头).docx VIP
- WD西部数据My Passport Ultra and My Passport Ultra for Mac Quick Install Guide移动硬盘安装指南English (US).pdf
- 工业园区污水BOT项目运营维护方案.doc
- 牛血清去蛋白注射液的美容作用研究.pptx
- 广数DAP03说明书.pdf VIP
- 《中国古代书法》课件——隶书.pptx VIP
- 《行书书法教程》课件.ppt VIP
- 小学数学二年级上册数学《东南西北》教学设计优秀教案.docx
- 笔奇意纵 气逸神飞--草书书写指导.ppt VIP
- 人力 -北极星总裁特助行动计划实施方案.pptx
文档评论(0)