欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
利用按鍵控制PWM調節LED亮度,持續按按鍵能夠連續變化 求幫助
[打印本頁]
作者:
遲遲不離去
時間:
2019-9-9 18:12
標題:
利用按鍵控制PWM調節LED亮度,持續按按鍵能夠連續變化 求幫助
我已經做到了單獨按遙控或者是按按鍵的時候可以調節亮度,但是持續按遙控或者是按鍵的話我實現不了,希望大佬們幫幫忙,給我一點點思路。
作者:
csmyldl
時間:
2019-9-9 22:44
單獨按能實現,持續按不能實現,這就要看你的電路和程序了,按鍵是否中斷實現?若是中斷的話是邊沿觸發還是電平觸發?判斷按鍵是否要彈起才有效?這些問題不清楚不好回答你的問題。一般若要連續按實現調節的話,用一個計數器計數,計數至最大值對應最大亮度,最小值對應最小亮度,只要保證按鍵能對計數值增減就可實現了
作者:
xianfajushi
時間:
2019-9-9 23:02
循環延時你的按鈕變量自增
作者:
wulin
時間:
2019-9-10 07:49
短按+-,長按連+-,給你一個示例程序參考。
#include <REG51.H>
#define uint unsigned int
#define uchar unsigned char
#define key_S 1000 //宏定義短按(約20ms)
#define key_L 30000 //宏定義長按(約2/3s)
#define key_M 20000 //宏定義長按(約1/3s)
sbit key1=P3^6; //加鍵
sbit key2=P3^7; //減鍵
uchar num=1;
void keyscan() //按鍵掃描
{
static uint count1=0,count2=0;//計數變量
if(!key1)
{
count1++;
if(count1>=key_L) //長按
{
if(num<255)
num++;
count1=key_M;
}
}
else //按鍵抬起
{
if(count1>key_S && count1<key_L)//短按
{
if(num<255)
num++;
}
count1=0; //count清0
}
if(!key2)
{
count2++;
if(count2>=key_L) //長按
{
if(num>0)
num--;
count2=key_M;
}
}
else //按鍵抬起
{
if(count2>key_S && count2<key_L)//短按
{
if(num>0)
num--;
}
count2=0; //count清0
}
}
void main()
{
while(1)
{
keyscan(); //按鍵掃描
P1=~num; //LED低電平顯示
}
}
復制代碼
作者:
遲遲不離去
時間:
2019-9-10 08:49
csmyldl 發表于 2019-9-9 22:44
單獨按能實現,持續按不能實現,這就要看你的電路和程序了,按鍵是否中斷實現?若是中斷的話是邊沿觸發還是 ...
謝謝 我再試試
作者:
bsbshi
時間:
2019-9-10 15:08
本帖最后由 bsbshi 于 2019-9-10 16:07 編輯
按鍵不用中斷,在計時器里循環查詢按鍵接口電平,加個延遲計數器,if判斷,在延遲時間內高電平回零,為單次按按鍵,+1;超過延遲還是高電平則為持續按壓,++,直到按鍵變低電平
作者:
hmgqljz111
時間:
2019-11-22 15:34
能看看你的按鍵檢測代碼嗎。有沒有加松手檢測。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1