分清楚共陽極和共陰極
如上圖所示的這個就是共陽極的,也就是在上面的3號引腳或者8號引腳輸入高電平,下面的引腳輸入低電平,就可以點亮某一個管。比如,3號引腳輸入高電平5V,7號引腳輸入低電平接GND,那么A管就點亮,可以用同樣的道理點亮其他每一個管。
那么共陰極的呢,自然就是二極管的方向反過來,如下圖,操作的方法自然也就是反過來的。
如果只有一位數碼管,而且在單片機引腳夠用的情況下,我們可以采用直接連接的方式。假如你用的是STM32,3.3V的推挽輸出驅動數碼管一般也完全夠用了。那么我們就可以直接把單片機引腳接到數碼管引腳上面,通過控制單片機引腳就可以控制數碼管,這里沒有學過單片機的小伙伴可以先撤退了,了解了單片機再過來
當引腳數量充足的時候,當然可以像上圖一樣這么做,但是如果引腳不夠怎么辦?
譯碼器
可以使用譯碼器來輔助設計,比如在只有一位數碼管的情況下,為了給單片機留出更多引腳,我們就可以這么設計
這里利用到了一個3位譯碼8位的譯碼器,不知道譯碼器怎么用的小伙伴可以去復(yu)習一下數電了,這里放上譯碼器的真值表,我們發現我們通過單片機的三個引腳就能控制8位的輸出了
細心的小伙伴可能發現問題了,這個譯碼器是可以做到八位輸出,每次只能輸出一位低電平,怎么樣才能同時控制數碼管的八個段呢?
這里其實需要解決的問題有兩個,我們這里先說第一個
8個輸出引腳,只能有一個引腳是低電平,其余是高電平,怎么同時控制八位?
這里可以用到我們人眼的視覺延遲效應,既然沒法同時點亮,那就一個一個點亮,時間足夠短,看起來就和同時點亮一樣了。
這里就涉及到了第二個問題了
如果數碼管是共陽極的,一個一個點亮自然沒什么問題,但如果是共陰極呢?
我們會發現,共陰極數碼管采用這種方式,只能熄滅其中一個管,沒法做到我們上面說的效果,那么這個時候就需要用到非門進行電平的反轉了。聽起來好像很簡單,加個非門就好了,在數碼管只有一位的情況下確實是這樣的。
我們上面這種設計方法,如果遇到多位數碼管怎么辦呢?
下面給大家分享一個案例
案例分享
如上原理圖,采用了一個38譯碼器(型號為74HC138D,653),譯碼器的真值表同上文,右邊的數碼管是個共陽數碼管。這個案例采用的設計方法是把數碼管的段接到了譯碼器上,位選直接接到了單片機的引腳。
乍一看,這么設計好像沒有什么毛病
實際上在編程的時候,我們想象一下這個邏輯,如果要同時點亮四個數碼管,并讓他顯示不同的數字,那么我們會發現,這四個位置的數字是不能同時操作的。為什么呢?因為四個位置的數碼管段選都連在了同一個譯碼器上,只能一個一個去點亮他們
這時候就出現了一個大問題,當我們只有a,b,c...dp八個段的時候,逐個點亮看不出明顯的亮度減弱,而現在有32個段,如果逐個點亮,每個段實際通電的時間只有總時間的1/32,這時候就會發現數碼管的亮度明顯被削弱了。當然,會有人想用ULN2003之類的芯片來提高電壓,也沒問題,但我認為這里最好的解決方法并不是提高電壓
第一種,我認為應該是把譯碼器接到數碼管的位上,也就是原理圖中的DIG1-DIG4可以用一個24譯碼器,然后a-dp這8個段直接接到單片機上,當然這種方法也需要用到很多的單片機引腳,或者更適合位數較多的數碼管。因此,我們還可以用另一種器件來實現我們需要的功能
那就是,鎖存器
鎖存器
鎖存器,顧名思義,就是鎖住電平用的。如果大學期間參加過藍橋杯單片機或嵌入式的比賽,應該就會對這個東西特別熟悉
我這里拿藍橋杯用過的鎖存器M74HC573M1R來舉例,如下圖,當Y6C的電平改變時,就能開關鎖存,具體是高電平開還是低電平開我就偷個懶不去差手冊了,大家如果要用這款芯片來做電路設計記得去查一下手冊。所以其實鎖存就是存下來并鎖住,通過控制Y6C就可以控制右側com1-com8的電平是否和左側相同,這樣就可以最大程度利用到單片機的引腳資源了
對了,進階選手可以了解一下移位寄存器74HC595,這款芯片還是比較常用來驅動數碼管的。
審核編輯:劉清
-
二極管
+關注
關注
147文章
9640瀏覽量
166511 -
單片機
+關注
關注
6037文章
44558瀏覽量
635356 -
STM32
+關注
關注
2270文章
10900瀏覽量
356056 -
數碼管
+關注
關注
32文章
1882瀏覽量
91126 -
GND
+關注
關注
2文章
539瀏覽量
38721
原文標題:【電子設計】數碼管電路該怎么設計
文章出處:【微信號:HGL-DXP2004,微信公眾號:DXP設計】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論