当前位置:文档之家› 单片机外部中断的使用

单片机外部中断的使用


while(1) { P1=i; delay_ms(250); i=_crol_(i,1); } }
将.HEX文件导入仿真图,运行并观察结果;
利用Keil软件将程序下载至实验箱,进行硬件仿真,观察实验结 果。
五、实验数据分析、误差分析、现象分析
现象:利用单片机外部中断0,使用边沿触发方式,当P3.2所接按键Байду номын сангаас下时,流水
三、使用仪器设备编号、部件及备件 1.实验室电脑; 2.单片机实验箱。 四、实验过程及数据、现象记录
在Proteus 环境下建立如下仿真原理图,并保存为文件;
原理图中常用库元件的名称:
无极性电容:CAP 极性电容:CAP-ELEC 单片机:AT89C51 晶体振 荡器:CRYSTAL 电阻:RES 按键:BUTTON 发光二极管:红色LED-RED 绿色LED-GREEN 蓝色LED-BLUE 黄色 LED-YELLOW
灯停止流水,闪烁两次,按键抬起时,恢复原来的流水状态。 六、回答思考题 1.若把边沿触发改为电平触发,有何不同?
答:边沿触发型, CPU在响应中断后由硬件自动清除其中断标志位IEO或 IE1 ,无需其他措施。电平触发型, CPU在响应中断后硬件不会自动清除其中断标 志位IEO或IE1 ,也不能用软件清除。在中断响应后,要立即撤销输入引脚上的低
在Keil环境下建立源程序并保存为.ASM文件,生成.HEX文件; 汇编语言参考程序如下:
ORG 0000H
LJMP MAIN ORG H ;外部中断0程序入口地址LJMP EXINT0 ORG 0030H MAIN: MOV SP,#60H ;堆栈指针初始化 SETB ;设置外部中断 0 为边沿触发 SETB ;开外部中断0 SETB ;开CPU总中断MOV A,#01H LOOP: MOV P1,A RL A CALL DELAY SJMP LOOP DELAY: MOV R1,# ;延时250ms子程序DL1: MOV R2,# DL2: MOV R3,# DJNZ R3,$ DJNZ R2,DL2 DJNZ R1,DL1 ;延时子程序返回EXINT0: PUSH PUSH CLR RS1 SETB RS0 MOV R0,# LP: MOV P1,#0FFH CALL DELAY MOV P1,#00H CALL DELAY DJNZ R0,LP POP PSW POP ACC ;中断返回END 将以上程序补充完整,流水时间间隔,闪烁时间间隔为250ms。C51 语言参考程序: #include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int void delay_ms(uint x) { uint i; uchar j; for(i=0;i<x;i++) for(j=0;j<120;j++); } void ex_int0()interrupt 0 { uchar i; for(i=0;i<5;i++) { P1=0x00; delay_ms(250); P1=0xff; delay_ms(250); } } void main() { uchar i=0xfe; IT0=1; EA=1; EX0=1;
电平
2.如何让流水灯保持原来的状态继续流水?
答:按下复位键,重新启动计数器,流水灯便可以继续流水。
哈尔滨理工大学荣成学院
单片机原理及应用 Protues 仿真实验
班级: 学号: 姓名: 日期:
实验三 单片机外部中断的使用
一、实验名称:单片机外部中断的使用 二、实验目的
1.掌握在Keil环境下建立项目、添加、保存源文件文件、编译源程序的方法; 2.掌握运行、步进、步越、运行到光标处等几种调试程序的方法; 3.掌握在Proteus环境下建立文件原理图的方法; 4..实现Proteus与Keil联调软件仿真。
相关主题