单片机原理及应用 教学课件 ppt 作者 张国锋 主编 第8章 单片机接口技术

上传人:E**** 文档编号:89503992 上传时间:2019-05-26 格式:PPT 页数:63 大小:845KB
返回 下载 相关 举报
单片机原理及应用 教学课件 ppt 作者 张国锋 主编 第8章  单片机接口技术_第1页
第1页 / 共63页
单片机原理及应用 教学课件 ppt 作者 张国锋 主编 第8章  单片机接口技术_第2页
第2页 / 共63页
单片机原理及应用 教学课件 ppt 作者 张国锋 主编 第8章  单片机接口技术_第3页
第3页 / 共63页
单片机原理及应用 教学课件 ppt 作者 张国锋 主编 第8章  单片机接口技术_第4页
第4页 / 共63页
单片机原理及应用 教学课件 ppt 作者 张国锋 主编 第8章  单片机接口技术_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《单片机原理及应用 教学课件 ppt 作者 张国锋 主编 第8章 单片机接口技术》由会员分享,可在线阅读,更多相关《单片机原理及应用 教学课件 ppt 作者 张国锋 主编 第8章 单片机接口技术(63页珍藏版)》请在金锄头文库上搜索。

1、本章总体要求:,掌握键盘的工作方式、接口电路和编程方法,1,掌握数码管显示器的工作方式、接口电路和编程方法,2,了解A/D、D/A的接口电路和编程方法,3,了解光电隔离技术的原理和简单使用方法,4,第8章 单片机接口技术,本章重点:,键盘的工作方式、接口电路和编程方法,1,数码管显示器的工作方式、接口电路和编程方法,2,本章难点:,键盘的工作方式、接口电路和编程方法,1,数码管显示器的工作方式、接口电路和编程方法,2,8.1.1 键盘接口技术 按照其接线方式的不同可分为两种:一种是独立式接法,一种是矩阵式接法。 单片机中应用的按键一般是由机械触点构成的触点式微动开关。这种开关具有结构简单,使用

2、可靠的优点,但当我们按下按键或释放按键的时候它有一个特点,就是会产生抖动,这种抖动对于人来说是感觉不到的,但对单片机来说,则是完全可以感应到的,因为单片机处理的速度是在微秒级的,而机械抖动的时间至少是毫秒级,因此,一次按键可能被误读为多次,造成读键错误。,8.1 常用人机交互设备接口,常用的去抖动的方法有两种:硬件方法和软件方法。 硬件去抖动的方法很多,需要硬件电路的支持,增加成本,好多书都有介绍。 单片机中常用软件去抖动法,就是在单片机获得端口为低电平的信息后,不是立即认定按键已被按下,而是延时10毫秒或更长一些时间后再次检测该端口,如果仍为低,说明此键的确被按下了。,1. 独立式键盘接口,

3、优点:结构简单,使用灵活 缺点:在按键数量较多时,造成输入口浪费较大,独立式键盘是由若干个机械触点开关构成的,把它与单片机的I/O口线连起来,通过读I/O口的电平状态,即可识别出相应的按键是否被按下。 如果按键不被按下,其端口就为高电平;如果相应的按键被按下,则端口就变为低电平。,2. 矩阵式键盘,优点:适用于按键较多的场合 缺点:判断闭合键位置的方法繁杂,矩阵式键盘由行线和列线组成,按键位于行、列的交叉点上,行、列线分别连接到按键开关的两端。 平时无按键动作时,行线处于高电平状态,当有按键按下时,行线电平状态将由与此相连的列线电平决定,列线电平为低,则行线电平为低;列线电平为高,则行线电平亦

4、为高。由于矩阵式键盘中行、列线为多键共用,各按键彼此相互影响,需将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。,(1)扫描法,1) 判断键盘中有无键按下 将全部行线X0-X3 置低电平,然后检测列线的状态,只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中;若所有列线均为高电平,则表示键盘中无键按下。,2) 判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平(即在置某根行线为低电平时,其它线为高电平),当确定某根行线为低电平后,再逐行检测各列线的电平状态,若某列为低,则该列线与置为

