资讯详情

使用单片机IO并行口直接驱动LED显示技术的实验说明

1. 实验任务

如图所示,使用AT89S51单片机的P0端口的P0.0-P0.77连接到共阴数码管a-h在笔段上,数字管的公共端接地。0-9数字在数字管上循环显示,时间间隔为0.2秒。

2. 电路原理图

b3842319c6d98437fa83559db318d1c8.png

图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.汇编源程序

ORG 0

START: MOV R1,#00H

NEXT: MOV A,R1

MOV DPTR,#TABLE

MOVC A,@A DPTR

MOV P0,A

LCALL DELAY

INC R1

CJNE R1,#10,NEXT

LJMP START

DELAY: MOV R5,#20

D2: MOV R6,#20

D1: MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

DJNZ R5,D2

RET

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

7. C语言源程序

#include 《AT89X51.H》

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};

unsigned char dispcount;

void delay02s(void)

{

unsigned char i,j,k;

for(i=20;i》0;i--)

for(j=20;j》0;j--)

for(k=248;k》0;k--);

}

void main(void)

{

while(1)

{

for(dispcount=0;dispcount《10;dispcount )

{

P0=table[dispcount];

delay02s();

}

}

}

标签: 二三极管r1g

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台