<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子元器件>數碼管>

數碼管如何做到動態顯示

2021年02月07日 17:46 小亮談電氣 作者:小亮談電氣 用戶評論(0

說到動態顯示,我們可以說是輕車熟路了,之前的LED已經練過不少了,此次只是把LED換成了數碼管,原理一樣,還是一樣的電路,接下來看看如何做到動態顯示。

o4YBAF_-wcKARpo7AAHLH_fzdxM539.png

首先是對程序代碼做些更改,只要要加上掃描的部分就可以了。關于中間的時間,還是用延時函數來做。

pIYBAF_-wc6AUrhmAAVfq2isd1I201.png

o4YBAF_-wdWASuv0AAIjeCr-1MQ356.png

在循環函數中,我先是把刷新代碼寫在了最前部分,激活數碼管1,輸出數據,然后延時,接著激活數碼管2,然后輸出數據,再次延時,延時結束判斷按鍵是否按下。沒有按下繼續掃描數碼管,顯示的是之前的存儲在緩存中的數值,延時函數,采用的還是之前的配方,時間也是一樣的,估計有些同學已經忘記了是延時多久了。我再給介紹下如何查看延時時間。

首先看下仿真中選擇的單片機的晶振頻率。

o4YBAF_-wdyAMQtfAAFXZihovbc494.png

我用的是11.0592MHz,然后再去查看keil中仿真的頻率是多少。修改為一致的參數。

pIYBAF_-weSAbx0pAAN8dMRbwUs998.png

單擊這個按鍵,彈出設置對話框。

o4YBAF_-weqAMG5yAALAZSv29qw968.png

把此處的數字更改為11.0592即可,只填數值。記號小數點不要填錯位置。其他不用動,單擊OK即可。

o4YBAF_-wfGABHE9AAF0HiRCKBs288.png

單擊此按鍵進入仿真模式。

pIYBAF_-wfeAbegwAAKj7yNGOkM263.png

首先單擊左上角的復位按鍵,對時間復位,然后再代碼調試窗口對這左側的灰色部分,在delay對應的前方單擊,就可以添加一個斷點,當程序運行到此處,會停止運行,方便我們查看時間。為了計算的方便,可以把delay后邊括號中的數值更改的合適一些,例如改成整數,這里我修改為100,方便計算。切記一旦進入仿真模式,你可以修改代碼,但是修改后的代碼是不會立即運行到此次仿真中的,需要退出仿真,進行編譯后,再次進入仿真,才會運行修改后的代碼。所以進入仿真后,就不要更改了,需要改的,可以退出放著后再修改,每次修改完記得編譯。

pIYBAF_-wf2AWZd5AAHZo75wtrA292.png

在延時函數結尾處的灰色部分也添加斷點。接著單擊左上角復位鍵后的開始鍵。

pIYBAF_-wgOABj29AAL_YSOk7eg887.png

當運行到延時函數時,就停下來了,此時延時函數前的運行時間是0.00043511秒。還是很快的。再次點擊開始按鍵。

o4YBAF_-wgmAWyKCAAIkvUJRtLw890.png

代碼停止到了延時的函數結尾處,此時延時函數已經運行完畢。當前總時間是0.21941732秒,減去之前的運行時間,得到的延時時間是21941732-43511=21898221,就是0.21898221秒,四舍五入,就是0.219秒,219毫秒。因為延時了100次,所以一次就是2.19毫秒。

之前的代碼是delay(26),就是延時26次,相當于26*2.19=56.94毫秒,約為57毫秒,道理上已經低于人眼的范圍,從仿真軟件上,也可以看出閃爍,為什么用這個數值呢,主要是當我選則較低的延時時間時,就會出現仿真數碼管不顯示,沒辦法,因為手頭沒有實際的數碼管去驗證,所以就增大了延時時間,如果實際去驗證的話,延時時間應該設置在5毫秒以內,因為是兩個數碼管,一個5毫秒,兩個就是10毫秒。5/2.19=2.28次,所以延時設置為delay(2)。注意這一點,不然用26去試,閃得厲害。所以仿真軟件只適用于測試,真正的還是需要去動手實踐。

我們還接著看仿真效果吧。

o4YBAF_-whGACu2IAAHIyr4ywS8746.png

當按下按鍵,首先是顯示的0,1、2此時再不停地切換。

pIYBAF_-whiABYoNAAHPoepMU7k452.png

再次按下按鍵,數碼管顯示了10,因為buffer2中的0依然在,buffer1中存儲的是1,所以就顯示了10。

多次單擊后,可以看到,奇數顯示在左,偶數顯示在右,隨著單擊,交替更新。有興趣可以自己測試下。這就是動態顯示,也不是那么難。
責任編輯人:CC

非常好我支持^.^

(43) 78.2%

不好我反對

(12) 21.8%

( 發表人:陳翠 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
      <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
      <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
      <acronym id="s8ci2"></acronym>
      <acronym id="s8ci2"><center id="s8ci2"></center></acronym>