第章 定时计数器_第1页
第章 定时计数器_第2页
第章 定时计数器_第3页
第章 定时计数器_第4页
第章 定时计数器_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第第6章章第5章 定时与中断系统定时器定时器 / 计数器计数器T0、T1 1。定时器 / 计数器T0、T1的内部结构:定时器 / 计数器T0、T1的内部结构见P86图图45。它们由以下几部分组成: 计数器计数器TH0、TL0和和TH1、TL1; 特殊功能寄存器特殊功能寄存器TMOD、TCON ( TCON仅高仅高4位有关位有关 ); 时钟分频器时钟分频器; 输入引脚输入引脚 T0、T1、/INT0、/INT1。 2。定时器 / 计数器T0、T1的特殊功能寄存器 (1) 定时器 / 计数器的方式寄存器 TMOD TMOD是一个逐位定义的8位寄存器,但只能字节寻址(89H)。2第第6章章第5章

2、定时与中断系统GATEC / TM1M0GATEC / TM1M0其中低四位低四位定义定时器 / 计数器T0,高四位高四位定义定时器 / 计数器T1。各位的意义如下: GATE :门控位。 GATE = 1 时,由外部中断引脚/INT0 (/INT1) 和和 TR0 (TR1) 来启动定时器。当/INT0 为高电平及TR0置位时,启动T0;当/INT1 为高电平及TR1置位时,启动T1。 而GATE = 0时,仅由仅由TR0 (TR1) 来启动。补注:利用GATE的这一特点,可将/INT0(或/INT1)接外部脉冲信号,用它与相应定时器配合来测定该外部脉冲的频率和脉宽。3第第6章章第5章 定时

3、与中断系统 C / T : 计数 / 定时功能选择位。 C / T1 时,选择计数功能; C / T0 时,选择定时功能。M1 M0工作方式计 数 器 的 配 置0 0方式 013 位 计 数 器0 1方式 116 位 计 数 器1 0方式2自 动 再 装 入 的 8 位 计 数 器1 1方式 3T0 分为两个8位计数器,T1 停止计数(2)定时器 / 计数 器 T0、T1的控制寄存器 TCONTCON是一个逐位定义的 8位寄存器,既可字节寻址又可位寻址,其字节地址为 88H,位地址为 88H 8FH,其格式如下(T0 、T1):4第第6章章第5章 定时与中断系统位地址位地址8FH8EH8DH

4、8CH8BH8AH89H88H位名称位名称TF1TR1TF0TR0IE1IT1IE0IT0(3)定时器/计数 器 T0、T1的数据寄存器 TH0、TL0 和 TH1、TL1 计数 器 / 定时器T0、T1各有一个16位的数据寄存器,它们都由高8位和低8位寄存器组成,所有这四个寄存器都是读/写寄存器,任何时候都可以对它们进行读/写操作。但它们都只能字节寻址只能字节寻址。 TH0、TL0 和 TH1、TL1 相应的字节地址为:8CH、8AH 和 8DH、8BH,复位后,这四个寄存器全部清 0 (见P89 表45)。5第第6章章第5章 定时与中断系统 3。 定时器 / 计数 器 T0、T1的功能选择

5、:定时器 / 计数 器的功能是通过TMOD的C/T来选择的,置0为定时器,置1为计数器。 (1)定时器,设置C / T=0 。此时,计数输入信号是内部时钟脉冲,每个机器周期使寄存器增1。若振荡周期为12MHz,1机器周期为12个 的振荡周期,计数速率为1MHz,即计数器每1 微秒增 1 。定时器的定时时间定时时间 与 系系统振荡频率、计数器位数和初值统振荡频率、计数器位数和初值有关。 (2)计数器,设置C / T=0 。此时,通过引脚T0(P3.4)和T1(P3.5)对外部信号计数。若前一周期采样值为1,下一周期为0(即负跳变负跳变时),则计数器增1。因在每周期的S5P2期间读引脚电平,而在下

