版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务任务5.3 键盘接口电路的设计与制作键盘接口电路的设计与制作知识能力:熟悉键盘接口的基本特点,了解独立式键盘和矩阵式键盘的知识能力:熟悉键盘接口的基本特点,了解独立式键盘和矩阵式键盘的应用方法。应用方法。 技能能力:技能能力:掌握键盘接口的硬件设计方法、软件程序设计能力和调试排掌握键盘接口的硬件设计方法、软件程序设计能力和调试排错能力。错能力。社会能力:训练学生工程意识和良好的劳动纪律观念,培养学生认真做社会能力:训练学生工程意识和良好的劳动纪律观念,培养学生认真做事、用心做事的态度。事、用心做事的态度。5.5.3.1 3.1 键盘接口工作原理键盘接口工作原理v 键盘键盘 人机交互的一个重
2、要工具 两种基本类型 编码键盘除了按键以外,还包括产生键码的硬件电路使用方便、价格较高 非编码键盘靠软件来识别键盘上的闭合键,由此计算出编码 几乎不需要附加硬件逻辑在单片机应用系统中被普遍使用独立联接式无编码键盘独立联接式无编码键盘 独立联接式编码键盘独立联接式编码键盘 键盘键盘的分的分类与类与结构结构独立联接式键盘独立联接式键盘矩阵联接式键盘矩阵联接式键盘屏幕键盘屏幕键盘( (触摸屏)触摸屏)无编码键盘无编码键盘编码键盘编码键盘无编码,简单有效,键数较少时采用无编码,简单有效,键数较少时采用编码,节省编码,节省I/OI/O口线,键数较多时采用口线,键数较多时采用5.3.1 键盘接口工作原理键
3、盘接口工作原理1.1. 非编码非编码键盘键盘的工作原理的工作原理 v 分类分类 独立式键盘简单键盘、行列式键盘(矩阵式键盘)独立式按键独立式按键 行列式键盘行列式键盘0 1 1 11 0 1 11 1 0 11 1 1 02. 2. 按键开关去抖动问题按键开关去抖动问题v 按键抖动按键抖动 在按下和释放时,按键有抖动 按键时间:100ms 前跳沿和后跳沿:20ms,抖动时间一般为510msA为确保:对键的为确保:对键的一次闭合一次闭合仅作仅作一次处理一次处理必须:必须:去除抖动去除抖动3. 3. 消除抖动不良后果的方法消除抖动不良后果的方法v 硬件去抖动硬件去抖动 RC滤波电路去抖动电路简单实
4、用,效果较好。v 软件去抖动软件去抖动 检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。键处理的流程图键处理的流程图 开始键扫描有无键按下去抖动键码计算键释放JMPA+DPTR00#键处理程序01#键处理程序#键处理程序nn#键处理程序A=00HA=01HA=HA=nnH 独立式键盘接口独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过各键相互独立,每个按键各接一根输入线,通过检测输入线检测输入线的电平状态的电平状态可很容易判断那个键被按下。可很容易判断那个键被按下。独立式独立式键盘工作电路键盘工作电路图图( (适于键数较少、操作快、同时多键动作场合适于
5、键数较少、操作快、同时多键动作场合) )程序处理方法与开关量输入相同程序处理方法与开关量输入相同4. 独立式按键独立式按键4. 4. 独立式按键独立式按键v处理过程处理过程 查键:扫描有否键按下,若无键按下,返回 有键按下软件去抖:延时20ms 找键 等键释放 软件去抖:延时20ms 例例 v有键按下,返回键值;否则,返回有键按下,返回键值;否则,返回0FFH0FFHP10P118051 K1P12P13P14P15K2K3K4K5K6+5V ; ;准备输入准备输入 等等放放去去抖抖查查键键KE2:MOVB,#0 ;保存键值保存键值0KE3:ANLA,#3FHRRCA;(A.0)CyJNCKE
6、4INCBSJMPKE3KE4:ORLP1,#3FHMOVA,P1ANLA,#3FHCJNEA,#3FH,KE4MOVA,B ;返回键值返回键值CJNEA,#06H,KE5KE5:JCKE6 ;Cy=1,(A)=6KE6:RETKE:ORLP1,#3FH MOVA,P1ANLA,#3FH ;P1.0P1.5CJNEA,#3FH,KE1SJMPKE7 ;无键按下无键按下KE1:LCALL DL20 ;延时去抖延时去抖ORLP1,#3FH ;修改修改P1MOVA,P1 ;读读P1ANLA,#3FHCJNEA,#3FH,KE2SJMPKE7 ;误动作返回误动作返回找找键键5. 5. 矩阵式键盘矩阵式
7、键盘v工作方式工作方式 查询 定时 每隔一段时间对键盘扫描一次利用单片机内部的定时器的定时器溢出中断。 中断中断方式中断方式00001 1 1 1 行列式行列式( (矩阵式矩阵式) )键盘接口键盘接口 4 44 4行列式键盘结构行列式键盘结构图图(扫描法)(扫描法) 适于按键数目较多的场合;适于按键数目较多的场合; 可节省很多的可节省很多的I/OI/O口线;口线; 同时只会有一个键闭合的场合。同时只会有一个键闭合的场合。行列式键盘按键的识别方法行列式键盘按键的识别方法a. a. 扫描法扫描法第第1 1步:识别键盘有无键按下;步:识别键盘有无键按下; 驱动所有列线为驱动所有列线为00,输入各行线
8、电平如果有,输入各行线电平如果有00,就,就说明有键按下,如果行线电平全说明有键按下,如果行线电平全11,则全部无键按下。,则全部无键按下。第第2 2步:如有键被按下,识别具体的按键。步:如有键被按下,识别具体的按键。 依序依序驱动某一列为驱动某一列为00 ,其余列均为,其余列均为11 ,输入各行线,输入各行线电平,如果某行线电平为电平,如果某行线电平为00 ,可确定此行列交叉点处的按,可确定此行列交叉点处的按键被按下;如果行线电平全为键被按下;如果行线电平全为11 则本列无按键按下。则本列无按键按下。输出口驱动列线输出口驱动列线输输入入口口读读取取行行线线电电平平第第1 1步:步:列列线输出
9、为全线输出为全00 ,随后输入,随后输入行行线电平如有线电平如有00,则则00所在的行就是所在的行就是闭合的按键闭合的按键所在行;无所在行;无00则无键闭合。则无键闭合。第第2 2步:步:行行线输出为全线输出为全00 ,随后输入,随后输入列列线电平如有线电平如有00,则则00所在的列就是所在的列就是闭合的按键闭合的按键所在列;无所在列;无00则无键闭合。则无键闭合。结合上述两步,可确定按键所在行和列。结合上述两步,可确定按键所在行和列。线反转法原理图线反转法原理图 b. b. 线反转法线反转法 P.168P.168PC3PC2PC1PC0PC4PC5PC6PC7实验板实验板44键盘键盘连接连接
10、82C55的端口线的端口线 采用线反转法的键盘行线、采用线反转法的键盘行线、列线端口各自应当可以在输列线端口各自应当可以在输入与输出方式间切换入与输出方式间切换! 如图如图: :高四位与低四位均可高四位与低四位均可独立改变其独立改变其输入或输出方式输入或输出方式v 处理过程处理过程 键扫描 确认有无按键按下 去抖动 延时 按键的识别:确定键的行、列号 扫描算法、线反转法 键号的确定 键号=所在行号键盘列数+所在列号 等待键释放5. 矩阵式键盘矩阵式键盘 例例 扫描算法扫描算法v 用用8255A8255A作单片机键盘接口,作单片机键盘接口, A A口为输出口口为输出口接键盘列线。接键盘列线。C
11、C口为输入口口为输入口接键盘的接键盘的4 4条行线条行线8255A8255A地址地址A A口:口:7FFCH7FFCH B B口:口:7FFDH7FFDHC C口:口:7FFEH7FFEH 控制寄存器:控制寄存器:7FFFH7FFFHv子程序子程序 KSI KSI :判定有无闭合的键:判定有无闭合的键KSI:MOVDPTR, #7FFCH;A口地址口地址MOVA, #00HMOVX DPTR, A;A口送口送00HINCDPTRINCDPTR;C口地址口地址MOVX A, DPTR;读读C口口CPLA ANLA, #0FH;屏蔽高四位屏蔽高四位RET0 0 0 0 0 0 0 0有闭合键,则有
12、闭合键,则(A)0无闭合,无闭合, 则则(A)=01 1 1 1KEY1:ACALL KSI;检查是否有键闭合检查是否有键闭合JNZLK1;A非非“0”则转移则转移ACALL DIR;显示一次显示一次LED(“延时延时6ms”)AJMPKEY1LK1:ACALL DIR;有键闭合二次延时有键闭合二次延时ACALL DIR;共共12ms去抖动去抖动ACALL KSI;再检查是否有键闭合再检查是否有键闭合JNZLK2;有键闭合转移到有键闭合转移到LK2ACALL DIRAJMPKEY1;无键闭合,延时无键闭合,延时6ms后转后转KEY1有闭合键,有闭合键,则则(A)0无闭合,无闭合, 则则(A)=
13、0LK2:CLRF0;有键有键标志标志MOVR2, #0FEH;扫描初值送扫描初值送R2MOVR4, #00H;扫描扫描列号列号送送R4LK4:MOVDPTR, # 7FFCH ;A口地址口地址MOVA, R2MOVXDPTR, A;扫描初值送扫描初值送A口口INCDPTRINCDPTR;C口地址口地址MOVXA, DPTR;读读C口口有闭合键,有闭合键,则则(A)0无闭合,无闭合, 则则(A)=00 1 1 1 1 1 1 1KEY1:ACALL KSI;检查是否有键闭合检查是否有键闭合JNZLK1;A非非“0”则转移则转移ACALL DIR;显示一次显示一次LED(“延时延时6ms”)AJ
14、MPKEY1LK1:ACALL DIR;有键闭合二次延时有键闭合二次延时ACALL DIR;共共12ms去抖动去抖动ACALL KSI;再检查是否有键闭合再检查是否有键闭合JNZLK2;有键闭合转移到有键闭合转移到LK2ACALL DIRAJMPKEY1;无键闭合,延时无键闭合,延时6ms后转后转KEY1LK2:MOVR2, #0FEH;扫描初值送扫描初值送R2MOVR4, #00H;扫描扫描列号列号送送R4LK4:MOVDPTR, # 7FFCH ;A口地址口地址MOVA, R2MOVXDPTR, A;扫描初值送扫描初值送A口口INCDPTRINCDPTR;C口地址口地址MOVXA, DPT
15、R;读读C口口有闭合键,有闭合键,则则(A)0无闭合,无闭合, 则则(A)=00 1 1 1 1 1 1 1全全程程序序JBACC.0, LONE;ACC.0=1,第,第0行无键闭合,转行无键闭合,转LONEMOVA, #00H;装第装第0行值行值AJMPLKPLONE: JBACC.1, LTWO ;ACC.1=1,第,第1行无键闭合,转行无键闭合,转LTWOMOVA, #08H;装第装第1行值行值AJMPLKPLTWO: JBACC.2, LTHR;ACC.2=1,第,第2行无键闭合,转行无键闭合,转LTHRMOVA, #10H;装第装第2行值行值AJMPLKPLTHR: JBACC.3,
16、 NEXT;ACC.3=1,第,第3行无键闭合,转行无键闭合,转NEXT MOVA, #18H;装第装第3行值行值LKP:ADDA, R4;计算键码计算键码PUSHACC;保护键码保护键码LK3:ACALL DIR;延时延时6msACALL KSI;检查是否继续闭合,若闭合再延时检查是否继续闭合,若闭合再延时JNZLK3POPACC;若键起,则键码送若键起,则键码送ARET扫描扫描列号列号:R4NEXT: INCR4;扫描列号加扫描列号加1MOVA, R2JNBACC.7, KND;若第若第7位位=0,已扫完最高列则转,已扫完最高列则转KNDRLAMOVR2, AAJMPLK4;进行下一列扫描
17、进行下一列扫描KND:SETBF0;无键无键标志标志RET;扫描完毕扫描完毕扫描扫描列号列号:R4 例例 线反转法线反转法KEY:MOVP1, #0F0H;行线置低电平行线置低电平,列线置输入态列线置输入态KEY0: MOVA, P1;读读列列线数据线数据CPLA;数据取反数据取反,“1”有效有效ANLA, #0F0H;屏蔽行线屏蔽行线,保留列线数据保留列线数据MOVR1, A;存列线数据存列线数据(R1高高4位位)JZGRET;全全0,无键按下无键按下,返回返回KEY1: MOVP1, #0FH;行线置输入态行线置输入态,列线置低电平列线置低电平MOVA, P1;读读行行线数据线数据 CPL
18、A;数据取反数据取反,“1”有效有效ANLA, #0FH;屏蔽列线屏蔽列线,保留行线数据保留行线数据MOVR2, A;存行线数据存行线数据(R2低低4位位)JZGRET;全全0,无键按下无键按下,返回返回JBCF0, WAIT;已有消抖标志已有消抖标志,转转SETBF0;无消抖标志无消抖标志,置消抖标志置消抖标志 LCALL DY10ms;调用调用10ms延时子程序消抖延时子程序消抖SJMPKEY0;重读重读行线列线数据行线列线数据GRET: RET参考程序:WAIT: MOVA, P1;等待按键释放等待按键释放CPLA ANLA, #0FHJNZWAIT;按键未释放按键未释放,继续等待继续等
19、待KEY2: MOVA, R1;取列线数据取列线数据(高高4位位)MOVR1, #03H;取取列线编号初值列线编号初值MOVR3, #03H;置循环数置循环数CLRCKEY3: RLCA;依次左移入依次左移入C中中JCKEY4;C=1,该列有键按下该列有键按下,(列线编号存列线编号存R1)DECR1;C=0,无键按下无键按下,修正列编号修正列编号DJNZR3, KEY3;判循环结束否判循环结束否?未结束继续寻找有键按下的列线未结束继续寻找有键按下的列线KEY4: MOVA, R2;取行线数据取行线数据(低低4位位)MOVR2, #00H;置置行线编号初值行线编号初值MOVR3, #03H;置循
20、环数置循环数CLRC KEY5: RRCA;依次右移入依次右移入C中中JCKEY6;C=1,该行有键按下该行有键按下,(行线编号存行线编号存R2)INCR2;C=0,无键按下无键按下,修正行线编号修正行线编号DJNZR3, KEY5;判循环结束否判循环结束否?未结束继续寻找有键按下的行线未结束继续寻找有键按下的行线KEY6: MOVA, R2;取行线编号取行线编号CLRC RLCA;行编号行编号2RLCA;行编号行编号4ADDA, R1;行编号行编号4+列编号列编号=按键编号按键编号KEY7: CLRC RLCA;按键编号按键编号2RLCA;按键编号按键编号4(LCALL+ RET共共4字节字
21、节)MOVDPTR, #TABJ JMPA+DPTR;散转散转,执行相应键功能子程序执行相应键功能子程序TABJ: LCALL WORK0;调用执行调用执行0#键功能子程序键功能子程序RET LCALL WORK1;调用执行调用执行1#键功能子程序键功能子程序RET LCALL WORK15;调用执行调用执行15#键功能子程序键功能子程序RET 技能能力技能能力5.3.2 工作任务描述工作任务描述1)根据给出的图5-35,在Proteus中画出电路图;编写程序使数码管显示当前闭合按键的键值。 2)利用Proteus的仿真功能对其进行仿真测试,观察数码管的显示状态和按键开关的对应关系。 3)根据
22、图5-35,搭接硬件电路,进行硬件验证。矩阵键盘扫描电路图P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.
23、7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C510123456789ABCDEFP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7R1220R2220R3220R4220R5220R6220R7220234567891RP1RESPACK-84)程序范例:; 功能:以数码管显示键盘的作用。点击相应按键显示相应的键值。; 处理过程:首先扫描键盘,判断是否有键按下,再确定是哪一个键,计算键值,输出显示。ORG 0
24、000HAJMP MAIN ORG 0030H MAIN: MOV DPTR,#TABLE ;将表头放入DPTR LCALL KEY ;调用键盘扫描程序 MOVC A,A+DPTR ;查表后将键值送入ACC MOV P2,A ;将Acc值送入P0口 LJMP MAIN ;返回反复循环显示 KEY: LCALL KS ;调用检测按键子程序 JNZ K1 ;有键按下继续 LCALL DELAY2 ;无键按调用延时去抖 AJMP KEY ;返回继续检测按键 K1: LCALL DELAY2 LCALL DELAY2 ;有键按下延时去抖动 LCALL KS ;再调用检测按键程序 JNZ K2 ;确认有
25、按下进行下一步 AJMP KEY ;无键按下返回继续检测 K2: MOV R2,#0EFH ;将扫描值送入 R2暂存 MOV R4,#00H ;将第一列值送入R4暂存 K3: MOV P1,R2 ;将R2的值送入P1口 L6: JB P1.0,L1 ;P1.0等于1跳转到L1 MOV A,#00H ;将第一行值送入ACC AJMP LK ;跳转到键值处理程序 L1: JB P1.1,L2 ;P1.1等于1跳转到L2 MOV A,#04H ;将第二行的行值送入ACC AJMP LK ;跳转到键值理程序进行键值处理 L2: JB P1.2,L3 ;P1.2等于1跳转到L3 MOV A,#08H ;将第三行的行值送入ACC AJMP LK ;跳转到键值处理程序L3: JB P1.3,NEXT ;P1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公室环境与行为规范
- IT运维管理解决方案及其实施方法
- 在线教育服务用户使用免责协议
- 市场营销手册市场分析与推广策略指南
- 车联网智能车辆服务平台设计及实施方略制定
- 塑料行业循环经济与绿色生产方案
- 仓储管理技术在物流行业升级实践
- 小学教师成长故事征文
- 初一二次月考数学试卷
- 低碳环保绿色能源投资促进合作协议
- 2024-2030年中国高密度聚乙烯管道行业发展展望与投资策略建议报告
- 2024-2030年中国醋酸乙烯行业运营状况与发展风险评估报告
- 企业文化塑造与员工激励方案
- 2024年01月22504学前儿童科学教育活动指导期末试题答案
- 2020年度全国煤矿安全事故统计
- 多发性神经病护理
- 【MOOC】线性代数-浙江大学 中国大学慕课MOOC答案
- DB2308T 220-2024陆基圆池(桶)+池塘循环水养殖技术规程
- 开门红包费用申请
- 区块链原理与实践全套完整教学课件
- 2024年湖南省公务员录用考试《行测》真题及答案解析
评论
0/150
提交评论