打印

再来一条鱼----精典的全双工红外串口

[复制链接]
2181|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zenyin|  楼主 | 2010-1-29 16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很贫穷哈:))这就是软件的力量!
软件编码,单片机硬件编码!



一体化红外接收头是个怪老头,没有红外发送它肯定不收,老有红外发送(叫载波)它也不收,那间隙调制载波它就收?!不全面严格说来长时间(超过60MS以上的调制波)它也不收!需要说明的是它收到时是低电平!

大家跟我一起来51单片机来编程,我们的晶体是24M  12分频!波特率2.4K
没彻底搞懂的朋友以为38.4K是红外发送频率,我们收不到是因为频率不对------是我们不对,我们不对怪老头的脾气!38K可以40K也可以区别不大就标称的38.4吧光鲜点就选它吧!
2M/38.4K=取52吧 于是我们装数52  错!装256-52有进步可也错!该装256-26!---因为是一高一低(各12.6US)取反才产生38.4K啊!定时器0定时器1全部方式2,重装入无误差!串口设置8,2400,N.1
再算一下1000000/(2400*12.6)=33  但我们取32误差1/32很小可尽管用


假设我们发送的数据是7FH  =  01111111B
我们先发起始位,发送计数FOR32次到,起始位完毕,下面继续发7FH的0?错!!!串口是低位在前的,所以发1,1不是不发送吗?所以我们“分开进行”7次不发送!现在发到D7了,再发送32次的38.4K停止发送,完了,一幁数据发完!


接收呢,串口硬件自动接收啊!则发送自己编码接收硬件解码,一般说来发送是主动已知的所以不痛苦,接收痛苦呢!


总结:先发一个起始位32次,随后到着看八次一还是0,0发送1不发送,发送完8位关闭发送,就到这里吧!


先算一下2.4

相关帖子

沙发
zenyin|  楼主 | 2010-1-29 16:21 | 只看该作者
图来了不好意思忘跟进了!

使用特权

评论回复
板凳
mcu_lover| | 2010-1-29 20:55 | 只看该作者
图在哪儿呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

393

帖子

5

粉丝