5、低电平的行线交叉处的按键就是闭合的按键。,检测当前是否有键被按下:检测的方法是P1.4P1.7输出全“0”,读取P1.0P1.3的状态,若P1.0P1.3为全“1”,则说明无键闭合;否则有键闭合。 去除键抖动:当检测到有键按下后,延时一段时间再做下一次的检测判断,若仍有键按下,应识别出是哪一个键闭合。 方法是对键盘的行线进行扫描,P1.4P1.7按下述4种组合依次输出:P1.7 1110;P1.6 1101;P1.5 1011;P1.4 0111;在每组行输出时读取P1.0P1.3;若全为“1”,则表示为“0”这一行没有键闭合;否则就是有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查

6、表法将闭合键的行值和列值转换成所定义的键值。,(2) 反转法,第一步:将行线编程为输入线,列线编程为输出线,并使输出线输出为全零电平,则行线中电平由高到低所在的行为按下的键所在的行。 第二步:同第一步相反,将行线编程为输出线,列线编程为输入线,并使输出线输出为全零电平,则列线中电平由高到低所在的列为按下的键所在的列。 综合一、二步的结果,可确定按键所在的行和列,从而识别出所按的键。,3. 键盘工作方式,单片机应用系统中,键盘扫描只是单片机的工作内容之一。单片机在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式,应根据应用系统中CPU的忙、闲情况而定,既要保证能不失时机地响应键盘操作

7、,又不要过多占用CPU的时间。 常用的键盘工作方式有编程查询方式和中断工作方式。,(1)编程查询方式 这种工作方式是利用CPU在完成其他工作的空闲时间,调用键盘工作子程序来响应键盘输入要求,工作过程如下。 1)首先判断整个键盘上有无键按下,若无键按下,CPU返回,进行其他工作。 2)若有键按下,延时10ms来消除按键抖动影响,然后确认键盘上是否确实有键按下,若无键按下,CPU返回,进行其他工作。若有键按下,进行下一步。 3)求按下键的键号。 4)进行该按键功能的处理工作。,(2)中断工作方式 单片机应用系统工作时,并不经常需要键输入,因此在查询工作方式工作时,CPU经常处于空扫描状态。为了进一

8、步提高单片机的工作效率,可以采用中断工作方式,即只有在键盘有键按下时,才执行键盘扫描,执行该键功能程序。,4. 独立式键盘的编程方法 编写程序,实现对流水灯的控制,有4个按键分别接到了P3口的P3.3,P3.4,P3.5,P3.6引脚上,8只流水灯分别连接到P1口的8个引脚,P1.0在最左边,P1.7在最右边。用P3.3,P3.4,P3.5 和P3.6 这四个按键分别来控制流水灯的开始、停止、向左和向右流动,时钟频率为6MHz。,P3.3 开始,按此键则灯开始流动(由左向右) P3.4 停止,按此键则停止流动,所有灯为灭 P3.5 向左,按此键则灯反向流动(由右向左) P3.6 向右,按此键则

9、灯正向流动(由左向右),程序如下:(采用查询工作方式) LRight EQU 00H ; 左右流动标志 StartEnd EQU 01H ; 起动及停止标志 LampCode EQU 21H ; 存放流动的数据代码 KeyCode EQU 22H ; 存放键值代码 ORG 0000H AJMP MAIN ORG 30H MAIN: MOV SP,#5FH MOV P1,#0FFH SETB LRight ;启动时处于向左流动的状态 CLR StartEnd ;启动时处于停止状态 MOV LampCode,#0FEH ;单灯流动的代码 LOOP: ACALL KEY ;调用键盘程序 JNB F0

10、,LNEXT ;如果无键按下,则继续 ACALL KEYPROC ;否则调用键盘处理程序 LNEXT: ACALL LAMP ;调用灯显示程序 AJMP LOOP ;反复循环,主程序到此结束,;延时子程序,键盘处理中调用 DELAY: MOV R7,#10 ;延时的时间一般为10ms D1: MOV R6,#250 D2: DJNZ R6,D2 DJNZ R7,D1 RET ;流水灯的延迟时间子程序 D500ms: MOV R7,#200 D51: MOV R6,#250 D52: NOP NOP NOP DJNZ R6,D52 DJNZ R7,D51 RET ;,;判断有无按键按下子程序 K

