第4章键盘输入及中断.ppt

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

* 第4章 键盘输入及中断 4.1 概述(略,自学) 4.2 独立按键(在第2章已涉及) 4.3 4×4矩阵键盘 不同布局的4×4薄膜矩阵键盘 等效电路 按键型 4.3 4×4矩阵键盘 薄金属片 4×4薄膜矩阵键盘内部结构 4.3.1 4×4矩阵键盘 4.3.2 矩阵键盘应用 要求:压数字键时,在数码管上显示相应的数字,压其他键时数码管不显示。 点击视频文件视频\键盘4-4.AVI 列0 1 2 3 行 0 1 2 3 先扫第0列、读第0行、第1行…… 定义矩阵键盘“意义” 这个表(数组)与键的布局(硬件)及扫描的方式(软件)有关 如果压“9”,通过编程,返回它的键值(地址)=列*4+行=2*4+0=8 再查keybiao的第8个元素得到“9”,——说明是压下了键“9” ? ? 元素编号:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 S后的数字恰好就是该键的“键值”(地址) 列0 1 2 3 行 0 1 2 3 扫第0列、读第1行 0 1 1 1 1 1 0 1 ? ? 元素编号:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 计算键值(地址) =列*4+行 =0*4+1=1 P2~P2Sacn定义在P2口 4个“列线”都是0,只有所有键均未压下(低4位全是1) ,~P20x0f =0; 只要有键压下(低4位不是全1), ~P20xff就不等于0。 0 0 0 0 1 1 1 1 0x0f~P20x0f=0x00 这个函数主要是检测有无按键压下? 例如: 低4位做输入(必须置1) Scan扫描 col列号 row行列号 扫描第0列扫描第1列扫描第2列扫描第3列 置scan 有键盘压下? Col=0 Row+14? Row=0 Col+14? 键值=row+4*col 返回 查到按键? 是 是 否 是 否 是 否 得到键值 否 未得到键值 一般不会出现这种情况,因为调用这个函数之前,已确认有键压下 扫描键盘函数框图 0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 继续扫下一列 读下一行 直接扫下一列 行 temp 0 1 2 3 0 x01左移row位: row 结果 0 1 2 3 逐行比 较 ~(Sacn)0x0f 0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 不再扫描其他键,跳出循环直接“带着结果”返回啦! 键值(地址) 产生扫描信号 sacn初始值0xef每扫描一行,sacn左移1位再 col 左移1 再 1 2 3 保证低4位总是1(即做输入) 列 0 0 0 0 行 1 1 1 1 4个“列线”都是0,仅当所有键均未压下,temp =0; 只要有键压下就temp 就不等于0。 S后的数字恰好即是该键的“键值”(地址) ?这个语句比较复杂,完成4个任务 (1).调用sacnner(),得到键值(地址)=10 (总是S后的数字) 以压下S10键为例 (2).根据键值(10)查keybiao[10]得到“3”——S10对应的是实际键盘上的3 ? ? 10 3 (3). 根据3(实际键盘)查段码表duan[3]得到“3”的段码“0xB0”,即: dp g f e d c b a 1 0 1 1 0 0 0 0 以压下S10键为例 ? (4).将“3”的段码赋给LED(P0)显示“3” ? 10 3 0

文档评论(0)

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

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

1亿VIP精品文档

相关文档