久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 31548|回復: 72
打印 上一主題 下一主題
收起左側

無線通訊之433MHZ單片機模擬2272解碼

  [復制鏈接]
跳轉到指定樓層
樓主
ID:63997 發表于 2016-1-26 22:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在網上找了很多教程 范例程序 好像都會有那么一點點問題 不是接收不到數據 就是接收到錯誤的數據
不過還好 經過多次實驗 終于接收到正確的 數據了  實驗成果放送 供需要的人參考
單片機 stc89c58rd+  12mhz晶振










定時解碼.rar (35.6 KB, 下載次數: 779)

評分

參與人數 4黑幣 +100 收起 理由
waerdeng + 5 共享資料的黑幣獎勵!
15838831911 + 10
admin + 50 共享資料的黑幣獎勵!
暗光 + 35 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏44 分享淘帖 頂8 踩
回復

使用道具 舉報

來自 2#
ID:74428 發表于 2016-3-7 22:40 | 只看該作者
xueyunmicheng 發表于 2016-3-7 00:30
模塊會收到很多雜波!電平在不停變化 理想情況下 沒有收到數據 時為高電平 收到數據為低電平

謝謝樓主,我還想問下,3.3M震蕩電阻的模塊,我計算的頻率32/3.3=9.697KH,周期T=3.3/32=103us,窄脈沖4T=413us,寬脈沖12T=1238us,同步碼低電平124T=12788us,你的程序里寬窄脈沖及同步碼時間有200us-360us,800us-1100us,10200us - 11000us,我想問下你是怎么算的,我那樣的算法不對吧
回復

使用道具 舉報

來自 3#
ID:94449 發表于 2020-3-9 23:01 | 只看該作者
yimei11111 發表于 2016-3-7 22:40
謝謝樓主,我還想問下,3.3M震蕩電阻的模塊,我計算的頻率32/3.3=9.697KH,周期T=3.3/32=103us,窄脈沖4T ...

謝謝樓主,我還想問下,3.3M震蕩電阻的模塊,我計算的頻率32/3.3=9.697KH,周期T=3.3/32=103us,窄脈沖4T=413us,寬脈沖12T=1238us,同步碼低電平124T=12788us,你的程序里寬窄脈沖及同步碼時間有200us-360us,800us-1100us,10200us - 11000us,我想問下你是怎么算的,我那樣的算法不對吧
問一下,這個問題有答案了嗎?
回復

使用道具 舉報

地板
ID:87614 發表于 2016-1-27 10:55 | 只看該作者
屏不錯。。。。51黑有你更精彩。。
回復

使用道具 舉報

5#
ID:63997 發表于 2016-1-27 13:53 | 只看該作者
51shakura 發表于 2016-1-27 10:55
屏不錯。。。。

25元一個 淘了4個 嘿嘿 拆了一個 送人一個
回復

使用道具 舉報

