《51单片机中断系统及应用[1]》由会员分享,可在线阅读,更多相关《51单片机中断系统及应用[1](19页珍藏版)》请在金锄头文库上搜索。
1、 【本章提要】本章介绍MCS51单片机重要功能硬件中断系统、定时/计数器、串行口的工作原理及应用。通过本章学习,熟悉中断的基本概念; 掌握中断系统的硬件组成和中断系统的程序结构、 初始化编程的设计方法;掌握定时/计数器、串行口的结构工作原理与应用。MCS MCS5151单片机单片机 中断系统及应用中断系统及应用中断计数流水灯电路【项目任务】 本项目采用外部中断方式实现 09 循环计数和流 水灯控制电路。在单片机 I/O 口连接一个按键,当开关 断开时,单片机电路进行循环计数;当开关按下时,计 数停止,单片机控制流水灯点亮。当流水灯点亮两轮后 ,计数按照中断时的计数值继续计数。通过本项目设计制作
2、,熟悉单片机中断的基本概念 ,掌握MCS51单片机中断系统的硬件结构、外部中断 的基本原理和应用。4 42 21 1 问题的提出问题的提出中断的概念中断的概念中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应紧迫任务的处理程序,待处理结束之后再返回继续执行被中断原程序的过程。实现这种中断功能的硬件系统和软件系统统称为中断系统。 中断方式是单片机提高工作效率的最佳途经,掌握中断技术是学习单片机应用技术的重要内容之一。4 42 22 2 中断响应过程中断响应过程主程序运行响应中断时,程序计数器PC的值称为断点;中断程序的地址 称为中断程序入口;
3、响应 中断后执行的程序称为中 断服务程序;中断程序执 行完返回断点重新执行主 程序称为中断返回。图43 中断响应过程流程图中断检测由于中断发生时间是随机的,因此程序的断点是不 确定的。当中断发生时产生时,低电平向CPU发中断请 求信号,CPU在每个机器周期的S5P2期间采样是否为0 ,如果为0中断标志自动将IE0置1,如图44所示。 图44 CPU在S5P2检测中断请求信号中断入口表43 中断入口地址表两个中断入口之间间只有8个单单元,一般情况都放不下中断服务务 程序,因此,通常将中断入口放置一条无条件转转移指令。如LJMP I001单片机响应中断后,进入中断入口0003H,然后转移到代表 I
4、001的地址去执行中断服务程序I001。423 MCS51中断系统结构图45 MCS51单片机中断系统下一页上一页P3.4P3.2P3.3P3.5P3.0 P3.11. 5个中断源1 :外部中断0请求,由P3.2脚输入。它受外部电路 控制实现中断0请求,由P3.2脚输入。通过IT0位来决定中断请求信号是低电平有效还是下降沿有效。一旦输入信号有 效,则向CPU申请中断,并建立IE0标志。2 :外部中断1请求,由P3.3脚输入。通过IT1位来决定是低电平有效还是下降沿有效。一旦输入信号有效, 则向CPU申请中断,并建立IE1标志。3T0 :定时/计数器T0溢出中断请求。当T0工作在计数状 态时,计
5、数脉冲从P3.4脚输入。当定时器T0产生溢出时, 定时/计数器T0中断请求标志位置位(由硬件自动执行),请求中断处理。下一页上一页4T1:定时器T1溢出中断请求。当T1工作在计数状态 时,计数脉冲从P3.5脚输入。当定时器T1产生溢出时, 定时器T1中断请求标志位(TCON.7)置位(由硬件自动执行),请求中断处理。5RX/TX:串行中断请求。当接收或发送完一串行帧 时,内部串行口中断请求标志位RI(SCON.0)或TI( SCON.1)置位(由硬件自动执行),请求中断。串行口 应用时,一般是RX、TX同时使用,相互配合完成串行数据传输工作。1. 5个中断源下一页上一页2. 4个中断有关的控制
6、寄存器(1)中断控制寄存器TCON 中断控制寄存器TCON有两个作用,即除了控制 定时/计数器T0和T1的溢出中断外,还控制外部中断 的触发方式和锁存外部中断请求标志位。TCON字节 地址为88H,可位寻址,位地址范围为88H8FH。地址位8FH8EH8DH8CH8BH8AH89H88H位定义TF1TR1TF0TR1IE1IT1IE0IT0图46 中断控制寄存器TCON各位定义下一页上一页地址位AFHAEHADH ACHABHAAHA9HA8H位定义EAESET1EX1ET0IT0(2) 串行口控制寄存器SCON串行口控制寄存器用于外部IO口扩展和单片机与计 算机、单片机、外部设备之间通信,与
7、外部中断控制无 关,将在串行口应用中介绍。(3) 中断允许控制寄存器IEMCS51对中断源的开放或屏蔽是由中断允许寄存 器IE控制的。IE的字节地址为A8H,可以按位寻址。2. 4个中断有关的控制寄存器下一页上一页2. 4个中断有关的控制寄存器IP规定了两个中断级别,称为低级优先级和高级优先 级。每一个中断源均可由程序设置为高级优先级中断或低 级优先级中断,从而实现中断嵌套。同一优先级中按照自然优先级的次序响应中断。在同 一优先级同时发生几个的中断请求时,响应哪个中断取决 于内部查询次序。(4)中断优先级控制寄存器IP表44 同级内中断查询次序下一页上一页先先同级查询次序同级查询次序后后3 3
8、 级中断控制开关设置1. 1. 第一级开关第一级开关中断触发方式开关中断触发方式开关 IT0/IT1=1时, 外部中断信号取下降沿触发方式。IT0/IT1=0时, 外部中断信号取电平触发方式,低电平维持时间过长时,一个中断申请会引发多个中断,因此必 须采用措施撤消中断申请。2. 2. 第二级开关第二级开关中断允许和开放中断开关中断允许和开放中断开关 五个中断源各有一个开关进行控制,通过软件对IE的 某位置1操作,实现相应中断允许开关闭合,于是某个中断申请被允许。注意,无论哪个或哪几个中断被允许,能否 实现中断还必须开放总中断,即用软件设置EA=1。3 3第三级开关第三级开关中断优先级开关设置中
9、断优先级开关设置 中断优先级控制寄存器IP的字节地址是B8H,可以 字节寻址,也可以位寻址。各位定义如下:图48 中断优先寄存器IP各位定义3 3 3 3 级中断控制开关设置级中断控制开关设置PS :串行口中断优先级控制位PT1:定时器T1中断优先级控制位PX1:外部中断1中断优先级控制位PT0:定时器T0中断优先级控制位 PX0:外部中断0中断优先级控制位2. 2. 中断服务子程序的结构中断服务子程序的结构(1) 保护现场 主程序使用一些 常用特殊功能寄存器和工作存储器, 例如ACC、DPTR、Rn等。一般在中 断服务程序中可能也要应用这些常用 的特殊功能寄存器、工作寄存器,执 行中断程序之
10、前,必须将这些单元的 内容保存起来,这样在执行完中断服 务程序返回主程序是能够恢复这些单 元的内容,使主程序能够继续按照中断前的状态继续执行。 424 中断服务程序的结构图49 中断程序结构图 保护现场的主要指令有PUSH。 下一页上一页(2)中断服务程序主体 中断服务程序主体是中断系统中独立的子程序,根据中断的要求来设计。(3)恢复现场 为了使中断服务程序返回主程序能够继续执行主程序,中断返回之前必须恢复堆栈的数据到原工作 寄存器中。注意堆栈操作必须遵循后进先出的原则。恢复现场的指令有POP。(4)中断返回 中断服务程序返回指令必须是RETI。CPU 执行RETI时自动从SP中取回断点地址,
11、继续执行主程序。424 中断服务程序的结构下一页上一页【例42】某中断系统使用作外部中断控制端,低电平触 发方式,设中断服务子程序名为EXINT0 ,试写出其初始化 程序。ORG 0000HLJMP MAINORG 0003HLJMP EXINT0ORG 0100HMAIN: ;主程序CLR IT0 ;设置为电平触发方式SETB EX0 ;允许中断SETB EA ;开中断 EXINT0: ;中断服务子程序RETI ;中断返回END4 42 25 5 中断计数流水灯硬件电路设计中断计数流水灯硬件电路设计中断方式计数流水灯电路如图410所示,单片机P2口接一共阳极数码管显示器,实现09的循环计数显示。 P0口接8个LED作流水灯,图中电阻均为限流电阻。中断 由P3.2口(INT0)上连接一个开关SW1,作外部中断控制 信号。发光二极管D9是指示开关状态而设立的。当开关断开时,单片机运行循环计数主程序;当开关闭合时,单片机运行流水灯中断程序,执行完中断程序后返回继续执行计数显示主程序。4 42 25 5 中断计数流水灯硬件电路设计中断计数流水灯硬件电路设计图410 中断计数流水灯电路下一页上一页