第8章 定时计数器
合集下载
第八章 8253定时计数器(例程)

➢ 正常情况下,即GATE=1,对计数器置入时常数N后, 要经过N+1个时钟周期才能使OUT输出高电平;
➢ 在计数过程中,如GATE变为低电平,这时只是暂停计数 ,等待GATE信号变为高电平后,计数器继续“减1”计数
例题,向8253的A1A=0 11B的地址写入0011 0000B,则表示 计数器0设置成方式0,并且采用16位时常数,假设时常数为 1500,则计数器0的初始化程序段如下:
通过计数通道的端口地址可以访问通道中的CR、OL,当对通 道进行写操作时,实际上表示将计数初值(即时常数)写入CR; 当对通道进行读操作时,表示将从OL中读取计数值。
8253的控制字
定时/计数器8253一共有6种工作方式,由控制字 寄存器的内容来设定。方式控制字如下所示:
D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD
电源(+5V) 地
连接去向 CPU
译码电路 CPU CPU CPU 外部
外部 外部
/ /
8253的原理结构及工作原理
每个计数通道主要包含四个部件: 计数寄存器CR(Conut Register, 16位)、 计数工作单元CE(Counting Element, 16位)、 输出锁存器OL(Output Latch, 16位)、 控制字寄存器(Control Word Register, 8位)。
计数过程中写入新的时常数,它只能在下一次分频脉冲后起作用
方式2的特点:
➢在置方式2的控制字后,OUT端变为高电平;
➢在置入时常数后,下一个CLK脉冲期间,将时常数从CR读 入CE,并开始“减1”计数;
➢当CE计数到01时,在OUT端输出一个负脉冲,并重新读入 时常数进行计数;
➢ 在计数过程中,如GATE变为低电平,这时只是暂停计数 ,等待GATE信号变为高电平后,计数器继续“减1”计数
例题,向8253的A1A=0 11B的地址写入0011 0000B,则表示 计数器0设置成方式0,并且采用16位时常数,假设时常数为 1500,则计数器0的初始化程序段如下:
通过计数通道的端口地址可以访问通道中的CR、OL,当对通 道进行写操作时,实际上表示将计数初值(即时常数)写入CR; 当对通道进行读操作时,表示将从OL中读取计数值。
8253的控制字
定时/计数器8253一共有6种工作方式,由控制字 寄存器的内容来设定。方式控制字如下所示:
D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD
电源(+5V) 地
连接去向 CPU
译码电路 CPU CPU CPU 外部
外部 外部
/ /
8253的原理结构及工作原理
每个计数通道主要包含四个部件: 计数寄存器CR(Conut Register, 16位)、 计数工作单元CE(Counting Element, 16位)、 输出锁存器OL(Output Latch, 16位)、 控制字寄存器(Control Word Register, 8位)。
计数过程中写入新的时常数,它只能在下一次分频脉冲后起作用
方式2的特点:
➢在置方式2的控制字后,OUT端变为高电平;
➢在置入时常数后,下一个CLK脉冲期间,将时常数从CR读 入CE,并开始“减1”计数;
➢当CE计数到01时,在OUT端输出一个负脉冲,并重新读入 时常数进行计数;
单片机原理及应用课件教学配套课件陈桂友孙同景第8章定时计数器

单片机原理及应用
1/45
第8章 定时/计数器
8.1 8051单片机的定时/计数器
8.2 MSC1211的定时器与脉宽调制
5:04:06
版权所有。
单片机原理及应用
2/45
在计算机控制中可供选择的定时方法
(1)软件定时
执行一个循环程序来实现。
(2)硬件定时
定时全部由硬件电路完成,不占用CPU时间, 但需要通过改变电路的元件参数来调节定时时 间,在使用控制上不够方便,同时增加了开发成 本。
5:04:06
TL0 TH0 (低5位) (8位)
TF0
中断
控制
TL0 TH0 (低8位) (8位)
TF0
控制
中断
版权所有。
单片机原理及应用
方式2 OSC 12分频
T0(P3.4)
C/T=0 C/T=1
TR0
GATE INT0(P3.2)
方式3
OSC T0(P3.4)
定时器工作方式控制寄存器TMOD
地址
D7
D6 D5 D4
D3
D2
D1
D0 复位值
定时器1
定时器0
89H GATE C/ T
M1
M0 GATE C/ T
M1 M0
00H
定时器控制寄存器 TCON
地址
D7 D6
D5
D4
D3
D2
D1
D0 复位值
88H TF1 TR1 TF0 TR0 IE1
IT1IE0I源自08/454、定时/计数器量程的扩展
8051单片机中提供的定时/计数器可以使用户很方便地实现定时和对外 部事件计数。但是在实际应用中,需要的定时时间或计数值可能超过定时/ 计数器的定时或计数能力,特别是8051单片机的系统时钟频率较高时,定时 能力就更为有限。为了满足需要,有时需要对8051单片机的定时计数能力进 行扩展。定时能力和计数能力扩展的方法相同,在此主要对定时能力的扩展 进行讨论,计数能力的扩展可参考定时能力扩展的方法进行。
1/45
第8章 定时/计数器
8.1 8051单片机的定时/计数器
8.2 MSC1211的定时器与脉宽调制
5:04:06
版权所有。
单片机原理及应用
2/45
在计算机控制中可供选择的定时方法
(1)软件定时
执行一个循环程序来实现。
(2)硬件定时
定时全部由硬件电路完成,不占用CPU时间, 但需要通过改变电路的元件参数来调节定时时 间,在使用控制上不够方便,同时增加了开发成 本。
5:04:06
TL0 TH0 (低5位) (8位)
TF0
中断
控制
TL0 TH0 (低8位) (8位)
TF0
控制
中断
版权所有。
单片机原理及应用
方式2 OSC 12分频
T0(P3.4)
C/T=0 C/T=1
TR0
GATE INT0(P3.2)
方式3
OSC T0(P3.4)
定时器工作方式控制寄存器TMOD
地址
D7
D6 D5 D4
D3
D2
D1
D0 复位值
定时器1
定时器0
89H GATE C/ T
M1
M0 GATE C/ T
M1 M0
00H
定时器控制寄存器 TCON
地址
D7 D6
D5
D4
D3
D2
D1
D0 复位值
88H TF1 TR1 TF0 TR0 IE1
IT1IE0I源自08/454、定时/计数器量程的扩展
8051单片机中提供的定时/计数器可以使用户很方便地实现定时和对外 部事件计数。但是在实际应用中,需要的定时时间或计数值可能超过定时/ 计数器的定时或计数能力,特别是8051单片机的系统时钟频率较高时,定时 能力就更为有限。为了满足需要,有时需要对8051单片机的定时计数能力进 行扩展。定时能力和计数能力扩展的方法相同,在此主要对定时能力的扩展 进行讨论,计数能力的扩展可参考定时能力扩展的方法进行。
微型计算机原理及接口技术第8章8253

