|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于pt2262的軟解碼問題請教 |
| 作者:xyq888 欄目:單片機(jī) |
我想用51單片機(jī)去解PT2262的發(fā)射碼,我調(diào)了很久,一直搞不定, 下面是源程序,我想通過檢測124A的同步信號的低電平來判斷一 組碼的開始,約18ms。請各位大蝦多多指教。多謝!!! /* ******************************************************************* * * PT2262電阻用4.7M * 單片機(jī)時鐘用6M * ******************************************************************* */ #include <REG51.H> /* special function register declarations */ #include <stdio.h> /* prototype declarations for I/O functions */ #include <INTRINS.H> #define debug 1 #define dprintf if(debug) printf //#define MONITOR51 #ifdef MONITOR51 /* Debugging with Monitor-51 needs */ CHAR code reserve [3] _at_ 0x23; /* space for serial interrupt if */ #endif /* Stop Exection with Serial Intr. */ /* is enabled */ /*macro definition*/ sbit LED=P1^0; sbit IR=P1^1; sbit WIR=P1^4; /*function declaration*/ void UART_initial(void); #define BUF_MAX 24 /*******************************************************************/ void main (void) { unsigned CHAR i=0; unsigned int j=0; unsigned int buffer[BUF_MAX]; unsigned int tmp; /*com initial*/ UART_initial(); WIR = 1; LED = 1; TMOD &= 0xf1; dprintf("start\n"); while(1) { TH0 = 0; TL0 = 0; while(!WIR); //wait for 1 -start--| |---- while(WIR); //wait for 0; |____?____| sync TR0 = 1; while(!WIR); //wait for 1; TR0 = 0; tmp = ((unsigned int)TH0<<8 | (unsigned int)TL0)<<1; //dprintf("%x|%x|%x\n",tmp,(unsigned int)TH0,(unsigned int)TL0); LED = !LED; //for TEST if(tmp < 18000) { continue; } LED = 1; TH0 = 0; TL0 = 0; while(WIR); //wait for 0 |--?--| while(!WIR); //wait for 1 __| |___ TR0 = 1; while(WIR); //wait for 0; TR0 = 0; tmp = ((unsigned int)TH0<<8 | (unsigned int)TL0)<<1; if(tmp < 580) { goto LOOP; } //-----------------A1------------------------ /*Read Level*/ TH0 = 0xfe; //delay 587us 4a TL0 = 0xda; TR0 = 1; while(!TF0); //wait Timer time out TR0 = 0; TF0 = 0; buffer[i] = (int)WIR; //printf("1-buffer[%d]=%d\n",i,buffer[i]); //----------------A2------------------------ /*Read Level*/ TH0 = 0xfc; //delay 1762us 12a TL0 = 0x8f; TR0 = 1; while(!TF0); //wait Timer time out TR0 = 0; TF0 = 0; buffer[i+1] = (int)WIR; |
| 2樓: | >>參與討論 |
| 作者: avr8051 于 2005/5/21 8:31:00 發(fā)布:
本人已知道解碼原理 我已知道解碼原理 我已經(jīng)成功解碼(晶振11.0592M,PT2262.html">PT2262電阻用3.3M),并接線調(diào)試成功。 改用其它晶振和電阻,原理是一樣的。 只要改變源程序內(nèi)關(guān)于時間的語句。 本人在“供需廣告”欄,發(fā)帖出售與PT2262有關(guān)的一個方案。 需購買的話,可聯(lián)系: QQ:343710354 Email: avr8051@163.com 該方案僅出售給個人研究與學(xué)習(xí)。 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |