您的位置 首页 知识

7. I/O并行口直接驱动LED显现

1.实验任务如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环…

1.试验使命
如图13所示,使用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显现0-9数字,时刻距离0.2秒。
2.电路原理

图4.7.1
3.体系板上硬件连线
把“单片机体系”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显现模块”区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连,P0.1/AD1与b相连,P0.2/AD2与c相连,……,P0.7/AD7与h相连。
4.程序设计内容
(1.LED数码显现原理
七段LED显现器内部由七个条形发光二极管和一个小圆点发光二极管组成,依据各管的极管的接线方法,可分红共阴极型和共阳极型。
LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能构成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码见表2
“0”
3FH

“8”
7FH

“1”
06H

“9”
6FH

“2”
5BH

“A”
77H

“3”
4FH

“b”
7CH

“4”
66H

“C”
39H

“5”
6DH

“d”
5EH

“6”
7DH

“E”
79H

“7”
07H

“F”
71H

(2.因为显现的数字0-9的字形码没有规则可循,只能选用查表的方法来完结咱们所需的要求了。这样咱们按着数字0-9的次序,把每个数字的笔段代码按次序排好!树立的表格如下所示:TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
5.程序框图

图4.7.2
6.汇编源程序
ORG0
START:MOVR1,#00H
NEXT:MOVA,R1
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
INCR1
CJNER1,#10,NEXT
LJMPSTART
DELAY:MOVR5,#20
D2:MOVR6,#20
D1:MOVR7,#248
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
7.C言语源程序
#include
unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
unsignedchardispcount;

voiddelay02s(void)
{
unsignedchari,j,k;
for(i=20;i>0;i–)
for(j=20;j>0;j–)
for(k=248;k>0;k–);
}

voidmain(void)
{
while(1)
{
for(dispcount=0;dispcount<10;dispcount++)
{
P0=table[dispcount];
delay02s();
}
}
}

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部