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

2020-01-30 13:51发布

最近用51的定时器模拟38k红外通信,发现死活没办法通信,最后发现。。。当定时器中断产生的时候进入中断处理函数然后加上一些七七八八的寄存器赋值,应该要花上30几个机器周期,而我算过了,一个机器周期是1us左右。。。也就是说即使你定时1us,你产生的载波也不可能是 13us,13us是38k/2也就是19kh,而13us又是必须的!所以说,用12M晶振的51单片机IO口是模拟不出38k载波的,,,对不对?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
Lin_abc
2020-01-31 17:57
51单片机+12MHZ晶振可以做,在写代码时要注意,另外用定时器去做红外,本身就是比较耗资源的,一般不推荐这样做。 你可以在单片机外部搭建一个38KHZ震荡电路,同时使用单片机的UART口进行数据采集和发送,不仅能靠UART口搞定奇偶校验和传输波特率, 同时,还可释放单片机的其他资源,使处理器更专注于任务调度和处理, 处理器一般不适合直接进行数据采集,尤其是高速的数据采集,因为太占资源,影响整个系统的运行效率。

一周热门 更多>