久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機系列連載3—數碼管靜態顯示

51單片機系列連載3—數碼管靜態顯示

作者: 時間:2016-11-27 來源:網絡 收藏
今天主要介紹一下數碼管,實際上在學完發光二極管的基礎上,數碼管一點都不難理解,因為這二者本來就是一脈相通的。首先,我們看一下實物圖,基本人人都很熟悉:

本文引用地址:http://cqxgywz.com/article/201611/322435.htm



它的內部結構就是由8個發光二極管組成的,只是要區分共陽極與共陰極,這個跟之前的二極管原理一樣。當然,在排列時要注意順序,一般都是a到h。


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

接下來,寫幾個程序讓它亮一下:

1、一個數碼管亮

#include

sbitduan=P2^2;

sbitwei=P2^3;

voidmain()

{

wei=1;

P0=0x00;

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

duan=1;

P0=0x66;

duan=1;

while(1);

}

2、多個數碼管靜態顯示

#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--);

}

以上就是對數碼管靜態顯示的簡單分析,動態的稍后介紹,在數碼管這塊,主要解決一點,就是位鎖存與段鎖存,把這個理解了,剩下的就是簡單地c語言編程了,其實真的不難!



評論


技術專區

關閉