单片机第六章
合集下载
单片机讲义1(第六章定时器计数器)
脚与T0的逻辑关系框图如下图所示。
定时器/计数器T0分为2 个独立的8位计数器:TL0和 TH0。 TL0使用T0的状态控制位 C/ T GATE、TR0、 INT0 ,而TH0被 固定为1个8位定时器(不能 为外部计数模式),并使用 定时器T1的状态控制位TR1 和TF1,同时占用定时器T1 的中断请求源TF1。
6.2.2 方式1
6.2.3 方式 2
6.2.4 方式 3
在方式3下,T1只作 波特率发生器。在这样 情况下,T1将TF1、TR1 资源出借给T0使用。因 此,在方式3下,T0可以 构成两个独立的计数器 结构,如图6-6(a)和 图6-6(b)所示。
TL0构成一个完整的8 位定时器/计数器,而 TH0则是一个仅能对 fOSC/12脉冲计数的8位 定时器。
(l)计算初值 初值的计算公式为: X 2 n
设:需要装入T0的初值为X,则有:
t f
osc
12
16
其中:n=13、16、8 (由计数器的的工作方 式来决定n 的取值)
∵X= 2
n
t . f osc 现 n 16 12
t 1 ms
f osc 6 M Hz
∴X= 2
∵ X= 2
n
t . f osc 12
现 n 16 f osc 6 M Hz t 100 ms
所以:X=15 536=3CB0H 因此:TH0=3CH, TL0=B0H
(3)10次计数的实现 对于中断10次计数,可使T0工作在定时方式,采用循环程序的方法实现。 (4)程序设计 ORG 0000H RESET:LJMP MAIN ;上电,转主程序入口MAIN 0RG 000BH ;T0的中断入口地址 LJMP IT0P ;转T0中断处理程序ITOP ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针 M0V B,#0AH ;设循环次数10次
单片机第六章定时器
计数溢出时,TFx置位。如果中断允许,CPU响应中 断并转入中断服务程序,由内部硬件清TFx。TFx也可以 由程序查询和清零。
这种方式下,计数寄存器由13位组成,即THx高八位(作计数器)
和TLx的低5位构成。TLx的高3位未用。
计数时,TLx的低5位溢出后向THx进位,THx溢出后 将TFx置位,并向CPU申请中断。
用软件控制,置 l时,启动 T1;清0时,停止 T1。
TF0(TCON.5)——T0的溢出标志。
TR0(TCON.4)——T0的运行控制位。
用软件控制,置1时,启动T0;清 0时,停止 T0。
• IE1(TCON.3)——外部中断1中断请求标志位。
• IE0(TCON.1)——外部中断0中断请求标志位。
器之外,还可用作串行接口的波特率发生器。
6.2
定时器/计数器T0、T1
T0、T1 的内部结构简图示于图6-1中。从图中 可以看出,T0、T1由以下几部分组成:
• 计数器TH0、TL0和TH1、TL1;
•
•
特殊功能寄存器TMOD、TCON;
时钟分频器;
•
输入引脚T0、T1。
6.2.1 与定时器/计数器T0、T1有关的 特殊功能寄存器
⑵定时器/计数器T1
T0方式3时,T1可以工作在方式0、1、2三种方式 T1的结构如图6–6所示。 由于T0占用了原来T1的启动位TR1和溢出标志TF1, 所以此时T1溢出时不能置位溢出标志,不能申请中断, 其溢出信号送给串行口,此时T1作为波特率发生器。
T1的启停由写入方式字控制,当写入方式0/1/2 时,T1立即启动,写入方式3 时,立即停止工作。
分析:设置T0工作在方式2,计数功能,每记满100个外 部脉冲,从P1.0输出一个低电平脉冲信号(简化的打包 操作)。
这种方式下,计数寄存器由13位组成,即THx高八位(作计数器)
和TLx的低5位构成。TLx的高3位未用。
计数时,TLx的低5位溢出后向THx进位,THx溢出后 将TFx置位,并向CPU申请中断。
用软件控制,置 l时,启动 T1;清0时,停止 T1。
TF0(TCON.5)——T0的溢出标志。
TR0(TCON.4)——T0的运行控制位。
用软件控制,置1时,启动T0;清 0时,停止 T0。
• IE1(TCON.3)——外部中断1中断请求标志位。
• IE0(TCON.1)——外部中断0中断请求标志位。
器之外,还可用作串行接口的波特率发生器。
6.2
定时器/计数器T0、T1
T0、T1 的内部结构简图示于图6-1中。从图中 可以看出,T0、T1由以下几部分组成:
• 计数器TH0、TL0和TH1、TL1;
•
•
特殊功能寄存器TMOD、TCON;
时钟分频器;
•
输入引脚T0、T1。
6.2.1 与定时器/计数器T0、T1有关的 特殊功能寄存器
⑵定时器/计数器T1
T0方式3时,T1可以工作在方式0、1、2三种方式 T1的结构如图6–6所示。 由于T0占用了原来T1的启动位TR1和溢出标志TF1, 所以此时T1溢出时不能置位溢出标志,不能申请中断, 其溢出信号送给串行口,此时T1作为波特率发生器。
T1的启停由写入方式字控制,当写入方式0/1/2 时,T1立即启动,写入方式3 时,立即停止工作。
分析:设置T0工作在方式2,计数功能,每记满100个外 部脉冲,从P1.0输出一个低电平脉冲信号(简化的打包 操作)。
第6章 单片机的定时器计数器
T1(P 3.5)
T0(P 3.4)
T0 (8CH) (8AH)
TH0(8位) TL0 (8位)
7 0 7 0
T1 (8DH) (8BH)
TH1(8位) TL1 (8位)
7
0
7
0
CPU
溢 启 出 动 溢 出
启 动
工作方式 TMOD(89H)
工 作 方 式
TCON(88H)
定时/计数器逻辑结构
T0
2个16位T/C分别由8位计数器TH0、TL0、 TH1、TL1组成 “+1” 计数器 T1 控制寄存器TCON:控制T/C的启停、中断等
第6章 单片机的定时器/计数器
6.1 定时/计数器的结构与工作原理
6.2 定时器/计数器的控制
6.3 定时/计数器的工作方式
6.4 定时/计数器的编程和应用
实现定时一般有三种方法: 利用软件实现(延时程序); 优点:简单,控制方便;缺点:CPU效率低。 硬件实现,专门设计一个单稳态定时器: 优点:CPU效率高;缺点:修改参数麻烦。 利用计数器实现 1us 输入脉冲 计算机一般利用第三种方法实现 8位 计数器 预置数 256us 溢出
控制T0
GATE C/T M1 M0 0 0 0 1
查 询 方 式
#include <reg51.h> sbit P1_0=P1^0; void main (void) { TMOD=0x01; //定时器0方式1 TR0=1; for( ; ; ) { TH0=(65536-1000)/256; //置计数初值 TL0=(65536-1000)%256; while(!TF0); //查询等待TF0复位 P1_0=!P1_0; //定时时间到P1.0反相 TF0=0; //软件清TF0 } }
T0(P 3.4)
T0 (8CH) (8AH)
TH0(8位) TL0 (8位)
7 0 7 0
T1 (8DH) (8BH)
TH1(8位) TL1 (8位)
7
0
7
0
CPU
溢 启 出 动 溢 出
启 动
工作方式 TMOD(89H)
工 作 方 式
TCON(88H)
定时/计数器逻辑结构
T0
2个16位T/C分别由8位计数器TH0、TL0、 TH1、TL1组成 “+1” 计数器 T1 控制寄存器TCON:控制T/C的启停、中断等
第6章 单片机的定时器/计数器
6.1 定时/计数器的结构与工作原理
6.2 定时器/计数器的控制
6.3 定时/计数器的工作方式
6.4 定时/计数器的编程和应用
实现定时一般有三种方法: 利用软件实现(延时程序); 优点:简单,控制方便;缺点:CPU效率低。 硬件实现,专门设计一个单稳态定时器: 优点:CPU效率高;缺点:修改参数麻烦。 利用计数器实现 1us 输入脉冲 计算机一般利用第三种方法实现 8位 计数器 预置数 256us 溢出
控制T0
GATE C/T M1 M0 0 0 0 1
查 询 方 式
#include <reg51.h> sbit P1_0=P1^0; void main (void) { TMOD=0x01; //定时器0方式1 TR0=1; for( ; ; ) { TH0=(65536-1000)/256; //置计数初值 TL0=(65536-1000)%256; while(!TF0); //查询等待TF0复位 P1_0=!P1_0; //定时时间到P1.0反相 TF0=0; //软件清TF0 } }
单片机教程 第6章-中断系统
TCON位功能:
TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。
③ IE1 —— 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1 ④ IE0 —— 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
=1:在INT0/INT1端申请中断的信号负跳变有效.
6.2
51单片机的中断系统
3、串行口中断设定
串行控制寄存器SCON控制字,字节地址:98H
SCON 位名称 位地址 功能 D7 D6 — — — — — — D5 — — — D4 — — — D3 — — — D2 — — — D1 TI 99H 串行发送 中断标志 D0 RI 98H 串行接收 中断标志
6.1
中断的概念
6.1.3 中断的分类 可分为三类: * 可屏蔽中断:由CPU的可屏蔽中断引脚INT引起的 中断。 * 非屏蔽中断:由CPU的非屏蔽中断引脚NMI引起的 中断(8086CPU)。 * 软件中断:由中断指令引起的中断(8086CPU)。 • 51单片机的中断可以分为:
①外部中断,由外部可屏蔽中断和外部计数器中断组成; ②内部中断,由内部定时器、串口传输中断等组成。
输入引脚。允许用户设定外部中断源以低电平或 者是负跳变方式触发。
6.2
51单片机的中断系统
②定时器溢出中断源:内部中断,51内部有两
个16位定时/计数器,它们由内部定时脉冲(主脉 冲12分频)或外部引脚T0、T1输入的外部计数脉 冲计数。当计数值溢出时,产生中断请求。这两 个16位定时/计数器的初值可由用户设定。
单片机原理及应用教程(C语言版)-第6章 MCS-51单片机的定时器计数器
6.1.1 单片机定时器/计数器的结构
MCS-51单片机定时器/计数器的原理结构图
T0(P3.4) 定时器0 定时器1 T1(P3.5) 定时器2 T2EX(P1.1)
T2(P1.0)
TH0
溢 出 控 制
TL0
模 式 溢 出
TH1
控 制
TL1
模 式 溢 出
TH2
TL2
重装 捕获
RCAP 2H
RCAP 2L
6.2.2 T0、T1的工作模式
信号源 C/T设为1,为计数器,用P3.4引脚脉冲 C/T设为0,为定时器,用内部脉冲 运行控制 GATE=1,由外部信号控制运行 此时应该设置TR0=1 P3.2引脚为高电平,T0运行 GATE=0, 由内部控制运行 TR0设置为1,T0运行
6.2.2 T0、T1的工作模式
6.2.3 T0、T1的使用方法
例6-1 对89C52单片机编程,使用定时器/计 数器T0以模式1定时,以中断方式实现从P1.0引 脚产生周期为1000µ s的方波。设单片机的振荡频 率为12MHz。 分析与计算 (1)方波产生原理 将T0设为定时器,计算出合适的初值,定 时到了之后对P1.0引脚取反即可。 (2)选择工作模式 计算计数值N
6.2.1 T0、T1的特殊功能寄存器
TR1、TR0:T1、T0启停控制位。 置1,启动定时器; 清0,关闭定时器。
注意: GATE=1 ,TRx与P3.2(P3.3)的配合控制。
IE1、IE0:外部中断1、0请求标志位 IT1、IT0:外部中断1、0触发方式选择位
6.2.2 T0、T1的工作模式
6.2.1 T0、T1的特殊功能寄存器
GATE=0,禁止外部信号控制定时器/计数器。 C/T——定时或计数方式选择位 C/T=0,为定时器;C/T=1,为计数器 计数采样:CPU在每机器周期的S5P2期间,对 计数脉冲输入引脚进行采样。
第六章_单片机最小系统
2. 键盘的查询与中断
3. 键盘管理中的键输入与键操作
7.2.3 并行I/O口扩展的LED显示电路 1. LED 显示器及显示原理 (1)LED显示器结构 (2) 显示器原理与显示段码 2. LED显示器显示方式
7.3 并行总线外围扩展技术 7.3.1 并行总线扩展基本问题 1. 并行总线扩展电路设计
80C51单片机最小系统
1、最小系统概念 最小系统概念
单片机最小系统,或者称为最小应用系统 是指用最少的元 单片机最小系统 或者称为最小应用系统,是指用最少的元 或者称为最小应用系统 件组成的单片机可以工作的系统.最小系统结构与单片机的 件组成的单片机可以工作的系统 最小系统结构与单片机的 类型有关。 类型有关。 对51系列单片机来说 最小系统一般应该包括 单片机、晶 系列单片机来说,最小系统一般应该包括 单片机、 系列单片机来说 最小系统一般应该包括:单片机 振电路、复位电路、按键输入、显示输出等。 振电路、复位电路、按键输入、显示输出等。
外部时钟 XTAL1 XTAL2
XTAL2
15~45pf× 15~45pf×2
1~12MHz(MCS-51) 12MHz(MCS-51) 24MHz(Atmel-89C) 0~24MHz(Atmel-89C)
(1)片内时钟振荡器与外部谐振电路 片内振荡器与外部谐振叫路构成了一个并联谐振的时钟 振荡电路。PD端可由内部软件编程来控制振荡电路的 启停。
(4) 电源监测复位 4. 应用系统中多复位要求的处理
第7章
• 单片机的并行扩展技术
7.1 并行外围扩展方式 有I/O方式和总线方式 7.1.1 并行I/O口与并行扩展总线 1. 两种扩展方式
2. 扩展方式选择 主要由所选择的外围器件决定。 3. 并行总线的I/O虚拟 通过I/O口虚拟总线时序及操作控制方式来扩展并 行总线接口。 7.1.2 并行I/O的扩展特性 输出锁存、握手交互、指令控制实现的时序协议 7.1.3 并行总线扩展特性 三态输出、时序交互、总线协议的CPU的时序自 动运行
单片机教程 第6章
第6章
中断系统与 定时/计数器
6.1中断系统
6.2 定时/计数器
第6章
中断系统与定时/计数器
6.1 MCS-51单片机的中断系统
6.1.1 中断的概念 计算机暂时中止正在执行的主程序,转去执行中断 服务程序,并在中断服务程序执行完了之后能自动回到 原主程序处继续执行,这个过程叫做“中断”。 中断需要解决两个主要问题:一是如何从主程序转
第6章
中断系统与定时/计数器
(1)无同级或高级中断正在服务;
(2)当前指令执行到最后1个机器周期; (3)若现行指令为RETI或需访问特殊功能寄存器IE或 IP的指令时,执行完该指令且紧随其后的另1条指令也已 执行完。 单片机便在紧接着的下1个机器周期的S1期间响应 中断。否则,将丢弃中断查询的结果。第6章中断系统与定 Nhomakorabea/计数器
例1:若规定外部中断0为电平触发方式,高优先级,
试写出有关的初始化程序。 解:一般可采用位操作指令来实现: SETB SETB EA EX0 ;开中断 ;允许外中断0中断
SETB
CLR
PX0
IT0
;外中断0定为高优先级
;电平触发
第6章
中断系统与定时/计数器
例2:若规定外部中断1为边沿触发方式,低优先级,
第6章
中断系统与定时/计数器
外部中断请求(电平方式)的撤除
第6章
中断系统与定时/计数器
6.1.7中断程序举例
在中断服务程序编程时,首先要对中断系统进行初 始化,也就是对几个特殊功能寄存器的有关控制位进 行赋值。具体来说,就是要完成下列工作: (1)开中断和允许中断源中断; (2)确定各中断源的优先级; (3)若是外部中断,则应规定是电平触发还是边沿 触发。
单片机第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各位的定义如下:
单片机第六章
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同时使用串行口,用定时 器/计数器作为波特率发生器。
单片机原理与应用第6章
三、系统扩展及总线结构
80C51
图5.2
P0口分时复用
D0~n ~ P0 ALE R/W 单片机 ALE
锁 存 地 址 地址 采 样 数 据 采 样 数 据 Di Qi G 地址锁存器
A0~n ~
R/W 存储器
锁 存 地 址
P0
地址
R/W
三、系统扩展及总线结构
地址锁存器
MCS-51单片机的P0口是地址线/数据线分时复用的,实现 这一功能需要引入地址锁存器。常用的地址锁存器的芯片一 般有两类:一类是8D触发器,如74LS273、7474LS377等,另 一类是位锁存器,如74LS373、8282等。
74LS373
8031
6264的地址分配表
P2.7 P2.6 1 1 0 1 0 1
P2.5 0 1 1
选中芯片 6264(1) 6264(2) 6264(3)
地 址 范 围 C000--DFFFH A000--BFFFH 6000--7FFFH
存储容量 8K 8K 8K
例3:某微机系统用62128构成64K存储系统,试将其与 8051进行连接
第6章 单片机系统扩展
6-1 系统扩展及总线结构 6-2 数据存储器扩展 6-3 程序存储器扩展 6-4 I/O扩展 I/O扩展
6-1 系统扩展及总线结构 一、单片机内部资源
8位CPU; 位 ; 4KB字节掩膜 字节掩膜ROM程序存贮器(8031无); 程序存贮器( 字节掩膜 程序存贮器 无 128字节内部 字节内部RAM数据存贮器; 数据存贮器; 字节内部 数据存贮器 21个特殊功能寄存器 个特殊功能寄存器(SFR); 个特殊功能寄存器 ; 2个16位的定时器 计数器; 位的定时器/计数器 个 位的定时器 计数器; 1个全双工的异步串行口 个全双工的异步串行口; 个全双工的异步串行口 4个8位并行 口; 位并行I/O口 个 位并行 5个中断源、2级中断优先级的中断控制器; 个中断源、 级中断优先级的中断控制器 级中断优先级的中断控制器; 个中断源
单片机课件 第六章
;接通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
单片机课件第六章
PART 02
单片机系统概述
单片机系统的组成
存储器
包括程序存储器、数据存储器 和特殊功能寄存器,用于存储 程序、数据和特殊功能信息。
定时器/计数器
提供精确的定时和计数功能, 用于实现各种定时和计数操作。
微处理器(CPU)
单片机的核心部件,负责执行 各种指令和处理数据。
输入/输出接口
提供与外部设备通信的接口电 路,如并行I/O口、串行通信 接口等。
PART 01
引言
章节概述
第六章主要内容
本章主要介绍单片机的中断系统,包括中断的概念、中断的处理过程、中断的 优先级管理等内容。
中断在单片机系统中的作用
中断是单片机实时处理外部或内部事件的一种重要机制,通过中断可以实现对 外部输入信号的实时响应,以及进行内部定时/计数等操作。
学习目标
掌握中断的基本概念
THANKS
感谢观看
REPORTING
为单片机系统提供稳定可靠的电源, 包括线性电源、开关电源等类型。
02
时钟电路
为单片机提供精确的时钟信号,确保 系统时序的正确性。
01
03
复位电路
在单片机系统上电或异常时提供复位 信号,使系统恢复到初始状态。
I/O接口电路
连接单片机与外部设备(如键盘、显 示器、传感器等)的接口电路,实现 数据的输入与输出。
汽车电子
用于实现汽车控制系 统的智能化和自动化, 如发动机控制、车身 控制等。
物联网应用
作为物联网终端节点, 实现数据采集、传输 和处理等功能。
PART 03
单片机系统的硬件设计
硬件设计的基本原则
模块化设计
将复杂的硬件系统划分为若干个相 对独立的模块,每个模块实现特定
单片机第6章
(中断源对应服务程序的起始地址)] (中断源对应服务程序的起始地址)]
2 两级优先级(高级、低级,由IP设定) 两级优先级(高级、低级,由IP设定)
多个中断源同时申请高优先级得到响应 默认优先级:(不对IP进行设置时的优先级) 默认优先级:(不对IP进行设置时的优先级)
IP设置优先级:(对应位为“1“、”0“低) IP设置优先级:(对应位为“
1 中断响应的条件 ①有申请 5个中断源中有申请出现 ②CPU能响应 CPU能响应 中断是开放的(IE开中断,不在响应同级别中断 中断是开放的(IE开中断,不在响应同级别中断 状态) 完整执行过一个非RETI或非访问IE/IP指令 完整执行过一个非RETI或非访问IE/IP指令 上述可见CPU能响应中断时,响应的时间约为3~8个 上述可见CPU能响应中断时,响应的时间约为3~8个 机器周期
申请一旦出现CPU就会响应(不受屏蔽)(Z80CPU有) 申请一旦出现CPU就会响应(不受屏蔽)(Z80CPU有)
3 软件中断
由专设的指令执行而引起中断(如8088、8086指令系统) 由专设的指令执行而引起中断(如8088、8086指令系统)
中断嵌套: 中断嵌套:
中断过程中又产生中断
中断系统的功能: 中断系统的功能:
(对外中断而言)
4. 设定优先级 5. 开相应中断
IP对应位赋值 IP对应位赋值 IE对应位赋值 IE对应位赋值
例6.1 设定/INT1为低电平触发和高优先 设定/INT1为低电平触发和高优先 级工作的中断系统初试化如下: 设定转移表: ORG 0013H ;/INT1的入口 /INT1的入口 LJMP2000H LJMP2000H ;实际内容在2000H处 实际内容在2000H处 服务程序:
2 两级优先级(高级、低级,由IP设定) 两级优先级(高级、低级,由IP设定)
多个中断源同时申请高优先级得到响应 默认优先级:(不对IP进行设置时的优先级) 默认优先级:(不对IP进行设置时的优先级)
IP设置优先级:(对应位为“1“、”0“低) IP设置优先级:(对应位为“
1 中断响应的条件 ①有申请 5个中断源中有申请出现 ②CPU能响应 CPU能响应 中断是开放的(IE开中断,不在响应同级别中断 中断是开放的(IE开中断,不在响应同级别中断 状态) 完整执行过一个非RETI或非访问IE/IP指令 完整执行过一个非RETI或非访问IE/IP指令 上述可见CPU能响应中断时,响应的时间约为3~8个 上述可见CPU能响应中断时,响应的时间约为3~8个 机器周期
申请一旦出现CPU就会响应(不受屏蔽)(Z80CPU有) 申请一旦出现CPU就会响应(不受屏蔽)(Z80CPU有)
3 软件中断
由专设的指令执行而引起中断(如8088、8086指令系统) 由专设的指令执行而引起中断(如8088、8086指令系统)
中断嵌套: 中断嵌套:
中断过程中又产生中断
中断系统的功能: 中断系统的功能:
(对外中断而言)
4. 设定优先级 5. 开相应中断
IP对应位赋值 IP对应位赋值 IE对应位赋值 IE对应位赋值
例6.1 设定/INT1为低电平触发和高优先 设定/INT1为低电平触发和高优先 级工作的中断系统初试化如下: 设定转移表: ORG 0013H ;/INT1的入口 /INT1的入口 LJMP2000H LJMP2000H ;实际内容在2000H处 实际内容在2000H处 服务程序:
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章 MCS-51的定时器/计数器
6.2 定时/计数器的结构和工作原理
一、逻辑框图
T1由TH1、TL1构成,字 节地址为8DH、8BH T0由TH0、TL0构成,字 节地址为8CH、8AH TCON则用于控制定时计数器T0和 T1的启动和停止计数,同时管理 定时器T0和T1的溢出标志等。 特殊功能寄存器TMOD控 制定时计数器的工作方式
第六章 MCS-51的定时器/计数器 二、工作原理
1、 加1计数器 2、定时/计数器的工作状态
3、定时/计数器的计数速率
4、计数器的容量 5、溢出
第六章 MCS-51的定时器/计数器
6.3 定时/计数器的控制
●定时器控制寄存器 (可以按位操作)
TCON 位地址 D7 TF1 8FH D6 TR1 8EH D5 TF0 8DH
TLX 作为常数缓冲器,当 TLX 计数溢出时,在置“ 1” 溢出 标志 TFX 的同时,还自动的将 THX 中的初值送至 TLX ,使 TLX从初值开始重新计数。
第六章 MCS-51的定时器/计数器 6.4.4 方式3 增加一个附加的8位定时器/计数器,从而具有3个定时器/计数 器。 只适用于定时器/计数器T0。T1不能工作在方式3 T1方式3时相当于TR1=0,停止计数(此时T1可用来作串行 口波特率产生器)。 1.工作方式3下的T0 T0分为两个独立的8位计数器:TL0和TH0 。TL0使用T0的 状态控制位C/T*、GATE、TR0、,而TH0被固定为一个8 位定时器(不能作外部计数模式),并使用定时器T1的状 态控制位TR1和TF1,同时占用定时器T1的中断请求源 TF1。 各引脚与T0的逻辑关系如图所示:
第六章 MCS-51的定时器/计数器 (2) T1工作在方式1
(3) T1工作在方式2
第六章 MCS-51的定时器/计数器 6.5 定时器/计数器对输入信号的要求 1、定时器模式 计数脉冲为内部时钟脉冲,即每个机器周期计数器增1,因此 定时/计数器的输入脉冲周期与机器周期一样,为振荡频率的 1/12。 2、计数模式 计数脉冲来自外部输入引脚T0或T1。单片机需要2个机器周 期确认1次负跳变。因此外部计数脉冲的最高频率为系统振荡 器频率的1/24,例如选用12MHz频率的晶体,则可输入 500KHz的外部脉冲。 输入信号的高、低电平至少要保持一个机器周期。 如图6-10所示,图中Tcy为机器周期。
TH0=0ECH TL0=78H
(2)初始化程序设计 主要是对寄存器IP、IE、TCON、TMOD的相应位进行正确 设置,将计数初值送入定时器中。 (3)中断服务程序设计 中断服务程序除了完成要求的产生方波这一工作之外,还要注 意将计数初值重新装入定时器中,为下一次产生中断作准备。
第六章 MCS-51的定时器/计数器 参考程序: ORG 0000H RESET: AJMP MAIN ;转主程序 ORG 000BH ;T0的中断入口 AJMP ITOP ;转T0中断处理程序IT0P ORG 0100H MAIN: MOV SP,#60H ;设堆栈指针 MOV TMOD,#01H ;设置T0为方式1 MOV TL0,#78H ;T0置初值 MOV TH0,#0ECH SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ;CPU开中断 HERE: AJMP HERE
第六章 MCS-51的定时器/计数器
第六章 MCS-51的定时器/计数器 2.T0工作在方式3下T1的各种工作方式 当T1用作串行口的波特率发生器时, T0才工作在方式3。T0 处于方式3时, T1可定为方式0、方式1和方式2,用来作为 串行口的波特率发生器,或不需要中断的场合。 (1)T1工作在方式0
第六章 MCS-51的定时器/计数器 ITOP: MOV TL0,#78H ;T0中断服务子程序,T0置初值 MOV TH0,#0ECH CPL P1.0 ;P1.0的状态取反 RETI
第六章 MCS-51的定时器/计数器
例2 假设系统时钟频率采用6MHz,要在P1.0上输出频率为 50Hz、占空比为25%的方波信号。 一个周期中,高电平时间5ms,低电平时间15ms X1=65536-5000/2=F63CH X2=65536-15000/2=E2B4H ORG 0000H LJMP START ORG 0100H START: MOV SP,#30H MOV TMOD,#01H SETB TR0 LOOP: SETB P1.0 MOV TH0,#0F6H MOV TL0, #3CH
第六章 MCS-51的定时器/计数器 例2 当T0(P3.4)引脚上发生负跳变时,从P1.0引脚上输出一 个周期为1ms的方波,如图所示。(系统时钟为6MHz)
第六章 MCS-51的定时器/计数器
(1)工作方式选择
第六章 MCS-51的定时器/计数器
(1)T0工作方式的确定 因定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出: 方式0最长可定时16.384ms; 方式1最长可定时131.072ms; 方式2最长可定时512s。 选方式1,每隔100ms中断一次,中断10次为1s。 (2)计算计数初值 因为:(216-X)×2×10-6 = 10-1 所以:X=15536=3CB0H 因此:TH0=3CH,TL0=B0H
TCON 88H
D4 TR0 8CH D3 IE1 8BH D2 IT1 8AH D1 IE0 89H D0 IT0 88H
T1 字段
T0 字段
外部中断控制字段
TF0、TF1 分别是定时、计数器T0、T1的溢出标志位。 TR0 —— 定时 / 计数器0运行控制位。=0 停止,=1 开始工 作,软件置位,软件复位。 TR1 —— 定时 / 计数器1运行控制位。(用法与TR0类似)
第六章 MCS-51的定时器/计数器
6.6 定时器/计数器的编程和应用 对定时/计数器的编程包括以下几个步骤 1、确定工作方式,对TMOD寄存器进行赋值。 2、计算计数初值,并写入寄存器TH0、TL0或TH1、TL1。 3、根据需要,置位ETx允许中断 4、置位EA允许总中断。
第六章 MCS-51的定时器/计数器 5、置位TRx启动计数。 计数初值的计算: (1)定时模式 假设定时时间为T,机器周期为Tp, 则需要的计数脉冲 个数为T/ Tp,应装入定时/计数器的初值为 X=2n- T/ Tp (n为计数器的位数) (2)计数模式 假设计数值为N,则计数初值为 X=2n-N
第六章 MCS-51的定时器/计数器
6.6.2 方式2的应用 例1 利用T1的方式2对外部信号计数,要求每计满100个数,
将P1.0取反。
本例是方式2计数模式的应用。
(1)选择工作方式 外部信号由T1(P3.5) 脚输入,每发生一次负跳变计数器加1,每输 入100个脉冲,计数器产生溢出中断,在中断服务程序中将 P1.0取反一次。 T1 方式2的控制字为TMOD=60H。不使用T0时,TMOD的低4位 可任取,但不能使T0进入方式3,这里取全0。 (2)计算T1的初值 X=28-100=156=9CH 因此,TL1的初值为9CH,重装初值寄存器TH1=9CH
第六章 MCS-51的定时器/计数器 ORG 0000H LJMP MAIN ORG 001BH ;T1中断服务程序入口 CPL P1.0 ;P1.0位取反 RETI ORG 0100H MAIN:MOV TMOD,#60H ;设T1为方式2计数 MOV TL0,#9CH ;T0置初值 MOV TH0,#9CH SETB ET1 SETB EA SETB TR1 ;启动T1 HERE: AJMP HERE
第六章 MCS-51的定时器/计数器 SETB EA SETB ET0 SETB TR0 LOOP: SJMP LOOP T0INT: MOV TL0,#0B0H MOV TH0,#3CH DJNZ R0,NEXT MOV R0,#0AH CPL A MOV P1,A NEXT: RETI END
第六章 MCS-51的定时器/计数器 ● 工作方式控制寄存器 (不可以按位操作)
D7 GATE D6 C/T D5 M1 D4 M0
TMOD 89H
D3 GATE D2 C/T D1 M1 D0 M0
←T1方式字段→
←T0方式字段→
GATE : 门控位. GATE = 0 启动不受 /INT0或 /INT1的控制; GATE = 1 启动受 /INT0 或 /INT1 的控制。 C/T : 外部计数器 / 定时器方式选择位C/T = 0 定时方式;C /T = 1 计数 方式
方波的周期用T0来确定,让T0每隔10ms计数溢出1次,既T0 每隔10ms产生一次中断,CPU相应中断后,在中断服务程序
中对P1.0取反。
第六章 MCS-51的定时器/计数器 (1)计算初值X 设初值为X,则有: (216-X)×2×10-6=1×10-2
216-X=5000 X=60536
X化为16进制,即X=EC78H。 所以,T0的初值为:
6.4 定时器/计数器的4种工作方式
6.4.1 方式0 M1、M0为00 ,定时器/计数器的框图:
第六章 MCS-51的定时器/计数器 6.4.2 方式1 M1、M0=01,16位的计数器。
6.4.3 方式2 计数满后自动装入计数初值。 M1、M0=10 ,等效框图如下:
第六章 MCS-51的定时器/计数器
M1M0:工作模式选择位(编程可决定四种工作模式)。
第六章 MCS-51的定时器/计数器
0
0 1 1
0
1 0 1
13位定时/计数器
16位定时/计数器 8 位自动重装定时/计数器 TL0 8位定时/计数器 TH0 8位定时器
方式0
方式1 方式2 方式3
T1 停止计数
第六章 MCS-51的定时器/计数器
第六章 MCS-51的定时器/计数器