定时器、计数器及实验

合集下载

定时器计数器的定时实验

定时器计数器的定时实验

定时器和计数器是数字逻辑电路中常见的功能模块,用于时间测量和事件计数。

以下是一个可能的定时器计数器的定时实验设计方案:
实验名称:定时器计数器的定时实验
实验目的:
1. 了解定时器和计数器在数字电路中的应用;
2. 学习定时器的工作原理和使用方法;
3. 掌握计数器的功能及其在事件计数中的应用。

实验内容:
1. 定时器实验:
-设计一个简单的定时器电路,利用集成电路或开发板上的定时器模块,实现不同时间间隔的脉冲输出。

-调节定时器参数,观察输出信号的频率和占空比的变化。

2. 计数器实验:
-将定时器的输出信号连接到计数器输入端,通过计数器实现对脉冲数量的计数。

-设置计数器的初始值和计数方式,观察计数器的计数过程及计数结果。

实验器材与设备:
1. 集成电路或开发板上的定时器和计数器模块
2. 连接线、电源等实验器材
3. 示波器或数码多用表等测试仪器
4. 相关的实验软件和工具
实验注意事项:
1. 理解定时器和计数器的工作原理,正确连接和设置实验电路。

2. 注意电路连接的准确性,确保信号传输正常。

3. 在实验过程中注意观察输出信号波形和计数结果,及时调整参数以获取所需实验数据。

预期结果:
通过该实验,学生可以深入了解定时器和计数器在数字电路中的应用,掌握定时器的工作原理和调节方法,以及理解计数器在事件计数中的作用。

学生将能够实际操作定时器计数器模块,设计并搭建相应的实验电路,观察实验结果并进行数据分析。

这样的定时器计数器的定时实验设计旨在帮助学生加深对数字逻辑电路中定时和计数功能的理解,培养其实验操作能力和问题解决能力。

定时器、计数器操作与应用实验报告

定时器、计数器操作与应用实验报告

实验三定时器、计数器操作与应用实验报告、实验目的1、 了解和熟悉FX 系列可编程序控制器的结构和外 部接线方法;2、 了解 和熟 悉 GX Developer Version 7.0 软件的 使用 方法 ;3、 掌握 可编 程序 控制器 梯形 图程 序的 编制 与调 试。

二、实验要求仔 细阅 读实 验指 导书 中关 于编 程软 件的 说明 ,复习 教材 中有 关内 容 , 分 析程 序运 行结 果。

三、实验设备2 、 开关 量输 入 / 输出 实验 箱 3、 计算 机 4、 编程 电缆注 意:1) 开关量输入/输出实验 箱内的钮子开关用来产生模拟的 开关量输入 信 号; 2) 开关量输入/输出实验箱内的LED 用来指示开关 量输出信号; 3) 编程电缆在连接PLC 与计算机时请注意方向。

四、实验内容1 、梯形图1 、 FX 系列可 编程 序控 制器一只一套5、 GX Developer Version 7.0软件一套2、梯形图程序0LD xooo1OUT YOOOX0012LD3OR¥0014AN I X0025OUT Y0016OUT TO K509MPS10AHI TO11OUT Y00212MPP13ASD TO14OUT¥00315LD X00316RST CO18LD X00419OUT CO K522LD CO23OUT Y00424END3、时序图r 时序10 □ ©Si正在进荷囲1SL 金冃勖厂手祜r XI广X3厂X5厂K1Q拧应C40 J2fl MIB -380 .360 '340 -33 MW 脚 M 创Q,220,200,13Q -1«-14D ,1如■!» 如也 40 如厂「五、实验步骤1、程序的编辑、检查和修改;2、程序的变换;3、程序的离线虚拟设备仿真测试;4、程序写入PLC;5、用PLC运行程序;6、比较程序的分析结果与实际运行结果。

定时器计数器实验心得体会

定时器计数器实验心得体会

定时器计数器实验心得体会首先,在本次实验中,我们使用了555定时器集成电路,它是一种非常常用的定时器IC。

通过实际操作,我学会了如何正确地接线电路,如何选择合适的电阻和电容值来调整计时时间,以及如何通过示波器观察输出波形等。

这些操作虽然看似简单,但实际上需要一定的经验和技巧。

通过实验,我掌握了如何正确地连接555定时器,如何通过改变电阻和电容值来调整计时时间,以及如何正确地读取示波器的波形数据。

