红外遥控发射芯片采用ppm编码方式,当发射器按键按下后,将发射一组108ms的编码脉冲。遥控编码脉冲由前导码、8位用户码、8位用户码的反码、8位操作码以及8位操作码的反码组成。通过对用户码的检验,每个遥控器只能控制一个设备动作,这样可以有效地防止多个设备之间的干扰。编码后面还要有编码的反码,用来检验编码接收的正确性,防止误操作,增强系统的可靠性。前导码是一个遥控码的起始部分,由一个9ms的低电平(起始码)和一个4. 5ms的高电平(结果码)组成,作为接受数据的准备脉冲。以脉宽为0. 56ms、周期为1. 12ms的组合表示二进制的“0”;以脉宽为1. 68ms、周期为2. 24ms的组合表示二进制的“1”。如果按键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2. 5ms)组成。
单片机采用外部中断inti管脚和红外接收头的信号线相连,中断方式为边沿触发方式。并用定时器0计算中断的间隔时间,来区分前导码、二进制的“1”、“0”码。并将8位操作码提取出来在数码管上显示。
// 解码值在im[2]中,当irok=1时解码有效。
/* 51单片机红外遥控解码程序 */
//用遥控器对准红外接收头,按下遥控器按键,在数码管前两位上就会显示对应按键的编码
#include 《reg52.h》
#define uchar unsigned char
sbit dula=p2^6;
sbit wela=p2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar f;
#define imax 14000 //此处为晶振为11.0592时的取值,
#define imin 8000 //如用其它频率的晶振时,
#define inum1 1450 //要改变相应的取值。
#define inum2 700
#define inum3 3000
unsigned char im[4]={0x00,0x00,0x00,0x00};
uchar show[2]={0,0};
unsigned long m,tc;
unsigned char irok;
void delay(uchar i)
{
uchar j,k;
for(j=i;j》0;j--)
for(k=125;k》0;k--);
}
void display()
{
dula=0;
p0=table[show[0]];
dula=1;
dula=0;
wela=0;
p0=0xfe;
wela=1;
wela=0;
delay(5);
p0=table[show[1]];
dula=1;
dula=0;
p0=0xfd;
wela=1;
wela=0;
delay(5);
}
//外部中断解码程序
void intersvr1(void) interrupt 2 using 1
{
tc=th0*256+tl0; //提取中断时间间隔时长
th0=0;
tl0=0; //定时中断重新置零
if((tc》imin)&&(tc《imax))
{
m=0;
f=1;
return;
} //找到启始码
if(f==1)
{
if(tc》inum1&&tc《inum3)
{
im[m/8]=im[m/8]》》1|0x80; m++;
}
if(tc》inum2&&tc《inum1)
{
im[m/8]=im[m/8]》》1; m++; //取码
}
if(m==32)
{
m=0;
f=0;
if(im[2]==~im[3])
{
irok=1;
}
else irok=0; //取码完成后判断读码是否正确
}
//准备读下一码
}
}
/*演示主程序*/
void main(void)
{
unsigned int a;
m=0;
f=0;
ea=1;
it1=1;ex1=1;
tmod=0x11;
th0=0;tl0=0;
tr0=1;//et0=1;
while(1)
{
if(irok==1)
{
show[1]=im[2] & 0x0f; //取键码的低四位
show[0]=im[2] 》》 4;
irok=0;
}
for(a=100;a》0;a--)
{
display();
}
}
}
场效应管所有厂家的中英文对照表
DeepMind要在医疗领域放大招,开发眼底AI,用AI预测急性肾损伤
滤波器产值持续增长,全球主要手机品牌的射频供应链
这些让你装比满满的快捷键,可以让你效率提升3倍以上 一定要知道
GPU的巨大压力即将到来
使用51单片机控制红外遥控芯片的资料和解码程序
哪些因素会导致MCU复位
英特尔落后微软 英特尔能否重塑昔日辉煌?
3分钟轻松实现串口连接MCGS触摸屏应用案例
单片机实现一分钟定时器功能的设计
深入介绍晶圆代工巨头台积电的先进封装
今年台湾半导体产业产值规模可达到新台币3.21兆元
高岘案例——广州荣大科技有限公司
韩国研究团队开发出同时提高Micro LED的电学与光学效率的技术
手机拍照哪家强?华为P10、美图T8、OPPOR11优缺点评测分析
ios15息屏显示功能开启
mstp协议原理详解
作为Fab-Liter战略的一部份,安森美剥离晶圆制造厂
IR2117 单通道MOSFET或IGBT栅极驱动器集成电路
电力系统中变压器的中性点为什么要接地?