找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 66872|回復(fù): 19
收起左側(cè)

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

  [復(fù)制鏈接]
ID:105323 發(fā)表于 2016-2-24 21:18 | 顯示全部樓層 |閱讀模式
本文中用到的PT2262/PT2272芯片是一對遙控收發(fā)的芯片,關(guān)于她的中文資料可以參考:http://www.torrancerestoration.com/bbs/dpj-44498-1.html
()、遙控器基本知識
遙控器種類很多,常見的有電視遙控器,汽車遙控器,卷簾門遙控器,空調(diào)遙控器,航模遙控器等等,按載波分類可以分為紅外線遙控器,無線電遙控器,超聲波遙控器等,紅外線遙控的特點適用于室內(nèi),短距離的情況,功耗小,成本低,無線電遙控適用于遠距離,室外情況下,成本高一些。其實我們每天都在和遙控器打交道,大部分人只知道使用這些遙控器,除非專業(yè)人員很少有人知道它的工作原理。

1、 遙控器的組成

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

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


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


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

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


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

2、解碼原理

上圖是 PT2262編碼芯片的編碼格式,PT2262輸出數(shù)據(jù)的順序:A0A1A2A3A4A5A6A7D0D1D2D3同步碼 A0A1A2A3A4A5A6A7D0D1D2D3同步碼……,連續(xù)發(fā)四次。每組編碼之間由同步碼隔開,同步碼低電平寬度是窄脈沖寬度(4T)的31倍(124T),用單片機軟件解碼時,程序只要判斷出同步碼,然后對后面的字碼進行脈沖寬度識別即可。2262每次發(fā)射時至少發(fā)射4 組字碼,我們只需連續(xù)兩次檢測到相同的地址碼加數(shù)據(jù)碼就可以了。
  不同公司的2262,振蕩電阻一樣,PT2262的振蕩頻率會有區(qū)別,估算公式f=2*1000*16/Rosc(kΩ) kHz其中Rosc 為振蕩電阻這里我們選用Rosc=4.7MΩ,頻率f≈6.8kHz,。T=1/f≈147微秒,同步脈沖的寬度是124T=18228微秒,由上圖可見數(shù)據(jù)“0”是2個(4T=588微秒)短脈沖,間隔(12T=1764微秒)低電平。數(shù)據(jù)“1”是2個12T的高電平寬脈沖,間隔一個4T的低電平窄脈沖,數(shù)據(jù)“F”是1個高電平窄脈沖間隔12T的低電平寬脈沖,再加一個12T的高電平寬脈沖?偨Y(jié)如下:
  同步碼占用124T=18228微秒,時間較長,數(shù)據(jù)“0”,“1”,“F”是由2個脈沖組成,一個數(shù)據(jù)占用32T=4704微秒時間。數(shù)據(jù)“0”,“1”,“F”特點見下表:
數(shù)據(jù)
第一個脈沖
間隔
第二個脈沖
0
窄脈沖588微秒(高電平)
1764微秒(低電平)
窄脈沖588微秒(高電平)
1
寬脈沖1764微秒(高電平)
588微秒(低電平)
寬脈沖1764微秒(高電平)
F
窄脈沖588微秒(高電平)
1764微秒(低電平)
寬脈沖1764微秒(高電平)
  上表中我們用“窄、窄”表示數(shù)據(jù)“0”,“寬、寬”表示數(shù)據(jù)“1”,“窄、寬”表示數(shù)據(jù)“F”,實際應(yīng)用時是經(jīng)過CD40106反相后的波形,所以數(shù)據(jù)“0”就變成“寬、寬”,數(shù)據(jù)“1”變成“窄、窄”,數(shù)據(jù)“F”變成“窄、寬”了。我們用51單片機的定時器來測量這些脈沖的寬度來確定數(shù)據(jù)是“0”,“1”,還是“F”。這就是解碼原理。
3、PT2262 軟件解碼的單片機程序
    ORG0000H  ;2011年9月1日通過,433Mhz無線發(fā)送模塊,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 ;清數(shù)據(jù)區(qū);;
   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組數(shù)據(jù),共發(fā)射4組數(shù)據(jù)
       JNB P3.2,$   ;
        DJNZ R6,SS1
  SSS0:   JB  P3.2,$ ;           編碼信號反相后送到單片機的P3.2口進行解碼
       MOV   8DH,#00H       ;定時器1時間常數(shù)
       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       ;判斷高電平時間常數(shù),識別數(shù)據(jù)?
  S0:  MOV   8DH,#00H    ;定時器1時間常數(shù)
       MOV  8BH, #00H
  S1:  JNB   P3.2,S1
       SETB TR1         ;高電平啟動定時器1
  S2:  JB   P3.2,S2      ;等待變低
       CLR TR1
  S3:  MOV   A,TH1       ;低電平停止定時,把數(shù)據(jù)放到@R0中
       MOV@R0,A
       INC R0
