|
|
先上一個(gè)PT2262的發(fā)射電路原理圖,一般應(yīng)用 中,1腳 至 8腳做為地址編碼,10腳 至 13腳做為四個(gè)按鍵來(lái)使用;
發(fā)射電路原理圖.jpg (166.94 KB, 下載次數(shù): 52)
下載附件
2022-9-2 09:04 上傳
網(wǎng)上好多此類(lèi)代碼和文章,其中有些地方對(duì)于剛接觸的來(lái)說(shuō)不甚理解,在此我對(duì)在學(xué)習(xí)此類(lèi)解碼程序時(shí)遇到的不解再來(lái)簡(jiǎn)要的分析一下:比如解釋代碼時(shí)談到的 32a 128a是個(gè)什么意思。先看下圖:
編碼.jpg (221.21 KB, 下載次數(shù): 76)
下載附件
2022-9-2 10:59 上傳
振蕩頻率與碼位時(shí)長(zhǎng)的關(guān)系.png (68.6 KB, 下載次數(shù): 64)
下載附件
2022-9-2 10:59 上傳
從圖中可以知道一個(gè)編碼0(引腳接負(fù)極)、1(引腳接正極) 、F(引腳懸空)(也就是PT2262一個(gè)編碼引腳的狀態(tài))占用32a,,,,a是啥,a是一個(gè)時(shí)鐘周期“T” ,時(shí)鐘是怎么來(lái)的? 15腳和16腳串接的OSC電阻產(chǎn)生的。 阻值決定了PT2262的振蕩頻率。廠家給出的計(jì)算公式:(頻率KHZ)F=2*1000*16/Rosc(單位 K歐).
利用一個(gè)簡(jiǎn)易的虛擬示波器來(lái)完成我們的實(shí)驗(yàn)講解:
虛擬示波器.jpg (307.64 KB, 下載次數(shù): 71)
下載附件
2022-9-2 10:59 上傳
得到遙控器的完整波形,見(jiàn)下圖:
2262波形——總波形.jpg (369.9 KB, 下載次數(shù): 56)
下載附件
2022-9-2 10:59 上傳
圖3
是不是一下子不能看懂呢?沒(méi)關(guān)系慢慢來(lái),先說(shuō)同步頭,它由一個(gè)4a高電平和124a低電平組成,在代碼中只對(duì)124a低電平進(jìn)行判斷,給這個(gè)低電平
限定一個(gè)范圍,超出這個(gè)時(shí)間范圍的低電平不是同步頭的低電平:
- <font color="#ff00ff">if((L > 400)&&(L < 29000UL))//2360) </font> //確認(rèn)是引導(dǎo)頭(判斷同步位低電平時(shí)長(zhǎng)31a)
復(fù)制代碼 a值怎么得到或是怎么計(jì)算呢,實(shí)際應(yīng)用中,根據(jù)PT2262的OSC計(jì)算公式得到a值誤差比較大,再著像SX2262,SC2262等不同型號(hào)的IC使用相同OSC電阻產(chǎn)生的頻率也不盡相同,所以在代碼中做了一個(gè)范圍的判斷,只要在此范圍內(nèi)的值就判定為正確。
通過(guò)示波器我們來(lái)實(shí)際計(jì)算一下a的值,由同步頭低電平124a 和 一個(gè)引腳編碼的32a 來(lái)相互印證一下,以加深對(duì)這個(gè)點(diǎn)的理解:
同步頭.jpg (185.77 KB, 下載次數(shù): 68)
下載附件
2022-9-2 11:00 上傳
首先是同步頭的低電平 124a ,通過(guò)在虛擬示波器中放置X1標(biāo)志位(2.66ms),X2標(biāo)志位(4.92ms)......4.92-2.66=2.26ms =2260us所以124a≈2260us;
一個(gè)編碼32a.jpg (156.25 KB, 下載次數(shù): 68)
下載附件
2022-9-2 11:01 上傳
然后用同樣的方法得到PT2262第1腳編碼脈寬32a 即X2-X1≈568us
相互印證計(jì)算:a = 568/32 ≈ 17.75 17.75*124 = 2201us 2201 ≈ 2260(同步頭124a) 這里的誤差在實(shí)際應(yīng)用中忽略不計(jì);
接下來(lái)說(shuō)一下,編碼格式和解碼思路。
PT2262 地址編碼(1腳 - 8腳)有三種狀態(tài):接負(fù)極 、接正極 、懸空 。它們所產(chǎn)生的編碼狀態(tài)為:00 、11、01;按鍵編碼:只有00或11兩種。
完整編碼的組成:同步頭+地址碼(16位)+按鍵碼(8位)
同步頭結(jié)束以后,就會(huì)有24位的脈沖;見(jiàn)(圖3)中的P1 - P8 代表芯片的1腳到8腳的編碼16個(gè)脈沖,后邊的10 - 13 代表10腳 -13腳的編碼8個(gè)脈沖;
單片機(jī)解碼要完成的任務(wù)是:找到同步頭,然后再接收24位脈沖數(shù)據(jù),計(jì)算出地址編碼和按鍵狀態(tài),完成任務(wù)。
要完成這個(gè)任務(wù),要用到定時(shí)器,它來(lái)負(fù)責(zé)對(duì)無(wú)線(xiàn)接收頭送過(guò)來(lái)的高低電平進(jìn)行精確計(jì)時(shí);
定時(shí)器怎么來(lái)用呢?
1、不使用定時(shí)器中斷;
2、初始值為0,一切從0開(kāi)始;
3、電平變化時(shí)打開(kāi)定時(shí)器計(jì)時(shí),電平再次變化時(shí)停止定時(shí)器,得到定時(shí)器的計(jì)時(shí)時(shí)間;
地址編碼和按鍵狀態(tài)的計(jì)算:
在代碼中:變量yinjiao[1]接收同步頭后第1-8個(gè)脈沖; (第一腳到第四腳的狀態(tài)編碼)
變量yinjiao[2]接收同步頭后第9-16個(gè)脈沖; (第五腳到第八腳的狀態(tài)編碼)
變量yinjiao[3]接收同步頭后第17-24個(gè)脈沖; (第十腳到第十三腳的按鍵狀態(tài)編碼)
- //計(jì)算2262 加密腳電平
- abc[0]=yinjiao[2]&0xc0; //pt2262 第 8 腳狀態(tài)
- abc[1]=yinjiao[2]&0x30; //pt2262 第 7 腳狀態(tài)
- abc[2]=yinjiao[2]&0x0C;
- abc[3]=yinjiao[2]&0x03;
- abc[4]=yinjiao[1]&0xC0;
- abc[5]=yinjiao[1]&0x30;
- abc[6]=yinjiao[1]&0x0C;
- abc[7]=yinjiao[1]&0x03; //pt2262 第 1 腳狀態(tài)
復(fù)制代碼- switch(yinjiao[0])//鍵值碼
- {
- case 0xC0: //PT2262的10腳按鍵按下時(shí)
-
- yinjiao[3]=10;
- break;
- case 0x30: //PT2262的11腳按鍵按下時(shí)
- yinjiao[3]=11;
-
- break;
- case 0x0C: //PT2262的12腳按鍵按下時(shí)
- yinjiao[3]=12;
- break;
- case 0x03: //PT2262的13腳按鍵按下時(shí)
- yinjiao[3]=13;
-
-
- break;
- }
復(fù)制代碼 代碼流程導(dǎo)圖:
思維導(dǎo)圖.png (35.4 KB, 下載次數(shù): 69)
下載附件
2022-9-2 11:04 上傳
PT2262(組合EV1527)解碼源程序C文件:
PT2262EV1527解碼.rar
(1.8 MB, 下載次數(shù): 78)
2022-9-2 11:10 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
虛擬示波器源代碼(含TFT驅(qū)動(dòng))原理圖:
示波器源代碼包含TFT驅(qū)動(dòng).rar
(1.22 MB, 下載次數(shù): 48)
2022-9-2 10:54 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|