找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4391|回復: 14
收起左側(cè)

PT2262單片機解碼程序淺析 一點進步也是進步(附代碼)

  [復制鏈接]
ID:68189 發(fā)表于 2022-9-2 11:06 | 顯示全部樓層 |閱讀模式
先上一個PT2262的發(fā)射電路原理圖,一般應用 中,1腳 至 8腳做為地址編碼,10腳 至 13腳做為四個按鍵來使用;
發(fā)射電路原理圖.jpg

網(wǎng)上好多此類代碼和文章,其中有些地方對于剛接觸的來說不甚理解,在此我對在學習此類解碼程序時遇到的不解再來簡要的分析一下:比如解釋代碼時談到的 32a  128a是個什么意思。先看下圖:
編碼.jpg

振蕩頻率與碼位時長的關(guān)系.png
      從圖中可以知道一個編碼0(引腳接負極)、1(引腳接正極) 、F(引腳懸空)(也就是PT2262一個編碼引腳的狀態(tài))占用32a,,,,a是啥,a是一個時鐘周期“T” ,時鐘是怎么來的? 15腳和16腳串接的OSC電阻產(chǎn)生的。 阻值決定了PT2262的振蕩頻率。廠家給出的計算公式:(頻率KHZ)F=2*1000*16/Rosc(單位 K歐).
      利用一個簡易的虛擬示波器來完成我們的實驗講解:
虛擬示波器.jpg
      得到遙控器的完整波形,見下圖:
2262波形——總波形.jpg

                               圖3
     是不是一下子不能看懂呢?沒關(guān)系慢慢來,先說同步頭,它由一個4a高電平和124a低電平組成,在代碼中只對124a低電平進行判斷,給這個低電平
限定一個范圍,超出這個時間范圍的低電平不是同步頭的低電平:
  1. <font color="#ff00ff">if((L > 400)&&(L < 29000UL))//2360)   </font>       //確認是引導頭(判斷同步位低電平時長31a)
復制代碼
    a值怎么得到或是怎么計算呢,實際應用中,根據(jù)PT2262的OSC計算公式得到a值誤差比較大,再著像SX2262,SC2262等不同型號的IC使用相同OSC電阻產(chǎn)生的頻率也不盡相同,所以在代碼中做了一個范圍的判斷,只要在此范圍內(nèi)的值就判定為正確
     通過示波器我們來實際計算一下a的值,由同步頭低電平124a   和   一個引腳編碼的32a  來相互印證一下,以加深對這個點的理解:
同步頭.jpg
    首先是同步頭的低電平  124a  ,通過在虛擬示波器中放置X1標志位(2.66ms),X2標志位(4.92ms)......4.92-2.66=2.26ms =2260us所以124a≈2260us;
一個編碼32a.jpg
  然后用同樣的方法得到PT2262第1腳編碼脈寬32a  即X2-X1≈568us   
  相互印證計算:a = 568/32  ≈ 17.75       17.75*124  = 2201us           2201  ≈   2260(同步頭124a)    這里的誤差在實際應用中忽略不計;

  接下來說一下,編碼格式和解碼思路。
  PT2262 地址編碼(1腳 - 8腳)有三種狀態(tài):接負極  、接正極 、懸空  。它們所產(chǎn)生的編碼狀態(tài)為:00 、11、01;按鍵編碼:只有00或11兩種。
  完整編碼的組成:同步頭+地址碼(16位)+按鍵碼(8位)
      同步頭結(jié)束以后,就會有24位的脈沖;見(圖3)中的P1  -    P8  代表芯片的1腳到8腳的編碼16個脈沖,后邊的10 -  13 代表10腳 -13腳的編碼8個脈沖;
      單片機解碼要完成的任務是:找到同步頭,然后再接收24位脈沖數(shù)據(jù),計算出地址編碼和按鍵狀態(tài),完成任務。
要完成這個任務,要用到定時器,它來負責對無線接收頭送過來的高低電平進行精確計時;
      定時器怎么來用呢?
      1、不使用定時器中斷;
      2、初始值為0,一切從0開始;
      3、電平變化時打開定時器計時,電平再次變化時停止定時器,得到定時器的計時時間


     地址編碼和按鍵狀態(tài)的計算:
        在代碼中:變量yinjiao[1]接收同步頭后第1-8個脈沖;      (第一腳到第四腳的狀態(tài)編碼)
                        變量yinjiao[2]接收同步頭后第9-16個脈沖;    (第五腳到第八腳的狀態(tài)編碼)
                        變量yinjiao[3]接收同步頭后第17-24個脈沖;   (第十腳到第十三腳的按鍵狀態(tài)編碼)
  1. //計算2262 加密腳電平
  2.                                              abc[0]=yinjiao[2]&0xc0; //pt2262 第 8 腳狀態(tài)
  3.                                              abc[1]=yinjiao[2]&0x30; //pt2262 第 7 腳狀態(tài)
  4.                                              abc[2]=yinjiao[2]&0x0C;
  5.                                              abc[3]=yinjiao[2]&0x03;
  6.                                              abc[4]=yinjiao[1]&0xC0;
  7.                                              abc[5]=yinjiao[1]&0x30;
  8.                                              abc[6]=yinjiao[1]&0x0C;
  9.                                              abc[7]=yinjiao[1]&0x03;  //pt2262 第 1 腳狀態(tài)
