单片机实验:实验五 中断实验_第1页
单片机实验:实验五 中断实验_第2页
单片机实验:实验五 中断实验_第3页
单片机实验:实验五 中断实验_第4页
单片机实验:实验五 中断实验_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验五中断实验———有急救车的交通灯控制实验一、实验目的:学习外部中断技术的基本使用方法。学习中断处理程序的编程方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验内容:在实验三的内容的基础上增加允许急救车优先通过的要求。当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本实验以单脉冲为中断申请,表示有急救车通过。四、实验原理:交通灯的燃灭规律见实验三。本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:MOVA,#0F0H(0)MOVX@R1,A(1)MOVSAVE,A(2)程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOVA,SAVE指令,由于主程序中没有执行(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将(1)、(2)两句顺序颠倒一下则没有问题。发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。五、实验原理图:(同实验三)六、实验步骤:74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273\接片选信号CS2,此时74LS273的片选地址为CFB0H~CFB7H之间任选。单脉冲输出端P-接CPU板上的INT0。七、程序框图:主程序框图中断程序框图八、参考程序:T5.ASMNAMET5;中断控制实验OUTPORTEQU0CFB0H;端口地址SAVEEQU55H;save保存从端口cfa0输出的数据CSEGAT0000HLJMPSTARTCSEGAT4003HLJMPINTCSEGAT4100HSTART:SETBIT0SETBEX0SETBEAMOVA,#11H;置首显示码MOVSAVE,A;保存ACALLDISP;显示输出ACALLDE3S;延时3秒LLL:MOVA,#12H;东西路口绿灯亮,南北路口红灯亮MOVSAVE,AACALLDISPACALLDE10S;延时10秒MOVA,#10H;东西路口绿灯灭MOVSAVE,AACALLDISPMOVR2,#05H;东西路口黄灯闪烁5次TTT:MOVA,#14HMOVSAVE,AACALLDISPACALLDE02SMOVA,#10HMOVSAVE,AACALLDISPACALLDE02SDJNZR2,TTTMOVA,#11H;红灯全亮MOVSAVE,AACALLDISPACALLDE02S;延时0.2秒MOVA,#21H;东西路口红灯亮,南北路口绿灯亮MOVSAVE,AACALLDISPACALLDE10S;延时10秒MOVA,#01H;南北路口绿灯灭MOVSAVE,AACALLDISPMOVR2,#05H;南北路口黄灯闪烁5次GGG:MOVA,#41HMOVSAVE,AACALLDISPACALLDE02SMOVA,#01HMOVSAVE,AACALLDISPACALLDE02SDJNZR2,GGGMOVA,#11H;红灯全亮MOVSAVE,AACALLDISPACALLDE02S;延时0.2秒JMPLLL;转LLL循环DE10S:MOVR5,#100;延时10秒JMPDE1DE3S:MOVR5,#30;延时3秒JMPDE1DE02S:MOVR5,#02;延时0.2秒DE1:MOVR6,#200DE2:MOVR7,#126DE3:DJNZR7,DE3DJNZR6,DE2DJNZR5,DE1RETINT:CLREA PUSHACC;中断处理PUSHPSWMOVA,R5PUSHACCMOVA,#11H;红灯全亮,绿、黄灯全灭ACALLDISPDEL10S:MOVR3,#100;延时10秒DEL1:MOVR2,#200DEL2:MOVR5,#126DEL3:DJNZR5,DEL3DJNZR4,DEL2DJNZR3,DEL1MOVA,SAVE;取SAVE中保存数据输出到cfa0端口ACALLDISPPOPACC;出栈MOVR5,APOP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论