6#
ID:72947 發表于 2016-1-27 17:15 來自手機 | 只看該作者
51黑有你更精彩。。,看樓主的程序是一種享受,調理清晰,注釋詳細.
  1. #include <STC89C5xRC.H>
  2. #include <intrins.h>    //包含_nop_()延時函數
  3. #include <absacc.h>                //包含 CBYTE[]  
  4. #include <string.h>                // 包含 strlen (char *)函數
  5. #include "ASCII816.h"   //標準ASCII庫

  6. #include "12864.h"        //液晶驅動
  7. #define uchar unsigned char
  8. #define uint  unsigned int


  9. sbit wux=P3^2;

  10. uchar D[3];  
  11. uint temp;
  12. uchar flag,flag1;

  13. uint kk[3];
  14. uint ka;
  15. uchar k;
  16. void jiema()//解碼  
  17. {
  18.         uchar j,i;
  19.         TH0=0;                        //T0作為計時器使用   
  20.         TL0=0;                        //T0作為計時器使用   
  21.         ET0=0;                        //T0溢出不中斷
  22.         while(wux);                //等待低電平
  23.         TR0=1;                        //檢測到低電平開啟T0計時
  24.         while(!wux)                //等待高電平
  25.         {
  26.                 if(TF0==1)                //等待高電平是T0產生溢出      
  27.                 {
  28.                         TF0=0;                //清除溢出標識
  29.                         flag1=1;        //接收錯誤標識置1  
  30.                         TR0=0;                //關閉T0計時
  31.                         break;                //跳出等待   
  32.                 }
  33.         }   
  34.          
  35.         if(flag1!=1)                        //如果接收正確      
  36.         {
  37.                 flag1=0;                        //清除接收正確標識
  38.                 TR0=0;                                //關閉計時   
  39.                 temp=TH0;                        //計時時間 = T0計時時間高8位
  40.                 temp=(temp<<8)+TL0;        //計時時間=計時時間左移8位 +  T0計時時間低8位 得到16位計時時間
  41.                 TH0=0;                                //清除T0計時時間高8位   
  42.                 TL0=0;                                //清除T0計時時間低8位
  43.                 if ((temp>10200) && (temp<11000))        //如果計時時間在10200us - 11000us之間 則判定為檢測到正確的同步碼
  44.                 {
  45.                         while(wux);                        //等待低電平
  46.                         TR0=1;                                //檢測到低電平開啟T0計時
  47.                         for(i=0;i<3;i++)        //數據接收 因為需要兩位才能判定2262發送的數據是 0還是1 還是懸空碼
  48.                                                                 //一共發送12位數據 地址1 + 地址2 + 數據 所以需要循環 3次
  49.                         {
  50.                                 for(j=8;j>0;j--)        //接收八位數據
  51.                                 {
  52.                                         while(!wux);        //等待高電平
  53.                                         TR0=0;                        //檢測到高電平后關閉T0計時
  54.                                         temp=TH0;                         //計時時間 = T0計時時間高8位
  55.                                         temp=(temp<<8)+TL0;        //計時時間=計時時間左移8位 +  T0計時時間低8位 得到16位計時時間
  56.                                         TH0=0;   
  57.                                         TL0=0;                                //清除T0計時時間
  58.                                         D[i]=D[i]<<1;                //數據左移一位 然后在接收
  59.                                         if ((temp>200) && (temp<360))        //測低電平時間 如果為200us-360us之間 為0
  60.                                         {
  61.                                                 D[i]=D[i]|0X00;                                //0               
  62.                                         }
  63.                                         else if ((temp>800) && (temp<1100))        //測低電平時間 如果為800us-1100us之間 為1
  64.                                         {
  65.                                                 D[i]=D[i]|0X01;                                //1       
  66.                                         }
  67.                                         else if ((temp>1100)){return;}        //檢測到大于1100us 則認為已經放開按鍵 防止產生誤動作直接跳出
  68.                                         while(wux);                                                //等待低電平后開始計時
  69.                                         TR0=1;                                                        //檢測到低電平開始記錄下一個碼低電平時間
  70.                                 }        
  71.                         }
  72.        
  73.                         if(k==0)        //判定一次接收結果
  74.                         {
  75.                                 ((uchar *) &ka)[0]=D[0];
  76.                                 ((uchar *) &ka)[1]=D[1];
  77.                         }
  78.                         if((k==1)&&(D[1]==((uchar *) &ka)[1])&&(D[0]==((uchar *) &ka)[0]))        //兩次接收一致則為接收正確
  79.                         {
  80.                                 kk[0]=D[0];
  81.                                 kk[1]=D[1];
  82.                                 kk[2]=D[2];
  83.                                 flag=1;        //開顯示               
  84.                         }
  85.                         k++;if(k>1)k=0;        //加記錄次數               
  86.                 }  
  87.         }   
  88. }

  89. void Delay20ms()                //@12.000MHz
  90. {
  91.         unsigned char i, j;

  92.         i = 39;
  93.         j = 230;
  94.         do
  95.         {
  96.                 while (--j);
  97.         } while (--i);
  98. }

  99. void main()  
  100. {  
  101.         InitLCD();                        //初始化顯示
  102.         ClearScreen();                //清屏
  103.         SetOnOff(1,0,15);   //開顯示,正常顯示,亮度7  
  104.         TMOD = 0x01;                //設置定時器模式
  105.         while(1)     
  106.         {
  107.                 flag=0;     
  108.                 if(wux==0)        //如果檢測到低電平            
  109.                 jiema();        //開始解碼
  110.                        
  111.                 if(flag==1)        //   
  112.                 {
  113.                         WRITE_STRING816(4,0, D[0]/16/10,0);
  114.                         WRITE_STRING816(4,8, D[0]/16%10,0);
  115.                         WRITE_STRING816(4,16,D[0]%16/10,0);
  116.                         WRITE_STRING816(4,24,D[0]%16%10,0);
  117.                                
  118.                         WRITE_STRING816(4,40,D[1]/16/10,0);
  119.                         WRITE_STRING816(4,48,D[1]/16%10,0);
  120.                         WRITE_STRING816(4,56,D[1]%16/10,0);
  121.                         WRITE_STRING816(4,64,D[1]%16%10,0);
  122.        
  123.                         WRITE_STRING816(4,80,D[2]/16/10,0);
  124.                         WRITE_STRING816(4,88,D[2]/16%10,0);
  125.                         WRITE_STRING816(4,96,D[2]%16/10,0);
  126.                         WRITE_STRING816(4,104,D[2]%16%10,0);

  127.                         WRITE_STRING816(6,0, kk[0]/16/10,0);
  128.                         WRITE_STRING816(6,8, kk[0]/16%10,0);
  129.                         WRITE_STRING816(6,16,kk[0]%16/10,0);
  130.                         WRITE_STRING816(6,24,kk[0]%16%10,0);
  131.        
  132.                         WRITE_STRING816(6,40, kk[1]/16/10,0);
  133.                         WRITE_STRING816(6,48, kk[1]/16%10,0);
  134.                         WRITE_STRING816(6,56, kk[1]%16/10,0);
  135.                         WRITE_STRING816(6,64, kk[1]%16%10,0);

  136.                         WRITE_STRING816(6,80,kk[2]/16/10,0);
  137.                         WRITE_STRING816(6,88,kk[2]/16%10,0);
  138.                         WRITE_STRING816(6,96,kk[2]%16/10,0);
  139.                         WRITE_STRING816(6,104,kk[2]%16%10,0);


  140.                

  141.                         Delay20ms();        //延時
  142.                         flag=0;                        //關顯示
  143.                 }         
  144.         }  
  145. }
