单片机实验六-中断系统实验.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验六-中断系统实验

电子信息工程系实验报告 课程名称:单片机与接口技术 实验项目名称:中断系统实验 实验时间:2013-5-29 班级:通信10 姓名:Microlab_4 学号: 实 验 目 的: 熟悉keil仿真软件、proteus仿真软件的使用和单片机外部中断的使用。了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。熟悉中断处理特别是外部中断处理的过程,掌握中断处理子程序的书写格式和使用方法。 实 验 原 理: 现代的计算机都具有实时处理功能,能对外部发生的事件如人工干预、外部事件及意外故障做出及时的响应或处理,这是依靠计算机的中断系统来实现的。 51单片机内部有一个中断管理系统,它能对内部的定时器事件、串行通信的发送和接收事件及外部事件(如键盘按键动作)等进行自动的检测判断,当有某个事件产生时,中断管理系统会置位相应标志通知CPU,请求CPU迅速去处理。CPU检测到某个标志时,会停止当前正在处理的程序流程,转去处理所发生的事件(针对发生的事件,调用某一特定的函数,称为该事件的中断服务函数),处理完以后,再回到原来被中断的地方,继续执行原来的程序。 MCS-51单片机最典型的有5个中断源(外部中断0、1,内部定时器中断0、1,串口中断),具有两个中断优先级。两个外部中断:(P3.2 — INT0、P3.3 — INT1)上输入的外部中断源,低电平或负跳变有效,置位TCON中的IE0和IE1中断请求标志位。通过外部中断源触发方式控制位IT可以使外部中断为电平触发方式( 0)或边沿触发方式( 1)。另外控制中断允许寄存器IE可以开放中断。 使用MCS-51的中断,要为使用到的中断源编写中断服务程序。C51为中断服务程序的编写提供了方便的方法。C51的中断服务程序是一种特殊的函数,它的说明形式为: void 函数名 void interrupt n using m 函数体语句 这里,interrupt和using是为编写C51中断服务程序而引入的关键字,interrupt表示该函数是一个中断服务函数,interrupt后的整数n表示该中断服务函数是对应哪一个中断源。 实 验 环 境: 硬件:微机、单片机仿真器、单片机实验板、连线若干 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 实 验 内 容 及 过 程: 一、利用外部中断INT1控制数码管显示0到9。 二、利用外部中断INT1控制两个数码管显示00到99。 1、打开Proteus,绘制电路图,如图1-1,1-2所示: 图1-1 整体电路图 图1-2整体电路图 2、开启keil并在project中选择New Project,新建项目,然后在File中选择New…。 3、保存为lesson1-1.lesson1-2,选择,选择,点击确定,弹出一个对话框选择“否”。 4、在新建的空页中编写程序,并保存为lesson1-1.c,lesson1-2.c。然后编译,加载,运行调试。 5、双击Target1出现Source Group 1点击鼠标右键选择Add files to group ‘Source Group 1’,选中lesson1-1,lesson1-2点击Add击Close 6、点击 如图1-3作 图1-3 点击运行,如果显示无错误就编译成功 7、双击AT89C51点击选择hex文件点击OK点击左下角的运行。 实 验 结 果 及 分 析: 一、单个数码管显示中断实验代码如下: #include unsigned char i; code char tab[10] 0x3f,0x06,0x5b,0x4F,0x66,0x6d,0x7d,0x07,0x7f,0x6f ; int1 interrupt 2 i++; if i 10 P0 tab[i]; else i 0;P0 tab[0]; main EA 1;EX1 1; IT1 1; P0 0x3f; while 1 ; /*等待中断*/ 实验结果如下图1-4所示: 图1-4 二、两个数码管显示中断实验代码如下: #include unsigned char a,i,j; void delay unsigned int m ; code char tab[10] 0x3f,0x06,0x5b,0x4F,0x66,0x6d,0x7d,0x07,0x7f,0x6f ; void int1 interrupt 2 a++; i a%10; j a/10; main EA 1;EX1 1;IT1 1; while 1 if a 100 P2 0xfe; P0 tab[j]; del

文档评论(0)

sb9185sb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档