導航:首頁 > 電器電路 > 模擬按鍵電路

模擬按鍵電路

發布時間:2023-11-08 07:00:50

Ⅰ 按鍵電路分析

你這應該是視聽家電上的電路,上面是紅外遙控信號接收部分;左側是遙控接收部分的電回源電路,它答取自待機電源,經過電阻分壓濾波後給遙控接收模塊用;右側是鍵盤。
左側對右側沒有直接的影響,因為他們在電路結構上是分離的,只不過電路圖畫著方便就畫在了一起。
遙控探頭輸入信號REMOCON送給遙控解碼電路,解碼後送給機器控制IC;鍵盤輸入的KEY1和KEY2也送給控制IC。
如果遙控電源部分(左面)出問題,一般不是短路就是斷路,斷路不會有大影響,就是遙控不好用了(如果遙控電源不向其他部分電路供電的話);如果短路,47歐電阻沒有燒掉,就會拉低整機的待機電源,這樣機器就無法工作了,遙控和按鍵都會不起作用。
選什麼書看,如果你基本零基礎就多找找此類家電維修之類的書看,選裡面有一些電路基本分析和實例分析的,從事這類工作基本夠用。如果想補全基礎,那就要看很多基礎書了,不做設計也沒什麼必要。

Ⅱ 電磁爐按鍵電路板換成觸摸的電路板怎樣接線

電磁爐按鍵電路板換成觸摸的,需要將觸摸板的輸出,對應按鍵板的輸入。通過高低電平變化,模擬按鍵按下和松開。

Ⅲ 我想問一下,按鍵電路的工作原理是什麼呢

點動(對電機而言就是按下開關,電機就轉,放鬆開關,電機就停)
點動(對電燈而言就是按下開關,電燈就亮,放鬆開關,電燈就滅)

自鎖(對電機而言就是按下開關,電機就轉,放鬆開關,電機不停)
自鎖(對電燈而言就是按下開關,電燈就兩,放鬆開關,電燈不滅)

Ⅳ proteus模擬電路圖,51單片機按鍵計數

按照你題目,用了2個2位顯示,實際有4位合一起的。

k3:切換計數模式/預置模式。

計數模式:LED顯示計時數字,從0開始計時,直到預置最大值。

預置模式:LED顯示當前預置最大值,按k1,k2可對預置值+-操作,長按k1,k2大約2秒,會進入自動加減預置值。直到再次點擊k1,k2,k3任意一鍵停止自動。

k4:在計數模式下使用,每按下一次顯示的數字加一(會在正常計時同時額外+1)。

當計數達到預置最大值,會停止計數,LEN閃爍(實際就是交替顯示間隔邊長),蜂鳴器響。

按鍵時長、LED動態顯示間隔、閃爍間隔、計數速度,均可直接修改常量,需要自己改,我備注寫的很詳細。

電路基本按照你上圖,略有修改。

#include <reg52.h>

#define uint unsigned int

#define uchar unsigned char

#define an P0

#define on 0

#define off 1

#define SSSPEED 35 //LED交替閃爍間隔時間

#define JSPEED 5000//計數模式,速度默認數值(5000*200us=1S) 值越小計數越快

#define PREESTIME 500//按鈕長按時間判定,預設500(大約2秒),需要自改,值越大,長按時間越長

sbit fm=P3^3;

sbit wei1=P3^4;

sbit wei2=P3^5;

sbit wei3=P3^6;

sbit wei4=P3^7;

sbit k1=P1^4;

sbit k2=P1^5;

sbit k3=P1^6;

sbit k4=P1^7;

uint jsSpd=JSPEED;//計時速度,默認1s一次(5000*200us)

uint ssSpd=SSSPEED;//LED交替閃爍速度

//共陽極

int delay(uint xms);

void init();

void jspause();//計數器開啟/停止

void setnumYS();//設置預設數值

void numJsChange();//計數模式數字改變

void showLED();

int pressWait(uint btn);

uint g=0;

uint s=0;

uint b=0;

uint q=0;

uint count=0;

uint ispause=1;

uint numYS=0;//預設數值

uint numJS=0;//實際計時的數字

uint isMaxJs=0;//標識:計時達最大。 達最大1,否0

uint isk3press=0;//標識:k3按鈕是否被點擊。 點擊1,否0

uint ispress1=0;//標識:k1被長按

uint ispress2=0;//標識:k2被長按

uint isbtn4=0;//標識:k4被按下

uint btnName=0;//按鈕長按計時

void main()

