C51单片机定时计数器应用编程归纳总结
MCS51单片机的定时计数器及应用

定时/计数器T0和T1的工作方式2(P143) ----8位自动重载初值
振荡器
/12
T0 TR0
GATE INT0
控制
TL0(8 位) 重载
TH0(8位)
中断 TF0
TL0(或TL1)用于计数,TH0(或TH1)用于保存初值,计满 溢出时硬件自动将TH0的值重新装入TL0。自动装载的初值:
X=256-N
while (1) ;// 原地踏步
{}
}
void time0_int(void) interrupt 1
{// 中断服务程序 SQ=!SQ ;// 输出翻转
}
采用查询方式的汇编程序(P145)
ORG 0000H
LJMP MAIN ORG 0100H ;主程序 MAIN: MOV TMOD,#02H ; 定 时器T0工作方式2 MOV TH0,#06 ;保存初值 MOV TL0,#06 ; 赋初值 SETB TR0 ; 启动T0
ORG 0030H; 主程序 MAIN:MOV TMOD,#02H; 定时器
T0工作方式2 MOV TH0,#06H;初值保存 MOV TL0,#06H; 赋初值 SETB EA; 开放总中断 SETB ET0; 开放T0溢出中断 SETB TR0; 启动T0 SJMP $; 原地踏步
END
采用中断处理方式的C51程序(P145)
微 处 理 器
TH1
启动
TCON
溢出
TL1
TH0
TL0
内部总线
启动
工作方式
工作方式
TMOD
定时/计数器的结构说明
? TH0和TL0是定时/计数器T0计数器的高 8位和低8位, TH1和TL1是定时/计数器T1计数器的高 8位和低8位。
51单片机定时器c语言

51单片机定时器c语言51单片机是一款广泛应用于嵌入式系统中的芯片,其具有强大的功能和较高的性能表现。
在51单片机中,定时器是其中一项非常重要的功能,因为它可以帮助我们完成很多任务。
在51单片机中使用定时器,我们需要编写相应的c语言程序。
接下来,我将为大家介绍一些关于51单片机定时器c语言编程的知识。
首先,我们需要了解51单片机定时器的工作原理。
51单片机中的定时器是一个计数器,它的计数值会随着时间的流逝而增加。
当计数值达到了设定的阈值时,定时器就会产生一个中断信号。
我们可以通过对这个中断信号进行相应的处理,来完成各种任务。
为了使用51单片机的定时器,我们需要用c语言编写相应的程序。
比如,我们可以通过以下代码来初始化定时器:void timer_init(int time) {TMOD &= 0xF0; // 设定计数模式TL0 = time; // 设置定时器初值TH0 = time >> 8; // 设置定时器初值TR0 = 1; // 开始定时器}这段代码中,我们首先设定了计数模式,并且通过设置初值来调节定时器的计数时间。
最后,我们开启了定时器,让它开始进行计时。
除了初始化定时器之外,我们还需要为定时器编写中断处理程序。
比如,下面是一个简单的定时器中断处理程序:void timer_interrupt() interrupt 1 {// 处理中断信号}在这个中断处理程序中,我们可以编写相应的代码来完成各种任务。
比如,我们可以通过判断定时器计数的次数来控制LED的闪烁频率,或者通过定时器中断信号来完成数据发送等任务。
总结来说,51单片机定时器是非常重要的一个功能,它可以帮助我们完成很多任务。
要使用定时器,我们需要首先了解定时器的工作原理,并且编写相应的c语言程序实现。
如果我们掌握了这些技能,就可以开发出更加完善的嵌入式系统。
单片机C语言-第5章定时器计数器的C51编程 2

定时器/计数器T0分为两个独立的8位计数器TL0和TH0,
TL0使用T0的状态控制位C/ T、GATE、TR0、 TF0 ,
而TH0被固定为一个8位定时器(不能作为外部计数模式), 并使用定时器T1的状态控制位TR1和TF1,同时占用定 时器T1的中断请求源TF1。 (2)T0工作在方式3时T1的各种工作方式
2)T1工作在方式1 当T1的控制字中M1、M0 = 01时,T1工作在方式1。
T0工作在方式3时T1为方式1的工作示意图
3)T1工作在方式2 当T1的控制字中M1、M0 = 10时,T1的工作方式为方 式2。
T0工作在方式3时T1为方式2的工作示意图
4)T1设置在方式3 当T0设置在方式3,再把T1也设成方式3,此时T1停止计 数。
4. 方式3—双8位方式 为增加一个8位定时器/计数器而设,8051单片机具有2
个定时器/计数器。 方式3只适用于T0,T1不能工作在方式3。T1处于方式3
时相当于TR1= 0,停止计数(此时T1可用来作为串行口波 特率产生器) (1)工作方式3下的T0
TMOD的低2位为11时,T0的工作方式被选为方式3, 各引脚与T0的逻辑关系如图所示。
C/T=1
& ≥1
TL0 TF0 TH0
INT0
TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,在 溢出标志TFx置“1”的同时,还自动将THx中的初值送至 TLx,使TLx从初值开始重新计数。
计数与定时范围如下:
• 计数器的计数值范围是:1~256(28) • 当为计数器工作方式时, • 计数器的初值范围为:0~28-1; • 当为定时工作方式时, • 定时时间=(28-计数初值)×定时周期 • 若晶振频率为12MHz,其定时周期1μs, • 则最短定时时间为: • Tmin=[28--(28-1)] ×1μs =1(μs) • 最长定时时间为: • Tmax=(28-0) ×1μs =256(μs)
51单片机定时器计数器详解

