定时器、计数器及实验
定时器计数器的定时实验
定时器和计数器是数字逻辑电路中常见的功能模块,用于时间测量和事件计数。
以下是一个可能的定时器计数器的定时实验设计方案:
实验名称:定时器计数器的定时实验
实验目的:
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次《单片机原理与应用》-定时计数器
定时器初始化编程:
使用定时器工作之前,先写入控制寄存器, 确定好定时器工作方式。 初始化编程格式:
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定时器与计数器
(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时,输出地址有输出。
圈表示 的形式,指令格式、示例及时序波形图见下图所示。各输入端及输
PLC程序中定时器和计数器的配合应用
PLC程序中定时器和计数器的配合使用实际使用中,定时器和计数器,常常有“强强联合”形式的搭配性使用。
一、定时器1、定时器是位/字复合元件,可以有三个属性:1)有线圈/触点元件,当满足线圈的驱动(时间)条件时,触点动作;2)具有时间控制条件,当线圈被驱动时,触点并不是实时做出动作反应,而是当线圈被驱动时间达到预置时间后,触点才做出动作;3)具有数值/数据处理功能,同时又是“字元件”。
2、可以用两种方法对定时时间进行设置:1)直接用数字指定。
FX编程器用10进制数据指定,如K50,对于100ms 定时器来讲,延时5秒动作。
为5秒定时器。
对LS编程器,可用10制数或16进制数设定,如50(或h32),对于100ms定时器来讲,延时5秒动作;2)以数据寄存器D设定定时时间,即定时器的动作时间为D内的寄存数值。
3、由定时器构成的时间控制程序电路:LS编程器中的定时器有多种类型,但FX编程器中的定时器只有“得电延时输出”定时器一种,可以通过编写相应程序电路来实现“另一类型”的定时功能。
图1程序电路中,利用M0和T1配合,实现了单稳态输出——断开延时定时器功能,X1接通后,Y0输出;X1断开后,Y0延时10秒才断开;T2、T3、Y2电路则构成了双延时定时器,X4接通时,Y2延时2秒输出;X4断开时,Y2延时3秒断开;Y3延时输出的定时时间,是由T4定时器决定的,T4的定时时间是同D1数据寄存器间接指定的。
当X2接通时,T4定时值被设定为10秒;当X3接通时,T4定时值则被设定为20秒。
XO提供定时值的清零/复位操作。
单个定时器的定时值由最大设定值所限定(0.1∽3276.7s),换言之,其延时动作时间不能超过1小时。
如欲延长定时时间,可以如常规继电控制线路一样,将多只定时器“级联”,总定时值系多只定时器的定时值相加,以扩展定时时间。
更好的办法,是常将定时器和计数器配合使用,其定时时间,即变为定时器的定时器和计数器的计数值相乘,更大大拓展了定时范围,甚至可以以月或年为单位进行定时控制。
实验八定时器计数器8253实验
8253是Intel公司生产的一款可 编程定时器计数器。
它具有3个独立的16位计数器, 每个计数器都可以独立编程和控
制。
8253的计数器可以用于产生时 间间隔、脉冲信号、PWM(脉
宽调制)等。
8253的工作原理
825ቤተ መጻሕፍቲ ባይዱ的每个计数器都有一个预置 值,当计数达到预置值时,计数 器会自动回置并触发一个中断或
实验八:定时器计数器8253实验
contents
目录
• 实验简介 • 8253定时器计数器概述 • 实验步骤与操作 • 实验结果与分析 • 实验总结与思考
01 实验简介
实验目的
掌握8253定时器计 数器的工作原理。
了解定时器在计算机 系统中的应用。
学习如何编程控制 8253定时器计数器。
实验设备
01
微机实验箱
02
8253定时器计数器芯片
03
示波器
04
信号发生器
02 8253定时器计数器概述
定时器计数器的基本概念
定时器计数器是一种用于产生 时间间隔或计数的电子设备。
它通常由石英晶体振荡器驱动, 以提供稳定的计时基准。
定时器计数器广泛应用于计算 机、通信、自动化等领域。
8253的特性和功能
配置8253定时器计数器
设置工作模式
根据实验要求,选择适当的定时/计数 模式,如计数模式、定时模式或门控 模式等。
设置定时/计数初值
启动定时/计数
通过微处理器发送控制信号,启动 8253定时器计数器的定时/计数操作。
根据实验要求,设置适当的定时/计数 初值,以满足实验条件。
启动和观察实验结果
启动实验
加强实践环节
为了更好地理解和掌握相关知识,建议增加更多的实践环节,例 如组织小组讨论、分享经验等。
实验六定时器计数器应用实验报告
实验六定时器计数器应用实验报告一、实验目的本实验的目的是通过对定时器计数器的应用实验,加深对定时器和计数器工作原理的理解,掌握定时器的使用方法,并能灵活应用到实际工程中。
二、实验原理定时器是一种常用的计时设备,它可以在微处理器或微控制器系统中用于各种计数、计时和频率测量应用。
我们所面对的实验中使用的定时器是软件定时器,其工作原理是通过编程方式配置定时器的时钟源和计数器的计数范围,然后在主程序中通过中断或轮询的方式来读取计数器的值,从而实现不同的定时器功能。
计数器是一种用于计数的设备,它可以对外部信号的频率进行计数。
在本实验中,我们使用计数器来计算外部信号的脉冲数,并将计数结果显示出来。
三、实验材料1. STC89C52 单片机开发板2. 4位数码管3. 杜邦线若干4. 外部信号发生器四、实验步骤1. 连接电路图如下所示:(此处省略电路图)2. 打开 Keil μVision 软件并新建一个工程,选择合适的单片机型号。
3. 在主程序中初始化定时器和计数器,设置适当的时钟源和计数范围。
4. 设置外部中断,用于触发计数器开始计数。
5. 在中断服务程序中编写计数器处理逻辑,获取计数值并进行相应的操作。
6. 在主循环中,根据需求配置定时器,比如实现不同的定时功能,或者将计数结果显示在数码管上。
7. 编译、烧录程序到单片机开发板上,并进行实验验证。
五、实验结果经过实验,我们成功地实现了定时器计数器的应用功能。
通过设置不同的计数范围和外部触发条件,我们能够准确地计算出外部信号的脉冲数,并将计数结果显示出来。
同时,我们还实现了不同的定时功能,比如周期性触发中断、定时器中断延时等。
六、实验总结通过本次实验,我们深入理解了定时器和计数器的工作原理,并掌握了定时器的使用方法。
定时器计数器在实际工程中具有广泛的应用,比如用于频率测量、脉冲计数、定时触发等。
掌握了定时器计数器的使用,对于我们的工程开发和项目实施都具有重要的意义。
单片机定时器,计数器
第六章定时器/计数器第一节概述8051内部提供两个十六位的定时器/计数器T0和T1,它们既可以用作硬件定时,也可以对外部脉冲计数。
1.计数功能:所谓计数功能是指对外部脉冲进行计数。
外部事件的发生以输入脉冲下降沿有效,从单片机芯片T0(P3.4)和T1(P3.5)两个引脚输入,最高计数脉冲频率为晶振频率的1/24。
2.定时功能:以定时方式工作时,每个机器周期使计数器加1,由于一个机器周期等于12个振荡脉冲周期,因此如单片机采用12MHz晶振,则计数频率为12MHz/12=1MHz。
即每微秒计数器加1。
这样就可以根据计数器中设置的初值计算出定时时间。
第二节定时器/计数器的基本结构、工作方式及应用一、定时器/计数器基本结构定时器/计数器的基本结构如图6-1。
T0由TH0和TL0两个八位二进制加法计数器组成十六位二进制加法计数器;T1由TH1和TL1两个八位二进制加法计数器组成十六位二进制加法计数器。
图6-1 定时器/计数器基本组成110二、定时器/计数器控制寄存器1.定时器方式控制寄存器TMOD定时器方式控制寄存器地址89H,不可位寻址。
TMOD寄存器中高4位定义T1,低4位定义T0。
其中M1,M0用来确定所选工作方式如表6—1:定时/计数器T1 定时/计数器T0111定时器控制寄存器TCON地址88H,可以位寻址,TCON主要用于控制定时器的操作及中断控制。
有关中断内容在第四章已说明。
此处只对定时控制功能加以介绍。
表6—2给出了TCON有关控制位功能:系统复位时,TMOD和TCON寄存器的每一位都清零。
112113三、工作方式及应用用户可通过编程对专用寄存器TMOD 中的M1,M0位的设置,选择四种操作方式。
(一)方式0(以T0为例)在此方式中,定时寄存器由TH0的8位和TL0的5位(其余位不用)组成一个13位计数器。
当GATE=0时,只要TCON 中的TR0为1,13位计数器就开始计;当GATE=1以及TR0=1时,13位计数器是否计数取决于INT0引脚信号,当INT0由0变1时开始计数,当INT0由1变为0时停止计数。
定时器计数器、8253方波
定时器/计数器、8253方波一、实验目的⑴学会8253芯片和微机接口原理和方法。
⑵掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容8253的0通常工作在方式3,产生方波。
三、编程提示8253芯片介绍8253是一种可编程定/计数器,有三个十六位计数器,其计数频率范围为0~2M H Z,用+5V 单电源供电。
8253的功能用途:⑴延时中断 ⑸实时时钟⑵可编程频率发生器 ⑹数字单稳⑶事件计数器 ⑺复杂的电机控制器⑷二进制倍频器8253的六种工作方式:⑴方式0:计数结束中断 ⑷方式3:方波频率发生器⑵方式1:可编程频率发生 ⑸方式4:软件触发的选通信号⑶方式2:频率发生器 ⑹方式5:硬件触发的选通信号8253的0号通道工作在方式3,产生方波。
四、参考流程框图五、参考程序CODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3490HH9: MOV DX,0FFE3HMOV AL,36HOUT DX,ALMOV DX,0FFE0HMOV AL,00HOUT DX,ALMOV AL,10HOUT DX,ALJMP $CODE ENDSEND H9六、实验步骤⑴按实验电路图连接线路:按实验电路图连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与位于地址线A0引出孔所在位置下方的使能控制输出端G作对应连接,该端的寻址范围为0F F E0H~0F F F F H。
①8253的G A T E0接+5V。
②8253的C L K0插孔接分频器74L S393的T2插孔,分频器的频率源为:4.9152M H z(已连好)。
③把8253的C S孔与138译码器的Y0孔相连。
④用8芯排线或8芯扁平线把D0~D7总线接口(部分机型位于8251右侧)与数据总线单元D0~D7任一接口相连。
⑵运行实验程序:在系统处于命令提示符“P.”状态下,输入3490,按E X E C键。
实验三 定时器实验 实验报告
课程名称:单片机实验题目:实验三定时实验学生姓名:专业:电子信息科学与技术班级:学号:指导教师:张涛实验三 定时器实验一、实验目的1、掌握单片机系统定时器断的原理及使用方法。
二、实验原理 (一)、单片机定时器/计数器的结构 1.定时器/计数器组成框图8051单片机内部有两个16位的可编程定时器/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。
此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。
_____INT1(P3.3)_____INT0(P3.2)T1(P3.5)T0(P3.4)图 8051定时器/计数器逻辑结构图由图可知,8051定时器/计数器由定时器 T0、定时器T1、定时器方式寄存器TMOD 和定时器控制寄存器TCON 组成。
2.定时/计数器的方式寄存器和控制寄存器定时/计数器的初始化通过定时/计数器的方式寄存器TMOD 和控制寄存器TCON 完成。
1)定时/计数器方式寄存器TMODTMOD 为T1、T2的工作方式寄存器,其格式如下:TMOD D7 D6 D5 D4 D3 D2 D1 D0(89H) TMOD 的低 (1(2)T /C :功能选择位。
0/C =时,设置为定时器工作方式;1/C =时,设置为计数器工作方式。
(3)GATE :门控位。
当GA TE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须0INT (P3.2)或1INT (P3.3)为高电平方可启动定时器,即允许外中断0INT 、1INT 启动定时器。
TMOD 不能位寻址,只能用字节指令设置定时器工作方式,高4位定义T1,低4位定义T0。
复位时,TMOD 所有位均置0。
2)定时器/计数器控制寄存器TCONTCON 的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。
定时器控制字TCON 的格式如下:TCON (88H ) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H(1) TCON.7 TF1:定时器1溢出标志位。
单片机定时器-计数器实验总结
单片机定时器-计数器实验总结单片机定时器/计数器实验总结篇一:单片机实验之定时器计数器应用实验一一、实验目的1、掌握定时器/计数器定时功能的使用方法。
2、掌握定时器/计数器的中断、查询使用方法。
3、掌握Prteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
二、设计要求1、用Prteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P1.0口线上接示波器观察波形。
2、用Prteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P1.1口线上接示波器观察波形。
三、电路原理图六、实验总结通过这次实验,对定时器/计数器的查询工作方式有了比较深刻的理解,并能熟练运用。
掌握定时器/计数器的中断、查询使用方法。
对于思考题能够运用三种不同思路进行编程。
七、思考题1、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波。
答:程序见程序清单。
四、实验程序流程框图和程序清单1、以查询方式工作,在P1.0 RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #02H MV TH0, #9CH MV TL0, #9CH SETB TR0 LP: JNB TF0, LP CLR TF0 CPL P1.0 AJMP LP END2、以中断方式工作,在P1.1 RG 0000H START: LJMP MAIN RG 000BH LJMP TTC0 RG 0100H MAIN: MV TMD, #02H MV TH0, #88H MV TL0, #88H SETB EA SETB ET0 SETB TR0 HERE: LJMP HERE RG 0200H TTC0: CPL P1.1 RETI END3、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波 RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #20H MV TH1, #38H MV TL1, #38H MV TH0, #0F6H MV TL0, #14H LP1: SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CLR TR1 CPL P1.0 SETB TR0 LP3: JNB TF0, LP3 MV TH0, #0F6H MV TL0, #14H CLR TF0 CLR TR0 CPL P1.0 LJMP LP1 END RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #20H MV TH1, #38H MV TL1, #38H MV TH0, #0F0H MV TL0, #0CH SETB TR0 LP1: SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CLR TR1 CPL P1.0 SETB TR0 LP3: JNB TF0, LP3 CLR TF0 MV TH0, #0F0H MV TL0, #0CH CPL P1.0 LJMP LP1 END RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #00H LP1: MV TH1, #0F9H MV TL1, #18H SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CPL P1.0 MV TH1, #0F6H MV TL1, #14H LP3: JNB TF1, LP3 CLR TF1 CPL P1.0 LJMP LP1 END五、实验结果(波形图)篇二:单片机实验-定时器计数器应用实验一定时器/计数器应用实验一一、实验目的和要求1、掌握定时器/计数器定时功能的使用方法。
定时器计数器的定时实验
定时器计数器的定时实验简介本文将介绍定时器计数器的定时实验,主要涉及定时器计数器的原理、使用方法以及实验步骤。
定时器计数器是一种常用的计时设备,广泛应用于各种计时场景。
定时器计数器的原理定时器计数器是一种能够精确计时的设备,它通常由一个可编程的时钟和一个计数器组成。
计数器根据时钟的脉冲信号进行计数,从而实现计时的功能。
定时器计数器的工作原理如下:1.初始化计数器:将计数器的初始值设置为0。
2.启动计数器:通过控制信号将时钟输入到计数器中,开始计数。
3.计数过程:计数器根据时钟的脉冲信号进行计数,每接收到一个时钟脉冲,计数器的值加1。
4.判断定时完成:当计数器的值等于设定的定时值时,表示定时完成。
5.停止计数器:定时完成后,停止时钟信号的输入,计数器停止计数。
定时器计数器的使用方法定时器计数器通常由软件通过编程的方式进行使用,具体方法如下:1.初始化定时器计数器:首先,需要将计数器的初始值设置为0,并且设定定时的时间。
2.启动计数器:通过控制信号将时钟输入到计数器中,开始计数。
3.监测计数器的值:在计数的过程中,可以通过查询计数器的值来获取当前的计时结果。
4.判断定时完成:当计数器的值等于设定的定时值时,表示定时完成。
5.停止计数器:定时完成后,停止时钟信号的输入,计数器停止计数。
实验步骤以下是一个简单的实验步骤,用于演示定时器计数器的定时功能:1.准备硬件:–打开开发板,并确保定时器计数器的引脚与外部设备连接正常。
–连接调试器,以便在实验过程中监测计数器的值。
2.编写代码:–在开发环境中,编写一段代码,完成实验的需求,包括初始化计数器、设定定时值等。
3.烧录程序:–将编写好的程序烧录到开发板中。
4.启动实验:–启动开发板,开始实验。
5.监测计数器的值:–在实验过程中,通过调试器监测计数器的值,以便实时了解计时结果。
6.判断定时完成:–当计数器的值等于设定的定时值时,表示定时完成,可以进行相关操作,如触发其他事件、输出提示信息等。
单片机中的定时器和计数器
单片机中的定时器和计数器单片机作为一种嵌入式系统的核心部件,在各个领域都发挥着重要的作用。
其中,定时器和计数器作为单片机中常用的功能模块,被广泛应用于各种实际场景中。
本文将介绍单片机中的定时器和计数器的原理、使用方法以及在实际应用中的一些典型案例。
一、定时器的原理和使用方法定时器是单片机中常见的一个功能模块,它可以用来产生一定时间间隔的中断信号,以实现对时间的计量和控制。
定时器一般由一个计数器和一组控制寄存器组成。
具体来说,定时器根据计数器的累加值来判断时间是否到达设定的阈值,并在时间到达时产生中断信号。
在单片机中,定时器的使用方法如下:1. 设置定时器的工作模式:包括工作在定时模式还是计数模式,以及选择时钟源等。
2. 设置定时器的阈值:即需要计时的时间间隔。
3. 启动定时器:通过控制寄存器来启动定时器的运行。
4. 等待定时器中断:当定时器计数器的累加值达到设定的阈值时,会产生中断信号,可以通过中断服务函数来进行相应的处理。
二、计数器的原理和使用方法计数器是单片机中另一个常见的功能模块,它主要用于记录一个事件的发生次数。
计数器一般由一个计数寄存器和一组控制寄存器组成。
计数器可以通过外部信号的输入来触发计数,并且可以根据需要进行计数器的清零、暂停和启动操作。
在单片机中,计数器的使用方法如下:1. 设置计数器的工作模式:包括工作在计数上升沿触发模式还是计数下降沿触发模式,以及选择计数方向等。
2. 设置计数器的初始值:即计数器开始计数的初始值。
3. 启动计数器:通过控制寄存器来启动计数器的运行。
4. 根据需要进行清零、暂停和启动操作:可以通过控制寄存器来实现计数器的清零、暂停和启动操作。
三、定时器和计数器的应用案例1. 蜂鸣器定时器控制:通过定时器模块产生一定频率的方波信号,控制蜂鸣器的鸣叫时间和静默时间,实现声音的产生和控制。
2. LED呼吸灯控制:通过定时器模块和计数器模块配合使用,控制LED的亮度实现呼吸灯效果。
单片机(c语言版)定时器计数器..
#include<reg51.h> Char i=100;/*给变量i赋初值,定时0.5S,每次定时中断 5MS,需要中断100次*/ void main( ) { TMOD=0x01; /*设置定时器T0为方式1*/ TH0=0xee; /*向TH0写入初值的高8位*/ TL0=0x00; /*向TL0写入初值的低8位*/ P1=0x00; /*P1口8只LED点亮*/ EA=1; /*总中断允许*/ ET0=1; /*定时器T0中断允许*/ TR0=1; /*启动定时器T0*/ while(1) ; /*无穷循环,等待定时中断*/ }
定时时间:计数器溢出时间,时间常数越大,定时
时间就越短;时间常数越小,定时时间就越长。时 钟的频率越高,定时时间越短;时钟的频率越低, 定时时间越长。
设系统时钟的频率为fosc,计数器的初始值为N,定 时器工作于方式1,则定时时间: T=(216-N)×12/fosc (1) 如果定时器工作于方式2或方式3,定时时间为: T=(28-N)×12/fosc (2)
6.4 定时器/计数器的编程和应用
MCS-51单片机的定时器是可编程的,但在进行定时或计数
之前要对程序进行初始化,具体步骤如下: (1)确定工作方式字:对TMOD寄存器正确赋值; (2)确定定时初值:计算初值,直接将初值写入寄存器的TH0 、TL0或TH1、TL1; 初值计算:设计数器的最大值为M,则置入的初值X为: 计数方式:X=M-计数值 定时方式:由(M-X)T=定时值,得X=M-定时值/T T为计数周期,是单片机的机器周期。 (模式0-M为213,模式1-M为216,模式2和3-M为28) (3)根据需要,对IE置初值,开放定时器中断; (4)启动定时/计数器,对TCON寄存器中的TR0或TR1置位, 置位以后,计数器即按规定的工作模式和初值进行计数或开 始定时。
定时计数器实验-单片机
单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。
二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。
它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。
作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。
因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。
❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:GATE:门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。