昨天說的是led的使用,多加練習大家就會對38解碼器和鎖存器有乙個深入的了解。有所了解之後再學習蜂鳴器、數碼管、繼電器等外設的時候就輕鬆的多了。因為都是換湯不換藥,這些外部裝置使用的和led相同的鎖存和解碼的方法。今天就先給大家講解數碼管的使用。
如果想要驅動數碼管就要同時使用兩個74hc573分別控制段選和位選。
從上圖中我們可以看出u7控制的是段選,u8控制的是位選。所以程式的話就是依次使能段選
後送入段選資訊再使能位選送入位選資訊。(切記一定要把顯示程式放在中斷服務函式中,如果放在主函式中可能會亂碼)
下面的是中斷函式:
void timer0_init(void)
void timer0_isr(void) interrupt 1
// if(cp2 >= 1)
// void display();
}
下面就是數碼管的控制程式:
usnigend char code seven_seg = ;
void display()
i++;
if(i>=8) i = 0;
}
只需要在seven_seg[ ]中輸入你想顯示的0—9的數字就會在數碼管上顯示出來。0x01是左邊第乙個數碼管,0x80
是最右邊的數碼管,以此類推。當然也可以使用位操作的方式,位操作也是我比較推薦大家去使用的一種方式。不太推薦
大家對單一的埠進行進行操作,因為單一的埠操作雖然思路會比較清晰,但是比較浪費時間。在比賽的時候時間短暫
所以比較推薦大家使用節省時間,而且思路清晰的方法。位操作一般情況下不會對其他的埠產生影響。
void display()
i++;
if(i >= 8) i = 0;
}
講完了數碼管的顯示,緊接著我們趁熱打鐵講述蜂鳴器的使用:
從上面的兩個圖我們可以看出蜂鳴器是通過74hc573之後,又經過了乙個uln2003的晶元以後連線到了out7
引腳上。uln2003是乙個我們常見的驅動晶元,熟悉微控制器的朋友可能經常使用uln2003來做電機的驅動晶元。
頓都串聯乙個2.7k 的基極電阻,在5v 的工作電壓下它能與ttl 和cmos 電路直接相連,可以直接處理原先需要標準邏輯緩衝器
來處理的資料。
由上圖我們可以看出uln2003僅僅是起到了乙個電平轉換的作用,因此我們在程式上不需要特別多的去關注uln200
3的功能。
下面就是uln2003的通用控制的程式,在只需要鍵入想要的x的值就可以控制uln2003了。
void uln2003(unsigned char x)
藍橋杯學習筆記(4)數碼管
數碼管是一種半導體發光器件,由發光二極體組成,數碼管可分為七段數碼管和八段數碼管,八段數碼管體七段數碼管多了乙個發起光二極體,也就是右下的那乙個小數點。按照發光二極體的連線方式,分為共陽極數碼管和共陰數碼管。共陽極數碼管就是將所有的發光二極體的陽極接在一起,形成乙個公共的陽極,共陰數碼管就是將所有二...
藍橋杯微控制器設計與開發之蜂鳴器繼電器
蜂鳴器問題 我覺得你一定也遇到這樣的情況剛拿到這塊競賽板子的時候,蜂鳴器一直響,還以為是板子有問題,其實不然,由於板子自帶鎖存功能,系統上電有的時候y5c被關閉有的時候被開啟,因此會出現有時候響,有時候不響的原因。p0口為高電平,q1 q8 也全為高電平,uln2003 反相器,out1 out7 ...
藍橋杯微控制器 開發板蜂鳴器與繼電器 (3)
藍橋杯微控制器 開發板蜂鳴器與繼電器 3 蜂鳴器的正極接vcc 5v,負極接在達林頓管的n buzz上,達林頓管是乙個非閘電路 若in輸入1,則out輸出0 若in輸入0,則out輸出1 要使蜂鳴器響,則out7為低電平0。再來看解碼器,想要打通這個解碼器那麼y5c必須為高電平,y5c由38解碼器控...