日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]想做個觸摸打開,延時關(guān)斷的小控制器用普通的輕觸開關(guān)似乎很難看,而且開關(guān)也不方便 固定,總不好把控制板放在外面吧?想使用觸摸的開關(guān),網(wǎng)上搜索了好久沒找到合適的,stc官方文檔上有個電容感應開關(guān)需要占用2

想做個觸摸打開,延時關(guān)斷的小控制器

用普通的輕觸開關(guān)似乎很難看,而且開關(guān)也不方便 固定,總不好把控制板放在外面吧?

想使用觸摸的開關(guān),網(wǎng)上搜索了好久沒找到合適的,stc官方文檔上有個電容感應開關(guān)

需要占用2個io,一個產(chǎn)生pwm信號,一個用于ad判斷,另外還需要2個電阻2個二極管和1個電容。

感覺有點復雜了,嘗試了一下,最后只用了一個io口,一個電阻和一個電容搞定了。

思路是這樣的:

一個2M電阻接電源和IO口(我用了p3.3)

一個33p電容接IO口和地。

IO口接一根線到金屬片什么的用來觸摸。

p3.3置0先把電容的電放掉,然后置高阻態(tài),這時候電源會通過電阻給電容充電,

時間常數(shù)2M*33p約66μs,使用定時器統(tǒng)計io口變成高電平的時間,

不用計時器的話擔心受中斷的影響,會有誤差。

這個時間可能需要做平滑處理避免干擾。

開機的時候沒有人觸摸,記錄下這個時候充電時間做為基準。

如果有人觸摸,則充電時間加長,所以定時檢測下這個充電時間,

發(fā)現(xiàn)充電時間比基準充電時間長很多(我用了2倍基準時間來比較),就可以認為是有人觸摸了。


已經(jīng)完工投入使用,目前看可靠性、抗干擾能力都可以滿足要求。

void mw(){//主工作循環(huán)

unsigned int i;
static unsigned int cdsj=0,bzz;//充電時間,標準值
static unsigned char csh=10;//初始化計數(shù)


T2H=T2L=0;//計數(shù)器2計數(shù)值初始化為0
P3M1 |=0x8;//p3.3置開漏狀態(tài)
P3M0 |=0x8;//
P3_3=0;//p3.3輸出清0
delay(100);
P3M1 |=0x8;//p3.3置高阻狀態(tài)
P3M0 &=0xf7;//
AUXR |= 0x10; //開始計數(shù)器2運行
P3_3=1;//p3.3輸出為1,輸入狀態(tài)
IE1=0;//清外部中斷1的狀態(tài)
EX1=1;//打開外部中斷1


while(EX1);//外部中斷未執(zhí)行完畢循環(huán)等待


i=cdsj>>3;
cdsj=cdsj-i+T2L;//平滑處理
if(csh){
csh--;
if(csh==0){//初始10次計數(shù)結(jié)束,取當前值為標準值
bzz=i+i;
};
return;
};
if(i>bzz){
此條件滿足表明開關(guān)被觸摸
};
}

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