单片机教程二十二:LED数码管静态显示接口与编程

网友投稿 356 2022-11-06

单片机教程二十二:LED数码管静态显示接口与编程

八段LED数码管显示器

入口:把要显示的数分别放在显示缓冲区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 ;送串行口显示

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的工作特性,才能真正理解何谓串行的数据。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:NAT(网络地址转换)
下一篇:Clusternet v0.5.0 重磅发布: 全面解决多集群应用分发的差异化配置难题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~