单片机课件第6章
合集下载
精品课件-新编单片机原理与应用-第6章

内含OTP ROM、Flash ROM程序存储器的MCS-51及兼容芯片, 如87C51/52/54/58、89C51/52/54/58、87C51×2/52 ×2/54×2/58×2、89C51×2/52×2/54×2/58X2、AT89S51 /52/53已成为主流芯片,这类芯片无须扩展外部程序存储器, 一般只需扩展外部数据存储器和I/O端口。
1
第6章 数字信号输入/输出接口电路
➢6.1 开关信号的输入/输出方式 ➢6.2 I/O资源及扩展 ➢6.3 简单显示驱动电路 ➢6.4 LED数码管及其显示驱动电路 ➢6.5 LCD显示器件及其驱动电路 ➢6.6 键盘电路 ➢6.7 并行接口及应用实例 ➢6.8 光电耦合器件接口电路 ➢6.9 单片机与继电器接口电路 ➢6.10 电平转换电路
7
3. 矩阵输入/输出方式 将CPU I/O引脚分成两组,用n条引脚构成行线,m条引脚 构成列线,行、列交叉点就构成了所需的n × m个检测点。显 然,所需的I/O引脚数目为n + m,而检测点总数达到了n × m 个,如图6-1(c)所示。可见,I/O引脚的利用率较高,硬件开 销少,因此得到了广泛应用。
12
但在MCS-51系统中,没有独立的I/O端口地址空间,即I/O地址 空间是外部数据存储器空间的一部分,因此,只要系统中使用 了可寻址的I/O接口芯片,如8155、8255等,也不能将P0 口作 为一般意义上的I/O引脚使用,P2口也不能作为一般意义上I/O 引脚使用,除非扩展外部RAM和I/O端口地址小于256字节,P2 口才可作为一般意义上的I/O引脚使用(通过“MOVX @Ri, A” 和“MOVX A, @Ri”访问)。
Байду номын сангаас
5
在图6-1(a)中,P1.2作为输出引脚,驱动LED发光二极管。 如果CPU I/O引脚驱动电流有限,则必须外接驱动器,如集电 极开路输出的7407或7406等。
1
第6章 数字信号输入/输出接口电路
➢6.1 开关信号的输入/输出方式 ➢6.2 I/O资源及扩展 ➢6.3 简单显示驱动电路 ➢6.4 LED数码管及其显示驱动电路 ➢6.5 LCD显示器件及其驱动电路 ➢6.6 键盘电路 ➢6.7 并行接口及应用实例 ➢6.8 光电耦合器件接口电路 ➢6.9 单片机与继电器接口电路 ➢6.10 电平转换电路
7
3. 矩阵输入/输出方式 将CPU I/O引脚分成两组,用n条引脚构成行线,m条引脚 构成列线,行、列交叉点就构成了所需的n × m个检测点。显 然,所需的I/O引脚数目为n + m,而检测点总数达到了n × m 个,如图6-1(c)所示。可见,I/O引脚的利用率较高,硬件开 销少,因此得到了广泛应用。
12
但在MCS-51系统中,没有独立的I/O端口地址空间,即I/O地址 空间是外部数据存储器空间的一部分,因此,只要系统中使用 了可寻址的I/O接口芯片,如8155、8255等,也不能将P0 口作 为一般意义上的I/O引脚使用,P2口也不能作为一般意义上I/O 引脚使用,除非扩展外部RAM和I/O端口地址小于256字节,P2 口才可作为一般意义上的I/O引脚使用(通过“MOVX @Ri, A” 和“MOVX A, @Ri”访问)。
Байду номын сангаас
5
在图6-1(a)中,P1.2作为输出引脚,驱动LED发光二极管。 如果CPU I/O引脚驱动电流有限,则必须外接驱动器,如集电 极开路输出的7407或7406等。
单片机第6章课件

9:17:16
19/89
(5)PCA控制寄存器CCON CCON (地址为 D8H ,复位值为 00xx x000B ) 各位的定义如下
位号 位名称
D7 CF
D6 CR
D5 -
D4 -
D3 -Βιβλιοθήκη D2 CCF2D1 CCF1
D0 CCF0
9:17:16
20/89
位号 位名称
D7 CF
D6 CR
D5 -
9:17:16
23/89
(7)ADC控制寄存器ADC_CONTR ADC_CONTR ( 地 址 为 C5H , 复 位 值 为 0XX00000B)各位的定义如下:
位号 位名称 D7 ADC_POWER D6 SPEED1 D5 SPEED0 D4 ADC_FLAG D3 ADC_START D2 CHS2 D1 CHS1 D0 CHS0
TR0
IE1
IT1
IE0
IT0
9:17:16
7/89
位号 位名称
D7 TF1
D6 TR1
D5 TF0
D4 TR0
D3 IE1
D2 IT1
D1 IE0
D0 IT0
1 ) IT0 :外部中断触发方式控制位。可由软件置 1 或清“0”。 0:电平触发方式。当输入低电平时,置位IE0。 1:边沿触发方式。输入脚上电平由高到低的负跳 变时,置位IE0。 2)IT1:外部中断触发方式控制位,与IT0类似。
9:17:16
14/89
(3)串口2控制寄存器S2CON 寄存器 S2CON (地址为 9AH ,复位值为 00H ) 用于确定串口2的操作方式和控制串口2的某些 功能,并设有接收和发送中断标志( S2RI 及 S2TI)位。 S2CON各位的定义如下:
《单片机中断系统》PPT课件

