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

模拟按键电路

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

阅读全文

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

热点内容
电路Z断 浏览:458
昆明管道维修电话 浏览:282
家电清洗家政服务中心怎么样 浏览:750
北京芝柏售后维修只富尔大厦22层 浏览:979
怎样怎么家电清洗标准 浏览:318
长沙tcl电视机售后电话 浏览:230
认识电子电路 浏览:895
中山康佳电视售后上门维修 浏览:316
上海爱彼此家居怎么样 浏览:488
三星单反维修点 浏览:948
上海电瓶车三斯维修点 浏览:647
复合型电路 浏览:947
乐华燃气热水器售后电话 浏览:333
想在东莞买个家具怎么选 浏览:105
底板防水卷材怎么计算 浏览:8
时风华庆维修刹车视频 浏览:410
外楼顶维修口防水用什么密封条 浏览:521
宜昌双虎家具 浏览:268
涧西区家电维修都在哪 浏览:291
家居市场管理 浏览:748