单片机之间通信(类红外发送与接收)

发布者:星尘之泪最新更新时间:2019-11-14 来源: 51hei关键字:单片机  通信  红外发送与接收 手机看文章 扫描二维码
随时随地手机看文章

void call_user_sent()   

      static bit data_flag=0;
      static unsigned char a=0,b=0,c=0;
      TRISB5=1;
      TRISB2=0;
      if(!data_flag)        //起始头
      {
             c++;
             if(c==1)  RB2=0;
             if(c==41) RB2=1;
             if(c>=51)
             {
                  c=0;
                 data_flag=1;  
            }
     }
     if(data_flag)     //数据开始
     {
            c++;
            if(c==1) RB2=0;
            if(c==4)
            {
                  if(a==0)
                  {
                       if((send_user[a]&0x80)!=0)  RB2=1;
                  }   
                  else if(a!=0)
                  {
                           if((send_user[a]&0x08)!=0)  RB2=1;
                  }      
           }
           if(c==7)
           {
                 if(a==0)
                {
                       if((send_user[a]&0x80)==0)  RB2=1;
                }    
                else if(a!=0)
                {
                         if((send_user[a]&0x08)==0)  RB2=1;
                }      
          } 
         if(c>=10)
         {
                  c=0;
                  b++;
                  send_user[a]<<=1;
                  if((a==0)&&(b>=8))
                  {
                         b=0;
                          a++;
                 }
                if((a!=0)&&(b>=4))
                {
                          b=0;
                          a++;
                          if(a>=CODELEN)
                          {
                                       a=0;
                                      data_flag=0;
                                      sent_user_flag=0;
                           }            
                 }  
     }        
}

}

void call_user_rece()   
{        
            static bit hl;
            static bit hl_flag;
            static unsigned char low=0,high=0,count=0;
            static unsigned char temp=0,rece_flag=0;
            static unsigned char p,q;
            TRISB5=1;
            TRISB2=1;
            hl=RB5;
            if(hl)
            {
                   if(!hl_flag)
                   {
                           hl_flag=1;
                           low=count;
                           count=0;      
                    }   
                   else count++;    
            }
            else 
            {
                     if(hl_flag)   
                     {
                            hl_flag=0;
                            high=count;
                            count=0;
                            if(rece_flag)
                            {
                                        temp<<=1;
                                        if((4<9))
                                        {
                                                        temp=temp|0x00;      
                                        }
                                        else if((0<4))
                                        {
                                                       temp=temp|0x01;   
                                        } 
                                        q++;
                                       if((p==0)&&(q>=8))
                                       {
                                                     q=0;
                                                     rece_user[p]=temp;
                                                     p++;
                                       }
                                       if((p!=0)&&(q>=4))  
                                       {
                                                 q=0;
                                                 rece_user[p]=temp&0x0f;
                                                 p++;
                                                if(p>=CODELEN)
                                                {
                                                            p=0;
                                                            rece_flag=0;
                                                            if((0xee==rece_user[0])||(0xfa==rece_user[0]))
                                                            {
                                                                            Alarm();        //报警
                                                             }
                                                            rece_user_proc=1;   //执行接收处理函数                                       
                                                 }      
                                      }            
                           }
                          else 
                           {
                                     if(high>30)
                                      {
                                              p=0;
                                              q=0;
                                              temp=0;
                                              rece_flag=1;  
                                      }    
                           } 
                     } 
                    else count++;        
          }                                  

}

[1] [1]
关键字:单片机  通信  红外发送与接收 引用地址:单片机之间通信(类红外发送与接收)

上一篇:喜欢单片机的同学快来看啊,过来人的经验告白
下一篇:按键检测非阻塞代码(2种模式)

推荐阅读最新更新时间:2024-11-18 10:04