在中断系统中,高优先级的中断请求能中断正在进行 的较低级的中断源处理。 中断系统
能实现中断功能并能对中断进行管理的硬件和软件称 为中断系统。
本章将讨论MCS51系列单片机的中断系统。
a
3
中断请求是在执行程序的过程中的随机发生的,中断系
统要解决的问题是:
1)CPU在不断的执行指令中,是如何检测到随机发生
中断服务程序 入口 0003H
0013H
000BH
001BH
002BH
0023H
6
(1)中断的允许和禁止——中断控制寄存器IE IE寄存器的各位对应相应的中断源,如果允许该中断
源中断则该位置1,禁止中断则该位0 。
EA
- ET2
ES
ET1
EX1 ET0 EX0
中断总 不 控允/禁 用
T2 允/禁
串行口 允/禁
的中断请求?
2)如何使中断的双方(CPU方和中断源方)均能人为
控制,允许中断或禁止中断。
3)由于中断产生的随机性,不可能在程序中安排调子
程序指令或转移指令,那么如何实现正确的转移,以便为
该中断源服务呢?
4)中断源有多个,而CPU只有一个,当有多个中断源
同时有中断请求时,用户怎么控制 CPU 按照自己的需要安
ET1
1 ES
1 ET2 EA
源允许 总允a许
IP PX0 1
0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
PT2 1 0
优先级
高
自
级
然
中
优
断
先
请
级
求
矢量地址
PC
硬件查询
能实现中断功能并能对中断进行管理的硬件和软件称 为中断系统。
本章将讨论MCS51系列单片机的中断系统。
a
3
中断请求是在执行程序的过程中的随机发生的,中断系
统要解决的问题是:
1)CPU在不断的执行指令中,是如何检测到随机发生
中断服务程序 入口 0003H
0013H
000BH
001BH
002BH
0023H
6
(1)中断的允许和禁止——中断控制寄存器IE IE寄存器的各位对应相应的中断源,如果允许该中断
源中断则该位置1,禁止中断则该位0 。
EA
- ET2
ES
ET1
EX1 ET0 EX0
中断总 不 控允/禁 用
T2 允/禁
串行口 允/禁
的中断请求?
2)如何使中断的双方(CPU方和中断源方)均能人为
控制,允许中断或禁止中断。
3)由于中断产生的随机性,不可能在程序中安排调子
程序指令或转移指令,那么如何实现正确的转移,以便为
该中断源服务呢?
4)中断源有多个,而CPU只有一个,当有多个中断源
同时有中断请求时,用户怎么控制 CPU 按照自己的需要安
ET1
1 ES
1 ET2 EA
源允许 总允a许
IP PX0 1
0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
PT2 1 0
优先级
高
自
级
然
中
优
断
先
请
级
求
矢量地址
PC
硬件查询
单片机第六章

IE中
– EA、ET0、ET1
IP中
– PT0、PT1
中断向量
– T0:000BH – T1:001BH – T2:002BH
方式0——13位定时器/计数器
ห้องสมุดไป่ตู้
方式1——16位定时器/计数器
8bits
方式2——自动重装初值的8位 定时器/计数器
方式3——T0变两个
T0成两个
– TL0同原T0,TH0只能用于定时
方式3——T0方式3,T1可012
T1
– 无法用中断
• 被TH0占用了
– 一般用作波特率发生器
定时器/计数器T2
16位的、具有自动重装载和捕获能力的定时器/ 计数器
3种工作方式
– 自动重装载 – 俘获 – 波特率发生器方式
输入引脚T2(P1.0)
– 外部计数脉冲输入端
输入引脚T2EX(P1.1)
单片微型计算机原理与接口技术
之
单片微机的定时器/计数器 原理及应用
王贤勇
概述
定时方法
– 硬件法 – 软件法 – 可编程定时器/计数器
优缺点? 计数方法
– 软件硬件结合(如……)
灵活性?
8051的定时器/计数器
两个、16位的
– T0和T1 – T2、T3:非标准配置
核心
– 加法计数器
计数
举例
例1
– 要求在 P1.0引脚上产生周期为2 ms的方波输出,已 知晶体振荡器的频率为fosc=6 MHz
例2
– 使用T1的方式1,设定1ms的定时。同样,在P1.0引 脚上产生周期为2 ms的方波输出,晶体振荡器的频 率为fosc=6 MHz
例3
– 欲用80C51产生两个方波,一个周期为200μs,另一 个周期为400μs,该80C51同时使用串行口,用定时 器/计数器作为波特率发生器。
– EA、ET0、ET1
IP中
– PT0、PT1
中断向量
– T0:000BH – T1:001BH – T2:002BH
方式0——13位定时器/计数器
ห้องสมุดไป่ตู้
方式1——16位定时器/计数器
8bits
方式2——自动重装初值的8位 定时器/计数器
方式3——T0变两个
T0成两个
– TL0同原T0,TH0只能用于定时
方式3——T0方式3,T1可012
T1
– 无法用中断
• 被TH0占用了
– 一般用作波特率发生器
定时器/计数器T2
16位的、具有自动重装载和捕获能力的定时器/ 计数器
3种工作方式
– 自动重装载 – 俘获 – 波特率发生器方式
输入引脚T2(P1.0)
– 外部计数脉冲输入端
输入引脚T2EX(P1.1)
单片微型计算机原理与接口技术
之
单片微机的定时器/计数器 原理及应用
王贤勇
概述
定时方法
– 硬件法 – 软件法 – 可编程定时器/计数器
优缺点? 计数方法
– 软件硬件结合(如……)
灵活性?
8051的定时器/计数器
两个、16位的
– T0和T1 – T2、T3:非标准配置
核心
– 加法计数器
计数
举例
例1
– 要求在 P1.0引脚上产生周期为2 ms的方波输出,已 知晶体振荡器的频率为fosc=6 MHz
例2
– 使用T1的方式1,设定1ms的定时。同样,在P1.0引 脚上产生周期为2 ms的方波输出,晶体振荡器的频 率为fosc=6 MHz
例3
– 欲用80C51产生两个方波,一个周期为200μs,另一 个周期为400μs,该80C51同时使用串行口,用定时 器/计数器作为波特率发生器。
单片机课件 第六章

