第4章 AT89S51汇编语言程序设计 (9).ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:44 大小:1.9MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第4章 AT89S51汇编语言程序设计 (9).ppt

第4章AT89S51汇编语言程序设计(9).ppt

预览

免费试读已结束,剩余 34 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第6章AT89S51单片机定时器/计数器6.1定时器/计数器的结构定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。图6-1AT89S51单片机的定时器/计数器结构2种工作模式,4种工作方式(方式0、方式1、方式2和方式3)。属于增计数器。TMOD选择定时器/计数器T0、T1的工作模式和工作方式。TCON控制T0、T1的启动和停止计数,包含了T0、T1的状态。计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚上的外部脉冲进行计数。定时器工作模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。由于时钟频率是定值,所以可根据计数值可计算出定时时间。计数器的起始计数都是从计数器初值开始的。单片机复位时计数器的初值为0,也可用指令给计数器装入一个新的初值。6.1.1工作方式控制寄存器TMOD字节地址89H,不能位寻址。(1)GATE———门控位。0:仅由运行控制位TRx(x=0,1)来控制定时器/计数器运行。1:外中断引脚上电平与运行控制位TRx共同来控制定时器/计数器运行。(2)M1、M0——工作方式选择位M1、M0共有4种编码,如表6-1所示。5(2)TR1、TR0——计数运行控制位。TR1位(或TR0位)=1,启动定时器/计数器工作。TR1位(或TR0位)=0,停止定时器/计数器工作。该位可由软件置“1”或清“0”。6.2定时器/计数器4种工作方式6.2.1方式0M1、M0=00时,被设置为工作方式0,等效逻辑结构框图(以定时器/计数器T1为例,TMOD.5、TMOD.4=00)。13位计数器,由TLx(x=0,1)低5位和THx高8位构成。TLx低5位溢出则向THx进位,THx计数溢出则把TCON中溢出标志位TFx置“1”。图6-4定时器/计数器方式0逻辑结构框图(1)C/=0,电子开关打在上面位置,T1(或T0)为定时器工作模式,时钟振荡器12分频后脉冲作为计数信号。(2)C/=1,电子开关打在下面位置,T1(或T0)为计数器工作模式,计数脉冲为P3.4(或P3.5)引脚上外部输入脉冲,当引脚上发生负跳变时,计数器加1。GATE位状态决定定时器/计数器运行控制取决TRx一个条件还是TRx和(x=0,1)引脚状态两个条件。(1)GATE=0,A点电位恒为1,B点电位仅取决于TRx状态。TRx=1,B点为高电平,控制端控制电子开关闭合,允许T1(或T0)对脉冲计数。TRx=0,B点为低电平,电子开关断开,禁止T1(或T0)计数。(2)GATE=1,B点电位由(x=0,1)的输入电平和TRx的状态这两个条件来确定。当TRx=1,且=1时,B点才为1,控制端控制电子开关闭合,允许T1(或T0)计数。910定时器/计数器方式2为自动恢复初值8位定时器/计数器。TLx(x=0,1)作为常数缓冲器,当TLx计数溢出时,在溢出标志TFx置“1”同时,还自动将THx中的初值送至TLx,使TLx从初值开始重新计数。图6-7方式2工作过程6.2.4方式3为增加一个8位定时器/计数器,使AT89S51单片机具有3个定时器/计数器。方式3只适用于T0,T1不能工作在方式3。T1处于方式3时相当于TR1=0,停止计数(此时T1可用来作为串行口波特率产生器)。1.工作方式3下的T0TMOD的低2位为11时,T0工作方式选为方式3,各引脚与T0逻辑关系如图6-8所示。定时器/计数器T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的状态控制位C/、GATE、TR0、TF0,而TH0被固定为一个8位定时器(不能作为外部计数模式),并使用定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断请求源TF1。13(1)T1工作在方式0T1控制字中M1、M0=00时,T1工作在方式0。(2)T1工作在方式1当T1的控制字中M1、M0=01时,T1工作在方式1。(3)T1工作在方式2当T1的控制字中M1、M0=10时,T1的工作方式为方式2。16176.4定时器/计数器的编程和应用6.4.1方式1应用【例6-1】假设系统时钟频率采用6MHz,在P1.0引脚上输出一个周期为2ms的方波,如图6-13所示。基本思想:方波周期T0确定,T0每隔1ms计数溢出1次,即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务子程序中对P1.0取反。(1)计算计数初值X机器周期=2s=210−6s设需要装入T0的初值为X,则有(216−X)210−6=110−3,216−X=500