51单⽚机定时器计数器详解第六章定时器/计数器6.1 定时器的结构及⼯作原理6.2 定时器的控制6.3 定时器的⼯作模式及其应⽤第六章定时器/计数器实现定时⼀般有多种⽅法:1. 利⽤软件实现(延时程序)优点:简单,控制⽅便;缺点:CPU效率低。
2. 外部硬件实现:单稳态定时器、计数定时器优点:CPU效率⾼;缺点:修改参数⿇烦。
3. 利⽤计数器实现输⼊脉冲定时器/计数器作⽤主要包括产⽣各种时标间隔、记录外部事件的数量等,是单⽚机中最常⽤、最基本的部件之⼀。
外来脉冲定时计数定时器/计数器功能⽰意图6.1 定时器/计数器的结构及⼯作原理6.1.1 定时器/计数器的基本结构MCS-51单⽚机有⼆个定时器/计数器,每个定时器/计数器由⼏个专⽤寄存器组成。
TMOD(89H )⾼四位TMOD(89H )低四位⽅式寄存器TCON(88H)TCON(88H)控制寄存器*8DH 8BH 8CH 8AH TH1 TL1TH0 TL0数据寄存器(16位)定时器T1定时器T0定时器/计数器的结构如下图所⽰。
定时器/计数器的基本结构框图申请P3.5or P3.4or 8DH 8BH8CH 8AH6.1.2 定时器/计数器的⼯作原理定时器/计数器结构原理图INTx P3.YGATE :门控制位:定时/计数控制位TC/x=0,1Y=2,3Z=4,5⼀. 对外部输⼊信号的计数功能当T0或T1设置为计数⼯作⽅式时,计数器对来⾃输⼊引脚P3.4(T0)和P3.5(T1)的外部信号计数。
若前⼀个机器周期采样值为1,后⼀个机器周期采样值为0,则计数器加1。
所以计数器计数的频率最⾼为fosc 的1/24。
BDEHT H >1个机器周期T L >1个机器周期L⼆. 定时功能:定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单⽚机的⽚内振荡器输出经12分频后产⽣的信号,即为对机器周期计数。
INTx P3.Y例如:晶振频率=12MHz 机器周期=1us ,计数1次=1us ,计数频为=1MHz 。
单片机实验报告总结

