爱玩科技网
您的当前位置:首页单片机指示灯和数码管的中断控制实验报告

单片机指示灯和数码管的中断控制实验报告

来源:爱玩科技网
 实验四、指示灯和数码管的中断控制

一、 实验目的

掌握外部中断的工作原理,学会中断程序设计。

二、 实验内容

1、按照教材图,绘制实验四电路原理图;

2、要求采用外部中断原理完成本次实验,其中按键K1、K2均设置为下降沿触发方式,自然优先级;

3、编写C51程序实现如下功能:开机后D1灭灯,LED1黑屏,随后单击K1→D1状态反转,单击K2 →LED1从0开始循环显示0~F字符。

4、观察仿真结果,完成实验报告。

三、 实验要求

提交的实验报告中应包括:电路原理图,外部中断工作原理阐述(以K1为例说明中断响应过程),C51源程序(含流程图与注释语句),运行效果(含运行截图与说明),实验小结。

提交实验报告的电子邮件主题及存盘文件名格式如,20马晓明实验四。

1、电路原理图

2、外部中断工作原理阐述

持续按下K1则D1将“亮→灭→亮→灭→亮→灭如此循环,表明实现了K1对应于D1状态反转这个功能;持续按下持续按K2则数码显示管依次显示1-F,实现了K2对应于0~F间的数码管加一计数显示。

3、C51程序

#include<> sbit P0_4=P0^4; unsigned char count=0; unsigned

led_mod[]

=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void main(){ P2=0x00; P0_4=0; EA=1; EX1=EX0=1; IT1=IT0=1; while(1); }

void INT_OSVR() interrupt 0 {P0_4=!P0_4;}

void INT_1SVR() interrupt 2

{count++; if(count==16) count=1;

P2=led_mod[count]; }

4、仿真运行效果

5、实验小结

通过本次实验对Protues有了更多的了解,同时了解到中断系统在实际中的更好应用。经过编程操作起来更加熟练,能很快的完成绘图,编程时也更得心应手,能熟练的运用软件找出自己所编程序中的语法问题及其他问题,并予以改正。相信在今后的学习与试验中能取得更大的进步。

因篇幅问题不能全部显示,请点此查看更多更全内容