定时器/计数器模块

一、定时器

        定时器/计数器是单片机内部资源,有三个定时器T0、T1、T2,其中T0、T1与传统8051单片机兼容,T2是增加的资源。定时器用于计时,代替长时间Delay,来提高CPU运行速度。

二、内部结构

1.定时器内部

        定时器工作像一个闹钟,计数溢出,申请中断,执行中断程序。

        配置定时器步骤:确定用外部或内部晶振,多少分频;确定用哪个定时器,工作在什么模式;确定计数单元开关打开;确定计数单元初始值;配置中断。

定时器内部结构分为三部分:系统时钟、计数单元、中断系统,如下图所示:

2.定时器工作模式

模式0:13为定时/计数器

模式1:16位定时/计数器(常用)

模式2:8位自动重装

模式3:两个8位计数器

注意:T0可在模式3下工作,控制T1中断;T1不可在模式3下工作,停止计数。

3.T0在模式1的内部结构图

        模式不一样,根本上是计数单元能计数溢出值不一样。

系统时钟:内部晶振提供计数脉冲,用作定时器;外部晶振提供计数脉冲,用作计数器。

计数单元:GATE经过非门的值,与#INT0经过或门的结果,再与TR0经过与门,来控制计数开关的开与闭。当GATE为1时,计数开关由#INT0和TR0共同决定;当GATE为0时,计数开关由TR0决定。计数单元初始值,高位(65535 - 定时时间)/256,低位(65535 - 定时时间)%256。其中定时时间1ms为例,高位(65535 - 1/(12/12MHz)* 1000)/ 256,低位(65535 - 1/(12/12MHz)* 1000)%256。

中断系统:看下面。

三、中断系统

1.概念

        中断是CPU正在执行主程序,有特定中断来申请中断,CPU暂停执行主程序,转而去执行中断程序,执行完返回主程序,这个过程叫中断。

        中断源:申请中断的请求源。STC89C52中断源有8个(4+3+1),分别是外部中断(0-3)、定时器中断(0-2)、串口中断(UART)。对应的有8个中断函数,优先级由高到低,如下图所示:

        中断嵌套:CPU在执行中断程序时,有更高优先级中断源申请中断,CPU响应执行更高优先级中断,执行完返回优先级低中断程序继续执行。

2.内部结构

        配置中断三个步骤:中断触发方式、中断使能、中断优先级。

四、相关寄存器

1.定时/计数器

T0、T1相关寄存器:

T2相关寄存器

2.中断系统

五、实验

1.按键控制LED流水灯模式

实验现象:K1按下,LED亮灯右移;K1再按下,LED亮灯左移。时间500ms。

用到Key、Delay模块。

Timer0.c

Timer0.h

main.c

INTRINS头文件中,_crol_循环左移,_cror_:循环右移。

2.定时器时钟

实验现象:在LCD1602上显示时间。

用到LCD1602、Timer0模块。

main.c

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值