对于以上遥控台和负荷缸连接原理图,因为在遥控台上由负荷缸供电的低水位回传信号指示灯等可以容易地改为由遥控台端供电,而在负荷缸端只提供开关量信号,于是实际的问题便变成了实现一种对多路遥控开关和返回开关量信号进行编码。刚开始考虑到采用T型电阻网络对这些开关进行采样,用A/D,D/A转换的方法实现,但为了保证信号长距离传输的可靠性,决定用数字信号的方式对这些开关量进行编解码,随着技术的进步使这种设想成为可能,经过综合比较,我们决定选用功能强大,价格便宜的ATMEL Mega8单片机对这些开关信号进行编解码和信号传输控制。
DIP封装的ATMEL Mega8单片机只有28个管脚,除掉电源和用于单片机之间通信必要的串行端口引脚,实际可用来做信号采集和输出的管脚远远不够,然而ATMEL Mega8单片机的12 MHz的高速运行速度相对于开关动作的速度来说极其快速,通过74SL244缓冲器和74SL273锁存器共用单片机管脚,在程序中控制缓冲器使能端,控制锁存器时钟信号的方法扩展单片机I/O口。2个74SL273锁存器和1个74SL244缓冲器共用单片机PB和Pc端口低四位管脚,单片机通过PB4,PD3,PB5管脚分别控制第一个、第二个锁存器的时钟脉冲输入端和缓冲器和使能端。我们在程序中设置单片机PB和PC端口低四位管脚为输入状态,控制74SL244缓冲器的使能端为低电平,并屏蔽两个74SL273锁存器的时钟输入,从而通过74SL244缓冲器采集负荷缸工作状态开关信号;在程序中设置单片机PB和PC端口低四位管脚为输出状态,控制74SL244缓冲器的使能端为高电平,并让单片机给其中一个74SL273锁存器的加上时钟输人信号,从而通过74SL273锁存器输出一组开关状态控制信号。
因为在负荷端和遥控台的连接距离接近100 m,超过串口RS 232信号可靠传送到达的距离,我们增加了SN75LBC184 RS 232/RS 485串行通信转换器芯片,SN75LBC184输人和单片机TXD、RXD管脚相连,单片机PD2引脚控制SN75LBC184芯片的收发使能端实现收发功能的转换,用两芯的电缆连接负荷缸端和遥控台端SN75LBC184芯片的输出端口,实现了单片机串口信号的远距离传送和电路的半双工工作
之前也试着做了个无线开关遥控模块,开关数是两路,每路是250v10a,具体的代码也跟你分享一下吧:
源代码
#include<reg51h>
sbit datout=P2^0;
sbit k1=P2^1;
sbit k2=P2^2;
//sbit k1=P3^3;
//sbit k2=P3^4;
sbit led1=P2^3;
sbit led2=P2^4;
sbit bell=P2^0;
void delay(int t)
{
char i;
while(t--)
{
for(i=0;i<100;i++);
}
}
void timerinit()
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xe8; //设定定时初值 //1200
TH1 = 0xe8; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
EA=1;
}
void main()
{
int i;
timerinit();
while(1)
{
if(k1==0)
{
delay(10);
if(k1==0) //按键动作被接受
{
while(k1==0); //等待松手
bell=0;led1=~led1; //按键指示部分
delay(10);
bell=1;
for(i=0;i<5;i++) //发送按键1的编码f0发送5次
{
SBUF=0xf0;
while(TI==0);
TI=0;
}
}
}
if(k2==0)
{
delay(10);
if(k2==0)
{
while(k2==0);
bell=0;led2=~led2;
delay(10);
for(i=0;i<5;i++)//按键2的编码0f,发送5次
{
SBUF=0x0f;
while(TI==0);
TI=0;
}
}
}
}
}
接收端的代码
#include<reg51h>
sbit jk1=P2^0;
sbit jk2=P2^1;
sbit led1=P2^6;
sbit led2=P2^7;
void delay(int t)
{
char i;
while(t--)
{
for(i=0;i<100;i++);
}
}
void timerinit()
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xe8; //设定定时初值 //1200
TH1 = 0xe8; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
ES=1;
EA=1;
}
void main()
{
timerinit();
while(1)
{
}
}
/串口接收/
void uart() interrupt 4
{
static unsigned char dat;
if(RI) //接收中断
{
RI=0; //读取接受到的数据
dat=SBUF;
} //如果是按键1的编码
if(dat==0xf0)
{
REN=0; //继电器开关受控做出反应 times=0;
delay(200); //延时确保受控电器不致于频繁开关
jk1=~jk1;
led1=~led1; //开关指示灯状态 ,灯灭断开,灯亮接通
dat=0;
REN=1;
}
if(dat==0x0f)
{
REN=0;
delay(200);
jk2=~jk2;
led2=~led2;
dat=0;
}
}
最后说句,我可把大学时珍藏的干货分享给你了,一定要采纳呀!
没有遥控器怎么开Aux空调?1打开通用遥控器应用程序,然后点按“添加遥控器”。2在红外遥控器页面上单击空调。3点击空调品牌中的奥克斯。4根据系统提示调试空调。5调试完成后,单击控制页面上的打开图标。本文以OxKFR-35GW&&小米11为例,适用于MIUI125系统。是的,空调没有遥控器。有三种方法可以打开空调:1在手机上下载一个空调遥控器的软件。2我买了一个万能空调遥控器,简单就能匹配成功。3夏天想用的时候,只需要打开空调的外壳,然后就可以看到空调侧面有一个小孔,就是重启键。你只需要用笔芯之类的东西戳一下,它就会自动开到25度。
短信遥控开关
移动管家YD238-6
只要插入手机卡,接入电源(220V或12V),无论何时何地通过手机短信都可以访问本控制器,从而 *** 作家用电器或工业马达等电器设备,达到用手机短信远程控制电器设备的目的。(无需任何电话线)
此类型GSM远程控制不受距离的限制,对于一些没有固定电话的地方,显得尤为重要。主要应用列举如下:
1、控制多个水泵:例如要 *** 作远方的水泵:只要用手机发短信控制与GSM远程控制器相连接的水泵,捷便可打开水泵。之后随时都可以查询水泵是否通电了,随时都可以再次发短信关闭水泵。最大电流可以达到30A,完全满足水泵的要求。控制多个水泵,可以接多个继电器即可。
2、控制家用电器:假如要 *** 作家中的电饭煲:下班前给家中控制装置发短信,就可以远程打开插电饭煲的插座,之后可随时查询或关闭。
3、控制门窗:与电磁铁式门栓相给合,可以GSM远程控制,也可以钥匙打开,是智能门的一个发展方向。 与控制窗的电机相连,可以远程控制窗的开闭,特别是在下雨的时候更为方便。
4、控制各类阀门:与电磁阀相结合,可GSM远程控制水、气、油等各类阀门,包括酸、碱等化工产品的阀门。
5、控制工控机、服务器远程开机复位:可作为连续运行网络设备(如:工控机、服务器等)的远程开机、复位控制。
6、控制无人值守的基站、服务器:控制某些需要无人职守的基站,节省人力物力,控制里面的设备如:服务器\空调\风机等的工作时间\工作状态等。
以上就是关于想利用这个电路图做一个遥控开关,但是不会那三个单片机(ATmega 16L,PT2262/PT2272)的编码,求帮忙编程全部的内容,包括:想利用这个电路图做一个遥控开关,但是不会那三个单片机(ATmega 16L,PT2262/PT2272)的编码,求帮忙编程、空调没有遥控器怎么开、智能遥控开关是如何实现开和关的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)