历史上的今天
返回首页

历史上的今天

今天是: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;}                                  //返回

                }

                   

推荐阅读

史海拾趣

Component General Inc公司的发展小趣事

Component General Inc公司深知品质是企业的生命线。因此,公司建立了严格的质量管理体系,从原材料的采购到产品的生产、检测、包装等每一个环节都进行严格把控。这种对品质的执着追求,使得公司的产品赢得了客户的广泛信任和好评。

帝特(DTECH)公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,帝特始终坚持创新驱动的发展战略。公司不断投入研发资源,加强技术创新和产品升级,力求在保持传统业务优势的同时,开拓新的增长点。此外,帝特还积极布局电子专用材料项目,加强半导体芯片封装浆料研发推广,进一步优化产业结构,提升公司的综合竞争力。

以上五个故事概述了帝特(DTECH)公司在电子行业发展的主要历程和关键节点,展现了公司从创立到成长为行业领军企业的艰辛与辉煌。

ARCOLECTRICSWITCHES公司的发展小趣事

在技术进步的基础上,ARCOLECTRIC SWITCHES公司积极拓展国内外市场。公司通过与各大电子厂商建立合作关系,将产品广泛应用于家电、通讯、汽车等多个领域。同时,公司注重品牌建设,通过广告宣传和市场推广活动提升品牌知名度和美誉度。这些努力使得ARCOLECTRIC SWITCHES公司的市场份额逐年增长,品牌影响力不断扩大。

光磊(GL)公司的发展小趣事

随着电子行业的不断发展,ARCOLECTRIC SWITCHES公司意识到单打独斗已经无法满足市场需求。因此,公司积极寻求与上下游企业的合作,共同打造完善的产业链。通过与供应商建立长期稳定的合作关系,确保原材料的稳定供应;与下游企业开展深度合作,共同研发新产品、开拓新市场。这种合作共赢的模式使得ARCOLECTRIC SWITCHES公司在行业中更具竞争力。

CUI Devices公司的发展小趣事

CUI Devices与富昌电子之间的合作关系可以追溯到CUI Inc的时代。多年来,双方建立了深厚的合作基础。在CUI Devices从CUI Inc剥离后,富昌电子继续支持其发展,成为其重要的合作伙伴之一。双方共同致力于推动电子元件行业的发展,为客户提供更优质的产品和服务。这种稳固的合作关系为CUI Devices在市场竞争中提供了有力的支持。

这五个故事展示了CUI Devices在电子行业中的发展历程和取得的成就。从起源与转型到应对全球健康危机的积极举措,再到在压电警报器市场的卓越表现以及电机品牌的崛起与拓展,每一个故事都见证了公司的成长和进步。同时,与富昌电子的稳固合作也为公司的未来发展奠定了坚实的基础。

Glenair公司的发展小趣事
如果电路的供电电源不稳定或电压不足,也可能影响电路的正常工作。

问答坊 | AI 解惑

用SPMC75F2313A实现LIN结点

1 引言    LIN 是低成本网络中的汽车通讯协议标准,LIN(Local Interconnect Network)是低成本的汽车网络,它是现有多种汽车网络在功能上的补充由于能够提高质量、降低成本,LIN 将是在汽车中使用汽 ...…

查看全部问答>

做个FDD接口的U盘如何?

昨日与友人闲谈,得知其急需一FDD接口的U盘.用于工控.遂发此贴,求助于诸位.提及FDD(即软驱),众皆笑曰:\"淘汰久矣!\"然,君不见其依然服役于众多工控场合?随之FPGA/RAM等先进技术之普及.待处理数据之大,昔日之1.44何以满足?市有产品曰:仿真软驱,价格奇 ...…

查看全部问答>

老妪变少女,AMD暴笑视频

       偶然在网上看到了AMD的一个“我为三核狂”活动,整个活动的主旨都是围绕“三核”的概念来的,网友的热情和创意也是让人叹为观止,大家下面这些有趣的作品吧。简直是神了!大家也来欣赏一下哦      &n ...…

查看全部问答>

寻找西安写PDA软件的开发人员或公司。

要求:1、熟悉WINCE平台       2、有相关产品介绍       3、必须是西安的 联系QQ:112654 信箱:xclion@126.com 价格面谈。…

查看全部问答>

STM32系列芯片名称定义

每种STM32的产品都由16个字母或数字构成的编号标示,用户向ST订货时必须使用这个编号指定需要的产品。这16个字符分为8个部分,下面通过一个例子说明它们的意义:      STM32 F 103 C 6 T 7 xxx        1   2& ...…

查看全部问答>

LM3S9B96开发板里面怎么没有spiflash_rw例程?

    lm3s9b96开发板里面怎么没有spiflash_rw例程?   …

查看全部问答>

P1口与P2口的区别~~

我用P1口接4*4矩阵键盘,现在为了省出P1.0口作为AD通道,采用P2口接4*4矩阵键盘。 然后配置P2.6和P2.7作为GPIO口,然后程序的其他地方都是把P1改为P2,为什么不能用呢?????? 大家有过这样的经历吗?…

查看全部问答>

EE Logic 空白PCB申请条件

经过一段时间的调试,EELogic的第一版硬件基本测试完成。 电源工作正常,68013能正常下载固件,FPGA能正常下载及运行。 基本硬件测试通过,起码保证了大家申请到板子回去焊接后能工作,避免浪费大家的时间及经费。 软件开发主要有三个部分: 1 ...…

查看全部问答>

求助,FGPA不识别

通过usb blaster ii接口烧写过一次jic文件,后来再烧写时点击“Auto Detect”就再也检测不到型号了,提示信息“unable to scan device chain.Hardware is not connected.” 求助给位怎么解决。 …

查看全部问答>

红外光通信装置

13年全国大学生电子设计的题目,请问谁可以共享一下资料,能清晰的看清的那种哦,非常感谢。 …

查看全部问答>