当前位置:文档之家› 项目5定时器与脉冲计数器的设计

项目5定时器与脉冲计数器的设计


初始化程序编写 main()函数中: TMOD=0x01;//设置定时器0为工作方式1 TH0=0xFE; //定时器0高8位给初值 TL0=0xC0; //定时器0低8位给初值 EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0
中断服务程序中重新装入定时初值
振荡器
计数脉冲输入
1/12
定时 C/T=0 器
TL0 TH0
C/T=1
低5位 8位
TF0
T0 TR0 GATE INT0
1
&作方式0 定时方式:
计数初值:X= 213-T/(时钟周期×12) 定时=(213-X)×时钟周期×12
=(213 –X)*12*1/fosc 例:8*10-3=(213-X)*12*1/(12*106)
X= 213-T/(时钟周期×12) = 0110001100011000B = 0x6318
任务5.1 定时器的设计
5.1.1 MCS-51单片机内部定时/计数器的原理
5.1.1.1 单片机定 时/计数器的结构
加1计数器(高8位、低8位); 工作方式控制寄存器TMOD,工作方式设置; 定时器控制寄存器TCON,启动、停止及设置溢出标志。
5.1.1.2 定时/计数器工作原理
TMOD中,各有一个控制位(C/T),分别用于控制定 时/计数器T0和T1工作在定时器方式还是计数器方式。 定时功能----计数输入信号是内部时钟脉冲,每个机器周期使 寄存器的值加1。所以,计数频率是振荡频率的1/12。 定时模式,对内部机器周期计数 定时时间 t =计数值N x Tcy
单片机控制技术 项目式教程 (C语言版)
电子工业出版社
项目5 定时器与脉 冲计数器的设计
电子工业出版社
学习目标
能了解单片机定时/计数器的组成; 能理解单片机定时/计数器的工作原理和4种工作方式; 能掌握单片机定时/计数器的初始化方法; 能恰当运用单片机定时/计数器的功能; 能掌握定时器的设计方法; 能掌握脉冲计数器的硬件电路和软件设计方法; 能熟练编写单片机定时/计数器工作的程序。
【例】若单片机晶振为12MHz,要求产生5ms的定时,
试计算X的初值。
解:采用定时器0的方式0: 500*10-6=(213-X)*12*1/fosc x=7692=1E0CH=1 1110 000 0 1100 F0H 0CH 即 TH0=F0H , TL0 =0CH TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 00 0 0 00 00H 采用定时器1方式1: 500*10-6=(216-X )*12*1/fosc x=65036=FE0CH 即TH1=FEH, TL1 =0CH TMOD=GATE C/T M1M0 GATE C/T M1M0 0 0 01 0 0 0 0 10H
一只1 秒的定时器,用定时器的查询方式,使 AT89C51控制的一只发光二极管定时1秒闪烁。
2.任务分析 ① 确定TMOD控制字:
采用AT89C51的定时器1方式0定时,
TMOD = 0x00
② 计算计数器的计数初值:
因为方式0采用13位计数器,其最大定时时间为:8192×1 ms = 8.192 ms,可选择定时时间为5 ms,再循环200次就可以定 时为1s了。
X = 213 – 8000
=192 =0xC0
计数方式:
计数次数值N=213-X
计数初值:X= 213-计数次数值N
注意:X的低5位送TL0(TL1),TL0(TL1)的高 3位数为任意值,常取0,高8位送TH0(TH1)。
任务操作 1.任务要求
本任务要求用AT89C51的定时器1,方式0设计
计数功能----计数脉冲来自相应的外部输入引脚,T0为P3.4, T1为P3.5。 计数模式,对外部事件脉冲计数 计数脉冲周期要大于2 Tcy
计数器脉冲来源:
振荡器脉冲经过12分频 T0或T1引脚的外部脉冲
计数值:溢出时计数器值-计数初值。
计数器全1时,再输入1个脉冲就回零,并发生 溢出(TCON中TF0或TF1置1), 发中断请求 。
void timer0() interrupt 1 { TH0=0xFE; //定时器0高8位给初值 TL0=0xC0; //定时器0低8位给初值 }
5.1.2 用单片机定时/计数器设计定时器(查询方式) 5.1.2.1 用定时/计数器的工作方式0设计定时器 方式0—13位方式。由TL0的低5位和TH0的8位组成。 TH0溢出时,置位TF0标志,向CPU发出中断请求。
工作任务
叙述单片机定时/计数器4种工作方式的工作原理; 叙述单片机定时/计数器的初始化方法; 设计定时器的工作程序; 设计脉冲计数器的电路和工作程序。
项目5
定时器与脉冲计数器的设计
定时器的设计 脉冲计数器的设计
任务5.1 任务5.2
项目拓展
项目小结 思考与训练
实验板分频器的设计
0 1
1 0 1 1
方式1
方式2 方式3
16位计数器
自动重装初值的8位计数器 方式3只针对T0,T0分成两个 独立的8位定时/计数器;T1 无方式3
2.定时器控制寄存器TCON
D7
D6
D5
D4
D3
D2
D1
D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
中断请求标志
启动定时/计数器 触发方式选择
5.1.1.3
时/计数器的初始化
1.工作方式控制寄存器TMOD
D7 D6 D5 D4 D3 D2 D1 D0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
T1控制 GATE—门控位 C/T—计数/定时选择 M1 M0—工作方式选择
T0控制 注意:不能进行位寻址
定时/计数器的工作方式
M1 M0 0 0 工作方式 方式0 功能说明 13位计数器
0 停止 1 启动 0 低电平 1 下降沿
3.定时/计数器的初始化
可编程器件在使用前需要进行初始化: ① 确定TMOD控制字:编程时将控制字送TMOD;
② 计算计数器的计数初值: 编程时将计数初值送TH0、TL0或TH1、TL1; ③ 开中断(如果使用中断方式): 编程实置位EA、ETi ④ TR0或TR1位置位控制定时器的启动和停止。
相关主题