您所在位置: 网站首页 / 单片机定时器计数器.ppt / 文档详情
单片机定时器计数器.ppt 立即下载
2024-11-26
约9.4千字
约90页
0
1.1MB
举报 版权申诉
预览加载中,请您耐心等待几秒...

单片机定时器计数器.ppt

单片机定时器计数器.ppt

预览

免费试读已结束,剩余 85 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第6章MCS-51单片机定时器/计数器6.1定时器/计数器的结构及原理6.1.1MCS-51单片机定时器的结构MCS-51主要由如下构成:
三个16位的可编程定时器/计数器:定时器/计数器0、1和2。
每个定时器有两部分构成:THx和TLx
特殊功能寄存器T2MOD和T2CON,主要对T2进行控制。
特殊功能寄存器TMOD和TCON,主要对T0和T1进行控制。引脚P3.5、P3.4、P1.0,输入计数脉冲。
定时器T0、T1和T2是3个中断源,可以向CPU发出中断请求。
定时器/计数器T2增加了两个8位的寄存器:
RCAP2H和RCAP2L。
特殊功能寄存器之间通过内部总线和控制逻辑电路连接起来。

6.1.2MCS-51单片机定时器的工作原理

6.2定时器/计数器的控制GATE=0,不使用外部门控制计数器
C/T—定时或计数方式选择位。
C/T=0时,为定时器
C/T=1时,为计数器
采样过程:CPU在每机器周期S5P2期间,输入信号进行采样。若前一机器周期采样值为1,下一机器周期采样值为0,则计数器增1,随后的机器周期S3P1期间,新的计数值装入计数器。M1、M0——工作模式选择位。2、T0、T1的控制寄存器TCONTR1、TR0:T1、T0启停控制位。
置1,启动定时器;
清0,关闭定时器。
IE1、IE0:外部中断1、0请求标志位
IT1、IT0:外部中断1、0触发方式选择位
注意:GATE=1,TRx与P3.2(P3.3)的配合。6.3定时器T0、T1的工作模式C/T=1,计数方式。计数脉冲由P3.4引脚输入。
C/T=0时,定时方式。	模式1的逻辑结构及应用模式2的逻辑结构及应用定时时间=(28-初值)×机器周期
最大定时时间=28×机器周期
优点:模式2能够进行自动重装载。模式0和1计数溢出后,计数器为全0。循环定时或计数时,需要重新设置初值。
说明:在模式2能够满足计数或定时要求时,尽可能使用模式2。6.2.4模式3的逻辑结构及应用图6-7模式3下T0的逻辑结构图2、T0模式3时T1的工作模式
	T1可以模式0~模式2工作。	
	T1的结构如图6-9所示
由于TF1及中断矢量被TH0占用,所以T1仅用作波特率发生器或其它不用中断的地方。
	T1作波特率发生器,其计数溢出直接送至串行口。设置好工作方式,串行口波特率发生器开始自动运行。
TMOD中T1的M1M0=11,T1停止工作。图6-9模式3下,T1的逻辑结构图
思考:T0工作在模式3,T1怎么进行方式设置?1、定时器/计数器工作模式的选择方法
(1)首先计算计数值N
(2)确定工作模式
	原则是尽可能地选择模式2
若N≤256选择模式2,否则选择模式1
(3)如果需要增加一个定时器/计数器
	选择模式3。2、定时器/计数器初值X的计算方法
因为X+N=28或216	
所以X=28或216-N
(1)对定时器
设定时时间为t	N=t/机器周期
所以	X=28或216-t/机器周期
(2)对计数器
	X=28或216-N例设单片机的振荡频率为12MHz,用定时器/计数器0的模式1编程,在P1.0引脚产生一个周期为1000µs的方波,定时器T0采用中断的处理方式。
定时器的分析过程。
工作方式选择
需要产生周期信号时,选择定时方式。定时时间到了对输出端进行周期性的输出即可。
工作模式选择
根据定时时间长短选择工作模式。
首选模式2,可以省略重装初值操作。定时时间计算:周期为1000µs的方波要求定时器的定时时间为500µs,每次溢出时,将P1.0引脚的输出取反,就可以在P1.0上产生所需要的方波。
定时初值计算:
振荡频率为12MHz,则机器周期为1µs。
设定时初值为X,
(65536-X)×1µs=500µs	
X=65036=0FE0CH
定时器的初值为:TH0=0FEH,TL0=0CHC语言程序:
#include<reg52.h>//包含特殊功能寄存器库
sbit	P1_0=P1^0;//进行位定义
voidmain()				
{TMOD=0x01;//T0做定时器,模式1
	TL0=0x0c;
	TH0=0xfe;		//设置定时器的初值
	ET0=1;	//允许T0中断
EA=1;	//允许CPU中断
	TR0=1;	//启动定时器
	while(1);//等待中断
}		voidtime0_int(void)interrupt1
{						//中断服务程序
		TL0=0x0c;
		TH0=0xfe;		//定时器重赋初值
		P1_0=~P1_0;		//P1.0取反,输出方波
}	
	汇编语言程序:
		ORG		0000H
		SJMP	MAIN
		ORG		000BH			
		LJMP	TIME0MAIN:		
	MOV	TM
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

单片机定时器计数器

文档大小:1.1MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用