基于51单片机315MHz无线收发模块调试程序文档格式.docx

上传人:b****4 文档编号:16542718 上传时间:2022-11-24 格式:DOCX 页数:8 大小:122.64KB
下载 相关 举报
基于51单片机315MHz无线收发模块调试程序文档格式.docx_第1页
第1页 / 共8页
基于51单片机315MHz无线收发模块调试程序文档格式.docx_第2页
第2页 / 共8页
基于51单片机315MHz无线收发模块调试程序文档格式.docx_第3页
第3页 / 共8页
基于51单片机315MHz无线收发模块调试程序文档格式.docx_第4页
第4页 / 共8页
基于51单片机315MHz无线收发模块调试程序文档格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

基于51单片机315MHz无线收发模块调试程序文档格式.docx

《基于51单片机315MHz无线收发模块调试程序文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机315MHz无线收发模块调试程序文档格式.docx(8页珍藏版)》请在冰豆网上搜索。

基于51单片机315MHz无线收发模块调试程序文档格式.docx

±

^vl^^2^>

X^vl^vl^

iyr%yr^yr%yr%yr^yj^*r%*r%*r%彳・"

315Mhz无线通信程序

发送程序11.0592M晶振1机器周期二1.0851US

定时器产生2MS定时

TH0=0XF8;

TLO=OXCD;

900us定时

THO二OXFC;

TLO二0XC3;

450us定时

THO二OXFE;

TLO二0X61;

vtxvtxvtxxtx/

^T>

#T^#T^>

r^yrsyrsyis^wyrsyrs^wyrsyrs^w/

#include<

reg52.h>

Sinclude"

intrins・h"

#defineuintunsignedint

#defineucharunsignedchar

sbitWXSEND二P「0;

uchartimedata[8]二{Oxfe,0x61,Oxfc,0xc3,0xf8,Oxcd,Oxea,0x66};

//450us,900us,2MS,6ms

/>

1^

/yj%yj%

11.0592MHZ下500毫秒延时,还准

vtxvtxvtxxtxvtx/

yj%>

Jx#y%#y%yj%^J>

^J>

吩・^J>

/voiddelay500ms(uinti)uintj;

uchark;

while(i--)

{

for(j=0;

j<

750;

j++)

for(k=0;

k<

200;

k++);

}

voidtimeOinit()

TMOD二0x01;

//

voidsendset(ucharsenddata);

//发送数据程序

voidsendstartbit();

//数据发送起始信号2ms高电平和2ms低电平的起始码

voidsendlowbit();

//发送低电平

voidsendhighbit0;

//发送高电平

voidmain()

{ucharsenddata,i;

timeOinit();

//定时器初始化senddata二0x55;

wh订e(l){

for(i=0;

i<

20;

i++)

sendset(senddata);

delay500ms(10);

senddata++;

//发送数据程序

voidsendset(ucharsenddata)

{uchari,sendbit;

sendstartbit();

//发送开始信号

8;

sendbit二senddata&

0x80;

if(sendbit==0)sendlowbit();

//发送低电平

elsesendhighbit0;

senddata=senddata<

<

l;

//数据发送起始信号6ms高电平和2ms低电平的起始码void

sendstartbit()

WXSEND=1;

TH0=timedata[4];

TLO二timedata[5];

TRO=1;

while(TF0==0);

TRO二0;

TFO二0;

WXSEND=O;

TRO二1;

while(TFO==O);

TFO=O;

voidsendlowbit()//发送低电平

THO=timedata[O];

TLO二timeddta[l];

TRO二1;

TRO=O;

TLO二timeddta[5];

 

void

sendhighbit()//

发送高电平

TH0=timedata[2];

TL0=timedata[3];

接收程序U.0592M晶振1机器周期二1.0851US

用中断0边沿触发中断,开启接收程序由于接收模块平时大部分时间

是低电平,有信号时是高电平,而中断以,°

是负边沿触发,所

硕件电路中接收模块的信号输出端经过非门后接到单片机P3.2

接收到数据,用串口传到上位机的串口调试软件显示

#include〃inttins.h〃#defineuintunsignedint

SdefineucharunsignedcharsbitWXrecep=P3^2;

//ucharcodetimedata[6]二{Oxfe,0x61,Oxfc,0xc3,Oxf&

Oxcd};

//450us,

900us,2MSucharwxrecepda;

voidtimeOinit()

TMOD二0x21;

//定时器0

THO=O;

TLO=O;

//TM0D=0x20:

/*TMOD:

timer1,mode2,8-bitreload*/

TH1二OxFD;

/*THl11.0592MHz*/

TL1=OXFD;

EA=1;

EXO=1;

ETO=1;

IE0=0;

voiduartinit()

SCON二0x50;

/*SCON:

模式1,8-bitUART,使能接收*/

TR1=1;

/*TR1:

timerlrun*/

voidreceivewxO;

//接收子程序

//定时器初始化

uartinit();

wh订e(l);

voidreceivewx()//接收子程疗;

{uinti;

ucharj,recedata;

while(WXrecep—0);

i二TH0*256+TL0;

if((i>

=1800)&

&

(i〈二1890))

{recedata二0;

while(WXrecep—1);

if((i>

二390)&

(iO450))recedata=recedata&

Oxfe;

elseif((i>

=800)&

(i<

=860))recedata=recedata0x01;

recedata二:

recedata〈〈l;

TH0=0;

TL0=0;

wxrecepda=recedata»

l;

SBUF=wxrecepda;

while(TI==0);

TI=0;

voidwxrecint()interrupt0

EXO=O;

receivewx();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1