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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2635|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

請教433M無線遙控調(diào)試問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:609560 發(fā)表于 2019-11-6 10:27 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
請教各位論壇大神

我在學(xué)習(xí)433 遙控時不知怎麼調(diào)試(單片機(jī)使用的是STC89C52RC)
兩種接收模塊芯片WS480L  SYN531R
網(wǎng)上買的,賣家只提供了IC規(guī)格書,其他的他也不清楚
請教模塊數(shù)據(jù)輸出端直接接單片機(jī)IO口嗎?數(shù)據(jù)引腳有兩個,用萬用表測時導(dǎo)通的。
我用WS480L 模塊輸出端接NPN三極管基極,驅(qū)動LED,LED光線一直較暗閃爍,按下遙控時LED閃爍光線較強(qiáng)。這樣模塊是好的嗎?
SYN531R用手捏住數(shù)據(jù)線時,現(xiàn)象同WS480L ,不捏住時沒反應(yīng),中間使用20cm的杜邦線連接的。


遙控器參數(shù)如下:
遙控發(fā)送為25位(不知是否還需要引導(dǎo)位,提供的波形圖上沒有引導(dǎo)位)
地址位(8)+地址位(8)+數(shù)據(jù)位(8)+結(jié)束位(1)
每楨間隔12ms
數(shù)據(jù)先高后低
0: 0.4ms+1.2ms
1:1.2ms+0.4ms
原解碼思路是用中斷檢測數(shù)據(jù)上升跳變沿啟動定時器,定時器0.8ms時檢測數(shù)據(jù)口,記錄數(shù)據(jù)並關(guān)閉定時器。等待25位數(shù)據(jù)接收完成標(biāo)誌數(shù)據(jù)接收完成位,後提取數(shù)據(jù)再比對數(shù)據(jù)判斷按鍵值
現(xiàn)無數(shù)據(jù)時數(shù)據(jù)口一直在變化(LED閃爍),如此上面思路可能行不通了

