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

📄 复件 exmple_1.c

📁 一个用MCU将SHARP 遥控码转为NEC码的小程序
💻 C
字号:
//C51单片机红外线编解码遥控源程序 

#include <reg52.h>
sbit LED=P3^0;
sbit Key=P3^7;
//帧数据放数组Data里
unsigned char Data[4]={0x00,0xff,0x1f,0xe0};
void Transmit(int c1,int c2); //发射子程序
//****************************************
main()
{unsigned char i,j;
while(1)
{while(Key); //没键按下,等待
Transmit(340,565); //发射引导码
for(i=0;i<4;i++)
for(j=0;j<8;j++) //发射帧数据
{if((Data[i]>>j)&1)
Transmit(19,205); //'1'码
else Transmit(19,70); //'0'码
}
Transmit(19,17);
while(!Key); //等待释放按键
}
}
//****************************************
void Transmit(int c1,int c2) //c1为高电平宽度
{unsigned char i; //c2为低电平宽度
do{LED=1; //产生38kHz载波 
for(i=8;i>0;i--); //延时18us
LED=0;
}while(--c1);
LED=1;
while(--c2);
} 


/*;程序2
#include<reg51.h>
sbit Rec=P3^1;
unsigned char i,ch;
unsigned int t;
main()
{
TMOD=0x01;
TR0=1; 
while(1)
{
while(Rec); //等待接收信号//twp 等待P3^1为低电平0 则跳出循环,往下运行计算高电平的宽度
t=(TH0<<8)+TL0; //取得脉冲宽度
if(t>200&&t<800); //是'0'码 
else if(t>1100&&t<1800) //'1'码
{if(i>24)//取出最后一字节
ch|=1<<(i-25); //twp 只接收最后一字节
}
else //非0、1码,重新解码
{ch=0;i=0;}
if(i++==32) P1=ch;//twp 将接收的码放到P1变量
while(!Rec);
TL0=0; //重新计时 
TH0=0;
}
程序2*/

⌨️ 快捷键说明

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