基于汇编与C语言的单片机原理及应用-电子教案-程启明 第8章 MCS 51单片机的外部扩展技术 二 徐进老师制作

上传人:E**** 文档编号:89488731 上传时间:2019-05-25 格式:PPT 页数:100 大小:3.62MB
返回 下载 相关 举报
基于汇编与C语言的单片机原理及应用-电子教案-程启明 第8章  MCS 51单片机的外部扩展技术 二 徐进老师制作 _第1页
第1页 / 共100页
基于汇编与C语言的单片机原理及应用-电子教案-程启明 第8章  MCS 51单片机的外部扩展技术 二 徐进老师制作 _第2页
第2页 / 共100页
基于汇编与C语言的单片机原理及应用-电子教案-程启明 第8章  MCS 51单片机的外部扩展技术 二 徐进老师制作 _第3页
第3页 / 共100页
基于汇编与C语言的单片机原理及应用-电子教案-程启明 第8章  MCS 51单片机的外部扩展技术 二 徐进老师制作 _第4页
第4页 / 共100页
基于汇编与C语言的单片机原理及应用-电子教案-程启明 第8章  MCS 51单片机的外部扩展技术 二 徐进老师制作 _第5页
第5页 / 共100页
点击查看更多>>
资源描述

《基于汇编与C语言的单片机原理及应用-电子教案-程启明 第8章 MCS 51单片机的外部扩展技术 二 徐进老师制作 》由会员分享,可在线阅读,更多相关《基于汇编与C语言的单片机原理及应用-电子教案-程启明 第8章 MCS 51单片机的外部扩展技术 二 徐进老师制作 (100页珍藏版)》请在金锄头文库上搜索。

1、第8章 MCS-51单片机的外部扩展技术(二),8.1 MCS-51单片机的外部设备接口技术,8.1.1 MCS-51单片机与键盘的接口技术,8.1.1.1 键盘的工作原理与去抖动方法,1按键的电路原理,图8-1 单按键的电路结构,图8-2 键闭合和断开时的电压波动,2抖动的消除方法,消除抖动的方法有硬件消抖法和软件消抖法两种。,(1)硬件消除抖动方法,采用简单的基本R-S触发器或单稳态电路(如图8-3所示)或RC积分滤波电路(如图8-所示)构成去抖动按键电路。,图8-3 R-S触发器消抖动电路,图8-4 滤波消抖动电路,(2)软件去抖动方法,此法在首次检测到有键按下时,该键所对应线的电压为低

2、电平,执行一段延时10ms的子程序后,避开抖动,待电平稳定后再读入按键的状态信息,确认该线电平是否仍为低电平,如果仍为低电平,则确认确实有键按下。当按键松开时,该线的低电平变为高电平,执行一段延时10ms的子程序后,检测该该线为高电平,说明按键确实已经松开。采取本措施,可消除前沿和后沿两个抖动期的影响。,8.1.1.2 非编码键盘与CPU的连接方式,非编码键盘与CPU的连接方式可分为独立式按键和矩阵式键盘。,1独立式按键及接口,独立式按键是指每个按键独占一根I/O接口线,各按键之间相互独立,每根I/O接口线上的按键工作状态都不会影响其他I/O接口线的工作状态。8个按键电路如图8-5所示。每一个

3、按键独立地占用一条数据线,当某键闭合时,其对应的I/O接口线就被置为低电平。 独立式按键的软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。 独立式按键的优点是各按键相互独立,电路配置简单灵活,识别按下按键的软件编写简单;但按键数量较多时,I/O接口线占用较多,电路结构繁杂。因此它适合于按键数量较少的场合。,图8-5 独立式按键电路,2矩阵式键盘及接口,矩阵式(也称行列式)键盘由行线和列线组成,按键位于行、列的交叉点上。图8-6给出了44键盘的结构和一种接口方法。图中4根I/O接口线

4、(P1.0P1.3)作为行线,另外4根I/O接口线(P1.4P1.7)作为列线,按键跨接在行线和列线上。当键盘上没有键闭合时,行线由P1.0P1.3内部拉高电路拉成高电平,当行线P1.x上有键闭合时,则行线P1.x和闭合键所在列线P1.y短路,P1.x状态取决于列线P1.y的状态。例如,键6按下,P1.1和P1.6被接通,P1.1的状态由P1.6的输出状态决定。 行列式键盘的优点是占用I/O接口线较少,但由于矩阵式键盘中行、列线为多键共用,各按键彼此将相互发生影响,所以必须将行、列线信号配合,才能确定闭合键位置。因此,它的软件结构较为复杂。它适用于按键较多的场合。,图8-6 矩阵式键盘的结构,