JS2:   DJNZ R6,S0       ;校驗1AH及33H起始的24個數(shù)據(jù),如果校驗成功說明解碼成功
       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;數(shù)碼管顯示解碼后的12個數(shù)據(jù)(略)
        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編碼芯片的編碼格式。根據(jù)PT2262編碼芯片的編碼格式可以看出同步碼時長=4T高+124T低+4T高;數(shù)據(jù)“0”=4T高+12T低+4T高+12T低;數(shù)據(jù)“1”=12T高+4T低+12T高+4T低;數(shù)據(jù)“F”=4T高+12T低+12T高+4T低。我們可以用單片機通過軟件來模擬PT2262的這個編碼過程,用軟件代替了硬件PT2262,由于通過軟件可以模擬不同的震蕩電阻,同時地址編碼也可以隨意更改,還可以選擇不同的發(fā)射模塊(315Mhz或433Mhz),所以更具有通用性。
我們把2262的地址碼用4個字節(jié)表示,如FFFF0101表示A0、A1、A2、A3(2262的1、2、3、4腳)開路,A4接地,A5接正電壓,A6接地,A7接正電壓。我們再用2個字節(jié)表示4個數(shù)據(jù)碼,如0001表示D3、D2、D1(2262的10、11、12腳)為低電平,D0為高電平。把這6個字節(jié)數(shù)據(jù)存到單片機38h單元起始的 RAM中,R6存發(fā)送次數(shù),R4存發(fā)送字節(jié)數(shù),主程序中調(diào)用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     ;調(diào)用VFSS0子程序發(fā)送數(shù)據(jù)
       AJMP DIS
VFSS0:   MOVR6,#5         ;發(fā)5次
VFKS0:   MOVR0,#38H
       MOVR4,#6         ;發(fā)送6個字節(jié)數(shù)據(jù),其中4個字節(jié)地址,2字節(jié)數(shù)據(jù)
       CALLFS0           ; 先發(fā)送同步碼:4T的高電平124T的低電平。
       CALLFTB           ;124
VFSJ1:    MOVR3,#2         ;發(fā)送一個字節(jié),分2次發(fā)送,先發(fā)高4位,后發(fā)低4位
       MOVA,@R0          ;取出要發(fā)送的編碼數(shù)據(jù)
       ANL A,#0F0H
       SWAP A
       MOV B,A
VFS03:   XRLA,#0FH        ;先發(fā)高4位,低4位保存到B寄存器
       JNZ FS04
VFSF:   ACALL FS0         ; 發(fā)送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          ; 發(fā)送1,先發(fā)12T
       ACALL FSD          ;4T
       ACALL FS1          ;12T
       ACALL FSD          ;4T
       AJMP VFS06
VFS05:   MOVA,B            ;發(fā)送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      ;一個字節(jié)發(fā)送完了沒有?沒完繼續(xù)
       INC R0
       DJNZR4,VFSJ1      ;6個字節(jié)全發(fā)送完了沒有?沒完繼續(xù),發(fā)送完發(fā)同步
       ACALL FS0          ;4T高  ;0=4T高+12T低+4T高+12T低,
       ACALL FSC          ;12T
       ACALL FS0          ;4T
       ACALL FSC          ;12T
VFS07:  DJNZ R6,VFKS0    ;一共發(fā)送5遍,發(fā)送完了沒有?沒完繼續(xù)
       RET

;發(fā)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值選擇發(fā)送模塊是433MHZ還是315MHZ
       JZ FS2
       CLRFS433         ;經(jīng)40106反相后變成高電平
       AJMP FS3
FS2:   CLR FS315
FS3:   SETB  TR0
FSF01:  JBC TF0, FSF03
       AJMP FSF01
FSF03:  CLR TR0
       SETB FS433
       SETB FS315
       RET
;發(fā)送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         ;經(jīng)40106反相后變成高電平
       AJMP FS33
FS22:   CLR FS315
FS33:   SETB  TR0
FSF02:  JBC TF0, FSF04
       AJMP FSF02
FSF04:  CLR TR0
       SETB FS433
       SETB FS315
       RET
;發(fā)送12T低電平
FSC:   MOV A,35H;#01H ;一位數(shù)據(jù)=32T,位0=4T,位1=12T合起來等于16T還得加16T低電平
       CPL A   
       MOV 8CH, A
       MOV A,36H;#85H
       CPL A
   MOV 8AH,A
       SETBFS433         ;經(jīng)40106反相后變成高電平
       SETB FS315
       SETB  TR0