51单片机封装库HML_FwLib_STC89/STC11
HML_FwLib_STC89/11 项目地址 https://github.com/MCU-ZHISHAN-IoT/HML_FwLib_STC89 https://github.com/MCU-ZHISHAN-IoT/HML_FwLib_STC11 这些项目主要是封装了8051和STC89, STC11的寄存器配置信息, 提供接口方法给上层调用. 因为传统的代码都是直接用八进制值给寄存器赋值进行操作, 不便于记忆, 用这个封装库就可以使用类似于STM的高级语言方式进行开发, 解决了开发过程极度依赖手册的问题. 如果使用STC12C5A60S2系列, 可以用STC11封装库. 目录结构 HML_FwLib_STC89 ├─
[单片机]
单片机实现微波成像系统的扫描控制与数据
引言 在无源微波遥感中,微波辐射计是一种获取场景微波特征的重要手段。微波辐射计通常是一部超外差接收机,通过接收被测场景在一定频带内的电磁辐射,转换为输出的低频信号,来表征被测场景的地物信息。利用微波辐射计来探测、接收被测目标、背景在微波波段的电磁辐射,并把接收到的辐射信号按比例用伪彩色图像直观地显现出来的系统称为微波辐射成像系统。 微波辐射成像系统要求在恶劣的环境和天气下长期稳定地进行天线扫描成像,所以要求系统设备用于天线扫描控制及数据采集的电路尽量简单、稳定。基于以上的要求,采用了TI公司所生产的MSP430F149型超低功耗FLASH单片机作为这套系统的从机部分,该单片机有60KB的FLASH存储器和 2KB的RAM存储器
[单片机]
用<font color='red'>单片机</font>实现微波成像系统的扫描控制与数据
沁恒RISC-V芯片三线齐发,三款RISC-V架构微控制器齐亮相
2020上半年,沁恒微电子基于USB、以太网和蓝牙等专业接口技术三线齐发,推出三款RISC-V架构微控制器,分别为32位通用系列MCU CH32V103、低功耗蓝牙系列MCU CH573、USB3.0等超高速接口系列MCU CH569,进一步拓展了RISC-V在低功耗、无线通讯、高速率传输等多种嵌入式环境下的应用。 CH32V103,与CH32F103主要功能兼容、引脚完全匹配的32位通用型MCU。配合免费的MounRiver Studio集成编译环境(IDE)可实现两者工程代码的一键平移,无需二次开发。 CH573,低功耗蓝牙型MCU,结合精简指令集RISC-V的特点和低功耗电源管理及BLE无线技术,实现0.3uA超低睡
[嵌入式]
沁恒RISC-V芯片三线齐发,三款RISC-V架构<font color='red'>微控制器</font>齐亮相
22.1184晶振的单片机
首先说说晶振与51单片机的机器周期得关系:晶振的倒数是一个时钟周期单位为秒,一个机器周期等于12乘时钟周期。 再说说指令周期与时钟周期得关系:对于8031等早期的51来说,指令周期和机器周期是一样的等于12乘时钟周期,但后来出现了很多改进型的51系列单片机如80320等,指令周期等于4个时钟周期,也就是说同样的晶振速度是原来的3倍。但无论如何变,T0、T1等定时器的计时任然按机器周期来计算的,也就是说12乘时钟周期。 定时器是按溢出产生中断的,所以要用溢出值65536减你所希望的值得到定时器的初值。 那么怎么计算赋值所决定的时间呢: 首先计算出机器周期:12*(1/22.1184/1000000)秒(应该是22.1184兆吧), 因
[单片机]
AVR单片机新手避免锁死的方法
新手尽量不要设定熔丝,但是下载程序又必须设定一些,因此下面这些显得十分必要: 1、针对新买的AVR,它的内部没有程序,在电路板第一次通电写程序前设置与实际工作相符的熔丝位。特别是没有外部晶振时设置成外部时钟那肯定必死无疑。 2、如果AVR已有程序,且之前没有用外部晶振电路,中途想加外部晶振怎么办,焊接好外部晶振后,不要急着修改熔丝位,否则后果你懂得。先在内部RC工作模式下清除FLASH程序,然后再将熔丝位修改成外部晶振时钟。 3、如果熔丝锁死已经发生,没办法,要么用高压编程,要么自己买个大于4M的有源晶振(4个脚)直接给AVR提供时钟解锁。
[单片机]
基于AVR单片机和组态王的陶瓷检测系统设计
摘要:针对国内的陶瓷性能检测仪自动化程度不高、检测精度低、检测范围比较窄,可视化差等情况,设计开发了一种基于AVR ATmega128单片机和北京亚控公司的组态软件的陶瓷检测实时控制系统。该系统运用虚拟仪器组态王作为上位机,辅以ATmega128单片机为核心的变参数的模糊神经网络PID控制器,对陶瓷性能进行检测。经现场使用表明,该系统检测精度高、范围广、可视化程度高,使用方便。 0 引言 在城市的建设进程中,越来越注重绿色环保理念,然而使用实心砖会造成资源的巨大浪费,因此空心砖的使用量急剧增长。生产空心砖需要大量的生态陶瓷材料,但相应的陶瓷材料的性能检测工具还很不完善。研制高性能生态陶瓷性能检测仪具有重要的现实意义。本文以陶
[单片机]
基于AVR<font color='red'>单片机</font>和组态王的陶瓷检测系统设计
基于80c196单片机的多生命参数监护仪用呼吸检测电路设计
随着传感技术和电子技术的发展,病人监护仪正广泛应用于临床监护中。传统的监护仪由于监护参数单一,功能简单,体积较大而仅局限于手术过程和ICU病房的监护,限制了其使用价值,不能满足所有临床科室的使用。为此,我们开发了一套小型化、低功耗的多生命参数病人监护仪,它能长时间实时监护病人的心电(ECG)、呼吸(RESP)、血氧饱和度(SPO2)、血压(BP)和体温(Temp)。异常情况下,如导联脱落,能自动报警提醒医生注意。同时,该设备还能通过RS232接口实现计算机通讯,并逐步实现多台病人监护仪的网络化,以满足所有临床科室的应用需要。 1 监护仪用呼吸检测电路原理 监护仪用呼吸检测电路是利用呼吸阻抗法原理。它借用测量心电的胸部监
[单片机]
基于80c196<font color='red'>单片机</font>的多生命参数监护仪用呼吸检测电路设计
美格智能5G车规级通信模组: 5G+C-V2X连接汽车通信未来十年
前言 自2019年5G牌照发放开始,经过五年发展,我国5G在基础设施建设、用户规模、创新应用等方面均取得了显著成绩,5G网络建设也即将从基础的大范围覆盖向各产业融合的全场景应用转变。工业和信息化部数据显示,5G行业应用已融入76个国民经济大类,深入融合工业、交通、医疗等重点领域核心环节。 在加速5G规模化应用的进程中,集众多优势于一身的5G通信模组扮演着重要角色,尤其在智慧交通领域,车联网对于大流量传输与低时延通信有着极大需求,因此,以5G为基础的车载通信模组成为国内外众多车厂的首选。其中,美格智能打造的全新一代5G车规级通信模组MA922系列,在通信速率、V2X应用部署、通信覆盖范围等方面优势明显,凭借其出色的性能表现和
[汽车电子]
美格智能5G车规级<font color='red'>通信</font>模组: 5G+C-V2X连接汽车<font color='red'>通信</font>未来十年
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved