AT9S的定时器计数器

上传人:豆浆 文档编号:50738244 上传时间:2018-08-10 格式:PPT 页数:22 大小:870.50KB
返回 下载 相关 举报
AT9S的定时器计数器_第1页
第1页 / 共22页
AT9S的定时器计数器_第2页
第2页 / 共22页
AT9S的定时器计数器_第3页
第3页 / 共22页
AT9S的定时器计数器_第4页
第4页 / 共22页
AT9S的定时器计数器_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《AT9S的定时器计数器》由会员分享,可在线阅读,更多相关《AT9S的定时器计数器(22页珍藏版)》请在金锄头文库上搜索。

1、重点理解: 1.定时/计数器的编程结构 2.控制字与编程方法 3. 应用编程第6章 AT89S51的定时器/计数器讲授内容:1. 定时器/计数器的结构与功能。 2. 两种工作模式和四种工作方式。 3. 定时器/计数器的编程及应用。第6章 AT89S51的定时器/计数器两个可编程的定时器/计数器T1、T0。2种工作模式:(1)计数器工作模式 (2)定时器工作模式4种工作方式(方式0方式3)相关的2个特殊功能寄存器TMOD和TCON可由用户程序选择其工作模式及工作方式6.1 定时器/计数器的结构TMOD:选择T0、T1的工作模式和工作方式。 TCON:控制T0、T1的启动和停止计数,同时包含了T0

2、、T1的状态。单片机复位时,两个寄存器都清0。图6-1 AT89S51单片机的定时器/计数器结构框图一、TMOD寄存器(工作方式控制寄存器)不能 位寻址图6-2 TMOD格式 (1)GATE门控位 (2)M1、M0工作方式选择位(3)C/T计数器模式和定时器模式选择位0:以TRX(X=0,1)来启动定时器/计数器运行。 1:用外中断引脚(INT0或INT1)上的高电平和TRX两个条件来启动定时器/计数器运行。0:定时器模式1:计数器模式M1 M0 工 作 方 式 0 0 方式0,13位定时器/计数器。 0 1 方式1,16位定时器/计数器。 1 0 方式2,8位常数自动重新装载 1 1 方式3

3、,仅适用于T0,T0分成两个8位计数器,T1停止计数。二、 TCON寄存器(定时器/计数器控制寄存器)图6-3 TCON格式低4位与外部中断有关,已介绍。高4位的功能如下: (1) TF1、TF0计数溢出标志位 (2) TR1、TR0计数运行控制位 1:启动定时器/计数器工作 0:停止定时器/计数器工作 例:设置T0工作于方式1定时方式,用指令 MOV TMOD,#01H启动T0工作,用指令 SETB TR06.2 定时器/计数器的4种工作方式 一、方式0 (M1M0=00 ,13位的计数器,以T1为例:)图6-4 定时器/计数器方式0逻辑结构框图加1计数器为13位, 高8位溢出置位TF1定时

4、器启、停控制一、方式0(续)0:定时器工作模式。1:计数器工作模式,计数脉冲为P3.5引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加1。 GATE位:决定定时器/计数器的运行取决于TRx一个条件还是TRx和INTx引脚两个条件。 0:仅取决于TRx的状态。 1:由TRx和INTx两个条件来控制的。 13位的计数器 C/T 位决定工作模式二、方式1(M1M0=01,16位的计数器,以T1为例:)图6-5 定时器/计数器方式1逻辑结构框图加1计数器为16位, 高8位溢出置位TF1定时器启、停控制三、方式2图6-6 定时器/计数器方式2逻辑结构框图计数满后自动装入计数初值(M1M0=10,8位

5、重装的计数器,以T1为例:)三、方式2(续)图6-7 方式2工作过程定时器/计数器方式2工作过程如右下:TLx作为常数缓冲器,当TLx计数溢出时,在置 “1”溢出标志TFx的同时,还自动将THx中的初值 送至TLx,使TLx从初值开始重新计数。省去用户软件中重装 初值的指令执行时间简化定时初值的计算方法可以相当精确地确定定时时间四、方式3是为增加一个8位定时器/计数器而设,使AT89S51单片机具有3个定时器/计数器。只适用于T0,T1不能工作在方式3。T1工作在方式3时相当于TR1=0,停止计数(此 时T1可用来作串行口波特率产生器)。1 T0工作于方式3四、方式3(续)(TMOD的低2位为

6、11)T0被分为两个独立的8位计数器:TL0和TH0TL0使用T0的状态控制位C/T、GATE、TR0、TF0 TH0只能做8位定时器(不能作外部计数模式)运行控制位和溢出标志位则借用T1的TR1和TF1。在T0设置为方式3工作时,一般是将定时器T1作为串行口波特率发生器,或用于不需要中断的场合。相当于增加了一个8位的定时器。 四、方式3(续)图6-8 定时器/计数器T0方式3的逻辑结构框图工作于方式3的T0与各引脚的逻辑关系如图所示: 四、方式3(续) 2 T1的各种工作方式( T0工作在方式3时)(1)T1工作在方式0 图6-9 T0在方式3时T1为方式0的示意图在T0为方式3时, T1可

