最新中断系统与定时器计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、定时器/计数器的特殊功能寄存器
与定时器/计数器有关的特殊功能寄存器有: (1).工作方式控制寄存器TMOD
D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0
T1控制
GATE—门控位 C/T—计数/定时选择 M1 M0—工作方式选择
T0控制
响应过程--单片机响应中断后,自动执行下列操作: ① 置位中断优先级有效触发器,即关闭同级和低级
中断: ② 调用入口地址,断点入栈,相当于LCALL指令; ③ 进入中断服务程序。
响应时间--从查询中断请求标志位到转向中断服务 入口地址所需的机器周期数。 (1)最快响应时间 以外部中断的电平触发为最快。 从查询中断请求信号到中断服务程序需要三个机器 周期:
中断系统与定时器计数器
中断的概念
在程序的执行过程中,由于某种外界的 原因,必须终止当前执行的程序,而去 执行相应的处理程序,待处理结束后, 再回来继续执行被终止的程序。这个过 程叫中断。
(2).串行口控制寄存器SCON
D7 D6 D5 D4 D3 D2 D1 D0 串行中断 TI RI 请求标志
;复位入口 ;转到主程序 ;外部中断 入口 ;转到中断服务程序 ;外部中断 入口 ;转到中断服务程序 ;主程序入口 ;主程序开始,熄灭LED,准备输入查询 ;允许INT0中断 ;负边沿触发方式 ;允许INT1中断 ;负边沿触发方式 ;开中断 ;等待中断
汇编语言源程序清单
中断服务程序
INT_0:
JNB P1.0, L1
(2).定时器控制寄存器TCON
D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
中断请求标志 启动定时/计数器 触发方式选择
0 停止 1 启动
0 低电平 1 下降沿
三、定时器/计数器的工作方式
定时器/计数器共有四种工作方式
(1). 方式0—13位方式
1个周期(查询)+2个周期(长调用LCALL) (2)最长时间 若当前指令是RET、RETI和IP、IE指令,紧接着下 一条是乘除指令发生,则最长为8个周期: 2个周期执行当前指令(其中含有1个周期查询)+ 4个周期乘除指令+2个周期长调用=8个周期。
中断返回—中断处理程序的最后一条指令 是RETI,它使CPU结束中断处理程序的执 行,返回到断点处,继续执行主程序。
一、定时器/计数器的功能
定时/计数器的核心部件是二进制加1计数 器(TH0、TL0或TH1、TL1) 。 1. 定时功能----计数输入信号是内部时钟脉 冲,每个机器周期使技数器的值加1。
2. 计数功能----计数脉冲来自相应的外部输入 引脚,T0为P3.4,T1为P3.5。
在特殊功能寄存器TMOD中,有一个控制位(C/ T),分别用于控制定时/计数器工作在定时器方 式还是计数器方式。
定时器/计数器的工作方式与控制
8051单片机有2个16位的定时/计数器:定 时器0(T0)和定时器1(T1)。它们都有定时 器或事件计数的功能,可用于定时控制、延时、 对外部事件计数和检测等场合。
T0由2个特殊功能寄存器TH0和TL0构成,T1 则由TH1和TL1构成。作计数器时,通过引脚T0 (P3.4)和T1(P3.5)对外部脉冲信号计数, 当输入脉冲信号从1到0的负跳变时,计数器就 自动加1。计数的最高频率一般为振荡频率的 1/24。
定时
振荡器
1/12
器 C/T=0
T0 TR0
GATE 1
C/T=1
& ≥1
TL0 TH0 TF0
低5位 8位
13位计数器
INT0
计数脉冲输入
计数 器
(2). 方式1—16位方式
振荡器
T0 TR0 GATE 1 INT0
1/12 C/T=0
C/T=1 &
注意:响应中断后,CPU并不清零中断标志位,必须软件清零。
(3).中断允许控制寄存器IE
D7 D6 D5 D4 D3 D2 D1 D0 0 禁止
EA
ES ET1 EX1 ET0 EX0 1允许
实现两级控制 注意:复位时,禁止所有中断
(4).中断优先级控制寄存器(IP)
D7 D6 D5 D4 D3 D2 D1 D0 0 低级别 PS PT1 PX1 PT0 PX0 1高级别
中断系统Hale Waihona Puke Baidu始化
开相应中断源的中断;(IE) 设定中断优先级;(IP) 若为外部中断,设定外部中断的触发方式。
中断应用举例
8051单片机只有2个外部中断源和,当实际应用 中需要多个外部中断源时,可采用硬件请求和软 件查询相结合的办法进行扩展,把多个中断源通 过“或非”门接到外部中断输入端,同时又连到 某个I/O端口,这样每个中断源都能引起中断, 然后在中断服务程序中通过查询I/O端口的状态 来区分是哪个中断源引起的中断。若有多个中断 源同时发出中断请求,则查询的次序就决定了同 一优先级中断中的优先级。
主程序
MAIN: HERE:
汇编语言源程序清单
ORG 0000H LJMP MAIN ORG 0003H LJMP INT_0 ORG 0013H LJMP INT_1 ORG 0030H ANL P1, #55H SETB EX0 SETB IT0 SETB EX1 SETB IT1 SETB EA SJMP HERE
每一中断源可编程为高优先级或低优先级中断,以实现二级嵌套。默 认的优先次序为:INT0、C/T0、INT1、C/T1、串行口中断(依次从高 到低)
中断响应
响应条件----CPU要响应中断需满足下列条件: ① 无同级或高级中断正在服务; ② 当前指令周期结束,如果查询中断请求的机器
周期不是当前指令的最后一个周期,则不行; ③ 若现行指令是RETI、RET或访问IE、IP指令,则 需要执行到当前指令及下一条指令方可响应。
SETB P1.1
L1:
JNB P1.2, L2
SETB P1.3
L2:
JNB P1.4, L3
SETB P1.5
L3: INT_1:
RETI ANL P1, #55H RETI
;外中断0服务程序,开始查询 ;由外设1引起的中断
;由外设2引起的中断
;由外设3引起的中断 ;中断返回 ;外中断1服务程序,熄灭LED