你的程序单独看是没有问题的。我想关键在于发射编码究竟如何?你所谓“第一次可以,以后就不行了”,是不是每次复位后的第一次发射和接受是正常的?如果是这样的,说明还是连发的处理不是很合适。发生连发时,应该将25H-28H清空。否则第二次发射时,25H-28H已经有了部分不完整的数据,造成移位过程中的错误数据,接受失败。
我的意见不一定正确,仅供参考。
NEC遥控接收问题
NEC遥控接收问题出错在位接收上。
我看程序有点问题,主要是在接收位上,应该是每接受8位后才把FSR-1,在回到接受程序上。如此进行4次可以接受32位的数据。
发表于:2003-03-04 20:46:38
并不是位接收问题
我那程序的位接收问题不是先接收8位再保存的,那个4次循环指的是每接收一位后即改变STATUS标志位C,同时4个接收寄存器依次带C位移位,等到接收32位后(即第1位移位32次后恰好保存到了第一个接收寄存器的第7位,第2位移到了第6位)你可以自己演示一下,这样32位正好保存到了4个寄存器中。
可以参见我那段程序的STEP3,STEP4。
很感谢有这么多热心的朋友关心这个问题!
=========================
红外线遥控编码有几种类型
类型不知道,但格式有上千种
我要做个通用型的红外接收器, 就是不管遥控器发送什么码,反正照收不误, 然后按原样把它发送出去, 我想用PIC做,你看要用哪种型号的控制器做较好!
发表于:2003-08-26 17:26:08
既然是转发你管他格式干什么?
你又不解码,只要检测联接红外管的PIC的I/O口的电压变化就行了,再在另一个脚把他发送出去。送你一个检测红外的小程序。只不过要自己做一点电路。点击浏览该文件
我用他做过东西,不是十分精确,但是如果是误码是可以看出来的,有时连续测量的话他会误操作,所以我一般只看前面的十来次,要精确还是用示波器看好,不知到有人在网上推销的叫电脑示波器的东西什么样好不好使?
最后一位数据位的宽度如何检测!!
以红外接收器为准,如果没有遥控信号的情况下,接收器的输出端是不是高电平,如果是,最后一位码,0.56ms低电平过后,接着是出现高电平对吧,那高电平的宽度如何确定就不好办了
上一页 [1] [2]
本文关键字:如何 红外线 51单片机,单片机-工控设备 - 51单片机