当前课程知识点:单片机原理及应用 >  6 中断与定时系统 >  6.8 定时器举例 >  定时器举例

返回《单片机原理及应用》慕课在线视频课程列表

定时器举例在线视频

定时器举例

下一节: 并行接口

返回《单片机原理及应用》慕课在线视频列表

定时器举例课程教案、知识点、字幕

同学

你好

前面我们详细的介绍了一下51单片机的

定时计数器的相关的计数

以及涉及的寄存器和编程的思想

今天我们来通过一个

定时计数器的实际应用的例题

使同学们能够领悟到定时计数器应用

和编程的具体的方法

我们来看这样一道例题

请用单片机的P1.2引脚

输出一个方波信号

这个方波信号的周期为两毫秒

我们假设单片机的晶振的频率是12兆赫兹

我们看一看

如何来实现这个功能

该题的思路就是每隔一毫秒改变一次

P1.2引脚的输出状态

相当于用定时计数器T0

非门控方式1定时1毫秒

此时定时器计数器的初值我们就应该

设为FC18H

每次定时器定时时间1毫秒一到

我们就改变P1.2引脚的状态

然后再重新启动定时器

如此反复就可以实现从P1.2引脚

输出一个加1毫秒的

也就是2毫秒的一个方波

我们前面说过

对于定时器

我们可以采用查询的方式

也可以采用中断的方式来进行设计

我们首先看第一种方式

用查询的方式如何来设计该段程序

我们来具体的看一看查询方式的

程序的指令

首先我们看程序

第一个START MOV TMOD , #01H

通过这条指令就设定定时器的工作方式

让你把它设为这个是一个定时器

然后再通过MOV TL0 , #18H

MOV TH0 , # 0FCH

就给定时计数器赋初值

然后SETB TR0就是启动定时器

它启动开始定时了

下面这个指令L0:JBC TF0 , L1

这是一个判位转移指令

它会判断TF0这是定时器零的中断标志位

前面通过四条指令

已经把定时器启动了

它会定时1毫秒

当1毫秒时间到之后

定时器会自动的把TF0位置1

这个时候我们通过JBC判位指令

就可以通过查询的方式不断的

去判断一下TF0 到1了没

如果没有到1,它会顺序执行SJMP L0

这是一个无条件转移到L0处

继续判断用查询的方式来进行等待

不停地查询

一旦TF0为1,这就表示我这个定的时间

一毫秒到了

这个时候那么就会跳到L1处

L1是CPL P1.2 ,P1.2输出引脚取反

相当于是以前是零

那就变成1,以前P12是1就变成0

每隔一毫秒就取一个反

取完反之后那么再用两条MOV

一个是MOV TL0 , # 18H

一个是MOV TH0 ,#0FCH

重新的给定时器赋一个初值

然后再一个SJMP L0再跳到L0处

因为一旦你重新向定时计数器赋了初值之后

定时计数器会重新的来进行定时

通过这种查询的方式如何来控制定时器

反复的来进行定时的操作

这是第一种定时的方式

下面我们再来看第二种方式

中断的方式

中断的方式分成了主程序

和中断服务程序

具体的指令我们来看一下

首先ORG 0000H,这是一个伪指令

表示下面的指令

AJMP MAIN放到ROM的0000H

这个单元来存放

我们知道51单片机一上电复位

默认的情况下是首先执行单元0000H的指令

所以上电复位就执行AJMP MAIN指令

这是一个转移,跳到MAIN处

所以一上电复位情况下

我们的单片机会自动的跳到主程序MAIN 处

在主程序MAIN处

通过四条MOV指令完成对

定时计数器0的初始化的操作

就是设定工作方式

向定时计数器赋一个计数的初值

然后就是三个SETB

开定时计数器中断的总开关

然后SETB ET0开定时计数器零的

中断允许的分开关

SETB TR0就是启动定时计数器零

一旦启动之后

我们的定时计数器就会马上开始进行计时

紧接着就是一个L0 :SJMP L0

这下面是个原地跳转指令

比如说主程序到L0处就原地跳转了

这个时候实际上我们的定时器已经启动

在定时

一旦定的一毫秒时间到了之后

定时器会自动在内部向我们的单片机

发出一个定时到的一个中断申请

同时把标志位IF0置1

这个时候由于我们在主程序中已经允许了

单片机去响应定时计数器零的中断

所以一旦定的时间一毫秒到

单片机会暂停正在执行的L0的原地跳的指令

转而去执行定时计数器零的中断服务程序

默认情况下CPU就会从ROM的000BH

这个单元开始去找定时计数器零的中断服务程序

而这个地方你看我们程序中在000BH处

我们放的是一个无条件转移指令AJMP L1

它会跳到真正的定时计数器零的

中断服务程序L1处去执行

中断服务程序

我们在L1处首先是一个CPL P1.2取反指令

就是一旦定时时间到

在中断服务程序中就把P1.2引脚取反

然后在两条MOV指令MOV TL0 , #18H

MOV TH0 , # 0FCH

就是向定时计数器0重新赋一个初值

使它重新的开始定时

这个时候再有一个RETI,就是中断服务程序结束

注意一下RETI会通过硬件的方式自动的

把定时计数器零的标志位清零

然后就返回到主程序的L0处

继续去执行主程序的原地跳的指令

当然在执行这个指令时

我们的定时计数器零由于已经重新赋初值

它会继续的进行一毫秒的定时的操作

以上就是第二种方式中断的方式

如何来设计该段程序

好的

以上就是我们今天课程的全部内容

今天我们主要通过一个例题使同学们能够

体会到如何利用定时器来进行相关的

程序的编写和操作

定时计数器是51单片机

一个非常重要的功能

请同学们下来之后仔细的领会

