MCS-51单片机的交互通道配置与接口 (2)教学提纲

上传人:yuzo****123 文档编号:141461424 上传时间:2020-08-08 格式:PPT 页数:66 大小:1.45MB
返回 下载 相关 举报
MCS-51单片机的交互通道配置与接口 (2)教学提纲_第1页
第1页 / 共66页
MCS-51单片机的交互通道配置与接口 (2)教学提纲_第2页
第2页 / 共66页
MCS-51单片机的交互通道配置与接口 (2)教学提纲_第3页
第3页 / 共66页
MCS-51单片机的交互通道配置与接口 (2)教学提纲_第4页
第4页 / 共66页
MCS-51单片机的交互通道配置与接口 (2)教学提纲_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《MCS-51单片机的交互通道配置与接口 (2)教学提纲》由会员分享,可在线阅读,更多相关《MCS-51单片机的交互通道配置与接口 (2)教学提纲(66页珍藏版)》请在金锄头文库上搜索。

1、第6章 MCS-51单片机的交互通道配置与接口,主要内容: 从工程应用角度介绍了MCS-51单片机的交互通道配置与接口,主要包括人机界面中的键盘、显示器、微型打印机等。介绍了多种实用方案和设计技巧。重点在于系统概念的形成、各种接口设计方案和设计技巧的掌握,熟悉各种交互设备。难点在于使用动态方法进行键盘和显示的硬件及软件设计。,人机界面:是指人与计算机系统进行信息交互的接口,包括信息的输入和输出。 6.1 MCS-51单片机与键盘的接口技术 键盘:单片机系统中完成控制参数输入及修改的基本输入设备,是人工干预系统的重要手段。 键盘的分类:按编码方式可分为编码键盘与非编码键盘。按键组连接方式可分为独

2、立连接式键盘与矩阵连接式键盘。 6.1.1 概述 键盘输入的主要对象:各种按键或开关。 1独立连接式键盘 每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。其优点是硬件、软件结构简单,判键速度快,使用方便;缺点是占I/O口线多。 适用场合:多用于设置控制键、功能键。适用于键数少的场合。,独立连接式键盘连接图如右图所示。当没有键被按下时,所有的数据输入线都为高电平;当有任意一个键被按下时,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有键按下。,2. 矩阵连接式键盘 键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电

3、平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。其特点是键多时占用I/O口线少,硬件资源利用合理,但判键速度慢。 适用场合:多用于设置数字键,适用于键数多的场合。,按键开关去抖动问题 *,键盘的抖动时间一般为510ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。, 硬件去抖动,消除抖动不良后果的方法:,其中RC滤波电路去抖动电路简单实用,效果较好。, 软件去抖动 检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。,(1)开关状态的可靠输入。必须消除键抖动。可以采用硬件和软件两种方法,硬件方法就是在按键输入通道上添加去抖动电路;软件

4、方法则采用延迟1020ms (2)键盘状态的监测方法中断方式还是查询方式。 (3)键盘编码方法。 (4)键盘控制程序的编制。 6.1.3 键盘接口 功能:对键盘上所按下的键进行识别。 分类: (1)编码键盘:采用专用的编码/译码器件,被按下的键由该器件译码输出相应的键码/键值。其特点是增加了硬件开销,编码固定,但编程简单。适用于规模大的键盘。,6.1.2 使用键盘时必须解决的问题,(2)非编码键盘:采用软件编/译码的方式,通过扫描,对每个被按下的键判别输出相应的键码/键值。其特点是不增加硬件开销,编码灵活,但编程较复杂,占CPU时间。适用于小规模的键盘,特别是单片机系统。键盘。 1键盘接口的工

5、作原理 对于矩阵式键盘,如上页图所示,键盘的行线X0X3通过电阻接+5V,当键盘上没有键闭合时,所有的扫描线和回送线都断开,无论扫描线处于何种状态,回送线都呈高电平。当键盘上某一键闭合时,则该键所对应的扫描线和回送线被短路,可以确定,变为低电平的回送线与扫描线相交处的键闭合。 CPU对键盘扫描的方式:程序控制的随机方式( CPU空闲时扫描键盘)、定时控制方式(定时扫描键盘)、中断方式。 CPU对键盘上闭合键的键号确定方法:根据扫描线和回送线的状态计算求得,或根据行线和列线的状态查表求得。,2键输入程序的设计方法 (1)判断键盘上是否有键闭合; (2)消除键的机械抖动; (3)确定闭合键的物理位

6、置; (4)得到闭合键的编号; (5)确保CPU对键的一次闭合只做一次处理 3键盘接口方式 (1)独立式键盘接口(静态方式) 特点:结构简单,每个按键接单片机的一条I/O线,通过对输入线的查询,可以识别每个按键的状态。 例题 在MCS-51 单片机系统中,设计一个含8个按键的独立式键盘。 解:在MCS-51中,含8个按键的独立式键盘的线路连接如下页图所示,8个按键经上拉电阻拉高后分别接到MCS-51单片机P1口的8条I/O线上(P1.0P1.7)。,在无键按下的情况下,P1.0P1.7线上输入均为高电平。当有键按下时,与被按键相连的I/O线将得到低电平输入,其他位按键的输入线上仍维持高电平输入

