<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機+315M無線射頻模塊接受程序

          51單片機+315M無線射頻模塊接受程序

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          用的就是那種最普通的 最便宜的 大約幾塊錢 的315兆的無線模塊接受發(fā)射,不帶解碼的,433m的程序也是一樣的不用修改


          本文引用地址:http://www.ex-cimer.com/article/201611/323697.htm


          壓縮包中的內(nèi)容:


          上位機以及完整程序在文件夾中,大家可自己下載
          地址是:http://www.51hei.com/bbs/dpj-19033-1.html

          下面是接受端的源代碼:
          #include
          #include "string.h"

          //液晶塊
          #define LCM_RW P3_6 //定義引腳
          #define LCM_RS P3_5
          #define LCM_E P3_7
          #define LCM_Data P1
          #define Busy 0x80 //用于檢測LCM狀態(tài)字中的Busy標(biāo)識
          typedef int byte;
          typedef unsigned int word;

          void Read_Temp(void);
          void mychar(char,char);

          void WriteDataLCM(unsigned char WDLCM);
          void WriteCommandLCM(unsigned char WCLCM,BuysC);
          unsigned char ReadDataLCM(void);
          unsigned char ReadStatusLCM(void);
          void LCMInit(void);
          void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
          void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
          void Delay5Ms(void);
          void Delay400Ms(void);

          void delay(word useconds)
          {
          for(;useconds>0;useconds--);
          }

          void mychar(char xx,char yy)
          {

          DisplayOneChar(0,0,0x54);
          DisplayOneChar(1,0,0x65);
          DisplayOneChar(2,0,0x6D);
          DisplayOneChar(3,0,0x70);
          DisplayOneChar(4,0,0x65);
          DisplayOneChar(5,0,0x72);
          DisplayOneChar(6,0,0x61);
          DisplayOneChar(7,0,0x74);
          DisplayOneChar(8,0,0x75);
          DisplayOneChar(9,0,0x72);
          DisplayOneChar(10,0,0x65);
          DisplayOneChar(11,0,0x3A);
          ///////////////////////自定義字符
          WriteCommandLCM(0x48, 0); //第一行
          WriteDataLCM(0x06);
          WriteCommandLCM(0x49, 0); //第2行
          WriteDataLCM(0x09);
          WriteCommandLCM(0x4a, 0); //第3
          WriteDataLCM(0x09);
          WriteCommandLCM(0x4b, 0); //第4
          WriteDataLCM(0x06);
          WriteCommandLCM(0x4c, 0); //第5
          WriteDataLCM(0x00);
          WriteCommandLCM(0x4d, 0); //第6
          WriteDataLCM(0x00);
          WriteCommandLCM(0x4e, 0); //第7
          WriteDataLCM(0x00);
          WriteCommandLCM(0x4f, 0); //第8
          WriteDataLCM(0x00);
          DisplayOneChar(xx,yy,0x01);
          DisplayOneChar(xx+1,yy,0x43);
          }
          //寫數(shù)據(jù)
          void WriteDataLCM(unsigned char WDLCM)
          {
          ReadStatusLCM(); //檢測忙
          LCM_Data = WDLCM;
          LCM_RS = 1;
          LCM_RW = 0;
          LCM_E = 0; //若晶振速度太高可以在這后加小的延時
          LCM_E = 0; //延時
          LCM_E = 1;
          }

          //寫指令
          void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC為0時忽略忙檢測
          {
          if (BuysC) ReadStatusLCM(); //根據(jù)需要檢測忙
          LCM_Data = WCLCM;
          LCM_RS = 0;
          LCM_RW = 0;
          LCM_E = 0;
          LCM_E = 0;
          LCM_E = 1;
          }

          //讀狀態(tài)
          unsigned char ReadStatusLCM(void)
          {
          LCM_Data = 0xFF;
          LCM_RS = 0;
          LCM_RW = 1;
          LCM_E = 0;
          LCM_E = 0;
          LCM_E = 1;
          while (LCM_Data & Busy); //檢測忙信號
          return(LCM_Data);
          }

          void LCMInit(void) //LCM初始化
          {
          LCM_Data = 0;
          WriteCommandLCM(0x38,0); //三次顯示模式設(shè)置,不檢測忙信號
          Delay5Ms();
          WriteCommandLCM(0x38,0);
          Delay5Ms();
          WriteCommandLCM(0x38,0);
          Delay5Ms();

          WriteCommandLCM(0x38,1); //顯示模式設(shè)置,開始要求每次檢測忙信號
          WriteCommandLCM(0x08,1); //關(guān)閉顯示
          WriteCommandLCM(0x01,1); //顯示清屏
          WriteCommandLCM(0x06,1); // 顯示光標(biāo)移動設(shè)置
          WriteCommandLCM(0x0C,1); // 顯示開及光標(biāo)設(shè)置
          }

          //按指定位置顯示一個字符
          void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
          {
          Y &= 0x1;
          X &= 0xF; //限制X不能大于15,Y不能大于1
          if (Y) X |= 0x40; //當(dāng)要顯示第二行時地址碼+0x40;
          X |= 0x80; //算出指令碼
          WriteCommandLCM(X, 0); //這里不檢測忙信號,發(fā)送地址碼
          WriteDataLCM(DData);
          }

          //按指定位置顯示一串字符 ***原來的遇到空格0x20就不顯示***
          void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
          {
          unsigned char ListLength,j;
          ListLength = strlen(DData);
          Y &= 0x1;
          X &= 0xF; //限制X不能大于15,Y不能大于1
          if (X <= 0xF) //X坐標(biāo)應(yīng)小于0xF
          {
          for(j=0;j {
          DisplayOneChar(X, Y, DData[j]); //顯示單個字符
          X++;
          }
          }
          }


          //5ms延時
          void Delay5Ms(void)
          {
          unsigned int TempCyc = 5552;
          while(TempCyc--);
          }

          //400ms延時
          void Delay400Ms(void)
          {
          unsigned char TempCycA = 5;
          unsigned int TempCycB;
          while(TempCycA--)
          {
          TempCycB=7269;
          while(TempCycB--);
          };
          }


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 51單片機315M無線射頻模

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();