[51單片機] 以從0開始做4位8段共陰數碼管3461AS驅動談細節決定高質量DIY


 

目錄

1)問題產生

2)失敗嘗試

3)最終方案

4)使用方法

5)知識共享


 

1)問題產生

在上一篇“ 以PWM控制直流電機為例建一個簡單的51工程框架中已向大家介紹了一個封裝好的8位8段數碼管的驅動(如下圖中FUNC文件夾下led8.c文件)。

但是該驅動電路是要有一定的硬件基礎的(如下圖):如2片74HC573。而我這里只有幾個4位8段共陰數碼管又沒有74HC573,所以就得尋求用51直接驅動的方案了!


 

2)失敗嘗試

失敗操作:直接在相應的引腳間加5伏電壓來測試該數碼管是否正常

結果:燒壞了2個3461AS

分析:被第二張圖騙了,以為3461AS可以承受01電平產生的壓差,而真實情況如下圖:在P0口有10K的排阻,然后測量一下電壓終於恍然大悟!


 

3)最終方案

在第二步到第三步之間還找到一個例子:他采用3-8譯碼器然后串聯電阻進行保護。

因為有3-8譯碼器的例子我的直驅的想法得到進一步的驗證,於是綜合上面的分析給出了下面的方案:


 

4)使用方法

同樣的我把關於3461AS封裝起來(如下)

在要使用該功能的文件中首先包含頭文件,然后引用DuanMa數組、TempData數組以及用於顯示的Display函數。

然后在想要顯示數據前把數據存儲在TempData中(TempData[0]表示要顯示的第一個數字,這里把共陰8段數碼管顯示從0~F的值存儲在DuanMa數組中。因此要讓第一個數字顯示2則只要TempData[0]=DuanMa[2])。當在TempData中設置好要顯示的信息后就可以調用Display函數進行刷新數碼管顯示(Display的第一個參數表示從第幾個數碼管開始顯示,例如FirstBit=0表示從第一個數碼管開始顯示num位數據)

注:要保證Display有比較快的刷新頻率


 

5)知識共享

https://github.com/beautifulzzzz/stc89c51-or-stc89c52 

 

 


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM