STC11F02实现红外线遥控开关
来源:互联网 发布:石家庄淘宝托管 编辑:程序博客网 时间:2024/04/23 22:39
临睡觉时下地闭灯是最讨厌做的一件事。本人为了解决闭灯问题,所以自制了一个红外线遥控开关。所需原料:废旧5V手机充电器,面包板(不要太大),STC11F02(手头只有这个,浪费了不少IO,推荐8脚STC15F100之类的U),5v继电器2个(推荐欧姆龙的,有点小贵),三极管8550PNP 2个,1838B 38khz红外接收头1个,20K电阻一个,有条件可以来个1117 5V。12M晶振,30PF电容。IO口的限流电阻推荐加个。锡桥过线,怕费焊锡的可以导线连^_^!电路过于简单,直接焊接。PNP管子接继电器负极,在负极做开关。
程序如下:
#include "stc11f.h" //自己写的,可以reg51.h
sbit JD2 = P1^5; //继电器2口,电灯2
sbit JD1 = P1^0; //继电器1口,电灯1
sbit KG = P1^7; //这链了个三极管,做了个额外的开关,给床头的USB小风扇供电
sbit LED = P3^6; //工作指示灯,有一个设备打开就亮
bit IR_SEMAPHORE=0,IR_READY=0,LED_CON1=0,LED_CON2=0,LED_CON3=0;
unsigned int temp=0;
unsigned char swap=0,IR_DATA[4]={0};
void main(void)
{
JD1=1;
JD2=1;
KG=1;
LED=0;
IT0=1;//外部中断0为下降沿触发方式
EX0=1;//外部中断0允许
TMOD=01;//定时器0,16位定时计数,从内部系统时钟输入。
ET0=0;//定时器0不允许中断
TH0=0;
TL0=0;
TR0=1;//定时器0运行
EA=1;
while(1)
{
if(IR_READY==1)
{
if(IR_DATA[2]==~IR_DATA[3]&&IR_DATA[2]==0x45){JD2=~JD2;LED_CON2=~LED_CON2;}
if(IR_DATA[2]==~IR_DATA[3]&&IR_DATA[2]==0x47){JD1=~JD1;LED_CON1=~LED_CON1;}
if(IR_DATA[2]==~IR_DATA[3]&&IR_DATA[2]==0x40){KG=~KG;LED_CON3=~LED_CON3;}
if(LED_CON1==1||LED_CON2==1||LED_CON3==1)LED=1;else LED=0;
IR_READY=0;
}
}
}
void Interrupt0(void) interrupt 0 using 0
{
temp=TH0*256+TL0;
TH0=0;
TL0=0;
if(temp>8000&&temp<16000){IR_SEMAPHORE=1;swap=0;return;}
if(IR_SEMAPHORE==1)
{
if(temp>700&&temp<1450){IR_DATA[swap/8]=IR_DATA[swap/8]>>1;swap++;} //数据0
if(temp>1450&&temp<3000){IR_DATA[swap/8]=IR_DATA[swap/8]>>1|0x80;swap++;} //数据1
if(swap==32){IR_SEMAPHORE=0;swap=0;IR_READY=1;} //4字节
}
}
注意:12Mhz下,其它的频率要另计算数值。
最后把灯座卸开,连接好。也可以用胶带固定在外面(就是有点丑)!遥控器可以用38k标准的成品,X宝卖1-2块吧。
- STC11F02实现红外线遥控开关
- 红外线遥控原理
- 红外线遥控原理
- Android红外线遥控
- 非常全面的红外线遥控理论
- 无线遥控开关模块
- 物联网智能硬件解析之万能空调遥控器实现 Ardunio_通过红外线发射灯遥控空调
- 红外线
- 设计遥控车门开关(RKE)系统
- 【红外线通信的支持该如何实现】
- 红外线遥控旋转LED钟_QQ电子网--电子行业资讯|电子基础知识|电子视频教程|电子技术教... (转载)
- 红外线遥控旋转LED钟_QQ电子网--电子行业资讯|电子基础知识|电子视频教程|电子技术教... (转载)
- Android快捷开关实现 Wifi开关、蓝牙开关、GPS开关、同步开关、亮度设置开关
- VB.NET利用OBEX协议实现红外线文件传输
- VB.NET利用OBEX协议实现红外线文件传输
- 通过红外线传感器实现对商城人数的统计
- APN 开关实现原理
- Android滑动实现开关
- CentOS中安装LAMP完整流程
- unity3d 异步加载场景和游戏对象
- 关于Hibernate中many-to-one和one-to-many的一些理解
- php采集文章中图片并替换为本地地址的代码分享
- sublime text2常用插件安装
- STC11F02实现红外线遥控开关
- 使用 python 开发 Web Service
- 理解并行和并发
- 黑马程序员-JAVA 高新技术(代理)
- 2、PL/SQL客户端配置。
- 如何提升流量的转化率
- 编辑选择对象Editor
- equals和hashCode的区别
- 验证码相关新解