6、个机器周期的S3P1期间才使新计数值装入计数器,所以检测一个1到0跳变需要2个机器周期,故最高计数频率为振荡频率的故最高计数频率为振荡频率的1 / 24。6第第6章章定时器的初始化定时器的初始化1.确定并确定并设置工作方式设置工作方式-对对TMOD赋值赋值2.确定并设置定时器计数确定并设置定时器计数初值初值-直接将初值写入直接将初值写入 TH0、TL0或或TH1、TL13.启动启动定时器定时器-将将TR0或或TR1置置“1”第5章 定时与中断系统4.确定确定 I E(1,3,7 位),设置定位),设置定时器中断的开放或禁止。SETB ETi ;允许定时器中断 (CLR ETi 禁止中断) SE

7、TB EA ;开放总中断 ( CLR EA 关闭总中断) 7第第6章章1.确定并设置工作方式确定并设置工作方式-对对TMOD赋值赋值方式方式0:M=213=8192方式方式1:M=216=65536方式方式2:M=28=256方式方式3:M=28=256计数原则:计数值最大计数值计数原则:计数值最大计数值延时延时100us 100us100次计数次计数各种方式均可以(通常选择方式各种方式均可以(通常选择方式1、2) 延时延时50ms50000us50000次计数次计数只能选择方式只能选择方式1延时延时50ms第5章 定时与中断系统8第第6章章2.确定并设置定时器计数确定并设置定时器计数初值初值

8、-直接将初值写入直接将初值写入TH0、TL0或或TH1、TL1例如:如果知道定时器例如:如果知道定时器0的预置初值是的预置初值是3CB0HMOV TH0,#3CH MOV TL0,#0B0H为什么要给定时器预置初值?如何确定预置初值是多少?为什么要给定时器预置初值?如何确定预置初值是多少? 定时时间:定时时间: 开始计数开始计数溢出溢出 开始计数开始计数 16位计数方式位计数方式 :0 65536 (溢出溢出) 定时时间定时时间: 65536us TF0 “1” 需要定时需要定时: 50000us 需要定时需要定时: 50000us X=?X=65536-50000=15536=3CB0H X

9、小结:小结: X(初始值)(初始值)=最大定时时间最大定时时间-所需定时时间所需定时时间 =最大计数值最大计数值-所需计数次数所需计数次数第5章 定时与中断系统9第第6章章例例1:小王在基于:小王在基于51单片机编程过程中,需要用到定时器单片机编程过程中,需要用到定时器0实现实现5ms的延时的延时,请请你帮他确定定时器你帮他确定定时器0的工作方式的工作方式,并给出初始化程序。并给出初始化程序。解解:1.分析要求分析要求,确定并设置工作方式及初始化确定并设置工作方式及初始化方式方式0:M=213=8192方式方式1:M=216=65536方式方式2:M=28=256方式方式3:M=28=256选

10、择:定时器选择:定时器05ms延时延时5000us延时延时5000次计数次计数方式方式0和方式和方式1均均可可(这里选择方式这里选择方式1)TMOD(89H)D7 D6 D5 D4 D3 D2 D1 D0GATE C/T M1 M0 GATE C/T M1 M0 TMOD设定值为设定值为:01HMOV TMOD, #01H 第5章 定时与中断系统10第第6章章例例1:小王在基于:小王在基于51单片机编程过程中,需要用到定时器单片机编程过程中,需要用到定时器0实现实现5ms的延时的延时,请请你帮他确定定时器你帮他确定定时器0的工作方式的工作方式,并给出初始化程序。并给出初始化程序。2.确定并设置

11、计数初始值,并写入确定并设置计数初始值,并写入TH0、TL0X=最大计数值最大计数值-所需计数值所需计数值 方式方式1最大计数为最大计数为M=65536,延时时间延时时间5000us需要计数需要计数5000次次X=65536-5000=60536=EC78HMOV TH0,#0ECHMOV TL0,#78H第5章 定时与中断系统11第第6章章例例1:小王在基于:小王在基于51单片机编程过程中,需要用到定时器单片机编程过程中,需要用到定时器0实现实现5ms的延时的延时,请请你帮他确定定时器你帮他确定定时器0的工作方式的工作方式,并给出初始化程序。并给出初始化程序。3.启动定时器启动定时器0 指令

12、指令:SETB TR0 最终初始化程序如下最终初始化程序如下: MOV TMOD, #01H MOV TH0,#0ECH MOV TL0,#78H SETB TR0第5章 定时与中断系统12第第6章章例例2: 如果想用定时器如果想用定时器1实现实现100ms的延时的延时,又该工作在什么方式又该工作在什么方式下下,初始化程序又如何呢初始化程序又如何呢?解解:1.分析要求分析要求,确定并设置工作方式及初始化确定并设置工作方式及初始化方式方式0:M=213=8192方式方式1:M=216=65536方式方式2:M=28=256方式方式3:M=28=256定时器定时器1100ms延时延时100000u

13、s延时延时100000次计数次计数 超出所有工作方式超出所有工作方式M值值 采用计数循环采用计数循环循环次数为循环次数为2(从从2开始考虑开始考虑) 每次实际需要延时时间为每次实际需要延时时间为100000us/2=50000us50000次计数次计数 方式方式1最合适最合适0 0 0 1 0 0 0 0TMOD(89H)GATE C/T M1 M0 GATE C/T M1 M0 TMOD设定值为设定值为:10HMOV TMOD, #10H第5章 定时与中断系统13第第6章章2.确定并设置计数初始值,并写入确定并设置计数初始值,并写入TH1、TL1 X=最大计数值最大计数值-所需计数值所需计数

14、值 方式方式1最大计数为最大计数为M=65536,定时的时间需要计数定时的时间需要计数50000次次 X=65536-50000=15536=3CB0H 使用指令传送使用指令传送: MOV TH1,#3CH MOV TL1,#0B0H例例2: 如果想用定时器如果想用定时器1实现实现100ms的延时的延时,又该工作在什么方式又该工作在什么方式下下,初始化程序又如何呢初始化程序又如何呢?第5章 定时与中断系统14第第6章章例例2: 如果想用定时器如果想用定时器1实现实现100ms的延时的延时,又该工作在什么方式又该工作在什么方式下下,初始化程序又如何呢初始化程序又如何呢?3.启动定时器启动定时器1

15、指令指令:SETB TR1 最终初始化程序如下最终初始化程序如下: MOV TMOD, #10H MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 HERE:JNB TF1,HERE MOV TH1,#3CH MOV TL1,#0B0HCLR TF1 HERE1:JNB TF1,HERE1 JBC TF1,M1 M1: MOV TH1, #3CHMOV TL1,#0B0H JBC TF1,M2 SJMP M0 M0: 思考题:如果在一次开发中,同时用到定时器思考题:如果在一次开发中,同时用到定时器1和和0,定时器,定时器0用来实现用来实现5ms定时定时,定时定时器器1用来

16、实现用来实现100ms的延时的延时,这种情况我们该如何设置工作方式这种情况我们该如何设置工作方式.初始化程序又如何呢初始化程序又如何呢?第5章 定时与中断系统15第第6章章 TL0 TH0 5位位 8位位TFO0 0 0 0定时方式定时方式 计数方式计数方式 振荡器振荡器 /12T0 开关信号开关信号 控制控制 1A&C1BGATEINT0TR01A&C1BGATEINT0TR01 2C/T=0C/T=1外外 方式方式0 中断中断 定时器的工作方式定时器的工作方式 第5章 定时与中断系统非门控方式:非门控方式:当当GATE0, 控制权由控制权由 TRx 决定决定 TRx1 计数

17、开始计数开始 TRx 0 计数停止计数停止门控方式:门控方式:当当GATE1、TRx1 控制权由控制权由 INTx 决定决定 INTx1 计数开始计数开始 INTx 0 计数停止计数停止定时器定时器0(或定时器或定时器1)在方式在方式1时的逻辑结构图时的逻辑结构图 16第第6章章例例5.1: 用定时器用定时器1,方式方式0实现实现1s的延时。的延时。 解解: 因方式因方式0采用采用13位计数器位计数器,其最大定时时为其最大定时时为:81921us=8.192ms 因此因此,可选择定时时间为可选择定时时间为5ms,再循环再循环200次次,即即1000ms=1s。 定时时间选定后定时时间选定后,再

18、确定计数值为再确定计数值为5000(5ms),则定时器则定时器1的初值为的初值为: X=M-计数值计数值=8192-5000=3192=C78H=0 1100 0111 1000B 因因13位计数器中位计数器中TL1的高的高3位未用位未用,应填写应填写0,TH1占高占高8位位,所以所以,X的实际填的实际填写值应为写值应为: X=0110 0011 0001 1000B=6318H 即即:TH1=63H(送到高送到高8位位), TL1=18H(送到低送到低8位位), 又因采用方式又因采用方式0定时定时, 故故TMOD=00H。第5章 定时与中断系统17第第6章章例例5.1: 用定时器用定时器1,

19、方式方式0实现实现1s的延时。的延时。 可编得可编得1s延时子程序如下延时子程序如下: DELAY: MOV R3,#200 ;置置5ms计数循环初值计数循环初值 MOV TMOD,#00H ;设定时器设定时器1为方式为方式0 MOV TH1,#63H ;置定时器初值置定时器初值 MOV TL1,#18H SETB TR1 ;软件启动软件启动T1 LP1: JBC TF1,LP2 ;查洵计数溢出查洵计数溢出(若溢出则延时了5ms) SJMP LP1 ;未到未到5ms继续计数继续计数 LP2: MOV TH1,#63H ;重新置定时器初值重新置定时器初值 MOV TL1,#18H DJNZ R3

20、,LP1 ;未到未到1s继续循环继续循环 RET ;返回主程序返回主程序第5章 定时与中断系统18第第6章章 TL0 TH0 8位位 8位位TFO0 0 0 0定时方式定时方式 计数方式计数方式 振荡器振荡器 /12T0 开关信号开关信号 定时器定时器0(或定时器或定时器1)在方式在方式1时的逻辑结构图时的逻辑结构图 控制控制 1A&C1BGATEINT0TR01A&C1BGATEINT0TR01 2C/T=0C/T=1外外 方式方式1 中断中断 定时器的工作方式定时器的工作方式 第5章 定时与中断系统非门控方式:非门控方式:当当GATE0, 控制权由控制权由 TRx 决定决定

21、 TRx1 计数开始计数开始 TRx 0 计数停止计数停止门控方式:门控方式:当当GATE1、TRx1 控制权由控制权由 INTx 决定决定 INTx1 计数开始计数开始 INTx 0 计数停止计数停止19第第6章章 TL0 ( 8位位 ) TFO0 0 0 0定时方式定时方式 计数方式计数方式 振荡器振荡器 /12T0 开关信号开关信号 定时器定时器0在方式在方式2时的逻辑结构图时的逻辑结构图 控制控制 1A&C1BGATEINT0TR01A&C1BGATEINT0TR01 2C/T=0C/T=1外外 方式方式2 中断中断 定时器的工作方式定时器的工作方式 TH0 (8位位)

22、重新输入重新输入 第5章 定时与中断系统20第第6章章定时器的工作方式定时器的工作方式 第5章 定时与中断系统方式方式3 3:T0T0分成分成2 2个个8 8位定时器:位定时器:TL0TL0定时定时/ /计数器和计数器和TH0TH0定时器定时器TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;TH0TH0占用占用T1T1控制位:控制位:TR1TR1。T1T1不能使用方式不能使用方式3 3工作工作21第第6章章定时器定时器050ms延时延时50000us延时延时50000次计数次计数采用计数循环采用计数循环20次次1s延时时间延时时间0 0 0 0 0 0

23、 0 1TMOD(89H)GATE C/T M1 M0 GATE C/T M1 M0 TMOD设定值为设定值为:01HMOV TMOD, #01H例例5.1: 用定时器用定时器0,方式方式1实现实现1s的延时。的延时。 可编得可编得1s延时子程序如下延时子程序如下:DELAY: MOV R3,#14H ;置50ms计数循环初值(#20) MOV TMOD,#01H ;设定时器0为方式1 MOV TH0,#3CH ;置定时器初值 MOV TL0,#0B0H SETB TR0 ;软件启动T1 LP1: JBC TF0,LP2 ;查洵计数溢出(若溢出则延时了5ms) SJMP LP1 ;未到5ms继续计数 LP2: MOV TH0,#3CH ;重新置定时器初值 MOV TL0,#0B0H DJNZ R3,LP1 ;未到1s继续循环 RET ;返回主程序第5章 定时与中断系统22第第6章章0 1 1 0 0 0 0 0TMOD(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论