|
|
單片機(jī)數(shù)碼管的原理大概是這樣的,分別對一個字節(jié)進(jìn)行編碼,暫且將其叫a,b,c,d,e,f,g,h,當(dāng)取不同的值時,將會得到不同的顯示,那為什么是八位呢,因為在計算機(jī)里8位剛好是一個字節(jié),這樣就使其變的合理起來,可以把一個字節(jié)的數(shù)據(jù)送到某個寄存器里面,然后再送給數(shù)碼管,得到相應(yīng)的顯示。編碼如下:
----------------------------------------------------
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0 1 2 3 4 5
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,
6 7 8 9 A B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
C D E F 無顯示
------------------------------------------------------
為了節(jié)約資源,又引入了2個鎖存器(74HC573),這樣就可以使用少的單片機(jī)引腳達(dá)到完全控制數(shù)碼管的目的。為什么會選擇鎖存器呢,,其實,我模電學(xué)的太菜了,里面的原理還不明白,以后有空的話,會去看看補(bǔ)充一下。
再說說鎖存器的功能,就是鎖存器有一個控制位,當(dāng)她的高位電位不同,會有不同的效果,當(dāng)是高電平的時候,導(dǎo)通,當(dāng)是低電平的時候,就斷開了,并且保持右邊的電位狀態(tài)。所以利用這一功能,就可以達(dá)到控制數(shù)碼管的目的。
因此,可以如下示例程序:效果是點亮2個數(shù)碼管,顯示0
#include<reg52.h>
sbit wela=P2^7;
sbit dula=P2^6;
void main()
{
wela=0;
P0=0xc0;
wela=1;
dula=0;
P0=0x06;
dula=1;
} |
|