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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PT2262遙控器的單片機軟件解碼(省去PT2272)

  [復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-2-24 21:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本文中用到的PT2262/PT2272芯片是一對遙控收發的芯片,關于她的中文資料可以參考:http://m.zg4o1577.cn/bbs/dpj-44498-1.html
()、遙控器基本知識
遙控器種類很多,常見的有電視遙控器,汽車遙控器,卷簾門遙控器,空調遙控器,航模遙控器等等,按載波分類可以分為紅外線遙控器,無線電遙控器,超聲波遙控器等,紅外線遙控的特點適用于室內,短距離的情況,功耗小,成本低,無線電遙控適用于遠距離,室外情況下,成本高一些。其實我們每天都在和遙控器打交道,大部分人只知道使用這些遙控器,除非專業人員很少有人知道它的工作原理。

1、 遙控器的組成

下圖是用PT2262編碼的遙控器電路。
下圖是紅外線載波的電視機遙控器電路。

由上圖可知遙控器一般是由按鍵電路,編碼電路,發射電路及電源等組成。
無線發射電路是由三極管加上電阻,電容,三極管,聲表面濾波器,天線組成。紅外線發射電路比較簡單,由電阻、三極管和紅外線發射管組成。
編碼電路主要由編碼芯片完成,每個遙控器上面的編碼都是通過集成電路芯片來完成的。只要我們按下按鍵,編碼將通過發射電路以無線的形式發送出去。
2、編碼芯片分類:
1)按編碼類別分
固定碼:所謂的固定碼,就是指每次發送出去的編碼都不會改變,因此使用這類芯片的遙控器比較容易被復制。如PT2262PT2260 PT2240  Ev1527  FP527 HT6014 SMC918等芯片。
滾動碼:所謂滾動碼,就是指每次發出去的碼都不一樣,通過一系列算法,完成滾動輸出的功能。這類芯片的遙控器復制比較困難,可以通過移值,或者已破解過的遙控器來完成復制工作。如HCS301 HC300  HCS201 HCS200  HCS361等芯片。
2)按編碼方式分
可變型:就是編碼可通過人工手動修改。如PT2262編碼集成電路,它有18個腳。它的1--8腳屬于地址編碼端,可以進行三態編碼,就是一只腳可以是三種狀態,即:接低電平(0)、高電平(1)、或懸空(F)三種狀態,編碼數有38次方,也就是共有6561種狀態。這是一般的用法。PT2262還有4支腳,就是10111213,一般它是用來做數據端。它也可以編碼,但是編碼就只有兩種狀態:低電平(0)、高電平(1),沒有懸空這種狀態了。下面1圖中的編碼區編碼是A0—A7都懸空,也就是A0=FA1=FA2=FA3=FA4=FA5=FA6=FA7=F,下面2圖中的編碼是A0=0A1=FA2=0A3=0A4=1A5=0A6=1A7=F,所以通過改變編碼器的焊點就改變了地址編碼。


固定型:指芯片出廠時由廠家固化好編碼在芯片里面。如PT2240 SMC918  EV1527等。
3、 遙控器的解碼
我們通常使用的遙控器是指發射編碼的一方,被遙控的物品應該是接收方,當接收方收到遙控信號后,需要解碼才能達到遙控的目的。接收端的解碼方式有硬件解碼和軟件解碼,比如PT2262是編碼芯片,PT2272是解碼芯片,當PT2262和PT2272配對使用時,要求發送端編碼芯片PT2262的地址編碼與接收端解碼芯片PT2272的地址編碼必須一致,而且振蕩頻率相匹配,才能達到遙控目的。參見下表PT2262的震蕩電阻如果采用1.2M,那么PT2272的震蕩電阻就要采用200K才行。


如果采用軟件解碼,就可以省去PT2272這個芯片了。用軟件編程的方法解碼,必須知道該編碼芯片的編碼格式。比如PT2262發出的編碼由地址碼、數據碼、同步碼組成。地址碼和數據碼都用寬度不同的脈沖來表示,兩個窄脈沖表示“0”;兩個寬脈沖表示“1”;一個窄脈沖和一個寬脈沖表示“F”(“懸空”)。

(二)、PT2262 編碼芯片的軟件解碼
1、單片機解碼電路


單片機解碼電路由128*64液晶顯示屏,AT89C51單片機,AT24C512存儲器,CD40106,315M收發模塊和433M收發模塊組成。液晶顯示屏用于顯示參數和解碼后的結果,存儲器用于保存解碼數據,CD40106由六個施密特觸發器電路組成。每個電路均為在兩輸入端具有施密特觸發器功能的反相器,CD40106用于改善波形并對波形反相的作用,因為大部分無線遙控器都是采用315MHZ和433Mhz的無線電頻率,所以采用了這2種頻率的收發模塊,用于接收待解碼的無線電信號,實物如下圖。

2解碼原理