这些都是非常实用的技能,在今后的工程实践中将会发挥重要作用。

其次,通过本次实验,我对定时器计数器的原理有了更加深入的了解。

定时器计数器是一种能够产生一定时间间隔的脉冲信号的电路。

在实验中,我们通过改变电阻和电容值来调整计时时间,从而产生不同频率的脉冲信号。

我进一步了解了555定时器的内部结构和工作原理,以及它的输出波形特点。

这些知识对于理解定时器计数器的工作原理和使用方法至关重要。

另外,通过本次实验,我还学会了如何利用定时器计数器来实现一些实际应用。

定时器计数器在电子电路中有着广泛的应用,例如定时开关、计数器、测速器等。

在本次实验中,我们实现了一个简单的计数器电路,通过改变计数器的分频比来实现不同的计数功能。

这实际上是一种非常简单、但又非常实用的应用,通过定时器计数器,我们可以实现很多有趣的功能。

最后,通过本次实验,我深刻体会到了实验操作的重要性。

在实验中,我们需要准确地接线电路、选择合适的元器件、调整参数并观察波形等。

这些操作需要一定的技巧和经验,否则很容易出错。

因此,我学会了如何准确地实施实验,如何注意安全和细节,并及时地解决实验中遇到的问题。

这对于我未来的工程实践和科研工作都有着重要的意义。

综上所述,通过本次实验,我对定时器计数器有了更加深入的了解,掌握了一些实际操作技能,并学会了如何利用定时器计数器来实现一些有趣的功能。

这些知识和经验对我今后的学习和工程实践将会产生重要的影响。

我会继续努力学习和积累实践经验,不断提高自己的能力,为未来的科研工作和工程实践做好充分的准备。

定时器计数器实验报告

定时器计数器实验报告

定时器计数器实验报告简介:定时器是一种用来产生、计数和处理时间信号的计时装置。

在数字电路中,定时器主要分为内部定时器和外部定时器两类,内部定时器是在单片机内部实现的,外部定时器则是通过外部电路实现的。

计数器则是一种用来计数的电子元件,根据不同的使用场合和要求,计数器可以分为多种类型。

在嵌入式系统中,定时器计数器应用广泛,例如在时钟、延时、计数等方面都有很大的作用。

实验目的:1. 学习定时器和计数器的基本原理及应用。

2. 熟悉定时器和计数器在单片机中的编程方法。

3. 掌握通过定时器和计数器实现延时和计数功能的方法。

实验器材:1. STM32F103C8T6开发板2. ST-LINK V2下载器3. 电脑实验内容:一、实验1:使用定时器和计数器实现延时功能1. 在Keil C中新建一个工程,并编写以下程序代码:```#include "stm32f10x.h"void TIM2_Int_Init(u16 arr,u16 psc){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure ;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);TIM_TimeBaseStructure.TIM_Period = arr;TIM_TimeBaseStructure.TIM_Prescaler=psc;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode _Up;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM2, ENABLE);}void TIM2_IRQHandler(void){if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {TIM_ClearFlag(TIM2, TIM_FLAG_Update);GPIO_WriteBit(GPIOB,GPIO_Pin_12,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12)));}}int main(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);TIM2_Int_Init(9999,7199);while (1);}```2. 将STM32开发板连接到电脑,并下载程序到开发板中。

单片机实验之定时器计数器应用实验二

单片机实验之定时器计数器应用实验二

、实验目的1 、掌握定时器/计数器计数功能的使用方法。

2 、掌握定时器/计数器的中断、查询使用方法。

3 、掌握Proteus 软件与Keil 软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

、设计要求1 、用Proteus 软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 100个脉冲,则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。

2、用Proteus 软件画出电路原理图,单片机的定时器/计数器以中断方式工 作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲, 则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。

通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD 初值的计 算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。

七、思考题1、利用定时器0,在P1.0 口线上产生周期为200微秒的连续方波,利用定 时器1,对P1.0 口线上波形进行计数,满50个,则取反P1.1 口线状态,在P 1.1 口线上接示波器观察波形。

