新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)系列連載3—數(shù)碼管靜態(tài)顯示

51單片機(jī)系列連載3—數(shù)碼管靜態(tài)顯示

作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
今天主要介紹一下數(shù)碼管,實(shí)際上在學(xué)完發(fā)光二極管的基礎(chǔ)上,數(shù)碼管一點(diǎn)都不難理解,因?yàn)檫@二者本來就是一脈相通的。首先,我們看一下實(shí)物圖,基本人人都很熟悉:

本文引用地址:http://butianyuan.cn/article/201611/322435.htm



它的內(nèi)部結(jié)構(gòu)就是由8個(gè)發(fā)光二極管組成的,只是要區(qū)分共陽極與共陰極,這個(gè)跟之前的二極管原理一樣。當(dāng)然,在排列時(shí)要注意順序,一般都是a到h。


那么什么是動(dòng)態(tài)顯示與靜態(tài)顯示呢?看一下官方的解答。所謂靜態(tài)顯示,就是每一個(gè)數(shù)碼管的段碼都要獨(dú)占具有鎖存功能的輸出口,CPU把要顯示的字碼送到輸出口上,就可以使數(shù)碼管顯示對應(yīng)的字符, 直到下一次送出另外一個(gè)字碼之前,顯示的內(nèi)容一直不會(huì)消失;動(dòng)態(tài)掃描是把所有顯示器的8個(gè)段碼中的A-dp的各個(gè)相同段連接在一起,接到一個(gè)公共的輸出口上,而數(shù)碼管的位端分別接在另外的輸出口上,通過這兩個(gè)輸出口的兩組信號相互作用來產(chǎn)生顯示效果。即讓各位數(shù)碼管按照一定順序輪流顯示,只要掃描頻率足夠高,由于人眼的“ 視覺暫留”現(xiàn)象,就能連續(xù)穩(wěn)定的顯示。

接下來,寫幾個(gè)程序讓它亮一下:

1、一個(gè)數(shù)碼管亮

#include

sbitduan=P2^2;

sbitwei=P2^3;

voidmain()

{

wei=1;

P0=0x00;

wei=0xbf;(此條語句結(jié)果為第7位數(shù)碼管亮,顯示4)

duan=1;

P0=0x66;

duan=1;

while(1);

}

2、多個(gè)數(shù)碼管靜態(tài)顯示

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitduan=P2^2;

sbitwei=P2^3;

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

voiddelay(uintz);

voidmain()

{wei=1;

P0=0xea;

wei=0;

while(1)

{uintnum;

for(num=0;num<16;num )

{

duan=1;

P0=table[num];

duan=0;

delay(1000);

}

}

}

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

以上就是對數(shù)碼管靜態(tài)顯示的簡單分析,動(dòng)態(tài)的稍后介紹,在數(shù)碼管這塊,主要解決一點(diǎn),就是位鎖存與段鎖存,把這個(gè)理解了,剩下的就是簡單地c語言編程了,其實(shí)真的不難!



評論


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

關(guān)閉