{

init();

while(1)

{

if(ispause==1 && ispress1==1 && numYS<9999) //預置模式下,k1已長按,自動增

{

numYS++;

setnumYS();

}

if(ispause==1 && ispress2==1 && numYS>0) //預置模式下,k2已長按,自動減

{

numYS--;

setnumYS();

}

if(isMaxJs==0 && numJS>=numYS && ispause==0) //計時模式下達最大值

{

fm=on;

ssSpd=1000;//增加LED交替間隔,實現數字閃爍

isMaxJs=1;

EA=0;

setnumYS();

numJS=0;

}

if(k1==0 ||k2==0|| k3==0) //k1k2k3任意一個按鈕被按下,停止預置數自動增長

{

ispress1=0;

ispress2=0;

}

if(k1==0 && ispause==1)//預置模式下+

{

delay(10);

if(k1==0)

{

btnName=1;

if(pressWait(btnName))//判斷連按

{

while(k1==0);

ispress1=1;

}

else if(numYS<9999)

{

numYS++;

setnumYS();

}

}

}

if(k2==0 && ispause==1)//預置模式下-

{

delay(10);

if(k2==0)

{

btnName=2;

if(pressWait(btnName))//判斷連按

{

while(k2==0);

ispress2=1;

}

else if(numYS>0)

{

numYS--;

setnumYS();

}

}

}

if(k3==0)

{

delay(10);

if(k3==0)

{

while(k3==0);

fm=off;

jspause();

}

}

if(k4==0 && ispause==0)//計數模式下按下k4,k4的防抖寫在中斷中

{

delay(10);

if(k4==0)

{

while(k4==0);

isbtn4=1;

}

}

showLED();

}

}

void showLED()

{

uchar nums[10]={0xc0,0xf9,0xa4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x98};

if(g>=0)

{

an=nums[g];

wei4=on;

delay(ssSpd);

wei4=off;

}

if(s>0 || (s==0 && b>0))

{

an=nums[s];

wei3=on;

delay(ssSpd);

wei3=off;

}

if(b>0 || (b==0 && q>0))

{

an=nums[b];

wei2=on;

delay(ssSpd);

wei2=off;

}

if(q>0)

{

an=nums[q];

wei1=on;

delay(ssSpd);

wei1=off;

}

}

void setnumYS()//設置預設數值

{

q=numYS/1000;

b=(numYS%1000)/100;

s=(numYS%100)/10;

g=numYS%10;

}

void jspause()

{

if(ispause==0 || isMaxJs==1)//關閉計時模式 / 啟動預置模式

{

EA=0;

isMaxJs=0;

ispause=1;

ssSpd=SSSPEED;

ispress1=0;

ispress2=0;

setnumYS();

}

else if(ispause==1) //啟動計時模式 / 關閉預置模式

{

ispause=0;

q=b=s=g=0;

numJS=0;

ssSpd=SSSPEED;

EA=1;

}

}

void init()

{

TMOD=0x02; //T0 工作模式2 自動裝填8位 200us

TH0=0x38;

TL0=0x38;

EA=0;

ET0=1;

TR0=1;

wei1=off;

wei2=off;

wei3=off;

wei4=off;

}

void numJsChange()//計數模式數字改變

{

if(g==9)

{

g=0;

if(s==9)

{

s=0;

if(b==9)

{

b=0;

if(q==9)

{

q=0;

}

else

q++;

}

else

b++;

}

else

s++;

}

else

g++;

}

void ct() interrupt 1 //一次中斷200us

{

if(count<jsSpd)

count++;

else

{

count=0;

numJsChange();

numJS++;

}

if(isbtn4==1)

{

isbtn4=0;

numJsChange();

numJS++;

}

}

int pressWait(uint btn)

{

uint i,j;

for(i=PREESTIME;i>0;i--)

for(j=110;j>0;j--)

{

if((k1==1 && btn==1)||(k2==1 && btn==2))

return 0;

}

return 1;

}

int delay(uint xms)

{

uint i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--)

{

if(k1==0 || k2==0 ||k3==0)

return 1;

}

return 0;

}

Ⅳ 為51單片機設計一個上拉輸入和下拉輸入的按鍵電路並分析其工作原理

按鍵一般是上拉,單片機的IO通過電阻上拉高電平,內按鍵正常高電平當按鍵按下短路,容把IO變成低電平,單片機檢測到低電平表示有按鍵按下,按鍵下拉一般是把單片機IO通電阻接到GND,按鍵正常是低電平,當按鍵按下把IO拉高,單片機檢測到高電平表示有按鍵按下。

閱讀全文

與模擬按鍵電路相關的資料

熱點內容
為什麼防水散粉會浮在臉上 瀏覽:856
傢具飾面板一般多少絲 瀏覽:881
筆記本怎麼查維修 瀏覽:740
北京富士數碼相機維修中心 瀏覽:522
丙綸布防水布配什麼標號水泥好 瀏覽:675
安家電視劇42集的插曲是什麼歌 瀏覽:277
大中電器西門家電商城怎麼樣 瀏覽:240
河南馬扎克電主軸維修哪個品牌好 瀏覽:452
上海金明頓熱水器維修電話 瀏覽:845
大家都用什麼辦法防水 瀏覽:731
益邦傢具怎麼樣 瀏覽:560
蘇州地面電防水什麼價格 瀏覽:33
番禺橋南家電維修電話 瀏覽:827
電路中ce 瀏覽:987
家電行業利潤是多少 瀏覽:767
成都長城寬頻維修電話多少 瀏覽:819
怎麼牆面翻新才會不上潮 瀏覽:384
小腳吖電話售後電話 瀏覽:343
東方紅20拖拉機變速箱維修視頻大全 瀏覽:794
發動機維修一般都維修哪些東西 瀏覽:882