历史上的今天
今天是:2024年12月10日(星期二)
2019年12月10日 | 单片机红外线遥控开关实验 Proteus仿真加源程序
2019-12-10 来源:51hei
单片机用红外线来遥控一个开关实验的仿真原理图

单片机源程序:
//----------------------------------------------------------------------------------------------------------------------------------
//程序名: HW6-3.c
//程序功能:红外线遥控开关程序
// --------------------------------------------------------------------------------------------------------------------------------
#include sbit IRIN=P3^2; //定义红外IR信号输入位 sbit SPK=P0^0; //定义蜂鸣器接口 sbit RELAY=P2^7; //定义继电器接口 unsigned char IRDATA[7]; //定义数组,存储红外接收到的数据 void delay(unsigned char x); void fs_d ( ); //-------------------------------------- 主函数 -------------------------------------- void main() { EA=1; // 允许总中断 EX0=1; // 允许外部中断INT0中断 IT0=1; // 外部中断INT0采用脉冲触发方式 SPK=1; // 设置SPK初始值 IRIN=1; // IR 输入位设置为高电平 while(1); // 无限循环 } //--------------------------------------- 延时函数 ------------------------------------ void delay(unsigned char x) //延时约x*0.1ms { unsigned char i; while(x--) {for(i=0;i<10;i++){}} } //------------------------------------- 发声函数 ------------------------------------- void fs_d ( ) { unsigned char i; for(i=0;i<100;i++) { delay(4); SPK=~SPK; } SPK=1; } //------------------------------------- 中断解码函数 ----------------------------------- void IR_IN() interrupt 0 using 0 //外部中断INT0函数 { unsigned char j,k,n=0; //先定义变量,且n=0 EX0=0; //暂时先关中断 delay(20); //延时0.10ms*20=2ms if(IRIN==1) //如果IRIN出现高电平,是干扰信号 { EX0=1; return; //返回 } while(!IRIN){delay(1);} //避开9ms前导低电平信 for(j=0;j<4;j++) //一共有4组数据 { for(k=0;k<8;k++) //每组数据有8位 { while(IRIN){delay(1);} // 避开4.5ms高电平 while(!IRIN){delay(1);} // 开始接收数据 while(IRIN) { delay(1); //延时0.1ms n++; //每过0.1ms时n就加1 if(n>=30) //如果超过30,放弃 { EX0=1; return;} //返回 }
上一篇:51单片机直流电机调速源程序
下一篇:51单片机电子琴制作
史海拾趣
|
1 引言 LIN 是低成本网络中的汽车通讯协议标准,LIN(Local Interconnect Network)是低成本的汽车网络,它是现有多种汽车网络在功能上的补充由于能够提高质量、降低成本,LIN 将是在汽车中使用汽 ...… 查看全部问答> |
|
昨日与友人闲谈,得知其急需一FDD接口的U盘.用于工控.遂发此贴,求助于诸位.提及FDD(即软驱),众皆笑曰:\"淘汰久矣!\"然,君不见其依然服役于众多工控场合?随之FPGA/RAM等先进技术之普及.待处理数据之大,昔日之1.44何以满足?市有产品曰:仿真软驱,价格奇 ...… 查看全部问答> |
|
偶然在网上看到了AMD的一个“我为三核狂”活动,整个活动的主旨都是围绕“三核”的概念来的,网友的热情和创意也是让人叹为观止,大家下面这些有趣的作品吧。简直是神了!大家也来欣赏一下哦 &n ...… 查看全部问答> |
|
每种STM32的产品都由16个字母或数字构成的编号标示,用户向ST订货时必须使用这个编号指定需要的产品。这16个字符分为8个部分,下面通过一个例子说明它们的意义: STM32 F 103 C 6 T 7 xxx 1 2& ...… 查看全部问答> |
|
我用P1口接4*4矩阵键盘,现在为了省出P1.0口作为AD通道,采用P2口接4*4矩阵键盘。 然后配置P2.6和P2.7作为GPIO口,然后程序的其他地方都是把P1改为P2,为什么不能用呢?????? 大家有过这样的经历吗?… 查看全部问答> |
|
经过一段时间的调试,EELogic的第一版硬件基本测试完成。 电源工作正常,68013能正常下载固件,FPGA能正常下载及运行。 基本硬件测试通过,起码保证了大家申请到板子回去焊接后能工作,避免浪费大家的时间及经费。 软件开发主要有三个部分: 1 ...… 查看全部问答> |
|
通过usb blaster ii接口烧写过一次jic文件,后来再烧写时点击“Auto Detect”就再也检测不到型号了,提示信息“unable to scan device chain.Hardware is not connected.” 求助给位怎么解决。 … 查看全部问答> |




