找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關(guān)于單片機(jī)數(shù)碼管不滅的原因

查看數(shù): 5368 | 評論數(shù): 13 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2020-2-12 17:00

正文摘要:

我的數(shù)碼管是直接和單片機(jī)連接的,沒有用鎖存器之類的。在按住按鍵時本來數(shù)碼管是全部滅的,因為按鍵有松手檢測,一直在那里死循環(huán)。可是我的秒鐘十位那個數(shù)碼管卻亮著,而程序和分鐘的十位一樣,分鐘十位的數(shù)碼管卻 ...

回復(fù)

ID:693613 發(fā)表于 2020-2-15 18:22
沒有消隱,所以會顯示
ID:377268 發(fā)表于 2020-2-15 14:48
進(jìn)去循環(huán)前把斷碼清零,
ID:687694 發(fā)表于 2020-2-14 23:37
應(yīng)該是掃描法驅(qū)動數(shù)碼管的,一般掃描都會有最后一位顯示過后不帶消隱。如果想按鍵不妨礙顯示,可以用分時序執(zhí)行來解決。
ID:371895 發(fā)表于 2020-2-13 14:51
不在一一回復(fù)謝謝各位了。
找到問題了,秒鐘十位是放在數(shù)碼管顯示函數(shù)的最后一個,沒有消隱,所以會顯示。我現(xiàn)在也找到一個按住按鍵不放時會數(shù)碼管會顯示的方法,就是把顯示函數(shù)放在松手檢測死循環(huán)里了,具體見后面的程序截圖。
ID:371895 發(fā)表于 2020-2-13 14:49
banalsheep 發(fā)表于 2020-2-12 21:59
檢查一下是不是消隱問題

謝謝,找到問題了,秒鐘十位是放在數(shù)碼管顯示函數(shù)的最后一個,沒有消隱,所以會顯示。我現(xiàn)在也找到一個按住按鍵不放時會數(shù)碼管會顯示的方法,就是把顯示函數(shù)放在松手檢測死循環(huán)里了,具體見后面的程序截圖。
ID:462827 發(fā)表于 2020-2-13 12:56
程序有問題唄
ID:281828 發(fā)表于 2020-2-13 10:22
不知道樓主的程序也搞不清現(xiàn)象,只能籠統(tǒng)的說了,一般都是設(shè)置一個數(shù)組做顯示緩存,比如4位顯示的數(shù)碼時鐘,設(shè)dat[4];調(diào)整小時的時候,顯示數(shù)據(jù)為:
dat[0]=hour/10;
dat[1]=hour%10;
dat[2]=10;
dat[3]=10;
顯示輸出的時候就是;
for(i=0;i<4;i++)
{
Display_out(SEG7[dat[i]]);
****
}
其中:10的含義為------SEG7[10]=熄屏碼,就是關(guān)閉不需要顯示的數(shù)位。
ID:584814 發(fā)表于 2020-2-13 09:19
如果沒有電平的轉(zhuǎn)換指令,沒有鎖存也一樣的效果。
ID:235200 發(fā)表于 2020-2-13 02:26
至少有4位數(shù)碼管,分鐘2位 ,秒鐘2位,按鍵前數(shù)碼管全滅,但按鍵后程序有相應(yīng)的顯示控制(數(shù)碼管要點亮),你的問題是按鍵未松開時,秒鐘的十位亮了,而分鐘也控制了且與秒鐘程序完全一樣,我想你這4個數(shù)碼管一定是采用動態(tài)顯示方式,動態(tài)顯示就要去控制某一位點亮(某一時間),通過分析剛才是這時你控制了秒鐘的十位亮了,最關(guān)鍵的是按鍵未松開怎么會有控制(你提到一直在那里死循環(huán)),最有可能的是你的按鍵在按下去抖動了,即你以為是一次按鍵,殊不知程序認(rèn)為按下了幾次,這樣分析不知道是不是能解決你的困惑
ID:235200 發(fā)表于 2020-2-12 23:34
換IO口當(dāng)然不能解決問題,只能修改程序去控制IO口的電平狀態(tài)符合你想要的結(jié)果才能做到
ID:272119 發(fā)表于 2020-2-12 22:32
你看下按下按鍵循環(huán)前單片機(jī)做的最后一個動作是啥,一般這個就是在按鍵循環(huán)前IO最后的狀態(tài)沒有清零.
ID:168996 發(fā)表于 2020-2-12 21:59
檢查一下是不是消隱問題

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表