用51单片的IO口模拟38k根本不可能实现,对吧?

2020-01-30 13:51发布

最近用51的定时器模拟38k红外通信,发现死活没办法通信,最后发现。。。当定时器中断产生的时候进入中断处理函数然后加上一些七七八八的寄存器赋值,应该要花上30几个机器周期,而我算过了,一个机器周期是1us左右。。。也就是说即使你定时1us,你产生的载波也不可能是 13us,13us是38k/2也就是19kh,而13us又是必须的!所以说,用12M晶振的51单片机IO口是模拟不出38k载波的,,,对不对?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
chaily
2020-01-30 15:44
仅仅是模拟38K的载波是可以的,一个周期26us,占空比是30%左右,可以输出9us低电平,17us高电平或者反过来,然后一直循环。注意,50%占空比是不行的,占空比要在25%-35%左右是最佳的。用定时器也是可以的。但是如果要加入很多编码什么什么的,不是不行,是要好好想想怎么写程序了,本来很多51学习板上就有红外发射和解码的例程。

一周热门 更多>