仿真原理图如下(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)
|