单片机实验报告总结单片机实验报告总结单片机实验心得体会单片机实验心得体会时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。
在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。
这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。
将所学知识运用到实践中,在实践中发现问题,强化理论知识。
现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。
第一次是借点亮LED灯来熟悉keil软件的使用和试验箱上器材。
第一次实验体现了一个人对新事物的接受能力和敏感度。
虽然之前做过许多种实验。
但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。
所以第一次试验相对失败。
鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。
在做实验中,第二个问题应该是准备不充分吧。
一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。
后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。
于是我便在上机之前把程序编好,拷到U盘,这样上机时只需调试,解决出现的问题。
这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。
发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。
三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。
于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。
但是编程是一件很严肃的事情,容不得半点错误。
于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。
51单片机定时器计数器汇编实验报告

批阅长沙理工大学实验报告年级光电班号姓名同组姓名实验日期月日指导教师签字:批阅老师签字:内容一、实验目的四、实验方法及步骤二、实验原理五、实验记录及数据处理三、实验仪器六、误差分析及问题讨论单片机定时器/计数器实验一、实验目的1、掌握51单片机定时器/计数器的基本结构。
2、掌握定时器/计数器的原理及编程方法。
二、实验仪器1、装有keil软件的电脑2、单片机开发板三、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1,他们有四种工作方式,现以方式1举例。
若定时器/计数器0工作在方式1,计数器由TH0全部8位和TL0全部8位构成。
方式1作计数器用时,计数范围是:1-65536(2^16);作定时器用时,时间计算公式是:T=(2^16-计数初值)×晶振周期×12。
四、实验内容1、计算计数初值单片机晶振频率为6MHz,使用定时器0产生周期为120000μs等宽方波连续脉冲,并由P1.0输出。
设待求计数初值为x,则:(2^16-x)×2×10^-6 = 120000×10^-6解得x=5536。
二进制表示为:00010101 10100000B。
十六进制为:高八位(15H),低八位(A0H)。
2、设置相关控制寄存器TMOD设置为xxxx0001B3、程序设计ORG 0000HAJMP MAINORG 30HMAIN: MOV P1,#0FFH ;关闭所有灯ANL TMOD,#0F0H ;置定时器0工作方式1ORL TMOD,#01H ;不影响T1的工作MOV TH0,#15H ;设置计数初始值MOV TL0,#0A0HSETB EA ;CPU开中断SETB ET0 ;定时器0开中断SETB TR0 ;定时器开始运行LOOP: JBC TF0,INTP ;如果TF0=1,则清TF0并转到INTPAJMP LOOP ;然跳转到LOOP处运行INTP: MOV TH0,#15H ;重新设置计数初值MOV TL0,#0A0HCPL P1.0 ;输出取反AJMP LOOPEND AJMP LOOPEND4、实验仿真新建工程项目文件中,并为工程选择目标器件为AT公司的AT89S51。
第5章定时器计数器的C51编程

5.1.1
结构
• 计数功能: • 是指对外部事件进行计数:计数信号来 自T0(P3.4)、T1(P3.5)引脚。 • 定时功能: • 也是通过计数器的计数功能来完成的, 不过此时的计数脉冲来自单片机内部: 机器周期。
5.1.2
控制寄存器
• 与定时器/计数器应用有关的控制寄存 器有2个,分别为TCON、TMOD、TH、TL。
3.模式2:
计数与定时范围:
• • • • • • • • • • 计数器的计数值范围是:1~256(28) 当为计数器工作方式时: 计数器的初值范围为:0~28-1; 当为定时工作方式时: 定时时间=(28-计数初值)×定时周期 若晶振频率为12MHz,其定时周期1μs: 则最短定时时间为: Tmin=[28-(28-1)] ×1μs =1(μs) 最长定时时间为: Tmax=(28-0) ×1μs =256(μs)
模式2:
• • • • • •
TMOD=0x06; TH0=-100; TL0=-100; EA=1; ET0=1; TR0=1;
【例5-2】定时器工作方式初始化示例:
• 外接晶振频率fosc=12MHz,T1工作于定 时方式,且允许中断,定时时间为20ms, 令其工作在模式1。
• • • • • • TMOD=0x01; //设置定时器工作方式 TH0=(65536-20000)/256; //高8位TH0赋初值 TL0=(65536-20000)%256; //低8位TL0赋初值 ET0=1; //开计数器中断 EA=1; TR0=1; //启动计数器
【例5-1】计数器工作方式初始化示例:
• 定时器/计数器0工作于计数方式,且允 许中断,计数值n=100,分别令其工作 在模式1和模式2,初始化编程。 • 模式1:
C51单片机04(定时器)讲解

