导航:首页 > 电器电路 > 模拟按键电路

模拟按键电路

发布时间: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拉高,单片机检测到高电平表示有按键按下。

阅读全文

与模拟按键电路相关的资料

热点内容
啄木鸟防水补漏大概多少钱 浏览:227
天冷了怎么做防水 浏览:797
维修费小规模纳税人税率 浏览:542
芭比家具和衣服裤子怎么做 浏览:682
能率热水器冻坏漏水怎怎么维修 浏览:857
爱仕达广州压力锅售后维修点 浏览:484
维修楼房顶业主维修费怎样分配 浏览:388
50恒压阀漏气维修视频 浏览:392
如图所示电路中电动势 浏览:163
美的家电维修大良店 浏览:308
小户型家居 浏览:834
南龙家居用品有限公司 浏览:701
昌盛维修服务中心怎么样 浏览:394
青岛三星售后维修电话 浏览:235
阳江市区有什么店铺上门修家电的 浏览:717
荥阳市五菱汽车维修点 浏览:503
宗申三轮维修点 浏览:519
儿童家具软文 浏览:479
上海飞机维修有哪些公司 浏览:892
贵港哪里有缝纫机维修点 浏览:196