和12歲小同志搞創(chuàng)客開發(fā):如何驅(qū)動LED數(shù)碼管?
LED數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成。
1
LED數(shù)碼管分類和驅(qū)動原理
數(shù)碼管按段數(shù)可分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元,也就是多一個小數(shù)點(DP),這個小數(shù)點可以更精確的表示數(shù)碼管想要顯示的內(nèi)容。
數(shù)碼管按能顯示多少個,可分為 1 位、 2位、 3 位、 4 位、 5 位、 6 位、7 位等數(shù)碼管。
4位數(shù)碼管
8位數(shù)碼管
按發(fā)光二極管單元連接方式可分為共陽極數(shù)碼管和共陰極數(shù)碼管。
共陽數(shù)碼管:
將所有發(fā)光二極管的陽極(VCC)接到一起形成公共陽極(COM)的數(shù)碼管,共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極 COM 接到VCC,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮, 當(dāng)某一字段的陰極為高電平時, 相應(yīng)字段就不亮。
共陰數(shù)碼管:
指將所有發(fā)光二極管的陰極(GND)接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND,當(dāng) 某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點亮,當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。
數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)數(shù)碼管和動態(tài)數(shù)碼管兩類。
素材來源:博主big__C
靜態(tài)數(shù)碼管:
是每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進(jìn)行驅(qū)動。
靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,實際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。
動態(tài)數(shù)碼管:
動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一。
動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。
通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。
在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。
2
LED數(shù)碼管驅(qū)動實踐
DF創(chuàng)客社區(qū)商城售賣的數(shù)碼管是增加了IIC芯片,通過IIC時序信號就可以進(jìn)行驅(qū)動,極大方便了新手開發(fā)者使用,但是還是需要各位掌握好數(shù)碼管的驅(qū)動原理,知其然知其所以然,在開發(fā)的過程中才可以達(dá)到舉一反三的效果。
代碼如下所示:
往期推薦