7、。,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

8、号键 JNB ACC.0,KEY 0; 查询0号键 INT0:RETI KEY 7:; 7号键处理程序 KEY 71:MOV A, P1; 再读P1口各引脚 JNB ACC.7, FUNC71; 确认键是否释放 RETI KEY 6:; 其他键处理程序 D20: ; 20ms延时子程序 END,主程序如下: ORG 0000H LJMP MAIN ORG 0003H; 外部中断0中断服务入口地址 LJMP INT; 转中断服务 ORG 0100H MAIN: SETB EA; 开总中断允许 SETB EX0; 开INT0中断 SETB IT0; 下降沿有效 中断服务程序清单如下: INTI C

9、ALL D20; 延时去抖动 MOV P1, #0FFH; P1口送全1值(准双向口原因) MOV A, P1; 读P1口各引脚 CJNE A, #0FFH,CLOSE; 验证是否确实有键闭合 AJMP INT0; 无键按下(按键时间过短)则退;出中断,(2)矩阵式键盘接口行反转法,矩阵式键盘按键识别方法有行反转法和扫描法等。行反转法需要两个双向I/O口分别接行、列线。步骤如下: (1)由行线输出全“0”,读入列线,判有无键按下。 (2)若有键按下,再将读入的列列线输出,读进行线的值。 (3)第一步读进的列线值与第二步读进的行线值运算,从而得到代表此键的唯一的特征值。 行反转法因输入与输出线反

10、过来用而得名。优点是判键速度快,两次即可。 例题请为8051微处理器设计一个由4行4列键阵构成的键盘。 解:44矩阵键盘的线路连接如下页图所示。其中P2口的低4位作为输出线。P1口的低4位作为输入线,输入线通过74LS21进行逻辑相与后作为8051的一个外部中断源输入。当有键按下时就将引起中断。中断服务程序要对所按的键进行判别。,(1)查询闭合键的位置子程序KEYR KEYR子程序用以确定每组线中哪一位为0,是否有多个0。在调用前,应将读某组线的数据存入累加器A中。 KEYR子程序返回时,某组线中0的位置(03)保存在R3中。按键闭合引起中断后,执行中断服务程序。,表2-5 工作寄存器组选择控

11、制表,KEYR子程序如下: KEYR:CJNE A, #0FEH, TESTP11; 测试P1.0 MOV R3, #0 ; P1.0=0,说明被按键的输入线为P1.0 LJMP FINISH; 返回 TESTP11:CJNE A, #0FDH, TESTP12 ; 测试P1.1 MOV R3, #1 LJMP FINISH TESTP12:CJNE A, #0FBH, TESTP13 ; 测试P1.2 MOV R3, #2 LJMP FINISH TESTP13:CJNE A, #0F7H, FINISH; 测试P1.3 MOV R3, #3 FINISH:RET,(2)中断服务程序 中断服

12、务程序开始部分应利用软件延时消除键抖动,然后再对所按的键做出处理。 中断服务程序如下: 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; 输出线写1 MOV P1, B; 输入线写入数据 MOV A, P2; 读输出线 LCALL KEYR; 调用读取子程序

13、 XCH A, R3 SWAP A ORL 40H, A; 得按键特征值 RETI,中断程序结束后,键的特征值存放在40H单元中。此键的输出线号位于40H单元的高4位,其输入线号位于低4位。此后,根据40H单元的内容去查表,得到相应键的代码,可进行显示或其他处理。 (3)去抖动的延时子程序DELAY 利用CPU的空闲方式,通过定时器T1实现延时, T1必须预先置初值,以得到需要的延迟时间。设晶振频率为6MHz,欲延时20ms,定时时间为: (216TC)6/12=20103s,初值:TC=25536=63C0H。 程序如下: DELAY:MOV TOMD, #11H; 方式1定时 MOV TL

14、1, #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列的键盘

15、接口,键号为015。要求给出其硬件连接和键盘查询子程序。 解:串口与串/并转换芯片配合扩展键盘的线路连接如下图所示。,其中,P1.0和P1.1作为行线。键盘的编码为: P1.0线上的8个键分别为00H+(00H07H),P1.1线上的8个键分别为08H+(00H07H)。扫描线(00H07H)的具体值存放在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; 确实有键按下,转CHEN JNB P1.1, CHEN AJMP CHK; 无键按下,继续查找 CHEN:MOV R2, #0FEH; 首列扫描字送R2,查键号,最低位为0 MOV R4, #00H ; 首列偏移值送R4,CHKN:MOV A, R2; 发送列扫描字 LCALL VARTO JB P1.0, CH1; 检查P1.0有无键按下;若无,转CH1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号