本文中用到的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ù)制。如PT2262,PT2260 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ù)有3的8次方,也就是共有6561種狀態(tài)。這是一般的用法。PT2262還有4支腳,就是10、11、12、13,一般它是用來做數(shù)據(jù)端。它也可以編碼,但是編碼就只有兩種狀態(tài):低電平(0)、高電平(1),沒有懸空這種狀態(tài)了。下面1圖中的編碼區(qū)編碼是A0—A7都懸空,也就是A0=F,A1=F,A2=F,A3=F,A4=F,A5=F,A6=F,A7=F,下面2圖中的編碼是A0=0,A1=F,A2=0,A3=0,A4=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”,“寬、寬”表示數(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)腳位功能說明:
(4)編碼格式:



(5)部分振蕩阻值表:(此表僅供參考)
(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
|