最近在学习无线的单片机解码。
示波器测试 :有的遥控器是24位脉冲 ,有是28位脉冲 有的遥控器是32位脉冲 汽车遥控器的脉冲数更多。 同步头也不同
使用2个接收模块 测出来的波形也不相同 有一个MPS单片机的遥控器测出来相位相反 其他ev1527 2262 其他sop14单片机做的测出来相位相同。
这2个接收模块分别是PT4302 和SYN480 芯片的波形图:
这份是从网上找的,程序中没有同步码解码 ,楼主可以参考一下!
#include<reg52.h> //库文件
#include< stdio.h>
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
uint addr,key;
uchar cntint;//外部中断0计数
void eint0(void) interrupt 0//外部中断0
{
static uint tempaddr;//接收地址缓存
static uint tempkey;//接收数据缓存
uint timecnt;
timecnt=TH0*256+TL0;
TH0=0;
TL0=0;
if(cntint<16)//接收地址码
{
tempaddr=tempaddr<<1;//将接收的到最低位移到最高位
if(timecnt>1000)//210为宽脉冲与低脉冲界线,当振荡电阻为1M时,窄脉冲为110uS,宽脉冲为320uS
{
tempaddr|=1;//宽脉冲为1
}
cntint++;//中断次数加1
}
else if(cntint<24)//接收数据码
{
tempkey=tempkey<<1;
if(timecnt>1000)
{
tempkey|=1;
}
cntint++;
}
else//cntint大于24也就是中断了25次时,关闭外部中断0,等待同步码
{
TMOD&=0xf0;//设定时器0为定时方式
TMOD|=0x01;
TH0=0xf9;
TL0=0x66;
cntint=0;
EX0=0;//关外部中断0
addr=tempaddr;
key=tempkey;
tempaddr=0;
tempkey=0;
}
}
void timer0(void) interrupt 1//定时器0中断,只有初始化时,空闲时和同步码到来时才中断
{
TMOD&=0xf0;//将定时器0的工作方式设为门控定时,用以检测脉宽。
TMOD|=0x09;
cntint=0;//外部中断0中断次数设为0
TH0=0;//设定时器0定时初值为0
TL0=0;
EX0=1;//允许外部中断0
IE0=0;//清除外部中断0标志
}
void main(void)
{
// void sendd(unsigned int intnum);
unsigned int i;
TMOD=0x21;//设定定时器0和定时器1,定时器1用来驱动串口
TH0=0xf9;//设定定时器的初始值,这个值必小于同步码
TL0=0x66;
// TH1=243;//12M晶振时,串口波特率为2400
// TL1=243;
TH1=0xdc;//11.0592M晶振时,串口波特率为9600
TL1=0xdc;
SCON=0x50;//设定串口工作方式
TI=1;//要用printf就将其设为1
EA=1;//开所有中断
ET0=1;//开定时器0中断
EX0=0;//关外部中断0,在Timer0中断里面将其打开
IT0=1;//外部中断0设为跳变触发
TR0=1;//定时器0启动
TR1=1;//定时器1启动
while(1)
{
// P2=key;
// P0=key>>8;
printf("%u\n",addr);//输出解码地址
printf("%u\n\n",key);//输出解码数据
for(i=0;i<65500;i++);//这个用来防止串口不同步
}
}
/********************************************************************
结束
*********************************************************************/
打赏帖 | |
---|---|
分享博世的两种不同的喷射系统模式被打赏5分 | |
汽车+开路实验与短路实验被打赏10分 | |
多点式电子控制汽油喷射系统知识分享被打赏10分 | |
分享机械控制式汽油喷射系统被打赏5分 | |
汽车显示屏——第2部分:TFTLCD、OLED和micro-LED显示屏电源技术被打赏50分 | |
汽车+汽车电路板的走线规则被打赏20分 | |
五一劳动节快乐被打赏5分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(六)使用Ozone调试镜像被打赏29分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(五)添加设备树节点被打赏33分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(四)使用I2C总线驱动RA8900CE芯片被打赏23分 |