回覆列表
  • 1 # 使用者4622914998402

    首先,答主要知道單個數碼管的本質就是八個led二極體(8這個數字佔七個 外加一個小數點)。把這八個led二極體的陰極連在一塊這就是共陰管,陽極連在一起就是共陽管。用的時候在陰陽級上通對應電平控制哪些led亮或者滅來顯示資料。

    數碼管原理圖

    其次,出現鬼影的一般是多位數碼管,並且是在顯示不同數字的時候,總會有一些不亮不暗的影子存在,這個影子就是題主所謂的鬼影。一般為了消除這個所謂的鬼影,我們需要在程式中加上消隱語句來消除掉這部分奇怪的現象。

    我們先來分析鬼影產生的原因:多位數碼管的內部結構一般是若干個共陰(陽)管的公共極單獨引出,從而控制具體是哪個數碼管在顯示(這裡我們先把他給命名為位選引腳,即圖中數碼管上方接三極體的引腳),把控制不同管子上的相同位置的led亮滅的引腳合併引出,從而控制數碼管具體顯示什麼(我們把這個引腳可以稱為段選引腳,即圖中左側的那些引腳)。

    多位數碼管顯示不同資料其實不是同時顯示的,是以掃描的方式顯示的,例如上面的原理圖我想顯示12這個數字,理論上我需要先讓第一個顯示數字1,第二個顯示數字2,這樣來回不停的顯示並且重新整理頻率上去的話,利用人眼的視覺暫留效應就可以得到一個顯示著12的數碼管了。

    但是,迴歸到程式上來,數碼管的顯示我需要微控制器送兩組資料出去,即控制哪個管子顯示的位選訊號(選擇哪一位),還有控制具體顯示什麼的段選訊號(選擇亮什麼)。 這樣一來就有一個先後順序

    比如 我先開控制第一個數碼管亮位選訊號1,然後送數字1的段選訊號,這個時候第一個數碼管就成功的顯示了數字1了,這個時候我關掉第一個數碼管的位選訊號,開啟第二位的位選訊號2,在這一瞬間,二號數碼管等於收到了位選訊號2和段選訊號1,短暫的亮了一下數字1,接下來段選訊號重新整理,更新為段選訊號2,數碼管改顯示2。 因為段選訊號跟位選訊號同步更新的成本太高,所以人們想出了一個從程式上解決這個問題的思路,即消隱操作。

    所謂的消隱操作,就是位選訊號更新前(上一位位選引腳鎖存,下一位位選引腳未開啟之間)先送一個0x00或者0xff出來,重新整理掉段選訊號上的資料,這樣的話,等下一個管子可以被點亮時,段選資料實際是空的,只有當他該顯示的資料傳過來時才會現實正確的數字,就不會有所謂的鬼影了。

  • 中秋節和大豐收的關聯?
  • VP戰隊隊長Noone接受採訪提到禁藥問題,電子競技也需要吃藥嗎?