




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51单片机定时器初值的计算 一。10MS定时器初值的计算:1.晶振12M12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次 机器周期。65536-10000=55536(d8f0)TH0=0xd8,TL0=0xf0 2.晶振11.0592M11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。65536-9216=56320(dc00) TH0=0xdc,TL0=0x00二。50MS定时器初值的计算:1.晶振12M12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。65536-50000=15536(3cb0)TH0=0x3c,TL0=0xb02.晶振11.0592M11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。65536-46080=19456(4c00) TH0=0x4c,TL0=0x00三。使用说明以12M晶振为例:每秒钟可以执行1000000次机器周期个机器周期。而T 每次溢出最多65536 个机器周期。我们尽量应该让溢出中断的次数最少(如50ms),这样对主程序的干扰也就最小。开发的时候可能会根据需要更换不同频率的晶振(比如c51单片机,用11.0592M的晶振,很适合产生串口时钟,而12M晶振很方便计算定时器的时间),使用插接式比较方便。51单片机12M和11.0592M晶振定时器初值计算2011-01-04 22:25at89s52版权保护,请不要随意复制%#$32430)98sa。_,晶振频率12m 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_其程序如下: 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_引用代码:#include 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_#include 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_voidtimer0_init() 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ TMOD=0x01;/方式1 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ TL0=0xb0; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ TH0=0x3c; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ TR0=1; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ ET0=1; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_voidtimer0_ISR(void)interrupt1 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ TL0=0xb0; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ TH0=0x3c;/50ms中断一次 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ single+; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ if(single=20) 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ kk+; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ single=0; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_voidmain() 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ intkk=0;/计数器 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ intsingle=0; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_ timer0_init(); 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98saTL0=0xb0; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_TH0=0x3c; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_这两个是怎么算出来得 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_如果晶振不是12Mhz 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_是11.0592MHz 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_怎么算 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_12M的晶振每秒可产生1M个机器周期版权保护,请不要随意复制%#$32430)98sa。_,50ms就需要50000个机器周期版权保护,请不要随意复制%#$32430)98sa。_,定时器在方式1工作版权保护,请不要随意复制%#$32430)98sa。_,是16位计数器版权保护,请不要随意复制%#$32430)98sa。_,最大值为65536版权保护,请不要随意复制%#$32430)98sa。_,所以需设置初值15536版权保护,请不要随意复制%#$32430)98sa。_,即3CB0H(10进制15536转换成16进制数3CB0)版权保护,请不要随意复制%#$32430)98sa。_,所以TH0=0x3c版权保护,请不要随意复制%#$32430)98sa。_,TL0=0xb0。 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_(65536-50000周期=初值15536) 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_高位就是TH0的值版权保护,请不要随意复制%#$32430)98sa。_,低位为TL0的值 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_11.0592M的晶振每秒可产生0.9216M个机器周期版权保护,请不要随意复制%#$32430)98sa。_,50ms就需要46080个机器周期版权保护,请不要随意复制%#$32430)98sa。_,定时器在方式1工作版权保护,请不要随意复制%#$32430)98sa。_,是16位计数器版权保护,请不要随意复制%#$32430)98sa。_,最大值为65536版权保护,请不要随意复制%#$32430)98sa。_,所以需设置初值19456版权保护,请不要随意复制%#$32430)98sa。_,即4C00H版权保护,请不要随意复制%#$32430)98sa。_,所以TH0=0x4c版权保护,请不要随意复制%#$32430)98sa。_,TL0=0x00。 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_其实很简单版权保护,请不要随意复制%#$32430)98sa。_,不管你使用多大的晶振版权保护,请不要随意复制%#$32430)98sa。_,使用51单片机版权保护,请不要随意复制%#$32430)98sa。_,一般都是12分频出来版权保护,请不要随意复制%#$32430)98sa。_,也就可以得出一个机器周期 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_机器周期=12/n(n指晶振频率)版权保护,请不要随意复制%#$32430)98sa。_,假设你要定时的时间为M 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_那么定时的初值为: 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_M/机器周期=初值; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_TH0=(65536-初值)%256; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_TL0=(65536-初值)/256; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_将(65536-初值)所得的值化成16进制版权保护,请不要随意复制%#$32430)98sa。_,其高位就是TH0的值版权保护,请不要随意复制%#$32430)98sa。_,低位为TL0的值 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_例如用12M晶振做1ms定时计算如下: 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_机器周期=12/12*106=1us(微秒) 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_定时初值=(1*10-3)/(1*10-6)=1000; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_所以:TH0=(65536-1000)%256; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_TL0=(65536-1000)/256; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_将65536-1000=64536化为16进制为:0xFC18 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_TH0=0xFC; 版权保护版权保护,请不要随意复制%#$32430)98sa。_,请不要随意复制%#$32430)98sa。_TL0=0X18; 单片机T2定时器实现1秒精确定时程序日期:2008-07-29 来源:东哥单片机学习网 作者:佚名字体:大 中 小 (投递新闻)单片机T2定时器实现1秒精确定时程序/* *文件名:test.c *功能:使用T2定时器实现1秒精确定时并闪灯 *1.CPU型号:AT89S52 *2.晶振:12.000MHz */ #includereg52.h/包含头文件 #defineuintunsignedint #defineucharunsignedchar sbitP1_7=P17;/定义位变量 /* *函数名称:Timer2_Server() *功能:定时器2溢出中断。 *入口参数:无 *出口参数:无 *注意:在本函数中设置了一个静态变量Timer2_Server_Count,静态变量的值在进入函数时是不会被 *初始化的,而是保持上次的值。它用来计数T2定时器的溢出次数(进入本函数的次数),每 *溢出16次,就控制一次LED11反转显示。这时的时间正好是1秒,而且是精确的1秒!只与晶振 *的精度有关。 */ voidTimer2_Server(void)interrupt5 staticuintTimer2_Server_Count; /定义静态变量,用来计数T2定时器的溢出次数(进入本函数的次数) TF2=0; /T2定时器发生溢出中断时,需要用户自己清除溢出标记,而51的其他定时器是自动清除的? Timer2_Server_Count+; if(Timer2_Server_Count=16)/T2定时器的预装载值为0x0BDC,溢出16次就是1秒钟。 Timer2_Server_Count=0; P1_7=P1_7;/LED11反转显示。 /* *函数名称:main() *功能:使用T2定时器实现1秒精确定时并使LED11闪灯,即LED11亮1秒,灭1秒,亮1秒,灭1秒. *注意: *1、要精确定时,必须使用定时器的自动装载方式。本实验使用T2定时器,让它工作在16bit自动 *装载方式,这时,有另一个位置专门装着16位预装载值,当T2溢出时,预装载值立即被装入, *这就保证了精确定时。 *2、T2定时器是一个16位定时器,最长的溢
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年城市综合体商业空间多业主租赁合作协议书
- 2025年环保型堡坎施工及绿色施工技术支持合同
- 2025年度智慧城市网络安全监测与维护服务合同
- 2025年民宿经营居间合同(含家具家电租赁、更换及保养服务)
- 二零二五年度社区消防安全管理培训及隐患排查服务协议
- 2025年校园食堂餐饮服务外包合同范本
- 2025年度特色餐饮店食品安全管理责任险合同范本
- 2025年校园资产重组股权收购项目及教育咨询服务协议
- 2025年度数字音乐作品海外发行与版权收益分成合同
- 少数民族知识培训会课件
- GB/T 14153-1993硬质塑料落锤冲击试验方法通则
- (完整版)人教版八年级下册《道德与法治》期末测试卷及答案【新版】
- 并购贷款业务培训
- 北京大学人民医院-医疗知情同意书汇编
- 档案管理员述职报告9篇
- 建设集团有限公司安全生产管理制度汇编
- 牙体牙髓病最全课件
- 交通信号控制系统检验批质量验收记录表
- 疫苗运输温度记录表
- 各国钢材-合金牌号对照表
- 医院定岗定编要点
评论
0/150
提交评论