您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机教案(数码管显示器接口技术)
数码管显示器接口技术一、LED数码管的结构由8段发光二极管组成。其中7段组成“8”字,1段组成小数点。通过不同的组合,可用来显示数字0~9、字母A~F及符号“.”。LED数码管有共阴极和共阳极两种结构。二、LED数码管的工作原理发光二极管导通→亮,不导通→暗。这样就构成了字符的显示。其十六进制的编码表如下:显示字符hgfedcba字形代码0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH90110011167HA0111011177Hb011111007CHC0011100139Hd010111105EHE0111100179HF0111000171H.1000000080H三、数码管接口电路1、静态显示方式(硬件接口方法)这就是我们在数字电路中所学的内容,在数据总线上的信号须经I/O接口电路并锁存,然后通过译码器,就可以驱动LED显示器中的段发光。这种方式使用的硬件较多(显示器的段数和位数越多,电路越复杂),缺乏灵活性,且只能显示十六进制数。2、动态显式方式(软件接口方法)这种接口方法是以软件查表来代替硬件译码,既省去了译码器,又能显示更多段的字符和更多位的LED显示器。所以广泛应用于单片机系统的显示。⑴连接方式①将单片机的输出送入可编程的8155芯片,然后利用8155的I/O口提供两路输出信号(一路是段控信号,另一路是位控信号)。②将各位数码管的a~h端分别并在一起(若有6个数码管,则将它们6个a对a,6个b对b......6个h对h相并接),再和上面的一路I/O口输出的8位段控信号相连,以获得显示代码,对应要发光的段。③将各位数码管的公共端(共阴极或共阳极)分别与上面的另一路I/O口相连(每一位公共端对应I/O口中的一位),以获得位控信号使该位LED发亮。④为了存放显示的数字或字符,通常在8155的内部RAM中设置显示缓冲区,其存储单元个数与LED显示器的位数相同。⑵显示原理①每一时刻只有一位LED被点亮,在显示代码的作用下显示信息。②各位LED轮流被点亮,在各自的显示代码的作用下分别显示各自的信息。③只要利用发光二极管的余光和人眼的驻留效应(即适当调整每位LED的点亮时间和时间间隔),就可以获得稳定的显示输出。[应用实例]使用并行接口芯片8155扩展6位动态数码管显示电路,轮流点亮各LED数码管,每位点亮2ms,重复此过程。[硬件设计]1、将8155的PA口和PB口选择在基本输出方式,PA口输出位选码,PB口输出段显示代码。2、设定PA口(位控口)地址为7F01H,PB口(段控口)地址为7F02H,命令寄存器地址为7F00H。3、设显示缓冲区地址(8155片内RAM)为:60H~65H(显示器有6位),每一个单元对应一位LED显示器。因为动态扫描是从右向左进行的,所以缓冲区的首地址为60H。用R0存放当前位控码的地址,用R2存放位控码的初值及递增值。若要显示“.d6a50”则按下面的顺序依次进行。[软件设计]1、编程说明:①在动态扫描过程中,调用延时子程序DELAY,其延迟时间为2ms,这是为了让扫描到的那位显示器稳定的亮(驻留)一段时间以保证显示亮度。②显示数据是以查表方法得到其字形代码,故在程序中设置了字形代码表DSEG,因此在编程中采用了查表指令MOVCA,@A+PC,由PC提供16位基址,由A提供变址rel。③在实用单片机系统中,LED显示程序都是作为一个子程序供监控程序调用,因此在扫描完各位LED后,就返回监控程序,然后再由监控程序调用显示子程序。通过反复调用实现动态扫描。2、显示程序流程图START:MOVA,#03H;将命令字00000011B送入A(即将送入8155的命令寄存器)MOVDPTR,#7F00H;对8155的命令寄存器初始化MOVX@DPTR,A;设置PA口、PB口为输出方式MOVR0,#60H;设置显示缓冲区的首地址MOVR2,#01H;设置位选码的初值MOVA,R2;将位控码的初值00000001B送入单片机LOOP:MOVDPTR,#7F01H;设置PA口(位控码通道)的地址MOVX@DPTR,A;将位控码输出到PA口INCDPTR;设置PB口(段控码通道)的地址MOVA,@R0;从段控码取出显示数据送入单片机ADDA,rel;形成查表的偏移地址(在本程序中rel=0DH,即14个单元)MOVCA,@A+PC;查表取字形代码(在程序下面14个单元DSEG处查表,取字形码用于段控)DIR:MOVX@DPTR,A;取出段控码[1个字节]ACALLDELAY;转延时子程序[2个字节]INCR0;转向下一个缓冲单元[1个字节]MOVA,R2;将递增值送入A[1个字节]JBACC.5,LOOP1;判断第6位是否显示完毕,是则返回到LOOP1处[3个字节]RLA;不是,则向(高位)左移[1个字节]MOVR2,A;将位控码送R2保存[1个字节]AJMPLOOP;程序回到LOOP处重复上过程[2个字节]LOOP1:RET;返回监控主程序[1个字节]DSEG:DB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71HDELAY:MOVR7,#04H;以下是延时2ms的子程序DELAY1:MOVR6,#0FFH;DELAY2:DJNZR6,DELAY2;DELAY2:DJNZR7,DELAY1;RET;返回上面的调子程序
本文标题:单片机教案(数码管显示器接口技术)
链接地址:https://www.777doc.com/doc-2606536 .html