上圖是 PT2262編碼芯片的編碼格式,PT2262輸出數據的順序:A0A1A2A3A4A5A6A7D0D1D2D3同步碼 A0A1A2A3A4A5A6A7D0D1D2D3同步碼……,連續發四次。每組編碼之間由同步碼隔開,同步碼低電平寬度是窄脈沖寬度(4T)的31倍(124T),用單片機軟件解碼時,程序只要判斷出同步碼,然后對后面的字碼進行脈沖寬度識別即可。2262每次發射時至少發射4 組字碼,我們只需連續兩次檢測到相同的地址碼加數據碼就可以了。
  不同公司的2262,振蕩電阻一樣,PT2262的振蕩頻率會有區別,估算公式f=2*1000*16/Rosc(kΩ) kHz其中Rosc 為振蕩電阻這里我們選用Rosc=4.7MΩ,頻率f≈6.8kHz,。T=1/f≈147微秒,同步脈沖的寬度是124T=18228微秒,由上圖可見數據“0”是2個(4T=588微秒)短脈沖,間隔(12T=1764微秒)低電平。數據“1”是2個12T的高電平寬脈沖,間隔一個4T的低電平窄脈沖,數據“F”是1個高電平窄脈沖間隔12T的低電平寬脈沖,再加一個12T的高電平寬脈沖。總結如下:
  同步碼占用124T=18228微秒,時間較長,數據“0”,“1”,“F”是由2個脈沖組成,一個數據占用32T=4704微秒時間。數據“0”,“1”,“F”特點見下表:
數據
第一個脈沖
間隔
第二個脈沖
0
窄脈沖588微秒(高電平)
1764微秒(低電平)
窄脈沖588微秒(高電平)
1
寬脈沖1764微秒(高電平)
588微秒(低電平)
寬脈沖1764微秒(高電平)
F
窄脈沖588微秒(高電平)
1764微秒(低電平)
寬脈沖1764微秒(高電平)
  上表中我們用“窄、窄”表示數據“0”,“寬、寬”表示數據“1”,“窄、寬”表示數據“F”,實際應用時是經過CD40106反相后的波形,所以數據“0”就變成“寬、寬”,數據“1”變成“窄、窄”,數據“F”變成“窄、寬”了。我們用51單片機的定時器來測量這些脈沖的寬度來確定數據是“0”,“1”,還是“F”。這就是解碼原理。
3PT2262 軟件解碼的單片機程序
    ORG0000H  ;2011年9月1日通過,433Mhz無線發送模塊,2262解碼程序,單片機使用6兆晶體,震蕩電阻是4.7兆歐電阻
   AJMP  L0
   ORG   000BH
   ORG 0013H;外部中斷P3.3腳INT0入口地址
   ORG   001BH
   RETI
   ORG 0025h
   L0:
   MOV TMOD, #11H
   MOV 8CH, #3CH
   MOV 8AH, #0B0H
   CLR EA;打開CPU總中斷請求
QL: MOV A,#00H
   MOV R2,#66D ;清數據區;;
   MOV R0,#18H
QRAM: MOV  @R0,  A
   INC  R0
   CLR A
   DJNZ  R2,  QRAM
  SS:    MOVR6,#24; 查找同步碼,同步碼高電平長度是359微秒的31倍11129微秒=15BCH,所以TH1=15和10之間
SS1:   JB  P3.2, SS1 ;躲過前1組數據,共發射4組數據
       JNB P3.2,$   ;
        DJNZ R6,SS1
  SSS0:   JB  P3.2,$ ;           編碼信號反相后送到單片機的P3.2口進行解碼
       MOV   8DH,#00H       ;定時器1時間常數
       MOV   8BH,#00H
       JNB   P3.2,$         ;測量高電平時間
       SETB TR1            ;高電平啟動定時器1
       JB  P3.2,$
       CLR TR1
      MOV  A, TH1
       MOV R2,A
       CLR C
       SUBBA,#15H          ;同步碼高電平時長,比15h長返回
       JNC SSS0
       MOV A,R2
       CLR C
       SUBBA,#10H         ;同步碼高電平時長,比10h短返回
       JC SSS0
SS0:   JB P3.2,$          ;找到同步碼后,開始解碼
       MOV R0,#1AH
       MOV R1,#18H
       MOV R2,#2
S01:  MOV  R6,#49       ;判斷高電平時間常數,識別數據?
  S0:  MOV   8DH,#00H    ;定時器1時間常數
       MOV  8BH, #00H
  S1:  JNB   P3.2,S1
       SETB TR1         ;高電平啟動定時器1
  S2:  JB   P3.2,S2      ;等待變低
       CLR TR1
  S3:  MOV   A,TH1       ;低電平停止定時,把數據放到@R0中
       MOV@R0,A
       INC R0
JS2:   DJNZ R6,S0       ;校驗1AH及33H起始的24個數據,如果校驗成功說明解碼成功
       MOV R2,#24
       MOV R0,#1AH
       MOV R1,#33h
