《【优质文档】基于51单片机315MHz无线收发模块调试程序.pdf》由会员分享,可在线阅读,更多相关《【优质文档】基于51单片机315MHz无线收发模块调试程序.pdf(11页珍藏版)》请在三一文库上搜索。
1、/* 315Mhz无线通信程序 原理: 第一块单片机p1.0 口输出脉冲方波提供给无线发射模块, 无线发射模块将信号以电磁波的形式传到无线接收模块。 无线接收模块会根据这个电磁波还原出脉冲方波提供给第二块单片机, 第二块单片机进行进一步的解算处理。 通信协议: 根据这个原理和模块的特性。 我决定以 900us高电平和2000us底电平表示; 450us 高电平和2000us低电平表示。 而个或组成一个字节。为了防止误码, 所以在每个字节的前面加一个2ms 高电平和2ms 低电平的起始码。 每个 5S 发送一个字符,一个字符发送20 遍 */ /* 315Mhz无线通信程序 发送程序11.059
2、2M晶振 1 机器周期 =1.0851us 定时器产生2MS 定时 TH0=0XF8;TL0=0XCD; 900us 定时 TH0=0XFC;TL0=0XC3; 450us 定时 TH0=0XFE;TL0=0X61; */ #include #include “intrins.h“ #define uint unsigned int #define uchar unsigned char sbit WXSEND=P10; uchar timedata8=0xfe,0x61,0xfc,0xc3,0xf8,0xcd,0xea,0x66;/ 450us, 900us,2MS,6ms /* 11.05
3、92MHZ 下 500 毫秒延时,还准 */ void delay500ms(uint i) uint j; uchar k; while(i-) for(j=0;j #include “intrins.h“ #define uint unsigned int #define uchar unsigned char sbit WXrecep=P32; /uchar code timedata6=0xfe,0x61,0xfc,0xc3,0xf8,0xcd;/ 450us, 900us,2MS uchar wxrecepda; void time0init() TMOD=0x21;/定时器 0 T
4、H0=0; TL0=0; /TMOD=0x20;/*TMOD:timer1,mode2,8-bitreload*/ TH1=0xFD;/*TH1 11.0592MHz*/ TL1=0XFD; EA=1; EX0=1; ET0=1; IE0=0; void uartinit() SCON=0x50;/*SCON:模式 1,8-bitUART,使能接收 */ TR1=1;/*TR1:timer1run*/ void receivewx();/接收子程序 void main() time0init();/定时器初始化 uartinit(); while(1) ; void receivewx()/接收子程序 uint i; uchar j,recedata; while(WXrecep=0); TR0=0; i=TH0*256+TL0; TH0=0; TL0=0; if(i=1800) while(TI=0); TI=0; void wxrecint() interrupt 0 TH0=0; TL0=0; TR0=1; EX0=0; receivewx(); EX0=1;