5、8.1.1.3 键盘的任务,非编码矩阵式键盘所完成的工作分为3个层次: (1)键盘状态的判断。单片机如何来监视键盘的输入,也即如何判断是否有键按下(即键盘状态的判断),体现在键盘的工作方式上就是编程扫描、定时扫描和中断扫描3种。 (2)闭合键的识别。若有键按下,需识别是哪一个键按下(即闭合键的识别),并确定按下键的键号(键值)。体现在按键的识别方法上就是扫描法和线反转法2种。 (3)键盘的编号。根据按下键的键号,实现按键的功能,即跳向对应的键处理程序。,1键盘状态的判断(也称为键盘扫描控制方式),单片机在忙于其他各项工作任务时,如何兼顾键盘的输入,这取决于键盘的工作方式。工作方式选取原则是,既

6、要保证及时响应按键操作,又不过多占用单片机工作时间。键盘状态的判断常用方式有编程扫描、定时扫描和中断扫描3种。,(1)编程扫描方式(也称查询方式)。利用单片机空闲时,调用键盘扫描子程序,反复扫描键盘。如果单片机的查询的频率过高,虽能及时响应键盘的输入,但也会影响其他任务的进行。查询的频率过低,可能会键盘输入漏判。所以要根据单片机系统的繁忙程度和键盘的操作频率,来调整键盘扫描的频率。 (2)定时扫描方式。每隔一定的时间对键盘扫描一次。在这种方式中,通常利用单片机内的定时器产生的定时中断,进入中断子程序来对键盘进行扫描,在有键按下时识别出该键,并执行相应键的处理程序。为了不漏判有效的按键,定时中断

7、的周期一般应小于100ms。 (3)中断扫描方式。上面两种方法即使按键没有按下,单片机CPU总是不断的扫描键盘,占用了很多CPU处理时间。而中断扫描法则只有按键按下时,才触发中断,单片机响应中断,在中断服务程序中再判断哪个键被按下,进而扫描键值。如无键按下,单片机将不理睬键盘。此方式克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个的中断资源,中断扫描方式的硬件接口电路连接方法如图8-7所示 。,图8-7 中断方式的矩阵式键盘接口电路,按照上面的电路连接方式,中断扫描法的C语言程序如下: # include char Key

8、Scan (void) /键盘扫描函数(扫描法或反转法) char key; void main () IT0=1; EX0=1; EA=1; P1=0x0f; while (1) void int0( ) interrupt 0 using 1 /外部中断0程序 key=KeyScan(); /获取键值 在该程序中,首先设置外部中断0的下降沿触发,并打开相应的中断;然后再外部中断0的服务例程中,便可以调用扫描法或反转法来获取键值,并根据键值做相应的处理。,当判断到键盘上有键闭合时,则要进一步识别闭合键的位置。由于矩阵式键盘中行、列线为多键共用,各按键彼此将相互发生影响,所以必须将行、列线信号

9、配合,才能确定闭合键位置。矩阵式键盘按键的识别方法常用逐行扫描法(简称扫描法)和线翻转法(简称反转法)两种。,2闭合键的识别,对于独立式按键键盘,因按键数量少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,低4位是行号,高4位是列号。,3键盘的编码,0号键按下时,必在行线输出1110B,列线读得1110B时,其键值为11101110B =EEH 1号键按下时,必在行线输出1110B,列线读得1101B时,其键值为11011110B =DEH 2号键按下时,必在行线输出1110B,列线读得1011B时,其键值

10、为10111110B =BEH 15号键按下时,必在行线输出0111B,列线读得0111B时,其键值为01110111B =77H,键盘查询程序设计时,可将这16个按键对应的键值按照键号015连续存放,构成一个数据表,通过查表即可确定键号。表8-1则键值和键号的对应关系表。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对按排进行编码。以图8-6中的44键盘为例,可将键号编码为:01H、02H、03H、0EH、0FH、10H等16个键号。编码相互转换可通过计算或查表的方法实现。,表8-1 键值表,4闭合的键是否释放判别,按键闭合一次只能进行一次

