您好,欢迎访问三七文档
人机接口训练-数码管1、数码管的结构原理2、数码管的显示程序分析与仿真3、串行口扩展控制数码管4、作业本讲主要内容一、实验目的1.理解并掌握7段数码管的工作原理2.掌握数码管的静态显示3.掌握数码管的动态扫描显示4.了解具有VART接口的同步移位寄存器芯片74HC5955.掌握串行口工作方式0实现显示的程序设计方法1.LED数码管结构与原理•LED数码管是由发光二极管显示字段的显示器件。•在单片机应用系统中通常使用的是七段LED。这种显示块有共阴极与共阳极两种。二、LED数码管的工作原理七段LED显示块(a)共阴极abcdefghabcdefgh(b)共阳极+5(c)管脚配置agbcdefhabcdefghGNDGND七段LED段选码2.LED显示方式在单片机应用系统中使用LED显示块构成N位LED显示器,有两种方式:(1)LED静态显示方式(2)LED动态显示方式I/O口位选控制I/O口段选控制……abcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VN位LED显示器abcdefghGND/+5VI/O(1)I/O(2)I/O(3)I/O(4)GND/+5VabcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5V四位静态LED显示器电路八位LED动态显示器电路abcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VabcdefghGND/+5VI/O(1)I/O(2)数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。对于“共阳极”的数码管,内部每个发光二极管的阳极被接在一起,成为该各段的公共选通线;发光二极管的阴极则成为段选线。对于“共阴极”数码管,则正好相反,内部发光二极管的阴极接在一起,阳极成为段选线。单个数码管工作原理这两种数码管的驱动方式是不同的。当需要点亮“共阳极”数码管的一段时,公共段需接高电平(即写逻辑1)、该段的段选线接低电平(即写逻辑0),从而该段被点亮。当需要点亮“共阴极”数码管的一段时,公共段需接低电平(即写逻辑0)、该段的段选线接高电平(即写逻辑1),该段被点亮。续在多位8段数码管显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个单片机的8位I/O口控制,形成段选线的多路复用。而各位数码管的共阳极或共阴极分别由单片机独立的I/O口线控制,顺序循环地点亮每位数码管,这样的数码管驱动方式就称为“动态扫描”。并联数码管工作原理在这种方式中,虽然每一时刻只选通一位数码管,但由于人眼具有一定的“视觉残留”,只要延时时间设置恰当,便会感觉到多位数码管同时被点亮了。续三、实验原理实验电路图图所示为一个6位8段LED动态显示器电路原理图。其中段选线占用一个8位I/O口,位选线占用一个8位I/O口,由于各位的段选线并联,段线码的输出对各位来说都是相同的。因此,同一时刻,如果各位位选线都处于选通状态的话,8位LED将显示相同的字符。实验原理若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一位的位选线处于选通状态时,其它各位的位选线处于关闭状态,这样,8位LED中只有选通的那一位显示出字符,而其它位则是熄灭的。续同样,在下一时刻,只让下一位的位选线处于选通状态,而其他的位选线处于关闭状态。如此循环下去,就可以使各位“同时”显示出将要显示的字符。由于人眼有视觉暂留现象(0.1-0.4s之间),只要每位显示间隔足够短,则可造成多位同时亮的假象,达到显示的目的。续四、数码管的静态显示程序分析与proteus仿真要求采用静态显示方式将第1个数码管点亮(显示从0~F中的任意数字)。时间间隔为1S。实现proteus仿真。从上面的电路图,我们不难看出数码管的段选信号连接在单片机的P0口,位选信号连接在单片机的P2.0-P2.5,根据在本实验中采用的共阴极数码管,结合上面所述数码管工作原理,可以看出P0为高电平、P2口为低电平,选中并点亮数码管。也就是说,P2口决定哪个数码管亮(低电平有效)。P0口决定数码管所亮的字符的形状(高电平有效)。分析程序代码ORG0000HAJMPSTARTORG0030HSTART:MOVR1,#00HMOVA,R1MOVDPTR,#TABLOOP:MOVCA,@A+DPTRMOVP0,AMOVP2,#0FEHACALLDELAYINCR1MOVA,R1CJNEA,#0FH,LOOPAJMPSTARTDELAY:MOVR5,#100D2:MOVR6,#20D1:MOVR7,#248DJNZR7,$DJNZR6,D1DJNZR5,D2RETTAB:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDB77H,7CH,39H,5EH,79HDB71H,80HENDProteus仿真结果五、数码管的动态显示程序分析与proteus值用动态扫描的方式实现将123456这6个数字显示到1~6个数码管上。要求动态扫描的最终效果是要使显示的效果为在并联数码管数码管上同时显示一串数字,而动态扫描的本质是在同一时刻只显示一个数码管,所以我们依次点亮每一个数码管,依次循环,使最终显示效果为同时显示即可。程序分析考虑到数码管的“余辉效应”(就是点亮和熄灭数码管都需要一定的时间,如果时间控制不好,就会出现第二个数码管已经点亮,而上一个数码管还没有完全熄灭)的现象,所以,做好本题的关键在于理解动态扫描的本质和动态扫描之间的时间的控制。动态扫描的延时时间一般控制在3-5ms内较为恰当。续开始初始化显示缓存区设显示指针为第一个显示缓冲设置显示控制字为第一个数码管取指针数据并转换为BCD显示码输出到P0端口显示控制字输出到P2端口是第6个数码管显示了?指针加一,控制字指向下一个数码管延时,保证显示稳定YESNO流程图参考程序;*******************************************************;存储区配置;*******************************************************D_BUF0EQU30HD_BUF1EQU31HD_BUF2EQU32HD_BUF3EQU33HD_BUF4EQU34HD_BUF5EQU35H;**********************************************************;初始化程序;**********************************************************ORG0000HAJMPSTARTORG0030HSTART:MOVD_BUF0,#00H;缓冲区赋初值MOVD_BUF1,#01HMOVD_BUF2,#02HMOVD_BUF3,#03HMOVD_BUF4,#04HMOVD_BUF5,#05H;*****************************************************************;主程序;*****************************************************************MAIN:MOVR7,#6H;设置一趟扫描的次数MOVR6,#11111110B;设置位选初值MOVR1,#D_BUF0;将D_BUF0地址送给R1;(设置指针)LOOP:MOVA,@R1;取显示数据MOVDPTR,#TAB;查表MOVCA,@A+DPTRMOVP0,AMOVP2,R6ACALLDLYMSINCR1;段码显示内容更新MOVA,R6;此三句是位选更新RLAMOVR6,ADJNZR7,LOOP;控制一轮扫描的数,共6次AJMPMAIN;开始进行下一轮扫描;************************************************;*********************************************************************;延时程序;重点——定时时间的计算:1+{1+[(2*R3+1)+2]*R4+2}*R5+2DLYMS:MOVR5,#2D1:MOVR4,#1D2:MOVR3,#248DJNZR3,$DJNZR4,D2DJNZR5,D1RET;*********************************************************************TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71H,80HEND;*********************************************************************Proteus仿真结果五、串行扩展数码管静态显示时,若采用并行I/O接口,则占用资源较多;因此,静态显示方式常采用串行口设定方式0输出方式,外接74HC595(74HC164)移位寄存器构成显示电路。•8051的串行接口是半双工的,它能用作异步接受/发送器,也能用作同步移位寄存器,相关寄存器有SBUF和SCON.•SBUF是数据发送缓冲器和接受数据缓冲器•SCON是串行口控制寄存器串口工作原理回顾RITIRB8TB8RENSM2SM1SM0D7D6D5D4D3D2D1D0多机通信0:单机对单机1:多机通信接收控制0:禁止接收1:允许接收发送数据第9位接收数据第9位发送中断标志接收中断标志确定串行口工作方式#该寄存器地址为98H,可位寻址。串行控制寄存器(SCON)实验板电路原理图•74HC595是一种串入并出的8位移位寄存器芯片,内有移位寄存器和锁存寄存器,对应位脉冲SCK和触发时钟锁存脉冲RCK,在进行多级移位输出时,在数据传输完毕以后,必须在RCK上追加一个锁存脉冲,使数据得以正确输出。电路分析•电路中74HC595D为串并转换芯片,其功能是将串行送入的数据并行输出。LN5101BS为共阳数码管,其位选端已经连在高电平上,所以在此为静态扫描方式。将单片机的串口工作在方式0(并行移位寄存器方式),把数据通过单片机的串口送入595D然后再由595D将数据并行输出驱动数码管显示。续实验板线桥连接图ORG0000HSJMPMAINORG0050HMAIN:MOVSCON,#00HMOVDPTR,#TABL1:MOVR1,#0HL2:MOVA,R1MOVCA,@A+DPTR;取短码值MOVSBUF,A程序代码JNBTI,$CLRTICLRP1.5;多发送一个锁存脉冲SETBP1.5INCR1ACALLDELAYCJNER1,#16,L2;若未发送完10字节,继续发送SJMPL1;返回DELAY:MOVR0,#3延时子程序LD:MOVR2,#250Y:MOVR3,#250HS:NOPNOPDJNZR3,HSDJNZR2,YDJNZR0,LDRETTAB:DB48H,7BH,0D0H,70H,63H,64H,44H,79HDB40H,60H,41H,46H,0CCH,52H,0C4H,DB0C5H;0~F共阳8段码值END六、作业1、编写程序实现如下功能:在数码管上0-5,2S之后显示6-b,2S之后再显示C,D,E,F依次循环,并在proteus仿真。2、编写程序实现拉幕式数码管:即刚开始显示0,0.5s后显示0、1,再0.5s后显示0、1、2;0.5s后显示0、1、2、3;0.5s后显示0、1、2、3、4;0.5s后显示0、1、2、3、4、5;依次循环,并在proteus仿真。
本文标题:数码管
链接地址:https://www.777doc.com/doc-5180796 .html