復制代碼


回復

使用道具 舉報

7#
ID:70915 發表于 2016-1-29 13:22 | 只看該作者
這么好的帖子,必須頂起!

評分

參與人數 1黑幣 +5 收起 理由
WANGCHONG + 5 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:74428 發表于 2016-3-5 17:40 | 只看該作者
很好的程序,很清晰,
回復

使用道具 舉報

9#
ID:74428 發表于 2016-3-5 18:09 | 只看該作者
樓主您好,我想問下,接收模塊在空閑狀態就是沒有接收數據時,數據口是高電平嗎,jiema()里先出現的是while(wux);                //等待低電平
回復

使用道具 舉報

10#
ID:63997 發表于 2016-3-7 00:30 來自手機 | 只看該作者
yimei11111 發表于 2016-3-5 18:09
樓主您好,我想問下,接收模塊在空閑狀態就是沒有接收數據時,數據口是高電平嗎,jiema()里先出現的是while ...

模塊會收到很多雜波!電平在不停變化 理想情況下 沒有收到數據 時為高電平 收到數據為低電平
回復

使用道具 舉報

11#
ID:58874 發表于 2016-4-2 21:39 | 只看該作者
這么好的帖子,必須頂起!
回復

使用道具 舉報

12#
ID:58874 發表于 2016-4-7 21:40 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

13#
ID:79544 發表于 2016-4-25 12:23 | 只看該作者
樓主你好,你的12864和普通的一樣嗎?.H的文件好像不太一樣?
回復

使用道具 舉報

14#
ID:117521 發表于 2016-4-29 14:47 | 只看該作者
請問樓主用的什么什么接收模塊,超再生還是超外差或者什么?
回復

使用道具 舉報

15#
ID:16663 發表于 2016-5-17 14:26 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

16#
ID:126837 發表于 2016-6-15 14:01 | 只看該作者
謝謝分享,看看能不能用的哈
回復

使用道具 舉報

17#
ID:128677 發表于 2016-6-30 11:07 | 只看該作者
老兄 硬件圖有沒?
回復

使用道具 舉報

18#
ID:127421 發表于 2016-8-5 20:20 | 只看該作者
我黑幣不夠了,55555能發我郵箱嗎?1250175268@qq.com
回復

使用道具 舉報

19#
ID:127421 發表于 2016-8-5 20:22 | 只看該作者
那個解碼顯示的東東,是怎么弄出來的,可以指點一下嗎?
回復

使用道具 舉報

20#
ID:136112 發表于 2016-8-6 09:13 | 只看該作者
對新手來說,沒有多少價值~
回復

使用道具 舉報

21#
ID:136895 發表于 2016-8-16 15:44 | 只看該作者
找了很久  希望這個有用
回復

使用道具 舉報

22#
ID:46830 發表于 2016-9-21 14:10 | 只看該作者
牛人
回復

使用道具 舉報

23#
ID:164901 發表于 2017-2-16 11:42 | 只看該作者
老兄,你真棒,幫了我的大忙
回復

