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