11、EY: CLR F0 ;清F0,表示无键按下 ORL P3,#01111000B ;将P3 口接有四个键的位置“1” MOV A,P3 ;取P3 口的值 ORL A,#10000111B ;将其余四位也置“1” CPL A ;取反 JZ K_RET ;如果为“0”则无键按下 ACALL DELAY ;否则延时去键抖 ORL P3,#01111000B MOV A,P3 ORL A,#10000111B CPL A JZ K_RET MOV KeyCode,A ;确实有键按下,将键值存入KeyCode中 SETB F0 ;设置有键按下的标志 K_RET: RET ;,; 键盘处理子程序 KEYP

12、ROC: MOV A, KeyCode ;从KeyCode中获取键值 JB ACC.3,KeyStart ;分析键的代码,某位被按下, ;则该位为”1”(在键盘程序中 ; 已取反) JB ACC.4,KeyOver JB ACC.5,KeyUp JB ACC.6,KeyDown AJMP KEY_RET KeyStart: SETB StartEnd ;第一个键按下后的处理 AJMP KEY_RET KeyOver: CLR StartEnd ;第二个键按下后的处理 AJMP KEY_RET KeyUp: SETB LRight ;第三个键按下后的处理 AJMP KEY_RET KeyDown

13、: CLR LRight ;第四个键按下后的处理 KEY_RET: RET ;,;灯显示子程序 LAMP: JB StartEnd,LampStart ;如果StartEnd=1,则启动 MOV P1,#0FFH AJMP LAMPRET ;否则关闭所有显示,返回 LampStart: JB LRight,LAMPUP ;如果LRight =1,则向左流动 MOV A, LampCode RL A ;实际就是左移位 MOV LampCode,A MOV P1,A LCALL D500ms AJMP LAMPRET LAMPUP: MOV A, LampCode RR A ;向右流动实际就是右移

14、 MOV LampCode,A MOV P1,A LCALL D500ms LAMPRET: RET END,这段程序的功能虽然很简单,但它演示了一个键盘处理程序的基本思路,程序本身很简单,也不很实用,实际工作中还会有好多要考虑的因素,比如主循环每次都调用了灯的循环程序,会造成按键反应“迟钝”。 独立式键盘除了上面介绍的这种连接方法,我们还可以采用图中b(中断方式)所示的连接方法,用一个“与”门把四个输入端连接起来,当有任何一个按键按下时,都会使“与”门输出为低电平,从而引起单片机的中断,它的好处是不用在主程序中不断地循环查询了,如果有键按下,单片机就去作相应的处理。,8.1.2 显示器接口技

15、术,LED显示器的结构 八段LED显示器由8个发光二极管组成。其中7个长条形的发光管排列成一个“日”字形,另一个圆点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分英文字母。 LED显示器有共阳极和共阴极两种不同的连接形式。,共阳和共阴结构的LED显示器各笔划段名的安排位置是相同的,当二极管导通时,相应的笔划段就发亮,由发亮的笔划段组合而显示出各种字符。 共阳极LED显示器是8个发光二极管的阳极连在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电压时,发光二极管被点亮,相应的段被显示。 共阴极LED显示器是8个发光二极管的阴极连在一起,通常此公共阴极接地,当某个发光

16、二极管的阳极为高电平时,发光二极管被点亮,相应的段被显示。,为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮。8个笔划段hgfedcba 对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字型代码。,例如:对于共阴LED显示器,当公共阴极接地(零电平),阳极hgfedcba各段为01110011 时,显示器就显示“P”字符,即“P”字符的字型码是73H;而如果是共阳极LED显示器,公共阳极接高电平,显示“P”字符的字型代码应为10001100(8CH),也就是与73H 的各位相反。,8段LED显示器字型码表,2LED显示器的工作方式 (1)LED静态显示方式 LED显示器工作于静态显示方式时,把多个LED显示器的每一段与一个独立的并行口连接起来,而公共端则根据数码管的种类连接到“VCC”或“GND”端。 这种连接方式的每一个显示器都要占用一个单独的具有锁存功能的I/O端

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

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

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