微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 平凡单片机教学 第二十二讲 常用接口电路及其编程

平凡单片机教学 第二十二讲 常用接口电路及其编程

时间:11-22 来源:互联网 点击:

只可能有两种状态:低电平或高电平,也就是“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的工作特性,才能真正理解何谓串行的数据。有兴趣的朋友还可以再看看我网站上“其他资料”中的“银行利率屏的设计”一文。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top