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

2020-01-30 13:51发布

最近用51的定时器模拟38k红外通信,发现死活没办法通信,最后发现。。。当定时器中断产生的时候进入中断处理函数然后加上一些七七八八的寄存器赋值,应该要花上30几个机器周期,而我算过了,一个机器周期是1us左右。。。也就是说即使你定时1us,你产生的载波也不可能是 13us,13us是38k/2也就是19kh,而13us又是必须的!所以说,用12M晶振的51单片机IO口是模拟不出38k载波的,,,对不对?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
qllaoda1
1楼-- · 2020-01-31 10:50
试过,完全可以
czzhouyun
2楼-- · 2020-01-31 14:32
遥控器上用3 4M的晶振的台系的小资源的芯片都能搞定,51搞不定那是水平未到吧
wxw1983
3楼-- · 2020-01-31 14:50
 精彩回答 2  元偷偷看……
mcu5i51
4楼-- · 2020-01-31 16:12
放开思想,可以软件延时,也可以PWM,另外标准51的话相应中断不会大于6个周期,通常小于4个,看你怎么做了,一个波形还有不需要保存一堆寄存器,如果50%占空比的话一条取反指令足以;
caicai2317
5楼-- · 2020-01-31 17:26
我用1T单片机,12M晶振做过,载波38k,占空比50%,可以用,当然了,33%更好
Lin_abc
6楼-- · 2020-01-31 17:57
51单片机+12MHZ晶振可以做,在写代码时要注意,另外用定时器去做红外,本身就是比较耗资源的,一般不推荐这样做。 你可以在单片机外部搭建一个38KHZ震荡电路,同时使用单片机的UART口进行数据采集和发送,不仅能靠UART口搞定奇偶校验和传输波特率, 同时,还可释放单片机的其他资源,使处理器更专注于任务调度和处理, 处理器一般不适合直接进行数据采集,尤其是高速的数据采集,因为太占资源,影响整个系统的运行效率。

一周热门 更多>