BJ1:    MOVA,@R0
       XRL A,@R1
       JNZ QL
       INC R0
       INC R1
       DJNZ R2,BJ1
SSS:    CLRP1.2;蜂鳴器鳴響嘀嘀嘀的聲音,表示解碼成功
       LCALL DELAY2
       SETB P1.2;蜂鳴器停止

       MOV R2,#12
       MOV R1,#4CH
       MOV R0,#1AH
CZ:    MOV A,@R0
       ANL A,#0FH
       SWAP A
       MOV @R1,A
       INC R0
       MOV A,@R0
       ANL A,#0FH
       ADD A,@R1
       MOV @R1,A
       XRL A,#10H   ;A0-A8懸浮時波形是一寬一窄兩個高電平波形
       JNZ CZ1
       MOV A,#0FH
       MOV @R1,A
       AJMP CZ4
CZ1:    MOVA,@R1
       XRLA,#11H    ;A0-A8=0時波形是2個寬高電平波形
       JNZ CZ2
       MOV A,#0
       MOV @R1,A
       AJMP CZ4
CZ2:    MOVA,@R1
       XRL A,#00H
       JNZ CZ4
       MOVA,#01H    ;A0-A8=1時波形是2個窄高電平波形
       MOV @R1,A
CZ4:    INCR1
       INC R0
       DJNZ R2,CZ
   J01:  MOVR1,#4CH;數碼管顯示解碼后的12個數據(略)
        MOV R4,#12;49;10
       ;LCALL XS
        AJMP QL
YS:    MOV     7EH,   #64H
YS1:   MOV     7FH,   #0FFH
YS22:   DJNZ    7FH,   YS22
       RET

DELAY:  MOV   R5, #88H
DEL:    NOP
        DJNZ  R5, DEL
        RET
DELAY1: MOV   R6, #10H
DELA:   ACALL DELAY
        DJNZ  R6, DELA
        RET
DELAY2: MOV   R6, #0FFH
DE:     ACALL DELAY
        DJNZ  R6,DE
        RET
END




(三)、PT2262編碼芯片的軟件編碼


上圖是PT2262編碼芯片的編碼格式。根據PT2262編碼芯片的編碼格式可以看出同步碼時長=4T高+124T低+4T高;數據“0”=4T高+12T低+4T高+12T低;數據“1”=12T高+4T低+12T高+4T低;數據“F”=4T高+12T低+12T高+4T低。我們可以用單片機通過軟件來模擬PT2262的這個編碼過程,用軟件代替了硬件PT2262,由于通過軟件可以模擬不同的震蕩電阻,同時地址編碼也可以隨意更改,還可以選擇不同的發射模塊(315Mhz或433Mhz),所以更具有通用性。
我們把2262的地址碼用4個字節表示,如FFFF0101表示A0、A1、A2、A3(2262的1、2、3、4腳)開路,A4接地,A5接正電壓,A6接地,A7接正電壓。我們再用2個字節表示4個數據碼,如0001表示D3、D2、D1(2262的10、11、12腳)為低電平,D0為高電平。把這6個字節數據存到單片機38h單元起始的 RAM中,R6存發送次數,R4存發送字節數,主程序中調用VFSS0軟件編碼子程序如下:
       LED EQU0B7H                   ;P3.7
       SDA EQU0B6H                   ;P3.6
       SCL  EQU 0B5H                 ;P3.5
       JS433 EQU0B4H                 ;P3.4
       JS315 EQU0B3H                 ;P3.3
       JPSM  EQU0B2H                 ;P3.2
       FS433 EQU0B1H                 ;P3.1
       FS315 EQU0B0H                 ;P3.0
      XPOS   EQU    1AH            ;列方向地址指針(用于LCDPOS子程序)
      YPOS   EQU    1BH            ;行方向地址指針(用于LCDPOS子程序)
       DPHH   EQU    1CH            ;存512高位地址
       DPLL   EQU    1DH            ;存512低位地址
      RSPIN  EQU    80h            ;P0.0
      RWPIN  EQU    81h
      EPIN   EQU    82h
      CS1PIN EQU    83h
      CS2PIN EQU    84h
FSZ1:   CALLVFSS0     ;調用VFSS0子程序發送數據
       AJMP DIS
VFSS0:   MOVR6,#5         ;發5次
VFKS0:   MOVR0,#38H
       MOVR4,#6         ;發送6個字節數據,其中4個字節地址,2字節數據
       CALLFS0           ; 先發送同步碼:4T的高電平124T的低電平。
       CALLFTB           ;124
VFSJ1:    MOVR3,#2         ;發送一個字節,分2次發送,先發高4位,后發低4位
       MOVA,@R0          ;取出要發送的編碼數據
       ANL A,#0F0H
       SWAP A
       MOV B,A
