標(biāo)題: 關(guān)于單片機(jī)獨立按鍵程序調(diào)試,不加消抖會導(dǎo)致結(jié)果不正確嗎? [打印本頁]

作者: _是淮    時間: 2019-4-14 21:40
標(biāo)題: 關(guān)于單片機(jī)獨立按鍵程序調(diào)試,不加消抖會導(dǎo)致結(jié)果不正確嗎?
程序如圖:功能:按下獨立按鍵,led發(fā)光
現(xiàn)象:按下后led不亮

這里提出的問題有:
消抖不添加會導(dǎo)致實驗結(jié)果顯示不出來嗎?


主函數(shù)的P1和P3的定義是全局效果嗎?是因為這個全局定義導(dǎo)致的電視結(jié)果嗎?
led未加延時會不會導(dǎo)致看不到這個實驗現(xiàn)象?如果長按按鍵是否可以選擇不用延時使led常亮?
在這兒感謝各位大佬
程序如下方便各位調(diào)試:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit d1=P1^1;
sbit dula=P2^6;
sbit wela=P2^7;
sbit key1=P3^4;
void main()
{
        P3=0xFF;
        P1=0x00;
        while(1)
        {
                if(key1==0)
                                d1=1;                        
                else
                                d1=0;        
        }         
}


QQ圖片20190414212423.png (13.19 KB, 下載次數(shù): 17)

QQ圖片20190414212423.png

作者: xuyaqi    時間: 2019-4-15 10:09
首先, 消抖不添加不會導(dǎo)致實驗結(jié)果顯示不出來。再者可以確定,長按按鍵可以選擇不用延時使led常亮。led不亮不是程序原因,要找別的原因。
作者: 15398151926    時間: 2019-4-15 15:09
消抖不添加不會導(dǎo)致實驗結(jié)果顯示不出來
作者: s'g's'y'f    時間: 2019-4-16 13:00
消抖不添加不會導(dǎo)致實驗結(jié)果顯示不出來
作者: Y_G_G    時間: 2019-4-16 15:53
你這個程序加不加都是一樣,不管是仿真還是實際電路,結(jié)果都會是你想要的樣子
抖動只是在接下按鍵到按鍵完全接觸這一段時間之內(nèi)產(chǎn)生的概率比較大,也不一定會有抖動的,大概也就是幾十mS左右.
你這個程序只是按下去之后就不亮而已,接的過程中可能抖動那么幾十下,但肉眼卻不出來,所以,結(jié)果肯定就是按下就滅燈,放開就亮燈
但如果是:按下就加1,中間沒有去抖動的,再按下又加1的話,結(jié)果就不是你想要的樣子了
作者: 行走在消逝中1    時間: 2019-4-24 18:45
難道不應(yīng)該是d1=0才亮嗎?來自小白的疑問




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1