C51单片机教程第8章.ppt

上传人:s****8 文档编号:67324374 上传时间:2022-12-24 格式:PPT 页数:24 大小:194KB
返回 下载 相关 举报
C51单片机教程第8章.ppt_第1页
第1页 / 共24页
C51单片机教程第8章.ppt_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《C51单片机教程第8章.ppt》由会员分享,可在线阅读,更多相关《C51单片机教程第8章.ppt(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第8章章 MCS-51单片机外部中断的应用单片机外部中断的应用8.1 外部中断的应用外部中断的应用8.2 外部中断源的扩展外部中断源的扩展1.实训目的实训目的掌握中断应用技术及编程方法掌握中断应用技术及编程方法掌握多级外部中断编程方法掌握多级外部中断编程方法8.1 外部中断的应用外部中断的应用2.功能设计功能设计用用P1.0、P1.1、P1.2口控制口控制3个发光二极管个发光二极管L1L3的的亮灭。设系统晶振为亮灭。设系统晶振为6MHz。主程序:主程序:(1)程序初始化,对相关寄存器进行设置。)程序初始化,对相关寄存器进行设置。(2)由)由P1.3产生脉宽为产生脉宽为1s的方波。的方波。中断

2、程序:中断程序:INT0中断使中断使L1L3点亮点亮10s;INT1中断中断使使L1L3交替亮灭交替亮灭1s。中断源:中断源:开关开关K0按下,申请外部中断按下,申请外部中断0;用;用P1.3输出输出脉冲作为外部中断脉冲作为外部中断1的中断源。的中断源。3.背景知识背景知识(1)设计中断控制程序时,首先要对与中断控制有设计中断控制程序时,首先要对与中断控制有关的寄存器进行设置。需要设置的特殊功能寄存器有关的寄存器进行设置。需要设置的特殊功能寄存器有IE、TCON和和IP。设设INT0、INT1的触发方式为下降的触发方式为下降沿触发,沿触发,INT0为高级中断,为高级中断,INT1为低级中断。则

3、各为低级中断。则各相关寄存器的设置见书相关寄存器的设置见书155156页。页。(2)中断入口地址中断入口地址INT0中断入口地址为中断入口地址为 0003H;INT1 中断入口地址为中断入口地址为0013H。4.硬件电路与单片机资源分配硬件电路与单片机资源分配硬件电路如图硬件电路如图8-1所示。所示。硬件资源分配:硬件资源分配:P1.0、P1.1、P1.2口用于驱动口用于驱动3个发个发光二极管;光二极管;P1.3输出脉宽为输出脉宽为1s间隔的脉冲,用于产生间隔的脉冲,用于产生外部中断外部中断1的中断信号;的中断信号;R3、R6、R7为延时程序中为延时程序中所用的计数器。所用的计数器。图图8-1

4、 中断实训中断实训15.参考程序参考程序 ORG 0000H;CPU起始地起始地址址AJMP MAIN;跳转到主程跳转到主程序序ORG 0003H;INT0中断入中断入口地址口地址AJMP JINT0;转到转到INT0处处理程序理程序ORG 0013H;INT1中断入中断入口地址口地址AJMP JINT1;转到转到INT1处处理程序理程序MAIN:NOP;主程序段主程序段MOV SP,#40H;设定堆栈设定堆栈MOV A,#0FFH;0FF送送AMOV P1,A;初始化初始化P1口,口,3位位发光二极管全灭发光二极管全灭SETB IT0;INT0为边沿为边沿触发触发SETB IT1;INT1为

