定时器 -51

本文详细介绍了单片机中的定时器资源,如STC89C52定时器的工作模式、计数与定时功能,以及中断系统的操作。通过配置寄存器实现定时器功能,包括定时器初值设置和中断处理,最后展示了定时器在流水灯控制中的应用。
摘要由CSDN通过智能技术生成

定时器的介绍
1.定时器是单片机的内部资源 其电路连接和运转均在单片机内部完成
在这里插入图片描述
STC89C52 定时器资源
在这里插入图片描述
在这里插入图片描述
定时器的工作模式
在这里插入图片描述
框图可分为三个部分从左往右 第一个是时钟 第二个是计数单元 第三个是中断系统(还包含了一大串电路)这里没有显示
在这里插入图片描述
在这里插入图片描述
tl0和th0 一共能够存储16个bit的数据(两个字节)
高字节叫TH 低字节叫TL(这两个字节可以存0-65535)
这个结构 收到左侧的脉冲 每收到一次脉冲就加一 一直加当加满到65535 再加一就溢出回到0 进入到右侧的TF0 进入中断系统产生中断
在这里插入图片描述
定时器的时钟
在这里插入图片描述
在这里插入图片描述
如果开关接到了是12的通路12分频的一分频就是12MHZ晶振的十二分之一且 T=1/MHZ=1us(就是每隔1us计数一次)
在这里插入图片描述
可以通过配置寄存器来使c/t为0或1 c就是计数的功能(count) t就是定时器功能(time)
这节课就是 系统时钟-12分频-配置为定时器模式
中断系统(就相当于你正在做一件事 突然被电话打断(中断源) 去处理了别的事情 处理完后接着之前的工作)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
整个流程
在这里插入图片描述
通过c语言配置寄存器使得内部的结构和线路发生变化从而实现功能
定时器的相关寄存器
在这里插入图片描述

定时器(2)

总结:启动定时器后每个机器周期自动到来初值寄存器自动加一 直到计满溢出 定时器有两个功能 一是计数 二是定时 使用时只能使用一个功能
(1)启动 给单片机一个启动信号
(2)机器周期 12MHZ为例子 一秒震动12*10的6次方 平均震动一次就是计时周期 12个计时周期就是机器周期 为1us(微秒)
(3)初值寄存器T0的初值寄存器就是TL0(低位)和TH0(高位) 一共16个位(两个字节)两个初值都为0 00H(16进制)
(4)自动加一 经过一个机器周期自动加一 先从低位加(TL0) !在这里插入图片描述

经过65532us(微秒) 也就是65.536ms
要是想要定个50000us如何办呢? 那就需要记下50000个机器周期
在这里插入图片描述
高8位(TH0) 低8位(TL0) 还可以写成这样
在这里插入图片描述
编程实现步骤
在这里插入图片描述
(1)报备 要使用定时器 需要给cou提前告诉一些信息(是要使用计时器的功能还是要使用定时的功能)在这里插入图片描述
同样 TMOD也有8位 在这里插入图片描述
C/T 是选择工作的模式
在这里插入图片描述
在编程时直接写下 TMOD=0x01(这个只能全部赋值)不能一位一位的赋值
如果要使用定时器T1
在这里插入图片描述

(2)置初值 这里以50ms的为例子
在这里插入图片描述
在这里插入图片描述
TF0是计时器满后系统自动置为1 需要手动清零
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

中断

在这里插入图片描述

中断源的来源有很多种
在这里插入图片描述
这节课介绍的是定时器T0的来源
允许中断(同样是8个位 ES ET1 EX1 ET0 EX0)分别对应51单片机的5个中断的来源
在这里插入图片描述
EA是总中断的开关 是由EA为1了才可以使用中断功能 对于定时器的中断
在这里插入图片描述
T0 和T1 当定时器溢出 系统就自动把TF0 和TF1 置为1
整个中断的实现流程
在这里插入图片描述
用中断实现流水灯
在这里插入图片描述
左边是主程序 17行是定时器的报备 18,19行是定时器的初置值 20,21,22是打开定时器 定时开始(EA 总开关 ET0分开关 TR0是启用定时器)进入循环 n为0x01 进入for循环 P0为n的取反 第一个灯亮起 k=0进入while循环 等待 直到定时器满了 溢出 执行中断程序 跳到左边第7行 的time的函数 进行初置值 然后k++ k=1 跳出循环 仍为1 满足循环条件 再次进入while循环等待定时器溢出 第二次溢出到来 再次进行初置值 k=2 跳出循环 n为0x10 在进入for循环 p0=0x10 第二个灯亮起 从而使得一个个灯间隔100ms的亮起 循环下去形成流水灯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值