7、设置为方式0、1或2,且一般是作为串行口波特率发生器,或用于不需要中断的场合。 (2) T1工作在方式1 图6-10 T0在方式3时T1为方式1的示意图(3) T1工作在方式2 图6-11 T0在方式3时T1为方式2的示意图6.3 定时器/计数器对输入信号的要求外部计数脉冲的最高频率为系统振荡器频率的1/24若用12MHz晶振,则外部脉冲最高频率500KHz。输入信号的高(低)电平至少要保持一个机器周期。如图6-12所示,图中Tcy为机器周期。图6-12 对外部计数输入信号的要求6.4 定时器/计数器的编程和应用 1. 定时/计数器初始化程序的步骤方式控制字送 TMODMOV TMOD,#计数

8、器的初值送TH、TL (0/1)MOV TH0/1,# MOV TL0/1,#根据需要开放中断和设定优先级即对IE和IP赋初值(可位寻址)启动T0/T1开始工作-置位TR0/1SETB TR0/1等待溢出信号的出现(如何进入处理程序?) (查询法或中断法)分析定时器计数器的工作方式,将方式字写入TMOD寄存器;( 定/计、内/外启动、工作方式)若要求用软件启动,编程时对TR0或TR1置位即可启动; 若由外部中断引脚电平启动,对TR0或TR1置位后,还需给外引脚提供 启动电平。6.4 定时器/计数器的编程和应用(续) 2. 计数初值的计算 计数器模式时的计数初值 X2MN (M为计数器位数,N为

9、要求的计数值 ) X0,计数值最大 2M213=8192(方式0) 216=65536(方式1) 28=256(方式2、3) 定时器模式时的计数初值定时时间: t=(2M计数初值X)*机器周期计数初值:XX0,定时时间最长: tmax 2M机器周期若系统时钟频率 fOSC12MHz,则:1机器周期1S。方式0:M13, tmax=213*机器周期8192S 方式1:M16, tmax=216*机器周期65536S 方式2:M8, tmax=28*机器周期256S (方式3同)例6-1 假设系统时钟频率采用12MHz,要求在P1.0上输出一个周期为4ms的方波。图6-13 P1.0引脚输出周期2

10、ms方波(1)计算计数初值X (216-X)110-6=210-3 X=63536=F830H 所以T0的初值为:TH0=0F8H TL0=30H (2)初始化程序设计 采用定时器中断方式工作,进行定时器和中断系 统初始化,即对TCON、TMOD、IP、IE相应位进行 正确设置,将计数初值送入定时器中。基本思想:方波周期用T0确定,T0每隔2ms 计数溢出1次(即T0每2ms产生一 次中断),CPU响应中断后,在中 断服务子程序中对P1.0取反。3. 应用举例(3)程序设计 ORG 0000HAJMP MAIN ORG 000BH ;T0的中断入口AJMP IT0P ;转T0中断处理程序IT0

11、PORG 0100H MAIN: MOV TMOD,#01H ;设置T0为定时器方式1 MOV TL0,#30H ;T0置初值MOV TH0,#0F8H SETB TR0 ;启动T0计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断 HERE: AJMP HERE ;自身跳转IT0P: MOV TL0,#30H ;T0中断服务子程序,T0重置初值 MOV TH0,#0F8HCPL P1.0 ;P1.0的状态取反RETI END3. 应用举例(续)例6-2 电路如下图所示,编程使发光二极管D1间隔0.5秒 闪烁。3. 应用举例(续)采用定时器模式。因定时时 间较长,首先确定采用哪

12、一 种工作方式。时钟为12MHz 时,定时器最长可定时时间 :方式0最长可定时8.192ms 方式1最长可定时65.536ms 方式2最长可定时256s选方式1 隔50ms中断一次共10次 总定时长500ms(1)计算计数初值X:(2)10次计数的实现:(216 X) 1 106 = 50 103X = 15536 = 3CB0HTH0 = 3CH,TL0 = 0B0H采用R0作为中断次数计数器思路:3. 应用举例(续)ORG 0040H MAIN: MOV TMOD,#01H ;选用定时器0,方式1MOV TH0,#3CH ;送定时器初值MOV TL0,#0B0HMOV R0,#10 ;R0为中断次数计数器SETB P1.0SETB EA ;开总中断SETB ET0 ;T0开中断SETB TR0 ;启动定时开始SJMP $(3)参考程序:ORG 0000HAJMP MAINORG 000BH ;T0中断服务程序入口AJMP TIMER0TIMER0: DJNZ R0,EXIT ;未中断10次,中断返回CPL P1.0 ;中断10次到0.5S,将P1.0取反MOV R0,#10 ;重置中断次数计数器 EXIT: MOV TH0,#3CH ;送定时器初值MOV TL0,#0B0HRETI END3. 应用举例(续)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号