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

单片机(c语言版)定时器计数器...ppt

单片机(c语言版)定时器计数器...ppt

预览

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

10 金币

下载文档

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

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

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

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

第6章AT89S51单片机的定时器/计数器36.1.1工作方式控制寄存器TMOD
AT89S51定时器工作方式寄存器TMOD用于选择工作模式和工作方式,字节地址为89H,不能位寻址。
8位分为两组,高4位控制T1,低4位控制T0。
(1)GATE—门控位
GATE=0时,仅由运行控制位TRx(x=0,1)来控制定时器运行
GATE=1时,用外中断引脚INT0*(或INT1*)上的电平与运行控制位TRx共同控制定时器运行。
(2)M1、M0—工作方式选择位
M1、M0的4种编码,对应于4种工作方式的选择。
(3)C/T*—计数器模式和定时器模式选择位
C/T*=0,为定时器工作模式,对单片机的晶体振荡器12分频后的脉冲进行计数。
C/T*=1,为计数器工作模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。6.1.2定时器/计数器控制寄存器TCON
TCON字节地址为88H,可位寻址,位地址为88H~8FH。
(1)TF1、TF0—计数溢出标志位。
当计数器计数溢出时,该位置“1”。使用查询方式时,应注意查询有效后,使用软件及时将该位清“0”。使用中断方式时,中断请求标志位在进入中断服务程序后由硬件自动清“0”。
(2)TR1、TR0—计数运行控制位。
TR1位(或TR0位)=1,启动定时器工作。
TR1位(或TR0位)=0,停止定时器工作。
该位可由软件置“1”或清“0”。6.2定时器/计数器的4种工作方式
6.2.1方式0——M1M0=00
方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。图6-4定时器/计数器方式0逻辑结构框图9131415时间常数的计算
时间常数:定时器/计数器T0或T1的初始计数值,在T0或T1被启动后,每个机器周期使计数器中的计数值加1,计数器产生溢出后。
定时时间:计数器溢出时间,时间常数越大,定时时间就越短;时间常数越小,定时时间就越长。时钟的频率越高,定时时间越短;时钟的频率越低,定时时间越长。设系统时钟的频率为fosc,计数器的初始值为N,定时器工作于方式1,则定时时间:
T=(216-N)×12/fosc(1)
如果定时器工作于方式2或方式3,定时时间为:
T=(28-N)×12/fosc(2)例如:系统的时钟频率是12MHz,在方式1下,如果希望定时器/计数器T0的定时时间T为10ms,则初值N=216-T=65536-10000=55536
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置位,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。6.4.1P1口外接的8只LED每0.5s闪亮一次。
【例6-1】在AT89S51单片机的P1口上接有8只LED(电路见图4-7)。下面采用定时器T0的方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮一次。
(1)设置TMOD寄存器
方式1;计时工作模式;仅由TR0来控制;T1不使用。
TMOD寄存器应初始化为0x01=00000001B(2)计算T0计数初值
设定时时间5ms(即5000µs),设定时器T0的计数初值为X,假设晶振的频率为11.0592MHz,则定时时间为:
定时时间=(216−X)12/晶振频率
则5000=(216−X)12/11.0592
得:X=60928,转换成16进制后为:0xee00,其中0xee装入TH0,0x00装入TL0。
(3)设置IE寄存器
本例由于采用定时器T0中断,因此需将IE寄存器中的EA、ET0位置1。
(4)启动和停止定时器T0
将定时器控制寄存器TCON中的TR0=1,则启动定时器T0;TR0=0,则停止定时器T0定时。#include<reg51.h>
Chari=100;/*给变量i赋初值,定时0.5S,每次定时中断5MS,需要中断100次*/
voidmain()
{	TMOD=0x01;	/*设置定时器T0为方式1*/
	TH0=0xee;		/*向TH0写入初值的高8位*/
	TL0
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

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

单片机(c语言版)定时器计数器..

文档大小:574KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
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专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用