仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
此文件有左右兩個仿真cpu和對應按鍵,可以一個設置為發射一個設置為接收,
驗證發送的數據是否正確。
//程序功能:pt2272與2262完全仿真程序,并可以搜索全0到全1的地址碼和各種振蕩電阻
//可以仿真2262振蕩電阻范圍為500k到6M, 并仿真2272檢測該值;
//對應的2262波形的窄脈沖寬度為從50us到610us。相當于振蕩電阻470k到5.7M
/*
鍵盤接口,共4個按鍵,
P30: 光標移動
P31:數值修改
P32:功能設置 2272與2262功能與搜索功能之間切換,
搜索狀態下,正在搜索時,有暫停搜索的功能,
非搜索時,可以在2272,2262與搜索狀態間切換
P33:發射/接收/開始搜索
顯示接口:
P2口與P1.5 P1.6 P1.7口
數據接口:
2262數據送出:P14
2272數據輸入:P10
*/
顯示說明
--------------------------------
|地址碼8位 數據碼4位 搜索方向1位 脈沖寬度3位 |
|-------------------------------
|功能狀態8位 搜索時發碼狀態4位 脈寬循環搜索1位 搜索間隔時間1位 |
--------------------------------
地址碼8位 從左到右分別為2262腳1到腳8的接口,0為接地,f為懸空,1為接正
數據碼4位 從左到右分別為2262腳10到腳13的接口,0為接地,f為懸空,1為接正
搜索方向1位 ->:地址碼增加的搜索方向 <-:地址碼減小的搜索方向
脈沖寬度3位 從50到610,相當于振蕩電阻470k到5.0M,
脈沖寬度換算到2262振蕩電阻的計算方法:
電阻=(顯示的寬度/8)×1000 歐姆
即R T窄=4a
470k 58us
1.2M 150us
3.3M 400us
4.7M 580us
2.5M 312us
功能狀態8位 send:2262發碼功能,此時可以修改任何一個地址和數據碼
scandata:地址碼和數據碼搜索功能,從當前顯示的地址開始搜索
receive :2272解碼功能,接收成功,顯示ok,此時不能再收碼。
再按一次接收鍵,顯示receive則,又可以收碼。
搜索時發碼狀態4位 :stop:沒有發碼,暫停搜索。go:正在發碼
脈寬循環搜索1位:顯示@:考慮到大多數的2262配套電阻為1.2,3.3,4.7M,所以在搜碼時
每個搜索的地址數據碼都用這幾個脈沖發送一次
顯示*:固定一個脈沖搜索,該脈沖可以自行設置大小。
搜索間隔時間1位 每發送一次地址數據碼后,延時一定的時間再發送下一個地址數據碼
該時間為從0到7,分別對應于2到200ms。
功能說明
//開機顯示send,直接進入2262功能。
//2262功能實現:非搜索狀態下,按下設置鍵,顯示send,
//按下移動鍵移動光標,修改鍵修改光標所在位置的數據。
//按下發射鍵,則發射所顯示的數據一次,
//2272功能實現:非搜索狀態下,按下設置鍵,顯示RECEIVE
//一旦成功收到數據,顯示ok,再按下接收鍵,重新進入接收狀態,顯示receive
//搜索功能實現:非搜索狀態下,按下設置鍵,
//進入搜索狀態后,顯示scandata,stop;
//按下移動鍵和修改鍵修改搜索的起始地址、脈沖寬度、循環脈寬搜索、搜索間隔時間。
//按下搜索鍵,顯示go,開始搜索,此時進入正在搜索狀態,一旦聽到接收機發出搜索成功的信號,
//按下停止搜索鍵(設置鍵),則在該位置停止搜索,顯示stop,
//然后調整搜索時間更大一點,方向反向,繼續搜索
//再次聽到搜索成功的信號,繼續本步驟,獲得數據。
//搜索碼發出的間隔時間從2ms到200ms,顯示的值為從0到7,第一次搜索時,設置為0,
//此時搜索速度最快,一旦成功搜索,則按下停止鍵,但是,由于人的反應速度可能較慢,停下來時已經又過了幾個搜索碼了,此時可以修改間隔時間為較大的值,反向再搜索。
//顯示搜索方向,地址碼增加 顯示-> 或地址碼減小顯示<- ;顯示位置12
//
//
參數說明:
/*
脈寬參數從50到610us,每個值對應一個窄脈沖寬度,即如下圖一個“地址碼0”的1/8寬度。
地址碼初始值為0000 ffff,鍵值碼為1000,可以修改,脈沖寬度初始為333us。
|~|_______________________________|~~~|_|~~~|_|~|___|~|___|....重復....鍵值碼
|--------開始碼---- -|--地址碼1--|--地址碼0--|1 0 1 0 1 0 鍵值碼
*/
因為該設計為幫他人設計,已經承諾不發表源代碼,所以,各位對不住,只能給一個測試版
的hex文件供各位仿真看看。該版的地址碼前4位屏蔽。
聲明:
該程序適用于使用2262芯片的遙控器丟失或損壞后的代碼搜索,也可以用于遙控器備份,禁止違法使用,否則后果自負,與作者沒有任何關系,該設備是摩托車與電動車維修店的遙控器維修用的得力工具。歡迎各位與我交流。
版本:1.0
計劃升級:增加一個24c芯片,實現數據保存和提取功能,掉電不丟失。(已經完成)
單片機源程序如下:
- L0001: LJMP L0169
- AJMP L0119
- L0002: MOV R7,#40H
- ACALL L0171
- MOV R3,#0FFH
- MOV R2,#06H
- MOV R1,#0CH
- ACALL L0148
- SETB 21H.5
- LCALL L0014
- CLR A
- MOV 32H,A
- MOV P3,#0FFH
- MOV R7,32H
- ACALL L0171
- L0003: MOV A,25H
- XRL A,#02H
- JZ L0004
- AJMP L0013
- L0004: ACALL L0151
- MOV 08H,R7
- MOV A,08H
- JZ L0003
- MOV A,08H
- CJNE A,#0EH,L0005
- ACALL L0137
- SJMP L0003
- L0005: MOV A,08H
- CJNE A,#0DH,L0006
- ACALL L0104
- SJMP L0003
- L0006: MOV A,08H
- CJNE A,#07H,L0003
- CLR 21H.5
- L0007: JNB 21H.5,L0008
- AJMP L0012
- L0008: MOV R7,#4AH
- ACALL L0171
- MOV R3,#0FFH
- MOV R2,#06H
- MOV R1,#1AH
- ACALL L0148
- JB 21H.4,L0010
- MOV R7,3AH
- ACALL L0158
- MOV 3AH,R7
- MOV A,3AH
- XRL A,#88H
- JNZ L0009
- MOV R7,39H
- ACALL L0158
- MOV 39H,R7
- MOV A,39H
- XRL A,#88H
- JNZ L0009
- MOV R7,38H
- ACALL L0158
- MOV 38H,R7
- MOV A,38H
- XRL A,#88H
- JNZ L0009
- MOV R7,37H
- ACALL L0158
- MOV 37H,R7
- MOV A,37H
- XRL A,#88H
- JNZ L0009
- MOV R7,36H
- ACALL L0158
- MOV 36H,R7
- MOV A,36H
- CJNE A,#88H,L0009
- MOV R7,35H
- ACALL L0158
- MOV 35H,R7
- MOV A,35H
- CJNE A,#88H,L0009
- MOV R7,34H
- ACALL L0158
- MOV 34H,R7
- MOV A,34H
- CJNE A,#88H,L0009
- MOV R7,33H
- ACALL L0158
- MOV 33H,R7
- L0009: ACALL L0142
- SJMP L0007
- L0010: MOV R7,3AH
- ACALL L0161
- MOV 3AH,R7
- MOV A,3AH
- XRL A,#0EEH
- JNZ L0011
- MOV R7,39H
- ACALL L0161
- MOV 39H,R7
- MOV A,39H
- XRL A,#0EEH
- JNZ L0011
- MOV R7,38H
- ACALL L0161
- MOV 38H,R7
- MOV A,38H
- XRL A,#0EEH
- JNZ L0011
- MOV R7,37H
- ACALL L0161
- MOV 37H,R7
- MOV A,37H
- XRL A,#0EEH
- JNZ L0011
- MOV R7,36H
- ACALL L0161
- MOV 36H,R7
- MOV A,36H
- CJNE A,#0EEH,L0011
- MOV R7,35H
- ACALL L0161
- MOV 35H,R7
- MOV A,35H
- CJNE A,#0EEH,L0011
- MOV R7,34H
- ACALL L0161
- MOV 34H,R7
- MOV A,34H
- CJNE A,#0EEH,L0011
- MOV R7,33H
- ACALL L0161
- MOV 33H,R7
- L0011: ACALL L0142
- AJMP L0007
- L0012: LCALL L0014
- AJMP L0003
- L0013: RET
- L0014: MOV R7,#4AH
- ACALL L0171
- MOV R3,#0FFH
- MOV R2,#06H
- MOV R1,#15H
- ACALL L0148
- RET
- L0015: ACALL L0134
- ACALL L0166
- MOV R7,#04H
- MOV R0,#33H
- MOV A,#88H
- L0016: MOV @R0,A
- INC R0
- DJNZ R7,L0016
- MOV R7,#04H
- MOV R0,#37H
- MOV A,#8EH
- L0017: MOV @R0,A
- INC R0
- DJNZ R7,L0017
- MOV R7,#03H
- MOV R0,#3CH
- MOV A,#88H
- L0018: MOV @R0,A
- INC R0
- DJNZ R7,L0018
- MOV 3BH,#0EEH
- CLR A
- MOV R7,A
- L0019: MOV A,#3FH
- ADD A,R7
- MOV R0,A
- MOV @R0,#03H
- MOV A,#43H
- ADD A,R7
- MOV R0,A
- CLR A
- MOV @R0,A
- INC R7
- CJNE R7,#03H,L0019
- MOV 42H,#80H
- MOV 25H,#01H
- ACALL L0090
- L0020: MOV A,25H
- JNZ L0030
- MOV R7,#40H
- ACALL L0171
- MOV R3,#0FFH
- MOV R2,#05H
- MOV R1,#0F1H
- ACALL L0148
- L0021: JB 21H.0,L0026
- MOV A,25H
- JNZ L0026
- L0022: JB 21H.2,L0023
- ACALL L0098
- MOV A,25H
- JZ L0022
- L0023: MOV C,21H.1
- JNB P1.0,L0024
- CPL C
- L0024: JNC L0021
- MOV C,P1.0
- MOV 21H.1,C
- JNB 21H.1,L0025
- SETB TR0
- ACALL L0081
- SJMP L0021
- L0025: ACALL L0115
- SJMP L0021
- L0026: JNB 21H.0,L0027
- ACALL L0063
- L0027: ACALL L0090
- MOV R7,#40H
- ACALL L0171
- MOV R3,#0FFH
- MOV R2,#05H
- MOV R1,#0FAH
- ACALL L0148
- L0028: JNB P3.3,L0029
- MOV A,25H
- JZ L0028
- L0029: ACALL L0134
- SJMP L0020
- L0030: MOV A,25H
- CJNE A,#01H,L0031
- ACALL L0110
- SJMP L0020
- L0031: ACALL L0002
- SJMP L0020
- L0032: CJNE R3,#01H,L0033
- MOV A,DPL
- ADD A,R1
- MOV DPL,A
- MOV A,DPH
- ADDC A,R2
- MOV DPH,A
- MOVX A,@DPTR
- RET
- L0033: JNC L0034
- MOV A,R1
- ADD A,DPL
- MOV R0,A
- MOV A,@R0
- RET
- L0034: CJNE R3,#0FEH,L0035
- MOV A,R1
- ADD A,DPL
- MOV R0,A
- MOVX A,@R0
- RET
- L0035: MOV A,DPL
- ADD A,R1
- MOV DPL,A
- MOV A,DPH
- ADDC A,R2
- MOV DPH,A
- CLR A
- MOVC A,@A+DPTR
- RET
- L0036: CJNE R4,#00H,L0037
- CJNE R6,#00H,L0040
- MOV A,R7
- MOV B,R5
- DIV AB
- MOV R7,A
- MOV R5,B
- RET
- L0037: CLR A
- XCH A,R4
- MOV R0,A
- MOV B,#08H
- L0038: MOV A,R7
- ADD A,R7
- MOV R7,A
- MOV A,R6
- RLC A
- MOV R6,A
- MOV A,R4
- RLC A
- MOV R4,A
- MOV A,R6
- SUBB A,R5
- MOV A,R4
- SUBB A,R0
- JC L0039
- MOV R4,A
- MOV A,R6
- SUBB A,R5
- MOV R6,A
- INC R7
- L0039: DJNZ B,L0038
- CLR A
- XCH A,R6
- MOV R5,A
- RET
- L0040: MOV A,R5
- MOV R0,A
- MOV B,A
- MOV A,R6
- DIV AB
- JB OV,L0044
- MOV R6,A
- MOV R5,B
- MOV B,#08H
- L0041: MOV A,R7
- ADD A,R7
- MOV R7,A
- MOV A,R5
- RLC A
- MOV R5,A
- JC L0042
- SUBB A,R0
- JNC L0043
- DJNZ B,L0041
- RET
- L0042: CLR C
- SUBB A,R0
- L0043: MOV R5,A
- INC R7
- DJNZ B,L0041
- L0044: RET
- L0045: MOV R7,#88H
- ACALL L0046
- MOV R7,#88H
- L0046: MOV 20H,R7
- MOV C,20H.7
- MOV P1.4,C
- MOV R7,31H
- L0047: DEC R7
- MOV A,R7
- JZ L0048
- NOP
- NOP
- SJMP L0047
- L0048: MOV C,20H.6
- MOV P1.4,C
- MOV R7,31H
- L0049: DEC R7
- MOV A,R7
- JZ L0050
- NOP
- NOP
- SJMP L0049
- L0050: MOV C,20H.5
- MOV P1.4,C
- MOV R7,31H
- L0051: DEC R7
- MOV A,R7
- JZ L0052
- NOP
- NOP
- SJMP L0051
- L0052: MOV C,20H.4
- MOV P1.4,C
- MOV R7,31H
- L0053: DEC R7
- MOV A,R7
- JZ L0054
- NOP
- NOP
- SJMP L0053
- L0054: MOV C,20H.3
- MOV P1.4,C
- MOV R7,31H
- L0055: DEC R7
- MOV A,R7
- JZ L0056
- NOP
- NOP
- SJMP L0055
- L0056: MOV C,20H.2
- MOV P1.4,C
- MOV R7,31H
- L0057: DEC R7
- MOV A,R7
- JZ L0058
- NOP
- NOP
- SJMP L0057
- L0058: MOV C,20H.1
- MOV P1.4,C
- MOV R7,31H
- L0059: DEC R7
- MOV A,R7
- JZ L0060
- NOP
- NOP
- SJMP L0059
- L0060: MOV C,20H.0
- MOV P1.4,C
- MOV R7,31H
- L0061: DEC R7
- MOV A,R7
- JZ L0062
- NOP
- NOP
- SJMP L0061
- L0062: RET
- L0063: MOV R7,#04H
- MOV R0,#33H
- CLR A
- L0064: MOV @R0,A
- INC R0
- DJNZ R7,L0064
- MOV R7,#04H
- L0065: CLR C
- MOV A,#07H
- SUBB A,R7
- ADD A,ACC
- MOV R6,A
- MOV A,2AH
- MOV R0,06H
- INC R0
- SJMP L0067
- L0066: CLR C
- RRC A
- L0067: DJNZ R0,L0066
- ACALL L0145
- CJNE R7,#08H,L0065
- MOV R7,#08H
- L0068: CLR C
- MOV A,#0BH
-
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
2262仿真.rar
(19.79 KB, 下載次數: 169)
2018-5-28 20:40 上傳
點擊文件名下載附件
pt2262仿真
|