




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 6章 MCS-51单片机的交互通道配置与接口主要内容:从工程应用角度介绍了 MCS-51单片机的交互通道配置与接口,主要包括人机界面中的键盘、显示器、微型打印机等。介绍了多种实用方案和设计技巧。 重点 在于系统概念的形成、各种接口设计方案和设计技巧的掌握,熟悉各种交互设备。 难点 在于使用动态方法进行键盘和显示的硬件及软件设计。 人机界面 :是指人与计算机系统进行信息交互的接口,包括信息的输入和输出。6.1 MCS-51单片机与键盘的接口技术键盘: 单片机系统中完成控制参数输入及修改的基本输入设备,是人工干预系统的重要手段。键盘的分类: 按 编码方式可分为编码键盘与非编码键盘。按键组连接方式可分为独立连接式键盘与矩阵连接式键盘。6.1.1 概述键盘输入的主要对象: 各种按键或开关。1独立连接式键盘每键相互独立,各自与一条 I/O线相连, CPU可直接读取该 I/O线的高 /低电平状态。其优点是硬件、软件结构简单,判键速度快,使用方便;缺点是占 I/O口线多。适用场合: 多用于设置控制键、功能键。适用于键数少的场合。独立连接式键盘连接图如右图所示。当没有键被按下时,所有的数据输入线都为高电平;当有任意一个键被按下时,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有键按下。2. 矩阵连接式键盘键按矩阵排列 ,各键处于矩阵行 /列的结点处 ,CPU通过对连在行 (列 )的 I/O线送已知电平的信号 ,然后读取列 (行 )线的状态信息。逐线扫描 ,得出键码。其特点是键多时占用 I/O口线少 ,硬件资源利用合理,但判键速度慢。适用场合: 多用于设置数字键,适用于键数多的场合。4行 4列矩阵式键盘连接图如右图所示。这种键盘适合采取动态扫描的方式进行识别。扫描方式: 低电平扫描(回送线必须被上拉为高电平)、高电平扫描(回送线需被下拉为低电平)。右图中给出了低电平扫描的电路。3. 薄膜开关特点: 不需要进行导线与开关间的焊接,结构简单、体积小、防尘、防水、防有害气体侵蚀、寿命长、可靠性高。应用: 与按键式键盘类似,多个薄膜开关也可按照独立式或矩阵式设计内部电路,其原理与普通键盘相同。 按键开关去抖动问题 *键盘的抖动时间一般为 5 10ms, 抖动现象会引起 CPU对一次键操作进行多次处理,从而可能产生错误。 硬件去抖动 消除抖动不良后果的方法:其中 RC滤波电路去抖动电路简单实用,效果较好。 软件去抖动检测到按键按下后,执行延时 10ms子程序后再确认该键是否确实按下,消除抖动影响。( 1)开关状态的可靠输入。必须消除键抖动。可以采用硬件和软件两种方法,硬件方法就是在按键输入通道上添加去抖动电路;软件方法则采用延迟 10 20ms( 2) 键盘状态的监测方法 中断方式还是查询方式。( 3)键盘编码方法。( 4)键盘控制程序的编制。6.1.3 键盘接口功能: 对键盘上所按下的键进行识别。分类:( 1) 编码键盘: 采用专用的编码 /译码器件,被按下的键由该器件译码输出相应的键码 /键值。其特点是增加了硬件开销,编码固定,但编程简单。适用于规模大的键盘。 6.1.2 使用键盘时必须解决的问题 ( 2) 非编码键盘: 采用软件编 /译码的方式,通过扫描,对每个被按下的键判别输出相应的键码 /键值。其特点是不增加硬件开销,编码灵活,但编程较复杂,占 CPU时间。适用于小规模的键盘,特别是单片机系统。键盘。1键盘接口的工作原理对于矩阵式键盘,如上页图所示,键盘的行线 X0 X3通过电阻接+5V, 当键盘上没有键闭合时,所有的扫描线和回送线都断开,无论扫描线处于何种状态,回送线都呈高电平。当键盘上某一键闭合时,则该键所对应的扫描线和回送线被短路,可以确定,变为低电平的回送线与扫描线相交处的键闭合。CPU对键盘扫描的方式: 程序控制的随机方式( CPU空闲时扫描键盘)、定时控制方式(定时扫描键盘)、中断方式。CPU对键盘上闭合键的键号确定方法: 根据扫描线和回送线的状态计算求得,或根据行线和列线的状态查表求得。 2键输入程序的设计方法( 1)判断键盘上是否有键闭合;( 2)消除键的机械抖动;( 3)确定闭合键的物理位置;( 4)得到闭合键的编号;( 5)确保 CPU对键的一次闭合只做一次处理3键盘接口方式( 1)独立式键盘接口(静态方式)特点: 结构简单,每个按键接单片机的一条 I/O线,通过对输入线的查询,可以识别每个按键的状态。 例题 在 MCS-51 单片机系统中,设计一个含 8个按键的独立式键盘。解 : 在 MCS-51中,含 8个按键的独立式键盘的线路连接如下页图所示, 8个按键经上拉电阻拉高后分别接到 MCS-51单片机 P1口的 8条 I/O线上( P1.0 P1.7)。在无键按下的情况下, P1.0 P1.7线上输入均为高电平。当有键按下时,与被按键相连的 I/O线将得到低电平输入,其他位按键的输入线上仍维持高电平输入。 P1口 8条 I/O线经与非门74LS30实现逻辑与非后,再经过 1个非门 74LS04进行信号变换,然后接至 MCS-51的 引脚上,可通过中断的方式处理键盘。在中断服务程序中,先延时 20 ms消除键抖动,再对各键进行查询,找到所按键,并转到相应的处理程序中去。 CLOSE: JNB ACC.7, KEY 7 ; 查询 7号键JNB ACC.6, KEY 6 ; 查询 6号键JNB ACC.5, KEY5 ; 查询 5号键JNB ACC.4, KEY4 ; 查询 4号键JNB ACC.3, KEY 3 ; 查询 3号键JNB ACC.2, KEY 2 ; 查询 2号键JNB ACC.1, KEY 1 ; 查询 1号键JNB ACC.0, KEY 0 ; 查询 0号键INT0: RETIKEY 7: ; 7号键处理程序KEY 71: MOV A, P1 ; 再读 P1口各引脚JNB ACC.7, FUNC71 ; 确认键是否释放RETIKEY 6: ; 其他键处理程序 D20: ; 20ms延时子程序 END 主程序如下: ORG 0000H LJMP MAIN ORG 0003H ; 外部中断 0中断服务入口地址LJMP INT ; 转中断服务ORG 0100H MAIN: SETB EA ; 开总中断允许SETB EX0 ; 开 INT0中断SETB IT0 ; 下降沿有效中断服务程序清单如下: INTI CALL D20 ; 延时去抖动MOV P1, #0FFH ; P1口送全 1值(准双向口原因)MOV A, P1 ; 读 P1口各引脚CJNE A, #0FFH, CLOSE ; 验证是否确实有键闭合AJMP INT0 ; 无键按下(按键时间过短)则退;出中断( 2) 矩阵式键盘接口 行反转法 矩阵式键盘按键识别方法有行反转法和扫描法等。行反转法需要两个双向 I/O口分别接行、列线。步骤如下:( 1)由行线输出全 “0”,读入列线,判有无键按下。( 2)若有键按下 ,再将读入的列列线输出 ,读进行线的值。( 3)第一步读进的列线值与第二步读进的行线值运算,从而得到代表此键的唯一的特征值。行反转法因输入与输出线反过来用而得名。优点是判键速度快,两次即可。例题 请为 8051微处理器设计一个由 4行 4列键阵构成的键盘。解: 44矩阵键盘的线路连接如下页图所示。其中 P2口的低 4位作为输出线。 P1口的低 4位作为输入线,输入线通过 74LS21进行逻辑相与后作为 8051的一个外部中断源输入。当有键按下时就将引起中断。中断服务程序要对所按的键进行判别。 ( 1) 查询闭合键的位置子程序 KEYRKEYR子程序用以确定每组线中哪一位为 0,是否有多个 0。在调用前,应将读某组线的数据存入累加器 A中。 KEYR子程序返回时,某组线中 0的位置( 0 3)保存在 R3中。按键闭合引起中断后,执行中断服务程序。表 2-5 工作寄存器组选择控制表KEYR子程序如下:KEYR: CJNE A, #0FEH, TESTP11 ; 测试 P1.0MOV R3, #0 ; P1.0=0, 说明被按键的输入线为 P1.0LJMP FINISH ; 返回TESTP11: CJNE A, #0FDH, TESTP12 ; 测试 P1.1MOV R3, #1LJMP FINISHTESTP12: CJNE A, #0FBH, TESTP13 ; 测试 P1.2MOV R3, #2LJMP FINISH TESTP13: CJNE A, #0F7H, FINISH ; 测试 P1.3MOV R3, #3FINISH: RET( 2)中断服务程序中断服务程序开始部分应利用软件延时消除键抖动,然后再对所按的键做出处理。中断服务程序如下:ORG 1000H INT11:LCALL DELAY ; 延时去抖动MOV A, P1 ; 读输入线ANL A, #0FH ; 判断是否有键闭合CJNE A, #0FH, TEST ; 有键闭合,转判断按键程序RETI ; 无键闭合,返回TEST: MOV B, A ; 暂存LCALL KEYR ; 调用读取子程序MOV 40H, R3 ; 暂存在 40H单元MOV P2, #0FFH ; 输出线写 1MOV P1, B ; 输入线写入数据MOV A, P2 ; 读输出线LCALL KEYR ; 调用读取子程序XCH A, R3 SWAP A ORL 40H, A ; 得按键特征值RETI 中断程序结束后,键的特征值存放在 40H单元中。此键的输出线号位于40H单元的高 4位,其输入线号位于低 4位。此后,根据 40H单元的内容去查表,得到相应键的代码,可进行显示或其他处理。( 3)去抖动的延时子程序 DELAY利用 CPU的空闲方式,通过定时器 T1实现延时, T1必须预先置初值,以得到需要的延迟时间。设晶振频率为 6MHz, 欲延时 20ms, 定时时间为:( 216 TC) 6/12=20103s, 初值: TC=25536=63C0H。程序如下:DELAY: MOV TOMD, #11H ; 方式 1定时MOV TL1, #0C0H ; 定时器 1定时初值MOV TH1, #63H SETB EA ; 开中断SETB ET1 ; 开定时器 1中断SETB PT1 ; 定时器 1为高级中断(因被键盘中断调用)SETB TR1 ; 启动定时器ORL PCON, #1 ; 启动空闲方式,实际 CPU在此处等待CLR TR1 ; 以下四条指令只有在延时后,定时器被唤醒,才能执行CLR PT1 CLR ET1 RET END ( 4) 通过串行口扩展键盘接口MCS-51系列单片机的串行口与串 /并转换芯片配合(如串入并出芯片74LS164 ) 可以扩展键盘。例题 利用 MCS-51的串行口与串 /并转换芯片配合,扩展 2行 8列的键盘接口,键号为 0 15。要求给出其硬件连接和键盘查询子程序。解 : 串口与串 /并转换芯片配合扩展键盘的线路连接如下图所示。 其中, P1.0和 P1.1作为行线。键盘的编码为: P1.0线上的 8个键分别为 00H+( 00H 07H), P1.1线上的 8个键分别为08H+( 00H 07H)。 扫描线( 00H 07H) 的具体值存放在R4中。程序采取查询方式读取键号,并且考虑了键的抖动问题。 DLY1是延时子程序。程序如下:ORG 1000H SERKEY:MOV SCON, #00H ; 设置串行口MOV A, #00H ; 键盘初始化,送 00H到列线上LCALL VARTO ; 发送数据CHK:JNB P1.0, CHK0 ; 检查是否有键按下JNB P1.1, CHK0 ; 检查是否有键按下AJMP CHK ; 无键按下,继续查找CHK0:LCALL DLY1 ; 调用 10ms延时子程序,去抖JNB P1.0, CHEN ; 确实有键按下,转 CHENJNB P1.1, CHEN AJMP CHK ; 无键按下,继续查找CHEN:MOV R2, #0FEH ; 首列扫描字送 R2, 查键号,最低位为 0MOV R4, #00H ; 首列偏移值送 R4CHKN:MOV A, R2 ; 发送列扫描字LCALL VARTO JB P1.0, CH1 ; 检查 P1.0有无键按下;若无,转 CH1MOV A, #0 ; 第一行首列值送 A, 00H+( R4) AJMP CKEY ; 转求键号CH1:JB P1.1, NEXT ; 检查 P1.1有无键按下;若无,转 NEXTMOV A, #8H ; 第二行首列值送 ACKEY:ADD A, R4 ; 求键号,并入栈保护RETNEXT:INC R4 ; 指向下一列MOV A, R2 ; 取出原扫描字JNB ACC.7, KEND ; 是否已检查完 8列?RL A ; 8列未完,指向下一列MOV R2, A ; 列扫描字送 R2AJMP CHKN ; 8列未完,检查下一列KEND:AJMP SERKEY ; 8列查完,未查到有键按下,等待VARTO:MOV SBUF, A ; 发送 A中数据JNB TI, $ ; 发送等待CLR TI ; 清除RET DLY1: ; 延时 10ms子程序(略)END ; 结束6.2 MCS-51单片机与显示器的接口技术 显示器用于实现单片机应用系统中的数据输出和状态的反馈。单片机系统中常用的显示器有发光二极管、七段数码显示器、液晶显示器等。6.2.1 LED显示器及其接口发光二极管简称 LED( Light Emitting Diode)。 LED显示器从外观可分为 “8”字形的七段数码管、米字形数码管、点阵块、矩形平面显示器、数字笔划显示器等。1七段 LED数码显示器七段 LED数码管显示器能够显示十进制或十六进制数字及某些简单字符。但控制简单,使用方便,在单片机系统中应用较多。其结构如下页图所示。 上图中的 a g七个笔划(段)及小数点 dp均为发光二极管。数码管显示器根据公共端的连接方式,可以分为共阴极数码管(将所有发光二极管的阴极连在一起)和共阳极数码管(将所有发光二极管的阳极连在一起)。单片机系统扩展 LED数码管时多用共阳 LED。 共阳数码管每个段笔画是用低电平 (“0”)点亮的 ,要求驱动功率很小;而共阴数码管段笔画是用高电平 (“0”)点亮的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的降压电阻。2 LED点阵模块显示器LED点阵模块显示器是指由发光二极管排成一个 mn的点阵,每个发光二极管构成点阵中的一个点。这种显示器显示的字形逼真,能显示的字符比较多,但控制比较复杂。适用于显示汉字、图形和表格,广泛应用于公共场合的信息发布。 七段 LED字形码如下表所示。3. LED的驱动接口 LED工作时需要一定的工作电流,才能正常发光。单个 LED实际上是一个压降为 1.2 1.5V的发光二极管,流过 LED的电流大小决定了它的发光强度, R为限流电阻。适当减小限流电阻可以增加 LED的工作电流,使 LED的显示效果更好。但工作电流过大,会对驱动器件、 LED造成损害。通常每个段笔画要串一个数百欧姆的降压电阻。下图为单个 LED的驱动接口电路。4 LED数码管的显示与驱动LED数码管显示器的工作方式:静态和动态两种显示方式。( 1)静态显示方式静态显示方式的各数码管在显示过程中持续得到送显信号,与各数码管接口的 I/O口线是专用的。其特点是显示稳定,无闪烁,用元器件多,占 I/O线多,无须扫描。系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,节省 CPU时间,提高CPU的工作效率,编程简单。例题 利用在 8051串行口扩展多片串行输入并行输出的移位寄存器 74LS164作为静态显示器接口的方法,设计 3位静态显示器接口,并写出显示更新子程序,实现将 7FH 7DH 3个单元的数值分别显示在 3位 LED2LED0上。解: 接口电路如图下图所示。 3个共阳极数码管的公共端均接Vcc, 段码通过串行口,采用串 并转换原理,分别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 后勤日常培训教材
- 企业代理记账合同模板
- 小学信息技术第一册上 拖拽鼠标玩游戏教学设计 泰山版
- 小学湘美版第9课 有趣的拓印教案设计
- 展览用品租赁合同
- 股权代持合同模板
- 写字间租赁合同装修
- 渔业机械在国际市场的竞争力分析考核试卷
- 猕猴桃营养需求与管理考核试卷
- 一年级道德与法治上册 第二单元 小学生守规则 7 课间十分钟教学设计2 鄂教版
- 2024年高考政治(新课标卷)真题详细解读及评析(适用省份:山西、河南、云南、新疆)
- 2025年度工业余热回收利用合同能源管理协议
- 妊娠合并心脏病妇产科-2024鲜版
- 安宁疗护基本病房管理规范
- 2025年中国邮政集团江西分公司招聘笔试参考题库含答案解析
- 小学民族团结工作计划
- 2024年永康市第一人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2025年重庆市建筑安全员《A证》考试题库及答案
- 国家安全教育大学生读本教案第六章 坚持以经济安全为基础
- 2025年甘肃农垦集团招聘笔试参考题库含答案解析
- 2024年01月湖南2024岳阳市农商银行系统招考员工笔试历年参考题库附带答案详解
评论
0/150
提交评论