C51单片机教程第8章.ppt

C51单片机教程第8章.ppt

ID:48181807

大小:194.00 KB

页数:24页

时间:2020-01-18

C51单片机教程第8章.ppt_第1页
C51单片机教程第8章.ppt_第2页
C51单片机教程第8章.ppt_第3页
C51单片机教程第8章.ppt_第4页
C51单片机教程第8章.ppt_第5页
资源描述:

《C51单片机教程第8章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第8章MCS-51单片机外部中断的应用8.1外部中断的应用8.2外部中断源的扩展1.实训目的掌握中断应用技术及编程方法掌握多级外部中断编程方法8.1外部中断的应用2.功能设计用P1.0、P1.1、P1.2口控制3个发光二极管L1~L3的亮灭。设系统晶振为6MHz。主程序:(1)程序初始化,对相关寄存器进行设置。(2)由P1.3产生脉宽为1s的方波。中断程序:INT0中断使L1~L3点亮10s;INT1中断使L1~L3交替亮灭1s。中断源:开关K0按下,申请外部中断0;用P1.3输出脉冲作为外部中断1的中断源。3.背景知识(1)

2、设计中断控制程序时,首先要对与中断控制有关的寄存器进行设置。需要设置的特殊功能寄存器有IE、TCON和IP。设INT0、INT1的触发方式为下降沿触发,INT0为高级中断,INT1为低级中断。则各相关寄存器的设置见书155~156页。(2)中断入口地址INT0中断入口地址为0003H;INT1中断入口地址为0013H。4.硬件电路与单片机资源分配硬件电路如图8-1所示。硬件资源分配:P1.0、P1.1、P1.2口用于驱动3个发光二极管;P1.3输出脉宽为1s间隔的脉冲,用于产生外部中断1的中断信号;R3、R6、R7为延时程序中

3、所用的计数器。图8-1中断实训15.参考程序ORG0000H;CPU起始地址AJMPMAIN;跳转到主程序ORG0003H;INT0中断入口地址AJMPJINT0;转到INT0处理程序ORG0013H;INT1中断入口地址AJMPJINT1;转到INT1处理程序MAIN:NOP;主程序段MOVSP,#40H;设定堆栈MOVA,#0FFH;0FF送AMOVP1,A;初始化P1口,3位发光二极管全灭SETBIT0;INT0为边沿触发SETBIT1;INT1为边沿触发SETBPX0;INT0为高级中断SETBEX0;开放INT0SE

4、TBEX1;开放INT1SETBEA;开总中断LOOP:MOVR3,#0AH;延时1sLCALLYS100;调用延时100ms子程序DJNZR3,LOOPCPLP1.3AJMPLOOP;主程序循环,如果有中断,则转到中断处理程序JINT0:NOP;INT0处理程序,如果K0按下则转此段CLREA;关中断保护现场PUSH03H;保护R3PUSH06;保护R6PUSH07H;保护R7CLRP1.0;L1~L3全亮CLRP1.1CLRP1.2MOVR2,#100;延时10sLOOP1:LCALLYSA100;调用延时100ms子程序

5、DJNZR2,LOOP1POP07H;恢复现场POP06HPOP03HSETBEA;开中断RETI;中断返回JINT1:NOPCLREA;关中断,保护现场PUSH03H;保护R3PUSH06;保护R6PUSH07H;保护R7SETBEA;开中断CPLP1.0;灯亮/灭CPLP1.1CPLP1.2CLREA;关中断,恢复现场POP07HPOP06HPOP03HSETBEA;开中断RETI;中断返回YS100:MOVR6,#99;延时100子程序L100:MOVR7,#124L1:NOPNOPDJNZR7,L1NOPNOPDJNZ

6、R6,L100NOPNOPRETEND6.总结与提高本电路比较简单,目的是学习中断程序设计的基本方法。在设计中断程序时,注意主程序与中断程序的编制方法。应注意中断输入的电平应不高于+5V,且外部中断输入要求是低电平或由高到低的下降沿。编写中断服务程序时应注意以下几个问题:(1)两个相邻中断源中断服务程序入口地址相距只有8个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址单元处存放一条无条件转移指令LJMP或AJIMP,转移到中断服务程序。(2)在中断服务程序中,应注意保护现场,保证中断返回时能可靠地恢复

7、现场,使单片机继续进行原来的工作。保护和恢复现场操作时应关中断。(3)若需要在执行当前中断程序时禁止更高优先级的中断,可以先用软件关闭CPU总中断或禁止相关中断源中断,在中断返回前再开放中断。1.实训目的掌握中断应用技术及编程方法掌握外部中断的扩展技术及编程方法2.功能设计主程序:P1口用于控制发光二极管L1~L8的交替亮灭。中断源:串行口扩展外部中断源。无中断时,8位发光二极管按固定时间间隔交替亮灭,有中断时,8位发光二极管全部点亮。8.2外部中断源的扩展3.背景知识(1)利用串行口方式0串行接收功能来扩展外部中断源。串行口

8、串行接收端为RXD(P3.0),当单片机启动串行接收后,RXD开始逐位接收数据。当接收完8位数时,串行口向CPU发出中断申请,RI=1,CPU响应中断,并执行中断服务程序。注意,中断返回前,必须通过编程将RI清0。串行口控制寄存器SCON的设置如下:SCONSM0SM1SM2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。