數碼管也稱LED數碼管,是由多個發光二極管封裝在一起的“8”字型的器件。
led數碼管廣泛應用于儀表、時鐘、車站、家電等場合。常用段數一般為7段,有的另加一個小數點,當然也可以完全定制。選用時應注意產品尺寸顏色、功耗、亮度、波長等。
數碼管要正常顯示,就要用驅動電路來驅動數碼管的各個段碼,從而顯示出我們要的數字,因此根據數碼管的驅動方式的不同,可以分為靜態式和動態式兩類。
靜態驅動也稱直流驅動。靜態驅動是指每個數碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態驅動的優點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數碼管靜態顯示則需要5×8=40根I/O端口來驅動,要知道一個89S51單片機可用的I/O端口才32個,實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。
數碼管動態顯示是單片機中應用最為廣泛的顯示方式之一. 動態驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是哪個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。 通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為1~2ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能夠節省大量的I/O端口,而且功耗更低。
首先需要說明的是:數碼管和發光二極管一樣,需要添加限流電阻。 限流電阻的具體阻值與數碼管擊穿電壓有關。
加限流電阻的兩種方法:
當然,各有利弊:
本次實驗選擇330Ω限流電阻,和5.0V供電。電路如下:
上面的代碼可以讓數碼管依次顯示數字0-9
與上文直接通過Arduino IDE編程控制開發板稍有不同的是,在下面實驗開始前,需要先看幾張圖:
電路連接示意
** R C語言源碼:
源碼下載地址:
算了,還是不發了吧!自己懂原理了,自己寫去! 看都看了,關注一下吧! 關注都關注了,分享一下吧!