实验3外部中断程序_第1页
实验3外部中断程序_第2页
实验3外部中断程序_第3页
实验3外部中断程序_第4页
实验3外部中断程序_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、实验3 外部中断实验实验目的:1、学习外部中断技术的基本使用方法。2、学习中断服务程序的编程方法。3、中断服务程序与子程序的区别。4、消除按键抖动。实验重点:中断服务程序的编程方法实验难点:按键的判别(中断处理程序完成、按键的消抖实验电路图: 图1 外部中断实验图 图2 外部中断连接图1、按图2连接电路,运行Keil外部中断K1.asm(有详细的注释,程序代码如图3,分别按下K1、K2、。K5,观察实验结果,D8亮灭切换。修改成只有K1按键按下时D8灯才会亮灭,K2-K5按下时D8无反应。要求适当软件延时消抖,每次按键按下都能正确区分。 图3 实验任务1代码2、把按键接成外部中断模式,按键K1

2、第一次按下,D8亮其他灯灭;K1第二次按下,D9亮其他灯灭; K1第三次按下,D10亮其他灯灭;K1第四次按下,D11亮其他灯灭;K1第五次按下,D8-D11灯全亮;以上K1五次按下作为一个循环,K1第六次按下,重新开始D8亮其他灯灭;K1第七次按下,D9亮其他灯灭。3、编程实现3个按键:LED正常是循环显示09,按键K1能在循环显示和暂停循环之间切换;在暂停循环情况下,K2可以让数加1,K3可以让数减1,设置好后按K1可以从设置好后的数字开始循环显示。(画出流程图1、程序结构1、外部中断0入口地址 2、外部中断0初始化 3、外部中断0服务程序 ORG 0000H;复位入口AJMP MAINO

3、RG 0003H ;外部中断0入口AJMP PINT0ORG 0013H ;外部中断1入口AJMP PINT1ORG 0030H ;主程序MAIN:SETB IT0 ;外部中断初始化,负跳变触发中断=0 低电平触发中断SETB EX0 ;外部中断初始化,开INT0中断SETB EA ;外部中断初始化,开总允许开关SJMP $;等待中断,或者可以执行其它任务;中断服务程序PINT0:PUSH PSW ;现场保护,看需要,如想把中断里面的数据传递到中断外面的则不用保护PUSH ACC;中断处理,要求尽快处理完后。POP ACC ;现场恢复,后进先出POP PSWRETI ;中断返回END注意:1、

4、中断服务函数程序满足下列中断条件后自动调用硬件LCALL执行,不能在程序里面CALL调用或JMP跳入中断服务函数程序。CPU开放中断(即EA=1相应的中断运行位为1(EX0=1有中断源向CPU提出中断申请(p3.2有低电平或下降沿,IE0=1MAIN:。Call PINT0 ;不允许AJMP PINT0;不允许J mp mainPINT0:。;中断服务程序RETI ;中断返回2、中断服务函数退出出口只能是RETI,中断服务函数不允许用JMP跳出。如下面的是错误的。PINT0:PUSP PSW ;现场保护,看需要,如想把中断里面的数据传递到中断外面的则不用保护PUSH ACC;中断处理,要求尽快

5、处理完后。JMP main;跳出中断服务程序到main,错误Jmp abc。ABC:POP ACC; 现场恢复,后进先出POP PSWRETI ;中断返回这里的出口一般是ABC位置,即从现场恢复、RETI退出3、一般情况下,必须退出中断服务函数,不能在中断服务函数里面循环运行PINT0:PUSP PSW ;现场保护,看需要,如想把中断里面的数据传递到中断外面的则不用保护PUSH ACC;中断处理,要求尽快处理完后。AA:JMP AA;不能在中断服务函数里面循环运行ABC:POP ACC; 现场恢复,后进先出POP PSWRETI ;中断返回2、按键消除抖动通常的按键所用开关为机械弹性开关,当机

6、械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。抖动时间的长短由按键的机械特性决定,一般为5ms10ms。这是一个很重要的时间参数,在很多场合都要用到。 如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,5ms10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿抖动消失后才能转入该键的处理程序。JB P1.3,EXIT ;CALL D

7、elay10ms;延时10ms消除抖动JB P1.3,EXIT ;延时后第二次判断是否按键真的按下JNB P1.3,$;等按键释放CALL Delay10ms;延时10ms消除抖动;这里执行按键按下,执行按键处理Exit:。3、由于轻触按键的工作特点,不能记忆按键的次数,专门设置一个变量来保存按键的次数或者状态。KeyData EQU 31H ;KeyData存储工作状态1-5五种状态Org 0000hAjmp mainOrg 0003hAjmp pinto。Main: mov KeyData,#0 ;KeyData赋初值=0。Pint0:。JB P1.3,AAA ;没有消抖INC KeyDa

8、ta ;每按一次K1,KeyData加1Mov a,KeyData ;送A去检测超限Cjne a,#6h,AA ; KeyData超限制Mov KeyData,#1;超限重新赋值AA:。Reti开始 外部中断 0 入口地址 (03H) 外部中断初始化设置 IT0 触发方式(=0 低电平触发,=1 下降沿触发) EX0 外部中断 0 允许(=1 允许) EA 全局中断允许(=1 允许) 其他初始化,如 KeyData、P1 置输入等 KeyData=1? 否 否 否 否 否 D10 灯 亮, P2.3 低电 平, 其他 高电 平 是 KeyData=5? KeyData=2? 是 是 D8 灯 亮, P2.5 低电 平, 其他 高电 平 KeyData=3? 是 D9 灯 亮, P2.4 低电 平, 其他 高电 平 KeyData=4? D11 灯 亮, P2.2 低电 平, 其他 高电 平 是 D8 到 D11 灯全 亮, P2.2 到 P2.5 低电 平, 其他

温馨提示

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

评论

0/150

提交评论