tJI-JTTALlRSTIPO 1 Z^Cil POiPD 3/jfiD3 IPCLW/MH FD-5/^CB”血P2 O/jtS PNUMa P 2 .2/AJOPI F3JD/RKDP1 且1门池F1 2P1 .3P3^/|NT1 卩11 .4P3.4Z1D P1.5 P3 .5fT1 尸1P3.0AA/RP1I.7 P3.?/RD17三、电路原理图 18HQAT69C52P 2 .4/A12P2 5/A13 P2P2 .7XA1«5蝕丘2Q 37答:程序见程序清单四、实验程序流程框图和程序清单1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,MAIN: MOV IE, #00HMOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1LOOP: JNB TF1, LOOP CLRTF1 CPL P1.0 AJMP LOOP ENDC 语言程序:#in elude <reg52.h> sbit Y=P1A0; void mai n() {EA=0; ET1=0; TMOD=0x60;TH1=0x9C;计数数值初始化中断断 艙化!l[启动 =时器1 器一、r动 启N箱 * 1溢断清计数溢出标志—1 ~ P1.(口线取反TL 仁 0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } }2、定时器/计数器以中断方式工作,对外部连续周期性脉冲信号进行计数, 每计满200个脉冲,则取反P1.0 口线状态。

定时器计数器的功能

定时器计数器的功能

志TF0的同时,自动将TH0中所装的原初始常数送TL0,使TL0从
原初始常数开始重新计数。
FFFFH时 2μs
•.定时间初隔和始计数化的范时围:在以6TMHLZ晶0振、为例TH0中装入同样的初始常数,TH0即记忆了该
初MCPOLV始PT1.L0常, #数0CH,因; 此在中断服务程序中不必重装时间常数,省去了重装
T1
T0
GATE C/T M1 M0 GATE C/T M1 M0 字节地址89H
GATE:门控位
C/T: 1 计数 0 定时
M1 M0:00 方式0 01 方式1 10 方式2 11 方式3
3
2.定时器控制寄存器 TCON 字节地址88H 可位寻址
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
11110000 00001100 TH0=F0H TL0=0CH 即共加500次,每次耗费2μs,共耗费时间1ms
8
②讨论计数方式: 例如前述的啤酒生产线,计数24瓶中断转入装箱程序。 选T1方式0计数,TMOD的高4位为: 0 1 0 0 初始常数X的计算:
213 - X =24 X=8192 - 24=8168 8168=1FE8H 00011111 11101000B
T即H1 每= 9EH隔T1L12=/5f8H加1
T1
T0
MOV TH0, #0FAH
例如一啤酒生产线,如下图所示
首先计数器清零,在正脉冲开始时,
在正脉冲结束的下降
216 ×2×10-6 =65536 ×2×10-6 =131.
213 - X =24
1
关于定时器的小结与补充:
ORG 001BH
高电平1ms
11111111 00001000 TH1=FFH TL1=08H 加24次即溢出中断。程序如下:

第3次《单片机原理与应用》-定时计数器

第3次《单片机原理与应用》-定时计数器

定时器初始化编程:
使用定时器工作之前,先写入控制寄存器, 确定好定时器工作方式。 初始化编程格式:
MOV TMOD,# 方式字 MOV THx,#XH MOV TLx,#XL (SETB EA ) (SETB ETx) SETB TRx ;选择方式 ;装入Tx时间常数 ;开Tx中断 ;启动Tx定时器
TMOD,#01H ;设置T0为方式1定时
ACALL PT0M0
HERE: AJMP HERE
;调用初始化子程序PT0M0
;原地循环,等待中断
22
PT0M0: MOV
TL0,#0CH
;T0初始化,装初值的低8位
MOV
TH0,#0FEH
;装初值的高8位
;允许T0中断 ;总中断允许 ;启动T0 ;中断子程序,T0重装初值 ;P1.0的状态取反
本例,主程序用一条转至自身的短跳转指令来代替。
21
参考程序如下:
ORG 0000H ;程序入口 ;转主程序 ;T0中断入口 ;转T0中断处理程序IT0P ;主程序入口 ;设堆栈指针
RESET: AJMP MAIN ORG 000BH
AJMP IT0P ORG MAIN: MOV MOV 0100H SP,#60H
2)中断方式:初始化后执行其它任务,中断服务程序处理溢出。 ORG 0000H LJMP MAIN ORG 000BH(001BH) ;Tx中断入口 LJMP PTS MAIN: … ;初始化后执行其他程序 PTS: … ;溢出中断服务程序 MOV THx,#XH ;重装时间常数 MOV TLx,#XL RETI
即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务 子程序中对P1.0取反。为此要做如下几步工作。

plc定时器与计数器

