




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章8051定时器/计数器的C编程,定时/计数器-定时/计数器的定时和计数功能、定时器计数器的控制寄存器、定时器计数器的工作方式、定时计数器用作外部中断扩展、定时中断联合举例。,本章主要介绍51系列单片机定时器/计数器问题,本章将介绍以下具体内容:,一、定时/计数器的定时和计数功能,在TMOD中,各有一个控制位(CT),分别用于控制定时/计数器T0和T1是工作在定时器方式还是计数器方式。,1.定时功能-计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。,2.计数功能-计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。当T0或T1脚上负跳变时计数值加1。,定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1)。,二、定时器计数器的控制寄存器,与定时器计数器有关的控制寄存器有:,1定时器控制寄存器TCON,中断请求标志,触发方式选择,启动定时/计数器,0低电平1下降沿,0停止1启动(软件设置),2工作方式控制寄存器TMOD,T1控制,T0控制,GATE门控位,M1M0工作方式选择,3计数寄存器TH和TL,T/C是16位的,计数寄存器由TH高8位和TL低8位构成。在SFR中,对应T/C0为TH0和TL0,对应T/C1为TH1和TL1。定时器/计数器的初始值通过TH1/TH0和TL1/TL0设置。,计数脉冲输入,三、定时器计数器的工作方式,定时器计数器共有四种工作方式,1.方式013位方式,13位计数器,定时器,计数器,2.方式116位方式,3.方式28位自动装入时间常数方式,4.方式32个8位方式,仅T0可以工作在方式3此时T0分成2个独立的计数器TL0和TH0。,TL0可作定时器/计数器,用原来T0的控制信号(TR0、TF0);TH0只能作定时器用,用原来T1的控制信号(TR1、TF1)。,只有将T/C1用作串行口的波特率发生器时,T/C0才工作在方式3,以便增加一个定时器。,四、定时器/计数器的初始化,1.初始化步骤,(1)确定T/C的工作方式,编程TMOD寄存器;,(2)计算T/C中的计数初值,并装载到THi和TLi;,(3)开T/C中断和CPU中断,编程IE中的ETi和EA位;,(4)启动T/C,编程TCON中的TRi位。,可编程器件在使用前需要进行初始化:,2.计数初值的计算,(1)定时器的计数初值,若fosc=6MHz,一个机器周期为12/fosc=2us。则:,方式013位定时器最大定时间隔=2132us=16.384ms;,方式116位定时器最大定时间隔=2162us=131.072ms;,方式28位定时器最大定时间隔=282us=512us;,若T/C工作在定时器方式1,要求定时1ms,求计数初值。,需计数次数:,因此,TH、TL可置-500。,(2)计数器的计数初值,方式013位计数器的满计数值=213=8192;,方式116位计数器的满计数值=216=65536;,方式28位计数器的满计数值=28=256;,若T/C工作在计数器方式2,要求计数10个脉冲的计数初值。,需计数次数:,因此,TH=TL=-10。,例题1:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500s的方波脉冲,并由P1.0输出。试以中断方式实现。,五、应用举例,TMOD确定,T1控制,T0控制,控制字TMOD=0 x10;,要产生500s的方波脉冲,只需在P1.0端以250s为间隔,交替输出高低电平即可实现。为此,定时间应为250s。使用6z晶振,则一个机器周期为2s,则:250us/2us125。TH1=-(125/256),TL1=-(125%256),计算计数器的计数初值;,或者,设待求计数初值为,(216X)210-6=25010-6即216X=125X216-125=10000H-7DH0FF83H所以,初值为:TH1=0FFH,TL1=83H,采用中断方式:编程时打开全局和局部中断。EA=1;ET1=1;,由定时器控制寄存器TCON中的TR1位控制定时器的启动和停止。TR1=1;/启动;TR1=0;/停止。,程序设计,主程序:,main()TMOD=0 x10;/T1为方式1TH1=0 xFF;TL1=0 x83;/初值EA=1;/允许中断ET1=1;TR1=1;/启动定时for(;)/等待中断,voidt1()interrupt3using0TH1=0 xFF;/重新设置初值TL1=0 x83;P1.0=!P1.0;/输出取反,中断处理程序:,例题2:设晶振频率fOSC=6MHz,分别讨论各种工作方式下最长定时时间。,解:1.由fOSC=6MHz可知,MC=2us;2.由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。所以此时有:方式0:(2130)2us=214us=16384us=16.384ms,方式1:(2160)2us=217us=131.072ms,方式2、3(280)2us=29us=0.512ms,注意:以上是当fOSC=6MHz,即MC=2us时各种方式下的定时时间,若fOSC=12MHz,则最长定时时间将缩短一半。,例题3:1.分别用2种定时方式使P1.1口输出信号,点亮LED,LED点亮时间为50ms。方式1:利用调用延时子程序方式;方式2:利用定时器定时50ms,设晶振频率为12MHz。2.题目中没有指明用T0还是T1,可任意,我们用T0。,T1控制,T0控制,控制字01H,确定TMOD控制字,计算计数器的计数初值;,(216X)110-6=5010-3即216X=50000X216-50000=10000H-C350H3CB0H所以,初值为:TH0=3CH,TL0=B0H,采用中断方式:编程时打开全局中断:置位EA局部中断:置位ET0。,置位TR0位控制定时器的启动。,程序设计,MAIN()TMOD=0 x01;/T0为方式1TH0=0 x3C;TL0=0 xB0;/初值EA=1;/允许中断ET0=1;TR0=1;/启动定时,主程序:,VoidINTT0()interrupt1using2TH0=0 x3C;TL0=0 xB0;P1.1=!P1.1;/输出取反,中断处理程序:,8051,P1.0,P1.7,R,LED7,.,R,LED0,.,例题4:1.通过P1.0P1.7分别轮流送“1”给8个灯;,2.每次持续时间20分之一秒,即50ms,,由定时器T0来定时,又知fOSC=6MHz,由例题2可知可用方式1。,T1控制,T0控制,控制字01H,确定TMOD控制字,计算计数器的计数初值;,(216X)210-6=5010-3即216X=25000X216-25000=10000H-61A8H9E58H所以,初值为:TH1=9EH,TL1=58H,采用中断方式:编程时打开全局中断:置位EA局部中断:置位ET0。,置位TR0位控制定时器的启动。,程序设计,uchara;MAIN()TMOD=0 x01;/T0为方式1TH0=0 x9E;TL0=0 x58;/初值EA=1;/允许中断ET0=1;TR0=1;/启动定时a=0 x01;/LED0先亮,主程序:,中断处理程序:,VoidINTT0()interrupt1using0TH0=0 x9E;/重新设置初值TL0=0 x58;P1=a;a=a1;/依次点亮if(a=0)a=0 x01;,P1.0,P1.7,R,LED3,R,LED0,R,LED1,R,LED2,R,LED4,R,LED5,R,LED6,R,LED7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,8051,例题5:利用T0定时,产生2s定时,使得P1口输出信号,控制8个发光二极管循环点亮,设fOSC=12MHz,。,难点:P1口输出信号,控制8个发光二极管循环点亮的解题思路见例题4,但此处由于定时时间长达2s,所以单靠一个定时器不能解决问题。可以采取硬件定时和软件计数(或硬件计数)结合方式。,硬件定时与软件计数结合方式解题思路:让T0作定时器用,如T0可以定时50ms,每当定时时间到,在T0中断处理程序中一个变量内容加1,同时判断是否加到2000/50=40,如果不到40,则直接返回,如果计到40,说明2s时间到,使P1口循环点亮8个发光二极管后再返回。T0工作在方式1,控制字01H,计数初值:,(216X)110-6=5010-3即216X=50000X216-50000=10000H-C350H3CB0H所以,初值为:TH1=3CH,TL1=B0H,程序设计,uchara,ms;MAIN()TMOD=0 x01;/T0为方式1TH0=0 x3C;TL0=0 xB0;/初值EA=1;/允许中断ET0=1;TR0=1;/启动定时a=0 x01;/LED0先亮ms=0;,主程序:,中断处理程序:,VoidINTT0()interrupt1using0TH0=0 x3C;/重新设置初值TL0=0 xB0;ms+;if(ms=40)ms=0;P1=a;a=a1;/依次点亮if(a=0)a=0 x01;,*硬件定时与硬件计数结合方式解题思路:将引脚P3.0与引脚P3.5即T1脚连接起来。让T0作定时器用,T1作计数器用,如T0可以定时50ms,每当定时时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年关酒店安全培训课件
- 物业管理租赁合同书5篇
- 平面设计的色彩课件
- 体育赛事商业开发经纪合同5篇
- 平面与回转体相交课件
- 农发行郑州市新郑市2025秋招数据分析师笔试题及答案
- 农发行乌兰察布市集宁区2025秋招信息科技岗笔试题及答案
- 2025年工业互联网平台数据清洗算法在工业互联网平台数据采集中的应用报告
- 农发行钦州市浦北县2025秋招笔试创新题型专练及答案
- 私募股权投资热点行业2025年分析:退出策略与市场前景报告
- 工程水文第3章课件
- GB/T 4032-2013具有摆轮游丝振荡系统的精密手表
- GB/T 34875-2017离心泵和转子泵用轴封系统
- GB/T 21063.4-2007政务信息资源目录体系第4部分:政务信息资源分类
- GA/T 1081-2020安全防范系统维护保养规范
- 02药物不良反应adr课件
- 施工项目成本管理课件
- 文物建筑保护修缮专项方案
- 营销与2008欧锦赛ktv渠道方案
- 故障录波器课件
- DB32-T 2665-2014机动车维修费用结算规范-(高清现行)
评论
0/150
提交评论