第10章 定时器/计数器
- 格式:ppt
- 大小:606.50 KB
- 文档页数:30


·1· 第6章 AT89S51的定时/计数器
参考答案
1.答:(A)对;(B)错;(C)错;(D)错;
2.答:因为机器周期:
所以定时器/计数器工作方式0下,其最大定时时间为
同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1024ms。
3.答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。
4.答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
5.答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。参考程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2
MOV TL0,#156 ;计数100个脉冲的初值赋值
MOV TH0,#156
SETB GATE ;打开计数门
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
CLR F0 ;设置下一轮为定时方式的标志位
WAIT: AJMP WAIT
IT0P: CLR EA ;CPU关中断 )(410312126sfTOSCcy)(192.81042261313msTTCMAX
·2· JB F0,COUNT ;F0=1,转计数方式设置
MOV TMOD,#00H ;定时器/计数器T0为定时方式0
MOV TH0,#0FEH ;定时1ms初值赋值
单片机作业
1
定
时
器
计
数
器
的
应
用
探测一班
1011020119
李赛
单片机作业
2
定时器计数器的应用系统设计
一. 系统分析
设计一个简单的单片机应用系统,要求如下:晶振为12MHZ,使用定时器计数器1(T1)作为延时控制,利用I/O端口P0点亮三只灯,三只灯(如P0.0、P0.1、P0.2)交替闪烁,间隔1s。
二. 系统功能框图设计
晶振
单
片
机
P0.0灯
P0.1灯
复位 P0.2灯
定时计数器
三.系统硬件设计
单片机AT89C51 瓷片电容CAP30PF 电阻RES 晶振CRYSTAL
12MHZ 按钮BUTTON
电解电容CAP-ELEC 发光二级管LED-BIBY 发光二级管LED-BIGY 发光二级管LED-BIRG 单片机作业
3
四.系统软件、原理图设计
该系统的原理图如图1所示
图1系统的原理图
五.程序流程图设计 单片机作业
4 开始
定时/计数器初始值设置
P0.0清0、P0.1置1、P0.2置1
启动定时/计数器1
定时/计数器是否延时25ms?
启动定时/计数器重新赋值
是否循环40次(延时1s)?
P0.0、P0.1取反
定时/计数器是否延时25ms?
启动定时/计数器重新赋值
是否循环80次(延时1s)?
P0.1、P0.2取反
N
N 定时/计数器是否延时25ms?
启动定时/计数器重新赋值
是否循环120次(延时1s)?
P0.0、P0.2取反
重新计循环次数
N N N
` N
Y
Y
Y
Y
Y
单片机作业
5 六.系统的程序设计
汇编程序:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H ;初始化堆栈
PWM Timer
概述
S3C2410A有5个16位定时器。其中定时器0、1、2、3有脉宽调制(PWM)功能。定时器4有只有一个内部定时器而没有输出管脚。定时器0有一个死区发生器,用于大电流器件。
定时器0和1共享一个8位预定标器,定时器2、3和4共享另一个8位预定标器。每一个定时器有一个有5种不同值的时钟分割器(1/2,1/4,1/8,1/16和TCLK)。其中每一个定时器块从时钟分割器接收时钟信号,而时钟分割器从响应的预定标器接收时钟信号。8位预定标器是可编程的,它根据TCFG0和TCFG1中的数值分割PCLK。
在定时器计数缓冲寄存器(TCNTBn)中有一个初始值,当定时器使能后,这个值就被装载到递减计数器中。而在定时器比较缓冲寄存器(TCMPBn)中也有一个初始值,这一值被装载到比较寄存器中,用来与递减计数器值进行比较。这两个缓冲器使得在频率和占空比发生改变时仍能产生一个稳定的输出。
每一个定时器有一个16位的递减计数器,由定时器时钟驱动。当计数器的值到0,定时器就会产生一个中断请求来通知CPU定时器的操作已经完成。当定时器计数器到0时,TCNTn的值自动的加载到递减计数器中以继续下一操作。但是,当定时器因某种原因停止,如在定时器运行模式中清除定时器使能位(TCONn中)时,TCNTBn中的值将不再加载到计数器中。
TCMPBn中的数据是用来脉宽调制的。当递减计数器的值与比较寄存器的值相同时,定时器控制逻辑将改变输出电平。因此,比较寄存器决定一个PWM输出的接通时间。
特性
5个16位定时器;
2个8位预定标器和2个4位分割器;
可编程的占空比;
自动再装入模式或一次脉冲模式;
死区发生器。
图1、16位PWM定时器模块框图
预定标器和分割器
一个8位预定标器和一个4位分割器作用下的输出频率:
4位分割器的设置 最低分解力
(预定标器=0) 最高分解力
(预定标器=255) 最大间隔时间(TCNTBn=65535)
ORG 0000H
START: LJMP MAIN
ORG 0100H
MAIN: MOV SP, #2FH
CLR EA
CLR ET1
MOV TMOD, #00010000B
MOV TH1, #0FFH
MOV TL1, #9CH
SETB TR1
LOOP: JNB TF1, LOOP
MOV TH1, #0FFH
MOV TL1, #9CH
CLR TF1
CPL P1.0
LJMP LOOP
END
#include
sbit zhong=P1^1;
void main()
{
IE=0x82;
TMOD=0x02;
TH0=0x88;
TL0=0x88;
TR0=1;
while(1);
}
void T0Isr() interrupt 1
{
zhong=!zhong;
}
ORG 0000H
START: LJMP MAIN
ORG 0100H
MAIN: MOV SP, #2FH
CLR EA
CLR ET0
CLR ET1
MOV TMOD, #00010010B
MOV TH0, #37H
MOV TL0, #37H
MOV TH1, #0FEH
MOV TL1, #0D4H
SETB TR0
LOOP: JNB TF0, LOOP
CPL P1.0
SETB TR1
CLR TF0
CLR TR0
LOOP1: JNB TF1, LOOP1
CPL P1.0
SETB TR0
MOV TH1, #0FEH
MOV TL1, #0D4H
CLR TF1
CLR TR1
LJMP LOOP
END