VFS03:   XRLA,#0FH        ;先發高4位,低4位保存到B寄存器
       JNZ FS04
VFSF:   ACALL FS0         ; 發送F,4T高;F=4T高+12T低+12T高+4T低
       ACALL FSC          ;12T低      F=4T高+12T低+12T高+4T低
       ACALL FS1          ;12T
       ACALL FSD          ;4T
       AJMP VFS06
VFS04:   MOVA,B
       XRLA,#01H           ;1=12T高+4T低+12T高+4T低
       JNZ VFS05
       ACALL FS1          ; 發送1,先發12T
       ACALL FSD          ;4T
       ACALL FS1          ;12T
       ACALL FSD          ;4T
       AJMP VFS06
VFS05:   MOVA,B            ;發送0,0=4T高+12T低+4T高+12T低,
       XRL A,#0H
       JNZ VFS08
       ACALL FS0          ;4T
       ACALL FSC          ;12T
       ACALL FS0          ;4T
       ACALL FSC          ;12T
       AJMP VFS06
VFS08:   ;MOVA,B            ;0=4T高+12T低+4T高+12T低,
      ; XRL A,#04H
       ;JNZ VFS06
       ACALL FS1          ;12T
       ACALL FSd          ;4T
       ACALL FS0          ;4T
       ACALL FSC          ;12T
VFS06:   MOVA,@R0
       ANL A,#0FH
       MOV B,A
       DJNZR3,VFS03      ;一個字節發送完了沒有?沒完繼續
       INC R0
       DJNZR4,VFSJ1      ;6個字節全發送完了沒有?沒完繼續,發送完發同步
       ACALL FS0          ;4T高  ;0=4T高+12T低+4T高+12T低,
       ACALL FSC          ;12T
       ACALL FS0          ;4T
       ACALL FSC          ;12T
VFS07:  DJNZ R6,VFKS0    ;一共發送5遍,發送完了沒有?沒完繼續
       RET

;發12T高電平
FS1:   MOV A,35H;#01H
       CPL A
       MOV 8CH, A
       MOV A,36H;#85H
       CPL A
      MOV 8AH,A
       MOV A,R2
       XRLA,#03H         ;R2值選擇發送模塊是433MHZ還是315MHZ
       JZ FS2
       CLRFS433         ;經40106反相后變成高電平
       AJMP FS3
FS2:   CLR FS315
FS3:   SETB  TR0
FSF01:  JBC TF0, FSF03
       AJMP FSF01
FSF03:  CLR TR0
       SETB FS433
       SETB FS315
       RET
;發送4T高電平
FS0:   MOV A,#00H
       CPL A
       MOV 8CH, A ; 給定時器0賦值,TH0=8CH,TL0=8AH,定時長度不同,模擬的震蕩電阻值就不同,脈寬就不一樣
       MOV A,37H;#85H
       CPL A
      MOV 8AH, A
       MOV A,R2
       XRL A,#03H
       JZ FS22
       CLRFS433         ;經40106反相后變成高電平
       AJMP FS33
FS22:   CLR FS315
FS33:   SETB  TR0
FSF02:  JBC TF0, FSF04
       AJMP FSF02
FSF04:  CLR TR0
       SETB FS433
       SETB FS315
       RET
;發送12T低電平
FSC:   MOV A,35H;#01H ;一位數據=32T,位0=4T,位1=12T合起來等于16T還得加16T低電平
       CPL A   
       MOV 8CH, A
       MOV A,36H;#85H
       CPL A
   MOV 8AH,A
       SETBFS433         ;經40106反相后變成高電平
       SETB FS315
       SETB  TR0
FSF01C:  JBC TF0,FSF03C
       AJMP FSF01C
FSF03C:  CLR TR0
       RET
;發送4T低
FSD:   MOVA,#00H         ;
       CPL A
       MOV 8CH, A
       MOV A,37H;#85H
       CPLA
      MOV 8AH, A
       SETBFS433         ;經40106反相后變成高電平
       SETB FS315
       SETB  TR0
FSF02D:  JBC TF0,FSF0D
       AJMP FSF02D
FSF0D:  CLR TR0
       RET
;發同步
FTB:   MOVA,34H;#0FH     ;同步碼時長
       CPL A
       MOV TH0,A    ;發同步信號
       MOV A,37H;#85H
       CPL A
   MOV TL0,A
FS01:     SETB TR0          ;發送124T低
       SETB FS433
       SETB FS315
FS02:     JBC TF0, FSJ
       AJMP FS02
FSJ:     CLR TR0


       RET


