中断系统定时器串行口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SJMP WT
方式1:采用中断方式
ORG 0000H
LJMP START
ORG 001BH
LJMP 0100H
wk.baidu.com
START:
ORG MOV MOV MOV MOV
0030H TMOD,#10H TH1, #0FFH TL1, #06H IE, #88H
MOV IP, #0000 1000B
SETB TR1 SJMP $
三、中断应用 1、中断应用的准备工作
(1)中断初始化设置:定义SP、IP、IE和外中断触发 方式选择;
(2)中断服务程序:中断入口、现场保护、中断主体 程序、恢复现场返回。
2、应用举例 例5-1 通过P1.0~P1.7控制发光二极管,输出两种节 日灯,并利用外中断P3.2,在两种状态之间切换。 要求:主程序中状态:亮1灯左移循环,间隔1S,中断程 序中的状态:以1秒间隔8灯依次亮起,再依次熄灭, 循环3次后返回。
(2)计数功能 对片外从T0(P3.4)、T1(P3.5)引 脚输入的外部脉冲信号进行计数,下降沿计数加1。
二、定时/计数器的控制寄存器 与定时/计数器有关的控制寄存器有3个:
1、定时器控制寄存器TCON(88H) SFR寄存器TCON既参与定时控制又参与中断控
制,有关定时控制的有4位,表示如下:
②定时中断请求的撤销:定时中断后,硬件自动清 “0”。
③串行中断请求的撤销:不能自动清“0”,须用软件 的方法在中断服务子程序中进
行清“0”。 2、中断允许控制 由SFR寄存器IE设置,分二级允许控制。以EA位 作为总控,以各中断源的允许位作为分控。
IE字节地址A8H,位地址AFH~A8H,与中断允 许有关的各位表示如下:
作定时器,TMOD=02H; 作计数器,TMOD=06H; 最大计数值为28=256,若fosc=12MHz,则方式2的最大定 时时间为256us。当作为定时器用时,定时时间的计算公式: △T=(28 — 计数初值)× 机器周期(12/fosc) 计数初值=28 —欲计数脉冲数=28 —△T/ 机器周期 例如:定时500,fosc=6MHz时,初值=28—500/2=6= 06H
别由P3.2、P3.3输入,低电平有效、脉冲下降沿有效可 选。
入口地址:0003H,0013H。 ②定时/计数溢出中断2个:T0、T1,计数溢出时置 “1”TF0、TF1位,从而发出内部中断请求。 入口地址:000BH,001BH。
③串行中断1个:串行接收或发送完一帧数据时就产 生一个内部中断请求RI或TI。
三、定时器/计数器工作方式 1、工作方式0 M1M0=00 ——13位计数器 (1)结构
由TH0的全部8位和TL0的低5位构成,如下页图。 当TL0低5位计数满时直接向TH0进位,并当全部13位 计数满溢出时,TF0置“1”。 (2)TMOD值:
作定时器:TMOD=0000 0 0 00=00H 作计数器:TMOD=0000 0 1 00=04H
TF1/TF0 :当 T1/T0 的计 数 器计 数 溢出 时 ,该 位置 “1”。 TR1/TR0:T1/T0运行控制位。软件将其置“1”时,启
动T1/T0工作。
2、设定定时器工作方式寄存器TMOD(89H) SFR寄存器TMOD用于2个定时器/计数器T1/T0的
工作方式设定,各位的含义表示如下:
∴ TH1=F8H,TL1=06H 方式1:计数初值=216 —欲计数脉冲数=216 —△T/ 机器周期
=216-500/2=FF06H ∴ TH1=FFH,TL1=06H 方式2:计数初值=28 —欲计数脉冲数 =28 —△T/ 机器周期
=28-500/2=06H ∴ TH1=TL1=06H
3)定时到达P1.0的翻转方法:查询方式、中断方式 4)流程、程序如下:
TI为发送中断 ,RI为接收中断 ,为“1”时,请 求中断,响应后必须由用户软件清零。 (3)中断请求的撤销
中断响应后,必须及时清除TCON、SCON中的 已响应中断请求标志,否则,会引起中断的重复查 询和响应。
①外中断请求的撤销:
对于边沿触发方式:由于触发信号过后就消失,撤
销自然也就是自动的。
对于电平触发方式:需通过软硬件结合的方法来实 现撤销。
第五章 中断系统、定时器/计数器和串行口
§5-1 MCS-51的中断系统 §5-2 定时/计数器 §5-3 MCS-51单片机的串行口
§5-1 MCS-51的中断系统 一、中断概述
1、 中断源 中断源 指引起正在执行的程序中断,转而执行中
断服务程序的设备或事件。
可分为硬中断、软中断。
MCS-51单片机的5个中断源: ①外部中断2个: INT 1 、INT 0 ,中断请求信号分
方式0:采用查询方式 程序:
流程:
START:
ORG MOV MOV MOV MOV
0030H TMOD,#00H TH1, #0F8H TL1, #06H IE, #00H
SETB TR1 WT: JNB TF1, WT
CPL P1.0
CLR TF1 MOV TH1, #0F8H MOV TL1, #06H
TF1、TF0:T1/T0溢出中断请求标志。 IE1、IE0:外中断/请求标志。 IT1、IT0:外中断/触发方式定义位,“1”—后沿触发
(2)串行中断请求控制寄存器SCON 串行中断请求由TI、RI的逻辑“或”得到。即不
论 是发送标志还是接收标志,都将发生串行中断请求。
字节地址98H,位地址9FH~98H,与中断请求有 关的各位表示如下:
中断服务程序:
ORG 0100H
CPL P1.0
MOV TH1, #0FFH MOV TL1, #06H
RETI
方式2:采用中断方式
ORG 0000H
LJMP START
ORG 001BH
LJMP 0100H
START:
ORG MOV MOV MOV MOV MOV
0030H TMOD,#20H TH1, #06H TL1, #06H IE, #88H IP, #08H
SETB TR1 SJMP $ 中断服务程序:
ORG 0100H
CPL P1.0
RETI
【例5-3】 用软件延时和定时器中断方式、查询方式 定时的方法编程,试设计控制六盏LED灯的程序, 设晶振fosc=12MHZ,要求:
例如:定时500us,fosc=6MHz时, 初值=216—500/2=65536-250=65286=FF 06H
那么:TH0=FFH,TL0=06H 3、工作方式2 M1M0=10——自动复位的8位计数器
以TL0作计数器,而TH0作为预置寄存器。当计数满溢出 时,TF0置“1”,同时TH0将计数初值以硬件方法自动装入TL0。 逻辑结构,如图所示:
DELAY
AJMP LOOP
中断服务程序流程图:
中断服务程序: INT0: LOOP1: LOOP2:
DELAY:
PUSH ACC
CLR A
MOV R0, #00H
SETB C
RLC
A
MOV P1, A
LCALL DELAY
JNB ACC.7,
LOOP1
CLR C
RLC A
MOV P1, A
LCALL DELAY
单片机复位后,(IE)=00H,因此,整个中断系 统为禁止状态。 3、中断优先级控制
由SFR寄存器IP设置,有2个优先级,相应位置 “1”,为高优先级。相应位置“0”,为低优先级。
IP字节地址B8H,位地址BFH~B8H,与中断优先 有关的各位表示如下:
注意:5个中断优先位全部置“1”时,和全部清0效 果一样,为同优先级中断,按自然优先级处理,即为 INT 0 →T0→ INT 1 →T1→串行口,优先级依次从高到低。
T0方式3时的T0初值计算完全同方式 2 (2)T0方式3下的T1
T0方式3时 ,T1仍然可工作于方式0~方式2,如 上页图所示。C/ T 控制位仍可使T1工作在定时器或计 数器方式,只是由于其TR1、TF1被T0的TH0占用, 因而没有计数溢出标志可供使用,计数溢出时只能将 输出结果送至串行口,即用作串行口波特率发生器。
T0方式3下的T1方式2,因定时初值能自动恢复, 用作波特率发生器更为合适。
四、定时/计数器的应用 【例5-2】 已知fosc=6MHz,利用T1定时500us,在P1.0
口输出周期为1ms的方波脉冲,使用方式0~方式2编程。
解:1)方波波形如图所示: 2)计数初值:
方式0:计数初值=213 —欲计数脉冲数=213 —△T/ 机器周期 =213-500/2=1F06H
(3)计数初值 最大计数值为213=8192 △T=(213 — 计数初值)× 机器周期(12/fosc) 计数初值=213 —欲计数脉冲数=213 —△T/ 机器周期
2、工作方式1 M1M0=01——16位计数器
方式1时的电路逻辑结构如图所示 作定时器,TMOD=01H; 作计数器,TMOD=05H; △T=(216 — 计数初值)× 机器周期(12/fosc) 计数初值=216 —欲计数脉冲数=216 —△T/ 机器周期
实际上响应中断的主要操作是有硬件自动产生一 条长调用指令LCALL。
③中断服务:根据入口地址转中断服务程序,包含 保护现场、执行中断主体、恢复现场。
④中断返回:断点出栈→开放中断允许→返回原程序。
3、中断优先级及其嵌套 优先级 2个---高优先级、低优先级,可通过SFR
寄存器IP设置。 中断嵌套 原则为高优先级的中断不能被低优先
的中断所中断,同级中断不能相互中断。
4、中断控制的特点 ① 中断是随机发生的,并且是可编程的。 ② 通过执行特定功能的程序段而获得预定目的。 5、MCS-51中断汇集
二、中断控制 通过对特殊功能寄存器TCON、SCON、IE、IP等
四个寄存器的设定而实现。 1、中断请求控制 (1)定时中断、外中断请求控制寄存器TCON 字节地址88H,位地址8FH~88H,与中断请求有 关的各位表示如下:
则:TH0=TL0=06H
4、工作方式3 M1M0=11——2个8 位计数器(仅限于T0) 在T0方式3下,T0、T1的设置和使用是不同的。 (1)T0方式3 TL0:使用T0原有控制资源,功能与方式0、1相同。 TH0:借用T1的TR1、TF1,只能对片内机器周期脉冲计数,
作8位定时器。
T0方式3时的T0、T1电路逻辑结构,如图所示
入口地址:0023H。
2、 中断处理过程 包含:中断请求、中断响应、中断服务、中断返
回四个阶段. ①中断请求:中断源将相应请求中断的标志位置 “1”,表示发出请求,并由CPU 查询。 ②中断响应:在一条指令的最后一个周期按优先级 顺序查询中断标志,为“1”并满足响 应 条件时响应。
响应操作: 断点压栈→撤除中断标志→关闭低同级 中断允许→中断入口地址送PC。
主流程图(略),程序如下:
ORG
0000H
LJMP ORG
MAIN 0003H
;中断入口
LJMP
INT0
MAIN:
ORG MOV SETB SETB
0030H
SP, #60H
IT0
;设定下跳有效
EX0
;开中
SETB
MOV MOV LOOP: MOV
EA
IP, A,
P1,
#01H #01H
A
RL
A
LCALL
GATE:门控位,定义T1/T0的启动方式,逻辑如图:
C/ T :定时/计数功能选择位。 为“0”,作定时器用;为“1”,作计数器用。
M1M0:工作方式选择位。
00 方式0 13位计数器 01 方式1 16位计数器 10 方式2 初值自动重装8位计数器
11 方式3 2个8位计数器,仅适用于T0
3、中断允许控制寄存器IE(A8H)
2、MCS-51单片机的定时/计数器 16位定时/计数器T0、T1,分别由4个8位计数器
组成,均属SFR寄存器。 T0由TH0、TL0构成,字节地址为8CH、8AH; T1由TH1、TL1构成,字节地址为8DH、8BH;
MCS-51单片机定时器结构示意图 3、MCS-51单片机定时/计数器的功能
归根结底是计数器。 (1)定时功能 对片内机器周期进行计数,即每 个机器周期产生一个计数脉冲,计数加1。
JB
ACC.7,
LOOP2
INC R0 CJNE R0, #03H, LOOP1
POP ACC
RETI (略)
;1秒延时
§5-2 定时/计数器 一、定时/计数器构成 1、定时方法 软件延时 通过执行循环而获得延时,短时间延时; 硬件延时 由硬件电路实现延时,长时间延时; 可编程定时 通过对系统时钟脉冲的计数而获得延时。