復制代碼
  1. switch(yinjiao[0])//鍵值碼
  2.                                          {
  3.                                                  case 0xC0:    //PT2262的10腳按鍵按下時
  4.                                                         
  5.                                                    yinjiao[3]=10;   
  6.                                                          break;
  7.                                                  case 0x30:    //PT2262的11腳按鍵按下時
  8.                                                    yinjiao[3]=11;
  9.                                                         
  10.                                                          break;   
  11.                                                  case 0x0C:    //PT2262的12腳按鍵按下時
  12.                                                   yinjiao[3]=12;
  13.                                                         break;   
  14.                                                  case 0x03:    //PT2262的13腳按鍵按下時
  15.                                                   yinjiao[3]=13;
  16.                                                         
  17.                                                         
  18.                                                          break;   
  19.                                          }               
復制代碼
代碼流程導圖:
思維導圖.png

PT2262(組合EV1527)解碼源程序C文件: PT2262EV1527解碼.rar (1.8 MB, 下載次數(shù): 78)
虛擬示波器源代碼(含TFT驅(qū)動)原理圖: 示波器源代碼包含TFT驅(qū)動.rar (1.22 MB, 下載次數(shù): 48)

評分

參與人數(shù) 2黑幣 +54 收起 理由
STC莊偉 + 4 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:961114 發(fā)表于 2022-9-3 09:44 | 顯示全部樓層
樓主實力派了,解釋的很詳細
回復

使用道具 舉報

ID:1038726 發(fā)表于 2022-9-3 09:48 | 顯示全部樓層
就讓 STC 送 百萬 開天斧給大學
回復

使用道具 舉報

ID:1042619 發(fā)表于 2022-9-3 09:49 | 顯示全部樓層
樓主威武!我也剛拿到官方送的STC32G12K128示波器,趁熱打鐵,下午調(diào)試STC32G12K128 USB-CDD 通信
回復

使用道具 舉報

ID:970790 發(fā)表于 2022-9-3 12:18 | 顯示全部樓層
謝謝分享,很實用的的帖子。
回復

使用道具 舉報

ID:1043860 發(fā)表于 2022-9-5 09:50 | 顯示全部樓層
您好,樓主這個探針 和 焊接到板子上面的元器件在哪買到的
回復

使用道具 舉報

ID:961114 發(fā)表于 2022-9-7 17:00 | 顯示全部樓層
聰聰哥哥 發(fā)表于 2022-9-5 09:50
您好,樓主這個探針 和 焊接到板子上面的元器件在哪買到的

STC官方可以免費申請這個建議示波器,探針可以去淘一下吧
回復

使用道具 舉報

ID:68189 發(fā)表于 2022-9-15 09:11 | 顯示全部樓層
STC莊偉 發(fā)表于 2022-9-7 17:00
STC官方可以免費申請這個建議示波器,探針可以去淘一下吧

某一個寶搜索:3.2寸高清TFTLCD顯示屏 直插ARDUINO MEGA2560板 320*480點陣彩屏  可以找到配套的TFT顯示屏ILI9481驅(qū)動的那個。
回復

使用道具 舉報

ID:1042702 發(fā)表于 2022-12-5 09:30 | 顯示全部樓層
寫的太好了,可以好好學習了 很實用的帖子,分析的很詳細呢~可以實際用在工程開發(fā) 示波器測量了
回復

使用道具 舉報

ID:914666 發(fā)表于 2023-5-22 16:04 | 顯示全部樓層
感謝分享,51hei有你更精彩
回復

使用道具 舉報

ID:433219 發(fā)表于 2023-5-23 16:30 | 顯示全部樓層
  發(fā)射tb買現(xiàn)成的,接收就五花八門了
回復

使用道具 舉報

ID:60026 發(fā)表于 2023-6-15 11:52 | 顯示全部樓層
謝謝分享!先記號一下
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表