完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
菜鸟最近在看红外发射的程序,有一点始终没弄明白,求解释
51单片机利用定时器0模式2产生38khz发射红外信号,为什么用12MHz晶振时,要定时26us即初值=0XE6;但是用22.1184M晶振,定时就变成了13us即初值0xE8。这个用不同的晶振产生38khz发射红外信号,初值或者说时间是怎么算出来的? 求高手指点 |
|
相关推荐
7个回答
|
|
本帖最后由 lovezjf234 于 2012-8-10 09:59 编辑
一个单片机的运转速度和晶振有关,单片机内部是12分频,这样12M的晶振一个周期是1us,同样24M的话就是0.5us,模式2的话就是256次循环周期,需要26us的话只要计数26次溢出,那么初始值就是255-26;化成16进制的话大概是0xE6 |
|
|
|
奥,这个算初值的懂了,谢谢,但是为什么26us就能产生38khz的信号呢,这两个之间又有什么关系呢? |
|
|
|
38KHz代表1秒产生38k个方波,现在一个方波要26us。后面你就自己算好。 |
|
|
|
根据公式 f=1/t f 是38KHz 那么t=1/38=约26us
|
|
|
|
我刚懂的,12mhz下,38khz,算出的26us是一个完整的方波,就是说每13us要取一次反,得到的才是38khz,初值就是f4;如果初值e6的话,得到的是19khz,这样就不对了
|
|
|
|
其实这个就是纯计算,首先你要知道单片机的机器周期是晶振周期的12倍,比如你的晶振是a兆赫兹,则你要求的那个值b为:12*(1/a)/100000,然后你现在的定时器方式为方式二,就用2的8次减去b即可,转成16进制即可,希望对你有帮助
|
|
|
|
去看看单片机定时时间设置
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之电阻屏触摸
769 浏览 0 评论
1276 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之I2C-RTC
552 浏览 0 评论
ATK-DLRK3588开发板deepseek-r1-1.5b/7b部署指南
2890 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第五十章 WiFi热点实验
876 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12384 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-23 12:17 , Processed in 0.495721 second(s), Total 48, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191