使用道具 舉報

24#
ID:165867 發表于 2017-2-22 00:13 | 只看該作者
可以雙向傳輸嗎
回復

使用道具 舉報

25#
ID:62501 發表于 2017-3-6 14:13 | 只看該作者
多謝樓主的無私分享!
回復

使用道具 舉報

26#
ID:169925 發表于 2017-3-11 18:27 | 只看該作者
請問這個電源是什么樣的要求

不可能用51的io口直接驅動吧

樓主的原理圖里面沒有明確的給出vfd供電的情況,麻煩講一下呢
回復

使用道具 舉報

27#
ID:182940 發表于 2017-3-31 22:32 | 只看該作者
我是新手正在學習使用433模塊,
回復

使用道具 舉報

28#
ID:206774 發表于 2017-9-13 09:26 | 只看該作者
怎么用串口輸出解碼值
回復

使用道具 舉報

29#
ID:196311 發表于 2017-9-15 23:11 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

30#
ID:166543 發表于 2017-12-22 16:45 | 只看該作者
感謝分享,正想做一個433遙控接收程序,沒有頭緒,可以參考這個。
回復

使用道具 舉報

31#
ID:258727 發表于 2017-12-29 20:36 | 只看該作者
感謝分享,買了4套,發現解碼不正確,參考一下樓主的
回復

使用道具 舉報

32#
ID:263813 發表于 2018-1-23 15:53 | 只看該作者
學習了,有模塊,一直不會玩
回復

使用道具 舉報

33#
ID:236699 發表于 2018-2-5 21:06 | 只看該作者
這么好的帖子,必須頂起!
回復

使用道具 舉報

34#
ID:78002 發表于 2018-2-13 12:26 | 只看該作者
正在研究 謝謝!
回復

使用道具 舉報

35#
ID:29579 發表于 2018-2-20 16:22 | 只看該作者

51黑有你更精彩!!,看樓主的程序是一種享受,調理清晰,注釋詳細.
回復

使用道具 舉報

36#
ID:284500 發表于 2018-2-20 20:10 | 只看該作者
很好的學習資料,謝謝樓主。
回復

使用道具 舉報

37#
ID:79034 發表于 2018-3-27 15:54 | 只看該作者
我有一個好習慣,下載了別人的東西就要頂一下?刺斕
回復

使用道具 舉報

38#
ID:276761 發表于 2018-3-27 22:42 | 只看該作者
學習下樓主的程序
回復

使用道具 舉報

39#
ID:330116 發表于 2018-5-15 16:57 | 只看該作者
qq704661078 發表于 2016-1-27 17:15
51黑有你更精彩!!,看樓主的程序是一種享受,調理清晰,注釋詳細.

老師您好,想請問一下    “ D[ i]=D[ i]<<1;  //數據左移一位 然后在接收”,為什么要左移以為呢?
回復

使用道具 舉報

40#
ID:330116 發表于 2018-5-16 09:00 | 只看該作者
        老師您好,請問這里D[i]=D[i]<<1;        為什么要左移一位在接受呢
回復

使用道具 舉報

41#
ID:68691 發表于 2018-7-26 12:13 | 只看該作者
感謝樓主無私奉獻
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99精品视频免费观看 | 午夜视频免费在线观看 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 在线看片网站 | 免费午夜视频 | 国产在线中文字幕 | av在线免费观看不卡 | 色网在线看 | 中文字幕乱码一区二区三区 | 91视频三区 | 最新国产在线 | 91av视频在线观看 | 亚洲一二三区精品 | 国产一区二区三区四区五区加勒比 | xx性欧美肥妇精品久久久久久 | 在线一区视频 | 国产欧美精品一区二区色综合朱莉 | 黄色毛片在线播放 | 欧美精品1区2区3区 精品国产欧美一区二区 | 日韩一区二区在线视频 | 日本免费黄色一级片 | 性一爱一乱一交一视频 | 一区二区三区不卡视频 | 最新国产视频 | 国产一区二区影院 | 欧美不卡一区二区三区 | 国产高清在线精品一区二区三区 | 中文字幕一区二区不卡 | 国产日屁 | 中文字幕在线精品 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 亚洲一区二区免费电影 | 精品久久久久久久久久久久 | 欧美国产视频 | 五月婷婷丁香婷婷 | 国产日韩精品一区 | 久久精品国产免费高清 | 一a一片一级一片啪啪 | 精品视频一区二区三区在线观看 | 91 在线 | 中文字幕精品一区二区三区精品 |