操作數碼管的顯示其實與操作led燈的操作本質上差不多,可以把一個數碼管當做操作8段led燈來讓它顯示我們所預想的效果,如下圖所示。
假如我想讓一個數碼管顯示1,把我只需把B、C兩個LED燈點亮就可以了,數碼管的a~dp(數碼管的點)對應字節的1~8位,假設爲共陽極接法,即爲1111 1001對應十六進制的F9
數碼管的顯示分爲靜態顯示和動態顯示
數碼管的靜態顯示其實就是一直給數碼管的特定位一直髮送一樣的數據就可以了,
動態顯示的原理其實是一位一位的操作操作每個數碼管,因爲對每一位的操作特別快,並且在一直輪流給數,原理其實就是利用了人眼的視覺暫留效果和發光管的餘暉作用來達到效果,只是操作的比較快,我們人眼視覺分辨不出來,就會覺得是動態顯示的。
數碼管的接法分爲共陽極和共陰極兩種接法
共陰極接法只要我們給數碼管邏輯高電平即可控制其顯示對應的數字
那麼共陽極我們只需要給其邏輯低電平就可以控制其顯示各個數字
我操作的51單片機的數碼管的接法如下圖所示
這四個數碼管是共陽極接法,當J6跳線帽接上的時候我們對數碼管給邏輯低電平就可以對數碼進行操作。
就如我上面所提到的,數碼管相當於8個LED燈共陽極接在一起,然後用這4個共陽極接法數碼管通過各自通過連接一個PNP型的三極管來進行開通與關斷,RL1的4個電阻是爲了限流,防止電流過大燒壞數碼管,當Q1~Q4也就是P20~P23引腳給低電平時,三極管導通,數碼管可以被點亮,也就是這四個數碼管的位選端,通過P20~P23來控制哪個數碼管來亮。
而P00~P07是這4個數碼管的段選端並聯起來,來進行控制的。
我們來先來實現數碼管的靜態顯示,操作如下。
數碼管對每個位選端進行操作顯示不同的數字
操作如下(位選的註釋有誤,應該依次是第一到第四)
可能由於單片機時間放置太久,導致數碼管的硬件出了點問題,顯示的不是很清晰,不過還是能夠大致看出來各位顯示的數字。
這就是一個簡單數碼管的動態顯示,下一個寫到定時器部分時,我會結合定時器與數碼管來演示一個數字鐘的操作。