11、功能操作,因此,等按键释放后才能根据键号执行相应的功能键操作。,8.1.1.4 键盘接口编程举例,【例8-1】设计一个独立式按键的键盘接口,并编写键扫描程序,电路原理图参见前面的图8-5,键号从上到下分别为07。 参考程序见第348349页,【例8-2】设计一个矩阵式按键的键盘接口,并编写键扫描程序,电路原理图参见前面的图8-6。 参考程序见第350352页,8.1.2 MCS-51单片机与LED数码管显示器的接口技术,在单片机应用系统中,为了便于观察和监视单片机系统的运行情况,常需要用显示器显示运行的中间结果及状态等信息。单片机系统中常用的显示器有发光二极管(单个LED)、8段发光数码管(L

12、ED)显示器、LED点阵显示器、液晶(LCD)显示器等。其中:发光二极管组成的显示器是单片机应用产品中最常用的廉价输出显示设备;LED数码管显示器因具有使用电压低、耐振动、寿命长、显示清晰、亮度高、配置灵活、与单片机接口方便等特点,而被单片机应用系统广泛使用;发光二极管或8段数码管都不能显示字符(含汉字)及更为复杂的图形信息,LED点阵显示是把很多的LED按矩阵方式排列在一起,通过对各LED发光与不发光的控制来完成各种字符或图形的显示,常见的LED点阵显示模块有57,79,88等结构;LCD显示器是以电流刺激液晶分子产生点、线、面配合背部灯管构成平面画面,它由一定数量的彩色或黑白像素组成,放置

13、于光源或者反射面前方。由于LCD显示器功耗很低,因此倍受工程师青睐。,8.1.2.1 LED显示器的结构与原理,1LED显示器的外形及两种结构,LED显示器是由发光二极管按一定结构组合起来显示字段的显示器件,也称为数码管。在单片机应用系统中通常使用的是 “8”字型的8段式LED数码显示器,其外形结构和引脚如图8-9(a)所示,它由8个发光二极管构成,通过不同的组合可显示09、AF及小数点“”等字符,其中7段发光二极管构成7笔的“8”字形,1段组成小数点。数码管按其外形尺寸有多种形式,使用较多的是0.5”和0.8”,显示的颜色也有多种形式,主要有红色和绿色,亮度强弱可分为超亮、高亮和普亮。数码管

14、的正向压降一般为1.42.3V,额定电流一般为10mA,最大电流约为40mA。 LED数码管有共阴极和共阳极两种结构,图8-9(b)所示为共阴极结构,8段发光二极管的阴极端连接在一起作为公共端com,阳极端分开控制。使用时公共端接地,此时当某个发光二极管的阳极为高电平时,则此发光二极管点亮;图8-9(c)所示为共阳极结构,8段发光二极管的阳极端连接在一起作为公共端com,阴极端分开控制。使用时公共端接电源,此时当某个发光二极管的阴极为低电平(通常接地)时,则此发光二极管点亮。,图8-9 LED数码管,LED数码管共计8段。正好是一个字节。习惯上是以“a”段对应段码字节的最低位。各段与字节中各位

15、对应关系如表8-2所示。,表8-2 码段与字节中各位的对应关系表,不同字符字形的字段码不一样,而对于同一个数字或字符,共阴极连接和共阳极连接的字段码也不一样,共阴极和共阳极的字段码互为反码,如表8-3所示为09数字的共阴极和共阳极的字段码。,表8-3 数字的共阴极和共阳极的字段码,表8-3只列出了部分段码,读者可以根据实际情况选用,或重新定义。除 “8”字型的LED数码管外,市面上还有“1”型、“米”字型和“点阵”型LED显示器。,2LED显示器的译码方式,由显示数字或字符转换到相应字段码的方式称为译码方式。数码管是单片机的输出显示器件,单片机要输出显示的数字或字符,通常采有两种译码方式:硬件

16、译码方式和软件译码方式。,硬件译码方式是指利用专门的硬件电路来实现显示字符到字段码的转换,这样的硬件电路有很多,比如MOTOTOLA公司生产的MC14495芯片就是其中的一种,MC14495是共阴极1位十六进制数-字段码的转换芯片,能够输出用4位二进制表示形式的1位十六进制数的7位字段码,不带小数点,因此,它只能外接无小数点的7段LED数码管或小数点不连接的8段LED数码管。 MC14495的内部结构和外部连接如图8-10所示。它由内部锁存器和译码驱动电路两部分组成,在译码驱动电路部分还包含一个字段码ROM阵列。内部锁存器用于锁存输入的4位二进制数,以便提供给译码电路译码。译码驱动电路对锁存器的4位二进制进行译码,产生送往LED数码管的7位字段码。硬件译码时,要显示一个数字,单片机只需送出这个数字的4位二进制编码,经I/O接口电路并锁存,然后通过显示译码器,就可以驱动LED显示器中的相应字段发光。,(1)硬件译码方式,

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

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

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