




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
中国石油大学(北京) 实 验 报 告 实验课程:单片机原理及应用 实验名称:实验四——LED灯和数码显示器的中断控制 班级:学号:姓名: 总学时:48教师:成绩: 实验日期:2011年11月7日 实验目的 掌握外部中断的工作原理,学会中断程序设计。 实验内容 1、按照教材图A.53,绘制实验四电路原理图; 2、采用外部中断原理编程,按键K1、K2均设置为下降沿触发方式,且为自然优先级; 3、编写实验四C51程序,实现如下功能:K1对应于D1状态反转;K2对应于0~F间的数码管加一计数显示; 3、观察仿真结果,完成实验报告。 实验要求 提交的实验报告中应包括:电路原理图,外部中断工作原理阐述,源程序(含流程图与注释语句),运行效果图,实验小结。 提交实验报告的电子邮件主题及存盘文件名格式如,2005041220马晓明实验四。 1、电路原理图 电路图如下 电路分析:K1、K2分别接INT0(P3.2)和INT1(P3.3)引脚(公共端接地),单击后可产生下降沿脉冲;D1接P0.4引脚,高电平驱动,通过上拉电阻接电源;共阴极数码管LED1接P2口,静态显示(com端接地)。 2、外部中断原理 对于K1,按下K1时在K1弹起瞬间 3、C51程序 程序流程图 主函数 #include<reg51.h> charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};//LED字模 sbitP0_4=P0^4; intcount=0; int0_key()interrupt0//中断程序 { P0_4=!P0_4; } int1_key()interrupt2//中断程序 { count++; if(count>0x0f) count=0; P2=led_mod[count]; } voidmain()//主函数 { IT0=1;EX0=1;EA=1; IT1=1; EX1=1; P0_4=0; P2=0x3f; while(1); } 4、仿真运行效果 加载.hex文件开始仿真,效果如下图示 按下K1,D1灯亮,如下图所示 再按下K1,D1灯灭,如下图 继续按下K1则D1将“亮→灭→亮→灭→…→亮→灭”如此循环。 当按K2时,每按一次数码显示管上的字符变化一次,持续按K2则数码显示管依次显示1-F: 5、实验小结 实验结果:持续按下K1则D1将“亮→灭→亮→灭→…→亮→灭”如此循环,表明实现了K1对应于D1状态反转这个功能;持续按下持续按K2则数码显示管依次显示1-F,实现了K2对应于0~F间的数码管加一计数显示。 体会:通过实验对Protues有了更多的了解,操作起来更加熟练,能很快的完成绘图;与前几次相比,编程时也更得心应手,能熟练的运用软件找出自己所编程序中的语法问题及其他问题,并予以改正。

ys****39
实名认证
内容提供者


最近下载