5、边沿为边沿触发触发SETB PX0;INT0为高级为高级中断中断SETB EX0;开放开放INT0SETB EX1;开放开放INT1SETB EA;开总中断开总中断LOOP:MOV R3,#0AH;延时延时1sLCALL YS100;调用延时调用延时100ms子子程序程序DJNZ R3,LOOPCPLP1.3AJMP LOOP;主程序循环,主程序循环,如果如果有中断,则转到中断处理程序有中断,则转到中断处理程序JINT0:NOP;INT0处理程序,如处理程序,如果果K0按下则转此段按下则转此段CLREA;关中断保护关中断保护现场现场PUSH 03H;保护保护R3PUSH 06;保护保护R6PU

6、SH 07H;保护保护R7CLRP1.0;L1L3全亮全亮CLRP1.1CLRP1.2MOV R2,100;延时延时10sLOOP1:LCALL YSA100;调用延时调用延时100ms子子程序程序DJNZ R2,LOOP1POP07H;恢复现场恢复现场POP06HPOP03HSETB EA;开中断开中断RETI;中断返回中断返回JINT1:NOPCLREA;关中断,保关中断,保护现场护现场PUSH 03H;保护保护R3PUSH 06;保护保护R6PUSH 07H;保护保护R7SETB EA;开中断开中断CPLP1.0;灯亮灯亮/灭灭CPLP1.1CPLP1.2CLREA;关中断,恢关中断,恢

7、复现场复现场POP07HPOP06HPOP03HSETB EA;开中断开中断RETI;中断返回中断返回YS100:MOV R6,99;延时延时100子程序子程序L100:MOV R7,124L1:NOPNOPDJNZ R7,L1NOPNOPDJNZ R6,L100 NOPNOPRETEND6.总结与提高总结与提高本电路比较简单,目的是学习中断程序设计的基本方本电路比较简单,目的是学习中断程序设计的基本方法。在设计中断程序时,注意主程序与中断程序的编法。在设计中断程序时,注意主程序与中断程序的编制方法。应注意中断输入的电平应不高于制方法。应注意中断输入的电平应不高于+5V,且外且外部中断输入要求

8、是低电平或由高到低的下降沿。部中断输入要求是低电平或由高到低的下降沿。编写中断服务程序时应注意以下几个问题:编写中断服务程序时应注意以下几个问题:(1)两个相邻中断源中断服务程序入口地址相距只两个相邻中断源中断服务程序入口地址相距只有有8个单元,一般的中断服务程序是容纳不下的,通个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址单元处存放一条常是在相应的中断服务程序入口地址单元处存放一条无条件转移指令无条件转移指令LJMP或或AJIMP,转移到中断服务程转移到中断服务程序。序。(2)在中断服务程序中,应注意保护现场,保证中在中断服务程序中,应注意保护现场,保证中断返回时

9、能可靠地恢复现场,使单片机继续进行原来断返回时能可靠地恢复现场,使单片机继续进行原来的工作。保护和恢复现场操作时应关中断。的工作。保护和恢复现场操作时应关中断。(3)若需要在执行当前中断程序时禁止更高优先级若需要在执行当前中断程序时禁止更高优先级的中断,可以先用软件关闭的中断,可以先用软件关闭CPU总中断或禁止相关中总中断或禁止相关中断源中断,在中断返回前再开放中断。断源中断,在中断返回前再开放中断。1.实训目的实训目的掌握中断应用技术及编程方法掌握中断应用技术及编程方法掌握外部中断的扩展技术及编程方法掌握外部中断的扩展技术及编程方法2.功能设计功能设计主程序:主程序:P1口用于控制发光二极管

10、口用于控制发光二极管L1L8的交替亮的交替亮灭。灭。中断源:中断源:串行口扩展外部中断源。无中断时,串行口扩展外部中断源。无中断时,8位发位发光二极管按固定时间间隔交替亮灭,有中断时,光二极管按固定时间间隔交替亮灭,有中断时,8位位发光二极管全部点亮。发光二极管全部点亮。8.2 外部中断源的扩展外部中断源的扩展3.背景知识背景知识(1)利用串行口方式利用串行口方式0串行接收功能来扩展外部中串行接收功能来扩展外部中断源。串行口串行接收端为断源。串行口串行接收端为RXD(P3.0),),当单片机当单片机启动串行接收后,启动串行接收后,RXD开始逐位接收数据。当接收开始逐位接收数据。当接收完完8位数