(四)、固定碼其它編碼芯片的軟件解碼
1、PT2260芯片
SC2260和PT2260是同一芯片,只不過生產廠家不一樣,參數略有區別。SC2260是CMOS工藝制造的低功耗通用編碼器,與SC2272配對使用。編碼器對地址腳和數據腳的狀態編碼組幀以射頻(RF)方式發送。SC2260 最多有10位三態地址編碼。
  特 點
  ●CMOS工藝制造,低功耗
  ●地址碼最多可達59,049(310)種
  ●外部應用線路元器件少
  ●編碼發射由數據管腳的高電平輸入觸發
  ●單端電阻振蕩電路
  ●工作電壓范圍寬:2.4v ~13v
  ● 數據碼分2、4或6位三種
  ●DIP16或SOP16封裝
應用范圍
  ●車輛防盜系統
  ●遙控玩具
  ● 家庭防盜系統
  ● 其他工業遙控
管腳如下圖:


PT2260芯片的解碼與PT2262芯片的解碼方法相同,由于震蕩電阻和震蕩頻率的不同,所以選擇時間常數T時略有不同。
2、VD5026芯片

VD5026,VD5027是CMOS大規模數字集成電路(見圖1)。前者是編碼器,后者是譯碼器。VD5026編碼器是一種8位編碼發射器。它的第1~8腳是編碼的輸入端,每個輸入端可以有3種狀態,即“0”、“1”或“開路”,其中“0”表示為低電平,“1”表示為高電平,因此8個腳可以組成38=6561個不同的編碼。如果需要更多的編碼,可將輸入端改為4態連接方式,這時第1腳是第4種狀態的公共連接腳,第2腳~第8腳與第1腳連接時為第4種狀態。所以第2腳~第8腳都可以有4種狀態,即“0”、“1”、“開路”、“接1腳”。在這種情況下可以組成47=16384個編碼。第10腳~第13腳也可作為編碼地址線,與第1~第8腳聯合起來組成12位編碼地址線,這時編碼數可高達411=4194304個。第10~第13腳用作數據輸入線,根據需要這幾個腳可以置“0”或置“1”。第14腳是發射指令端,當此腳接地時,VD5026輸出端則發出一組編碼脈沖。第15腳、第16腳是一個內置振蕩器,外接幾十到幾百千歐的電阻即可產生振蕩,振蕩頻率為fosc=1600/R(KHz),式中R為外接電阻,單位為千歐。第17腳是編碼輸出端,第18腳、第9腳分別是電源的正、負極。

VD5027接收解碼器有相應于VD5026的12位信息。第1腳~第8腳是地址線。當VD5026發出的地址編碼與VD5027預置的編碼相同時,則在VD5027的第10腳~13腳有數據輸出,該輸出信息與VD5026的第10~第13腳所置的數據相同。第14腳為輸入端,第15腳、第16腳是振蕩器,外接電阻值應與VD5026完全相同。第17腳是輸出端。編碼器VD5026發射時,如果密碼相同,VD5027就會輸出高電平。下圖是VD5026編碼格式,可以看出它的編碼格式與pt2262類似,除了“0”、“1”、“F”3種狀態,只不過多了第四種狀態“4TH”。 數據“0“=”窄、窄“,數據”1“=”寬、寬“,數據“F“=”寬、窄“,第四態=”窄、寬“,所以解碼時要多加一項判斷第四態。

3、LX2240、PT2240芯片
LX2240這款國產芯片,是根據PT2240的編碼格式進行設計,但與PT2240在脈沖寬度上略有差別,但只要配上適當的振蕩電阻,即可與PT2240互換通用。LX2240 是一片由 CMOS 設計制造的可預燒內碼的學習碼編碼 IC ,由軟件解碼;內碼共有 20 個位元可預燒 1048576 組內碼組合,降低使用上的重碼率。
(1)主要特點:
1 .低公耗靜態電流<1uA ;
2 .工作電壓 Vcc=2.4 -12.0V;
3 . 四個按鍵組合輸入,最多可組合至 15 個按鍵;
4 .單端振蕩電路,只需一個外接電阻。
5 .小體積 8 腳SSOP 封裝,是 LX2260 的升級產品;
6 .與 PT2240B完全兼容;

(2)腳位圖:

(3)管腳說明:
符號
描述
管腳
I/O
Vcc
電源正
1
-
Vss
電源負
2
-
Dout
串行編碼輸出
3
O
D0
按鍵輸入(內含下拉)
4
I
D1
按鍵輸入(內含下拉)
5
I
D2
按鍵輸入(內含下拉)
6
I
D3
按鍵輸入(內含下拉)
7
I
OSC
振蕩電阻輸入,接電阻至正電源
8
I
(4)編碼格式:
內碼C0~C19(100萬組)
D0
D1
D2
D3
同步碼

(5)應用電路:

4、eV1527芯片
eV1527 是一片由 CMOS設計制造的可預燒內碼的學習碼編碼 IC,由軟件解碼;內碼共有
20 個位元可預燒 1048576組(220)內碼組合,降低使用上編碼重復的機率。

