第八章MCS51单片机的人机界面接口技术.ppt
《第八章MCS51单片机的人机界面接口技术.ppt》由会员分享,可在线阅读,更多相关《第八章MCS51单片机的人机界面接口技术.ppt(95页珍藏版)》请在三一文库上搜索。
1、单片机应用技术,主讲教师:苏晓龙,全校公共选修课,计算机学院信息科学系,办公室:计A315-1,答疑地点:计A315-1,E-mail:,第八章 MCS-51单片机的人机界面接口技术,8.1显示器接口 8.2键盘及其接口 8.3 8255A可编程并行I/O接口扩展 8.4 拨码盘及语音接口,8.1 显示器接口,8.1.1 LED显示器接口 8.1.2 LCD显示器接口 8.1.3 典型键盘/显示器接口实例,返回本章首页,8.1.1 LED显示器接口,1LED显示器结构与原理,LED显示块是由发光二极管显示字段的显示器件。,在微机应用系统中通常使用的是七段LED。这种显示块有共阴极与共阳极两种,
2、如图8-1所示。七段显示块与微机接口非常容易。如表8-1所示。,8.1.1 LED显示器接口,1LED显示器结构与原理,LED显示块是由发光二极管显示字段的显示器件。,(a)管脚配置 (b)共阴极 (c)共阳极 图8-1 七段LED显示块,e,表8-1 七段LED的段选码,8.1.1 LED显示器接口,2LED显示器与显示方式,在微机应用系统中使用LED显示块构成N位LED显示器。图8-2是N位显示器的构成原理。,LED显示器有两种方式: (1)LED静态显示方式(如图8-3所示) (2)LED动态显示方式(如图8-4所示),图8-2 N位LED显示器,8.1.1 LED显示器接口,1) 静态
3、显示器接口,静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。就是在同一时刻只显示1种字符,或者说被显示的字符在同一时刻是稳定不变的。,这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个字段分别与一个8位I/O接口相连,I/O端口只要有字形代码输出,相应字符即显示出来,并保持不变,直到I/O端口输出新的字形代码。,采用静态显示方式,虽然具有较高的显示亮度,占用CPU时间少,编程简单等优点,但其占用的端口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。,例1:图8. 3是数码管静态显示方式的一种典型应用,用两片74LS27
4、3驱动2位静态LED显示器(共阴极数码管)。P2.7=0时选通1#显示器,其地址为7FFFH; P2.6=0时选通2#显示器,其地址为BFFFH。用下列程序可在显示器上显示字符“1”和“2”:,8.1.1 LED显示器接口,图8.3 2位静态LED显示器,MOV DPTR,#7FFFH MOV A,#06H ; “1”的字形代码 MOVX DPTR,A MOV DPTR,#0BFFFH MOV A,#5BH ; “2”的字形代码 MOVX DPTR,A,8.1.1 LED显示器接口,图8-4 八位LED动态显示器电路,8.1.1 LED显示器接口,2)动态显示接口,动态显示是一位一位地轮流点亮
5、各位数码管,这种逐位点亮显示器的方式称为动态扫描。,通常,各位数码管的段选线相应并联在一起,由一个8位的I/O端口控制;各位LED显示器的位选线(COM端)由另外的I/O端口控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用动态扫描方式,即在某一时刻只选通一位数码管,并送出相应的字形代码,在另一时刻选通另一位数码管,并送出相应的字形代码。依此规律循环,逐个循环点亮各位数码管,每位显示1 ms左右,即可使各位数码管显示要显示的字符。虽然这些字符是在不同的时刻分别显示的,但由于人眼存在视觉暂留效应,可以给人以同时显示的感觉。,8.1.1 LED显示器接口,采用动态显示方式节省I/
6、O端口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,仍占用CPU较多的时间。 用51系列单片机构建数码管动态显示系统时,采用简单的接口芯片即可进行系统扩展,其特点是接口电路简单,编程方便,价格低廉。6位动态LED显示器如图8.5所示。,2)动态显示接口,图8.5 6位动态LED显示器,图8.5中,数码管采用共阴极LED,字形码输出口74LS273经过8路同相驱动电路7407后接至数码管的各段,当位线输出“1”时,驱动数码管发光。7407是集电极开路的同相驱动器,能为发光段提供更大的导通电流,增强LED的发光亮度,其输出端经110 的限流电阻接
7、至+5 V电源,改变电阻的大小即可调节发光亮度。用另一个输出口74LS273作为LED的位选控制口,其输出经过6路反相驱动器75452后接至数码管的COM端。当位选控制口的某位输出“1”时,75452反相器驱动相应的LED位发光。,2)动态显示接口,字形码输出口和位选控制口的地址分别为:,字形码输出口地址:DFFFH(地址不是惟一的); 位选控制口的地址:EFFFH(地址不是惟一的)。,在单片机应用系统中,为了便于对LED 显示器进行管理,需要建立一个显示缓冲区。显示缓冲区DISBUF是片内RAM的一个区域,它的作用是存放要显示的字符,其长度与LED的位数相同。,3)动态扫描程序,图8.5 中
8、的动态显示器,DISBUF为6个字节,设DISBUF占用片内RAM的70H75H单元。显示缓冲区DISBUF中的内容是由其他处理程序事先存入DISBUF中的,再由显示程序进行显示。,设要显示“P89C51,则“P89C51”在DISBUF中的存放形式见表6.3所示。数码显示器的低位(最右边的位)显示的是显示缓冲区中的低地址单元中的数,因此在显示缓冲区中存放的次序为低地址单元存低位,高地址单元存高位。,表6.3 显示缓冲区,3)动态扫描程序,要说明的是,显示程序是利用查表方法来得到要显示字符的字形代码的。在显示程序的字形代码(显示段码)表中, 字形代码存放的次序依次为“09”,“AF”,“空白”
9、和“P”。其中,“P”的序号为18(即11H),故在DISBUF中的75H单元用11H代表“P”。,3)动态扫描程序,显示程序的任务是把显示缓冲区中待显示的字符送往LED显示器显示。在进行动态扫描显示时, 从DISBUF中依次取出待显示的字符,采用查表的方法得到其对应的字形代码,逐个地循环点亮各位数码管,每位显示1 ms左右,即可使各位数码管显示要显示的字符。,设DISBUF中的信息为“P89C51”,可由下列程序在显示器上显示“P89C51”:,3)动态扫描程序,LOOP1: LCALL DISPLAY ;调用显示子程序 LJMP LOOP1 ; 循环 DISPLAY: MOV R0,#70
10、H ;R0指向DISBUF首 ;地址 MOV R3,#01H ; 右起第1个LED ;的选择字 NEXT: MOV A,#00H ; 取位选控制字为全灭 MOV DPTR,#0EFFFH ;取位选控制口 ;地址 MOVX DPTR,A ; 瞬时关显示器 MOV A,R0 ;从DISBUF中取出字符,MOV DPTR,#DSEG ;取段码表首地址 MOVC A,A+DPTR ;查表,取对应的字形码 MOV DPTR,#0DFFFH ;取字形码输出口地址 MOVX DPTR,A ;输出字形码 MOV DPTR,#0EFFFH ;取位选控制口地址 MOV A,R3 ;取当前位选控制字 MOVX DP
11、TR,A ; 点亮当前LED显示位,3)动态扫描程序,LCALL DELAY ;延时1 ms INC R0 ;R0指向下一个字符 JB ACC.5,EXIT ;若当前显示位是第6位则 ;结束 RL A ; 下一个LED的选择字 MOV R3,A SJMP NEXT,EXIT: RET ;返回段码表 09,AF,空白, DSEG: DB 3FH,06H,5BH,4FH,66H, 6DH,7DH, DB 07H,7FH6FH,77H,7CH, 39H,5EH, DB 79H,71H,00H,73H DELAY:MOV R7,#02H ; 延时1 ms的子程序 DEL1: MOV R6,#0FFH
12、DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET,例2针对图8.5所示的电路,编一显示程序, 调用动态扫描显示子程序DISPLAY,使数码显示器显示“012345”共6个字符。,解: 参考程序如下: MOV A, 05H ; 取最右边1位字符 MOV R0,70H ; 指向DISBUF首址(最低位) MOV R1,06H ; 共送入6个字符 LOP2: MOV R0,A ; 将字符送入DISBUF INC R0 ; 指向下一显示单元 DEC A ; 下一个显示字符 DJNZ R1,LOP2 ; 若6个数未送完,则重复 LOP3:LCALL DISPLAY; 扫描显示一遍
13、SJMP LOP3 ; 重复扫描,8.1.1 LED显示器接口,3LED显示器接口实例,从LED显示器的原理可知,为了显示字母与数字,必须最终转换成相应的段选码。这种转换可以通过硬件译码器或软件进行译码。,硬件译码器LED显示器接口(如图8-6所示) 软件译码LED显示器接口(如图8-7 、8-8所示),图8-6 利用硬件译码器的七段LED接口电路,图8-7 通过8155扩展I/O口控制的8位LED动态显示接口,图8-8 动态显示子程序流程图,返回本节,8.2 键盘及其接口,1 按键的分类,键盘实际上是由排列成矩阵形式的一系列按键开关组成的,用户通过键盘可向CPU输入数据信息、地址信息和各种命
14、令。键盘按照其接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法不同。,编码键盘主要是用硬件来实现对按键的识别,键盘接口电路能够由硬件逻辑自动提供与键对应的编码。此外,编码键盘一般还具有去抖动和多键、窜键保护电路。,这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。,非编码键盘的接口电路只是简单地提供按键的行列矩阵,对按键的识别、编码、去抖动等工作均由软件完成。由于其经济实用,因此常应用于单片机系统中。下面将重点介绍非编码键盘。,8.2 键盘及其接口,1 按键的分类,2. 矩阵键盘的结构及原理,8.2 键盘及其接口,在单片机应用
15、系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,单片机应用系统完成该按键所设定的功能。,一组键或一个键盘,总有一个接口电路与CPU相连。当按键较多时一般采用行列式结构并按矩阵形式排列,如图8.9所示。,图8.9.1 矩阵键盘的结构,8.2 键盘及其接口,图8.9.2 矩阵键盘在89C51单片机应用实例之一,8.2 键盘及其接口,图8.9给出了44行列式键盘的基本结构示意图。44表示有4根行线和4根列线,在每根行线和列线的交叉点上有1个按键,组成了一个有16个按键的矩阵键盘。 列线通过上拉电阻接到5 V上。
16、当无键按下时,列线处于高电平状态; 当有键按下时,行、列线将导通,此时,列线电平将由与此列线相连的行线电平决定,这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。识别按键是否按下的方法很多,其中,最常见的方法是行扫描法。,8.2 键盘及其接口,3. 矩阵键盘的行扫描法,8.2 键盘及其接口,所谓行扫描法,就是通过行线逐行发出低电平信号。如果该行线所连接的键没有按下,则列线的电平信号是全“1”; 如果有键按下的话,则列线得到的是非全“1”信号,即根据列线的电平信号是否有“0”信号来判断有无键按下。,在使用行扫
17、描法时,为了提高效率, 首先快速检查整个键盘中是否有键按下。,若无键按下,则结束键盘扫描程序; 若有键按下,则再用逐行扫描的方法来确定闭合键的具体位置(按下的是哪一个键)。,具体方法是:,8.2 键盘及其接口,1)先扫描第0行,行输出值为1110B(见图8.9.1),第0行为 “0”,其余3行为“1”(通常,把行输出值为0的行称为当前行),然后读入列信号,判断是否为全“1”。 若列输入值为全“1”,则当前行无键按下。,2)若第0行无键按下,再扫描第1行。行输出1101(第1行为“0”,其余3行为“1”), 再扫描下一行 依此规律逐行扫描,直到扫描某行时,其列输入值不为全“1”,则根据行输出值和
18、列输入值中0的位置确定闭合键的具体位置,从而用计算法或查表法得到闭合键的键值。,例8. 3 为单片机设计一个84矩阵键盘,并编写键盘扫描程序。,8.2 键盘及其接口,解: 接口电路如图8.10所示。用74LS273作为行输出口,输出8位行扫描信号。 用74LS244作为列输入口,输入4位列输入值。其口地址分别是: 行输出口地址:F7FFH; 列输入口地址:FBFFH。,图8.10 一个84矩阵键盘电路,8.2 键盘及其接口,键盘采用行扫描法方式工作,键盘扫描子程序应具有以下功能: (1) 判断有无键按下。其方法为:行输出口输出全为0,读列输入口信息,若列输入值为全1,则说明无键按下; 若不为全
19、1,则说明有键按下。 (2) 消除按键的抖动。 微机键盘通常使用机械触点式按键开关。机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图8.11所示,抖动时间的长短与开关的机械特性有关,一般为510 ms。 ,8.2 键盘及其接口,图8.11 按键抖动示意图,8.2 键盘及其接口,在触点抖动期间检测按键的通断状态,可能导致判断出错,即一次按下按键被错误地认为是多次操作,这种情况是不允许出现的。为了克服由于按键触点机械抖动所致的检测误判,必须采取消抖动措施。 在此,使用软件延时的方法消除按键的抖动。当检测到有按键按下时,调用两次
20、显示子程序,每调用一次延时6 ms,共延时12 ms。这样既实现了按键的消抖动,又可保持显示器有稳定的显示。同样,在检测到闭合键释放后,也采用软件延时的方法消除按键的抖动。,8.2 键盘及其接口,(3) 逐行扫描。若有键按下,则逐行扫描,以判别闭 合键的具体位置。 (4) 计算闭合键的键值。计算公式为 键值行号4列号 (5) 判断按键是否释放。计算出闭合键的键值后, 再判断按键是否释放。若按键未释放,则等 待; 若键已释放,则再延时消抖。 (6) 命令处理。根据闭合键的键值,程序应完成该 按键所设定的功能。若按下的是命令键,则 转入命令键处理程序,完成命令键的功能; 若按下的是数字键,则转入数
21、字键处理程序, 进行数字的存储和显示等操作。,8.2 键盘及其接口,键盘扫描程序如下: ; KEY 键盘扫描程序 ; 入口参数: 无 ; 出口参数: A为返回值 ; 若有键按下,则A为闭合键的键值031 ;若无键按下,则A为FFH ;占用寄存器:R3为行计数器,R2存放行扫 ;描值,R4、R5为暂存器 KEY: LCALL KS1 ;快速检查整个键盘中是否 ;有键按下,8.2 键盘及其接口,JNZ LK1 ; A非0, 若有键按下, ;则转至LK1 LJMP LK8 ; 若无键按下,则返回 LK1: LCALL DISPLAY ;若有键闭合,则调显示 ;子程,延时12 ms LCALL DIS
22、PLAY ; 消抖动 LCALL KS1 ; 再次检查有键闭合否 JNZ LK2 ;若有键闭合,则转入逐行扫描 LJMP LK8 ; 若无键闭合,则返回 KL2:MOV R3,00H ; 行号初值送R3 MOV R2,0FEH; 行扫描初值送R2,8.2 键盘及其接口,LK3: MOV DPTR,0F7FFH ;行输出口地 ;址,F7FFH MOV A,R2 ; 行扫描值送A MOVX DPTR,A ; 扫描当前行 MOV DPTR,0FBFFH ;列输入口地址, ;FBFFH MOVX A,DPTR ; 读入列值 ANL A,0FH ; 保留低4位 MOV R4,A ; 暂存列值 CJNE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 MCS51 单片机 人机界面 接口 技术
链接地址:https://www.31doc.com/p-3159718.html