基于51单片机315MHz无线收发模块调试程序(共11页)_第1页
基于51单片机315MHz无线收发模块调试程序(共11页)_第2页
基于51单片机315MHz无线收发模块调试程序(共11页)_第3页
基于51单片机315MHz无线收发模块调试程序(共11页)_第4页
基于51单片机315MHz无线收发模块调试程序(共11页)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/* 315Mhz无线通信程序(chngx) 原理(yunl): 第一块单片机p1.0口输出(shch)脉冲方波提供给无线发射模块, 无线发射模块将信号以电磁波的形式传到无线接收模块。 无线接收模块会根据这个电磁波还原出脉冲方波提供给第二块单片机, 第二块单片机进行进一步的解算处理。 通信协议: 根据这个原理和模块的特性。 我决定以900us高电平和2000us底电平表示; 450us高电平和 2000us低电平表示。 而个或组成一个字节。为了防止误码, 所以在每个字节的前面加一个2ms高电平和2ms低电平的起始码。每个5S发送(f sn)一个字符,一个字符发送20遍 */ /* 315Mhz

2、无线通信程序(chngx) 发送程序 11.0592M晶振 1机器(j q)周期=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=0 xfe,0 x61,0 xfc,0 xc3,0 xf8,0 xcd,0 xea,0 x66;/

3、 450us, 900us,2MS,6ms /* 11.0592MHZ 下500毫秒延时,还准 */ void delay500ms(uint i) uint j; uchar k; while(i-) for(j=0;j750;j+) for(k=0;k200;k+); void time0init() TMOD=0 x01;/ void sendset(uchar senddata);/发送数据程序(chngx) void sendstartbit();/数据(shj)发送起始信号2ms高电平和2ms低电平的起始码 void sendlowbit();/发送(f sn)低电平 void s

4、endhighbit();/发送高电平 void main() uchar senddata,i; time0init();/定时器初始化 senddata=0 x55; while(1) for(i=0;i20;i+) sendset(senddata);/发送数据程序(chngx) delay500ms(10); senddata+; /发送数据程序(chngx) void sendset(uchar senddata) uchar i,sendbit; sendstartbit();/发送开始(kish)信号 for(i=0;i8;i+) sendbit=senddata&0 x80;

5、if(sendbit=0)sendlowbit(); /发送低电平 else sendhighbit();/发送高电平 senddata=senddata1; /数据发送(f sn)起始信号6ms高电平和2ms低电平的起始码 void sendstartbit() WXSEND=1; TH0=timedata4; TL0=timedata5; TR0=1; while(TF0=0); TR0=0; TF0=0; TH0=timedata4; TL0=timedata5; WXSEND=0; TR0=1; while(TF0=0); TR0=0; TF0=0; void sendlowbit()

6、 /发送(f sn)低电平 WXSEND=1; TH0=timedata0; TL0=timedata1; TR0=1; while(TF0=0); TR0=0; TF0=0; TH0=timedata4; TL0=timedata5; WXSEND=0; TR0=1; while(TF0=0); TR0=0; TF0=0; void sendhighbit()/发送(f sn)高电平 WXSEND=1; TH0=timedata2; TL0=timedata3; TR0=1; while(TF0=0); TR0=0; TF0=0; TH0=timedata4; TL0=timedata5;

7、WXSEND=0; TR0=1; while(TF0=0); TR0=0; TF0=0; /* 315Mhz无线通信程序(chngx) 接收(jishu)程序 11.0592M晶振 1机器周期=1.0851us 用中断0边沿触发中断,开启接收(jishu)程序由于接收模块平时大部分时间是低电平,有信号时是高电平,而中断0是负边沿触发,所以,硬件电路中接收模块的信号输出端经过非门后接到单片机P3.2接收到数据,用串口传到上位机的串口调试软件显示*/#include#includeintrins.h#defineuintunsignedint#defineucharunsignedcharsbit

8、WXrecep=P32;/ucharcodetimedata6=0 xfe,0 x61,0 xfc,0 xc3,0 xf8,0 xcd;/450us,900us,2MSucharwxrecepda;voidtime0init()TMOD=0 x21;/定时器0TH0=0;TL0=0;/TMOD=0 x20;/*TMOD:timer1,mode2,8-bitreload*/TH1=0 xFD;/*TH1 11.0592MHz*/TL1=0XFD;EA=1;EX0=1;ET0=1;IE0=0;voiduartinit()SCON=0 x50;/*SCON:模式1,8-bitUART,使能接收*/T

9、R1=1;/*TR1:timer1run*/voidreceivewx();/接收子程序voidmain()time0init();/定时器初始化uartinit();while(1);voidreceivewx()/接收(jishu)子程序uinti;ucharj,recedata;while(WXrecep=0);TR0=0;i=TH0*256+TL0;TH0=0;TL0=0;if(i=1800)&(i=1890) recedata=0;for(j=0;j=390)&(i=800)&(i=860) recedata=recedata|0 x01; recedata=recedata1;SBUF=wxrecepda;while(TI=0);TI=0;voidwxrecint()interrupt0TH0=0;TL0=0;TR0=1;EX0=0;receivewx();EX0=1;内容总结(1)/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论