請教大神們?nèi)绾握{(diào)試,如分幾步,每步做什麼,怎麼判斷,解碼思路。網(wǎng)上論壇也看過相關(guān)資料,還是一頭霧水
望各位幫忙解惑。謝謝!

5_739_1497914_568_800.jpg (50.26 KB, 下載次數(shù): 38)

5_739_1497914_568_800.jpg

WS480L.jpg (41.46 KB, 下載次數(shù): 34)

WS480L.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:94031 發(fā)表于 2019-11-10 10:59 | 只看該作者
既然買到的是模塊就按模塊的說明來調(diào)試,有載波時DO輸出高電平,沒有收到載波時輸出無規(guī)則方波。
回復(fù)

使用道具 舉報

板凳
ID:155507 發(fā)表于 2019-11-10 11:40 | 只看該作者
我給你來個程序參考

  1. /*
  2. 這是解碼的51程序在1602上顯示

  3. */
  4. #include <reg52.h>
  5. #include <intrins.h>
  6. #define uchar unsigned char
  7. #define uint unsigned int
  8. sbit DATA=P3^3;     //DO輸出
  9. sbit rs=P3^6;          //1602引腳定義
  10. sbit rw=P3^5;
  11. sbit e=P3^7;
  12. uchar dat,num;

  13. uchar code table[]="0123456789ABCDEF";
  14. uchar code table1[]="Receive:";        //液晶固定部分顯示
  15. uchar code table2[]="Re_data:0x";

  16. void write_data (uchar dat);         //1602寫數(shù)據(jù)
  17. void write_com (uchar com);         //1602寫命令
  18. uchar pow(uchar n,uchar m);//n的m次方函數(shù)
  19. uchar receive(void);                          //接收處理函數(shù)  
  20. void gd();                        //液晶固定部分顯示

  21. void delay (uint xms)        //1602延時
  22. {
  23.         uint i,j;
  24.         for (i = xms; i > 0; i--)
  25.            for (j = 110; j > 0; j--);
  26. }

  27. void delay1(uchar t)//延時程序
  28. {
  29.         uchar n;
  30.         for(;t>0;t--)
  31.            for(n=40;n>0;n--);  
  32. }

  33. uchar pow(uchar n,uchar m)//n的m次方函數(shù)
  34. {
  35.         uchar t,result=1;
  36.         for(t=0;t<m;t++)
  37.         {result=n*result;}
  38.         return result;
  39. }

  40. void init_1602()
  41. {
  42.         e = 0;        //1602初始化
  43.         write_com (0x38);
  44.         write_com (0x0c);
  45.         write_com (0x06);
  46.         write_com (0x01);
  47.         gd();
  48. }

  49. /*1602液晶代碼部分        ------------------------------ */
  50. void write_com (uchar com)        //寫命令
  51. {
  52.         rs = 0;
  53.         rw = 0;
  54.         P0 = com;
  55.         delay (5);
  56.         e = 1;
  57.         delay (5);
  58.         e = 0;
  59. }

  60. void write_data (uchar dat)         //寫數(shù)據(jù)
  61. {
  62.         rs = 1;
  63.         rw = 0;
  64.         P0 = dat;
  65.         delay (5);
  66.         e = 1;
  67.         delay (5);
  68.         e = 0;
  69. }

  70. void gd()        //液晶固定部分顯示
  71. {
  72.         write_com(0x80);
  73.         for(num=0;num<8;num++)
  74.         {
  75.                 write_data(table1[num]);
  76.                 delay(5);
  77.         }
  78.         write_com(0x80+0x40);
  79.         for(num=0;num<10;num++)
  80.         {
  81.                 write_data(table2[num]);
  82.                 delay(5);
  83.         }
  84. }

  85. uchar receive(void)//接收處理函數(shù)
  86. {
  87.         uchar guid=0,result[12],i,key=0,res=0,t,time=0;
  88.         while(1)//捕獲前導(dǎo)命令
  89.         {
  90.                 while(DATA==1)
  91.                 {
  92.                         t++;
  93.                         if(t>=90)
  94.                         {
  95.                                
  96.                                 delay1(100);
  97.                                 return 0;
  98.                         }
  99.                 }//防止錯誤數(shù)據(jù)導(dǎo)致的死循環(huán)
  100.                 if(t>=60&&t<95)
  101.                 {
  102.                         t=0;
  103.                         key++;
  104.                         time=0;
  105.                         if(key>3)
  106.                         break;
  107.                 }//獲得前導(dǎo)命令跳出循環(huán),清除計時信號
  108.                 else
  109.                 if(time>100)
  110.                 {
  111.                        
  112.                         delay1(100);
  113.                         return 0;
  114.                 }//長0,錯誤信號返回0
  115.                 else {t=0;time++;}//計時壘加,清除t
  116.         }  
  117.         t=0;
  118.         time=0;
  119.         for(i=1;i<13;)             //校驗碼及數(shù)據(jù)的接收共12位數(shù)據(jù)
  120.         {
  121.                 while(DATA==1)
  122.                 {
  123.                         t++;
  124.                         if(t>=95)
  125.                         {
  126.                                
  127.                                 delay1(100);
  128.                                 return 0;
  129.                         }
  130.                 }//防止錯誤信號導(dǎo)致的死循環(huán)
  131.                 if(t>=60&&t<95)
  132.                 {
  133.                         t=0;i=1;time=0;
  134.                 }//去除多余的前導(dǎo)命令
  135.                 else
  136.                 if(t>=28&&t<60)
  137.                 {
  138.                         result[i-1]=1;i++;time=0;
  139.                 }//捕獲數(shù)據(jù)1
  140.                 else
  141.                 if(t>0&&t<27)
  142.                 {result[i-1]=0;i++;time=0;}//捕獲數(shù)據(jù)0
  143.                 if(time>100)
  144.                 return 0; //消除長0的干擾確保數(shù)據(jù)正確
  145.                 t=0;   //清零
  146.                 time++;//計時        
  147.         }
  148.         if(result[0]==1&&result[1]==0&&result[2]==1&&result[3]==0)//判斷校驗碼
  149.         for(i=0;i<8;i++)
  150.         {
  151.                 res+=pow(2,i)*result[11-i];
  152.         }//將結(jié)果轉(zhuǎn)換為十進(jìn)制數(shù)據(jù)
  153.         return res;//返回得到的結(jié)果
  154. }

  155. void display(uchar dat)        //液晶數(shù)據(jù)顯示
  156. {
  157.         uchar a,b;
  158.         a=dat/16;
  159.         b=dat%16;
  160.         if(a>9)
  161.         a=a+0;
  162.         if(b>9)
  163.         b=b+0;
  164.         write_com(0x80+0x4A);
  165.         write_data(table[a]);delay(5);
  166.         write_data(table[b]);delay(5);
  167. }

  168. void main()
  169. {
  170.         init_1602();        //1602初始化
  171.         while(1)
  172.         {
  173.                 dat=receive();
  174.                 if(dat)                                  //顯示
  175.                 {
  176.                         write_com(0x80+0x08);
  177.                         write_data('O');delay(5);
  178.                         write_data('K');delay(5);
  179.                         write_data('!');delay(5);
  180.                         display(dat);
  181.                 }
  182.                 else
  183.                 {
  184.                         write_com(0x80+0x08);
  185.                         write_data('N');delay(5);
  186.                         write_data('O');delay(5);
  187.                         write_data('!');delay(5);
  188.                         write_com(0x80+0x4A);
  189.                         write_data(' ');delay(5);
  190.                         write_data(' ');delay(5);
  191.                 }
  192.         }
  193. }

復(fù)制代碼

回復(fù)

使用道具 舉報

地板
ID:387856 發(fā)表于 2019-11-15 20:07 | 只看該作者
angmall 發(fā)表于 2019-11-10 11:40
我給你來個程序參考

請教一下  您寫的這個參考程序 ,在主程序的while(1)中 用到了那么多delay(5),那解碼的成功率是不是會很低呢,我的理解啊,假如剛好在write_data('N');delay(5);這里我按下遙控器,是不是下面還有好幾個delay(5),當(dāng)再次運行到 dat=receive();data端檢測到的電平一定不是正確的了,那不是解碼就錯誤了呢
回復(fù)

使用道具 舉報

5#
ID:25310 發(fā)表于 2019-11-16 08:50 | 只看該作者
你這是按紅外線編碼的吧,有沒試過直接發(fā)串口數(shù)據(jù)啊,我也是猜測的,這樣進(jìn)串口解碼方便些。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区精品自拍 | 欧美日韩一区二区在线播放 | 精品免费 | 久久亚洲国产精品日日av夜夜 | 黄网站涩免费蜜桃网站 | 欧美久久不卡 | 91免费看片 | 欧美午夜精品久久久久免费视 | 一区二区三区在线播放 | 亚洲国产小视频 | 涩涩视频网 | 欧美自拍一区 | 色偷偷噜噜噜亚洲男人 | 国产91久久久久 | 国产一区二区成人 | 国产精品久久久久久久久免费高清 | 日本不卡一区二区三区在线观看 | 极品在线 | 久久精品国产一区 | 性欧美精品一区二区三区在线播放 | 天天草天天干 | 精品99在线 | 欧美视频一区二区三区 | 日韩av免费看 | 日韩在线免费电影 | 亚洲一区二区三区在线播放 | 国产精品免费视频一区 | 日本不卡高字幕在线2019 | 国产精品精品视频一区二区三区 | 一级视频在线免费观看 | 亚洲一区二区中文字幕在线观看 | 精品国产乱码久久久久久蜜柚 | 精品亚洲国产成av人片传媒 | 久久精品一区二区三区四区 | 日韩看片 | 亚洲v区 | 中文字幕欧美日韩 | 日本理论片好看理论片 | 国产欧美综合在线 | 毛片高清 | 国产激情一区二区三区 |