⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 irtransmit.c

📁 lcd1602驱动 iic驱动 spi驱动 ir驱动
💻 C
字号:
#include <stdio.h>
#include <AT892051.H>
#include<INTRINS.H>
sbit LED=P1^7;
sbit Key=P1^0;
//帧数据放数组Data里
 unsigned char counter=0;
unsigned char Data[5]={0x55,0xff,0x00,0xaa,0x0f};
void Transmit(int c1,int c2); //发射子程序

void delay()
{
  int i;
  for(i=75000;i>0;i--);
}

void scan_key()
{
  while(1)
  {
   if(Key==0)
   { 
    delay();
    if(Key==0)
	 {
       counter++;
	   if(counter>=4)
	     counter=0;
	   break;
	 }
	else
     LED=0;                //没键按下,等待    
   }
  }	
}

void send_code()
{
    unsigned char j;
    Transmit(143,38);     //发射引导码
    //for(i=0;i<4;i++)
	//{
      for(j=0;j<8;j++)      //发射帧数据
      {
	   if((Data[counter]>>j)&1)
         Transmit(75,38); //'1'码
       else 
	   Transmit(38,38);    //'0'码
      }
     Transmit(285,38); 
     LED=0;
   //}
   while(Key==0);            //等待释放按键
}
//****************************************
main()
{
  LED=0; 
  while(1)
  {
   scan_key();
   send_code();
   delay();
   delay();
   delay();
  }
}
//****************************************
void Transmit(int c1,int c2) //c1为高电平宽度
{
   unsigned char i;            //c2为低电平宽度
   LED=0;
   do{
    LED=0;                    //产生38kHz载波 
    for(i=3;i>0;i--);         //延时18us
    LED=1;
    for(i=5;i>0;i--);         //延时18us
    //_nop_();
   }while(--c1);
   LED=0;
   do{
    for(i=8;i>0;i--); 
   }while(--c2);
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -