- 1
- 0
- 约2.04千字
- 约 17页
- 2019-11-06 发布于广东
- 举报
1-* 北京源智天下科技有限公司 联系方式: 联系方式: 北京源智天下科技有限公司 21天学51单片机开发 第十四讲:51系列单片机的中断系统 课程安排 中断系统概述 单片机中断的类型 中断系统的程序访问 中断的响应过程 外部中断源及其程序设计 定时中断源及其程序设计 串行中断源及其程序设计 中断系统概述 单片机C51语言是一种顺序执行的语言。 典型的中断概念: 中断源 主程序 断点 中断系统 中断识别 中断响应 中断返回 中断优先级 中断嵌套 中断处理流程 单片机中断的类型 外部中断源 外部中断0 外部中断1 定时中断源 T0的溢出中断请求 T1的溢出中断请求 串行中断源 中断系统的程序访问 中断标志控制寄存器TCON 中断标志控制寄存器SCON 中断系统的程序访问 中断允许标志寄存器IE 中断优先级标志寄存器IP 中断嵌套 中断的响应过程 中断的响应过程涉及两个方面: 一方面是单片机硬件是如何实现的 另一方面是程序上是如何控制的 一般来说,可以分为如下几步: 中断识别 中断响应 中断处理 中断撤离 中断识别 51系列单片机中断源的识别是通过中断入口地址,即中断矢量来实现的。 51系列单片机为每个中断源分配一个入口地址 。 参阅书中中断入口地址表。 中断响应 单片机应允许所有中断源申请中断 。 如果多个同优先级的中断请求同时发出,则单片机按照一定的查询次序来决定中断执行的顺序。 任何正在执行的指令在未完成前,中断请求都不会响应。 单片机对一个中断的正确响应是需要时间的 。 中断处理 程序跳转 中断的开与关 现场保护与恢复 中断撤离 中断撤离也就是如何退出中断状态。 其目的是保证对于一次中断信号只执行一次中断响应。 中断撤离后将返回主程序执行。 外部中断源及其程序设计 01 #includereg51.h //头文件 02 void ISR0(void) interrupt 0 //外部中断0服务例程 03 { 04 P1=~P1; //P1端口反相 05 } 06 void ISR1(void) interrupt 2 //外部中断1服务例程 07 { 08 P2=~P2; //P2端口反相 09 } 10 void main(void) //主函数 11 { 12 IP=0x05; //外部中断0和外部中断1设置为高优先级 13 IT0=1; //外部中断0为下降沿触发 14 IT1=1; //外部中断1为下降沿触发 15 EX0=1; //开EX0中断 16 EX1=1; //开EX1中断 17 EA=1; 18 while(1) //主循环 19 { 20 } 21 } 定时中断源及其程序设计 01 #include reg51.h //头文件 02 void T0ISR(void) interrupt 1 //定时器T0中断响应 03 { 04 TL0=0x0C; //重置计数初值 05 TH0=0x0F0; 06 P1=~P1; //反相 07 } 08 void main(void) //主函数 09 { 10 TMOD=0x00; //设置定时器T0为模式0 11 TL0=0x0C; //初始化 12 TH0=0x0F0; 13 TR0=1; 14 ET0=1; 15 EA=1; //开中断 16 while(1) //主循环 17 { 18 } 19 } 串行中断源及其程序设计 01 #include reg51.h //头文件 02 void SISR(void) interrupt 4 //串行中断服务例程 03 { 04 TI=0; 05 } 06 void main(void) //主函数 07 { 08 int i; 09 i=0x68; //初始化数据 10 SCON=0x00; //初始化串行口模式0 11 ES=1; //开启串行中断 12 SBUF=i; //将数据送到SBUF,启动串行输出 13 EA=1; //开中断 14 while(1) //主循环 15 { 16 } 17 } 性格决定命运, 专注成就人生 源智天下 Oracle Database 10g: Administration Workshop II 1-* 1-*
原创力文档

文档评论(0)