(1)功能簡述:                                          
◆低功耗靜態電流<1.0μA;
◆工作電壓 Vcc=3.0-13V;
◆四個按鍵輸入,最多可組合至 15個按健;
◆內含振蕩線路,只須外接一個電阻(推薦值 330K);
◆eV1527 可代替RT1527 以及升級 FP527、eV527;
◆eV1527 修正了上面那些型號的一些Bug;
◆小體積 8 腳貼片封裝。是PT2260、PT2262 理想的升級換代產品

(2)腳位圖:

(3)腳位功能說明:

Symbol
Description
Pin
I/O
OSC1
振蕩線路輸入腳接電阻至電源
1
I
Vcc
電源正
2

GND
電源負
3

TXD
串列資料輸出腳
4
O
K0
按健輸入腳內含接地電阻
5
I
K1
按健輸入腳內含接地電阻
6
I
K2
按健輸入腳內含接地電阻
7
I
K3
按健輸入腳內含接地電阻
8
I

(4)編碼格式:




(5)部分振蕩阻值表:(此表僅供參考)


3V
4V
5V
6V
7V
8V
9V
10V
11V
12V
13V
47K
346us
306 us
284 us
270 us
262 us
254 us
248 us
242 us
238 us
234 us
230 us
51K
368us
322 us
300 us
288 us
278 us
270 us
264 us
258 us
254 us
250 us
246 us
56K
400us
354 us
330 us
316 us
306 us
298 us
292 us
286 us
282 us
278 us
274 us
62K
430us
384 us
358 us
344 us
334 us
326 us
318 us
312 us
308 us
302 us
300 us
68K
456us
408 us
382 us
368 us
356 us
348 us
342 us
336 us
330 us
326 us
322 us
75K
492us
442 us
418 us
402 us
390 us
382 us
374 us
368 us
362 us
358 us
352 us
82K
528us
476 us
452 us
436 us
424 us
416 us
408 us
400 us
392 us
388 us
384 us
91K
580us
524 us
492 us
480 us
468 us
456 us
448 us
444 us
436 us
432 us
424 us
100K
612us
560 us
528 us
512 us
500 us
488 us
480 us
472 us
464 us
460 us
456 us

(6)應用電路


                        
(五)、部分程序代碼
;下面是數據采集代碼
PT2260:   MOV10H,#03H          ;2E-2F存頻率
         MOV 11H,#15H
         MOV 12H,#22H
         MOV 13H,#60H
PTKSS0:  JB JS315,$      ;找到同步碼后,開始解碼
          MOV R0,#30H;1AH

PTS01:     MOV  R6,#49       ;判斷高電平時間常數,識別數據?
PTKS0:   MOV TH0, #00H
    MOV TL0, #64H;A
PTKS1:   JNB   JS315, PTKS1
         SETB TR0           ;高電平啟動定時器1
PTKS2:   JB   JS315,PTKS2    ;等待變低
         CLR TR0
PTKS3:   MOV   A,TH0     ;低電平停止定時,把數據放到@R0中
      MOV @R0,A
         INC R0
         DJNZ  R6,PTKS0
         MOV14H,48H       ;48H單元存同步碼時間常數128T
         MOV   R6,#24   ;判斷高電平時間常數,識別數據24+同步+24=49個  ,1527是20位內碼+4位數據=48+同步+48=97位
PTKS4:    MOV TH0, #00H
       MOV  TL0, #64H;A
PTKS5:   JNB   JS315, PTKS5
         SETB TR0           ;高電平啟動定時器1
PTKS6:   JB   JS315,PTKS6    ;等待變低
         CLR TR0
        MOV   A,TH0     ;低電平停止定時,把數據放到@R0中
         XRL A,#00H
         JZ PTKS7
         MOV A,TH0
         MOV 15H,A
         MOV A,TL0
         MOV16H,A
         AJMP PTKS8
PTKS7:   MOV A,TL0
         MOV 17H,A
PTKS8:   DJNZ R6,PTKS4          ;采集49個數據
KS10:    LCALL BJ0;比較2次采集的數據是否一致,不一致返回重新采集
        JZ JS9
        LJMP Q
JS9:   MOV R2,#12
       MOV R1,#22H;22-2DH顯示轉換后的地址和數據12個結果
       MOV R0,#30h;顯示緩沖區也是數據采集區
CZ15:   MOVA,@R0;采集的48個數據合成為24個,@R0中的數據合并到@R1
       ANL A,#0FH
       SWAP A
       MOV @R1,A
       INC R0
       MOV A,@R0
       ANL A,#0FH
       ADD A,@R1
       MOV @R1,A
