- UID
- 540584
- 阅读权限
- 25
- 推广
-
- 幽默
-
- 注册时间
- 2014-1-8
- 最后登录
- 1970-1-1
|
注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。
您需要 登录 才可以下载或查看,没有帐号?快速注册
x
看看我的帖子,介绍配遥控方法
单片机解码PT2262与1602显示
最近研究315M解码最下面增加了发送遥控码功能,记忆功能
超外差模块驱动能力很强,可以直接联接单片机I口,集成晶振模块驱动能力有限,无法驱动单片机IO口,需要加驱动三极管组成射集跟随器驱动同步头是一个高电平脉冲和一个长的低电平组成,图片是9.3ms左右的同步头,要连续检测到两个同步头(绕开中间24个脉冲)相同才能确认是正确的信号。解码成功后,蜂鸣器响一声
第一排显示同步头时间:XX.Xms
第二排显示密码和数据:F1000010 1001
常见密码大家都熟悉:00=0、01=F、11=1,还有遥控有10,开始以为我解码错误,后来电脑分析波形才知道,特增加了10=D,扩大解码范围,这种波形出现在电动车遥控比较多。
如果多人跟帖,有兴趣,我会继续更新贴新加入了发射接收到的315M遥控信号功能,并保存到24C02中
下次开机直接读取24C02数据作为比较信号和接收的信号比较,控制SSR输出
按下K1发射存储在24C02中的信号(最少发送5遍信号)
按下S1手动控制SSR输出
按下S0记忆当前接收到的信号到24C02中
下图是新程序,增加的功能显示
部分程序:
- SPK EQU P3.7 ;蜂鸣器
- RS bit P2.7 ;引脚定义
- RW bit P2.6
- E bit P2.5
- LCD EQU P0
- IRIN BIT P3.2 ;315M信号输入端
- FAST BIT P3.5 ;315M信号发射端
- K1 BIT P1.0 ;开关控制发射
- S0 BIT P1.1 ;学习按键(解码正确后,按键按下就学习成功)
- S1 BIT P3.3 ;手动开关,控制输出
- sda BIT p3.4 ;5脚
- scl BIT p3.3 ;6脚
- address equ 40h ;256字节地址数
- cdate equ 2Ah ;数据暂时存放单元
- SSR BIT P3.0 ;输出端
- ORG 00H
- LJMP MAIN
- ORG 03H ;外部中断INT0入口地址
- LJMP INT_0
- ORG 40H
- ;====================================主程序==================================
- MAIN:
- CLR FAST
- SETB IRIN
- LCALL COPY ;读取24C02中的数据作为遥控开关比较数据
- MOV 3AH,#20 ;控制蜂鸣器时间
- LCALL FS_SPK ;蜂鸣器响一声(没有检测到24C02,蜂鸣器开机不响)
- WU2402:
- MOV LCD,#00000001B ;清屏并复位光标
- LCALL WR_COMM ;调用写指令子程序
- LCALL INIT_LCD ;调用初始化子程序
- MOV SP,#60H
- LCALL DISP ;显示
- SETB EA ;打开CPU总中断请求
- MOV TMOD,#00010001B ;模式1定时模式
- MOV TH0,#00H
- MOV TL0,#00H
- SETB IT0 ;设定INT0的触发方式为脉冲负边沿触发
- SETB EX0
- UUUU:
- JNB S1,A2
- JB K1,UUUU ;有按键就发送遥控码
- CLR EA ;关闭中断,让遥控码发送完成不受干扰
- MOV A,2CH
- CPL A
- MOV 2CH,A
- LCALL TTTT
- SETB EA
- JMP UUUU
- ;============================按键程序====================================
- A2: LCALL DELAY_10MS
- JB S1,A2_EN
- CPL SSR ;开关动作一次
- A2_EN:
- RET
- DELAY_10MS:
- MOV R6,#25
- XX0: MOV R7,#20
- XX1: DJNZ R7,$
- DJNZ R6,XX0
- RET
- ;=========================读出24C02数据==================
- copy:
- mov r0,#2Ah ;r0作为间接寻址
- mov address,#00h;地址清零
- ; mov 2Ah,#0 ;清零准备装入上次24C02存储的数据
- ; mov 2Bh,#0 ;读出的数据放在2AH/2BH/2CH中
- ; mov 2Ch,#0
- ; mov 2Dh,#0
- mov r5,#4
- s: mov r2,#10100000b ;写存储器1010(为24c系列统一识别码)001(为芯片地址码A2/A1/A0)最后一位是读写位
- mov r4,#10100001b ;读存储器
- MOV R3,#50
- Lcall read ;调用读存储器程序
- inc address ;地址加1
- inc r0
- djnz r5,s ;减1后不为0继续返回S
- ret
- ;----------------------------------
- read: lcall start ;启动总线
- mov a,r2
- lcall send
- lcall ack
- jc read ;
- mov a,address
- lcall send
- lcall ack
- read_a:
- lcall start
- mov a,r4
- lcall send
- lcall ack
- jc read_a
- rece:
- lcall receive
- mov @r0,a ;读到数据存储到@R0指定地址
- lcall ack
- lcall stop
- ret
复制代码
下面的烧写文件,晶振选4M,单片机STC89C52RC接线按照主程序上面的引脚定义接线就行,保证成功
为了防止不法人员利用程序偷盗别人遥控器码,程序我做了修改,只能解码一次就需要从新启动
发送数据也是发送一次就不能再发送信号了,需要重启。
我的程序没有网上说的要在接收模块后面加倒相才能单片机中断解码,而是直接驱动单片机解码,不过用了LM358跟随器,增加模块驱动能力。我的程序对于震荡电阻1M---8.2M范围都能解码,对震荡电阻大小都能解码,现在研究解码后,还能发射遥控码功能,保存遥控码,成为学习型多功能遥控解码发射功能。 |
|