《单片机原理与应用》课件第6章定时器计数器.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《单片机原理与应用》课件第6章定时器计数器.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理与应用 单片机 原理 应用 课件 定时器 计数器
- 资源描述:
-
1、第6章 定时器/计数器及其应用 学习目标(1)掌握定时器/计数器的内部结构和工作原理(2)掌握定时器/计数器的工作方式和工作模式。(3)掌握定时器/计数器的编程应用。学习重点和难点(1)定时器/计数器的工作方式和工作模式(2)定时器/计数器的中断服务程序设计6.1 定时/计数器的结构及工作原理AT8951单片机片内有两个可编程的定时/计数器T1、T0,都有定时和计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。两个16位定时计数器都是16位加1计数器。其中T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。6.2 定时器/计数器的控制寄存器 6.2.1工作模式
2、寄存器TMOD TMOD用于控制T0和T1的工作模式,字节地址为89H,不可进行位寻址。TMOD寄存器的高4位控制T1,低4位控制T0。TMODD7D6D5D4D3D2D1D089HGATEC/M1M0GATEC/M1M0(1)GATE:门控位。0:仅由运行控制位TRx(x=0,1)来控制定时器/计数器运行。1:用外中断引脚上的电平与运行控制位TRx共同来控制定时器/计数器运行。(2)M1、M0:工作方式选择位 M1、M0共有4种编码,对应于4种工作方式的选择 M1 M0 工作方式 0 0 方式0,13位定时/计数器 0 1 方式1,16位定时/计数器 1 0 方式2,8位自动重装初值的定时/
3、计数器 1 1 方式3,仅适用于T0,此时分成两个8位计数器,T1停止计数(3)C/:计数器模式和定时器模式选择位 0:为定时器工作模式,对单片机的晶体振荡器12分频后的脉冲进行计数。1:为计数器工作模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。2.定时器/计数器控制寄存器TCON 字节地址为88H,可位寻址,位地址为88H8FH。TCOND7D6D5D4D3D2D1D088HTF1TR1TF0TR0IE1IT1IE0IT0(1)TF1、TF0计数溢出标志位。当计数器计数溢出时,该位置“1”。使用查询方式时,此位作为状态位供CPU查询,但应注意查询有效后
4、,应使用软件及时将该位清“0”。使用中断方式时,此位作为中断请求标志位,进入中断服务程序后由硬件自动清“0”。(2)TR1、TR0计数运行控制位。TR1位(或TR0位)=1,启动定时器/计数器工作的必要条件。TR1位(或TR0位)=0,停止定时器/计数器工作。该位可由软件置“1”或清“0”。5.5.3定时计数器的四种工作方式 1.方式0:当M1、M0=00时,被设置为工作方式0 2.方式1 当M1、M0=01时,定时器/计数器工作于方式1,这时定时器/计数器的等效电路逻辑结构如图5-9所示。3.方式2当M1、M0=10时,定时器/计数器工作于方式2。方式2把TL0或TH0设置成一个可以自动重装
5、初值的8位定时/计数器。TL1计数溢出时,不仅使溢出中断标志位TF1置1,而且还自动把TH1中的内容重新装载到TL1中。这里,16位定时/计数器被拆成两个,TL1用作8位计数器,TH1用来保存初值。在程序初始化时,TH1和TL1用程序赋予相同的值,当TL1计数溢出,使TF1置位为1,并将TH1中的初值自动装入TL1,继续计数。4.方式3:当M1、M0=11时,定时器/计数器工作于方式3。方式3是为增加一个8位定时器/计数器而设,使AT89S51单片机具有3个定时器/计数器。方式3只适用于T0。T1不能工作在方式3。T1处于方式3时相当于TR1=0,停止计数(此时T1可用来作为串行口波特率产生器
6、)。1工作方式3下的T0 TMOD的低2位为11时,T0的工作方式被选为方式3,定时器/计数器T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的状态控制位C/、GATE、TR0、TF0,而TH0被固定为一个8位定时器(不能作为外部计数模式),并使用定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断请求源TF1。2T0工作在方式3时T1的各种工作方式 一般情况下,当T1用作串行口的波特率发生器时,T0才工作在方式3。T0处于工作方式3时,T1可定为方式0、方式1和方式2,用来作为串行口的波特率发生器,或不需要中断的场合。定时器T1无工作方式3,若将T1设置为方式3,就会使T
7、1立即停止计数,也就是保持住原有的计数值,作用相当于使TR1=0。但T1可工作于其他三种方式下。一般情况下,当定时器T1用作串行口波特率发生器时,定时器T0才设置为工作方式3。此时,常把定时器T1设置为方式2,用作波特率发生器。5.5.4定时/计数器的编程和应用初始化:对TMOD赋值,确定T0、T1的工作方式和工作模式。计算初值,并写入TH0、TL0或 TH1、TL1。中断方式时,要对IE赋值,开放中断。使TR0或TR1置位,启动定时/计数器。1.方式1应用【例5-3】假设系统时钟频率采用6MHz,在P1.0引脚上输出一个周期为2ms的方波,如图5-12所示。机器周期=2s=2 106s 设需
8、要装入T0的初值为X,则有(216X)2106=1 103,216X=500,X=65036。X化为十六进制数,即:65036=FE0CH。T0的初值为TH0=FEH,TL0=0CH。采用定时器中断方式工作。包括定时器初始化和中断系统初始化,主要是对寄存器IP、IE、TCON、TMOD的相应位进行正确的设置,并将计数初值送入定时器中。ORG 0000H ;程序入口 RESET:AJMP MAIN ;转主程序 ORG 000BH ;T0中断入口 AJMP IT0P;转T0中断处理程序IT0P ORG 0100H;主程序入口 MAIN:MOV SP,#60H;设堆栈指针 MOV TMOD,#01H
9、;设置T0为方式1定时 MOV TL0,#0CH;T0初始化,装初值的低8位 MOV TH0,#0FEH;装初值的高8位 SETB ET0;允许T0中断 SETB EA ;总中断允许 SETB TR0;启动T0 HERE:AJMP HERE ;原地循环,等待中断 IT0P:MOV TL0,#0CH;中断子程序,T0重装初值 MOV TH0,#0FEH CPL P1.0 ;P1.0的状态取反 RETI 查询方式参考程序:MOV TMOD,#01H;设置T0为方式1 LOOP:MOV TH0,#0FEH;T0置初值 MOV TL0,#0CH SETB TR0 ;接通T0 LOOP1:JNB TF0
10、,LOOP1 ;查TF0,TF0=0,T0未溢出;TF0=1,T0溢出,CLRTR0 ;T0溢出,关断T0 CPLP1.0 ;P1.0的状态求反 SJMP LOOP 查询程序虽简单,但CPU必须要不断查询TF0标志,工作效率低。【例5-4】系统时钟为6MHz,编写定时器T0产生1s定时的程序。基本思想:采用定时器模式。因定时时间较长,首先确定采用哪一种工作方式。时钟为6MHz的条件下,定时器各种工作方式最长可定时时间:方式0最长可定时16.384ms;方式1最长可定时131.072ms;方式2最长可定时512s。由上可见,可选方式1,每隔100ms中断一次,中断10次为1s。(1)计算计数初值
11、X 因为(216 X)2 106=101,所以X=15536=3CB0H。因此TH0=3CH,TL0=B0H。(2)10次计数的实现 对于中断10次的计数,采用B寄存器作为中断次数计数器。(3)程序设计 参考程序如下:ORG 0000H;程序运行入口 RESET:LJMP MAIN ;跳向主程序入口MAIN ORG 000BH ;T0的中断入口 LJMP IT0P;转T0中断处理子程序IT0P ORG 1000H;主程序入口 MAIN:MOV SP,#60H;设堆栈指针 MOV B,#0AH;设循环次数10次 MOVTMOD,#01H;设置T0工作在方式1定时 MOV TL0,#0B0H;给T
展开阅读全文