定时器和中断精讲.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 定时器和中断 6.1 定时器/计数器概述 6.1.1 定时方法概述 6.1.2 定时/计数器的结构和工作原理 6.1.3 定时器/计数器工作方式控制寄存器 TMOD 6.1.4 定时/计数器控制寄存器TCON 6.1.5 定时器/计数器的初始化 1.软件定时 软件定时是靠执行一个循环程序以进行时间延时。软件定时要占用CPU。 2.硬件定时 对于定时时间较长的定时,常使用硬件定时完成。不占CPU时间。 3.可编程定时器定时 这种定时方法是通过对系统时钟脉冲的计数来实现。 定时器/计数器工作原理 16位的定时器/计数器实质上是一个加1计数器,其控制电路受软件控制、切换。 定时器工作前先装入初值,利用送数指令将初值装入TH0和TL0或TH1和TL1,高位数装入TH0和TH1,低位数装入TL0和TL1。当发出启动命令后,装初值寄存器开始计数,连续加1,每一个机器周期加1一次,加到满值(各位全1)。若再加1,则溢出,同时将初值寄存器清零。 6.1.3 定时器/计数器工作方式控制寄存器 TMOD TMOD GATE门控位: Timer可由软件与硬件两者控制 GATE = 0 ——普通用法 Timer的启/停由软件对TRx位写“1”/“0”控制 GATE = 1 ——门控用法 Timer的启/停由软件对TRx位写“1”/“0” 和在 INTx引脚上出现的信号的高/低共同控制 注意:TMOD不能位寻址,只能由字节设置T/C的工作方式,低半字节设定T/C0,高半字节设定T/C1。 6.1.4 定时/计数器控制寄存器TCON TCON 选择工作方式,即对TMOD 赋初值 。 给定时器赋初值,即把初始常数装入TH0 TL0或TH1 TL1。 根据需要设置中断控制字。 启动定时/计数器 。 设初值为X,最大计数值为M。初值X与机器周期T机及定时时间T的关系为 (M?X)T机=T 其中,T机 =12个时钟周期 =12 /fOSC X=M-?T/T机 6.2 定时器/计数器的工作方式 方式0 13位计数方式 当TL1的低5 位溢出时,向TH1进位,而TH1溢出(回零)时向TF1标志进位(硬件置位TF1),并申请中断。还可以通过查询TF1是否置位来判断TH1是否回零溢出。 方式1 一个16为定时器/计数器。 方式1的结构几乎与方式0完全一样,唯一的差别是:方式1中的TH1(TH0)和TL1(TL0) 均是8位的,构成16位计数器。 方式2 在方式2时,T/C被拆成一个8位的寄存器TH1(TH0)和一个8位计数器TL1(TL0),两者构成可以自动重装载的8位T/C。 方式3 例如:若晶振频率为6MHz,计算单片机的最小与最大定时时间 分析:已知fosc = 6MHz 则: (振荡周期)1Tc=1/6MHz (机器周期)1Tm=12Tc=12/6MHz=2?S 粗略地说:Tmin ? 2?S 16位定时器最大数值为:216=65536=0FFFFH+1 故选择方式 1 工作可以得到: Tmax = 65536?2 = 131072?S=131.072mS 例如:要求对T0产生100mS定时进行初始化。(晶振=6MHz) 分析:已知fosc = 6MHz 则:(机器周期)1Tm=12Tc=12/6MHz=2?S 100mS÷2 ?S = 50000 16位定时器最大数值为:216 = 65536 (=0FFFFH+1) 故选择方式1工作可以满足要求。 计算初值:65536-50000=15536=3CB0H 初始化:MOV TMOD,#01H ;选 T0 方式 1 MOV TH0, #3CH ;赋初值高8位 MOV TL0, #0B0H ;赋初值低8位 SETB TR0 ;启动 T0定时 若需要定时器0产生中断还应当写如下语句: SETB ET0 ;开T0中断允许 SETB EA ;开总中断允许 以及相应的中断服务程序。 例如:从P1.0 脚输出频率为1KHz方波。 设:晶振=6MHz。利用T1定时中断。 分析:fosc = 6MHz 1机器周期 = 2 ?S 1KHz方波周期 = 1 mS 半个方波周期 =500?S 500uS÷2 uS = 250 若选择方式2 工作,8位定时器最大数值为: 28 =256 =0FFH + 1 可以满足要求。 计

文档评论(0)

bsy12345 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档