FSF01C:  JBC TF0,FSF03C
       AJMP FSF01C
FSF03C:  CLR TR0
       RET
;發(fā)送4T低
FSD:   MOVA,#00H         ;
       CPL A
       MOV 8CH, A
       MOV A,37H;#85H
       CPLA
      MOV 8AH, A
       SETBFS433         ;經(jīng)40106反相后變成高電平
       SETB FS315
       SETB  TR0
FSF02D:  JBC TF0,FSF0D
       AJMP FSF02D
FSF0D:  CLR TR0
       RET
;發(fā)同步
FTB:   MOVA,34H;#0FH     ;同步碼時長
       CPL A
       MOV TH0,A    ;發(fā)同步信號
       MOV A,37H;#85H
       CPL A
   MOV TL0,A
FS01:     SETB TR0          ;發(fā)送124T低
       SETB FS433
       SETB FS315
FS02:     JBC TF0, FSJ
       AJMP FS02
FSJ:     CLR TR0


       RET


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


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

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

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

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

(2)腳位圖:

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

(5)應(yīng)用電路:

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

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

(2)腳位圖:

(3)腳位功能說明:

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

GND
電源負
3

TXD
串列資料輸出腳
4
O
K0
按健輸入腳內(nèi)含接地電阻
5
I
K1
按健輸入腳內(nèi)含接地電阻
6
I
K2
按健輸入腳內(nèi)含接地電阻
7
I
K3
按健輸入腳內(nèi)含接地電阻
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)應(yīng)用電路


                        
(五)、部分程序代碼
;下面是數(shù)據(jù)采集代碼
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       ;判斷高電平時間常數(shù),識別數(shù)據(jù)?
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     ;低電平停止定時,把數(shù)據(jù)放到@R0中
      MOV @R0,A
         INC R0
         DJNZ  R6,PTKS0
         MOV14H,48H       ;48H單元存同步碼時間常數(shù)128T
         MOV   R6,#24   ;判斷高電平時間常數(shù),識別數(shù)據(jù)24+同步+24=49個  ,1527是20位內(nèi)碼+4位數(shù)據(jù)=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     ;低電平停止定時,把數(shù)據(jù)放到@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個數(shù)據(jù)
KS10:    LCALL BJ0;比較2次采集的數(shù)據(jù)是否一致,不一致返回重新采集
        JZ JS9
        LJMP Q
JS9:   MOV R2,#12
       MOV R1,#22H;22-2DH顯示轉(zhuǎn)換后的地址和數(shù)據(jù)12個結(jié)果
       MOV R0,#30h;顯示緩沖區(qū)也是數(shù)據(jù)采集區(qū)
CZ15:   MOVA,@R0;采集的48個數(shù)據(jù)合成為24個,@R0中的數(shù)據(jù)合并到@R1
       ANL A,#0FH
       SWAP A
       MOV @R1,A
       INC R0
       MOV A,@R0
       ANL A,#0FH
       ADD A,@R1
       MOV @R1,A
;下面對24個數(shù)據(jù)進行判斷,數(shù)據(jù)=“10、20、30、40、50”時為“F”, 數(shù)據(jù)=“11、22、33、44、55”時為“0”, 數(shù)據(jù)=“00”時為 “1”,定時器0高位TH0的數(shù)據(jù)從10到50或從11到55擴展是為了擴大震蕩電阻的檢測范圍。
       XRLA,#10H;10H   ;判斷數(shù)據(jù)是否=”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      ;判斷是否數(shù)據(jù)“0“
       XRLA,#11H    ;A0-A8=0波形是2個寬高電平波形就是數(shù)據(jù)“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       ;是數(shù)據(jù)“0”存@R1
       MOV@R1,A
       AJMP CZ14

CZ12:     MOV A,@R1
       XRL A,#00H;00H ;是數(shù)據(jù)“1”
       JNZ CZ13
       MOVA,#01H    ;A0-A8=1時波形是2個窄高電平波形
       MOV @R1,A
       AJMP CZ14
CZ13:   MOVA,@R1     ;數(shù)據(jù)是一窄一寬電平波形時為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字節(jié) 16進制數(shù)3B7C21,是反碼因三極管反相
      MOV R1,#22H;4CH  ;顯示緩沖器起始地址
      MOV R0,#30H;1AH  ;數(shù)據(jù)采集區(qū)起始地址
CZ6:     MOVR3,#08H   ;8位合成一個字節(jié)
CZ7:    MOV A,#00h;采集的數(shù)據(jù)同步碼為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個數(shù)據(jù),如果校驗成功說明解碼成功
       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


評分