;下面對24個數據進行判斷,數據=“10、20、30、40、50”時為“F”, 數據=“11、22、33、44、55”時為“0”, 數據=“00”時為 “1”,定時器0高位TH0的數據從10到50或從11到55擴展是為了擴大震蕩電阻的檢測范圍。
       XRLA,#10H;10H   ;判斷數據是否=”F”,波形是一寬一窄兩個高電平波形是“F”
       JZ CZ30
       MOV A,@R1
       XRLA,#20H;10H   ;A0-A8懸浮時波形是一寬一窄兩個高電平波形
       JZ CZ30
       MOV A,@R1
       XRLA,#30H;10H   ;A0-A8懸浮時波形是一寬一窄兩個高電平波形
       JZ CZ30
       MOV A,@R1
       XRLA,#40H;10H   ;A0-A8懸浮時波形是一寬一窄兩個高電平波形
       JZ CZ30
       MOV A,@R1
       XRLA,#50H;10H   ;A0-A8懸浮時波形是一寬一窄兩個高電平波形
       JNZ CZ11
CZ30:   MOVA,#0FH        ;懸浮腳代碼F
       MOV @R1,A
       AJMP CZ14
CZ11:   MOVA,@R1      ;判斷是否數據“0“
       XRLA,#11H    ;A0-A8=0波形是2個寬高電平波形就是數據“0“
       JZ CZ40
       MOV A,@R1
       XRLA,#22H;11H    ;A0-A8=0時波形是2個寬高電平波形
       JZ CZ40
       MOV A,@R1
       XRLA,#33H    ;A0-A8=0時波形是2個寬高電平波形
       JZ CZ40
       MOV A,@R1
       XRLA,#44H    ;A0-A8=0時波形是2個寬高電平波形
       JZ CZ40
       MOV A,@R1
       XRLA,#55H;11H    ;A0-A8=0時波形是2個寬高電平波形
       JNZ CZ12
CZ40:   MOVA,#0       ;是數據“0”存@R1
       MOV@R1,A
       AJMP CZ14

CZ12:     MOV A,@R1
       XRL A,#00H;00H ;是數據“1”
       JNZ CZ13
       MOVA,#01H    ;A0-A8=1時波形是2個窄高電平波形
       MOV @R1,A
       AJMP CZ14
CZ13:   MOVA,@R1     ;數據是一窄一寬電平波形時為1527芯片
      XRL A,#01H
      JZ CZ50
      MOVA,@R1     ;是一窄一寬電平波形時為1527芯片
      XRL A,#02H
      JZ CZ50
      MOVA,@R1     ;是一窄一寬電平波形時為1527芯片
      XRL A,#03H
      JZ CZ50
      MOVA,@R1     ;是一窄一寬電平波形時為1527芯片
      XRL A,#04H
      JZ CZ50
CZ14:    INC R1
       INCR0
        DJNZR2,CZ15
CZ18:     MOV R2,#6
       MOV R1,#22H;4CH
       MOV R0,#22h;1AH
CZ19:    MOV A,@R0
       ANL A,#0FH
       SWAP A
       MOV @R1,A
       INC R0
       MOV A,@R0
       ANL A,#0FH
       ADD A,@R1
       MOV @R1,A
       INC R0
       INC R1
       DJNZ R2,CZ19
         AJMPXS;去顯示子程序     
CZ50:   MOV 12H,#15H
       MOV13H,#27H
CZ5:   MOVR2,#3    ;合成3字節 16進制數3B7C21,是反碼因三極管反相
      MOV R1,#22H;4CH  ;顯示緩沖器起始地址
      MOV R0,#30H;1AH  ;數據采集區起始地址
CZ6:     MOVR3,#08H   ;8位合成一個字節
CZ7:    MOV A,#00h;采集的數據同步碼為17h,長脈沖02h,短脈沖00h,用00h判斷是寬脈沖還是短脈沖
       CLR C
       SUBB A,@R0   ;
       JNC CZ8
       MOV A,@R1
       RLC A
       MOV @R1,A
       AJMP CZ9
CZ8:   CLR C
       MOV A,@R1
       RLC A
       MOV @R1,A
CZ9:   INC R0
       DJNZ R3,CZ7
       INC R1
       DJNZ R2,CZ6
       ;去顯示子程序

BJ0:   MOVR2,#24        ;校驗30H及49H起始的24個數據,如果校驗成功說明解碼成功
       MOV R0,#30h;1AH
       MOV R1,#49H;33h
BJ1:   MOV A,@R0
       XRL A,@R1
       JNZ QL8
       INC R0
       INC R1
       DJNZ R2,BJ1
       MOV A,#00H
QL8:    RET


評分

參與人數 1黑幣 +15 收起 理由
新鄉家電維修 + 15 絕世好帖!

查看全部評分

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

使用道具 舉報

沙發
ID:105890 發表于 2016-3-3 06:35 | 只看該作者
強得很,值得學習
回復

使用道具 舉報

板凳
ID:95111 發表于 2016-3-6 14:52 | 只看該作者
牛!有沒有C語言的
回復

使用道具 舉報

地板
ID:88256 發表于 2016-8-22 09:58 | 只看該作者
這個分析得很透徹,制作得很好,只是既然用上那么多的硬件,軟件功能就稍顯單一了,可以再增加一些功能
回復

