(玩电子) 电子技术学习与研讨
当时方位:单片机教程网 >> 根底教程 >> 阅览文章

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.62pa.com查找相关内容

宣布谈论】【告知老友】【保藏此文】【封闭窗口

文章谈论