;接通T0 接通T ;T0置初值 ;查询TF0标志 查询TF0 TF 溢出,关闭T ;T0溢出,关闭T0 ;P1.0的状态求反
假设系统时钟为 MHz, 编写定时器T 产生1 系统时钟为6 例 6 - 2 假设 系统时钟为 6 MHz, 编写定时器 T0 产生 1 秒 定时的程序 的程序. 定时的程序. (1)T0工作方式的确定 定时时间较长,采用哪一种工作方式? 定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出: 由各种工作方式的特性,可计算出: 方式0最长可定时16 384ms 16. ms; 方式0最长可定时16.384ms;
PT0 ACALL PT0M0 HERE: HERE: AJMP HERE PT0 TL0,#0 PT0M0: MOV TL0,#0CH TH0,#0 MOV TH0,#0FEH TR0 SETB TR0 ET0 SETB ET0 SETB EA RET ITOP: MOV TL0,#0CH TH0,#0 MOV TH0,#0FEH CPL P1.0 RETI
MOV TMOD,#01H ;设置T0为方式1 设置T0为方式1 T0为方式
SETB LOOP: LOOP: MOV MOV LOOP1:JNB LOOP1 CLR CPL SJMP
TR0 TR0 TH0,#0 TH0,#0FEH TL0 TL0,# 0CH TF0,LOOP1 TF0,LOOP1 TR0 TR0 P1.0 LOOP
2.T0工作在方式 下T1的各种工作方式 . 工作在方式 工作在方式3下 的各种工作方式 T1用作串行口的波特率发生器时 用作串行口的波特率发生器时, T0才工作在方 当T1用作串行口的波特率发生器时, T0才工作在方 式3 . T0处于方式 处于方式3 T1可定为方式 可定为方式0 方式1和方式2 T0处于方式3时, T1可定为方式0,方式1和方式2, 用来作为串行口的波特率发生器 作为串行口的波特率发生器, 用来作为串行口的波特率发生器,或不需要中断的 场合. 场合. T1工作在方式 工作在方式0 (1)T1工作在方式0
第6章(第5版)李朝青-单片机原理及接口技术(第5版)课件

• TMOD不能位寻址,只能用字节设置定时器的工作模
式,低半字节设置T0,高半字节设置T1。
• 89C51/S51系统复位时,TMOD的所有位被清0。
• TMOD各位的定义格式如 图6-4 所示。
• TMOD各位定义及具体的意义归纳如 图6-4所示。
12:51
单片机原理及接口技术
图6-4 工作模式寄存器TMOD的位定义
12:51
单片机原理及接口技术
§6.3 定时器的四种模式及应用
• • • • 89C51/S51 单片机的定时器/计数器 T0 和 T1 可由软件对特殊功能寄 存器TMOD中控制位C/T进行设置,以选择定时功能或计数功能。 对 M1 和 M0 位的设置对应于4种工作模式,即模式 0 、模式1 、模式 2 和模式3。 在模式0、模式1和模式2时,T0与T1的工作模式相同;在模式3时, 两个定时器的工作模式不同。 模式0为TL0(5位)、TH0(8位)方式,模式1为TL1(8位)、TH1 (8位)方式,其余完全相同。通常模式0很少用,常以模式1替代, 本章不再介绍模式0。
§6.1
定时器概述
• 89C51/S51/S51单片机片内有两个16位定时器/计 数器,即定时器0(T0)和定时器1(T1)。
• 它们都有定时和事件计数的功能,可用于定时控
制、延时、对外部事件计数和检测等场合。
12:51
单片机原理及接口技术
§6.1.1
1、计数工作方式
什么是计数和定时
• 所谓计数是指对外部事件进行计数。
41综合应用举例完单片机原理及接口技术单片机原理及接口技术64思考题与习题单片机用内部定时方法产生频率为100khz的等宽矩形波假定单片机的晶振频率为12mhz
单片机课件第六章

