基于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

提交評論