实验四定时器实验目的1、掌握8051单片机定时器的工作原理;2、掌握利用STC-ISP工具自动配置定时器;3、掌握实现多事件处理的C51程序的基本结构。实验设备与文件PC机、Stc89c52实验箱、USB线、stc89c52实验板原理图。2HvCC流水灯电源酰线流水灯模块图1原理图
1 实验四 定时器 一、 实验目的 1、掌握 8051 单片机定时器的工作原理; 2、掌握利用 STC-ISP 工具自动配置定时器; 3、掌握实现多事件处理的 C51 程序的基本结构。 二、 实验设备与文件 PC 机、stc89c52 实验箱、USB 线、stc89c52 实验板原理图。 图 1 原理图
三、实验原理3.1定时器/计数器的结8051单片机定时器/计数器结构如图2,定时器/计数器T0由特殊功能寄存器THO、TLO构成,TI由特殊功能寄存器THI、TL1构成。T1脚(P3.5)外部脉冲TO脚(P3.4)外部脉冲或系统时钟12分频内部脉冲或系统时钟12分频内部脉冲0CT1TOTHITHONOAT89S51CPUTCONTMOD图2定时器/计数器结构框图TO、T1都有定时器和计数器两种工作模式,两种模式实质都是对脉冲信号进行计数,只不过计数信号来源不同。计数器模式是对加在TO(P3.4)和T1(P3.5)两个引脚上的外部脉冲进行计数;定时器模式是对系统时钟信号经12分频后的内部脉冲信号(机器周期)计数。由于系统时钟频率是定值,可根据计数值计算出定时时间。两个定时器/计数器属于增1计数器,即每计一个脉冲,计数器增1。TO、T1具有4种工作方式(方式0、1、2和3)。特殊功能寄存器TMOD用于选择定时器/计数器TO、T1的工作模式和工作方式。特殊功能寄存器TCON用于控制TO、T1的启动和停止计数,同时包含了TO、T1状态。计数器起始计数从初值开始。单片机复位时计数器初值为0,也可给计数器装入1个新的初值。D6DSD4D3D2DIDOD7C/斤C/TTMODMIMOGATEMI89HGATEMOT1方式字段TO方式字段图3寄存器TMOD的格式如图3所示,TMOD共8位分两组,高4位控制T1,低4位控制TO,必须字2
2 三、 实验原理 3.1 定时器/计数器的结构 8051 单片机定时器/计数器结构如图 2,定时器/计数器 T0 由特殊功能寄存 器 TH0、TL0 构成,T1 由特殊功能寄存器 TH1、TL1 构成。 图 2 定时器/计数器结构框图 T0、T1 都有定时器和计数器两种工作模式,两种模式实质都是对脉冲信号进 行计数,只不过计数信号来源不同。 计数器模式是对加在 T0(P3.4)和 T1(P3.5)两个引脚上的外部脉冲进行 计数; 定时器模式是对系统时钟信号经 12 分频后的内部脉冲信号(机器周期)计 数。由于系统时钟频率是定值,可根据计数值计算出定时时间。两个定时器/计 数器属于增 1 计数器,即每计一个脉冲,计数器增 1。 T0、T1 具有 4 种工作方式(方式 0、1、2 和 3)。 特殊功能寄存器 TMOD 用于选择定时器/计数器 T0、T1 的工作模式和工作方 式。特殊功能寄存器 TCON 用于控制 T0、T1 的启动和停止计数,同时包含了 T0、 T1 状态。 计数器起始计数从初值开始。单片机复位时计数器初值为 0,也可给计数器 装入 1 个新的初值。 图 3 寄存器 TMOD 的格式 如图 3 所示,TMOD 共 8 位分两组,高 4 位控制 T1,低 4 位控制 T0,必须字
节寻址。TMOD各位说明如下:(1)GATE一门控位GATE=0,定时器是否计数,由控制位TRx(x=0,1)来控制。GATE=1,定时器是否计数,由外中断引脚INTx上的电平与运行控制位TRx共同控制。(2)M1、MO一工作方式选择位M1、MO共4种编码,对应于4种工作方式的选择,见表1:表1定时器/计数器的工作方式选择M1MO工作方式00方式0,为13位定时器/计数器01s方式1,为16位定时器/计数器10e方式2,8位的常数自动重新装载的定时器/计数器11e方式3,仅适用于TO,此时TO分成2个8位计数器,T1停止计数(3)C/T计数器模式和定时器模式选择位C/T=0,定时器模式,对系统时钟12分频后的脉冲进行计数。C/T=1,计数器模式,计数器对外部输入引脚TO(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。定时器/计数器控制寄存器TCONTCON字节地址88H,可位寻址,位地址为88H~8FH,格式如图4所示:D7D4D3D2D1DOD6D5TROIE1IT1TCONTF1TR1TFOIEOITO88H图4寄存器TCON的格式其中低4位与外中断有关,这里仅介绍高4位功能:(1)TF1、TFO一计数溢出标志位当计数器计数溢出时,该位置“1”。使用查询方式时,此位可供CPU查询,但应注意查询后,用软件及时将该位清“0”。使用中断方式时,作为中断请求标志位,进入中断服务程序后由硬件自动清“0”。(2)TR1、TRO一计数运行控制位TR1位(或TRO)=1,启动计数器计数的必要条件。TR1位(或TRO)=O,停止计数器计数。该位可由软件置“1”或清“0”。3
3 节寻址。 TMOD 各位说明如下: (1)GATE—门控位 GATE=0,定时器是否计数,由控制位 TRx(x=0,1)来控制。 GATE=1,定时器是否计数,由外中断引脚 INTx 上的电平与运行控制位 TRx 共同控制。 (2)M1、M0—工作方式选择位 M1、M0 共 4 种编码,对应于 4 种工作方式的选择,见表 1: 表 1 定时器/计数器的工作方式选择 (3)C/T 计数器模式和定时器模式选择位 C/T=0,定时器模式,对系统时钟 12 分频后的脉冲进行计数。 C/T=1,计数器模式,计数器对外部输入引脚 T0(P3.4)或 T1(P3.5)的外 部脉冲(负跳变)计数。 定时器/计数器控制寄存器 TCON TCON 字节地址 88H,可位寻址,位地址为 88H~8FH,格式如图 4 所示: 图 4 寄存器 TCON 的格式 其中低 4 位与外中断有关,这里仅介绍高 4 位功能: (1)TF1、TF0—计数溢出标志位 当计数器计数溢出时,该位置“1”。使用查询方式时,此位可供 CPU 查询, 但应注意查询后,用软件及时将该位清“0”。使用中断方式时,作为中断请求标 志位,进入中断服务程序后由硬件自动清“0”。 (2)TR1、TR0—计数运行控制位 TR1 位(或 TR0)=1,启动计数器计数的必要条件。 TR1 位(或 TR0)=0,停止计数器计数。 该位可由软件置“1”或清“0
3.2定时器/计数器的工作方式定时器/计数器的4种工作方式中,方式1和方式2最常用。方式0与方式1基本相同,只是计数位数不同。方式0为13位,方式1为16位。由于方式0是为兼容MCS-48而设,计数初值计算复杂,所以在实际应用中,一般不用方式0,常采用方式1。(1)方式1报捞器+120~70~7C/T=0TLITHI★中斯TF1(8)(8位)C/T=1TI(P3.5引脚)控制端TRI0ReGATEOINTIO图5方式1的逻辑结构框图当M1、MO=01,设置为方式1,定时器/计数器等效逻辑结构如图5(以T1为例,TMOD.5、TMOD.4=01)。方式1为16位计数器,由TLx(x=0,1)的8位和THx的8位构成。TLx的8位溢出则向THx进位,THx计数溢出则把TCON中的溢出标志位TFx置“1”。(2)方式2振荡器¥12C/T=0TLO★中断TFO(8位)C/T=1TO(P3.4引脚)控制墙TROONGATEOINTOO(a)TLO作为8位定时器/计数器0~7THO振荡器÷12★中断TF1(8位)控制端TR10(b)THO作为8位定时器图6方式2的逻辑结构框图方式0和方式1最大特点是计数溢出后,计数器为全0。因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题,这会影响定时精度,方4
4 3.2 定时器/计数器的工作方式 定时器/计数器的 4 种工作方式中,方式 1 和方式 2 最常用。 方式 0 与方式 1 基本相同,只是计数位数不同。方式 0 为 13 位,方式 1 为 16 位。由于方式 0 是为兼容 MCS-48 而设,计数初值计算复杂,所以在实际应用 中,一般不用方式 0,常采用方式 1。 (1)方式 1 图 5 方式 1 的逻辑结构框图 当 M1、M0=01,设置为方式 1,定时器/计数器等效逻辑结构如图 5(以 T1 为例,TMOD.5、TMOD.4=01)。 方式 1 为 16 位计数器,由 TLx(x=0,1)的 8 位和 THx 的 8 位构成。TLx 的 8 位溢出则向 THx 进位,THx 计数溢出则把 TCON 中的溢出标志位 TFx 置“1”。 (2)方式 2 图 6 方式 2 的逻辑结构框图 方式 0 和方式 1 最大特点是计数溢出后,计数器为全 0。因此在循环定时或 循环计数应用时就存在用指令反复装入计数初值的问题,这会影响定时精度,方
式2就是为解决此问题而设置的。工作方式2为自动恢复初值(初值自动装入)的8位定时器/计数器,TLx(x=0,1)作为常数缓冲器,当TLx计数溢出时,在溢出标志TFx置“1”的同时,还自动将THx中的初值送至TLx,使TLx从初值开始重新计数。3.3定时器/计数器的使用定时器的使用即是先设置好与定时器有关的寄存器和定时时间(如TMOD、THO、TLO、TRO、TH1、TL1、TR1等),然后在主循环中通过判断定时器溢出标志位(TFO和TF1)来判断定时是否到达,如果定时器不采用中断方式,溢出标志位在判断后需要软件清“0”。定时器的配置可以利用STC-ISP工具自动完成,如图7所示:STC-1SP(V6.86)(销售电话:0513-55012928)宫网:www.GXWMCU.com(技术支持QQ:800003751)本软件定价:6000元(单片机型号STC89C52引即数Auto范例程序|波特室计算器定时器计算器软件延时计算器|头文件|官方网站谈串口号SB-SEKIALCH340(COM3)扫描系统频率国0582NOK:选择定时器定时器0最低波特率2400最高波特率115200-V20毫秒定时长度定时器模式16位起怡地址0.00%误差定时器时钟12T(FOSC/12)0x0000打开程序文件团清除代码缓中区void TinerOInit (void)1/20毫秒e11.0592HHz0x2000团清除P综中区打开EEPROM文件器时钟12T模式硬件选项脱机下载/UB/U7程序加密后传输 ID携式使能61双倍速)模式特回降低抵荡器的放大增益开赔计时只有断电才可停止看门构内部扩展可用AL即用作P4.5口下次冷启动时,P1.0/1:1为0/0才可下载程序下次下载用户程序时擦除用户EEPROM区生成C代码生成ASM代码复制代码选择ash空白区域的填充值FF芯片型号:STC89C52关于些芯片的需喜说明字节为全球唯—ID号新以花拍空下载/编程停止重复编程重复延时3秒注意/帮助检测ICU选项每次下载前都重新装载自标文件发布项目程序发布项目帮助读取本机硬盘号提示音成功计数13清零■当目标文件变化时自动装载并发送下载命令图7利用STC-ISP工具配置定时器定时器的初值也可通过公式计算:初值X=最大计数值(满值)M-计数值N计数值N=所需要定的时间/机器周期例,如果晶振采用12MHz,机器周期是1uS,利用定时器0方式1定时50ms的初值计算代码如下:TH0=(65536-(50000us/lus))/256:/整除256即取计算结果的高8位TL0=(65536-(50000us/1us))%256;1/余除256即取计算结果的低8位5
5 式 2 就是为解决此问题而设置的。 工作方式 2 为自动恢复初值(初值自动装入)的 8 位定时器/计数器,TLx(x=0, 1)作为常数缓冲器,当 TLx 计数溢出时,在溢出标志 TFx 置“1”的同时,还自 动将 THx 中的初值送至 TLx,使 TLx 从初值开始重新计数。 3.3 定时器/计数器的使用 定时器的使用即是先设置好与定时器有关的寄存器和定时时间(如 TMOD、 TH0、TL0、TR0、TH1、TL1、TR1 等),然后在主循环中通过判断定时器溢出标志 位(TF0 和 TF1)来判断定时是否到达,如果定时器不采用中断方式,溢出标志 位在判断后需要软件清“0”。 定时器的配置可以利用 STC-ISP 工具自动完成,如图 7 所示: 图 7 利用 STC-ISP 工具配置定时器 定时器的初值也可通过公式计算: 初值 X = 最大计数值(满值)M - 计数值 N 计数值 N = 所需要定的时间 / 机器周期 例,如果晶振采用 12MHz,机器周期是 1us,利用定时器 0 方式 1 定时 50ms 的初值计算代码如下: TH0 = (65536 - (50000us/1us))/256; //整除 256 即取计算结果的高 8 位 TL0 = (65536 - (50000us/1us))%256; //余除 256 即取计算结果的低 8 位