234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

    23课:LED数码管静态显示接口与编程

    作者:佚名   来源:本站原创   点击数:x  更新时间:2007年08月14日   【字体:

       在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号 。由于它具有显示清晰、亮度高、使用电压低、寿命长的一特点,因 此使用非常广泛 。

    引言:还记得我们小时候玩的一“火柴棒游戏”吗,几根火柴棒组合起来,能拼成各种各样的一图形,LED数码管显示器实际上    也是这么一个东西 。

    八段LED数码管显示器


    <单片机静态显示接口>

       八段LED数码管显示器由8个发光二极管组成 。基中7个长条形的一发光管排列成“日”字形,另一个贺点形的一发光管在数码管显示器的一右下角作为显示小数点用,它能显示各种数字及部份英文字母 。LED数码管显示器有两种不 一样的一形式:一种是8个发光二极管的一阳极都连在一起的一,称之为共阳极LED数码管显示器;另一种是8个发光二极管的一阴极都连在一起的一,称之为共阴极LED数码管显示器 。如下图所示 。`

       共阴№和共阳结构的一LED数码管显示器各笔划段名№和安排位置是相同的一 。当二极管导通时,对应的一笔划段发亮,由发亮的一笔划段组合而显示的一各种字符 。8个笔划段hgfedcba对应于一个字节(8位)的一D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就能表示欲显示字符的一字形代码 。例如,对于共阴LED数码管显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,数码管显示器显示"P"字符,即对于共阴极LED数码管显示器,“P”字符的一字形码是73H 。如果是共阳LED数码管显示器,公共阳极接高电平,显示“P”字符的一字形代码应为10001100(8CH) 。这里必须注意的一是:很多产品为方便接线,常不 按规则的一办法去对应字段与位的一关系,这个时候字形码就必须根据接线来自行设计了,后面我们会给出一个例程 。

       在单片机应用系统中,数码管显示器显示常用两种办法:静态显示№和动态扫描显示 。所谓静态显示,就是每一个数码管显示器都要占用单独的一具有锁存功能的一I/O接口用于笔划段字形代码 。这样单片机只要把要显示的一字形代码发送到接口电路,就不 用管它了,直到要显示新的一数据时,再发送新的一字形码,因 此,使用这种办法单片机中CPU的一开销小 。能供给单独锁存的一I/O接口电路很多,这里以常用的一串并转换电路74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的一了解 。

       MCS-51单片机串行口方式押为移们寄存器方式,外接6片74LS164作为6位LED数码管显示器的一静态显示接口,把8031的一RXD作为数据输出线,TXD作为移位时钟脉冲 。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出 。其中A、B(第1、2脚)为串行数据输入端,2个管脚按逻辑与运算︻规律输入信号,公一个输入信号时可并接 。T(第8脚)为时钟输入端,可连接到串行口的一TXD端 。每一个时钟信号的一上    升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中 。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用 。Q1…Q8(第3-6№和10-13管脚)并行输出端分别接LED数码管显示器的一hg---a各段对应的一管脚上     。关于74LS164还能作如下的一介绍:所谓时钟脉冲端,其实就是需要高、低、高、低的一脉冲,不 管这个脉冲是怎么来的一,比如,我们用根电线,一端接T,一端用手拿着,分别接高电平、低电平,那也是给出时钟脉冲,在74LS164获得时钟脉冲的一瞬间(再讲清楚点,是在脉冲的一沿),如果数据输入端(第1,2管脚)是高电平,则就会有一个1进入到74LS164的一内部,如果数据输入端是低电平,则就会有一个0进入其内部 。在给出了8个脉冲后,最先进入74LS164的一第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,就象车站排队买票,栏杆就那么长,要从后面进去一本人,前面必须要从前面走出去一本人才行 。

        搞清了这一点,下面让我们来看电路,6片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的一数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的一数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送出的一数据被送到了最左面的一164中,其他数据依次出现在第一、二、三、四、五片74LS164中 。有个问题,在第一个脉冲到来时,除了第一片74LS164中接收数据外,其他各片在干吗呢?它们也在接收数据,因 为它们的一时钟端都是被接在一起的一,可是数据还没有送到其他各片呢,它们在接收什么数据呢? 。 。 。 。 。 。其实所谓数据不 过是一种说法而已,实际就是电平的一高低,当第一个脉冲到来时,第一片164固然是从单片机接收数据了,而其它各片也接到前一片的一Q8上    ,而Q8是一根电线,在数字电路中它只可能有两种状态:低电平或高电平,也就是“0”№和“1” 。所以它的一下一片74LS164也相当于是在接收数据啊 。只是接收的一全部是0或1而已 。这个问题放在这儿说明,可能有朋友不 屑一顾,而有的一朋友可能还是不 清楚,这实际上    涉及到数的一本质的一问题,如果不 懂的一,请仔细思考,并找一些数字电路的一数,理解164的一工作原理,再来看这个问题,或者去看看我的一另一篇文章《27课:关于单片机的一一些基本概念》的一文章 。务必搞懂,搞懂了这一点,你的一级别就高过开始学习者,可谓入门者了 。

    入口:把要显示的一数分别放在显示缓冲区60H-65H共6个单元中,并且分别对应各个数码管LED0-LED5 。

    出口:将预置在显示缓冲区中的一6个数成对应的一显示字形码,然后输出到数码管显示器中显示 。

    单片机led显示程序如下:

    DISP: MOV SCON,#00H ;初始化串行口方式0

    MOV R1,#06H ;显示6位数

    MOV R0,#65H ;60H-65H为显示缓冲区

    MOV DPTR,#SEGTAB ;字形表的一入口地址

    LOOP:

    MOV A,@R0 ;取▓最高位的一待显示数据

    MOVC A,@A+DPTR ;查表获取▓字形码

    MOV SBUF,A ;送串行口显示

    DELAY: JNB TI,DELAY ;等待发送完毕

    CLR TI ;清发送标志

    DEC R0 ;指针下移一位,准备取▓下一个待显示数

    DJNZ R1,LOOP ;直到6个数据全显示完 。

    RET

    SETTAB: ;字形表,前面有介绍,以后我们再介绍字形表的一制作 。

    DB 03H 9FH 27H 0DH 99H 49H 41H 1FH 01H 09H 0FFH

    ; 0 1 2 3 4 5 6 7 8 9 消隐码

    单片机显示测试用主程序

    ORG 0000H

    AJMP START

    ORG 30H

    START: MOV SP,#6FH

    MOV 65H,#0

    MOV 64H,#1

    MOV 63H,#2

    MOV 62H,#3

    MOV 61H,#4

    MOV 60H,#5

    LCALL DISP

    SJMP $

       如果按图示数码管排列,则以上    主程序将显示的一是543210,想想看,如果要显示012345该怎样送数?

       下面我们来分析一下字形表的一制作问题 。先就上    述“标准”的一图形来看吧 。写出数据位№和字形的一对应关系并列一个表如下(设为共阳型,也就是对应的一输出位为0时笔段亮)

    如何,字形表会做了吧,就是这样列个表格,根据要求(0亮或1亮)写出对应位的一0№和1,就成了 。做个练习,写出A-F的一字形码吧 。

    如果为了接线方便而打乱了接线的一次序,那么字形表又●该如何接呢?也很简单,一样地列表啊 。以新实验ζ板为例,共阳型 。接线如下:

    P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

    C E H D G F A B

    则字形码如下所示:

    ;0 00101000 28H

    ;1 01111110 7EH

    ;2 10100100 0A4H

    ;3 01100100 64H

    ;4 01110010 72H

    ;5 01100001 61H

    ;6 00100001 21H

    ;7 01111100 7CH

    ;8 00100000 20H

    ;9 01100000 60H

    作为练习,大家写出A-F的一字形代码 。

       本来这里是讲解单片机数码管显示器的一静态接口的一,到此应当可算︻结束了,但是我还想接着上    面讲到的一数的一本质的一问题再谈一点 。单片机中有一些术语、名词本来是帮助我们理解事物的一,但有时我们会被这些术语的一相关语义所迷惑,以致不 能进一步认清他们的一本质,由此一般陷入困惑的一境界 。只有深入地了解了74LS164的一工作特性,才能真正理解何谓串行的一数据 。有兴趣的一朋友还能再看看我网站http://www.查找相关内容

    发表评论】【告诉好友】【收藏此文】【关闭窗口

    文章评论