- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章键盘与LED显示器接口技术
微型计算机技术 微型计算机技术 第11章 键盘与LED显示器接口技术 键盘及其接口电路 LED数码显示器及其接口电路 9.1 键盘及其接口电路 9.1.1 键盘 键盘按用途分为通用键盘和专用键盘。有机械按键,电容按键,导电橡胶按键,薄膜按键。 1、通用键盘:微机系统中84键,101/102/104键,107键等。 内含单片机,串行输出,双字节扫描码。 2、专用键盘:根据自己需要设计键盘。 按照按键的识别方式分为编码和非编码键。 1、编码键盘:通过硬件电路产生被按按键的键码和一个选通脉冲,可作为CPU的中断请求信号。 2、非编码键盘:将按键排列成行、列矩阵,按键只是使相应接点接通或断开,在程序配合下产生被按键的编码。 9.1.2 键盘的工作原理 1、线性键盘 每个键对应I/O端口的一位,没有按键闭合时,各位均处于高电位;当某键被按下时,对应位与地接通,则为低电位,而其他仍为高电位。因此,CPU通过读入I/O端口数据并判断哪一位为“0”,即可知哪一个键被按下,从而转到相应功能的处理程序去执行。 线性键盘原理图 按键抖动 按键就是无锁开关,由于机械运动的抖动和接触的不稳定,按键在按下和释放时有抖动。 按键过程 前跳沿 后跳沿 识别区 按键过程图 按键时间大于100mS 前跳沿和后跳沿小于20ms:抖动过程一般持续 5~10ms 软件去抖:避免抖动常用软件延迟来让过抖动区,此消除抖动的方法为软件去抖。 2、矩阵键盘 当较多的按键需要识别时,常将按键设计成阵列形式。 一般地,一个键盘阵列可以有N行和M列,共有N*M个按键,称为N*M键盘阵列,或N*M键盘矩阵。 识别矩阵键盘上的闭合键的方法通常有行扫描法和反转法。 第1列 第2列 第3列 第4列 矩阵键盘原理图 行扫描法 将行线接一并行口,输出方式;将列线也接并行口,输入方式,行扫描法识别按键分两步: 识别是否有键按下:先将所有行线置为低电平,读取列线值,若此时列线值全为1,说明无键按下;否则说明有键按下。 判别是哪一个键按下:编程改变行扫描码,使行线逐行为0,其余行为1,然后读取列值,看是否有列线变成0,逐行扫描。当读到某一列线的值为0时,说明行与列线相交的位置上的键被按下,可以退出扫描,根据此时的行扫描码和列线值,便能识别闭合的到底是哪一个键。 行扫描法 8255A 键盘接口电路应用举例 例:设上图电路中,8255A的地址为200h-203h,利用行扫描法编写按键识别程序,将按下键的行号与列号的编码存于BX中。 分析: 8255的A口用作输出口,B口用作输入口,AH存放输出给A口的内容,AL存放从B口读入的列的内容。 逐行输出0识别不同按键的过程是:先将AH的D0位置0,其余位置1,即AH=0feh,并将AH的内容输出给PA口的行线,使键盘阵列的第1行输出为0,然后从PB口读入列线状态放在AL中,若AL不为全1,说明第1行有键按下。例如,若第1行第1列交叉点的键按下,则读入到AL的内容为0feh(AL的D0位为0,其余位为1),则该键按下时,AH和AL的内容就可组成一个行与列的编码为AHAL=fefeh。 当行线的第1行输出0时,如果从PB口读入的内容为全1,说明第1行无键按下,这时将AH寄存器的0左移一位,使AH=0fdh,再输出给PA口的行线,第PA口的第2行输出为0,仿第一行的方法,可判别第二行是否有键按下。每个按键的编码都是唯一的。 因共有4行按键,所以,在识别过程中从PA口最多输出4行0。用CX作为行输出计数器,将CX的初值设为4,表示共需从PA口输出4行0,每从PA口输出一行0,就将CX内容就减1,当CX减至0时,就从PA口输出完4行0。 在程序设计时,将各个键对应的代码放在一个表中,程序通过查表来确定具体按下的为哪一个键。 按键识别程序 PORTA EQU 200H PORTB EQU 201H PORTD EQU 203H mov dx,PORTD ;控制口地址送dx mov al ;8255的A口和B口工作在方式0 ;A口出,B口入 out dx,al ;向8255写控制字 nokey: mov dx,PORTA mov al,0 out dx,al ;从8255的A口输出全0给键盘阵列行线 mov dx,PORTB in al,dx ;从8255的B口读入键盘阵列的列线状态 or al,0f0h ;将与键盘列线无关的高4位行线置1 cmp al,0ffh ;比较从列线读入的是否为全1 je nokey ;是全1,则无键按下,转 mov cx, 1000 again: loop
您可能关注的文档
最近下载
- 新22S6消防工程参考标准.docx
- 慢性肾脏病早期筛查、诊断及防治指南(2022年版).pptx VIP
- 家庭饮食健康计划.pptx VIP
- 2025年福建省厦门集美中学招聘办公室职员1人笔试备考题库及答案解析.docx VIP
- 级配碎石施工 ..ppt VIP
- 2022年7月上海高考英语真题(学生版+解析版+听力音频).docx
- DB44T 1212-2013 用能单位能源计量管理体系通用要求.pdf VIP
- 上-下气道慢性炎症性疾病联合诊疗与管理专家共识中华医学会呼吸病学分会哮喘学组(发布时间:2017-07).pdf VIP
- 心力衰竭诊疗规范.docx VIP
- 光照时间对三斑海马幼苗成活率和生长速度的影响.pdf VIP
文档评论(0)