单片机实验六-中断系统实验
单片机中断实验实训报告
一、实验背景随着电子技术的飞速发展,单片机因其体积小、成本低、功能强大等优点,在各个领域得到了广泛应用。
中断技术是单片机设计中非常重要的一部分,它允许单片机在执行程序的过程中,能够及时响应外部事件,从而提高系统的实时性和效率。
本实训旨在通过实验,加深对单片机中断系统的理解,掌握中断系统的使用方法,并学会在实际应用中灵活运用中断技术。
二、实验目的1. 熟悉单片机中断系统的基本概念和原理。
2. 掌握中断源、中断优先级、中断服务程序等基本概念。
3. 学会使用单片机的中断系统实现实时响应外部事件。
4. 培养动手实践能力和问题解决能力。
三、实验器材1. 单片机实验板2. 示波器3. 电源4. 连接线5. 逻辑分析仪(可选)四、实验内容1. 实验一:外部中断实验(1)实验目的:验证外部中断功能,实现按键控制LED灯的点亮和熄灭。
(2)实验步骤:a. 将外部中断0(INT0)引脚连接到按键,按键按下时产生低电平信号。
b. 编写中断服务程序,实现按键按下时点亮LED灯,按键释放时熄灭LED灯。
c. 编译程序,下载到单片机实验板上。
d. 测试实验效果,观察LED灯的点亮和熄灭情况。
2. 实验二:定时器中断实验(1)实验目的:验证定时器中断功能,实现LED灯的定时闪烁。
(2)实验步骤:a. 配置定时器T0为模式1,设置定时器初值,使定时器溢出时间为1秒。
b. 开启定时器中断,编写定时器中断服务程序,实现LED灯的定时闪烁。
c. 编译程序,下载到单片机实验板上。
d. 测试实验效果,观察LED灯的闪烁情况。
3. 实验三:中断嵌套实验(1)实验目的:验证中断嵌套功能,实现定时器中断和外部中断的嵌套。
(2)实验步骤:a. 配置定时器T0为模式1,设置定时器初值,使定时器溢出时间为1秒。
b. 开启定时器中断和外部中断,设置中断优先级。
c. 编写定时器中断服务程序和外部中断服务程序,实现中断嵌套。
d. 编译程序,下载到单片机实验板上。
中断原理实验报告总结(3篇)
第1篇一、实验目的本次实验旨在通过实际操作,加深对中断原理的理解,掌握单片机中断系统的工作机制,学会外部中断和定时/计数器的使用,以及串口数据发送和接收的方法。
二、实验内容1. 外部中断原理及使用(1)实验原理:通过实验,了解外部中断的工作原理,掌握外部中断的使用方法,包括中断源的设置、中断服务程序的编写和中断请求的处理。
(2)实验步骤:设置外部中断源,编写中断服务程序,实现按键控制LED灯亮灭。
2. 定时/计数器的使用(1)实验原理:通过实验,了解定时/计数器的工作原理,掌握定时/计数器的使用方法,包括定时/计数器的初始化、定时/计数器的启动和停止、定时/计数器的中断处理。
(2)实验步骤:设置定时/计数器,实现LED灯的闪烁。
3. 串口数据发送和接收(1)实验原理:通过实验,了解串口通信的工作原理,掌握串口数据发送和接收的方法,包括串口初始化、发送和接收数据的流程。
(2)实验步骤:实现单片机与计算机之间的串口通信,发送和接收数据。
三、实验结果及分析1. 外部中断实验结果及分析实验中,通过按键控制LED灯亮灭,实现了外部中断的基本功能。
实验结果表明,当按键被按下时,外部中断请求信号被触发,中断服务程序被执行,LED灯状态发生改变。
2. 定时/计数器实验结果及分析实验中,通过定时/计数器实现LED灯的闪烁,实现了定时功能。
实验结果表明,定时/计数器能够按照设定的周期产生中断,中断服务程序能够按照要求执行。
3. 串口数据发送和接收实验结果及分析实验中,通过串口通信实现单片机与计算机之间的数据传输。
实验结果表明,单片机能够按照设定的波特率发送和接收数据,计算机端能够正确接收并显示数据。
四、实验总结1. 通过本次实验,加深了对中断原理的理解,掌握了单片机中断系统的工作机制。
2. 掌握了外部中断、定时/计数器和串口通信的使用方法,为后续学习和实践打下了基础。
3. 在实验过程中,培养了动手实践能力,提高了解决问题的能力。
华南农业大学单片机实验 中断实验
实验5 中断实验一、实验目的:1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
二、实验设备:CPU挂箱、8031CPU模块三、实验内容:用单片机的P1口作为输出口,循环点亮LED灯,当单片机接受到一个外部中断信号,则响应中断并反方向循环点亮LED灯。
四、实验原理:将PSW的CY为作为判断循环点亮LED灯方向的判断条件,当CY=0时,LED灯循环右移点亮,当CY=1时LED灯循环左移点亮。
每当外部来一个中断信号让CY取反一次,这样便实现了外部中断使LED灯反向循环点亮的实验要求五、实验原理图:中断实验电路六、实验步骤:将单片机P1口P1.0~P1.7接发光二极管L1~L8,单脉冲输出端P-接CPU 板上的INT0。
七、程序框图: 主程序框图 中断程序框图八、实验程序:CSEG AT 0000HLJMP STARTCSEG AT 4003H ;设置中断入口地址LJMP INTCSEG AT 4100H ;设置程序入口地址START:SETB ITO ;设置外部中断0中断触发方式为边缘触发SETB EX0 ;允许外部中断0中断SETB EA ;允许外部中断CLR A ;将累加器A 清零MOV A,#0FEHCLR C ;将CY 位清零开始置口地址 外部中断初始化 设置P1口初始值为#0FEH 延时0.1秒,使显示稳定 使P1口寄存器逐位右移一位使P1口寄存器逐位左移一位 中断入口 外部中断允许位置位 中断返回 取反CY 位 关闭中断允 C=1? N YLJMP LOOP1LOOP1:MOV P1,A ;点亮L1CALL DELAYRL AJC LOOP2JNC LOOP1LOOP2:MOV P1,ACALL DELAYRR AJC LOOP2JNC LOOP1INT: ;响应中断CLR EA ;关闭外部中断CPL C ;将CY取反SETB EA ;允许中断RETI ;中断返回DELAY:MOV R1,#127 ;0.1秒延时程序DEL1:MOV R2,#200DEL2:DJNZ R2,DEL2DJNZ R1,DEL1RETEND。
单片机原理中断实验单片机原理实验报告
单片机原理中断实验一、实验前准备1. 实验目的:本实验旨在通过学习和实践,掌握单片机原理中断的基本概念和工作原理,并能灵活运用中断技术解决实际问题。
2. 实验器材:- STC89C52单片机开发板- LED灯- 电阻、电容等基本电子元器件- 连接线3. 实验原理:单片机原理中断实验是通过将外部事件(如按键按下、定时器溢出等)与单片机的中断系统相连,实现对外部事件的即时响应和处理。
单片机的中断系统可以在常规程序运行的过程中接收和响应中断请求,提高系统的实时性和可靠性。
4. 实验步骤:- 首先,将开发板上的LED灯与单片机相连。
- 将外部事件(例如,按键)与单片机的中断引脚相连。
- 对中断相关的寄存器进行初始化设置。
- 编写相应的中断服务程序。
- 在主程序中编写相应的处理代码。
二、实验过程以按键中断为例,以下为实验过程的详细步骤:1. 硬件连接:将按键连接到单片机的外部中断引脚上,同时将LED灯连接到单片机的IO口上,以实现按键按下时LED灯的亮灭。
2. 寄存器设置:通过编程设置单片机的寄存器,使其能够正确地接收和响应外部中断请求。
具体的设置包括中断使能、中断触发方式、中断优先级等。
3. 中断服务程序编写:根据实际需求,编写相应的中断服务程序。
在按键中断的情况下,可以编写一个简单的中断服务程序,通过判断按键的状态来控制LED灯的亮灭。
4. 主程序编写:在主程序中,编写相应的处理代码。
在按键中断的情况下,可以编写一个循环程序,不断检测按键的状态,并根据按键状态控制LED灯的亮灭。
三、实验结果经过实验验证,成功利用中断技术实现了按键按下时LED灯的亮灭,实现了对外部事件(按键)的即时响应和处理。
实验结果表明单片机中断技术在提高系统的实时性和可靠性方面具有重要作用。
四、实验总结通过本次实验,我对单片机原理中断有了更深入的了解。
掌握了中断系统的基本原理和工作方式,并成功运用中断技术解决实际问题。
在今后的学习和实践中,我将进一步熟悉和应用中断技术,不断提高自己的技术水平。
单片机的中断实验报告
单片机的中断实验报告单片机的中断实验报告引言:单片机是现代电子技术中的一种重要组成部分,广泛应用于各种电子设备中。
中断是单片机中的一种重要功能,能够提高系统的响应速度和实时性。
本实验旨在通过对单片机的中断功能进行实验,深入了解中断的原理和应用。
一、实验目的本实验旨在通过对单片机的中断功能进行实验,掌握中断的原理和应用,提高对单片机的理解和应用能力。
二、实验器材和材料1. 单片机开发板2. 电脑3. USB数据线4. LED灯5. 电阻、电容等元件三、实验原理中断是单片机中的一种重要功能,当某个事件发生时,单片机可以立即中断当前程序的执行,转而执行中断服务程序,处理该事件。
中断可以分为外部中断和内部中断两种类型。
外部中断由外部设备触发,如按键、传感器等;内部中断由单片机内部的某个模块触发,如定时器溢出、串口接收等。
四、实验步骤1. 连接单片机开发板和电脑,并通过USB数据线进行通信。
2. 在开发环境中编写中断服务程序,实现对外部中断的响应。
3. 将LED灯连接到开发板的某个IO口,并设置为输入模式。
4. 在主程序中配置外部中断的触发条件和中断服务程序。
5. 运行程序,触发外部中断,观察LED灯的亮灭情况。
五、实验结果与分析经过实验,我们成功实现了对外部中断的响应,并观察到LED灯在中断触发时的亮灭情况。
通过实验结果的分析,我们可以得出以下结论:1. 外部中断可以有效地提高系统的响应速度和实时性,特别适用于需要及时处理外部事件的应用场景。
2. 中断服务程序的编写和配置是实现中断功能的关键,需要充分理解中断的原理和编程方法。
3. 在实际应用中,需要根据具体的需求和硬件条件来选择合适的中断触发条件和中断服务程序。
六、实验总结通过本次实验,我们深入了解了单片机的中断功能,并通过实际操作掌握了中断的原理和应用方法。
中断作为一种重要的系统功能,可以提高系统的响应速度和实时性,广泛应用于各种电子设备中。
在今后的学习和工作中,我们将进一步探索中断的应用领域,并不断提高自己的单片机编程能力。
单片机实验六-中断系统实验教学文稿
单片机实验六-中断系统实验信息工程系实验报告课程名称:单片微型计算机与接口技术实验项目名称:实验六中断系统实验2013-12-02班级:电信*** 姓名:*** 学号:110706实验目的:熟悉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 外部内部外部内部 内源允总允允许中断中断优中中高优中断中断低优中断中断T —INT IN 查询{ 函数体语句 }这里,interrupt和using是为编写C51中断服务程序而引入的关键字,interrupt表示该函数是一个中断服务函数,interrupt后的整数n表示该中断服务函数是对应哪一个中断源。
单片机中断实验报告
通过单片机的下载接口,将可执行的二进制文件 下载到单片机中。
实验测试
通过按键触发外部中断,观察LED灯的状态变化, 验证程序的正确性。
04
实验结果与分析
中断响应时间测试
总结词
响应时间快
详细描述
在测试中,我们发现单片机的中断响应时间非常快,能够在极短的时间内对外 部事件做出响应。这主要得益于单片机的硬件架构和中断处理机制,使得单片 机能够迅速识别并处理外部事件。
提高编程能力
通过本次实验,我们认识到自己的编程能力还有很大的提升空间。在未来的学习中,我们将注重提高自 己的编程能力,包括代码的优化、调试技巧等方面。
THANKS
感谢观看
实验中的问题与解决方案
在实验过程中,我们遇到了一些问题,如中断触发条件不 稳定等,通过调整相关参数和优化代码,最终解决了这些 问题。
对实验的反思与建议
01
实验操作流程的不足
在实验过程中,我们发现操作流程仍存在一些不足之处,如某些步骤的
描述不够清晰,导致实验过程中出现了一些不必要的困惑。建议在后续
的实验指导书中对操作流程进行更加详细的描述。
深入学习单片机中断机制
通过本次实验,我们对单片机的中断机制有了初步的了解。在未来的学习中,我们计划深入学习单片机的中断机制, 了解更多关于中断的细节和应用技巧。
探索更多中断应用场景
除了本次实验中实现的按键中断和定时器中断外,我们还计划探索更多的中断应用场景,如串口中断、ADC中断等 ,以拓宽我们的知识面和应用能力。
05
结论与建议
实验结论
实验目标达成情况
实验目标是通过单片机实现外部中断和定时器中断,实验 过程中成功实现了外部按键中断和定时器中断,验证了单 片机的中断处理机制。
实现中断功能_实验报告(3篇)
第1篇一、实验目的1. 理解中断的概念和作用。
2. 掌握单片机中断系统的基本原理和配置方法。
3. 学会编写中断服务程序,实现外部中断和定时器中断的应用。
4. 通过实验加深对中断系统在实际应用中的理解。
二、实验原理中断是计算机系统中一种重要的机制,它允许CPU在执行程序过程中,响应某些外部或内部事件,从而暂停当前程序的执行,转而处理这些事件。
单片机的中断系统主要包括外部中断和定时器中断两种类型。
三、实验环境1. 单片机:80C512. 开发环境:Keil for 80513. 仿真软件:Proteus4. 实验电路:外部按钮电路、LED灯电路、定时器电路四、实验内容1. 外部中断实验(1)实验目的:学习外部中断的工作原理,掌握外部中断的配置和编程方法。
(2)实验步骤:a. 创建80C51固件项目,并在Keil中编写程序。
b. 配置外部中断源,设置中断优先级。
c. 编写外部中断服务程序,实现LED灯的闪烁。
d. 在Proteus中搭建实验电路,并进行仿真测试。
(3)实验结果:当按下按钮时,LED灯闪烁,松开按钮后LED灯熄灭。
2. 定时器中断实验(1)实验目的:学习定时器中断的工作原理,掌握定时器中断的配置和编程方法。
(2)实验步骤:a. 创建80C51固件项目,并在Keil中编写程序。
b. 配置定时器工作模式,设置定时时间。
c. 编写定时器中断服务程序,实现LED灯的闪烁。
d. 在Proteus中搭建实验电路,并进行仿真测试。
(3)实验结果:定时器中断触发后,LED灯闪烁,达到设定时间后停止闪烁。
五、实验分析1. 外部中断实验分析通过外部中断实验,我们了解了外部中断的工作原理和配置方法。
在实验中,我们设置了外部中断源,并编写了中断服务程序,实现了LED灯的闪烁。
这表明外部中断可以有效地响应外部事件,并执行相应的操作。
2. 定时器中断实验分析通过定时器中断实验,我们掌握了定时器中断的配置和编程方法。
微机原理_中断实验报告(3篇)
第1篇一、实验目的1. 理解中断系统的基本概念和工作原理。
2. 掌握中断源、中断向量、中断服务程序等基本概念。
3. 学习使用Keil软件进行中断程序的编写和调试。
4. 熟悉中断在微机系统中的应用。
二、实验原理中断系统是微机系统中重要的组成部分,它允许CPU在执行程序的过程中,响应外部事件或内部事件,从而实现多任务处理。
中断系统主要包括以下几个部分:1. 中断源:产生中断请求的设备或事件,如外部设备、定时器、软件中断等。
2. 中断向量:中断服务程序的入口地址,用于CPU在响应中断时找到相应的服务程序。
3. 中断服务程序:处理中断请求的程序,完成中断处理任务。
4. 中断优先级:不同中断源的优先级不同,用于确定中断响应的顺序。
三、实验设备与软件1. 实验设备:单片机实验板、计算机、Keil软件、Proteus仿真软件。
2. 实验软件:Keil uVision4、Proteus 8.0。
四、实验内容1. 外部中断实验(1)使用外部中断0(INT0)实现按键控制LED灯的亮灭。
(2)使用外部中断1(INT1)实现按键控制LED灯的闪烁。
2. 定时器中断实验(1)使用定时器0产生1秒的定时中断,实现LED灯的闪烁。
(2)使用定时器1产生1秒的定时中断,实现按键输入的计数。
3. 软件中断实验(1)使用软件中断实现按键输入的字符显示。
(2)使用软件中断实现按键输入的字符加密显示。
五、实验步骤1. 在Keil软件中创建一个新项目,选择合适的单片机型号。
2. 根据实验要求,编写中断服务程序,设置中断向量。
3. 在Proteus软件中搭建实验电路,包括单片机、按键、LED灯等。
4. 将Keil软件编译后的程序下载到单片机中。
5. 在Proteus软件中运行仿真,观察实验结果。
六、实验结果与分析1. 外部中断实验(1)按键按下时,LED灯亮;按键松开时,LED灯灭。
(2)按键按下时,LED灯闪烁;按键松开时,LED灯停止闪烁。
单片机 中断实验 实验报告
实验三中断实验一、实验内容1.当单片机的INT0端出现负脉冲时,进入相应的中断服务程序,P1口做输出口,接8只发光二极管,通过程序控制发光二极管依次点亮。
2.选择外部中断0(P3.2)接按键INTO到地,按下出现负脉冲时,进入相应的中断服务程序,在中断服务程序中,数码管显示加1,在0-9之间循环。
二、实验目的1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
三、实验原理(中断原理部分参考教材填写)本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意。
一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验中,主程序延时用的寄存器和中断延时用的寄存器应不相同。
四、实验电路(参考学习板说明书Page11)五、接线方式(参考学习板说明书Page11)P1口接发光二极管的L1—L8;单脉冲输出端“”接INI0,即接89C51的P3.2管脚。
六、参考程序程序一、ORG 0030Htmpdate: DB 01H,02H,04H,08H,10H,20H,40H,80H /*定义常量做为输出*/ORG 0000HLJMP MAINORG 0003HLJMP INTMAIN: SETB EA /*首先开启总中断*/SETB EX0 /*开启外部中断0 */SETB IT0 /* 设置成下降沿触发方式*/MOV R7,#8MOV DPTR,#TMPDATEL0: SJMP L0 //等待中断INT: DJNZ R7,L1 /*外部中断0 每按一次主板上的"INT0"键,中断响应,调用该函数,我们从P1口输出点亮发光二极管*/MOV R7,#8L1: MOV A,R7MOVC A,@A+DPTRCPL AMOV P1,ARETIEND程序二、/***************************************************************功能:按下按键,数码管加1,用中断的方法作者:txl时间:2009-04版本:V1.0***************************************************************/#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit wei1=P2^0;sbit key1=P3^2;uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳数码管码表//全局变量uchar num;//函数声明void delay(uint z);void led_show(uchar temp);void main(){num=0;// IT0=1; //中断以下降沿方式触发IT0=0; //中断以低电平方式触发EX0=1; //允许外部中断0中断EA=1; //总中断开wei1=0;while(1){led_show(num); //显示}}/*************************************************************** 功能:外部中断0入口***************************************************************/ void EX0_Int() interrupt 0{EX0 = 0; //关中断num++;if(num==10)num=0;while(!key1);//消除抖动delay(5);while(!key1);// for(;!key1;); //等待放开EX0 = 1; //开中断}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void led_show(uchar temp){P0=table[temp];delay(5);}扩展程序三、#include <AT89X52.H> //包含头文件sbit led=P1^0;#define shuma P0 //数码管数据口sbit LED_0=P2^0; //定义数码管4个控制位sbit LED_1=P2^1;sbit LED_2=P2^2;sbit LED_3=P2^3;unsigned char m;unsigned int code ton[7];void display(unsigned char d1,unsigned char d2,unsigned char d3,unsigned char d4);/*=====0-9=====A-G=====*/unsigned char a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳极数码管的段码0 1 2 3 4 5 6 7 8 9 A B C D E F//定时初值计算方法:以5ms为例,5ms=5000us,0xffff-5000/1.085即为TH和TL的值void int1() interrupt 3 //T1中断,时间是5ms{TR1=0; //关中断TH1=0xed; //装定时器初值实现5ms定时TL1=0xff;ET1=1; //开中断TR1=1;display(1,2,3,4); //在中断里显示数字}void main( void ){m=1;TMOD=0x10; //设置为T1定时器TH1=0xed; //装定时器初值TL1=0xff;TR1=1; //开中断ET1=1;EA=1;while(1){}}void display(unsigned char d1,unsigned char d2,unsigned char d3,unsigned char d4) {if(m==1) //每进入一次中断显示1位,用变量m作为显示位标识{LED_0=0; //使能该数码管控制位LED_1=LED_2=LED_3=1; //其他控制位无效shuma=a[d1]; //按照数据点亮该数码管}if(m==2) //第二次中断显示第二位{LED_1=0;LED_0=LED_2=LED_3=1;shuma=a[d2];}if(m==3) //第三次中断显示第三位{LED_2=0;LED_1=LED_0=LED_3=1;shuma=a[d3];}if(m==4) //第四次中断显示第四位{LED_3=0;LED_1=LED_2=LED_0=1;shuma=a[d4];}m++; //数码管位循环扫描if(m>=5) //如果4次中断显示完成,则回到第一重新显示m=1;}。
中断控制试验报告
实验六8259中断控制一、实验目的1.学习8086/8088 CPU中断系统的知识。
2.学习8259中断控制器的使用。
二、实验内容1. 编写程序,使8255 的A 口控制LED 灯。
CPU 执行主程序时四个绿灯亮。
用脉冲信号作为8259 的IR3 的输入信号,向CPU 请求中断。
CPU 在中断服务程序中熄灭绿灯,并使4 个红灯亮。
中断服务程序结束,又返回主程序,再使绿灯亮。
2. 编写程序,使8255 的A 口控制LED 灯。
CPU 执行主程序时四个绿灯亮。
用脉冲信号作为8259 的IR3 的输入信号,向CPU 请求中断。
CPU 在中断服务程序中每中断一次,使4 个红色LED 灯中每次只亮一个灯,并随每一次中断逐次移动一个灯的位置,中断服务程序结束,又返回主程序,再使绿灯亮。
三、实验区域电路连接图);(Xl5INT连8088的INTR(1) 8259的 Xl2);8088的INTA(2() 8259的INTA连;IR3插孔相连;(单脉冲与时钟单元)“”插孔和8259的3号中断(3) 60H);CS端接EX1(的(4)8259。
JX4→JX17(5)连;→6)IOWRIOWR(;IORD→IORD)7(.(8)A0→A0;(9)PA0…PA3→L2,L6,L10,L14;PA4…PA7→L3,L7,L11,L15。
四、程序框图1.2.五、实验步骤(1)8259 的INT 连8088 的INTR(Xl5);(2)8259 的INTA 连8088 的INTA(Xl2);(3)单脉冲插孔和8259 的 3 号中断IR3 插孔相连;(单脉冲与时钟单元);(4)8259 的CS 端接EX1(60H);(5)连JX4→JX17。
(6)IOWR→IOWR;(7)IORD→IORD;(8)A0→A0; (9) PA0…PA3→L2,L6,L10,L14; PA4…PA7→L3,L7,L11,L15。
六、实验程序1.CODE SEGMENTASSUME CS:CODEINTPORT1 EQU 0060HINTPORT2 EQU 0061HINTQ3 EQU INTREEUP3INTCNT DB ?ORG 1200HSTART:CLDMOV DX,0FF2BHMOV AL,80H ;设置8255方式字:A口输出OUT DX,ALCALL WRINTVER ;WRITE INTRRUPTMOV AL,13H ;ICW1=00010011B,边沿触发、单8259、需ICW4MOV DX,INTPORT1OUT DX,ALMOV AL,08HMOV DX,INTPORT2OUT DX,ALMOV AL,09H ;ICW4=00001001B,非特殊全嵌套方式、缓冲/从、正常EOIOUT DX,ALMOV AL,0F7H ;OCW1=11110111BOUT DX,ALMOV INTCNT,01H ;延时STIWATING:MOV DX,0FF28H;主程序绿灯亮(低四位为0则绿灯亮,高四位为1故红灯灭)MOV AL,0F0HOUT DX,ALJMP WATINGWRINTVER:MOV AX,0HMOV ES,AXMOV DI,002CH ;中断向量地址2CH=0BH*4LEA AX,INTQ3STOSW ;送偏移地址MOV AX,0000hSTOSW ;送段地址RETINTREEUP3:CLI ;中断服务子程序开始PUSH DXPUSH AXMOV DX,0FF28H ;中断服务子程序执行红灯亮MOV AL,0FH ;低四位为1则绿灯灭,高四位为0故红灯亮OUT DX,ALCALL DELAY1SMOV AL,20H ;OCW2=00100000B非特殊EOI命令,结束命令,用于完全嵌套方式的中断结束MOV DX,INTPORT1OUT DX,ALSTI ;开系统中断POP AXPOP DXIRETDELAY1S:MOV CX,0FFFFHMOV BX,5L:DEC CXJNZ LDEC BXJNZ LRETEND START2.CODE SEGMENTASSUME CS:CODEORG 1200HINTCNT DB 0EFH ;全局变量INTCNT=11101111BSTART:MOV DX,0FF2BHMOV AL,80H ;设置8255方式字:A口出OUT DX,ALMOV AL,0FFHMOV DX,0FF28HOUT DX,ALCALL Y2MOV AL,13H;ICW1=00010011B,边沿触发、单8259、需ICW4MOV DX,60HOUT DX,ALMOV AL,08H ;ICW2=00001000B,IR3(ICW2低两位自动跳变为11,即00001011B)进入则中断号=0BH MOV DX,61HOUT DX,ALMOV AL,09H ;ICW4=00001001B,非特殊全嵌套方式、缓冲/从、正常EOIOUT DX,ALMOV AL,0F7H;OCW1=11110111BOUT DX,ALMOV INTCNT,0EFHSTIY1:MOV DX,0FF28H ;主程序绿灯亮(低四位为0则绿灯亮,高四位为1故红灯灭)MOV AL,0F0H ;D7…D4=1111,D3…D0=0000OUT DX,ALJMP Y1 ;循环Y2:MOV AX,0HMOV ES,AXMOV DI,002CH ;中断向量地址2CH=0BH*4LEA AX,INTREEUP3STOSW ;送偏移地址MOV AX,0000HSTOSW ;送段地址RETINTREEUP3:CLIPUSH AX ;保护现场PUSH DXPUSH CXMOV DX,0FF28H ;中断服务子程序执行红灯亮MOV AL,INTCNTOUT DX,ALROL INTCNT,1 ;循环左移一位JC Y4MOV INTCNT,0EFHY4:MOV AX,10H ;延时服务程序INTRE0:MOV CX,10000LOOP $DEC AX ;AX=AX-1JNZ INTRE0INTER2: ;设置OCW2MOV AL,20H ;D5=EOI=1,发送EOI指令结束中断MOV DX,60HOUT DX,ALPOP CX ;现场恢复POP DXPOP AXSTI ;开系统中断IRETCODE ENDSEND START七、实验感想本次实验锻炼的是我们对8259中断控制的理解。
单片机实验报告 中断
单片机实验报告中断单片机实验报告:中断引言:单片机是一种集成电路,具有微处理器、存储器和输入输出接口等功能。
在嵌入式系统中,单片机常常被用于控制和管理各种设备。
而中断是单片机中一种重要的机制,它可以在特定条件下打断程序的正常执行,执行一段特定的代码,然后返回到原来的程序中。
本文将介绍中断的概念、分类以及在单片机实验中的应用。
一、中断的概念中断是一种硬件或软件生成的信号,用于打断正在执行的程序。
当中断信号发生时,单片机会立即停止当前的任务,转而执行中断服务程序。
中断可以提高程序的响应速度和效率,使单片机能够及时处理紧急事件。
二、中断的分类中断可以分为外部中断和内部中断两种类型。
1. 外部中断外部中断是由外部设备产生的中断信号。
当外部设备需要单片机的处理时,会发送中断请求信号。
单片机在接收到中断请求后,会立即停止当前任务,转而执行与中断相关的程序。
外部中断常用于处理外部设备的输入信号,如按键、传感器等。
2. 内部中断内部中断是由单片机内部产生的中断信号。
内部中断通常由单片机的一些特定事件触发,如定时器溢出、串口接收完成等。
内部中断常用于周期性的任务处理和数据通信等。
三、中断的实验应用在单片机实验中,中断被广泛应用于各种场景,下面将介绍两个实验应用的例子。
1. 外部中断实验假设我们需要设计一个按键控制LED灯的实验。
当按下按键时,LED灯亮起;当松开按键时,LED灯熄灭。
这个实验可以使用外部中断来实现。
首先,我们需要将按键连接到单片机的外部中断引脚。
当按键按下时,外部中断引脚会产生一个中断请求信号。
单片机接收到中断请求后,会执行相应的中断服务程序。
在中断服务程序中,我们可以控制LED灯的亮灭。
通过这个实验,我们可以学习到如何使用外部中断来处理外部设备的输入信号,并且了解到中断的响应速度和效率优势。
2. 内部中断实验假设我们需要设计一个定时器实验,要求每隔一段时间点亮一次LED灯。
这个实验可以使用内部中断来实现。
微机原理实验6中断实验
微机原理实验6实验设备:LAB6000通用微控制器实验系统实验用时8小时一、实验内容:中断实验1.简单中断程序:INT0为中断入口,对单脉冲按键开关次数计数,并用发光二极管二进制方式显示按键次数。
2.用逻辑分析仪分析中断时序3.中断程序:采用INT0和INT1两个中断源,INT1输入改为实验系统上频率输入,INT0接单脉冲按键开关。
设计中断服务程序,要求INT1中断服务程序对输入计数,每1000次,发光二极管显示加1。
INT0中断服务程序开、关INT1中断。
(程序启动后,INT0不计数,按单脉冲按键开关后,开INT0中断,发光二极管二进制方式显示中断次数,再次按单脉冲按键开关,关INT0中断,如此反复)4.绘制电路原理图,增加8259芯片,要求地址9000H起。
这里增加一译码芯片,每一引脚具有16地址单元。
为以后芯片扩展用实验报告:中断服务程序清单和中断时序分析电路原理图二、程序代码如下:mode equ 82h ; 8255 工作方式PA8255 equ 8000h ; 8255 PA口输出地址CTL8255 equ 8003hICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4ICW2 equ 00100000b ; 中断号为20HICW4 equ 00000001b ; 工作在8086/88 方式OCW1 equ 11111100b ; 既响应INT0 中断,也响应INT1中断CS8259A equ 09000h ; 8259地址CS8259B equ 09001hdata segmentCNT dw 0CNNT dw 0sign db 11111100bdata endscode segmentassume cs:code, ds: dataIEnter proc nearpush axpush dxmov dx, PA8255inc CNTcmp CNT,50jnb add1jmp outputadd1:inc CNNTmov CNT,0mov ax, CNNTout dx, ax ; 输出计数值output:mov dx, CS8259Amov al, 20h ; 中断服务程序结束指令out dx, alpop dxpop axiretIEnter endpIEnter2 proc nearpush axpush dxmov dx, PA8255xor sign, 00000001bmov dx, CS8259Bmov al, signout dx, almov dx, CS8259Amov al, 20h ; 中断服务程序结束指令out dx, alpop dxpop axiretIEnter2 endpIInit procmov dx, CS8259Amov al, ICW1out dx, almov dx, CS8259Bmov al, ICW2out dx, almov al, ICW4out dx, almov al, OCW1out dx, alretIInit endpstart proc nearmov dx, CTL8255mov al, modeout dx, alclimov ax, 0mov ds, axmov bx, 4*ICW2 ; 中断号mov ax, codeshl ax, 4 ; x 16add ax, offset IEnter ; 中断入口地址(段地址为0)mov [bx], axmov ax, 0inc bxinc bxmov [bx], ax ; 代码段地址为0;添加内容inc bxinc bxmov ax, codeshl ax, 4add ax, offset IEnter2mov [bx], axmov ax, 0inc bxinc bxmov [bx], ax;添加结束call IInitmov ax, datamov ds, axmov CNT, 0 ; 计数值初始为0mov ax, CNTmov dx, PA8255out dx, axstiLP: ; 等待中断,并计数。
单片机实验 中断系统实验范文
实验四动态数码管显示外部中断计数一、实验目的1.熟悉keil仿真软件、proteus仿真软件的使用和单片机外部中断的使用。
2.了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。
3.理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。
4.熟悉中断处理特别是外部中断处理的过程,掌握中断处理子程序的书写格式和使用方法。
二、实验器材C51单片机开发板(含动态数码管) 1块8PIN排线2根数据线1根三、实验原理1.实验仿真原理图如下所示:2.实验的源程序:#include<reg51.h>unsigned char i;unsigned char codetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};yanshi(void) interrupt 2 //中断处理函数 2表示对应的中断源为外部中断1//按键按下时发出中断请求,引起外部中断{i++;if(i==9)i=0;}void main(){IT1=1; //IT1=1,选择下降沿触发i=0;EA=1; // EA=1,CPU开中断EX1=1; //EX1=1,允许INT1中断while(1)P0=tab[i]; //从0显示到8}3.中断控制的有关寄存器(1)中断的允许和禁止——中断控制寄存器IEEA:中断总控开关,是CPU是否响应中断的前提。
EA=1,CPU开中断; EA=0, CPU关中断。
ES:串行口中断允许位,ES=1,允许串行口发送/接收中断;ES=0,禁止串行口中断。
ET1:定时器T1中断允许位,ET1=1,允许T1计数溢出中断;ET1=0,禁止T1中断。
ET0:定时器T0中断允许位,ET0=1,允许T1计数溢出中断; ET0=0,禁止T0中断。
EX1:外部中断INT1允许位,EX1=1,允许INT1中断; EX1= 0,禁止INT1中断。
单片机中断实验
成绩实验报告实验名称中断实验实验班级姓名学号(后两位)指导教师实验日期实验四中断实验一、实验目的1、掌握单片机系统中断的原理及使用方法。
2、理解键盘扫描和去抖动的原理。
3、掌握键盘扫描实现方法。
二、实验原理(一)、中断知识在计算机系统中,中断可以由各种硬件设备产生,以便请求服务或报告故障等。
此外,中断也可由处理器自身产生,例如,程序错误或对操作系统的请求做出响应等。
89C51 的中断系统具有5 个中断源,即2 个外部中断、2 个定时器中断和1 个串行中断。
(二)、按键的识别过程1、键盘扫描,判定是否有“闭合键”;2、按键识别,确认“闭合键”的行列位置;3、产生键码,排除多键、串键(复按)及去抖动。
如上图所示,则键盘扫描过程如下:1、P1 口输出“0F(F0)”;P1 口低(高)4 位读入数据时:全“1”,表示无按键按下,否则,表示有按键按下。
2、进一步确认行列号:P1 口输出“0F”,确认P1.X 输入为“0”;P1 口输出“F0”,确认P1.Y 输入为“0”;则按下键的坐标就是(X,Y)(三)、按键抖动抖动的原因:目前大部分按键或键盘都是利用机械触电的合、断作用。
机械触点在闭合及断开瞬间由于弹性作用的影响,在闭合及断开瞬间均有抖动过程,从而使电压信号也出现抖动,抖动时间的长短与开关的机械特性有关,一般为5~10ms。
而单片机对键盘扫描一次仅需几百微妙。
这样,将会对键盘扫描产生误判。
为了保证单片机对按键闭合仅作一次输入处理,必须去除抖动的影响。
去抖动的方法:1、外加硬件电路,用RS 触发器或单稳态电路构成的去抖动电路,或键盘扩展专用芯片。
2、在检测按键按下时,执行约10ms 的延时程序后(避开抖动前沿区域),再确认按键是否仍然保持闭合状态。
二、实验内容1、见图一。
假设单片机晶振频率设定为6MHz。
用中断方式来完成以下要求,且通过虚拟示波器观看波形。
A、使用定时器1 以方式0 产生周期为500us 的等宽方波连续脉冲,并由P1.0 输出。
中断系统实验报告总结(3篇)
第1篇一、实验背景随着计算机技术的不断发展,中断系统在计算机系统中扮演着越来越重要的角色。
中断系统允许计算机在执行当前任务时,能够及时响应和处理突发事件,从而提高系统的实时性和可靠性。
为了更好地理解和掌握中断系统的工作原理,我们进行了中断系统实验。
二、实验目的1. 理解中断系统的基本概念和原理;2. 掌握中断系统的应用和编程技巧;3. 熟悉中断系统在单片机中的应用和实现方法;4. 培养实验能力和团队协作精神。
三、实验内容1. 中断系统基本概念及原理实验中,我们首先学习了中断系统的基本概念,包括中断、中断源、中断处理程序、中断优先级等。
通过查阅资料和课堂讲解,我们对中断系统的原理有了初步的了解。
2. 中断系统编程在实验中,我们使用C语言编写了中断服务程序,并设置了相应的中断源。
实验过程中,我们学习了如何使用特定的指令来设置中断向量、开启和关闭中断等。
3. 中断系统在单片机中的应用我们以MCS-51单片机为例,学习了中断系统在单片机中的应用。
通过实际操作,我们了解了单片机中断系统的工作流程,包括中断请求、中断响应、中断处理等。
4. 实验任务(1)编写中断服务程序,实现外部中断源的响应和处理;(2)编写定时器中断服务程序,实现定时任务的执行;(3)编写串行中断服务程序,实现数据的接收和发送。
四、实验结果与分析1. 外部中断源实验在实验中,我们使用外部中断0和外部中断1作为中断源。
通过编程设置,我们成功实现了外部中断源的响应和处理。
实验结果表明,当外部中断源触发时,CPU能够及时响应并执行中断服务程序。
2. 定时器中断实验我们编写了定时器中断服务程序,实现了定时任务的执行。
实验中,我们设置了定时器的初值,使其每隔一定时间产生一次中断。
通过观察程序运行结果,我们验证了定时器中断的正确性。
3. 串行中断实验在串行中断实验中,我们实现了数据的接收和发送。
通过编程设置串行通信的参数,我们成功实现了数据的接收和发送。
单片机中断实验报告
一、实验目的1. 理解单片机中断的基本概念和工作原理。
2. 掌握单片机中断系统的初始化方法。
3. 学会编写中断服务程序,实现特定功能。
4. 熟悉中断优先级设置及其对系统性能的影响。
二、实验设备1. 单片机实验板:STC89C52单片机实验板2. 串口下载线:USB转串口下载线3. 电脑:一台运行Windows操作系统的电脑4. 软件工具:Keil uVision4集成开发环境三、实验原理单片机中断系统是单片机的重要组成部分,它允许单片机在执行主程序时,响应外部或内部事件的中断请求,暂停主程序执行,转而执行相应的中断服务程序。
中断系统由硬件和软件两部分组成。
1. 硬件部分:包括中断源(如定时器、外部中断等)、中断控制器、优先级寄存器、中断服务寄存器等。
2. 软件部分:包括中断初始化程序、中断服务程序等。
四、实验步骤1. 创建项目:在Keil uVision4中创建一个新项目,选择STC89C52单片机作为目标芯片。
2. 设计电路:根据实验要求,绘制电路原理图,连接单片机实验板上的相关元器件。
3. 编写程序:编写C语言程序,实现以下功能:(1)初始化单片机中断系统,包括设置中断优先级、启用中断等;(2)编写中断服务程序,处理中断请求;(3)编写主程序,实现特定功能。
4. 编译程序:将编写好的程序编译成hex文件。
5. 烧录程序:将编译好的hex文件烧录到单片机实验板中。
6. 运行实验:观察实验现象,验证程序功能。
五、实验内容1. 实验一:外部中断实验(1)功能:当外部中断0(INT0)或外部中断1(INT1)有信号输入时,触发对应的中断服务程序,使LED灯闪烁。
(2)步骤:a. 初始化外部中断0和外部中断1,设置中断优先级;b. 编写外部中断0和外部中断1的中断服务程序;c. 编写主程序,实现LED灯闪烁。
2. 实验二:定时器中断实验(1)功能:定时器0每隔1秒产生一次中断,触发中断服务程序,使LED灯闪烁。
单片机中断实验报告
单片机中断实验报告单片机中断实验报告引言:单片机是一种集成电路,具有微处理器、存储器和各种输入输出设备等功能模块。
中断是单片机中的一种重要机制,它可以使单片机在执行某个任务时,暂停当前操作,转而执行其他紧急任务。
本次实验旨在深入了解单片机中断的原理和应用,以及如何在程序中实现中断功能。
一、实验目的本次实验的目的是通过编写程序,实现单片机中断功能,并验证中断的正确性和可靠性。
具体而言,我们将使用单片机的外部中断和定时器中断功能,分别实现按键中断和定时中断。
二、实验器材1. 单片机开发板2. 按键模块3. 七段数码管模块4. 电源模块5. 连接线等三、实验原理1. 外部中断外部中断是通过外部中断引脚与外部电路连接来实现的。
当外部电路触发中断条件时,单片机将暂停当前操作,转而执行中断服务程序。
在本实验中,我们将按键模块连接到外部中断引脚,当按下按键时,触发外部中断,实现按键中断功能。
2. 定时器中断定时器中断是通过定时器模块来实现的。
定时器可以按照设定的时间间隔产生中断请求信号,从而实现定时中断功能。
在本实验中,我们将使用定时器模块来实现每隔一段时间触发一次中断,实现定时中断功能。
四、实验步骤1. 连接电路将按键模块的输出引脚连接到单片机的外部中断引脚,将七段数码管模块连接到单片机的IO口。
接通电源,确保电路连接正确。
2. 编写程序使用C语言编写程序,首先需要初始化单片机的中断向量表和相关寄存器。
然后编写中断服务程序,根据实验要求实现按键中断和定时中断功能。
最后,在主程序中设置中断使能位,使得中断能够正常触发。
3. 烧录程序使用烧录器将编写好的程序烧录到单片机中。
4. 实验验证按下按键,观察七段数码管的显示是否按照预期变化。
等待一段时间,观察定时中断是否按照设定的时间间隔触发。
五、实验结果与分析经过实验验证,按键中断和定时中断功能均能够正常运行。
按下按键时,七段数码管的显示会按照预期变化,定时中断也能够按照设定的时间间隔触发。
实验报告中断系统实验
一、实验目的1. 理解中断系统的基本概念和工作原理。
2. 掌握中断请求、中断响应、中断处理和中断返回的过程。
3. 学习使用中断系统实现实时处理功能。
二、实验环境1. 操作系统:Windows 102. 编程语言:C/C++3. 开发环境:Visual Studio 2019三、实验内容1. 实验一:中断请求和中断响应2. 实验二:中断处理和中断返回3. 实验三:使用中断系统实现实时处理功能四、实验步骤(一)实验一:中断请求和中断响应1. 创建一个简单的C/C++程序,实现以下功能:- 定义一个全局变量,用于模拟中断请求。
- 实现一个中断服务例程(ISR),当全局变量被修改时,触发中断请求。
- 在主函数中,设置中断向量表,使CPU能够识别并响应中断请求。
2. 编写代码如下:```c#include <stdio.h>// 全局变量,用于模拟中断请求volatile int interrupt_flag = 0;// 中断服务例程void interrupt_service_routine() {printf("中断服务例程执行\n");interrupt_flag = 0; // 清除中断请求标志}// 主函数int main() {// 设置中断向量表// ...// 启动中断请求interrupt_flag = 1;while (1) {// 执行其他任务// ...}return 0;}```(二)实验二:中断处理和中断返回1. 在中断服务例程中,添加更多的处理逻辑,如: - 获取中断请求的来源。
- 执行相应的中断处理任务。
- 中断返回,恢复中断前的状态。
2. 修改中断服务例程如下:```cvoid interrupt_service_routine() { // 获取中断请求的来源int interrupt_source = ...;// 执行相应的中断处理任务switch (interrupt_source) {case ...:// ...break;case ...:// ...break;default:// ...break;}// 中断返回__asm {popairet}}```(三)实验三:使用中断系统实现实时处理功能1. 使用中断系统实现一个实时时钟(RTC)功能,要求:- 定时触发中断,更新RTC的值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程系实验报告
课程名称:单片微型计算机与接口技术
实验项目名称:实验六 中断系统实验 实验时间:2013-12-02
班级:电信*** 姓名:*** 学号:110706
实 验 目 的:
熟悉keil 仿真软件、proteus 仿真软件的使用和单片机外部中断的使用。
了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。
理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。
熟悉中断处理特别是外部中断处理的过程,掌握中断处理子程序的书写格式和使用方法。
实 验 原 理:
现代的计算机都具有实时处理功能,能对外部发生的事件如人工干预、外部事件及意外故障做出及时的响应或处理,这是依靠计算机的中断系统来实现的。
51单片机内部有一个中断管理系统,它能对内部的定时器事件、串行通信的发送和接收事件及外部事件(如键盘按键动作)等进行自动的检测判断,当有某个事件产生时,中断管理系统会置位相应标志通知CPU ,请求CPU 迅速去处理。
CPU 检测到某个标志时,会停止当前正在处理的程序流程,转去处理所发生的事件(针对发生的事件,调用某一特定的函数,称为该事件的中断服务函数),处理完以后,再回到原来被中断的地方,继续执行原来的程序。
MCS -51单片机最典型的有5个中断源(外部中断0、1,内部定时器中断0、1,串口中断),具有两个中断优先级。
两个外部中断:( — INT0、 — INT1)上输入的外部中断源,低电平或负跳变有效,置位
外部中断 请求0 内部 定时器0
外部中断 请求1 内部 定时器1 内部
T 源允许
总允许
允许中断寄存器 中断优先级 寄存器
中断源 标识符
中断源 标识符
高优先级 中断请求
中断矢量
低优先级 中断请求
中断矢量 T —发送 R —接收
INT0
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,绘制电路图,如图6-1,6-2所示:
图6-1实验1整体电路图
图6-2实验2整体电路图
2、开启keil并在project中选择New Project,新建项目,然后在File中选择New…。
3、保存为,选择,选择
,点击确定,弹出一个对话框选择“否”。
4、在新建的空页中编写程序,并保存为,。
然后编译,加载,运行调试。
5、双击Target1出现Source Group 1点击鼠标右键选择Add files to group ‘Source Group 1’,选中lesson1-1,lesson1-2点击Add击Close
6、点击如图1-3作
图6-3
点击运行,如果显示无错误就编译成功
7、双击AT89C51点击选择hex文件点击OK点击左下角的运行。
实验结果及分析:
一、单个数码管显示中断实验代码如下:
#include<>
#define uchar unsigned char
#define uint unsigned int
unsigned char code tabdu[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};
int i=0;
void led() interrupt 2 {
i++;
if(i==10)
i=0;
P2=tabdu[i];
}void main()
{
EA=1;
EX1=1;
IT1=1;
P2=tabdu[i];
while(1);
}
实验结果如下图6-4所示:
图6-4
二、两个数码管显示中断实验代码如下:
#include<>
#define uchar unsigned char
#define uint unsigned int
unsigned char code
tabdu[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0
x7F,0x6F};
void delay(uint x)
{
uint y;
for(x;x>0;x--)
for(y=130;y>0;y--);
}
int i=0;
int n,m;
void led() interrupt 2
{
EA=0;
i++;if(i==100) i=0;
EA=1;
}
main()
{
EA=1;
EX1=1;
IT1=1;
n=i/10;
m=i%10;
P2= 0xbf;
P0= tabdu[n];
delay(2);
P2=0x7f;
P0=tabdu[m];
delay(2);
while(1)
{
n=i/10;
m=i%10;
P2= 0xbf;
P0= tabdu[n];
delay(2);
P2=0x7f;
P0=tabdu[m];
delay(2);
}
}
实验结果如下图6-5所示:
图6-5
实验心得:。