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

  • 559
  • 0
  • 约1.03千字
  • 约 5页
  • 2020-08-15 发布于江苏
  • 举报

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

实验四、指示灯和数码管的中断控制 一、 实验目的 掌握外部中断的工作原理,学会中断程序设计。 二、 实验内容 1、按照教材图 A.53 ,绘制实验四电路原理图; 2、要求采用外部中断原理完成本次实验,其中按键 K1 、K2 均设置为下降 沿触发方式,自然优先级; 3、编写 C51 程序实现如下功能:开机后 D1 灭灯, LED1 黑屏,随后单击 K1 →D1 状态反转,单击 K2 → LED1 从 0 开始循环显示 0~ F 字符。 4、观察仿真结果,完成实验报告。 三、 实验要求 提交的实验报告中应包括:电路原理图,外部中断工作原理阐述(以 K1 为 例说明中断响应过程),C51 源程序(含流程图与注释语句) ,运行效果(含运行 截图与说明),实验小结。 提交实验报告的电子邮件主题及存盘文件名格式如, 2005041220 马晓明实 验四。 1、电路原理图 2、外部中断工作原理阐述 持续按下 K1 则 D1 将“亮→灭→亮→灭→亮→灭如此循环,表 明实现了 K1 对应于 D1 状态反转这个功能;持续按下持续按 K2 则数 码显示管依次显示 1-F,实现了 K2 对应于 0~F 间的数码管加一计数 显示。 3、 C51 程序 #includereg51.h 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,0 x5e,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 有了更多的了解,同时了解到中断系统在实际中的更好应用。 经过编程操作起来更加熟练, 能很快的完成绘图, 编程时也更得心应手, 能熟练的运用软件 找出自己所编程序中的语法问题及其他问题, 并予以改正。 相信在今后的学习与试验中能取得更大的进步。

文档评论(0)

1亿VIP精品文档

相关文档