您的位置 首页 技术

普通单片机教育 第二十二讲 常用接口电路及其编程

LED数码显示器的连接与编程在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的

LED数码显现器的衔接与编程

单片机体系中,通常用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)。这儿有必要留意的是:许多产品为便利接线,常不按规矩的办法去对应字段与位的联系,这时字形码就有必要依据接线来自行规划了,后边咱们会给出一个比方。

1.静态显现接口

在单片机运用体系中,显现器显现常用两种办法:静态显现和动态扫描显现。所谓静态显现,便是每一个显现器都要占用独自的具有锁存功用的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的作业原理,再来看这个问题,或许去看看我的另一篇文章《初学单片机易把握的概念》。

必须搞懂,搞懂了这一点,你的等级就高过初学者了。

进口:把要显现的数别离放在显现缓冲区60H-65H共6个单元中,而且别离对应各个数码管LED0-LED5。出口:将预置在显现缓冲区中的6个数成相应的显现字形码,然后输出到显现器中显现。显现程序如下: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 30HSTART: 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时笔段亮)

数据位
D7
D6
D5
D4
D3
D2
D1
D0
字形码
笔段位
A
B
C
D
E
F
G
H
0
0
0
0
0
0
0
1
1
03H
1
1
0
0
1
1
1
1
1
9FH
2
0
0
1
0
0
1
1
1
27H
3
0
0
0
0
1
1
0
1
0DH
4
1
0
0
1
1
0
0
1
99H
5
0
1
0
0
1
0
0
1
49H
6
0
1
0
0
0
0
0
1
41H
7
0
0
0
1
1
1
1
1
1FH
8
0
0
0
0
0
0
0
1
01H
9
0
0
0
0
1
0
0

怎么,字形表会做了吧,便是这样列个表格,依据要求(0亮或1亮)写出相应位的0和1,就成了。做个操练,写出A-F的字形码吧。假如为了接线便利而打乱了接线的次序,那么字形表又该怎么接呢?也很简单,相同地列表啊。以新试验板为例,共阳型。接线如下:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0C 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的作业特性,才干真实了解何谓串行的数据。有爱好的朋友还能够再看看我网站上“其他材料”中的“银行利率屏的规划”一文。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/261783.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部