PART 02
单片机系统概述
单片机系统的组成
存储器
包括程序存储器、数据存储器 和特殊功能寄存器,用于存储 程序、数据和特殊功能信息。
定时器/计数器
提供精确的定时和计数功能, 用于实现各种定时和计数操作。
微处理器(CPU)
单片机的核心部件,负责执行 各种指令和处理数据。
输入/输出接口
提供与外部设备通信的接口电 路,如并行I/O口、串行通信 接口等。
PART 01
引言
章节概述
第六章主要内容
本章主要介绍单片机的中断系统,包括中断的概念、中断的处理过程、中断的 优先级管理等内容。
中断在单片机系统中的作用
中断是单片机实时处理外部或内部事件的一种重要机制,通过中断可以实现对 外部输入信号的实时响应,以及进行内部定时/计数等操作。
学习目标
掌握中断的基本概念
THANKS
感谢观看
REPORTING
为单片机系统提供稳定可靠的电源, 包括线性电源、开关电源等类型。
02
时钟电路
为单片机提供精确的时钟信号,确保 系统时序的正确性。
01
03
复位电路
在单片机系统上电或异常时提供复位 信号,使系统恢复到初始状态。
I/O接口电路
连接单片机与外部设备(如键盘、显 示器、传感器等)的接口电路,实现 数据的输入与输出。
汽车电子
用于实现汽车控制系 统的智能化和自动化, 如发动机控制、车身 控制等。
物联网应用
作为物联网终端节点, 实现数据采集、传输 和处理等功能。
PART 03
单片机系统的硬件设计
硬件设计的基本原则
模块化设计
将复杂的硬件系统划分为若干个相 对独立的模块,每个模块实现特定
精品课件-单片机原理及应用-第6章