11、时,串行口向位数时,串行口向CPU发出中断申请,发出中断申请,RI1,CPU响应中断,并执行中断服务程序。注意,中断返响应中断,并执行中断服务程序。注意,中断返回前,必须通过编程将回前,必须通过编程将RI清清0。串行口控制寄存器串行口控制寄存器SCON的设置如下:的设置如下:SCONSM0SM1SM2RENTB8RB8TIRI98H00010000(2)串行口中断入口地址:串行口中断入口地址:0023H。(3)使用使用8位并入串出移位寄存器位并入串出移位寄存器74LS165实现外部实现外部中断源的扩展。管脚中断源的扩展。管脚2为移位脉冲输入端,与单片机为移位脉冲输入端,与单片机串行口同步脉冲输

12、出端串行口同步脉冲输出端TXD相连。管脚相连。管脚15为串行移为串行移位输出控制端,高电平禁止串行输出,低电平允许串位输出控制端,高电平禁止串行输出,低电平允许串行输出。外部中断信号线行输出。外部中断信号线EXINT接管脚接管脚15,低电平,低电平申请中断。申请中断。4.硬件电路硬件电路硬件原理图如图硬件原理图如图8-2所示。所示。图图8-2 串行口扩展外部中断串行口扩展外部中断5.参考程序参考程序ORG 0000H;CPU起始地起始地址址AJMP MAIN;转主程序转主程序ORG 0023H;串行口中断串行口中断入口地入口地址址AJMP JSBUF;转串行口中转串行口中断处理断处理程序程序M

13、AIN:NOP;主程序段主程序段MOV SP,#40H;设定堆栈设定堆栈MOV A,#0FFHMOV P1,A;初始化初始化P1口口MOV SCON,#10H;设定串行口设定串行口工作方工作方式式0,允许接,允许接受受SETB ES ;允许串行口允许串行口中断中断SETB EA;开总中断,开总中断,EA=1(开放总中断)开放总中断)LOOP:MOV A,#0AAHMOV P1,A;点亮点亮L1、L3、L5、L7LCALL DLS;调延时程序调延时程序MOV A,#55HMOV P1,A;点亮点亮L2、L4、L6、L8LCALL DLS;调延时程序调延时程序AJMP LOOP;主程序循环主程序循

14、环执行,执行,如果有中断,则转如果有中断,则转中断处理程序中断处理程序JSBUF:NOPCLREAPUSH ACC;保护现场保护现场PUSH 00H;保护保护R0PUSH 01H;保护保护R1CLRRI;清串行中断清串行中断标志标志MOV A,#0MOV P1,A;灯全亮灯全亮LCALL DLS;调用延时程调用延时程序序POPACC;恢复现场恢复现场POP01HPOP00HPOPACCSETB EARETIDLS:MOV R1,#0FFHLOP1:MOV R0,#0FFHLOP:DJNZ R0,LOPDJNZ R1,LOP1RETEND6.总结与提高总结与提高在本节的实训中,不需要处理串行接收的数据,只需在本节的实训中,不需要处理串行接收的数据,只需要利用串行口中断信号来扩展一个外部中断源。注意,要利用串行口中断信号来扩展一个外部中断源。注意,外部中断源外部中断源EXINT维持低电平的时间要大于维持低电平的时间要大于8个个TXD端输出的移位脉冲的时间。扩展外部中断源的方法较端输出的移位脉冲的时间。扩展外部中断源的方法较多,除了本节介绍的方法外,还可以应用优先编码器多,除了本节介绍的方法外,还可以应用优先编码器74LS348、74LS148等进行外部中断源的扩展。等进行外部中断源的扩展。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com