200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 单片机实验五 外部中断实验

单片机实验五 外部中断实验

时间:2024-01-10 20:29:57

相关推荐

单片机实验五 外部中断实验

目录

一.实验目的:

二.实验内容:

三.实验步骤:

四.实验参考程序:

五、实验结果

六、实验小结

一.实验目的:

1.掌握51单片机中断原理及编程方法;

2.了解中断触发方式及中断优先级的概念。

二.实验内容:

通过手动按键产生负脉冲信号,K3控制输出的负脉冲信号加于INT0,K4控制输出的负脉冲加于INT1.主程序以1秒为间隔循环点亮响铃的两个LED程序,设置INT0为低优先级,当按K3键并释放按键后,发出中断信号,使得8个LED以1秒为间隔“全亮-全灭”方式闪动3次。

完成上述试验后,设置INT1的触发方式为边沿触发,优先级为高优先级,安东开关K4,产生负脉冲,INT1中断服务为高优先级,按动开关K4,长生负脉冲,INT1响应,以0.5秒为间隔“全亮-全灭”方式闪动4次。

三.实验步骤:

1.理解TCON寄存器中IT0 IT1的设置,IE和EA的正旗设置。

2.理解外部中断的触发原理.

2.进入DEBUG方式,打开I/O口查看工具,监视P3口的输出变化。

4.生成HEX文件,烧入实验板,按键并观察发光二极管闪烁情况。

四.实验参考程序:

ORG 0000H;启动地址LJMP MAIN;转到主程序ORG 0003H;外部中断INT_0的入口地址LJMP INT_0;转向外部INT_0中断服务程序ORG 0013H;LJMP INT_1ORG 0030HMAIN:MOV SP,#07H;设定栈底MOV A,#0FCHSETB EA;允许单片机总断SETB EX0;允许外部断0SETB EX1;允许外部断1SETB IT1;置1,下降沿触发中断ETB PX1;LOOP:MOV P2,AACALL DELAY1;调用延时RL A;循环左移SJMP LOOP;CPU从LOOP处开始执行INT_0:PUSH ACC;将累加器压栈PUSH PSW;将程序状态字压栈SETB RS0;RE0置1CLR RS1;MOV A,#00HMOV R3,#6LOOP1:MOV P2,AACALL DELAY1CPL A;将A取反DJNZ R3,LOOP1;R3内容减1,非0跳转到LOOP1POP PSW;栈顶数据传送到PSWPOP ACC;出栈RETIINT_1:PUSH ACC;将累加器压栈PUSH PSW;将程序状态字压栈SETB RS1SETB RS0MOV A,#00HMOV R3,#8LOOP2:MOV P2,AACALL DELAY2CPL ADJNZ R3,LOOP2POP PSWPOP ACCRETIDELAY1: MOV R2,#10;延时一秒DL1: MOV R1,#200DL2:MOV R0,#248DJNZ R0,$;R0内容减1,非0跳转DJNZ R1,DL2;R1内容减1,非0跳转DL2DJNZ R7,DL1;同上RETDELAY2:MOV R0,#5;延时0.5秒DL3:MOV R1,#200;DL4:MOV R0,#248DJNZ R0,$;R0内容减1,非0跳转DJNZ R1,DL4;R1内容减1,非0跳转DL4DJNZ R2,DL3;同上RETEND

五、实验结果

六、实验小结

在每一行代码后添加注释可以帮助自己更熟练地记住一些汇编指令,SETB是将后面的寄存器置1,触发下降沿触发方式,觉得比用MOV指令要简便一些,区分开了SJMP和LJMP,以及了解了在指令中运用ACALL和LCALL的区别。在写代码方面还是不够熟练,在老师临时要求改代码的情况下,明显要比其他同学慢了一步,可以看出对一些指令的作用和含义理解的还是不透彻,课下会巩固自己的基础知识。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。