计数器/定时器的内部结构
8253内部包含三个完全一样的计数器/定时器通道, 每个通道的工作是完全独立的
每个通道包含:
① 一个8位控制字寄存器:由编程设定该通道的工作方式、读 写格式和数制
② 一个16位计数初值寄存器:由程序设定初始计数值,可分 成高8位和低8位两个部分,可作8位寄存器使用
③ 一个计数器执行部件(实际的计数器):实际上是一个16 位减法计数器,它的起始值是初始寄存器的值,由程序设 定。可分成高8位和低8位两个部分
优点:电路结构简单,价格便宜,通过 改变电阻或电容值,可以在一定的定时 范围内改变定时时间
缺点:电路在硬件已连接好的情况下, 定时时间和范围就不能由程序来控制和 改变,而且定时精度也不高
555定时器外部引脚和内部结构
可编程硬件定时
定时原理:利用可编程定时器/计数器芯 片附加硬件电路实现定时
输出信号的波形由工作方式决定,同时还要受 到GATE引脚上的门控信号控制,它决定是否 允许计数
计数器/定时器的定时功能
当加到CLK引脚上的脉冲为精确的时钟脉 冲,可实现定时的功能。
定时时间决定于计数脉冲的频率和计数 器的初值。
定时时间=时钟脉冲周期×预置的计数初值
计数器/定时器的计数功能
方式1:可编程单稳态输出方式
写入控制字后OUT初始状态:高电平 门控信号GATE的作用:①高电平或低电平均不起作用;
②只有在GATE发生由低到高的正跳变,输出OUT由高
到低跳变,并开始计数;③在计数过程中,若GATE产 生负跳变,不影响计数;④在计数器回0之前,GATE 又产生由低到高的正跳变,8253又将初始值装入,重 新开始计数,使生成脉冲加宽。 计数过程中OUT状态:保持低电平 计数结束OUT状态:发生由低到高的正跳变。 计数器回0后,是否重新计数:否 应用:用于定时
微机原理及应用ch8-stu

19
方式4 软件触发选通信号
5、方式4—软件触发选通(软件起始触发,软/硬件可重触发)
方式4
4
3
WR
CLK
GATE
4 3 2 1 0
OUT 特点:一次计数;
3 2
3 2 1 0
GATE上升重新、高允许、下降停止、低禁止计数; WR#写[重写]后下个计数周期自动有效; OUT计数前为高,计数时不变,计数值为0时输出1个CLK的负脉冲
第8章 定时计数控制接口
西南石油大学计算机科学学院 教师 郑 津
如何设计实现抢答器?
问题:
抢答过程中倒计时如何实现?
2
定时器和计数器
在计算机系统中,需要一些定时信号以实现定时控制, 如定时刷新、定时中断、定时检测、定时扫描等等,也 需要有计数器能对外部事件计数。
定时器:由计数电路构成,通过记录高精度晶振脉冲信号 的个数,输出准确的时间间隔。 计数器:若用于记录外设脉冲信号的个数(进而获知外设 的某种状态),常又称为计数器。 要实现定时控制,有两种方法:软件定时、硬件定时。
④ ⑤ ① 计 ③ 数 计 设 计 设 值 数硬 数定 送定 结件 过计 入工 束启 程数 计作 动 初 数方 值 器式
2、方式1—可编程单稳脉冲(硬件起始触发,硬件可重触发) ⑥ ②
WR CLK
GATE ③ 4 OUT
16
3
2
1
0
方式1 可编程单稳脉冲
2、方式1—可编程单稳脉冲(硬件起始触发,硬件可重触发)
4
教学重点
• 8253的引脚
• 8253的6种工作方式
• 8253的编程
• 8253在IBM PC系列机上的应用
5
8.1 8253/8254定时个计数器有6种工作方式; 按二进制或十进制(BCD码)计数。
方式4 软件触发选通信号
5、方式4—软件触发选通(软件起始触发,软/硬件可重触发)
方式4
4
3
WR
CLK
GATE
4 3 2 1 0
OUT 特点:一次计数;
3 2
3 2 1 0
GATE上升重新、高允许、下降停止、低禁止计数; WR#写[重写]后下个计数周期自动有效; OUT计数前为高,计数时不变,计数值为0时输出1个CLK的负脉冲
第8章 定时计数控制接口
西南石油大学计算机科学学院 教师 郑 津
如何设计实现抢答器?
问题:
抢答过程中倒计时如何实现?
2
定时器和计数器
在计算机系统中,需要一些定时信号以实现定时控制, 如定时刷新、定时中断、定时检测、定时扫描等等,也 需要有计数器能对外部事件计数。
定时器:由计数电路构成,通过记录高精度晶振脉冲信号 的个数,输出准确的时间间隔。 计数器:若用于记录外设脉冲信号的个数(进而获知外设 的某种状态),常又称为计数器。 要实现定时控制,有两种方法:软件定时、硬件定时。
④ ⑤ ① 计 ③ 数 计 设 计 设 值 数硬 数定 送定 结件 过计 入工 束启 程数 计作 动 初 数方 值 器式
2、方式1—可编程单稳脉冲(硬件起始触发,硬件可重触发) ⑥ ②
WR CLK
GATE ③ 4 OUT
16
3
2
1
0
方式1 可编程单稳脉冲
2、方式1—可编程单稳脉冲(硬件起始触发,硬件可重触发)
4
教学重点
• 8253的引脚
• 8253的6种工作方式
• 8253的编程
• 8253在IBM PC系列机上的应用
5
8.1 8253/8254定时个计数器有6种工作方式; 按二进制或十进制(BCD码)计数。
单片机原理与应用(方怡冰)1-10