定时计数器的编程的思想

好的

今天的课就到这里

同学们再见

单片机原理及应用课程列表:

1 单片机系统概述

-1.1 单片机的名称

--单片机的名称

-1.2 单片机的相关概念

--单片机的相关概念

-1.3 单片机的设计语言及软件

--单片机的设计语言及软件

-1.4 单片机的发展

--单片机的发展

-1.5单片机的应用

--单片机的应用

-1.6 第一单元作业

2 单片机的硬件结构

-2.1 单片机的结构框图

--单片机的结构框图

-2.2 80C51内部结构

--80C51内部结构

-2.3 信号引脚

--信号引脚

-2.4 内部数据存储器RAM

--内部数据存储器RAM

-2.5 特殊功能寄存器

--特殊功能寄存器

-2.6 堆栈

--堆栈

-2.7 内部程序存储器ROM

--内部程序存储器ROM

-2.8 存储器的结构特点

--存储器的结构特点

-2.9 并行输入输出接口电路

--并行输入输出接口电路

-2.10 并口功能与时序

--并口功能与时序

-2.11 工作方式

--工作方式

-2.12 最小应用系统

-- 最小应用系统

-2.13 第二单元作业

3 指令系统

-3.1 指令格式

--指令格式

-3.2 立即寻址与直接寻址

--立即寻址与直接寻址

-3.3 寄存器寻址与寄存器间接寻址

--寄存器寻址与寄存器间接寻址

-3.4 变址间接寻址与位寻址

--变址间接寻址与位寻址

-3.5 内部RAM传送指令

--内部RAM传送指令

-3.6 外部RAM传送指令

--外部RAM传送指令

-3.7 ROM传送指令

--ROM传送指令

-3.8 交换指令

--交换指令

-3.9 堆栈操作指令

--堆栈操作指令

-3.10 传送类指令习题讲解

--传送类指令习题讲解

-3.11 算术运算类指令特点

--算术运算类指令特点

-3.12 加法指令

--加法指令

-3.13 加法习题、减法和乘除指令

--加法习题、减法和乘除指令

-3.14 逻辑运算指令

--逻辑运算指令

-3.15 布尔变量操作指令

--布尔变量操作指令

-3.16 无条件转移指令

--无条件转移指令

-3.17 条件转移指令

--条件转移指令

-3.18 循环转移指令

--循环转移指令

-3.19 子程序相关指令

--子程序相关指令

-3.20 并口访问指令及指令小结

--并口访问指令及指令小结

-3.21 第三单元作业

4 汇编语言程序设计

-4.1 汇编程序约定

--汇编程序约定

-4.2 宏指令

--宏指令

-4.3 汇编控制指令

--汇编控制指令

-4.4 汇编语言程序设计步骤

--汇编语言程序设计步骤

-4.5 顺序程序举例

-- 顺序程序举例

-4.6 单重分支结构

--单重分支结构

-4.7 多重分支结构

--多重分支结构

-4.8 单重循环结构

--单重循环结构

-4.9 计数控制循环程序

--计数控制循环程序

-4.10 特征控制循环程序

-- 特征控制循环程序

-4.11 多重循环程序

--多重循环程序

-4.12 子程序的概念

--子程序的概念

-4.13 子程序设计注意事项

--子程序设计注意事项

-4.14 子程序举例

--子程序举例

-4.15 第四单元作业

5 单片机存储器扩展

-5.1 系统扩展

--系统扩展

-5.2 51单片机扩展方法

--51单片机扩展方法

-5.3 存储器单元位数扩充方法

--存储器单元位数扩充方法

-5.4 存储器容量单元扩充方法

--存储器容量单元扩充方法

-5.5 译码线选法

--译码线选法

-5.6 程序存储器的类型

--程序存储器的类型

-5.7 程序存储器的扩展

--程序存储器的扩展

-5.8 数据存储器的扩展

--数据存储器的扩展

-5.9 存储器综合扩展

--存储器综合扩展

-5.10 单片机存储器系统的特点

-- 单片机存储器系统的特点

-5.11 第五单元作业

6 中断与定时系统

-6.1 中断技术

--中断技术

-6.2 中断优先级及中断系统内部结构

--中断优先级及中断系统内部结构

-6.3 中断控制寄存器及中断响应过程

--中断控制寄存器及中断响应过程

-6.4 中断请求的撤消

--中断请求的撤消

-6.5 外部中断举例

--外部中断举例

-6.6 定时器/计数器

--定时器/计数器

-6.7 定时计数器工作方式及程序编写

--定时计数器工作方式及程序编写

-6.8 定时器举例

--定时器举例

-6.9 第六单元作业

7 I/O扩展及应用

-7.1 并行接口

-- 并行接口

-7.2 并口举例

--并口举例

-7.3 并口扩展芯片

--并口扩展芯片

-7.4 8155连接方式及编程

--8155连接方式及编程

-7.5 键盘接口技术

--键盘接口技术

-7.6 按键处理程序及举例

--按键处理程序及举例

-7.7 键盘扫描子程序

-- 键盘扫描子程序

-7.8 显示接口技术

--显示接口技术

-7.9 多位字符静态显示

--多位字符静态显示

-7.10 多位字符动态显示

--多位字符动态显示

-7.11 第七单元作业

8 单片机实验

-8.1 流水灯控制系统设计

--html

-8.2 数码管显示系统设计

--html

-8.3 按键控制系统设计

--html

-8.4 中断控制系统设计

--html

-8.5 定时计数器系统设计

--html

-8.6 串口通信系统设计

--html

-8.7 汉字显示系统设计

--html

-8.8 单片机烧录方法

--单片机烧录方法

-8.9 第八章作业-作业

定时器举例笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。