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

2020-01-30 13:51发布

最近用51的定时器模拟38k红外通信,发现死活没办法通信,最后发现。。。当定时器中断产生的时候进入中断处理函数然后加上一些七七八八的寄存器赋值,应该要花上30几个机器周期,而我算过了,一个机器周期是1us左右。。。也就是说即使你定时1us,你产生的载波也不可能是 13us,13us是38k/2也就是19kh,而13us又是必须的!所以说,用12M晶振的51单片机IO口是模拟不出38k载波的,,,对不对?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
424x3
2020-01-30 20:58
用汇编+示波器  这些串行输出的编码 都是可以搞定的
38kHz载波   1M的代码速度   一个SETB  一个CLR都是1个时钟周期   
  1M/38kHz =26  按照30%  大概8个CLR  18个SETB  说是是可以的

说下我最近弄的一个方案吧   用STC带PWM功能的单片机  选好合适的晶振  调输出到38kHz左右
   根据编码来控制PWM的输出有无

一周热门 更多>