lxa0 发表于 2014-7-6 17:35:26

[求助]一个关于红外解码不稳定的问题求教大家

本帖最后由 lxa0 于 2014-7-6 17:43 编辑

本人用的是50462芯片红外遥控手柄
解码过程没问题
问题是:
当按下某个键后解码成功
这时候再换一个键按下后
有时候会出现上次那个键的动作
就是说出现了误动作

检查代码没找出问题所在
困扰我很久
无奈在此求助大家
看这个问题怎么解决
不胜感激



下面是我写的原代码:
;tt1 T1读红外代码子程序<占用区2 >*******************************
org 0290h
tt1:push dph         ;保护现场
push dpl
push acc
push psw
jb 01h,t3
jb 02h,t3         ;全部动作未完成则返回
jb 00h,t2         ;如果收到遥控引导码则进入接收识别模式
mov th1,#00h      ;清T1,为接收做准备
mov tl1,#00h
setb 00h            ;设接收遥控波头准备好标志位
setb tr1            ;开T1中断
sjmp t3
t2:setb psw.4       ;进入区2
clr psw.3
mov a,th1         ;将收到的第一个遥控波头存到30h单元
mov @r0,a
mov th1,#00h      ;清T1,准备读下一位
mov tl1,#00h
inc r0
djnz r1,t3      ;全部信号接收完闭否?
mov 10h,#30h      ;接收完,则恢复10h、11h单元初值
mov 11h,#2fh
clr tr1             ;关T1中断
clr ex1             ;关外部中断1
mov 20h,#00h      ;恢复接收标致位
setb 01h            ;设读取完成标志并允许转换标志位
t3:pop psw
pop acc
pop dpl
pop dph
reti

;zh转换子程序<占用区1>*********************************************
org 0300h
zh: push dph            ;将识别后的遥控信号转换成16位动作代码
push dpl
push acc
push psw
setb psw.3            ;进入区i
clr psw.4
mov r0,#2fh
mov r1,#07h             ;8位一小组
jb 00h,h01
jb 02h,h01
jb 01h,h0
h00:setb ex1
mov 20h,#00h         ;清除上次的标志         
mov 21h,#00h         ;清除上次的动作指令
h01:mov 08h,#2fh
mov 09h,#07h
pop psw
pop acc
pop dph
pop dpl
ret
h0: inc r0               ;取第一组第一位
cjne r0,#51h,h1          ;是否干扰?
sjmp h00               ;是则返回
h1: jc h2
sjmp h00
h2: cjne @r0,#03h,h0   ;开始转换第一组第一位
inc r0
cjne @r0,#03h,h0
inc r0
cjne @r0,#03h,h0
inc r0
cjne @r0,#01h,h0
inc r0
cjne @r0,#01h,h0
inc r0
cjne @r0,#01h,h0
inc r0
cjne @r0,#03h,h0
inc r0
cjne @r0,#01h,h0
cjne r0,#59h,h3       ;地址码正确否?
sjmp h00
h3: jc h4
sjmp h00
h4: inc r0            ;开始转换指令码
mov a,@r0
jb acc.1,h5
clr 08h
sjmp h6
h5: setb 08h
h6: mov a,21h
rl a
mov 21h,a
djnz r1,h4            ;8位指令码转换完否?
setb 02h            ;设置允许执行动作标志位
clr 01h               ;清除允许转换标志位
ajmp h01

lxa0 发表于 2014-7-6 17:39:39

网上搜索的50462的资料

怎么不能上传图片了?????????????????

lxa0 发表于 2014-7-7 00:03:28

本帖最后由 lxa0 于 2014-7-7 00:04 编辑

只有几个人浏览过本帖子了
...................

zxd08 发表于 2014-7-7 09:27:27

用分析仪测量波形,看发的码对不对应那个键,发射没问题的话,就是接收解码的问题 了

lxa0 发表于 2014-7-7 10:26:32

zxd08 发表于 2014-7-7 09:27
用分析仪测量波形,看发的码对不对应那个键,发射没问题的话,就是接收解码的问题 了 ...

解码没问题
都可以照指令动作的
就是有时后会误动作

szpspike 发表于 2014-7-7 10:30:53

汇编现在看不懂了
不知道50462有没有连按码,有没有处理连按码

zyyn123 发表于 2014-7-7 11:13:25

楼主的汇编看不懂,楼主键码执行完动作,码值清空了吗?

zxd08 发表于 2014-7-7 16:52:27

lxa0 发表于 2014-7-7 10:26
解码没问题
都可以照指令动作的
就是有时后会误动作

还没分析出误出作是发射造成的还是接收造成的?

lxa0 发表于 2014-7-7 23:46:55

szpspike 发表于 2014-7-7 10:30
汇编现在看不懂了
不知道50462有没有连按码,有没有处理连按码

有连按码
我是接收3组后
找出其中的2组做比较
一致的话才动作的

lxa0 发表于 2014-7-7 23:47:58

zyyn123 发表于 2014-7-7 11:13
楼主的汇编看不懂,楼主键码执行完动作,码值清空了吗?

是的清理了

mov 20h,#00h
mov 21h,#00h
mov 22h,#00h
上3句就是做清理的代码

lxa0 发表于 2014-7-7 23:48:35

zxd08 发表于 2014-7-7 16:52
还没分析出误出作是发射造成的还是接收造成的?

这个还真没分析出来
所以请大家帮助

lxa0 发表于 2014-7-9 00:24:49

继续求助~~~~~~~~~~~~~~

qq335702318 发表于 2014-7-9 08:48:37

汇编....
肯定是逻辑有问题

lxa0 发表于 2014-7-9 11:40:54

qq335702318 发表于 2014-7-9 08:48
汇编....
肯定是逻辑有问题

我也知道有错误
但是就是找不出来呀
..............

qq335702318 发表于 2014-7-9 21:05:07

lxa0 发表于 2014-7-9 11:40
我也知道有错误
但是就是找不出来呀
..............

用C吧,,汇编基本没人人能帮你

lxa0 发表于 2014-7-10 15:22:01

qq335702318 发表于 2014-7-9 21:05
用C吧,,汇编基本没人人能帮你

老朽已年过半百
学不进去 C 了呀
页: [1]
查看完整版本: [求助]一个关于红外解码不稳定的问题求教大家