基于51单片机红外编码解码的C语言程序

来源:本站
导读:目前正在解读《基于51单片机红外编码解码的C语言程序》的相关信息,《基于51单片机红外编码解码的C语言程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于51单片机红外编码解码的C语言程序》的详细说明。
简介:本文给大家介绍了基于51单片机红外编码解码的C语言程序。

当学习键按下后,红外接收头便可将接受到的信号存储到单片机中。在接受到通用遥控器发出的信号后,如果按下发射键,单片机将调出刚刚储存的信息,通过红外发射头发射出和遥控器一样的信号来达到控制的作用。

#include #include #define uchar unsigned char#define uint unsigned intsbit studylamp=P2^7;            sbit lamp=P2^6;                   sbit studykey=P3^2;             sbit remotein=P1^1;             sbit remoteout=P1^0;           sbit txkey=P2^0;                  uint i,j,m=255,n,k,s;uchar idata remotedata[206];        uint head;                       uint remdata;//一毫秒延时程序delay1ms(uint t){for(i=0;i    for(i=0;j<120;j++);}//初始化函数clearmen(){   studylamp=1;                      lamp=1;                            remoteout=0;                          remotein=1;   for(i=0;i<206;i++)                 {    remotedata[i]=0x00;}IE=0x00;IP=0x01;TMOD=0x22;PCON=0X00;TH1=0xf3;TL1=0xf3;IT0=1;EX0=1;EA=1;} //键功能函数void key_tx(){if(txkey==0){   delay1ms(1);   if(txkey==0)   {   while(txkey==0);       ET1=1;TR1=1;                       for(i=head;i>0;i--);   remoteout=0;ET1=0;TR1=0;   n=0;   while(1)   {         lamp=0;                studylamp=1;    if(remotedata[n]==0x00)    {     delay1ms(10);break;                       }    for(i=remotedata[n];i>0;i--)    {     _nop_();_nop_();_nop_();_nop_();_nop_();     _nop_();_nop_();_nop_();_nop_();    }    n++;                         ET1=1;TR1=1;        for(i=remotedata[n];i>0;i--);    remoteout=0;ET1=0;TR1=0;n++;     }      }}}//主函数void main(){clearmen();                       //初始化while(1){   key_tx();      //按键扫描}                      } //40KHz发生器     void time_intt1(void) interrupt 3{remoteout=~remoteout;}    //外中断0void intt0(void) interrupt 0{ET1=0;TR1=0;EX0=0;EA=0;head=0;while(studykey==0);                    studylamp=0;lamp=1;while(remotein==1);                          head=0;                                  while(remotein==0){   _nop_();_nop_();_nop_();_nop_();_nop_();   _nop_();_nop_();_nop_();_nop_();_nop_();   _nop_();_nop_();_nop_();_nop_();_nop_();   head++;}n=0;remdata=0x0000;while(1){   while(remotein==1)   {    _nop_();_nop_();_nop_();_nop_();_nop_();    _nop_();_nop_();_nop_();_nop_();_nop_();    _nop_();_nop_();_nop_();_nop_();_nop_();    remdata++;   }   if(remdata>m)                       //高电平>5毫秒退出   {remotedata[n]=0x00;EX0=1;EA=1;goto end;}   remotedata[n]=remdata;n++;                remdata=0x0000;                   while(remotein==0)   {    _nop_();_nop_();_nop_();_nop_();_nop_();    _nop_();_nop_();_nop_();_nop_();_nop_();    _nop_();_nop_();_nop_();_nop_();_nop_();    remdata++;   }                       remotedata[n]=remdata;   n++;   remdata=0x00;}end: lamp=0;studylamp=0;               }

提醒:《基于51单片机红外编码解码的C语言程序》最后刷新时间 2024-03-14 00:57:58,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于51单片机红外编码解码的C语言程序》该内容的真实性请自行鉴别。