外部中断应用程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机的中断可以归 类为3种。在大家理解中断概念 及中断相关的控制寄存器后本 节通过两个应用举例为大家讲 解第1种中断方式—外部中断。
教学内容
(1)复习中断控制寄存器 (2)中断的程序的初始化
步骤 (3)中断和查询结合的方
法扩展多个外中断源 (4)基于外部中断的出租
车计程器编程
精品课件
学会中断服务程序 编写方法
6
精品课件
#include <reg51.h> sbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2=P1^2; sbit P1_3=P1^3; sbit P1_4=P1^4; sbit P1_5=P1^5; sbit P1_6=P1^6; sbit P1_7=P1^7; void main( ) {P1=0x00; IT0=1; EX0=1; EA=1; while(1); }
void ex0( ) interrupt 0 { if (P1_1==1) P1_0=1; else if(P1_3==1) P1_2=1; else if(P1_5==1) P1_4=1; else if(P1_7==1) P1_6=1; }
7
精品课件
(4)基于外部中断的出租车计程器编程
例 出租车计价器计程方法是车轮每运转一圈产生一 个负脉冲,从外中断(INT0 P3.2)引脚输入,行 驶里程=轮胎周长×运转圈数,设轮胎周长为2m, 试实时计算出租车行驶里程(单位:m),数据存 于 32H、31H、30H中。
外部中断服务程序编写方法
案例式教学
知识 目标
教学 重点
教学 难点
教学 方法
掌握中断服务程序初 始化步骤,外部中断 的入口地址
单片机扩展多个中断源 方法的理解
精品课件
(1)中断控制寄存器
定时/计数器控制寄存器(TCON)
D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
5
精品课件
(3)中断和查询结合的方法扩展多个外中断源
当4台设备工作正常时,4个设 备的故障源输入端 (P1.1,P1.3,P1.5,P1.7)全为低电 平0,显示灯全熄灭。
当某台设备出现故障时,则引 发对应的故障源输入线由低电平0变 为高电平1,从而引起8051的中断, 在中断服务程序中通过查询即可判 断故障源编号,并进行相应的LED显 示。
8
精品课件
ORG
ORG
ORG STAT: SETB
MOV
MOV MOV MOV SJMP
0000H
;复位地址
LJMP STAT
;转初始化
0003H
;中断入口地址
LJMP INT
;转中断服务程序
0100H
;初始化程序首地址
IT0
;置边沿触发方式
IE,#81H
;开中断
MOV IP,#01H
;置高优先级
30H,#0
;里程计数器清零
31H,#0
32H,#0
$;
等待中断
9
精品课件
ORG
0200H
;中断服务子程序首地址
INT: MOV
A, 30H
;读低8位里程计数器
ADD
A, #2
;低8位里程计数器加2m
MOV
30H, A
;回存
CLR
A
ADDC
A, 31H
;中8位里程计数器加进
位
MOV
31H, A
;回存
单片机原理与接口技术
外部中断应用程序设计
1
精品课件
说课
学情分析
本节选自第五章: MCS-51中断、定时/计数器及串 行接口/第1节:中断系统。中 断系统是单片机课程体系中非 常重要的一环。在学习完第2章 后应对单片机的硬件结构有所 掌握,第3、第4章是对单片机 的软件编程进行讲解,第2-4章 作为第5章的基础。
中断允许控制寄存器(IE)
中断优先级控制寄存器(IP)
4
精品课件
(2)中断的程序的初始化步骤
1) 设置中断允许控制寄存器IE,允许相应的中断源请求中 断。 2) 设置中断优先级寄存器IP,确定并分配所使用的中断源 的优先级。 3) 若是外部中断源,还要设置中断请求的触发方式IT1或 IT0,以决定采用电平触发方式还是边沿触发方式。
CLR
A
ADDC A, 32H
;高8位里程计数器加进位
MOV
32H, A
;回存
RETI
;中断返回
END
10
精品课件
Baidu Nhomakorabea
感谢专家批评、指正!
11
精品课件
教学内容
(1)复习中断控制寄存器 (2)中断的程序的初始化
步骤 (3)中断和查询结合的方
法扩展多个外中断源 (4)基于外部中断的出租
车计程器编程
精品课件
学会中断服务程序 编写方法
6
精品课件
#include <reg51.h> sbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2=P1^2; sbit P1_3=P1^3; sbit P1_4=P1^4; sbit P1_5=P1^5; sbit P1_6=P1^6; sbit P1_7=P1^7; void main( ) {P1=0x00; IT0=1; EX0=1; EA=1; while(1); }
void ex0( ) interrupt 0 { if (P1_1==1) P1_0=1; else if(P1_3==1) P1_2=1; else if(P1_5==1) P1_4=1; else if(P1_7==1) P1_6=1; }
7
精品课件
(4)基于外部中断的出租车计程器编程
例 出租车计价器计程方法是车轮每运转一圈产生一 个负脉冲,从外中断(INT0 P3.2)引脚输入,行 驶里程=轮胎周长×运转圈数,设轮胎周长为2m, 试实时计算出租车行驶里程(单位:m),数据存 于 32H、31H、30H中。
外部中断服务程序编写方法
案例式教学
知识 目标
教学 重点
教学 难点
教学 方法
掌握中断服务程序初 始化步骤,外部中断 的入口地址
单片机扩展多个中断源 方法的理解
精品课件
(1)中断控制寄存器
定时/计数器控制寄存器(TCON)
D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
5
精品课件
(3)中断和查询结合的方法扩展多个外中断源
当4台设备工作正常时,4个设 备的故障源输入端 (P1.1,P1.3,P1.5,P1.7)全为低电 平0,显示灯全熄灭。
当某台设备出现故障时,则引 发对应的故障源输入线由低电平0变 为高电平1,从而引起8051的中断, 在中断服务程序中通过查询即可判 断故障源编号,并进行相应的LED显 示。
8
精品课件
ORG
ORG
ORG STAT: SETB
MOV
MOV MOV MOV SJMP
0000H
;复位地址
LJMP STAT
;转初始化
0003H
;中断入口地址
LJMP INT
;转中断服务程序
0100H
;初始化程序首地址
IT0
;置边沿触发方式
IE,#81H
;开中断
MOV IP,#01H
;置高优先级
30H,#0
;里程计数器清零
31H,#0
32H,#0
$;
等待中断
9
精品课件
ORG
0200H
;中断服务子程序首地址
INT: MOV
A, 30H
;读低8位里程计数器
ADD
A, #2
;低8位里程计数器加2m
MOV
30H, A
;回存
CLR
A
ADDC
A, 31H
;中8位里程计数器加进
位
MOV
31H, A
;回存
单片机原理与接口技术
外部中断应用程序设计
1
精品课件
说课
学情分析
本节选自第五章: MCS-51中断、定时/计数器及串 行接口/第1节:中断系统。中 断系统是单片机课程体系中非 常重要的一环。在学习完第2章 后应对单片机的硬件结构有所 掌握,第3、第4章是对单片机 的软件编程进行讲解,第2-4章 作为第5章的基础。
中断允许控制寄存器(IE)
中断优先级控制寄存器(IP)
4
精品课件
(2)中断的程序的初始化步骤
1) 设置中断允许控制寄存器IE,允许相应的中断源请求中 断。 2) 设置中断优先级寄存器IP,确定并分配所使用的中断源 的优先级。 3) 若是外部中断源,还要设置中断请求的触发方式IT1或 IT0,以决定采用电平触发方式还是边沿触发方式。
CLR
A
ADDC A, 32H
;高8位里程计数器加进位
MOV
32H, A
;回存
RETI
;中断返回
END
10
精品课件
Baidu Nhomakorabea
感谢专家批评、指正!
11
精品课件