sbit LED0=P0^0;
char i;
void main()
{
TMOD=0x01;
TH0=0xd8; TL0=0xf0;
EA=1;
ET0=1;
i=0;
TR0=1;
while(1);
}
void time0_int(void) interrupt 1
{
TH0=0xd8; TL0=0xf0;
i++;
使用定时/计数器的步骤
• 方式选择——TMOD • 初值设置——TH0、TL0( TH1、TL1 ) • 中断允许——EA、ET0( ET1 ) • 启动操作——TR0(TR1)
定时/计数器的方式寄存器TMOD
• 可以一次定义两个定时/计数器的工作方式
D7 D6 D5 D4 D3 D2 D1 D0
51系列单片机
第4讲 定时器/计数器
Atmel AT89C51
Atmel AT89C52
定时器/计数器的主要特性
• C51系列有2个定时/计数器(T0、T1) • C52系列有3个定时/计数器(T0、T1、T2) • 通过编程设置,每个定时器/计数器可以根
据系统时钟实现定时,也可以对外部信号 计数(T0/P3.4、T1/P3.5) • 每个定时器/计数器都有多种工作方式 • 每个定时器/计数器都会在预设定时计数时 间到时产生溢出,可以通过查询或中断方 式处理
计数初值=256 - 200 / 2 =156 (0x9c)
TH0=0x9c; TL0=0x9c;
在P1.0端口输出周期为500μs的方波
//中断方式
#include<reg52.h>
sbit P1_0=P1^0;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C51 T and C● 80C51单片机内部有两个定时/计数器T0和T1,其核心是计数器,基本功能是加1。
● 对外部事件脉冲(下降沿)计数,是计数器;对片内机周脉冲计数,是定时器。
● 计数器由二个8位计数器组成。
● 定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后加1计满后溢出。
调整计数器初值,可调整从初值到计满溢出的数值,即调整了定时时间和计数值。
● 定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚Tx(P3.4、P3.5)输入。
且外部脉冲的最高频率不能超过时钟频率的1/24一、定时/计数器的结构定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
二、定时/计数器的工作原理加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。
每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON 中TF0或TF1置1,向CPU 发出中断请求(定时/计数器中断允许时)。
如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。
可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N 乘以机器周期Tcy 就是定时时间t 。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz 时,最高计数频率不超过1/2MHz ,即计数脉冲的周期要大于2 s 。
3.3.2 定时/计数器的控制80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD 用于设置其工作方式;TCON 用于控制其启动和中断申请。
一、工作方式寄存器TMOD :定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER )工作方式寄存器TMOD 用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:GATE :门控位。
GATE =0时,只要用软件使TCON 中的TR0或TR1为1,就可以启动定时/计数器工作;GATA =1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。
即此时定时器的启动多了一条件。
:定时/计数模式选择位。
=0为定时模式; =1为计数模式。
M1M0:工作方式设置位。
定时/计数器有四种工作方式,由M1M0进行设置。
二、控制寄存器TCONTCON 的低4位用于控制外部中断,已在前面介绍。
TCON 的高4位用于控制定时/计数器的启动和中断申请。
其格式如下:▪ TF1(TCON.7):T1溢出中断请求标志位。
T1计数溢出时由硬件自动置TF1为1。
CPU 响应中断后TF1由硬件自动清0。
T1工作时,CPU 可随时查询TF1的状态。
所以,TF1可用作查询测试的标志。
TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。
▪ TR1(TCON.6):T1运行控制位。
TR1置1时,T1开始工作;TR1置0时,T1停止工作。
TR1由软件置1或清0。
所以,用软件可控制定时/计数器的启动与停止。
▪ TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。
▪ TR0(TCON.4):T0运行控制位,其功能与TR1类同。
3.3.3 定时/计数器的工作方式 T0(P3.4): T1(P3.5)1、计数器溢出位 TF0(TCON.5): 片内T/C 的T0溢出中断请求标志 TF0=1 向CPU 申请中断2、定时器运行控制位 TR0(TCON.4) 定时/计数器启动 TR0=1 启动定时/计数器TR0=0,停止定时/计数器 可置 1 或 清 03、工作方式控制 M1,M0 组合 工作方式0,1,2,3.4、门控位 GATE =0,由TR 启动定时器 GA TE =1,由外部中断(INT0或INT1)与TR 组合启动定时器。
5、C/T 方式选择位 =0 T 定时工作方式 =1 C 计数工作方式A 、中断申请 TF0(TCON.5): 片内T/C 的T0溢出中断请求标志 TF0=1 向CPU 申请中断B 、 中断允许 ET0(IE.1) 定时/计数器T0中断允许位 ET0=1 T0中断允许EA (IE.7) CPU 中断允许(总允许)位 EA=1 总中断允许C 、中断优先级 PT0(IP.1) 定时/计数器T0优先级设定位 PT0=1 高级, PT0= 0 低级 =0,C 计数工作方式,外部计数脉冲由引脚T0输入。
C/T C/T C/TC/T C/T C/TT or C设置步骤1、确定工作方式TMODa, 工作方式:确定MIM0 = 00,01,10,11b, 确定是T or C:C/T, C/T=0为定时模式, C/T =1为计数模式c, 开启T/C :GATE and TR , GATE=0,只要TR=1,则可启动定时/计数器工作GATE=1&& TR=1&&INT=1才能启动定时/计数器工作(TR=TR0或TR1; INT=INT0,INT1)2、开启T/C 运行,TR=1 启动T/C3、T/C 中断允许EA=1,ET=14、装载初值:一次计数时长t=12/f 初值n=2n -计数值N定时时长T=Nt00方式方式0: 13位。
THx 8位和TLx 低5而是向THx 进位,13位计满溢出,TFx 置“1”。
计数外部脉冲个数范围:1~8192(213)定时时间(T=1μs)范围:1μs ~8.19ms T=12/f(2)C/T=0为定时工作方式,计数脉冲为时钟频率fosc/12。
若f=12MHZ ,则 12T 时 =12×1/12MHZ )=1us 即是 计数一次时长 1us 。
计数值N+初值x=计数总值213 初值x=计数总值213–计数值N 计数值N =定时时间t ÷数一次时长(12×1/f)定时时间t=(213—初值x )*时钟周期*12 ( 时钟周期=1/f ) X = 213-定时时间t/时钟周期*12方式0 –定时 ( T0:TMOD=0Xf0,TR0=1,EA=1, ET0=1 ,TH0=0F8H , TL0=06H ) 工作方式:确定MIM0=00 确定是T 定时:C/T =0为定时模式 开启T/C :GATE and TR , GATE =0,TR=1;或GATE =1,TR=1,INT=1,才能启动定时/计数器 T/C 中断允许: EA=1, ET=1设最大值为 M, 计数值为 N, 初值为 X, 则 X 的计算方法如下: 计数状态: X=M -N M=(2n ) n=13 or 16 位 定时状态: X=M -定时时间/T T=12÷晶振频率计数外部脉冲个数范围:1~8192(213) T=12/f=12×1/6MHZ=2us定时时间(T=1μs)范围:1μs ~8.19ms T=12/f=12×1/12MHZ=1us (f 为该单片机晶振频率)TMOD=0x11设定时时长=250us ,f=12MHZ, 则计数初值 X=213 -(250us ÷1us )=8192-250=7942=0001 1111 0000 0110B 13位模式=1 1111 0000 0110 高8 TH=1111 1000=0F8H ,低5位TL=06H设定时时长=250us ,f=6MHZ, 则计数初值 X=213 -(250us ÷2us )=8192-125=8067=0001 1111 1000 0011B 13位模式=1111 1100 0 0011 高8=1111 1100 =0FCH ,低5位=03H ,则高8位放入TH,低5位放入TL方式0 –计数( C0:TMOD=0Xf4,TR0=1,EA=1, ET0=1 ,TH0=0E9H,TL0=18H) 工作方式:确定MIM0=00 确定是T 定时:C/T =1为计数模式 开启T/C :GATE and TR , GATE =0,TR=1;或GATE =1,TR=1,INT=1,才能启动定时/计数器 T/C 中断允许: EA=1, ET=1计数外部脉冲个数范围:1~8192(213)设最大值为 M, 计数值为 N, 初值为 X, 则 X 的计算方法如下: 初值X=M -N=(213)-N=8192-N M=(2n ) n=13 or 16 位TCON D7D0设定计数1000下,向外中断一次,则初值X=8192-1000=7192=1110 0000 1 1000=TH=0E9H,TL=18H01方式1方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器 。
定时/计数器工作于方式1时为一个16位的计数器。
其逻辑结构、操作及运行控制几乎与方式0完全—样,差别仅在于计数器的位数不同。
定时工作方式1时,定时时间为:定时时间 t =(216-计数初值n)×机器周期=( 2—初值N )×12/f 用于计数器工作方式时,最大计数值为: 216=65536计数个数与计数初值的关系为:N 总 =NT+N NT=( 216—初值N ) 总结: 工作方式1,2特点是计数溢出后,计数器回0,而不能自动重装初值。
方式1 –定时 ( T0:TMOD=0Xf1,TR0=1,EA=1, ET0=1 ,TH0=0FFH, TL0=83H ) 工作方式:确定MIM0=01 确定是T 定时:C/T =0为定时模式 开启T/C :GATE and TR , GATE =0,TR0=1;或GATE =1,TR=1,INT=1,才能启动定时/计数器 T/C 中断允许: EA=1, ET=1 定时工作方式1时,定时时间为:定时时间 t =(216-计数初值TC)×机器周期TZ TZ=12÷晶振频率f=12/f 用于计数器工作方式时,f OSC =12MHz ,1机器周期=1µS ; 最大计数值为: 216=65536计数外部脉冲个数范围:1~65536 (216) T=12/f=12×1/6MHZ=2us定时时间(T=1μs)范围:1μs ~65.536ms T=12/f=12×1/12MHZ=1us (f 为该单片机晶振频率) 设定时时长=250us ,f=6MHZ,定时器0,工作方式1则计数初值 X=216 –(250us ÷2us )=65536-125=65411=FF83 TH0=0FFH, TL0=83H方式1 –计数( C0:TMOD=0Xf5,TR0=1,EA=1, ET0=1 ,TH0=0E9H,TL0=18H) 工作方式:确定MIM0=01 确定是T 定时:C/T =1为计数模式 开启T/C :GATE and TR , GATE =0,TR0=1;或GATE =1,TR0=1,INT=1,才能启动定时/计数器 T/C 中断允许: EA=1, ET=1计数外部脉冲个数范围:1~65536设最大值为 M, 计数值为 N, 初值为 X, 则 X 的计算方法如下: 初值X=M -N=(216)-N=65536-N M=(2n ) n=13 or 16 位设定计数1000下,向外中断一次,则初值X=8192-1000=7192=1110 0000 1 1000=TH=0E9H,TL=18HTCON D7D0方式2为自动重装初值的8位计数方式。