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 时笔段亮)
数据位 |
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 |
1 |
09H |
如何,字形表会做了吧,就是这样列个表格,根据要求( 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的工作特性,才能真正理解何谓串行的数据。