使用道具 舉報

5#
ID:168155 發表于 2017-3-4 17:50 | 只看該作者
麻煩問下359us是怎么來的SS:    MOVR6,#24; 查找同步碼,同步碼高電平長度是359微秒的31倍11129微秒=15BCH,所以TH1=15和10之間
回復

使用道具 舉報

6#
ID:168155 發表于 2017-3-4 17:51 | 只看該作者
麻煩問下359us是怎么來的         “SS:    MOVR6,#24; 查找同步碼,同步碼高電平長度是359微秒的31倍11129微秒=15BCH,所以TH1=15和10之間”
回復

使用道具 舉報

7#
ID:23303 發表于 2017-7-3 13:48 | 只看該作者
強得很,值得學習
回復

使用道具 舉報

8#
ID:141497 發表于 2017-12-17 21:32 | 只看該作者
資料不錯,很全面!
回復

使用道具 舉報

9#
ID:6985 發表于 2018-7-30 22:21 | 只看該作者
有C程序的嗎,匯編沒學
回復

使用道具 舉報

10#
ID:416008 發表于 2019-1-8 20:41 | 只看該作者
wb8899 發表于 2018-7-30 22:21
有C程序的嗎,匯編沒學

我也想要c語言的。匯編語言看不懂。。
回復

使用道具 舉報

11#
ID:57073 發表于 2019-2-25 15:06 | 只看該作者
GLaDOSOvO 發表于 2019-1-8 20:41
我也想要c語言的。匯編語言看不懂。。

我也想要c語言的
回復

使用道具 舉報

12#
ID:72088 發表于 2019-5-13 15:32 | 只看該作者
匯編程序解碼速度快,比C語言解碼準確

我自己寫的程序能解碼3ms---25ms同步頭范圍的遙控信號(已經夠寬了,還可以增加寬度,沒必要),

除了我們知道的0、F、1之外,我發現個別遙控,特別是電動車遙控鎖有10數據出現

特增加了D=10顯示,擴大解碼范圍

另外想增加功能,學習遙控碼,然后發射出去,這是下一步方向


這是1000米遙控解碼測試,結果完全正確




此遙控出現了D碼



這遙控震蕩電阻比較大,11.9ms同步頭





回復

使用道具 舉報

13#
ID:517235 發表于 2019-6-24 18:02 | 只看該作者
新鄉家電維修 發表于 2019-5-13 15:32
匯編程序解碼速度快,比C語言解碼準確

我自己寫的程序能解碼3ms---25ms同步頭范圍的遙控信號(已經夠寬 ...

請問,10數據是個什么狀態?
回復

使用道具 舉報

14#
ID:111843 發表于 2019-12-17 23:24 | 只看該作者
不錯,很詳細,贊!
回復

使用道具 舉報

15#
ID:94449 發表于 2020-10-7 08:58 | 只看該作者
厲害了,記下了,pt2272用的680K的振蕩電阻,對應的pt2262用的是3.3M。
回復

使用道具 舉報

16#
ID:818406 發表于 2020-11-16 18:40 | 只看該作者
謝謝樓主的分享,看完之后很受用
回復

使用道具 舉報

17#
ID:194844 發表于 2020-11-17 00:53 | 只看該作者

Cảm ơn bạn đã chia sẻ, rất hữu ích sau khi đọc
回復

使用道具 舉報

18#
ID:357153 發表于 2020-12-28 14:46 | 只看該作者
感謝樓主的分享。收藏、值得學習
回復

使用道具 舉報

19#
ID:336378 發表于 2021-1-5 16:30 | 只看該作者
   樓主是高手,高手中高手。贊一個!!!!!!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产99久久 | 伊人二区| 国产1区| 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 国产一区二区精品在线 | 免费激情av | 国产夜恋视频在线观看 | 黄色永久免费 | 国内精品久久久久 | 在线国产欧美 | 中文字幕乱码一区二区三区 | 在线色网 | 久久99精品久久久水蜜桃 | 欧美不卡视频 | 女朋友的闺蜜3韩国三级 | 日韩高清三区 | 国产乱码精品一区二区三区五月婷 | 性一交一乱一伦视频免费观看 | 国产黄色大片在线观看 | 国产精品成人一区二区三区 | 中文字幕免费中文 | 日本不卡免费新一二三区 | 伊人av在线播放 | 欧美精品久久久久 | 黄色播放 | 午夜欧美a级理论片915影院 | 久久综合久久久 | 亚洲欧美激情网 | 国产精品不卡一区 | 在线观看你懂的网站 | 欧美男人天堂 | 国产91久久久久蜜臀青青天草二 | 免费观看av网站 | 一区二区三区在线 | 日韩欧美在线观看一区 | 韩国精品一区 | 97国产精品视频人人做人人爱 | 久久久久久一区 | 亚洲日本欧美日韩高观看 | 99精品视频在线 | 国产日韩欧美 |