第6章 中断及其应用
图6-1 中断的过程及基本概念描述
第6章 中断及其应用
单片机的中断系统一般允许多个中断源。当几个中断源同时 向MCU发出中断请求时,要求单片机既可以区分各个中断源的请 求,又要决策首先为哪一个中断源服务,这就要求进行中断优先 级的设定。单片机响应中断请求的顺序称为中断的优先级。
第6章 中断及其应用
图6-3 中断控制寄存器TCON
第6章 中断及其应用
IE1、IE0:对应 INT1 、 INT0 的外部中断标志位。当 外部触发中断后,置位相应的标志位,并且向CPU请求中断。响
应后,由硬件自动清零(边沿触发方式)。
IT1、IT0:外部中断源触发方式控制位。以IT1为例,
其控制方式为:
2. 自然优先级 多个中断源在同一个优先级上时中断源的内部查询顺序,称 为自然优先级,先查询到的被优先响应。8051中断源的自然优先 级如图6-7所示。 3. 中断嵌套 高优先级中断可以中断正在执行的低优先级的中断,除非这 个高优先级中断被屏蔽。同级或者低级的中断源不能中断正在执 行的中断服务程序,只能等到当前中断服务结束后,由CPU响应 中断,执行中断。这一点编程者一定要注意,特别是初学者。在 中断服务程序里要想到当前程序是否会被高优先级程序所嵌套中 断,并且在嵌套中是否会改变当前使用的寄存器或者存储单元的 值,是否允许嵌套等。这些都要认真考虑。
定时中断:包括T0和T1(T2在8052系列才有),中断产生 于MCU内部的定时/计数器的计数溢出。当定时/计数器工作于计 数方式时,可以由T0、T1从外部输入计数脉冲等。
串口中断:对应RX、TX。具体对应的管脚参见图1-4及管 脚说明。串口中断也是由内部电路产生的。当串口的缓冲区接收 到数据或发送数据结束时,便产生中断,通知MCU进行下一步处 理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MCS-51单片机内部有两个16位可编程的定时器/计数器, 即定时器T0和定时器T1(8032/8052/8752提供3个,除T0和T1外, 还有一个为定时器T2)。每个定时器/计数器的基本部件是两个 8位的计数器(其中TH1、TL1是T1的计数器,TH0、TL0是T0 的计数器)拼装而成。它们是采用加“1”方式工作的。 两个特殊功能寄存器(TMOD和TCON)用来对定时器/计数 器的工作方式进行选择和控制。 8051单片机的定时器/计数器结构如图6-1所示。
第6章 MCS-51系列单片机的定时器/计数器
图6-3 定时器/计数器0工作模式0(13位计数器)
第6章 MCS-51系列单片机的定时器/计数器
当 GATE=0 时,只要 TCON 中的 TR0 为 1,TL0 及 TH0 组 成的 13 位计数器就开始计数;当 GATE=1 时,此时仅 TR0=1 仍 不能使计数器计数,还需要 INT0 引脚为 1 才能使计数器工作。 由此可知, GATE=1 和 TR0=1 时, 是否计数取决于 INT0 引 当 T0 脚的信号, INT0 由 0 变 1 时, 当 开始计数; INT0 由 1 变 0 时, 当 停止计数。这样就可以用来测量在 INT0 端出现的脉冲宽度。 当 13 位计数器从 0 或设定的初值,加 1 到全“1”以后,再 加 1 就产生溢出。这时,置 TCON 的 TF0 位为 1,同时把计数器 变为全“0” 。
第6章 MCS-51系列单片机的定时器/计数器
系列单片机的定时器/计数器 第6章 MCS-51系列单片机的定时器 计数器 章 系列单片机的定时器
6.1 定时器/计数器结构 6.2 定时器/计数器的初始化 6.3 定时器/计数器的应用 习题与思考题
第6章 MCS-51系列单片机的定时器/计数器
6.1 定时器 计数器结构 定时器/计数器结构
第6章 MCS-51系列单片机的定时器/计数器
6.1.2 定时器/计数器的工作模式
如前所述, MCS-51 片内的定时器/计数器的工作模式可 以通过对特殊功能寄存器 TMOD 中的控制位 C/ T 的设置来 选择,通过对 M1、M0 两位的设置来选择四种工作模式, 下面以 T0 为例加以说明。 1.模式 0 当 M1M0 设置为 00 时,定时器选定为模式 0 工作。在 这种模式下, 位寄存器只用了 13 位, 16 TL0 的高 3 位未用。 由 TH0 的 8 位和 TL0 的低 5 位组成一个 13 位计数器。图 6-3 给出了定时器/计数器 T0 在模式 0 时的工作结构图(T1 与此相同,略)。
第6章 MCS-51系列单片机的定时器/计数器
如果计数初值设定为 C,则计数器从初值 C 开始作 加 1 计数到计满为全 1 所需要的计数值设定为 D,由此 便可得到如下的计算通式: D=M-C ① 式中,M 为计数器模值,该值和计数器工作模式有关。 在模式 0 时,M 为 213;在模式 1 时,M 为 216;在模式 2 和模式 3 时,M 为 28。
D6 TR1 8EH
D5 IF0 8DH
D4 TR0 8CH
D3 IE1 8BH
D2 IT1 8AH
D1 IE0 89H
D0 IT0 88H
第6章 MCS-51系列单片机的定时器/计数器
其中 D0~D3 位与外部中断有关, 已在中断系统一节中介绍。 ① TR0:T0 的运行控制位。该位置 1 或清零用来实现启动 计数或停止计数。 ② TF0:T0 的溢出中断标志位。当 T0 计数溢出时由硬件 自动置 1;当中断开放时,在 CPU 中断响应时由硬件自动把该 位清零。此位也可以通过查询方式进行定时器/计数器处理。 ③ TR1:T1 的运行控制位,功能同 TR0。 ④ TF1:T1 的溢出中断标志位,功能同 TF0。 TMOD 和 TCON 寄存器在复位时其每一位均清零。
第6章 MCS-51系列单片机的定时器/计数器 图6-5给出了定时器/计数器T0在模式3时的工作结构图。 通常,当T1用作串行口波特率发生器时,T0才定义为模式 3,以增加一个8位计数器。
第6章 MCS-51系列单片机的定时器/计数器
图6-5 定时器/计数器0工作模式3 (两个8位定时器/计数器)
第6章 MCS-51系列单片机的定时器/计数器 寄存器中每位的定义如下(高4位用于定时器1,低4位用于 定时器0): ① M1,M0:定时器/计数器四种工作模式选择如表6-1所 示。
表 6-1 工作方式选择表
M1 0 0 1 1 M0 0 1 0 1 方 式 0 1 2 3 13 位定时器/计数器 16 位定时器/计数器 自动装入时间常数的 8 位定时器/计数器 对 T0 分为两个 8 位独立计数器;对 T1 置方式 3 时停止工作 说 明
第6章 MCS-51系列单片机的定时器/计数器
图6-4 定时器/计数器0工作模式2 (8位自动装载模式)
第6章 MCS-51系列单片机的定时器/计数器
4.模式 3 模式 3 对定时器 T0 和定时器 T1 是不相同的。若 T1 设置为模 式 3,则停止工作(其效果与 TR1=0 相同)。所以模式 3 只适用于 T0。 模式 3 使 MCS-51 具有三个定时器/计数器(增加了一个附加的 8 位定时器/计数器)。 T0 设置为模式 3 时, 当 将使 TL0 和 TH0 成为两 个相互独立的 8 位计数器,TL0 利用了 T0 本身的一些控制(C/ T , GATE,TR0, INT0 和 TF0)方式,它的操作与模式 0 和模式 1 类似。 而 TH0 被规定为用作定时器功能,对机器周期计数,并借用了 T1 的控制位 TR1 和 TF1。在这种情况下,TH0 控制了 T1 的中断。这 时 T1 还可以设置为模式 0~2,用于任何不需要中断控制的场合, 或用作串行口的波特率发生器。
第6章 MCS-51系列单片机的定时器/计数器 2) 定时器控制寄存器TCON 特殊功能寄存器TCON用于控制定时器的操作及对定时器 中断的控制,字节地址为88H,位地址是88H~8FH(TCON.0~ TCON.7)。TCON寄存器中与定时、计数有关的位如下所示:
D7 TCON 位地址 IF1 8FH
第6章 MCS-51系列单片机的定时器/计数器
6.2 定时器 计数器的初始化 定时器/计数器的初始化
1.初始化步骤 . MCS-51内部定时器/计数器是可编程的,其工作方式和工 作过程均可由MCS-51通过程序对它进行设定和控制。因此, MCS-51在定时器/计数器工作前必须先对它进行初始化。初始 化步骤为: (1) 根据题目要求先给定时器方式寄存器TMOD送一个方 式控制字,以设定定时器/计数器的相应工作方式。 (2) 根据实际需要给定时器/计数器选送定时器初值或计数 器初值,以确定需要定时的时间和需要计数的初值。
第6章 MCS-51系列单片机的定时器/计数器
图6-1 8051单片机定时器/计数器结构示意图
第6章 MCS-51系列单片机的定时器/计数器 6.1.1 定时器 计数器的工作原理与控制寄存器 定时器/计数器的工作原理与控制寄存器 1.定时器/计数器的工作原理 .定时器 计数器的工作原理 MCS-51单片机内部有两个16位可编程的定时器/计数器,既 可用作定时器方式,又可用作计数器方式。定时器/计数器有四种 工作模式,其工作方式的选择及控制都由两个特殊功能寄存器 (TMOD和TCON)的内容来决定。 当特殊功能寄存器TMOD决定定时器/计数器工作于定时状态 时,此时输入的时钟脉冲是由晶体振荡器的输出经12分频后得到 的,所以定时器也可看做是对计算机机器周期的计数器(因为每个 机器周期包含12个振荡周期,故每一个机器周期定时器加1,可 以把输入的时钟脉冲看成机器周期信号),故其定时计数频率为晶 振频率的1/12。如果晶振频率为12 MHz,则定时器每接收一个输 入脉冲的时间为1 µs,即在此脉冲频率下,定时器计数初值加1。
第6章 MCS-51系列单片机的定时器/计数器 解决第一个问题只要给定时器/计数器一个非零初值,开 定时器/计数器时,定时器/计数器不从0开始,而是从初值开始, 这样在定时方式时就可得到比定时器/计数器最长的定时时间 还要短的时间和比定时器/计数器最多的计数次数还要少的计 数次数。解决第二个问题就要用到循环程序了,循环几次就相 当于乘几。例如,要产生1 s的定时,可先用定时器产生50 ms 的定时,再循环20次(因为1 s = 1000 ms),也可用其他的组 合。有时也可采用中断来实现。由上可见,解决问题的基本出 路在于初值的计算,下面就来具体讨论计数器的初值计算和最 大值的计算。
第6章 MCS-51系列单片机的定时器/计数器 (3) 根据需要给中断允许寄存器IE选送中断控制字和给中 断优先级寄存器IP选送中断优先级字,以开放相应中断和设定 中断优先级。 (4) 给定时器控制寄存器TCON送命令字,以启动或禁止定 时器/计数器的运行。
第6章 MCS-51系列单片机的定时器/计数器 2.计数器初值的计算 . 定时器/计数器可用软件随时随地启动和关闭,启动时它 就自动加1计数,一直计到满,即全为1,若不停止,计数值从 全1变为全0,同时将计数溢出位置1并向CPU发出定时器溢出 中断申请。对于各种不同的工作模式,最大的定时时间和计数 数值不同。这里在使用中就会出现两个问题: 一是要产生比定时器最长的定时时间还要短的时间和计数 器最多的计数次数还要少的计数次数; 二是要产生比定时器最长的定时时间还要长的时间和计数 器最多的计数次数还要多的计数次数。
第6章 MCS-51系列单片机的定时器/计数器 2.模式1 .模式 模式1和模式0的工作相同,唯一的差别是TH0和TL0组成 一个16位计数器。工作结构图可以参考图6-3。 3.模式2 .模式 模式2把TL0配置成一个可以自动恢复初值(初始常数自动 重新装入)的8位计数器,TH0作为常数缓冲器,TH0由软件预 置值。当TL0产生溢出时,一方面使溢出标志TF0置1,同时又 把TH0中的8位数据重新装入TL0中。 模式2常用于定时控制,作为串行口波特率发生器。图6-4 给出了定时器/计数器T0在模式2时的工作结构图(T1与此相同, 略)。
第6章 MCS-51系列单片机的定时器/计数器
图6-3 定时器/计数器0工作模式0(13位计数器)
第6章 MCS-51系列单片机的定时器/计数器
当 GATE=0 时,只要 TCON 中的 TR0 为 1,TL0 及 TH0 组 成的 13 位计数器就开始计数;当 GATE=1 时,此时仅 TR0=1 仍 不能使计数器计数,还需要 INT0 引脚为 1 才能使计数器工作。 由此可知, GATE=1 和 TR0=1 时, 是否计数取决于 INT0 引 当 T0 脚的信号, INT0 由 0 变 1 时, 当 开始计数; INT0 由 1 变 0 时, 当 停止计数。这样就可以用来测量在 INT0 端出现的脉冲宽度。 当 13 位计数器从 0 或设定的初值,加 1 到全“1”以后,再 加 1 就产生溢出。这时,置 TCON 的 TF0 位为 1,同时把计数器 变为全“0” 。
第6章 MCS-51系列单片机的定时器/计数器
系列单片机的定时器/计数器 第6章 MCS-51系列单片机的定时器 计数器 章 系列单片机的定时器
6.1 定时器/计数器结构 6.2 定时器/计数器的初始化 6.3 定时器/计数器的应用 习题与思考题
第6章 MCS-51系列单片机的定时器/计数器
6.1 定时器 计数器结构 定时器/计数器结构
第6章 MCS-51系列单片机的定时器/计数器
6.1.2 定时器/计数器的工作模式
如前所述, MCS-51 片内的定时器/计数器的工作模式可 以通过对特殊功能寄存器 TMOD 中的控制位 C/ T 的设置来 选择,通过对 M1、M0 两位的设置来选择四种工作模式, 下面以 T0 为例加以说明。 1.模式 0 当 M1M0 设置为 00 时,定时器选定为模式 0 工作。在 这种模式下, 位寄存器只用了 13 位, 16 TL0 的高 3 位未用。 由 TH0 的 8 位和 TL0 的低 5 位组成一个 13 位计数器。图 6-3 给出了定时器/计数器 T0 在模式 0 时的工作结构图(T1 与此相同,略)。
第6章 MCS-51系列单片机的定时器/计数器
如果计数初值设定为 C,则计数器从初值 C 开始作 加 1 计数到计满为全 1 所需要的计数值设定为 D,由此 便可得到如下的计算通式: D=M-C ① 式中,M 为计数器模值,该值和计数器工作模式有关。 在模式 0 时,M 为 213;在模式 1 时,M 为 216;在模式 2 和模式 3 时,M 为 28。
D6 TR1 8EH
D5 IF0 8DH
D4 TR0 8CH
D3 IE1 8BH
D2 IT1 8AH
D1 IE0 89H
D0 IT0 88H
第6章 MCS-51系列单片机的定时器/计数器
其中 D0~D3 位与外部中断有关, 已在中断系统一节中介绍。 ① TR0:T0 的运行控制位。该位置 1 或清零用来实现启动 计数或停止计数。 ② TF0:T0 的溢出中断标志位。当 T0 计数溢出时由硬件 自动置 1;当中断开放时,在 CPU 中断响应时由硬件自动把该 位清零。此位也可以通过查询方式进行定时器/计数器处理。 ③ TR1:T1 的运行控制位,功能同 TR0。 ④ TF1:T1 的溢出中断标志位,功能同 TF0。 TMOD 和 TCON 寄存器在复位时其每一位均清零。
第6章 MCS-51系列单片机的定时器/计数器 图6-5给出了定时器/计数器T0在模式3时的工作结构图。 通常,当T1用作串行口波特率发生器时,T0才定义为模式 3,以增加一个8位计数器。
第6章 MCS-51系列单片机的定时器/计数器
图6-5 定时器/计数器0工作模式3 (两个8位定时器/计数器)
第6章 MCS-51系列单片机的定时器/计数器 寄存器中每位的定义如下(高4位用于定时器1,低4位用于 定时器0): ① M1,M0:定时器/计数器四种工作模式选择如表6-1所 示。
表 6-1 工作方式选择表
M1 0 0 1 1 M0 0 1 0 1 方 式 0 1 2 3 13 位定时器/计数器 16 位定时器/计数器 自动装入时间常数的 8 位定时器/计数器 对 T0 分为两个 8 位独立计数器;对 T1 置方式 3 时停止工作 说 明
第6章 MCS-51系列单片机的定时器/计数器
图6-4 定时器/计数器0工作模式2 (8位自动装载模式)
第6章 MCS-51系列单片机的定时器/计数器
4.模式 3 模式 3 对定时器 T0 和定时器 T1 是不相同的。若 T1 设置为模 式 3,则停止工作(其效果与 TR1=0 相同)。所以模式 3 只适用于 T0。 模式 3 使 MCS-51 具有三个定时器/计数器(增加了一个附加的 8 位定时器/计数器)。 T0 设置为模式 3 时, 当 将使 TL0 和 TH0 成为两 个相互独立的 8 位计数器,TL0 利用了 T0 本身的一些控制(C/ T , GATE,TR0, INT0 和 TF0)方式,它的操作与模式 0 和模式 1 类似。 而 TH0 被规定为用作定时器功能,对机器周期计数,并借用了 T1 的控制位 TR1 和 TF1。在这种情况下,TH0 控制了 T1 的中断。这 时 T1 还可以设置为模式 0~2,用于任何不需要中断控制的场合, 或用作串行口的波特率发生器。
第6章 MCS-51系列单片机的定时器/计数器 2) 定时器控制寄存器TCON 特殊功能寄存器TCON用于控制定时器的操作及对定时器 中断的控制,字节地址为88H,位地址是88H~8FH(TCON.0~ TCON.7)。TCON寄存器中与定时、计数有关的位如下所示:
D7 TCON 位地址 IF1 8FH
第6章 MCS-51系列单片机的定时器/计数器
6.2 定时器 计数器的初始化 定时器/计数器的初始化
1.初始化步骤 . MCS-51内部定时器/计数器是可编程的,其工作方式和工 作过程均可由MCS-51通过程序对它进行设定和控制。因此, MCS-51在定时器/计数器工作前必须先对它进行初始化。初始 化步骤为: (1) 根据题目要求先给定时器方式寄存器TMOD送一个方 式控制字,以设定定时器/计数器的相应工作方式。 (2) 根据实际需要给定时器/计数器选送定时器初值或计数 器初值,以确定需要定时的时间和需要计数的初值。
第6章 MCS-51系列单片机的定时器/计数器
图6-1 8051单片机定时器/计数器结构示意图
第6章 MCS-51系列单片机的定时器/计数器 6.1.1 定时器 计数器的工作原理与控制寄存器 定时器/计数器的工作原理与控制寄存器 1.定时器/计数器的工作原理 .定时器 计数器的工作原理 MCS-51单片机内部有两个16位可编程的定时器/计数器,既 可用作定时器方式,又可用作计数器方式。定时器/计数器有四种 工作模式,其工作方式的选择及控制都由两个特殊功能寄存器 (TMOD和TCON)的内容来决定。 当特殊功能寄存器TMOD决定定时器/计数器工作于定时状态 时,此时输入的时钟脉冲是由晶体振荡器的输出经12分频后得到 的,所以定时器也可看做是对计算机机器周期的计数器(因为每个 机器周期包含12个振荡周期,故每一个机器周期定时器加1,可 以把输入的时钟脉冲看成机器周期信号),故其定时计数频率为晶 振频率的1/12。如果晶振频率为12 MHz,则定时器每接收一个输 入脉冲的时间为1 µs,即在此脉冲频率下,定时器计数初值加1。
第6章 MCS-51系列单片机的定时器/计数器 解决第一个问题只要给定时器/计数器一个非零初值,开 定时器/计数器时,定时器/计数器不从0开始,而是从初值开始, 这样在定时方式时就可得到比定时器/计数器最长的定时时间 还要短的时间和比定时器/计数器最多的计数次数还要少的计 数次数。解决第二个问题就要用到循环程序了,循环几次就相 当于乘几。例如,要产生1 s的定时,可先用定时器产生50 ms 的定时,再循环20次(因为1 s = 1000 ms),也可用其他的组 合。有时也可采用中断来实现。由上可见,解决问题的基本出 路在于初值的计算,下面就来具体讨论计数器的初值计算和最 大值的计算。
第6章 MCS-51系列单片机的定时器/计数器 (3) 根据需要给中断允许寄存器IE选送中断控制字和给中 断优先级寄存器IP选送中断优先级字,以开放相应中断和设定 中断优先级。 (4) 给定时器控制寄存器TCON送命令字,以启动或禁止定 时器/计数器的运行。
第6章 MCS-51系列单片机的定时器/计数器 2.计数器初值的计算 . 定时器/计数器可用软件随时随地启动和关闭,启动时它 就自动加1计数,一直计到满,即全为1,若不停止,计数值从 全1变为全0,同时将计数溢出位置1并向CPU发出定时器溢出 中断申请。对于各种不同的工作模式,最大的定时时间和计数 数值不同。这里在使用中就会出现两个问题: 一是要产生比定时器最长的定时时间还要短的时间和计数 器最多的计数次数还要少的计数次数; 二是要产生比定时器最长的定时时间还要长的时间和计数 器最多的计数次数还要多的计数次数。
第6章 MCS-51系列单片机的定时器/计数器 2.模式1 .模式 模式1和模式0的工作相同,唯一的差别是TH0和TL0组成 一个16位计数器。工作结构图可以参考图6-3。 3.模式2 .模式 模式2把TL0配置成一个可以自动恢复初值(初始常数自动 重新装入)的8位计数器,TH0作为常数缓冲器,TH0由软件预 置值。当TL0产生溢出时,一方面使溢出标志TF0置1,同时又 把TH0中的8位数据重新装入TL0中。 模式2常用于定时控制,作为串行口波特率发生器。图6-4 给出了定时器/计数器T0在模式2时的工作结构图(T1与此相同, 略)。