先修课程:数字电路、C语言程序设计
单元0:什么是单片机
本课程《微机原理与接口技术》,主要学习某种型号的微 处理器及其接口电路的结构、工作原理、设计应用。
本课程选择microchip公司的PIC16F877A单片机为学习对 象。
CPU与存储器/寄存器关系是哈佛架构、2级流水线。 接口电路丰富。 8位CPU,适合入门学习。 单片机设计软件、硬件开发套件等易得,理论学习和实践
5.1 中断逻辑
图5-1 PIC16F87X中断逻辑图
5.2 与中断逻辑有关的寄存器
5.2.1 中断控制寄存器INTCON 5.2.2 选项寄存器OPTION-REG INTEDG,这是与上述的外部中断有关的控制位。
1=选择RB0/INT上升沿触发; 0=选择RB0/INT下降沿触发。
5.3 端口RB做中断信号输入时的工作原理 5.3.1 外部中断输入端RB0/INT
用举例
4.1 RA端口
输入\输出端口分别是RA、RB、RC、 RD、RE
图4-2 RA4端口内部结构 图4-1 RA0-3、5端口内部结构
拓展:用汇编指令在RA端口电路上说明电 路工作原理
4.2 RB端口
拓展视:频用:C指用令汇在编R指B端令口在电RB路端上口说电明路上说明 电路工作原理 图4-3 RB0-3端口内部结构
第3脚:V0为液晶显示器对比度调整端
第4脚:RS为寄存器选择,高电平时选择 数据寄存器、低电平时选择指令寄存器
第5脚:RW为读写信号线,高电平时进行 读操作,低电平时进行写操作
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令 第7~14脚:D0~D7为8位双向数据线 第15~16脚:背光灯电源正负极
单元0:什么是单片机
本课程《微机原理与接口技术》,主要学习某种型号的微 处理器及其接口电路的结构、工作原理、设计应用。
本课程选择microchip公司的PIC16F877A单片机为学习对 象。
CPU与存储器/寄存器关系是哈佛架构、2级流水线。 接口电路丰富。 8位CPU,适合入门学习。 单片机设计软件、硬件开发套件等易得,理论学习和实践
5.1 中断逻辑
图5-1 PIC16F87X中断逻辑图
5.2 与中断逻辑有关的寄存器
5.2.1 中断控制寄存器INTCON 5.2.2 选项寄存器OPTION-REG INTEDG,这是与上述的外部中断有关的控制位。
1=选择RB0/INT上升沿触发; 0=选择RB0/INT下降沿触发。
5.3 端口RB做中断信号输入时的工作原理 5.3.1 外部中断输入端RB0/INT
用举例
4.1 RA端口
输入\输出端口分别是RA、RB、RC、 RD、RE
图4-2 RA4端口内部结构 图4-1 RA0-3、5端口内部结构
拓展:用汇编指令在RA端口电路上说明电 路工作原理
4.2 RB端口
拓展视:频用:C指用令汇在编R指B端令口在电RB路端上口说电明路上说明 电路工作原理 图4-3 RB0-3端口内部结构
第3脚:V0为液晶显示器对比度调整端
第4脚:RS为寄存器选择,高电平时选择 数据寄存器、低电平时选择指令寄存器
第5脚:RW为读写信号线,高电平时进行 读操作,低电平时进行写操作
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令 第7~14脚:D0~D7为8位双向数据线 第15~16脚:背光灯电源正负极
PLC应用技术 第8章 变频器控制

