<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機學(xué)習記錄——數碼管動(dòng)態(tài)顯示

51單片機學(xué)習記錄——數碼管動(dòng)態(tài)顯示

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò ) 收藏
正在學(xué)習51的數碼管以及中斷,打算利用六位數碼管實(shí)現一個(gè)時(shí)鐘的功能。

但使用數碼管輸出時(shí),如果不添加延時(shí)語(yǔ)句,那么一直有顯示混亂的現象,有時(shí)完全無(wú)法分辨清楚數字。

本文引用地址:http://dyxdggzs.com/article/201611/318260.htm

如果在傳送完數據以后延時(shí)1ms,顯示混亂情況會(huì )好轉。

同時(shí)發(fā)現延時(shí)的時(shí)間越長(cháng),顯示效果越好。但是當然,相應的顯示穩定程度也會(huì )下降,即數碼管閃爍。

程序中在送完段選數據以后已經(jīng)使用了參考書(shū)中的“消影”語(yǔ)句:

1 dula=1;2 P0=table[k];3 dula=0;4 P0=0xff;//“消影”

可是這個(gè)語(yǔ)句只是在有延時(shí)的情況下才有效果,如果我不寫(xiě)延時(shí)語(yǔ)句,那么顯示依舊混亂。

雖然在顯示過(guò)程延時(shí)不會(huì )影響中斷的計時(shí),但是我總不想依賴(lài)for語(yǔ)句寫(xiě)出來(lái)的延時(shí)。= =

于是自己就嘗試了很多方法,想要解決這個(gè)問(wèn)題,我的目標就是不寫(xiě)延時(shí)語(yǔ)句讓數碼管正常顯示。

我有試過(guò)先向P0傳送數據,然后打開(kāi)鎖存器,馬上關(guān)閉。

如:

1 P0=table[k];2 dula=1;3 dula=0;

但是問(wèn)題依舊

也嘗試過(guò)在打開(kāi)任一鎖存器之前,再鎖一次另一鎖存器(即送一次低電平),仍然無(wú)效。

最后發(fā)現需要在輸出數據之前加這么一段代碼:

1         P0=0xff;2         wela=1;3         wela=0;4         P0=0x00;5         dula=1;6         dula=0;//初始化消除干擾

加了這段代碼,數碼管顯示不再混亂。語(yǔ)句的功能就類(lèi)似于初始化一下鎖存器的內容。

經(jīng)過(guò)兩天的研究,終于明白了期中的貓膩?,F在發(fā)出來(lái)跟大家分享一下:(轉載請說(shuō)明出處)

數碼管之所以有“影”,根本原因是段選,位選數據無(wú)法同時(shí)送達。

具體解釋一下:當我改變了位選的值后(改變了要顯示的數碼管),接下來(lái)才改變段選的值(改變要顯示的數字)。而在這中間有微小的時(shí)間間隔,位選的值改變了,但是段選的值沒(méi)變。也就是說(shuō),我改變了要顯示的數碼管,但是這個(gè)數碼管顯示的是上一個(gè)數碼管的數字!想到這里,我有如醍醐灌頂,豁然開(kāi)朗!當然,反之亦然,如果你是先段選再位選,同樣有問(wèn)題。請大家自己考慮。

所以不難解釋上面那段代碼的作用了,就是在輸出之前將之前那個(gè)數碼管顯示空(或者不選擇任何數碼管)。

所以顯然這個(gè)初始化代碼還可以簡(jiǎn)化,但是要取決于你是先段選還是先位選。如果先位選,那么就要清空段選數據。

1 P0=0x00;2 dula=1;3 dula=0;

反過(guò)來(lái)也一樣。如果先段選,那么清空位選數據即可。

百度百科有人問(wèn)了一個(gè)差不多的問(wèn)題,這里引用過(guò)來(lái)供大家參考:

經(jīng)驗總結:數碼管的顯示,段選數據和位選數據要緊貼,中間不要夾雜其他語(yǔ)句。換句話(huà)說(shuō),計算在先,最后一次性傳送數據。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>