已阅读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重庆南岸区海棠溪街道办事处公益岗招聘11人备考题库及答案详解1套
- 2025宁波市鄞州区五乡镇人民政府代招村工作人员2人备考题库及答案详解(夺冠)
- 2025年甘肃省白银市靖远县北滩镇选聘专业化管理村文书备考题库含答案详解(综合题)
- 南京银行2026届全球校园招聘备考题库及答案详解1套
- 2025陕西咸阳市秦都区招聘社区专职工作人员230人备考题库附答案详解(基础题)
- 2025广东南粤银行重庆分行招聘备考题库及答案详解(夺冠系列)
- 高空天气预报与航空安全规范
- 个性化营养方案在难治性糖尿病中的应用
- 2025河北衡水市公安局公开招聘警务辅助人员4人备考题库附答案详解(b卷)
- 个性化医疗方案满足跨境游客多元需求
- 文档新写实小说
- 六年级上册科学全册知识点(新改版苏教版)
- 大力弘扬新时代斗争精神PPT怎样弘扬新时代斗争精神PPT课件(带内容)
- 数据库应用与开发知到章节答案智慧树2023年华侨大学
- (23春)国家开放大学《政府经济学》形考任务1-4参考答案
- 河北省单招九类职业适应性测试考试试题
- 松花江水污染事件工程伦理案例分析
- 黑龙江省佳木斯市桦南县化工园区污水处理厂建设项目环评报告书
- GB/T 8570.5-2010液体无水氨的测定方法第5部分:水分卡尔·费休法
- GB/T 39337-2020综合机械化超高水材料袋式充填采煤技术要求
- GB/T 39145-2020硅片表面金属元素含量的测定电感耦合等离子体质谱法
评论
0/150
提交评论