plc定时器与计数器
第27页/共43页
(2)计数值
计数值的范围为0~999,如下图所示,计数器值有两种存储格 式:
一种是BCD码格式,则该字的0~11位是计数值的BCD码,用
格式 15
87
0
0 0 0 10 0 1 0 0 1 1 1
C#127表示BCD码127;
未用
1
2
7
另一种是二进制格式,只占用计数器字的0~9位,。
机M2起 动;按下停止按钮,M2立即停止,延时10s后,
M1停机。 起动按钮:I0.1; 停止按钮:I0.2 电动机M1:Q0.0; 电动机M2: Q0.1
例4:定时器扩展,在S7-300中,单个定时器的最大计时范围 是9990s
或2H-46M-30s,如果超过这个范围,可以采用两个(或多个)
第42页/共43页
= 输出地址 //输出地址 为1状态
第32页/共43页
STL等效程序
3. S_CU(加计数器)块图指令
第33页/共43页
4. S_CD(减计数器)块图指令
第34页/共43页
5. 计数器的线圈指令 除了前面介绍的块图形式的计数器指令以外,S7-300系统
还为用 户准备了LAD环境下的线圈形式的计数器。这些指令有计数器
L(装入指令):把预置值装入累加器1 SP(为脉冲定时器指令):启动定时器 R:复位Tn0 L Tn0:把Tn0的十六进制时间当前值装入累加器1 T 时间字单元1:把累加器1的内容传送到时间字单元1 LC Tn0:把Tn0的BCD时间当前值装入累加器1 T 时间字单元2:把累加器1的内容传送到时间字单元2 A Tn0:检查Tn0的信号状态 = 输出地址: Tn0的定时器位为1时,输出地址有输出。
圈表示 的形式,指令格式、示例及时序波形图见下图所示。各输入端及输
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定时器/计数器及实验MCS-51单片机可提供两个16位的定时/计数器:定时/计数器1和定时/计数器0。

它们均可用作定时器或事件计数器,为单片机系统提供计数和定时功能。

12.1 定时/计数器的结构及工作原理图12-1为定时/计数器的结构框图。

由图12-1可见,定时/计数器的核心是一个加1计数器,加1计数器的脉冲有两个来源,一个是外部脉冲源,另一个是系统的时钟振荡器。

计数器对两个脉冲源之一进行输入计数,每输入一个脉冲,计数值加1。

当计数到计数器为全1时,再输入一个脉冲就使计数值回零,同时从最高位溢出一个脉冲使特殊功能寄存器TCON (定时器控制寄存器)的某一位TF0或TF1置1,作为计数器的溢出中断标志。

如果定时/计数器工作于定时状态,则表示定时的时间到,若工作于计数状态,则表示计数回零。

所以,加1计数器的基本功能是对输入脉冲进行计数,至于其工作于定时还是计数状态,则取决于外接什么样的脉冲源。

当脉冲源为时钟振荡器(等间隔脉冲序列)时,由于计数脉冲为一时间基准,所以脉冲数乘以脉冲间隔时间就是定时时间,因此为定时功能。

当脉冲源为间隔不等的外部脉冲发生器时,就是外部事件的计数器,因此为计数功能。

图12-1 定时/计数器结构框图用作“定时器”时,在每个机器周期寄存器加1,也可以把它看作是在累计机器周期。

由于一个机器周期包括12个振荡周期,所以,它的计数速率是振荡频率的1/12。

如果单片机采用12MHz晶体,则计数频率为1MHz,即每微秒计数器加l。

这样不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出应计数的预置值。

用作“计数器”时,MCS-51在其对应的外输入端T0(P3.4)或T1(P3.5)有一个输入脉冲的负跳变时加1。

最快的计数速率是振荡频率的1/24。

定时/计数器T0由两个8位特殊功能寄存器TH0和TL0构成,定时/计数器T1由两个8位特殊功能寄存器TH1和TL1构成。

方式寄存器TMOD用于设置定时/计数器的工作方式,控制寄存器TCON用于启动和停止定时/计数器的计数,并控制定时/计数器的状态。

对于每一个定时/计数器其内部结构实质上是一个可程控加法计数器,由编程来设置它工作在定时状态或计数状态。

8位特殊功能寄存器TH0和TL0(或TH1和TL1)可被程控为不同的组合状态(13位、16位、两个分开的8位等),从而形成定时/计数器四种不同的工作方式,这也只需用指令改变TMOD的相应位即可。

