新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 13. 動(dòng)態(tài)數(shù)碼顯示技術(shù)

13. 動(dòng)態(tài)數(shù)碼顯示技術(shù)

作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
1.實(shí)驗(yàn)任務(wù)
如圖4.13.1所示,P0端口接動(dòng)態(tài)數(shù)碼管的字形碼筆段,P2端口接動(dòng)態(tài)數(shù)碼管的數(shù)位選擇端,P1.7接一個(gè)開關(guān),當(dāng)開關(guān)接高電平時(shí),顯示“12345”字樣;當(dāng)開關(guān)接低電平時(shí),顯示“HELLO”字樣。
2.電路原理

圖4.13.1
3.系統(tǒng)板上硬件連線
(1.把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0-P0.7/AD7用8芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的a-h(huán)端口上;
(2.把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0/A8-P2.7/A15用8芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的S1-S8端口上;
(3.把“單片機(jī)系統(tǒng)”區(qū)域中的P1.7端口用導(dǎo)線連接到“獨(dú)立式鍵盤”區(qū)域中的SP1端口上;
4.程序設(shè)計(jì)內(nèi)容
(1.動(dòng)態(tài)掃描方法
動(dòng)態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時(shí),利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇)。
(2.在進(jìn)行數(shù)碼顯示的時(shí)候,要對(duì)顯示單元開辟8個(gè)顯示緩沖區(qū),每個(gè)顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。
(3.對(duì)于顯示的字形碼數(shù)據(jù)我們采用查表方法來完成。
5.程序框圖
開始

K1按鍵識(shí)別成功否?

置顯示“12345”字形碼首地址

置顯示“HELLO”字形碼首地址

置字形碼偏移量和位選代碼

查表并送出顯示

延時(shí)2ms,并指向下一個(gè)偏移量

5個(gè)數(shù)碼管顯示完否?

圖4.13.2
6.匯編源程序
ORG00H
START:JBP1.7,DIR1
MOVDPTR,#TABLE1
SJMPDIR
DIR1:MOVDPTR,#TABLE2
DIR:MOVR0,#00H
MOVR1,#01H
NEXT:MOVA,R0
MOVCA,@A+DPTR
MOVP0,A
MOVA,R1
MOVP2,A
LCALLDAY
INCR0
RLA
MOVR1,A
CJNER1,#0DFH,NEXT
SJMPSTART
DAY:MOVR6,#4
D1:MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
TABLE1:DB06H,5BH,4FH,66H,6DH
TABLE2:DB78H,79H,38H,38H,3FH
END
7.C語言源程序
#include
unsignedcharcodetable1[]={0x06,0x5b,0x4f,0x66,0x6d};
unsignedcharcodetable2[]={0x78,0x79,0x38,0x38,0x3f};
unsignedchari;
unsignedchara,b;
unsignedchartemp;
voidmain(void)
{
while(1)
{
temp=0xfe;
for(i=0;i<5;i++)
{
if(P1_7==1)
{
P0=table1;
}
else
{
P0=table2;
}
P2=temp;
a=temp<<(i+1);
b=temp>>(7-i);
temp=a|b;
for(a=4;a>0;a--)
for(b=248;b>0;b--);
}
}
}


評(píng)論


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

關(guān)閉