PLC应用三菱机型)
第1章 可编程控制器认知 第2章 FX系统资源 第7章 模拟量控制 第3章 基本指令 第6章 状态法编程
第8章 变频器控制 第4章 定时器计数器指令
第9章 工业网络控制 第5章 应用指令 第10章 上位机监控组态
第11章 三菱大中型PLC
第 8章
变频器控制
3 1 2 3 4
8.1 变频器基础 8.2 三菱A800变频器 8.3 变频器开关量控制 8.4 变频器模拟量控制
变频器知名企业有瑞士ABB、德国西门子、日本安川、日 本三菱、美国艾默生等,国产有汇川、英威腾、安邦信、 欧瑞等。在此以三菱FR-A800系列为例,说明变频器在 PLC控制系统中的应用技术。 由三菱电机株式会社生产的三菱变频器,是世界知名的变 频器之一,在世界各地占有率比较高。 变频器可接收开关量、模拟量、通信数据,具体讲有面板 控制、JOG点动控制、多段速控制、模拟量控制、通信控 制等方式。 变频器在使用前,需设置相关参数。主要包括控制方式、 参数显示、频率、电动机参数、加减速时间等。根据使用 场合不同,还要设置一些更专业的参数。
2.变频器的基本结构
交-直-交变频器,其基本结构如图8-1所示,由主 回路,包括整流器、中间直流环节、逆变器和控制 回路组成,现将各部分的功能分述如下:
2.变频器的基本结构 (1)整流器。电网侧的变流器是整流器,它的作用是把 三相(也可以是单相)交流整流成直流。 (2)直流中间电路。直流中间电路的作用是对整流电路 的输出进行平滑,以保证逆变电路及控制电源得到质量 较高的直流电源。 (3)逆变器。负载侧的变流器为逆变器。逆变器的主要 作用是在控制电路的控制下将直流平滑输出电路的直流 电源转换为频率及电压都可以任意调节的交流电源。 (4)控制电路。变频器的控制电路包括主控制电路、信 号检测电路、门极驱动电路、外部接口电路及保护电路 等几个部分,其主要任务是完成对逆变器的开关控制, 对整流器的电压控制及完成各种保护功能。
第1章 可编程控制器认知 第2章 FX系统资源 第7章 模拟量控制 第3章 基本指令 第6章 状态法编程
第8章 变频器控制 第4章 定时器计数器指令
第9章 工业网络控制 第5章 应用指令 第10章 上位机监控组态
第11章 三菱大中型PLC
第 8章
变频器控制
3 1 2 3 4
8.1 变频器基础 8.2 三菱A800变频器 8.3 变频器开关量控制 8.4 变频器模拟量控制
变频器知名企业有瑞士ABB、德国西门子、日本安川、日 本三菱、美国艾默生等,国产有汇川、英威腾、安邦信、 欧瑞等。在此以三菱FR-A800系列为例,说明变频器在 PLC控制系统中的应用技术。 由三菱电机株式会社生产的三菱变频器,是世界知名的变 频器之一,在世界各地占有率比较高。 变频器可接收开关量、模拟量、通信数据,具体讲有面板 控制、JOG点动控制、多段速控制、模拟量控制、通信控 制等方式。 变频器在使用前,需设置相关参数。主要包括控制方式、 参数显示、频率、电动机参数、加减速时间等。根据使用 场合不同,还要设置一些更专业的参数。
2.变频器的基本结构
交-直-交变频器,其基本结构如图8-1所示,由主 回路,包括整流器、中间直流环节、逆变器和控制 回路组成,现将各部分的功能分述如下:
2.变频器的基本结构 (1)整流器。电网侧的变流器是整流器,它的作用是把 三相(也可以是单相)交流整流成直流。 (2)直流中间电路。直流中间电路的作用是对整流电路 的输出进行平滑,以保证逆变电路及控制电源得到质量 较高的直流电源。 (3)逆变器。负载侧的变流器为逆变器。逆变器的主要 作用是在控制电路的控制下将直流平滑输出电路的直流 电源转换为频率及电压都可以任意调节的交流电源。 (4)控制电路。变频器的控制电路包括主控制电路、信 号检测电路、门极驱动电路、外部接口电路及保护电路 等几个部分,其主要任务是完成对逆变器的开关控制, 对整流器的电压控制及完成各种保护功能。
第八章 可编程计数器定时器8253及其应用
WR
LSB=4 CR=4
CLK GATE
OUT CRCE 4 CRCE 2 4 CRCE 2 4 CRCE 2 4 CRCE 2 4
8253方式3 计数初值为奇数时的波形 CW=16H WR LSB=5
CR=5
CLK GATE OUT
CRCE
5 4
CRCE 2 5 2
CRCE 5 4
CRCE 4 3
8253方式0
两种特殊情况:
中途改变计数初值
CW=10H WR CR=3 CLK GATE OUT CR=3 LSB=3
LSB=3
CRCE 3 2
CRCE 1 3 2
1
0
8253方式1
2、方式1——可编程单稳态输出方式
时序图
CW=12H WR
LSB=3 CR=3
CLK GATE
OUT
CRCE
CRCE 3 2
1
0
8253方式1
工作过程
① 写入控制字,OUT立即变为高,并保持不变。 ② 写计数初值N,只有当GATE形成一个上升沿时,才在
下一个时钟脉冲的下降沿,将n装入实际计数器,同 时OUT由高变为低,开始减1计数(再来一个脉冲)。
③ 计数期间,OUT一直为低;当计数结束(计数值为0)
8253综述
Intel 8253是一种可编程的计数器/定时器芯片。 8253内部具有3个独立的16位计数器通道,通过对
它进行编程,每个计数器通道均有6种工作方式,并 且都可以按2进制或10进制2种格式进行计数,最高 计数频率能达到2MHz。 8253还可用作可编程方波频 率产生器、分频器、程控单脉冲发生器等。
教材第八章内容
第八章 可编程计数器/定时器8253及应用
LSB=4 CR=4
CLK GATE
OUT CRCE 4 CRCE 2 4 CRCE 2 4 CRCE 2 4 CRCE 2 4
8253方式3 计数初值为奇数时的波形 CW=16H WR LSB=5
CR=5
CLK GATE OUT
CRCE
5 4
CRCE 2 5 2
CRCE 5 4
CRCE 4 3
8253方式0
两种特殊情况:
中途改变计数初值
CW=10H WR CR=3 CLK GATE OUT CR=3 LSB=3
LSB=3
CRCE 3 2
CRCE 1 3 2
1
0
8253方式1
2、方式1——可编程单稳态输出方式
时序图
CW=12H WR
LSB=3 CR=3
CLK GATE
OUT
CRCE
CRCE 3 2
1
0
8253方式1
工作过程
① 写入控制字,OUT立即变为高,并保持不变。 ② 写计数初值N,只有当GATE形成一个上升沿时,才在
下一个时钟脉冲的下降沿,将n装入实际计数器,同 时OUT由高变为低,开始减1计数(再来一个脉冲)。
③ 计数期间,OUT一直为低;当计数结束(计数值为0)
8253综述
Intel 8253是一种可编程的计数器/定时器芯片。 8253内部具有3个独立的16位计数器通道,通过对
它进行编程,每个计数器通道均有6种工作方式,并 且都可以按2进制或10进制2种格式进行计数,最高 计数频率能达到2MHz。 8253还可用作可编程方波频 率产生器、分频器、程控单脉冲发生器等。
教材第八章内容
第八章 可编程计数器/定时器8253及应用
第8章定时计数器
二、初始化编程 (1)计数器0 MOV OUT MOV OUT OUT
AL,00110110B ;方式3,二进制计数。 43H,AL AL,0 40H,AL 40H,AL ;初值为 0 (最大)
(2)计数器1 MOV OUT MOV OUT
(3)计数器2 MOV OUT MOV OUT MOV OUT
8253控制字格式
(2 )数据读 /写格式( D5D4 )。 CPU 向计数器写入初值和读取它们的
当前状态时,有几种不同的格式。
(3)工作方式(D3D2D1)。8253的每个计数器可以有6种不同的工作 方式,由这三位决定。每一种方式的特点,随后介绍。 (4)数制选择(D0)。8253的每个计数器有两种计数制:二进制计数 和BCD码计数,由这位决定。
AL,01010100B ;方式2,只写低8位,二进制计数。 43H,AL AL,12H 41H,AL
AL,10110110B ;方式3,二进制计数。 43H,AL AX,0533H 42H,AL AL,AH 42H,AL
三、实验三 1、方式0,手动输入脉冲:
L0
2、方式3:分频器 L0
1HZ
返回
数结束后,自动以新的初值计数。
WR
CW=14h LSB=4
CLK
3
2
1
0
3
2
1
0
GATE OUT
四、 方式3—方波速率发生器 方式3和方式2的输出都是周期性的,它们的主要区别是,方式3在计 数过程中OUT输出有一半时间为高,另一半时间为低。具体地说,当初值
N为偶数时,OUT的高低输出各一半,当N为奇数时,高电平为(N+1)/2,
7.3.2 8253-PIT的控制字
第八章__定时器计数器8253
3.
引脚及其功能
• 数据线D7~D0:双向、三态。用于将8253/8254芯片与 系统数据总线相连,在芯片与CPU之间传送数据、命令 、状态信息。 • A1A0:片内端口选择线,输入。这两根线一般接到系 统地址总线的A1、A0 上。当-CS=0时8253/8254芯片被 选中,这两位地址线用来选择片内四个端口地址(三个 计数器的端口和一个控制字寄存端口),以便进行读写。 (当A1A0=00、01、10时,分别选计0、计1、计2) • 当A1A0=11时选中片内的控制寄存器,将命令字写入其 中。该控制寄存器只写,不可读。 • CLK:计数器时钟(计数脉冲)输入端。三个独立的 计数器,各自有一个独立的输入时钟脉冲信号CLK0、 CLK1、CLK2,每输入一个时钟脉冲信号CLK,计数器 中同步递减计数器CE的当前计数值便减1,进行计数或 定时控制。
2.
方式1(可编程单脉冲发生器)
• 在该方式中,写入方式命令字和装入计数初 值到计数寄存器后,计数器输出端OUT为高 电平。在GATE输入端出现一个上升沿后,计 数器使输出端OUT降为低电平,开始计数; 当计数值减到0,输出端恢复为高电平,完成 一个单脉冲输出过程。 显然输出端负脉冲的宽度与计数值的大小有 关,设预置计数值为N,计数时钟周期为TCLK, 那么输出负脉冲宽度就是N×TCLK。所以这是 一个可编程控制的单稳态发生器,如下图所 示。
(1) 控制字写入计数器时,所有的控制逻辑电路立即复位, 输出端OUT进入初始状态。该初始状态与工作方式有关, 设置成方式0时,OUT的初始状态为低电平,设置成其他工 作方式,OUT的初始状态为高电平。 (2) 初始值写入初值计数器CR以后,要经过一个时钟脉冲的 上升沿和下降沿,将初值送入计数执行单元,计数执行单 元从下一个时钟开始进行计数。 (3) 通常,在时钟脉冲CLK的上升沿对门控信号GATE进行采 样,各计数器的门控信号的触发方式与工作方式有关。在 方式0、方式4中,门控信号为电平触发;方式1、方式5中, 门控信号为上升沿触发;方式2、方式3中,即可用电平触 发,也可用上升沿触发。 (4) 在时钟脉冲的下降沿计数器进行计数。0是计数器所能 容纳的最大初值,因为用二进制计数时,16位计数器,0 相当于216,用BCD码计数时,0相当于104。
微机原理及接口技术课件第8章 常用可编程接口芯片
;执行锁存命令
MOV DX,CS+0
;计数器0端口地址
IN AL,DX 内容
;读计数输出锁存器中的低8位
MOV AH,AL
;保护
IN AL,DX 内容
;读计数疏忽锁存器中的高8位
XCHG AH,AL
;AX中是输出锁存命令瞬间,计数执行 单元中的计数值
13
8.2.3 8253的工作方式
8253 的工作方式:
在计数期间CPU又送来新的计数初值,不影响当前计数过程。计数器计数到0, OUT端输出高电平。一直等到下一次GATE信号的触发,才会将新的计数初值装入, 并以新的计数初值开始计数过程,如图8-4(c)所示。8253方式1下三种情况的时序 波形图,如图8-4所示。
18
8.2.3 8253的工作方式
8253方式1时序波形图
接口芯片的地址码经译码后接通芯片的片选端,对读操作而言,怎样使 输入端口的信息由数据总线进入CPU,数据何时读入CPU,这些都由读信号 控制。对于输出接口,当CPU对接口进行输出数据的操作时,发出写信号。 在PC系统中,对I/O接口的操作由IN、OUT指令完成。
3
8.1可编程接口芯片概述
3. 可编程 目前所用的接口芯片大部分是多通道、多功能的。所谓多通道就是指一
0:二进制计数 1:十进制计数
其中:D7 D6用于选择定时器;D5 D4用于确定时间常数的读/写格式;D3 D2用来 设定计数器的工作方式;D0用来设定计数方式。
11
8.2 可编程定时/计数器接口芯片8253
例题8.1 8253控制字写入示例
MOV DX,CS+3
;8253控制寄存器端口地址,设置8253内部寄存
输入
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用技术
第8章
定时/计数器
8.1 STC12C5410AD单片机的定时/计数器
8.2 STC12C5410AD的PCA/PWM模块
1/49
单片机应用技术
在计算机控制中可供选择的定时方法
(1)软件定时 执行一个循环程序来实现。 (2)硬件定时 定时全部由硬件电路完成,不占用CPU时间,但需要 通过改变电路的元件参数来调节定时时间,在使用控制上 不够方便,同时增加了开发成本。 (3)可编程定时器定时 由单片机内部的定时模块单元完成。
13/49
单片机应用技术
【例8-l】 设计利用定时/计数器T0、T1端作为外部中断源输入线进行外部中断源扩充 的程序。 解:为了扩充外部中断源,可以利用定时/计数器工作于计数状态时,T0(P3.4) 或T1(P3.5)引脚上发生负跳变,计数器增1这一特性,把P3.4、P3.5作为外部中断源 请求输入线,使计数器的计数值为-1(即0FFH),则外部T0、T1输入一个脉冲即计数溢 出,从而置位相应的中断请求标志,以此来申请中断,则相当于扩充了一根/INT线。 编程时,将T0置为方式2计数,计数初值0FFH,计数输入端T0(P3.4)发生一次负 跳变,计数器加1并产生溢出标志向CPU申请中断,中断处理程序使累加器A内容减1,送 P1口,然后返回主程序。汇编语言程序清单如下:
扩展方法: (1)软件扩展方法 扩展方法是在定时器中断服务程序中对定时器中断请求进行 计数,当中断请求的次数达到要求的值时才进行相应的处理。例 如,某事件的处理周期为1s,但由于受到最大定时时间的限制, 无法一次完成定时,此时可以将定时器的定时时间设为以10ms 为一个单位,启动定时器后的每一次定时器溢出中断产生10ms 的定时,进入中断服务程序后,对定时器的中断次数进行统计, 每100次定时器溢出中断进行一次事件的处理,然后再以同样的 方式进入下一个周期的事件处理。
11/49
单片机应用技术
(2)硬件扩展方法 硬件扩展方法可以使用外接通用定时器芯片对单片机的定时 能力进行扩展,如使用定时/计数器芯片8253,也可以利用单片 机自身的资源对定时能力进行扩展。 由于单片机的定时器没有对外输出引脚,所以两个16位的定 时/计数器不能直接连在一起,可以通过单片机的端口P0~P3实 现连接。下图给出了一种具体的连接方法。
3/49
单片机应用技术
单片机中的微处理器、寄存器TCON和TMOD与定时/ 计数器T0、T1之间的关系
P3.5 7 TH1 内部总线 0 7 TL1 0 7 TH0 0 7 TL0 P3.4 0
CPU的 微处理器
TCON
TMOD
AUXR
4/49
单片机应用技术
2、定时/计数器方式和控制寄存器 定时器工作方式控制寄存器TMOD
方式1
12分频 OSC/12 OSC 不分频 OSC/1 T0(P3.4) TR0 GATE INT0(P3.2) T0x12=0,1 0 1
C/T=0 C/T=1 控制
TH0 TL0 (低8位) (8位)
TF0
中断
8/49
单片机应用技术
方式2
12分频 OSC/12 OSC 不分频 OSC/1 T0(P3.4)
2)C/
T
:功能选择位。用于“计数器”或“定时器”功能的选择。
3)GATE:门控位。GATE用于选通控制。
5/49
单片机应用技术
定时器控制寄存器 TCON
地址 88H
D7
TF1
D6
TR1
D5
TF0
D4
TR0
D3
IE1
D2
IT1
D1
IE0
D0
IT0
复位值
00H
1)TF1:定时器/计数器1溢出标志位。
T0x12=0,1 0 1
C/T=0 C/T=1 控制
TL0 (8位)
TF0
中断
TR0 GATE INT0(P3.2)
12分频 OSC/12 OSC T0x12=0,1 0 1
重装载 TH0 (8位)
方式3
不分频 OSC/1 T0(P3.4)
C/T=0 C/T=1
TL0 (8位) 控制
TF0
中断
TR0 GATE INT0(P3.2) 12分频 OSC/12 OSC 不分频 OSC/1 T0x12=0,1 0 1 TR1
15/49
单片机应用技术
【例8-2】 设系统时钟频率为6MHz,利用定时器T0定时,每隔1s 将P1.0的状态取反。
思路:将定时器的定时时间设为50ms,在中断服务程序中对定时器溢
出中断请求进行计数,当计够20次时,将P1.0的状态取反,否则直接 返回主程序。 选择定时器T0的工作方式:软件启动、定时方式、16位定时器, 方式字为01H。由于系统时钟频率为6MHz,12分频时,计数单位为 2μ s。定时器T0的装入初值为
N 2n
Tc Tu
n=8,13或16
10/49
单片机应用技术
系统时钟频率为6MHz,进行12分频时,定时器的最大定时能力
位数 最大定时能力
8
13
T=(28 -0)×2μs=512μs
T=(213 -0)×2μs=16384μs=16.384ms
16
T=(216 -0)×2μs=131072μs=131.072ms
$include ORG LJMP ORG LJMP ORG MAIN: MOV MOV MOV SETB SETB SETB HERE: LJMP T0_ISR: MOV RETI END (STC12.INC) ;包含STC12C5410AD单片机寄存器定义文件 0000H MAIN ;转主程序 000BH ;定时器T0中断服务程序入口地址 T0_ISR ;转中断服务程序 0100H ;主程序的存放起始地址 MOV SP,#60H ;给栈指针赋初值 TMOD,#06H ;定时器T0工作于方式2 TL0,#0FFH ;送时间常数 TH0,#0FFH ET0 ;允许T0中断 EA ;CPU开中断 TR0 ;启动T0计数器 HERE ;等待 DEC A ;T0中断服务程序 P1,A ;累加器A内容减1送P1口
STC12C5410AD单片机内部有 ★两个16位的定时/计数器 ★四路可编程计数器阵列(Programmable Counter Array, PCA )/脉宽调制(Pulse Width Modulation,PWM)。
2/49
单片机应用技术
8.1
STC12C5410AD单片机的定时/计数器
1、定时/计数器的结构及工作原理
T0 定 器 式 时 方 P1.0
T1(P3.5)
T1 计 器 式 数 方
1)T0设置为16位定时器方式,当T0溢出时,执行T0的中断服务 程序。在T0的中断服务程序中将P1.0取反。这样在P1.0将输出一个方 波,其周期为T0定时时间的2倍。设T0的定时时间为TIME,则由P1.0 输出的方波的周期为2×TIME。 2)T1设置为16位计数器方式,将P1.0输出的方波接到T1的定时 器外部输入端T1(P3.5),作为定时/计数器1的外部计数脉冲,其每个 周期的下降沿使T1加1。设计数器T1的计数脉冲数为COUNT,则当T1 溢出时,总定时时间T为:T = 2×TIME×COUNT。
12/49
单片机应用技术
5、定时/计数器编程举例 定时/计数器的应用编程主要有两点:一是能正确初始化,包 括写入控制字,进行时间常数的计算并装入;二是中断服务程序的
编写,即在中断服务程序中编写实现定时完成的任务代码。一般情
况下,定时/计数器初始化部分的步骤大致如下: (1)设置工作方式,将控制字写入TMOD寄存器。 (2)设置分频方式,将控制字写入AUXR寄存器。默认的情 况是12分频(兼容传统8051单片机),因此,如果使用传统8051 单片机模式,可以不进行设置。 (3)把定时/计数初值装入TLX、THX寄存器。 (4)置位ETX允许定时/计数器中断(如果需要)。 (5)置位EA使CPU开放中断。 (6)置位TRX以启动定时/计数。
1)T0x12:定时器0速度控制位。 0:定时器0的速度是传统8051单片机定时器的速度,即12分频。 1:定时器0的速度是传统8051单片机定时器速度的12倍,即不分频。 2)T1x12:定时器1速度控制位。 0:定时器1的速度是传统8051单片机定时器的速度,即12分频。 1:定时器1的速度是传统8051单片机定时器速度的12倍,即不分频。
2)TR1:定时器T1的运行控制位。
3)TF0:定时器/计数器0溢出标志位。 4)TR0:定时器T0的运行控制位。 TCON的0~3位与外部中断有关。
6/49
单片机应用技术
AUXR:辅助寄存器
地址 8EH D7 T0x12 D6 T1x12 D5 UART_M0x6 D4 EADCI D3 ESPI D2 ELVDI D1 D0 复位值 000000XXB
OSC 12分频或不分频 C/T=0 C/T=1 控制信号 加1 计数器 TFX 中断
TX端
定时/计数器的核心是一个加1计数器,加1计数器的脉冲有两 个来源,一个是外部脉冲源,另一个是系统的时钟振荡器。计数 器对两个脉冲源之一进行输入计数,每输入一个脉冲,计数值加1 。当计数到计数器为全1时,再输入一个脉冲就使计数值回零,同 时从最高位溢出一个脉冲使特殊功能寄存器TCON(定时器控制 寄存器)的某一位TF0或TF1置1,作为计数器的溢出中断标志。
14/49
单片机应用技术
对应的C语言程序如下: #include “stc12.h” //包含STC12C5410AD单片机寄存器定义文件 unsigned char cnt; void timer0_ISR (void) interrupt 1 //T0中断函数 { cnt = cnt- -; //在C语言程序中,使用变量cnt代替汇编语言中的累加器A P1 = cnt; } void main(void) { cnt=0xff; TMOD=0x06; //定时器0工作于方式2 TL0=0xff; TH0=0xff; TR0=1; ET0=1; EA =1; while(1); //等待中断 }
第8章
定时/计数器
8.1 STC12C5410AD单片机的定时/计数器
8.2 STC12C5410AD的PCA/PWM模块
1/49
单片机应用技术
在计算机控制中可供选择的定时方法
(1)软件定时 执行一个循环程序来实现。 (2)硬件定时 定时全部由硬件电路完成,不占用CPU时间,但需要 通过改变电路的元件参数来调节定时时间,在使用控制上 不够方便,同时增加了开发成本。 (3)可编程定时器定时 由单片机内部的定时模块单元完成。
13/49
单片机应用技术
【例8-l】 设计利用定时/计数器T0、T1端作为外部中断源输入线进行外部中断源扩充 的程序。 解:为了扩充外部中断源,可以利用定时/计数器工作于计数状态时,T0(P3.4) 或T1(P3.5)引脚上发生负跳变,计数器增1这一特性,把P3.4、P3.5作为外部中断源 请求输入线,使计数器的计数值为-1(即0FFH),则外部T0、T1输入一个脉冲即计数溢 出,从而置位相应的中断请求标志,以此来申请中断,则相当于扩充了一根/INT线。 编程时,将T0置为方式2计数,计数初值0FFH,计数输入端T0(P3.4)发生一次负 跳变,计数器加1并产生溢出标志向CPU申请中断,中断处理程序使累加器A内容减1,送 P1口,然后返回主程序。汇编语言程序清单如下:
扩展方法: (1)软件扩展方法 扩展方法是在定时器中断服务程序中对定时器中断请求进行 计数,当中断请求的次数达到要求的值时才进行相应的处理。例 如,某事件的处理周期为1s,但由于受到最大定时时间的限制, 无法一次完成定时,此时可以将定时器的定时时间设为以10ms 为一个单位,启动定时器后的每一次定时器溢出中断产生10ms 的定时,进入中断服务程序后,对定时器的中断次数进行统计, 每100次定时器溢出中断进行一次事件的处理,然后再以同样的 方式进入下一个周期的事件处理。
11/49
单片机应用技术
(2)硬件扩展方法 硬件扩展方法可以使用外接通用定时器芯片对单片机的定时 能力进行扩展,如使用定时/计数器芯片8253,也可以利用单片 机自身的资源对定时能力进行扩展。 由于单片机的定时器没有对外输出引脚,所以两个16位的定 时/计数器不能直接连在一起,可以通过单片机的端口P0~P3实 现连接。下图给出了一种具体的连接方法。
3/49
单片机应用技术
单片机中的微处理器、寄存器TCON和TMOD与定时/ 计数器T0、T1之间的关系
P3.5 7 TH1 内部总线 0 7 TL1 0 7 TH0 0 7 TL0 P3.4 0
CPU的 微处理器
TCON
TMOD
AUXR
4/49
单片机应用技术
2、定时/计数器方式和控制寄存器 定时器工作方式控制寄存器TMOD
方式1
12分频 OSC/12 OSC 不分频 OSC/1 T0(P3.4) TR0 GATE INT0(P3.2) T0x12=0,1 0 1
C/T=0 C/T=1 控制
TH0 TL0 (低8位) (8位)
TF0
中断
8/49
单片机应用技术
方式2
12分频 OSC/12 OSC 不分频 OSC/1 T0(P3.4)
2)C/
T
:功能选择位。用于“计数器”或“定时器”功能的选择。
3)GATE:门控位。GATE用于选通控制。
5/49
单片机应用技术
定时器控制寄存器 TCON
地址 88H
D7
TF1
D6
TR1
D5
TF0
D4
TR0
D3
IE1
D2
IT1
D1
IE0
D0
IT0
复位值
00H
1)TF1:定时器/计数器1溢出标志位。
T0x12=0,1 0 1
C/T=0 C/T=1 控制
TL0 (8位)
TF0
中断
TR0 GATE INT0(P3.2)
12分频 OSC/12 OSC T0x12=0,1 0 1
重装载 TH0 (8位)
方式3
不分频 OSC/1 T0(P3.4)
C/T=0 C/T=1
TL0 (8位) 控制
TF0
中断
TR0 GATE INT0(P3.2) 12分频 OSC/12 OSC 不分频 OSC/1 T0x12=0,1 0 1 TR1
15/49
单片机应用技术
【例8-2】 设系统时钟频率为6MHz,利用定时器T0定时,每隔1s 将P1.0的状态取反。
思路:将定时器的定时时间设为50ms,在中断服务程序中对定时器溢
出中断请求进行计数,当计够20次时,将P1.0的状态取反,否则直接 返回主程序。 选择定时器T0的工作方式:软件启动、定时方式、16位定时器, 方式字为01H。由于系统时钟频率为6MHz,12分频时,计数单位为 2μ s。定时器T0的装入初值为
N 2n
Tc Tu
n=8,13或16
10/49
单片机应用技术
系统时钟频率为6MHz,进行12分频时,定时器的最大定时能力
位数 最大定时能力
8
13
T=(28 -0)×2μs=512μs
T=(213 -0)×2μs=16384μs=16.384ms
16
T=(216 -0)×2μs=131072μs=131.072ms
$include ORG LJMP ORG LJMP ORG MAIN: MOV MOV MOV SETB SETB SETB HERE: LJMP T0_ISR: MOV RETI END (STC12.INC) ;包含STC12C5410AD单片机寄存器定义文件 0000H MAIN ;转主程序 000BH ;定时器T0中断服务程序入口地址 T0_ISR ;转中断服务程序 0100H ;主程序的存放起始地址 MOV SP,#60H ;给栈指针赋初值 TMOD,#06H ;定时器T0工作于方式2 TL0,#0FFH ;送时间常数 TH0,#0FFH ET0 ;允许T0中断 EA ;CPU开中断 TR0 ;启动T0计数器 HERE ;等待 DEC A ;T0中断服务程序 P1,A ;累加器A内容减1送P1口
STC12C5410AD单片机内部有 ★两个16位的定时/计数器 ★四路可编程计数器阵列(Programmable Counter Array, PCA )/脉宽调制(Pulse Width Modulation,PWM)。
2/49
单片机应用技术
8.1
STC12C5410AD单片机的定时/计数器
1、定时/计数器的结构及工作原理
T0 定 器 式 时 方 P1.0
T1(P3.5)
T1 计 器 式 数 方
1)T0设置为16位定时器方式,当T0溢出时,执行T0的中断服务 程序。在T0的中断服务程序中将P1.0取反。这样在P1.0将输出一个方 波,其周期为T0定时时间的2倍。设T0的定时时间为TIME,则由P1.0 输出的方波的周期为2×TIME。 2)T1设置为16位计数器方式,将P1.0输出的方波接到T1的定时 器外部输入端T1(P3.5),作为定时/计数器1的外部计数脉冲,其每个 周期的下降沿使T1加1。设计数器T1的计数脉冲数为COUNT,则当T1 溢出时,总定时时间T为:T = 2×TIME×COUNT。
12/49
单片机应用技术
5、定时/计数器编程举例 定时/计数器的应用编程主要有两点:一是能正确初始化,包 括写入控制字,进行时间常数的计算并装入;二是中断服务程序的
编写,即在中断服务程序中编写实现定时完成的任务代码。一般情
况下,定时/计数器初始化部分的步骤大致如下: (1)设置工作方式,将控制字写入TMOD寄存器。 (2)设置分频方式,将控制字写入AUXR寄存器。默认的情 况是12分频(兼容传统8051单片机),因此,如果使用传统8051 单片机模式,可以不进行设置。 (3)把定时/计数初值装入TLX、THX寄存器。 (4)置位ETX允许定时/计数器中断(如果需要)。 (5)置位EA使CPU开放中断。 (6)置位TRX以启动定时/计数。
1)T0x12:定时器0速度控制位。 0:定时器0的速度是传统8051单片机定时器的速度,即12分频。 1:定时器0的速度是传统8051单片机定时器速度的12倍,即不分频。 2)T1x12:定时器1速度控制位。 0:定时器1的速度是传统8051单片机定时器的速度,即12分频。 1:定时器1的速度是传统8051单片机定时器速度的12倍,即不分频。
2)TR1:定时器T1的运行控制位。
3)TF0:定时器/计数器0溢出标志位。 4)TR0:定时器T0的运行控制位。 TCON的0~3位与外部中断有关。
6/49
单片机应用技术
AUXR:辅助寄存器
地址 8EH D7 T0x12 D6 T1x12 D5 UART_M0x6 D4 EADCI D3 ESPI D2 ELVDI D1 D0 复位值 000000XXB
OSC 12分频或不分频 C/T=0 C/T=1 控制信号 加1 计数器 TFX 中断
TX端
定时/计数器的核心是一个加1计数器,加1计数器的脉冲有两 个来源,一个是外部脉冲源,另一个是系统的时钟振荡器。计数 器对两个脉冲源之一进行输入计数,每输入一个脉冲,计数值加1 。当计数到计数器为全1时,再输入一个脉冲就使计数值回零,同 时从最高位溢出一个脉冲使特殊功能寄存器TCON(定时器控制 寄存器)的某一位TF0或TF1置1,作为计数器的溢出中断标志。
14/49
单片机应用技术
对应的C语言程序如下: #include “stc12.h” //包含STC12C5410AD单片机寄存器定义文件 unsigned char cnt; void timer0_ISR (void) interrupt 1 //T0中断函数 { cnt = cnt- -; //在C语言程序中,使用变量cnt代替汇编语言中的累加器A P1 = cnt; } void main(void) { cnt=0xff; TMOD=0x06; //定时器0工作于方式2 TL0=0xff; TH0=0xff; TR0=1; ET0=1; EA =1; while(1); //等待中断 }