12.2 定时/计数器方式寄存器和控制寄存器方式寄存器TMOD和控制寄存器TCON用于控制定时/计数器的工作方式,一旦把控制字写入TMOD和TCON后,在下一条指令的第一个机器周期初(S1P1期间)就发生作用。

两个寄存器格式如下:1. 定时/计数器方式寄存器TMODTMOD(89H)其中高4位控制定时器T1,低4位控制定时器T0。

M1、M0:工作方式选择位。

定时器/计数器具有4种工作方式,由M1M0位来定义,如表12-1。

C/T:选择“计数器”或“定时器”功能,C/T=1为计数器功能(计数在T0或T1端的负跳变)。

C/T=0为定时器功能(计机器周期)。

GA TE:选通控制。

GATE=0,由软件控制TR0或TR1位启动定时器;GATE=1,由外部中断引脚INT0(P3.2)和INT1(P3.3)输入电平分别控制T0和T1的运行。

2. 定时/计数器控制寄存器TCONbit(88HTF1:定时器T1溢出中断标志,当定时器T1溢出时由内部硬件置位,申请中断,当单片机转向中断服务程序时,由内部硬件将TF1标志位清0。

TR1:定时器T1运行控制位,由软件置位/清除来控制定时器T1开启/关闭。

当GATE (TMOD.7)为0而TR1为l时,允许T1计数;当TR1为0时禁止T1计数。

当GA TE(TMOD.7)为l时,仅当TR1=1且INT1输入为高电平才允许T1计数,TR1=0或INT1输入低电平都禁止T1计数。

TF0:定时器T0溢出标志,其含义与TF1类同。

TR0:定时器T0的运行控制位,其含义与TR1类同。

复位时,TMOD和TCON的所有位均清0。

TCON的低4位与外部中断有关,在下一章再作介绍。

12.3 定时/计数器的工作方式2个16位定时器/计数器具有定时和计数两种功能,每种功能包括了4种工作方式。

用户通过指令把方式字写入TMOD中来选择定时器/计数器的功能和工作方式,通过把计数的初始值写入TH和TL中来控制计数长度,通过对TCON中相应位进行置位或清0来实现启动定时器工作或停止计数。

还可以读出TH、TL、TCON中的内容来查询定时器的状态。

12.3.1 方式0当M1M0两位为00时,定时器/计数器被选为工作方式0。

其等效框图如图12-2所示。

方式0是一个13位的定时器/计数器。

定时器T1的结构和操作与定时器T0完全相同。

在这种方式下,16位寄存器(TH0和TL0)只用13位。

其中TL0的高3位未用,其余位占整个13位的低5位,TH0占高8位。

当TL0的低5位溢出时向TH0进位,而TH0溢出时向中断标志TF0进位(硬件置位TF0),并申请中断。

定时器T0计数溢出与否可通过查询TF0是否置位,或是否产生定时器T0中断而知道。

图12-2 定时器T0(或T1)方式0结构当C/T=0时,多路开关连接振荡器的12分频器输出,T0对机器周期计数,这就是定时工作方式。

当时,多路开关与引脚P3.4(T0)相连,外部计数脉冲由引脚T0输入。

当外信号电平发生1到0跳变时,计数器加1,这时T0成为外部事件计数器。

当GATE=0时,封锁“或”门,使引脚INT0输入信号无效。

这时,“或”门输出为常“1”,打开“与”门,由TR0控制定时器T0的开启和关断。

若TR0=1,接通控制开关,启动定时器T0,允许T0在原计数值上作加法计数,直至溢出。

溢出时,计数寄存器值为0,TF0=1,并申请中断,T0从0开始计数。

因此,若希望计数器按原计数初值开始计数,在计数溢出后,应给计数器重新赋初值。

若TR0=0,则关断控制开关,停止计数。

当GATE=1,且TR0=l时,“或”门、“与”门全部打开,外信号电平通过INT0直接开启或关断定时器计数。

输入“1”电平时,允许计数,否则停止计数。

这种操作方法可用来测量外信号的脉冲宽度等。

当为计数工作方式时,计数值的范围是:1~8192(213)当为定时工作当时,定时时间的计算公式为:(213-计数初值)x晶振周期x12或(213-计数初值)x机器周期12.3.2 方式1当M1M0两位为01时,定时器/计数器被选为工作方式1。

其等效框图如图12-3所示。

图12-3 定时器T0(或T1)方式1结构方式1为16位计数结构的工作方式,计数器由8位TH0和8位TL0构成(定时器T1的结构和操作与定时器T0完全相同)。

其逻辑电路和工作情况与方式0完全相同,所不同的只是组成计数器的位数。

当为计数工作方式时,计数值的范围是:1~65536(216)当为定时工作方式时,定时时间计算公式为:(216-计数初值)x晶振周期x12或(216-计数初值)x机器周期12.3.3 方式2当M1M0两位为10时,定时器/计数器被选为工作方式2。

其等效框图如图12-4所示。

图12-4 定时器T0(或T1)方式2结构方式0和方式1的最大特点是计数溢出后,计数器全为0,因此循环定时或计数应用时就存在重新设置计数初值的问题,这不但影响定时精度,而且也给程序设计带来不便。

方式2就是针对此问题而设置的,它具有自动重新加载功能,因此也可以说方式2是自动重新加载工作方式。

在这种工作方式下,把16位计数器分为两部分,即以TL0作计数器,以TH0作预置寄存器,初始化时把计数初值分别装入TL0和TH0中。

当计数溢出后,由预置寄存器以硬件方法自动加载。

初始化时,8位计数初值同时装入TL0和TH0中。

当TL0计数溢出时,置位TF0,同时把保存在TH0中的计数初值自动加载装入TL0中,然后TL0重新计数,如此重复不止,这不但省去了用户程序中的重装指令,而且有利于提高定时精度。

但这种方式下计数值有限,最大只能到256。

这种自动重新加载工作方式非常适用于连续定时或计数应用。

当为计数工作方式时,计数值的范围是:1~256(28)当为定时工作方式时,定时时间计算公式为:(28-计数初值)x晶振周期x12或(28-计数初值)x机器周期12.3.4 方式3当M1M0两位为11时,定时器/计数器被选为工作方式3。

前三种工作方式下,对两个定时器/计数器的使用是完全相同的,但是在方式3下,两个定时器/计数器的工作却是不同的。

定时器/计数器T0:在方式3下,定时器/计数器T0被拆成两个独立的8位计数器TL0和TH0,其中TL0既可以计数使用,又可以定时使用,定时器/计数器T0的各控制位和引脚信号全归它使用。

其功能和操作与方式0和方式1完全相同,而且逻辑电路结构也极其类似,如图12-5。

图12-5 定时器T0(或T1)方式3结构但TH0 则只能作为简单的定时器使用,而且由于定时器/计数器T0的控制位已被TL0所占用,因此只好借用定时器/计数器T1的控制位TR1和TF1,即计数溢出置位TF1,而定时的启动和停止则受TR1的状态控制。

由于TH0只能作定时器使用而不能作计数器使用,因此在方式3下,定时器/计数器T0可以构成二个定时器;或一个定时器一个计数器。

定时器/计数器T1:如果定时器/计数器T0已被设置为工作方式3,则定时器/计数器T1只能设置为方式0,方式1或方式2,因为它的运行控制位TR1及计数溢出标志位TF1已被定时器/计数器T0所占据,在这种情况下,定时器/计数器T1通常是作为串行口的波特率发生器使用,因为已没有计数溢出标志位TF1可供使用,因此就把计数溢出直接送给串行口,以决定串行通信的速率。

当作为波特率发生器使用时,只需设置好工作方式,便自动运行。

如要停止工作,只需送入一个把它设置为方式3的方式控制字就可以了。

因为定时器/计数器T1不能在方式3下使用,如果硬把它设置为方式3,就停止工作。

12.4 定时器/计数器的初始化由于定时器/计数器的功能是由软件编程确定的,所以一般在使用定时器/计数器前都要对其进行初始化,使其按设定的功能工作。

初始化步骤一般如下:1.确定工作方式,对TMOD赋值。

2.预置定时或计数的初值,可直接将初值写入TH0、TL0或TH1、TL1。

3.根据需要开放定时器/计数器的中断,直接对IE位赋值。

4.启动定时器/计数器,若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚加启动电平。

当实现了启动要求之后,定时器即按规定的工作方式和初值开始计数或定时。

12.5使用定时器T1以方式0使单片机产生周期为1000μS等宽方波脉冲实验(1000Hz音频),在P1.7输出驱动蜂鸣器发音12.5.1 实现方法LED输出试验板使用11.0592MHz晶振,可近似认为其为12MHz,这样一个机器周期为1μS。

相关文档
最新文档