完善资料让更多小伙伴认识你,还能领取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板卡-LCD显示图片编程示例之介绍mmap
72 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
509 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
546 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
545 浏览 0 评论
1008 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 14:32 , Processed in 0.703670 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号