數(shù)碼管是單片機系統(tǒng)中經(jīng)常用到的顯示器件, 從內(nèi)部結(jié)構(gòu)上可以分為共陰極和共陽極數(shù)碼管。對不同的數(shù)碼管,電路的接法也不一樣。圖1A為數(shù)碼管的結(jié)構(gòu)圖。以共陽極數(shù)碼管為例, 要想點亮某段, 只需要在相應(yīng)的段上給低電平即可。圖1B為共陽極數(shù)碼管段碼分布, 以及一個顯示的實例。
圖1 數(shù)碼管段碼分布及顯示示例
按照工作方式, 數(shù)碼管驅(qū)動可以分為靜態(tài)顯示和動態(tài)掃描。所謂靜態(tài)顯示, 就是每一個數(shù)碼管的段碼都要獨占具有鎖存功能的輸出口, CPU把要顯示的字碼送到輸出口上,就可以使數(shù)碼管顯示對應(yīng)的字符, 直到下一次送出另外一個字碼之前, 顯示的內(nèi)容一直不會消失;動態(tài)掃描是把所有顯示器的8個段碼中的A-dp的各個相同段連接在一起, 接到一個公共的輸出口上,而數(shù)碼管的位端分別接在另外的輸出口上,通過這兩個輸出口的兩組信號相互作用來產(chǎn)生顯示效果。即讓各位數(shù)碼管按照一定順序輪流顯示, 只要掃描頻率足夠高, 由于人眼的“ 視覺暫留”現(xiàn)象,就能連續(xù)穩(wěn)定的顯示。靜態(tài)顯示法的優(yōu)點是顯示穩(wěn)定、亮度大, 節(jié)約CPU時間, 但占有I/O口線較多, 硬件成本高。動態(tài)掃描其特點在于能顯著降低顯示部分成本,大大減少顯示接口的連線結(jié)構(gòu)。舉例, 靜態(tài)驅(qū)動4位數(shù)碼管, 需要4×8=32個I/O口, 而動態(tài)的驅(qū)動位數(shù)碼管只需要4+8=12個I/O口。
電路圖詳解
單片機的I/O資源是有限的, 因此如何節(jié)省I/O口線而又不影響系統(tǒng)的功能是單片機工程師面臨的實際問題。圖2采用是串行轉(zhuǎn)并行芯片74HC595和三線一八線譯碼器實現(xiàn)8位數(shù)碼管的驅(qū)動, 好處是可以節(jié)省更多的I/O口線作其他用途。正常驅(qū)動8個數(shù)碼管需要8+8=16根口線, 采用595+138的方式只需要3+3=6根。
圖2 數(shù)碼管顯示電路連接圖
為了更好地理解電路, 這里簡單介紹一下74HC595和74LS138兩個芯片的作用。74HC595是一款串行移位輸入、8位并行輸出的芯片, 內(nèi)帶數(shù)據(jù)移位寄存器和三態(tài)輸出鎖存器;SER為串行數(shù)據(jù)輸入;SRCLK為移位時鐘輸入;RCLK為鎖存控制輸入;QA-QH為數(shù)據(jù)輸出, QH’為向下一片(位)的串行數(shù)據(jù)輸出。74LS138是一個3線一8線的譯碼器, 低電平有效輸出, 因此每個時刻輸出端口只有一個是低電平, 其余都是高電平輸出, 因此可以驅(qū)動共陰極數(shù)碼管。如果驅(qū)動共陽極的數(shù)碼管還需要做一個非門的轉(zhuǎn)換。最后, 為了增加單片機I/O的輸出能力, 在74HC595與數(shù)碼管之間串接了一個74HC245并行驅(qū)動芯片。
從電路圖中可以看到, 每個芯片的電源和地附近都接了一個104電容, 這個高頻濾波電容, 可以減小電源對IC的影響。注意高頻電容的布線, 連線應(yīng)靠近電源端并盡量粗短, 否則, 等于增大了電容的等效串聯(lián)電阻, 會影響濾波效果。其實, 不加這個電容也可以, 但萬一因為干擾出了問題, 就會很難查找根源, 實際調(diào)試電路板的時候就會發(fā)現(xiàn)電容的作用非常大的, 而這些恰恰是初學(xué)者容易忽略的地方。
關(guān)健程序分析
動態(tài)掃描需要注意的一個問題, 由于所有數(shù)碼管的段碼接到一個公用的I/O上, 在每個瞬間, 各個位數(shù)碼管上的段碼都是一樣的, 要想在不同的位顯示不同的信息, 必須用掃描顯示的方式, 在一段時間內(nèi), 只點亮一個數(shù)碼管, 其余的都處于關(guān)閉狀態(tài);下一個時間段內(nèi)點亮下一個數(shù)碼管, 其余的都處于關(guān)閉狀態(tài)。如此循環(huán), 造成一個視覺暫留的效果, 當(dāng)閃爍的頻率大于50Hz的時候, 人眼就分辨不出來了, 即各個位上顯示的信息就“ 區(qū)分”開了。掃描頻率過高, 每個位顯示的時間太短, 數(shù)碼管的亮度不夠;掃描頻率過低, 會有明顯的閃爍感。這個時間需要根據(jù)不同的硬件電路, 做不同的調(diào)整, 而且跟數(shù)碼管的個數(shù)有關(guān), 一般的經(jīng)驗值延時10ms左右。
圖3 數(shù)碼管動態(tài)顯示流程圖
總結(jié)
動態(tài)掃描過程中,?LED顯示的亮度同驅(qū)動電流、點亮?xí)r間和關(guān)斷時間有關(guān), 調(diào)整驅(qū)動電流大小和掃描頻率, 可以控制LED顯示的亮度, 同時穩(wěn)定顯示。這需要在實際的調(diào)試過程中不斷的嘗試, 找到一個最佳臨界點!對于尺寸比較大的數(shù)碼管, 可以在74HC245與數(shù)碼管之間再串接一個ULN2003(7段)或者ULN2803(8段)達林頓管增加驅(qū)動能力。
評論