參與人數(shù) 1黑幣 +15 收起 理由
新鄉(xiāng)家電維修 + 15 絕世好帖!

查看全部評分

回復(fù)

使用道具 舉報

ID:105890 發(fā)表于 2016-3-3 06:35 | 顯示全部樓層
強得很,值得學(xué)習(xí)
回復(fù)

使用道具 舉報

ID:95111 發(fā)表于 2016-3-6 14:52 | 顯示全部樓層
牛!有沒有C語言的
回復(fù)

使用道具 舉報

ID:88256 發(fā)表于 2016-8-22 09:58 | 顯示全部樓層
這個分析得很透徹,制作得很好,只是既然用上那么多的硬件,軟件功能就稍顯單一了,可以再增加一些功能
回復(fù)

使用道具 舉報

ID:168155 發(fā)表于 2017-3-4 17:50 | 顯示全部樓層
麻煩問下359us是怎么來的SS:    MOVR6,#24; 查找同步碼,同步碼高電平長度是359微秒的31倍11129微秒=15BCH,所以TH1=15和10之間
回復(fù)

使用道具 舉報

ID:168155 發(fā)表于 2017-3-4 17:51 | 顯示全部樓層
麻煩問下359us是怎么來的         “SS:    MOVR6,#24; 查找同步碼,同步碼高電平長度是359微秒的31倍11129微秒=15BCH,所以TH1=15和10之間”
回復(fù)

使用道具 舉報

ID:23303 發(fā)表于 2017-7-3 13:48 | 顯示全部樓層
強得很,值得學(xué)習(xí)
回復(fù)

使用道具 舉報

ID:141497 發(fā)表于 2017-12-17 21:32 | 顯示全部樓層
資料不錯,很全面!
回復(fù)

使用道具 舉報

ID:6985 發(fā)表于 2018-7-30 22:21 | 顯示全部樓層
有C程序的嗎,匯編沒學(xué)
回復(fù)

使用道具 舉報

ID:416008 發(fā)表于 2019-1-8 20:41 | 顯示全部樓層
wb8899 發(fā)表于 2018-7-30 22:21
有C程序的嗎,匯編沒學(xué)

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

使用道具 舉報

ID:57073 發(fā)表于 2019-2-25 15:06 | 顯示全部樓層
GLaDOSOvO 發(fā)表于 2019-1-8 20:41
我也想要c語言的。匯編語言看不懂。。

我也想要c語言的
回復(fù)

使用道具 舉報

ID:72088 發(fā)表于 2019-5-13 15:32 | 顯示全部樓層
匯編程序解碼速度快,比C語言解碼準(zhǔn)確

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

除了我們知道的0、F、1之外,我發(fā)現(xiàn)個別遙控,特別是電動車遙控鎖有10數(shù)據(jù)出現(xiàn)

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

另外想增加功能,學(xué)習(xí)遙控碼,然后發(fā)射出去,這是下一步方向

1557730487123.jpg 1557730697842.jpg 1557730644791.jpg
這是1000米遙控解碼測試,結(jié)果完全正確
1557730609990.jpg



此遙控出現(xiàn)了D碼
1557730543249.jpg


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


1557730514942.jpg

回復(fù)

使用道具 舉報

ID:517235 發(fā)表于 2019-6-24 18:02 | 顯示全部樓層
新鄉(xiāng)家電維修 發(fā)表于 2019-5-13 15:32
匯編程序解碼速度快,比C語言解碼準(zhǔn)確

我自己寫的程序能解碼3ms---25ms同步頭范圍的遙控信號(已經(jīng)夠?qū)?...

請問,10數(shù)據(jù)是個什么狀態(tài)?
回復(fù)

使用道具 舉報

ID:111843 發(fā)表于 2019-12-17 23:24 | 顯示全部樓層
不錯,很詳細,贊!
回復(fù)

使用道具 舉報

ID:94449 發(fā)表于 2020-10-7 08:58 | 顯示全部樓層
厲害了,記下了,pt2272用的680K的振蕩電阻,對應(yīng)的pt2262用的是3.3M。
回復(fù)

使用道具 舉報

ID:818406 發(fā)表于 2020-11-16 18:40 | 顯示全部樓層
謝謝樓主的分享,看完之后很受用
回復(fù)

使用道具 舉報

ID:194844 發(fā)表于 2020-11-17 00:53 | 顯示全部樓層

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

使用道具 舉報

ID:357153 發(fā)表于 2020-12-28 14:46 | 顯示全部樓層
感謝樓主的分享。收藏、值得學(xué)習(xí)
回復(fù)

使用道具 舉報

ID:336378 發(fā)表于 2021-1-5 16:30 | 顯示全部樓層
   樓主是高手,高手中高手。贊一個。。。。。!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表