并行I/O口编程范例


下一页 第[1],[2],[3]页 

深圳市凌雁电子有限公司

    单片机I/O的应用最典型的是通过I/O口与7段LED数码管构成显示电路,我们从常用的LED显示原理开始,详尽讲解利用单片机驱动LED数码管的电路及编程原理,目的在于通过这一编程范例,让初学者了解I/O口的编程原理,意在起举一反三,抛砖引玉的作用。
LED的发光原理,稍有电子技术基础的人士都很清楚,我们不想作过多的介绍,7段LED数码管,则在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。

LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示原理类同,读者自行分析即可。
LED数码管结构图
LED显示电路     左图为实验电路图,我们使用80C51单片机,电容C1、C2和CRY1组成时钟振荡电路,这部分基本无需调试,只要元件可靠即会正常起振。C3和R1为单片机的复位电路,80C51的并行口P1.0-P1.7直接与LED数码管的"a-f"引脚相连,中间接上限流电阻R3-R10。值得一提的是,80C51并行口的输出驱动电流并非很大,为使LED有足够的亮度,LED数码管应选用高亮度的器件。
此外,图中的80C51还可选用C51系列的其它单片机,只要它们的指令系统兼容C51即可正常运行,程序可直接移植,例如选用低价Flash型的AT89C1051或2051(详细技术手册)等,它们的ROM可反复擦写,非常适合作实验用途。
    

· 程序清单:
01  START: ORG     0100H      ;程序起始地址
02   MAIN: MOV    R0,#00H     ;从“0”开始显示
03         MOV    DPTR,#TABLE ;表格地址送数据指针
04   DISP: MOV    A,R0        ;送显示
05         MOVC   A,@A+ADPTR  ;指向表格地址
06         MOV    P1,A        ;数据送LED
07         ACALL  DELAY       ;延时
08         INC    R0          ;指向下一个字符
09         CJNE   R0,#0AH,DISP ;未显示完,继续
10         AJMP   MAIN        ;下一个循环
11  DELAY: MOV    R1,#0FFH    ;延时子程序,延时时间赋值
12  LOOP0: MOV    R2,#0FFH
13  LOOP1: DJNZ   R2,LOOP1
14         DJNZ   R1,LOOP0
15         RET                ;子程序返回
16  TABLE: DB     0C0H        ;字型码表
17         DB     0F9H
18         DB     0A4H
19         DB     0B0H
20         DB     99H
21         DB     92H
22         DB     82H
23         DB     0F8H
24         DB     80H
25         DB     90H
26         END                ;程序结束


 

LED显示字型码表
显示
字符
共阴极
字符
共阳极
字符
0 3FH C0H
1 06H F9H
2 5BH A4H
3 4FH B0H
4 66H 99H
5 6DH 92H
6 7DH 82H
7 07H F8H
8 7FH 80H
9 6FH 90H
A 77H 88H
b 7CH 83H
C 39H C6H
d 5EH A1H
E 79H 86H
F 71H 8EH
H 76H 89H
P 73H 8CH



 


  继续浏览《MCS-51单片机软件编程内容》请点击[下一页]