新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 24. 8X8 LED點(diǎn)陣顯示技術(shù)

24. 8X8 LED點(diǎn)陣顯示技術(shù)

作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
1.實(shí)驗(yàn)任務(wù)
8X8LED點(diǎn)陣上顯示柱形,讓其先從左到右平滑移動(dòng)三次,其次從右到左平滑移動(dòng)三次,再次從上到下平滑移動(dòng)三次,最后從下到上平滑移動(dòng)三次,如此循環(huán)下去。
2.電路原理

圖4.24.1
3.硬件電路連線
(1).把“單片機(jī)系統(tǒng)”區(qū)域中的P1端口用8芯排芯連接到“點(diǎn)陣模塊”區(qū)域中的“DR1-DR8”端口上;
(2).把“單片機(jī)系統(tǒng)”區(qū)域中的P3端口用8芯排芯連接到“點(diǎn)陣模塊”區(qū)域中的“DC1-DC8”端口上;
4.程序設(shè)計(jì)內(nèi)容
(1).8X8點(diǎn)陣LED工作原理說明
8X8點(diǎn)陣LED結(jié)構(gòu)如下圖所示

從圖4.24.2中可以看出,8X8點(diǎn)陣共需要64個(gè)發(fā)光二極管組成,且每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一列置1電平,某一行置0電平,則相應(yīng)的二極管就亮;因此要實(shí)現(xiàn)一根柱形的亮法,如圖49所示,對(duì)應(yīng)的一列為一根豎柱,或者對(duì)應(yīng)的一行為一根橫柱,因此實(shí)現(xiàn)柱的亮的方法如下所述:
一根豎柱:對(duì)應(yīng)的列置1,而行則采用掃描的方法來實(shí)現(xiàn)。
一根橫柱:對(duì)應(yīng)的行置0,而列則采用掃描的方法來實(shí)現(xiàn)。
5.匯編源程序
ORG00H
START:NOP
MOVR3,#3
LOP2:MOVR4,#8
MOVR2,#0
LOP1:MOVP1,#0FFH
MOVDPTR,#TABA
MOVA,R2
MOVCA,@A+DPTR
MOVP3,A
INCR2
LCALLDELAY
DJNZR4,LOP1
DJNZR3,LOP2
MOVR3,#3
LOP4:MOVR4,#8
MOVR2,#7
LOP3:MOVP1,#0FFH
MOVDPTR,#TABA
MOVA,R2
MOVCA,@A+DPTR
MOVP3,A
DECR2
LCALLDELAY
DJNZR4,LOP3
DJNZR3,LOP4

MOVR3,#3
LOP6:MOVR4,#8
MOVR2,#0
LOP5:MOVP3,#00H
MOVDPTR,#TABB
MOVA,R2
MOVCA,@A+DPTR
MOVP1,A
INCR2
LCALLDELAY
DJNZR4,LOP5
DJNZR3,LOP6
MOVR3,#3
LOP8:MOVR4,#8
MOVR2,#7
LOP7:MOVP3,#00H
MOVDPTR,#TABB
MOVA,R2
MOVCA,@A+DPTR
MOVP1,A
DECR2
LCALLDELAY
DJNZR4,LOP7
DJNZR3,LOP8
LJMPSTART
DELAY:MOVR5,#10
D2:MOVR6,#20
D1:MOVR7,#248
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
TABA:DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
TABB:DB01H,02H,04H,08H,10H,20H,40H,80H
END
6.C語言源程序
#include
unsignedcharcodetaba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedcharcodetabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
voiddelay(void)
{
unsignedchari,j;
for(i=10;i>0;i--)
for(j=248;j>0;j--);
}
voiddelay1(void)
{
unsignedchari,j,k;
for(k=10;k>0;k--)
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
voidmain(void)
{
unsignedchari,j;
while(1)
{
for(j=0;j<3;j++)//fromlefttoright3time
{
for(i=0;i<8;i++)
{
P3=taba;
P1=0xff;
delay1();
}
}
for(j=0;j<3;j++)//fromrighttoleft3time
{
for(i=0;i<8;i++)
{
P3=taba[7-i];
P1=0xff;
delay1();
}
}
for(j=0;j<3;j++)//fromtoptobottom3time
{
for(i=0;i<8;i++)
{
P3=0x00;
P1=tabb[7-i];
delay1();
}
}
for(j=0;j<3;j++)//frombottomtotop3time
{
for(i=0;i<8;i++)
{
P3=0x00;
P1=tabb;
delay1();
}
}
}
}


關(guān)鍵詞: 8X8LED點(diǎn)陣顯示技

評(píng)論


技術(shù)專區(qū)

關(guān)閉