第八章MCS-51单片机的人机界面接口技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机应用技术单片机应用技术主讲教师:苏晓龙全校公共选修课计算机学院信息科学系办公室:计A315-1答疑地点:计A315-1E-mail:suxl@cumt.edu.cn单片机应用技术第八章MCS-51单片机的人机界面接口技术8.1显示器接口8.2键盘及其接口8.38255A可编程并行I/O接口扩展8.4拨码盘及语音接口单片机应用技术8.1显示器接口8.1.1LED显示器接口8.1.2LCD显示器接口8.1.3典型键盘/显示器接口实例返回本章首页单片机应用技术8.1.1LED显示器接口1.LED显示器结构与原理LED显示块是由发光二极管显示字段的显示器件。在微机应用系统中通常使用的是七段LED。这种显示块有共阴极与共阳极两种,如图8-1所示。七段显示块与微机接口非常容易。如表8-1所示。单片机应用技术8.1.1LED显示器接口1.LED显示器结构与原理LED显示块是由发光二极管显示字段的显示器件。(a)管脚配置(b)共阴极(c)共阳极图8-1七段LED显示块e单片机应用技术表8-1七段LED的段选码单片机应用技术8.1.1LED显示器接口2.LED显示器与显示方式在微机应用系统中使用LED显示块构成N位LED显示器。图8-2是N位显示器的构成原理。LED显示器有两种方式:(1)LED静态显示方式(如图8-3所示)(2)LED动态显示方式(如图8-4所示)单片机应用技术abcdefRdpabcdefRdpabcdefRdpabcdefRdpabcdefRdp3.83.83.83.83.8I/O口位选控制…I/O口段选控制图8-2N位LED显示器8.1.1LED显示器接口单片机应用技术1)静态显示器接口静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。就是在同一时刻只显示1种字符,或者说被显示的字符在同一时刻是稳定不变的。这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个字段分别与一个8位I/O接口相连,I/O端口只要有字形代码输出,相应字符即显示出来,并保持不变,直到I/O端口输出新的字形代码。采用静态显示方式,虽然具有较高的显示亮度,占用CPU时间少,编程简单等优点,但其占用的端口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。单片机应用技术例1:图8.3是数码管静态显示方式的一种典型应用,用两片74LS273驱动2位静态LED显示器(共阴极数码管)。P2.7=0时选通1#显示器,其地址为7FFFH;P2.6=0时选通2#显示器,其地址为BFFFH。用下列程序可在显示器上显示字符“1”和“2”8.1.1LED显示器接口单片机应用技术图8.32位静态LED显示器单片机应用技术MOVDPTR,#7FFFHMOVA,#06H;“1”MOVX@DPTR,AMOVDPTR,#0BFFFHMOVA,#5BH;“2”MOVX@DPTR,A8.1.1LED显示器接口单片机应用技术图8-4八位LED动态显示器电路I/O(1)DDDDDDDDI/O(2)756432108.1.1LED显示器接口单片机应用技术2)动态显示接口动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为动态扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O端口控制;各位LED显示器的位选线(COM端)由另外的I/O端口控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用动态扫描方式,即在某一时刻只选通一位数码管,并送出相应的字形代码,在另一时刻选通另一位数码管,并送出相应的字形代码。依此规律循环,逐个循环点亮各位数码管,每位显示1ms左右,即可使各位数码管显示要显示的字符。虽然这些字符是在不同的时刻分别显示的,但由于人眼存在视觉暂留效应,可以给8.1.1LED显示器接口单片机应用技术采用动态显示方式节省I/O端口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,仍占用CPU较多的时间。用51系列单片机构建数码管动态显示系统时,采用简单的接口芯片即可进行系统扩展,其特点是接口电路简单,编程方便,价格低廉。6位动态LED显示器如图8.52)动态显示接口单片机应用技术图8.56位动态LED显示器单片机应用技术图8.5中,数码管采用共阴极LED,字形码输出口74LS273经过8路同相驱动电路7407后接至数码管的各段,当位线输出“1”时,驱动数码管发光。7407是集电极开路的同相驱动器,能为发光段提供更大的导通电流,增强LED的发光亮度,其输出端经110Ω的限流电阻接至+5V电源,改变电阻的大小即可调节发光亮度。用另一个输出口74LS273作为LED的位选控制口,其输出经过6路反相驱动器75452后接至数码管的COM端。当位选控制口的某位输出“1”时,75452反相器驱动相应的LED位发光。2)动态显示接口字形码输出口和位选控制口的地址分别为:字形码输出口地址:DFFFH(地址不是惟一的);位选控制口的地址:EFFFH(地址不是惟一的)。单片机应用技术在单片机应用系统中,为了便于对LED显示器进行管理,需要建立一个显示缓冲区。显示缓冲区DISBUF是片内RAM的一个区域,它的作用是存放要显示的字符,其长度与LED的位数相同。3)动态扫描程序图8.5中的动态显示器,DISBUF为6个字节,设DISBUF占用片内RAM的70H~75H单元。显示缓冲区DISBUF中的内容是由其他处理程序事先存入DISBUF中的,再由显示程序进行显示。设要显示“P89C51,则“P89C51”在DISBUF中的存放形式见表6.3所示。数码显示器的低位(最右边的位)显示的是显示缓冲区中的低地址单元中的数,因此在显示缓冲区中存放的次序为低地址单元存低位,高地址单元存高位。单片机应用技术表6.3显示缓冲区3)动态扫描程序单片机应用技术要说明的是,显示程序是利用查表方法来得到要显示字符的字形代码的。在显示程序的字形代码(显示段码)表中,字形代码存放的次序依次为“0~9”,“A~F”,“空白”和“P”。其中,“P”的序号为18(即11H),故在DISBUF中的75H单元用11H代表“P”。3)动态扫描程序显示程序的任务是把显示缓冲区中待显示的字符送往LED显示器显示。在进行动态扫描显示时,从DISBUF中依次取出待显示的字符,采用查表的方法得到其对应的字形代码,逐个地循环点亮各位数码管,每位显示1ms左右,即可使各位数码管显示要显示的字符。单片机应用技术设DISBUF中的信息为“P89C51”,可由下列程序在显示器上显示“P89C51”:3)动态扫描程序LOOP1:LCALLDISPLAYLJMPLOOP1;DISPLAY:MOVR0,#70H;R0指向DISBUF首;MOVR3,#01H;右起第1个LED;NEXT:MOVA,#00H;取位选控制字为全灭MOVDPTR,#0EFFFH;取位选控制口;MOVX@DPTR,A;瞬时关显示器MOVA,@R0;从DISBUF中取出字符单片机应用技术MOVDPTR,#DSEGMOVCA,@A+DPTR;查表,取对应的字形码MOVDPTR,#0DFFFH;取字形码输出口地址MOVX@DPTR,AMOVDPTR,#0EFFFH;取位选控制口地址MOVA,R3MOVX@DPTR,A;点亮当前LED显示位3)动态扫描程序LCALLDELAY;延时1msINCR0;R0JBACC.5,EXIT;若当前显示位是第6位则;RLA;下一个LEDMOVR3,ASJMPNEXT单片机应用技术EXIT:RET;返回段码表0~9,A~F,空白,DSEG:DB3FH,06H,5BH,4FH,66H,6DH,7DH,DB07H,7FH6FH,77H,7CH,39H,5EH,DB79H,71H,00H,73HDELAY:MOVR7,#02H;延时1msDEL1:MOVR6,#0FFHDEL2:DJNZR6,DEL2DJNZR7,DEL1RET单片机应用技术[例2]针对图8.5所示的电路,编一显示程序,调用动态扫描显示子程序DISPLAY,使数码显示器显示“012345”共6个字符。解:MOVA,#05H;取最右边1MOVR0,#70H;指向DISBUF首址(最低位)MOVR1,#06H;共送入6LOP2:MOV@R0,A;将字符送入DISBUFINCR0;DECA;DJNZR1,LOP2;若6个数未送完,则重复LOP3:LCALLDISPLAY;SJMPLOP3;重复扫描单片机应用技术8.1.1LED显示器接口3.LED显示器接口实例从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输入数据信息、地址信息和各种命令。键盘按照其接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法不同。编码键盘主要是用硬件来实现对按键的识别,键盘接口电路能够由硬件逻辑自动提供与键对应的编码。此外,编码键盘一般还具有去抖动和多键、窜键保护电路。这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。单片机应用技术非编码键盘的接口电路只是简单地提供按键的行列矩阵,对按键的识别、编码、去抖动等工作均由软件完成。由于其经济实用,因此常应用于单片8.2键盘及其接口1.单片机应用技术2.矩阵键盘的结构及原理8.2键盘及其接口在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,单片机应用系统完成该按键所设定的功能。一组键或一个键盘,总有一个接口电路与CPU相连。当按键较多时一般采用行列式结构并按矩阵形式排列,如图8.9单片机应用技术图8.9.1矩阵键盘的结构8.2键盘及其接口单片机应用技术图8.9.2矩阵键盘在89C51单片机应用实例之一8.2键盘及其接口单片机应用技术图8.9给出了4×4行列式键盘的基本结构示意图。4×4表示有4根行线和4根列线,在每根行线和列线的交叉点上有1个按键,组成了一个有16个按键的矩阵键盘。列线通过上拉电阻接到+5V上。当无键按下时,列线处于高电平状态;当有键按下时,行、列线将导通,此时,列线电平将由与此列线相连的行线电平决定,这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。识别按键是否按下的方法很多,其中,最常见的8.2键盘及其接口单片机应用技术3.矩阵键盘的行扫描法8.2键盘及其接口所谓行扫描法,就是通过行线逐行发出低电平信号。如果该行线所连接的键没有按下,则列线的电平信号是全“1”;如果有键按下的话,则列线得到的是非全“1”信号,即根据列线的电平信号是否有“0”信号来判断有无键按下。在使用行扫描法时,为了提高效率,首先快速检查整个键盘中是否有键按下。若无键按下,则结束键盘扫描程序;若有键按下,则再用逐行扫描的方法来确定闭合键的具体位置(按下的是哪一个键)。单片机应用技术具体方法是:8.2键盘及其接口1)先扫描第0行,行输出值为1110B(见图8.9.1),第0行为“0”,其余3行为“1”(通常,把行输出值为0的行称为当前行),然后读入列信号,判断是否为全“1”。若列输入值为全“1”,则当前行无键按下。2)若第0行无键按下,再扫描第1行。行输出1101(第1行为“0”,其余3行为“1”),再扫描下一行……依此规律逐行扫描,直到扫

1 / 95
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功