单片机实验四报告材料_外中断实验

合集下载

外中断实验报告

外中断实验报告

一、实验目的1. 理解外中断的概念和作用。

2. 掌握外中断的触发方式和处理流程。

3. 通过实验验证外中断在嵌入式系统中的应用。

二、实验环境1. 实验平台:STM32开发板2. 开发环境:Keil uVision53. 代码编写语言:C语言三、实验原理外中断是指当外部信号发生时,CPU暂停当前程序执行,转而执行外中断服务程序。

外中断通常用于处理实时事件,如按键、传感器数据采集等。

外中断分为两个部分:中断触发和中断处理。

1. 中断触发:当外部信号满足一定条件时,触发外中断。

2. 中断处理:CPU响应中断请求,执行中断服务程序,完成相关处理。

四、实验步骤1. 初始化外中断(1)配置GPIO引脚为输入模式,用于接收外部信号。

(2)设置中断触发方式(上升沿、下降沿或双边沿触发)。

(3)使能中断和中断优先级。

2. 编写中断服务程序(1)编写中断服务程序,完成外部事件的处理。

(2)在中断服务程序中,设置标志位或调用其他函数处理事件。

3. 编写主程序(1)初始化硬件设备。

(2)启动外中断。

(3)执行主程序,监控中断事件。

4. 编译、下载程序到开发板(1)使用Keil uVision5编译代码。

(2)使用ST-Link下载程序到开发板。

5. 实验验证(1)通过按键或其他外部信号触发外中断。

(2)观察中断服务程序是否被正确执行,事件是否得到处理。

五、实验结果与分析1. 实验结果在实验过程中,当按下按键时,外中断被触发,中断服务程序被正确执行,事件得到处理。

2. 分析(1)外中断的触发方式设置正确,中断能够及时响应。

(2)中断服务程序编写合理,能够完成事件处理。

(3)主程序能够正常执行,监控中断事件。

六、实验总结1. 通过本次实验,掌握了外中断的概念、触发方式和处理流程。

2. 熟悉了STM32开发板外中断的使用方法。

3. 增强了在实际项目中应用外中断的能力。

七、实验心得1. 外中断在嵌入式系统中具有重要作用,能够提高系统的实时性和可靠性。

单片机原理外部中断实验

单片机原理外部中断实验

单片机原理实验报告实验题目外部中断实验一、实验目的1.掌握用外部中断方式实现控制的方法。

2.掌握中断优先级的使用方法。

3. 掌握用Proteus实现单片机系统仿真的方法。

二、实验预备知识外部中断信号由P3.2(P3.3)管脚输入,当中断触发方式控制位ITO(IT1)为1时,CPU 在每个机器周期的S5P2采样P3.2(P3.3)管脚,如果连续两次采样,前一次采样为高电平,后一次采样为低电平,则认为有中断申请,随即使中断标志位IE0(IE1)置1,向CPU申请中断,直到该中断被CPU响应。

当定时器以计数方式工作,计数初值为满量程,在计数输入端T0(T1)输入负跳变信号时,计数器将加1并产生溢出,随即使溢出标志位TF0(TF1)置1,向CPU申请中断,直到该中断被CPU响应。

三、实验内容P1口做输出口,接八只发光二极管,利用手控单脉冲信号作为外部中断信号,编写控制程序,使八只发光二极管按一定的规律循环点亮。

1.程序1: 从外部中断0请求输入端(P3.2)输入脉冲信号2.程序2: 从定时器0的外部输入端(P3.4)输入脉冲信号四、实验参考电路P1口接发光二极管的阴极,P1口的管脚输出低电平时对应的发光二极管点亮,实验电路图如图4-1所示。

图4-1 外部中断实验电路五、实验参考程序ORG 0003HAJMP INT00 ORG 0013H AJMP INT11 ORG 0050H MAIN:SETB EASETB EX0SETB EX1SETB PX1SETB IT0SETB IT1MOV A,#0FEH LP1:MOV P1,ALCALL DELAY RL ASJMP LP1ORG 0100H INT00:PUSH ACCMOV A,#0FCH MOV R1,#7 LP2:MOV P1,A LCALL DELAY RL ADJNZ R1,LP2 POP ACCRETIORG 0150H INT11:PUSH ACCMOV A,#3FH MOV R2,#7 LP3:MOV P1,ALCALL DELAY RR ADJNZ R2,LP3 POP ACCRETIORG 0200H DELAY:MOV R3,#20 L1:MOV R7,#200 L2:MOV R6,#123 NOPL3:DJNZ R6,L3 DJNZ R7,L2 DJNZ R3,L1 RETEND六、实验分析与总结。

外部中断计数实验报告

外部中断计数实验报告

一、实验目的1. 理解单片机外部中断的工作原理和触发条件。

2. 掌握如何通过外部中断实现计数功能。

3. 学习中断服务程序的设计方法。

4. 提高单片机编程和调试能力。

二、实验环境1. 单片机:80C512. 开发工具:Keil uVision3. 实验电路:按键、LED灯、单片机及其相关外围电路三、实验原理外部中断是指单片机通过外部引脚接收到的中断信号,使得CPU暂停当前程序,转而执行中断服务程序。

本实验通过外部中断实现计数功能,具体原理如下:1. 将单片机的某个外部引脚(如P3.2)设置为外部中断0(INT0)的触发引脚。

2. 在外部中断0的中断服务程序中,设置一个计数变量,每次中断发生时,计数变量加1。

3. 将计数变量的值通过LED灯显示出来,以观察计数过程。

四、实验步骤1. 创建Keil uVision项目,并添加80C51固件库。

2. 编写C语言程序,实现以下功能:- 初始化外部中断0,设置中断触发方式为下降沿触发。

- 初始化定时器,用于产生中断。

- 编写外部中断0的中断服务程序,实现计数功能。

- 编写主函数,用于设置单片机的工作状态和显示计数结果。

3. 编译并下载程序到单片机。

4. 连接实验电路,包括按键、LED灯和单片机及其相关外围电路。

5. 观察实验现象,验证计数功能是否实现。

五、实验结果与分析1. 实验现象:按下按键,LED灯显示的计数值加1。

2. 分析:- 外部中断0的中断服务程序被正确调用。

- 计数变量在每次中断发生时加1。

- LED灯能够正确显示计数结果。

六、实验总结1. 本实验成功实现了通过外部中断实现计数功能,验证了单片机外部中断的工作原理。

2. 通过编写中断服务程序,掌握了中断编程方法。

3. 实验过程中,遇到了一些问题,如中断服务程序编写错误、程序编译错误等,通过查阅资料和调试,最终解决了问题。

4. 通过本次实验,提高了单片机编程和调试能力,加深了对单片机外部中断的理解。

单片机实验四报告_外中断实验

单片机实验四报告_外中断实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证 ⃞综合■设计 ⃞创新实验日期:2018.05.29 实验成绩:实验四外中断实验(一)实验目的1.掌握单片机外部中断原理;2.掌握数码管动态显示原理。

(二)设计要求1.使用外部中断0和外部中断1;2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。

(三)实验原理1.中断所谓中断是指程序执行过程中,允许外部或内部时间通过硬件打断程序的执行,使其转向为处理外部或内部事件的中断服务程序中去,完成中断服务程序后,CPU返回继续执行被打断的程序。

如下图所示,一个完整的中断过程包括四个步骤:中断请求、中断响应、中断服务与中断返回。

当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。

中断服务请求处理完后,再回到原来被中止的程序之处(断电),继续执行被中断的主程序。

如果单片机没有终端系统,单片机的大量时间可能会浪费在是否有服务请求发生的查询操作上,即不论是否有服务请求发生,都必须去查询。

因此,采用中断技术大大地提高了单片机的工作效率和实时性。

2.IAP15W4K58S4单片机的中断请求IAP15W4K58S4单片机的中断系统有21个中断请求源,2个优先级,可实现二级中断服务嵌套。

由IE、IE2、INT_CLKO等特殊功能寄存器控制CPU是否相应中断请求;由中断优先级高存器IP、IP2安排各中断源的优先级;同优先级内2个以中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。

中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下:(1)外部中断0(INT0):中断请求信号由P3.2引脚输入。

通过IT0来设置中断请求的触发方式。

当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0。

一旦输入信号有效,则置位IE0标志,向CPU申请中断。

外部中断计数实验报告

外部中断计数实验报告

外部中断计数实验报告实验名称:外部中断计数实验报告一、实验目的通过实验了解外部中断的工作原理和应用,掌握基于外部中断进行计数的方法,并能够编写相应的程序实现计数功能。

二、实验内容1. 搭建实验电路:将一个外部脉冲信号作为中断源,与单片机相应的中断输入引脚连接。

2. 编写相应的程序:设置单片机的中断向量表,配置中断引脚为外部中断,编写中断服务函数和主函数,实现外部中断计数功能。

3. 下载程序到单片机并运行:将编写好的程序下载到单片机,通过外部脉冲信号触发中断,验证计数功能的正确性。

三、实验原理外部中断是指外部事件触发单片机中断请求的一种中断方式。

其工作原理是:当外部事件发生时,通过引脚输入信号到中断输入引脚,引起中断请求,最终触发中断服务程序的执行。

在本次实验中,我们通过将外部脉冲信号连接到单片机的中断输入引脚,每次外部脉冲信号到达时触发一次中断,并在中断服务程序中进行计数操作。

四、实验步骤1. 搭建实验电路:将外部脉冲信号连接到单片机的中断输入引脚,同时连接电源和调试工具。

2. 编写程序:使用适当的开发工具编写程序,包括设置中断向量表、配置中断引脚和编写中断服务函数。

3. 下载程序:将编写好的程序下载到单片机。

4. 运行程序:通过触发外部脉冲信号,验证计数功能的正确性。

五、实验结果与分析根据实验的步骤和要求,我们成功搭建了实验电路,并编写了相应的程序。

通过触发外部脉冲信号,实验结果显示单片机成功进行了计数操作,即正确触发了中断服务函数。

六、实验总结通过本次实验,我们了解了外部中断的工作原理和应用,并掌握了基于外部中断进行计数的方法。

同时,通过编写程序,我们成功搭建了实验电路,实现了外部中断计数功能。

实验结果表明,外部中断计数功能正常运行。

七、存在问题及改进方向在实验过程中,我们发现实时性较高的外部脉冲信号可能会引起计数不准确的问题。

这是因为我们的程序没有对外部脉冲信号进行滤波处理,导致了计数的不稳定性。

单片机外部中断实验报告

单片机外部中断实验报告

实验三外部中断实验报告班级:学号:姓名:教师:一、实验目的1、掌握单片机外部中断的原理及过程。

2、掌握单片机外部中断程序的设计方法。

3、掌握单片机外部中断时中断方式的选择方法。

二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管D1~D8。

每当发生外部中断时,发光二极管以向下流水灯的方式点亮。

分别选择边沿触发外部中断放是和电平触发外部中断方式两种。

三、编程提示1、P3口是8位准双向口,具有双重功能:第一功能和P1口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3.0 RXD 串行输入口P3.1 TXD 串行输出口P3.2 INT0 外部中断0请求输入线P3.3 INT1 外部中断1请求输入线P3.4 T0定时器/计数器T0外部计数器脉冲输入线P3.5 T1定时器/计数器T1外部计数器脉冲输入线P3.6 WR外部数据存贮器写脉冲输出线P3.7 RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断0 03H定时器/计数器T1溢出中断0BH外部中断1 13H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EA ES ET1 EX1 ET0 EX0(1)外部中断源允许中断(中断0:EX0=1;中断1:EX1=1)。

(2)CPU开中断(EA=1)。

(3)外部中断方式CPU发出中断申请。

4、外部中断方式的选择控制TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IT0是选择文字则外部中断0请求(INT0)边沿触发方式或电平触发方式的控制位。

前一方式IT0=1,后一方式IT0=0。

IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。

前一方式IT1=1,后一方式IT1=0。

当8031复位后,TCON被清0。

5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。

单片机实验之外部中断应用实验

单片机实验之外部中断应用实验

一、实验目的1、掌握中断系统外部中断源的使用方法。

2、掌握延时程序的编程及使用方法。

3、掌握Proteus软件与Keil软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

二、设计要求1、用Proteus软件画出电路原理图,在单片机的P1.0口线上接按键K0 ,作为外部中断源0使用,用于开启波形,在单片机的 P1.1口线上接按键K1,作为外部中断源1使用,用于关闭波形。

2、在单片机的P1.2口线上产生周期50mS的连续方波,在P1.2口线上接示波器观察波形。

三、电路原理图六、实验总结通过本实验能够准确安排各种类型的中断服务程序入口,中断源提出中断申请后,却执行到相应的中断服务程序。

弄清楚了中断服务程序与子程序的共同点和不同点。

七、思考题1、在P1.2口线上产生周期为100mS,占空比为2:5的连续矩形波,要求只采用按键K0来控制其开启和关闭。

答:程序见程序清单。

四、实验程序流程框图和程序清单。

1、在单片机的P1.2口线上产生周期50mS的连续方波。

P1.0口线上接按键K0 ,作为外部中断源0使用,用于开启波形, P1.1口线上接按键K1,作为外部中断源1使用,用于关闭波形。

汇编程序:ORG 0000H START: LJMP MAINORG 0003HLJMP EXT0ORG 000BHLJMP TTCOORG 0013HLJMP EXT1ORG 0100HMAIN: MOV TMOD, #01HMOV TCON, #01HMOV IE, #87HMOV TH0, #9EHMOV TL0, #58HSETB PX1HERE: LJMP HEREEXT0: SETB TR0RETIEXT1: CLR TR0RETITTCO: CPL P1.2MOV TH0, #9EHMOV TL0, #58HRETIENDC语言程序:#include<reg51.h>sbit P12=P1^2;main(){TMOD=0X01;EA=1;EX0=1;EX1=1;ET0=1;PX1=1;TCON=0X01;TH0=0X9E;TL0=0X58;while(1);}void EXT0() interrupt 0{ TR0=1;}void EXT1() interrupt 2{ TR0=0;}void TTC0() interrupt 1{ P12=!P12; TH0=0X9E;TL0=0X58;}2、在P1.2口线上产生周期为100mS,占空比为2:5的连续矩形波,要求只采用按键K0来控制其开启和关闭。

外部中断实验报告

外部中断实验报告

外部中断实验报告外部中断实验报告引言:外部中断是计算机系统中的一种重要机制,它可以响应外部事件并中断正在执行的程序。

本实验旨在通过设计和实现一个外部中断的示例,加深对外部中断的理解和应用。

实验目的:1. 理解外部中断的概念和原理;2. 掌握外部中断的编程方法;3. 设计和实现一个基于外部中断的应用。

实验设备和材料:1. 一台支持外部中断的计算机;2. 开发板或模块,用于外部中断的触发。

实验过程:1. 硬件连接:将开发板或模块与计算机连接,并确保连接正确和稳定。

2. 编写中断处理函数:在编程环境中,编写一个中断处理函数,用于处理外部中断触发时的操作。

可以根据实际需求,设计适当的处理逻辑。

3. 配置中断触发条件:根据实验要求,配置外部中断触发的条件。

可以通过设置开关、按键或其他外部信号来触发中断。

4. 编写主程序:编写一个主程序,用于初始化外部中断和执行其他操作。

在主程序中,需要配置外部中断的相关寄存器和中断向量表。

5. 运行实验:将程序下载到计算机中,并运行实验。

通过触发外部中断条件,观察中断处理函数的执行情况。

实验结果与分析:在实验中,我们成功实现了一个基于外部中断的应用。

当外部中断触发条件满足时,中断处理函数被调用,并执行相应的操作。

通过实验观察和分析,我们可以得出以下结论:1. 外部中断可以在计算机系统中实现对外部事件的及时响应,提高系统的实时性和可靠性。

2. 外部中断的触发条件可以灵活配置,可以通过外部设备或信号的变化来触发中断。

3. 中断处理函数的执行时间相对较短,可以在不影响主程序正常运行的情况下完成相应的操作。

4. 外部中断的应用范围广泛,可以用于实现各种实时控制、通信和交互功能。

实验总结:通过本次实验,我们深入了解了外部中断的原理和应用,并成功设计和实现了一个基于外部中断的应用。

外部中断作为计算机系统中的重要机制,具有重要的意义和应用价值。

在今后的学习和实践中,我们应进一步探索和应用外部中断,为计算机系统的性能和功能提供更多的可能性。

外部中断的实验报告

外部中断的实验报告

一、实验目的1. 理解外部中断的概念和作用。

2. 掌握外部中断的编程方法。

3. 熟悉中断处理程序的设计和调试。

二、实验原理外部中断是指由外部设备或信号产生的中断,用于处理与CPU无关的事件。

在微机系统中,外部中断通常用于处理输入/输出设备的中断请求。

外部中断分为可屏蔽中断和不可屏蔽中断两种类型。

三、实验环境1. 开发平台:Keil uVision 52. 微控制器:STM32F103C8T63. 外部设备:按钮、LED灯4. 连接方式:通过GPIO引脚连接四、实验步骤1. 设计外部中断电路(1)将按钮连接到STM32F103C8T6的GPIO引脚,例如PA0引脚。

(2)将LED灯连接到STM32F103C8T6的另一个GPIO引脚,例如PB0引脚。

2. 编写外部中断初始化程序(1)在Keil uVision 5中创建一个新项目,并添加STM32F103C8T6的起始代码。

(2)在主函数中编写初始化程序,包括以下步骤:a. 配置PA0引脚为输入模式,设置为浮空输入。

b. 配置PB0引脚为输出模式,用于控制LED灯。

c. 使能中断,设置中断优先级。

d. 配置NVIC(嵌套向量中断控制器)以允许外部中断。

3. 编写外部中断处理程序(1)在项目中添加一个新的C文件,用于编写外部中断处理程序。

(2)编写外部中断处理函数,当按钮按下时,触发中断,控制LED灯闪烁。

a. 初始化外部中断处理函数,设置中断优先级和中断触发方式。

b. 在外部中断处理函数中,编写LED灯控制代码,实现LED灯闪烁。

4. 编译并下载程序(1)编译项目,生成.hex文件。

(2)将.hex文件下载到STM32F103C8T6开发板上。

5. 测试实验结果(1)将按钮按下,观察LED灯是否闪烁。

(2)松开按钮,LED灯停止闪烁。

五、实验结果与分析1. 实验结果实验过程中,当按钮按下时,LED灯闪烁;松开按钮后,LED灯停止闪烁。

实验结果表明,外部中断能够正确地处理外部设备的中断请求,并控制LED灯的亮灭。

(单片机原理与应用实验)实验4外中断实验

(单片机原理与应用实验)实验4外中断实验
设置中断的临时和永久关闭
可通过硬件电路和程序操作实现中断的暂停、延迟和关闭。
单片机中断的限制与局限性
一次中断只能处理单 一任务
每次中断响应只能处理一个事 件,无法同时执行多个中断任 务。
对中断处理的时间和 精度要求较高
中断程序需要快速响应和实现, 并保持高精度和低误差。
中断任务的开销和存 储空间较大
智能门锁
中断用于执行网络任务并接收无 线信号,保证网络的稳定和性能。
中断用于检测密码和指纹等,实 现智能门禁功能和安全保障。
交通信号灯
中断用于控制信号变化和流量监 测,实现交通安全和效率。
中断优先级的控制与调度
提高任务的优先级
终止当前执行的任务,并开始响应更高优先级的中断任务。
屏蔽低优先级的中断
阻止低优先级的中断过程,优先完成高优先级的中断任务并避免误操作。
采用合适的中断驱 动模式
不同的中断驱动模式有着不 同的优点和局限性,需要根 据实际情况及时调整。

对中断控制和优先 级进行优化
中断控制和优先级的设置能 够直接影响到中断系统的性 能和效率,应进行优化和梳 理。
定期检测和维护中 断系统
中断系统的稳定性和可靠性 需要定期检查和维护,及时 修复故障和调整优化。
可能是中断控制端口连接错误或电路设计有误,需要检查原理图和程序,并进行调试和 重组。
2 问题2:中断运行速度太慢。
可能是程序优化不当或中断优先级设置有误,需要进行程序的升级和重新排列优先级。
实验效果的总结与评估
实验优点
本次实验通过对中断控制的学习和探究,深入理解 了单片机系统设计的基本原理和应用方法。
常见中断相关问题与FAQ
1 中断和定时器有什么 2 什么情况下需要进行 3 如何调整中断控制的

单片机外部中断实训报告

单片机外部中断实训报告

一、实训目的1. 理解单片机外部中断的概念和作用。

2. 掌握单片机外部中断的配置方法。

3. 学会编写外部中断服务程序。

4. 通过实际操作,提高单片机编程和调试能力。

二、实训内容1. 单片机外部中断原理2. 单片机外部中断配置3. 外部中断服务程序编写4. 实验验证与调试三、实训环境1. 单片机开发板:选用STC89C52单片机。

2. 仿真软件:Proteus。

3. 实验工具:示波器、电源、连接线等。

四、实训步骤1. 理解单片机外部中断原理外部中断是单片机中断系统中的一种,用于响应外部事件。

当外部事件发生时,单片机会暂停当前程序,转去执行外部中断服务程序。

外部中断有多个中断源,如INT0、INT1等。

2. 单片机外部中断配置(1)设置外部中断触发方式:根据需要选择上升沿触发、下降沿触发或双边沿触发。

(2)设置外部中断优先级:根据实际需求设置中断优先级。

(3)设置外部中断使能:通过设置IE寄存器使能外部中断。

3. 外部中断服务程序编写编写外部中断服务程序,用于处理外部中断事件。

在服务程序中,完成相关处理逻辑,如记录外部事件发生次数、控制LED灯闪烁等。

4. 实验验证与调试(1)搭建实验电路:将单片机开发板与外部设备(如按钮)连接,设置好外部中断配置。

(2)在Proteus中搭建仿真电路,编写代码。

(3)下载代码到单片机开发板,观察实验现象。

(4)根据实验现象,调试程序,确保外部中断功能正常。

五、实验结果与分析1. 实验现象:按下外部按钮,单片机进入外部中断服务程序,控制LED灯闪烁。

2. 分析:通过设置外部中断触发方式、优先级和使能,成功实现外部中断功能。

在服务程序中,完成相关处理逻辑,达到预期效果。

六、实训总结1. 通过本次实训,掌握了单片机外部中断的配置方法,学会了编写外部中断服务程序。

2. 熟悉了外部中断在实际应用中的重要作用,提高了单片机编程和调试能力。

3. 在实训过程中,遇到了一些问题,如外部中断响应不及时、LED灯闪烁不稳定等。

实验四-MCS-51单片机外部中断实验

实验四-MCS-51单片机外部中断实验

实验四-MCS-51单片机外部中断实验实验目的:1. 学习MCS-51单片机的外部中断原理和使用方法;2. 掌握如何通过硬件中断和软件中断实现MCS-51单片机的响应机制;3. 了解MCS-51单片机外部中断的实际应用。

实验器材:MCS-51单片机开发板、按键开关、调试器。

实验原理:MCS-51单片机通过INT0和INT1两个硬件中断引脚实现外部中断。

当INT0外部中断线检测到低电平信号时,中断向量为0x0003;当INT1外部中断线检测到低电平信号时,中断向量为0x0013。

通过配置中断控制寄存器IE和TCON,可以实现对外部中断的使能、触发方式和优先级等的控制。

MCS-51单片机还可以通过软件方式实现外部中断,即通过软件方式扫描外部信号,并在检测到信号发生变化时触发相应的中断处理程序。

实现软件中断的方法是使用定时器功能,通过定时器中断触发中断服务程序,该程序扫描外部信号,并根据需要触发软件中断。

实验步骤:1. 将开发板上的按键开关连接到开发板的P3.2引脚。

按键开关按下时,P3.2引脚被拉低,可以触发外部中断。

2. 打开Keil μVision5软件,新建工程,选择芯片型号为STC89C52,保存并命名为“Exp4”。

3. 在主函数中声明中断函数,并在中断函数中打印提示信息。

4. 在主函数中初始化中断控制寄存器IE和TCON,开启INT0外部中断,并将中断优先级设置为最高。

5. 在主函数中使用无限循环,来保持程序一直运行,并定时打印提示信息,以验证程序是否正常运行。

6. 烧录程序到开发板上,先在开发板上不按下按键,观察是否正常打印提示信息。

然后按下按键,观察是否触发外部中断,进入中断函数并打印提示信息。

实验代码:#include<STC89C52.h>#include<stdio.h>// 定义外部中断0的中断服务函数void Interrupt0() interrupt 0{printf("External interrupt 0 has occured!\n");}// 打印提示信息printf("Program is running...\n");while(1){// 定时打印提示信息printf("Hello!\n");delay_ms(1000);}}注意事项:1. 写中断程序时,一定要注意将中断函数的声明放在程序开头,否则可能会出现中断无法触发的情况;2. 在使用中断相关功能的时候,务必仔细阅读数据手册中的相关章节,以确保正确使用并且避免出现不必要的错误;3. 在进行外部中断实验的时候,可以使用按键开关、光敏电阻等外部器件来模拟外部信号的变化,以测试程序的正确性。

实验04:外部中断INT0、INT1控制流水灯左移、右移

实验04:外部中断INT0、INT1控制流水灯左移、右移

实验四:外部中断系统实验一、实验目的1.结合理论教学,进一步熟悉外部中断INT0和INT1的基本概念和原理;2.理解掌握定时器控制寄存器TCON、中断允许控制寄存器IE、中断优先级别控制寄存器IP的功能和设置方法;3.了解并熟悉MCS-51单片机外部中断INT0和INT1的电路设计特点和应用特点;4.能够针对MCS-51单片机,进行外部中断INT0和INT1的初始化设置,能够完成简单中断服务程序的功能应用设计。

5.进一步熟悉、掌握MCS-51单片机指令系统和应用软件的编程方法和技巧。

二、实验设备、材料1.微型计算机(PⅣ以上);2.编程、汇编与模拟平台软件Keil uVision4;3.电子技术专业仿真软件protues运行平台;4.单片机实训开发电路板。

三、实验内容和实验步骤1.系统仿真电路参考原理图12.系统参考源程序1(用INT0控制流水灯左移1位,用INT1控制流水灯右移1位)已在实验板上演示ORG 0000HAJMP MAINORG 0003H ;INT0中断入口地址LJMP IN0ORG 0013H ;INT1中断入口地址LJMP IN1ORG 0020HMAIN:MOV TCON,#05HMOV IE,#85HMOV P2,#0FEHMOV A,#0FEHSJMP $IN0:CLR EARL A //左移MOV P2,ASETB EARETIIN1:CLR EARR A //右移MOV P2,ASETB EARETIEND3.系统参考源程序1(用8位发光二极管代表8位二进制数,用INT0控制加1递增,用INT1控制减1递减)已在实验板上演示ORG 0000HAJMP MAINORG 0003H ;INT0中断入口地址LJMP IN0ORG 0013H ;INT1中断入口地址LJMP IN1ORG 0020HMAIN:MOV TCON,#05HMOV IE,#85HMOV R0,#00HMOV A,#00HMOV P2,ASJMP $ IN0:INC R0MOV A,R0CPL AMOV P2,ARETIIN1:INC R0MOV A,R0CPL AMOV P2,ARETIEND4.系统参考源程序2(用INT0控制流水灯左移1位,用INT1控制流水灯右移1位)已在实验板上演示ORG 0000HAJMP MAINORG 0003H ;INT0中断入口地址CLR F0RETIORG 0013H ;INT1中断入口地址SETB F0RETIORG 0030HMAIN:MOV P2,#0FFHMOV TCON,#05HMOV IE,#85HMOV A,#7FHRRR:JNB F0,LLLRR A //右移MOV P2,AACALL DELAYSJMP RRRLLL:JB F0,RRRRL A //左移MOV P2,AACALL DELAYSJMP LLLDELAY:MOV R7,#8FH ;延时程序DELAY1:MOV R6,#0FFHDELAY2:MOV R5,#02HDELAY3:DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND。

外部中断实验报告

外部中断实验报告

外部中断实验报告外部中断实验报告一、引言外部中断是计算机系统中的一种重要的中断方式,它可以使得计算机在执行某个任务的过程中,根据外部设备的信号来暂停当前任务,转而去处理其他紧急事件。

本实验旨在通过对外部中断的实验,深入了解外部中断的原理和应用。

二、实验目的1. 理解外部中断的概念和原理;2. 学会使用外部中断来处理外部设备的信号;3. 掌握外部中断的编程方法。

三、实验装置和材料1. 计算机硬件平台:使用一台支持外部中断的计算机;2. 软件平台:使用汇编语言进行编程。

四、实验步骤1. 连接外部设备:将外部设备(如键盘、鼠标等)与计算机相连接,确保外部设备可以正常工作;2. 编写中断处理程序:使用汇编语言编写中断处理程序,以响应外部设备的信号;3. 设置中断向量表:将中断处理程序的入口地址存放在中断向量表中,以便系统在接收到外部设备信号时能够正确地跳转到中断处理程序;4. 运行程序并测试:运行程序,触发外部设备的信号,观察中断处理程序是否能够正确执行。

五、实验结果与分析在实验中,我们成功地编写了一个外部中断处理程序,并将其入口地址存放在中断向量表中。

当我们触发外部设备的信号时,系统能够正确地跳转到中断处理程序,并执行相应的操作。

通过这个实验,我们深入了解了外部中断的原理和应用。

六、实验总结通过本次实验,我们对外部中断有了更深入的了解。

外部中断作为计算机系统中的一种重要中断方式,可以使计算机在执行某个任务的过程中,根据外部设备的信号来暂停当前任务,转而去处理其他紧急事件。

在实际应用中,外部中断广泛应用于各种设备的控制和通信系统中,提高了计算机系统的效率和可靠性。

七、实验心得通过本次实验,我深刻认识到了外部中断在计算机系统中的重要性。

在实验中,我不仅学会了编写中断处理程序,还了解了中断向量表的作用。

这次实验让我对计算机系统的工作原理有了更深入的了解,也提高了我的编程能力。

我相信这次实验对我的学习和将来的工作都有很大的帮助。

单片机外部中断实验报告

单片机外部中断实验报告

单片机外部中断实验报告实验目的:1、理解单片机外部中断的原理和用途;2、掌握单片机外部中断的配置和使用方法。

实验器材:1、STC15W408AS单片机开发板;2、简单的电路连接器;3、按钮开关。

实验原理:单片机外部中断是通过外部硬件信号触发单片机的中断请求,在单片机运行过程中,当外部信号满足特定条件时,会触发中断,并暂停当前的运行程序,转而执行中断服务程序。

通过外部中断,可以实现对外部事件的实时处理。

实验步骤:1、将按钮开关与单片机开发板连接,将按钮开关的一端与单片机的INT0引脚连接,另一端与GND连接。

2、在开发板上连接好电源并供电。

3、打开Keil软件,新建一个工程,并选择合适的单片机型号。

4、配置单片机的外部中断功能,设置INT0引脚为中断输入。

5、编写中断服务程序,当INT0引脚检测到边沿信号时,执行中断服务程序,并在其中加入相应的处理代码。

6、编写主程序,配置相关的引脚和寄存器,使单片机进入中断模式,接受外部中断信号,并执行中断服务程序。

7、下载程序到单片机开发板上,运行程序。

8、按下按钮开关,触发外部中断,并查看实验结果。

实验结果:当按下按钮开关时,实时触发外部中断,单片机停止当前程序的运行,进入中断模式,并执行中断服务程序中的相应代码。

实验总结:通过这次实验,我对单片机的外部中断有了更深入的理解,并学会了如何使用外部中断实现对外部事件的及时处理。

外部中断广泛应用于各种实时系统和设备中,具有很大的实用价值。

在以后的学习和实践中,我会进一步掌握和应用单片机的外部中断功能。

单片机实验四报告外中断实验

单片机实验四报告外中断实验

大学实验报告学生:学号:专业班级:实验类型:⃞验证⃞综合■设计⃞创新实验日期:2018.05.29实验成绩:实验四外中断实验(一)实验目的1.掌握单片机外部中断原理;2.掌握数码管动态显示原理。

(二)设计要求1.使用外部中断0和外部中断1;2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。

(三)实验原理1.中断所谓中断是指程序执行过程中,允许外部或部时间通过硬件打断程序的执行,使其转向为处理外部或部事件的中断服务程序中去,完成中断服务程序后,CPU返回继续执行被打断的程序。

如下图所示,一个完整的中断过程包括四个步骤:中断请求、中断响应、中断服务与中断返回。

当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。

中断服务请求处理完后,再回到原来被中止的程序之处(断电),继续执行被中断的主程序。

如果单片机没有终端系统,单片机的大量时间可能会浪费在是否有服务请求发生的查询操作上,即不论是否有服务请求发生,都必须去查询。

因此,采用中断技术大提高了单片机的工作效率和实时性。

2.IAP15W4K58S4单片机的中断请求IAP15W4K58S4单片机的中断系统有21个中断请求源,2个优先级,可实现二级中断服务嵌套。

由IE、IE2、INT_CLKO等特殊功能寄存器控制CPU是否相应中断请求;由中断优先级高存器IP、IP2安排各中断源的优先级;同优先级2个以中断同时提出中断请求时,由部的查询逻辑确定其响应次序。

中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下:(1)外部中断0(INT0):中断请求信号由P3.2引脚输入。

通过IT0来设置中断请求的触发方式。

当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0。

一旦输入信号有效,则置位IE0标志,向CPU申请中断。

外中断实验实验报告

外中断实验实验报告

一、实验目的1. 理解中断的概念和作用。

2. 掌握中断的实现方法。

3. 学习中断优先级的设置。

4. 掌握中断服务程序的设计。

二、实验环境1. 实验平台:计算机实验室2. 实验设备:计算机、实验箱、示波器、万用表等3. 实验软件:C语言编程软件三、实验原理1. 中断:中断是指计算机在执行程序的过程中,由于某个事件的发生而暂时停止当前程序的执行,转而执行处理该事件的程序。

中断事件可以是硬件设备请求服务,也可以是软件程序请求处理。

2. 中断优先级:中断优先级是指多个中断同时发生时,系统优先处理哪个中断。

中断优先级设置合理可以保证系统稳定运行。

3. 中断服务程序:中断服务程序是指处理中断事件的程序,它通常由中断向量表中的中断处理函数组成。

四、实验步骤1. 设计实验程序,实现外中断功能。

2. 编写中断服务程序,处理中断事件。

3. 设置中断优先级。

4. 编译、下载程序到实验设备。

5. 进行实验,观察实验现象。

五、实验内容1. 实现外中断功能(1)编写中断初始化程序,配置中断控制器,设置中断向量表。

(2)编写中断服务程序,处理中断事件。

(3)编写主程序,触发中断事件。

2. 设置中断优先级(1)根据实验需求,设置中断优先级。

(2)编写中断优先级控制程序,实现中断优先级设置。

3. 编译、下载程序(1)使用C语言编程软件编译实验程序。

(2)将编译后的程序下载到实验设备。

4. 进行实验(1)打开实验设备,启动实验程序。

(2)观察实验现象,验证中断功能、中断优先级设置等。

六、实验结果与分析1. 实验结果实验成功实现了外中断功能,中断服务程序能够正确处理中断事件。

中断优先级设置合理,系统运行稳定。

2. 实验分析(1)中断初始化程序正确配置了中断控制器,设置了中断向量表,为中断服务程序的执行提供了基础。

(2)中断服务程序能够正确处理中断事件,保证了系统的正常运行。

(3)中断优先级设置合理,确保了关键中断事件能够优先得到处理。

实验四 80C51单片机外中断实验

实验四 80C51单片机外中断实验

实验四80C51单片机外中断实验一实验目的:了解8051系列单片机的外中断基本工作原理。

掌握8051系列单片机外中断的用法。

二实验原理:中断是在执行正常程序的过程中转去执行临时的任务,此时CPU必须暂停现行的程序而转去处理更加紧急的事件,在处理完毕之后方可返回执行原来的程序。

在8051的中断里面,要涉及到一系列的诸如保护现场,中断响应,现场恢复,中断嵌套以及优先级等问题。

8051有5个中断源,它们分别是两个外部中断请求INT0(P3.2)和INT1(P3.3)、两个片内定时器/计数器溢出中断TF0和TF1,一个片内串行口中断请求TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制(如图4-1所示):表4-1TI是8051串行口的发送中断标志。

当串行口发送完一帧数据后请求中断由硬件置位,而清零必须由软件来完成。

RI是串行口接收中断标志。

当串行口接收完一帧数据后请求中断由硬件置位,也是由软件来清零。

8051的对中断的开放和屏蔽是由中断允许寄存器IE控制来实现的,IE的结构格式如图4-2所示。

其中任何一个位置一就是将相应的中断源打开,反之,为0则关闭。

这里EA为CPU的中断控制位,在使用任何一个中断源之前都必须将CPU的中断置1。

表4-28051有两个中断优先级,即高优先级和低优先级。

每个中断源都可设置为高或低中断优先级。

所以中断嵌套有两级,嵌套原则为:正在执行的中断服务程序可以被更高级的中断请求打断,但不能被同一级别或是更低级的中断请求中断。

两级中断通过中断优先级寄存器IP来设置。

IP的格式如图4-3所示,字节地址是B8H。

表4-38051CPU在每一个机器周期顺序检查每一个中断源,在机器周期的S6按优先级处理所有被激活的中断请求。

中断响应的主要内容就是由硬件自动形成转向与该中断源对应的服务程序入口地址。

这些中断源的服务程序入口地址如图4-4所示。

这里要注意的是,在中断服务子程序中,关键字interrupt后面的KeilC中断编号一定要正确。

外部中断实验报告

外部中断实验报告

一、实验目的1. 理解单片机外部中断的概念和工作原理。

2. 掌握MCS-51单片机外部中断的编程方法。

3. 通过实验验证外部中断在实际应用中的效果。

二、实验环境1. 实验设备:MCS-51单片机实验板、按键、LED灯、面包板、连接线等。

2. 开发环境:Keil uVision5软件。

三、实验原理外部中断是单片机的一个重要功能,用于响应外部事件。

当外部事件发生时,CPU可以暂停当前程序,转而执行中断服务程序,处理外部事件。

MCS-51单片机有两个外部中断源,即INT0和INT1。

四、实验内容1. 硬件连接将按键连接到单片机的INT0或INT1引脚,LED灯连接到单片机的某个I/O口。

具体连接方式如下:- 将按键的一端连接到单片机的INT0或INT1引脚,另一端连接到地。

- 将LED灯的正极连接到单片机的某个I/O口,负极连接到地。

2. 程序设计(1)初始化单片机```cvoid main() {EA = 1; // 开启总中断EX0 = 1; // 开启INT0中断IT0 = 1; // 设置INT0为下降沿触发P1 = 0xFF; // 初始化P1口为高电平,关闭LED灯 while(1) {// 主循环}}```(2)编写中断服务程序```cvoid ext0_isr() interrupt 0 {P1 = 0x00; // 点亮LED灯delay(500); // 延时0.5秒P1 = 0xFF; // 熄灭LED灯}```(3)编写延时函数```cvoid delay(unsigned int ms) {unsigned int i, j;for(i = 0; i < ms; i++)for(j = 0; j < 123; j++);}```3. 实验步骤1. 编写程序,并使用Keil uVision5软件进行编译和烧录。

2. 将程序烧录到单片机中,并连接好硬件电路。

3. 按下按键,观察LED灯是否闪烁。

外中断实验报告

外中断实验报告

外中断实验报告1. 实验目的本实验的目的是通过外中断的实验,加深对中断概念的理解,并掌握在单片机中使用外中断的方法和技巧。

2. 实验原理外中断是单片机系统中常用的一种中断方式。

当外部输入信号满足一定条件时,可以触发中断请求,从而打断当前正在执行的程序,转而执行中断服务程序。

外中断可以有效地处理实时性要求较高的任务。

3. 实验材料和器件本次实验所需材料和器件如下: - 单片机开发板 - 电脑 - 连接线4. 实验步骤4.1 准备工作首先,将单片机开发板与电脑通过连接线连接好,确保通信正常。

4.2 硬件连接将外部输入信号源连接至单片机的外部中断引脚,确保输入信号与单片机能够正常连接。

4.3 软件编程在单片机开发板上,选择合适的编程软件进行编程。

根据单片机的型号和开发板的特点,选择相应的编程语言进行编写。

4.4 编写中断服务程序根据实验要求,编写一个中断服务程序。

该程序在接收到外部中断请求时,能够对请求进行响应,并执行相应的操作。

4.5 编译和下载编译程序,生成可执行文件,并将该文件下载到单片机开发板上。

4.6 实验操作打开外部输入信号源,触发外部中断请求。

观察单片机开发板的输出,验证中断服务程序是否正确执行。

5. 实验结果与分析根据实验操作,我们成功触发了外部中断请求,并且中断服务程序正确执行。

这表明我们的实验设计和实施都是成功的。

6. 实验总结通过本次实验,我们深入了解了外中断的概念和原理,并通过实际操作掌握了外中断的使用方法和技巧。

外中断在单片机系统中具有广泛的应用场景,通过合理利用外中断,能够提高单片机系统的实时性能。

7. 实验注意事项•在进行硬件连接时,应确保信号连接正确,避免因连接错误导致中断请求无法触发。

•在编写中断服务程序时,应注意处理中断请求的时序和优先级,确保程序的正确性和可靠性。

•在实验过程中,应注意保护实验设备和材料,避免损坏或丢失。

8. 参考资料[1] 单片机原理与应用教程 [2] 51单片机外部中断原理及应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大学实验报告学生:学号:专业班级:实验类型:⃞验证⃞综合■设计⃞创新实验日期:2018.05.29 实验成绩:实验四外中断实验(一)实验目的1.掌握单片机外部中断原理;2.掌握数码管动态显示原理。

(二)设计要求1.使用外部中断0和外部中断1;2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。

(三)实验原理1.中断所谓中断是指程序执行过程中,允许外部或部时间通过硬件打断程序的执行,使其转向为处理外部或部事件的中断服务程序中去,完成中断服务程序后,CPU返回继续执行被打断的程序。

如下图所示,一个完整的中断过程包括四个步骤:中断请求、中断响应、中断服务与中断返回。

当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。

中断服务请求处理完后,再回到原来被中止的程序之处(断电),继续执行被中断的主程序。

如果单片机没有终端系统,单片机的大量时间可能会浪费在是否有服务请求发生的查询操作上,即不论是否有服务请求发生,都必须去查询。

因此,采用中断技术大大地提高了单片机的工作效率和实时性。

2.IAP15W4K58S4单片机的中断请求IAP15W4K58S4单片机的中断系统有21个中断请求源,2个优先级,可实现二级中断服务嵌套。

由IE、IE2、INT_CLKO等特殊功能寄存器控制CPU是否相应中断请求;由中断优先级高存器IP、IP2安排各中断源的优先级;同优先级2个以中断同时提出中断请求时,由部的查询逻辑确定其响应次序。

中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下:(1)外部中断0(INT0):中断请求信号由P3.2引脚输入。

通过IT0来设置中断请求的触发方式。

当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0。

一旦输入信号有效,则置位IE0标志,向CPU申请中断。

(2)外部中断1(INT1):中断请求信号由P3.3引脚输入。

通过IT1来设置中断请求的触发方式。

当IT1为“1”时,外部中断1为下降沿触发;当IT1为“0”时,无论是上升沿还是下降沿,都会引发外部中断1。

一旦输入信号有效,则置位E1标志,向CPU申请中断。

中断源是否有中断请求,是由中断请求标志来表示的。

在IAP15W4K58S4单片机中,外部中断0、外部中断1等请求源的中断请求标志分别由特殊功能寄存器TCON和SCON控制,格式如下:(1)TCON寄存器中的中断请求标志。

TCON为定时器T0与T1的控制寄存器,同时也锁存T0和T1的溢出中断请求标志及外部中断0和外部中断1的中断请求标志等。

格式如下图所示:D7 D6 D5 D4 D3 D2 D1 D088H与中断有关的各标志位功能如下:①TF1:T1的溢出中断请求标志。

T1被启动计数后,从初值做加1计数,计满溢出后由硬件置位TFI,同时向CPU发出中断请求,此标志一直保持到CPU 响应中断后才由硬件自动清0。

也可由软件查询该标志,并由软件清0。

②TF0:T0的溢出中断请求标志。

T0被启动计数后,从初值做加1计数,计满溢出后由硬件置位TF0,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。

也可由软件查询该标志,并由软件清0。

③IE1:外部中断1的中断请求标志。

当INT1(P3.3)引脚的输入信号满足中断触发要求时,置位IE1,外部中断1向CPU申请中断。

中断响应后中断请求标志自动清0。

④IT1:外部中断1(INT1)中断触发方式控制位。

当(IT1)=1时,外部中断1为下降沿触发方式。

在这种方式下,若CPU检测到INT1出现下降沿信号,则认为有中断申请,随即使IE1标志置位。

中断响应后中断请求标志会自动清0,无须做其他处理。

当(T1)=0时,外部中断1为上升沿触发和下降沿触发触发方式。

在这种方式下,无论CPU检测到INT1引脚出现下降沿信号还是上升沿信号,都认为有中断申请,随即使IE1标志置位。

中断响应后中断请求标志会自动清0,无须做其他处理。

⑤IE0:外部中断0的中断请求标志。

当INT0(P3.2)引脚的输入信号满足中断触发要求时,置位IE0,外部中断0向CPU申请中断。

中断响应后中断请求标志自动清0。

⑥IT0:外部中断0的中断触发方式控制位。

当(IT0)=1时,外部中断1为下降沿触发方式。

在这种方式下,若CPU检测到INT0(P3.2)出现下降沿信号,则认为有中断申请,随即使IE0标志置位。

中断响应后中断请求标志会自动清0,无须做其他处理。

当(IT0)=0时,外部中断0为上升沿触发和下降沿触发触发方式。

在这种方式下,无论CPU检测到INT0(P3.2)引脚出现下降沿信号还是上升沿信号,都认为有中断申请,随即使IE0标志置位。

中断响应后中断请求标志会自动清0,无须做其他处理。

(2)SCON寄存器中的中断请求标志。

SCON是串行口控制寄存器,其低2位TI和RI锁存串行口1的发送中断请求标志和接收中断请求标志格式如下:D7 D6 D5 D4 D3 D2 D1 D098H中断请求标志和接收中断请求标志的功能如下:①TI:串行口1发送中断请求标志。

CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。

但CPU响应中断时并不清除TI,必须由软件清除。

②RI:串行口1接收中断请求标志。

在串行口1允许接收时,每接收完一个串行帧,硬件将使RI置位。

同样,CPU在响应中断时不会清除RI,必须由软件清除。

中断请求源中的外部中断0(INT0)和外部中断1(INT1)等都是可屏蔽中断,由片的中断允许寄存器IE控制,,可对中断的开放和关闭实现两级控制。

所谓两级控制,就是有一个总的开关中断控制位EA(IE.7位),当EA=0时,所有的中断请求被屏蔽,CPU对任何中断请求都不接受,因此称EA为系统中断允许总开关控制位;当EA=1时,CPU开放中断,但5个中断源的中断请否允许,还要由其对应的中断请求允许控制位状态决定。

格式如下:D7 D6 D5 D4 D3 D2 D1 D0A8H其中EX1是外部中断1中断允许位,EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。

EX0是外部中断0中断允许位,EX0=0,禁止外部中断0中断;EX0=1,允许外部中断0中断。

另外,单片机中的中断请求源还具有两个中断优先级,存放在特殊功能寄存器IP中,只要利用程序改变其容就可以对各个中断源的中断优先级进行控制,其格式如下:D7 D6 D5 D4 D3 D2 D1 D0IP ——PT2 PS PT1 PX1 PT0 PX0 B8H位地址——BDH BCH BBH BAH B9H B8H其中PX1是外部中断1的中断优先级控制位,PX1=1,外部中断1为高优先级;PX1=0,外部中断1为低优先级。

PX0是外部中断0的中断优先级控制位,PX0=1,外部中断0为高优先级;PX0=1,外部中断0为低优先级。

根据上述原理分析,单片机要相应中断请求,首先要使IE寄存器中的中断总允许位EA=1,再使外部中断0和1所对应的中断请求标志为1和中断允许位为1即可。

本实验要求对中断0计数再利用中断1清0,只需要在中断0的中断服务子程序加上一个计数器,在中断1的中断服务子程序对该计数器清0,最后利用数码管显示该计数器的值便可实现。

(四)实验设备硬件:PC机、USB数据传输线、STC单片机综合实验箱软件:兼容51单片机的Keil uvision5集成开发环境、STC-ISP单片机烧录软件(五)实验结果实验源代码如(七)所示。

对代码进行编译,提示0错误0警告,生成hex文件。

将单片机试验箱和电脑通过USB数据线连接,打开STC-ISP检测串口点击点开程序文件,选择刚才生成的hex文件,点击下载程序,烧录成功(六)结果讨论与心得体会结果分析讨论:将程序烧录至单片机后,可观察到数码管的高三位显示000,其他位消隐。

按下SW17(外部中断0),数码管对此计数,当按下SW18(外部中断1),数码管显示000,即定时器清零,与预期效果一致,完成实验。

心得体会:通过本次实验,我掌握了外部中断的原理,学会了利用按键来产生中断,还了解了如何使用数码管显示,希望通过自己多次尝试能在今后实验中熟练使用外部中断并将其运用到其他方面。

(七)附录:实验源代码P4 DATA 0C0H ;P5 DATA 0C8H ;P4M1 DATA 0xB3 ;P4M0 DATA 0xB4 ;P5M1 DATA 0xC9 ;P5M0 DATA 0xCA ;;******************************************************/ P_HC595_SER BIT P4.0 ;P_HC595_RCLK BIT P5.4 ;P_HC595_SRCLK BIT P4.3 ;;******************************************************/ LED8 DATA 30H ;display_index DATA 38H ;INT0_cnt DATA 39H ;;******************************************************/ ORG 0000H ;LJMP F_Main ;ORG 0003H ;LJMP F_INT0_Interrupt ;ORG 0013H ;LJMP F_INT1_Interrupt ;;******************************************************/ ORG 0100H ;F_Main:CLR A ;MOV P4M1, A ;MOV P4M0, A ;MOV P5M1, A ;MOV P5M0, A ;MOV display_index, #0 ;MOV R0, #LED8 ;MOV R2, #8 ;CLR IE1 ;CLR IE0 ;SETB EX1 ;SETB EX0 ;SETB IT0 ;SETB IT1 ;SETB EA ;MOV INT0_cnt, #0 ;L_MainLoop:LCALL F_delay_ms ;LCALL F_DisplayScan ;LJMP L_MainLoop ;F_delay_ms:MOV R2, #20 ;D1:MOV R3, #20 ;D2:DJNZ R3, D2 ;DJNZ R2, D1 ;RETT_Display: ;DB03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,077H,07CH,039H,05EH,079H,071H; DB 000HT_COM:DB 020H,040H,080H;F_Send_595:PUSH 02H ;MOV R2, #8 ;L_Send_595_Loop:RLC A ;MOV P_HC595_SER, C ;SETB P_HC595_SRCLK ;CLR P_HC595_SRCLK ;DJNZ R2, L_Send_595_Loop ;POP 02H ; RETF_DisplayScan:PUSH DPH ;PUSH DPL ;PUSH 00H ;MOV A, INT0_cnt ;MOV B, #100 ;DIV ABMOV LED8+0, A ;MOV A, #10 ;XCH A, B ;DIV AB ;MOV LED8+1, A ;MOV LED8+2, B ;MOV DPTR, #T_COM ;MOV A, display_index;MOVC A, A+DPTR ;CPL A ;LCALL F_Send_595 ;MOV DPTR, #T_Display ;MOV A, display_index;ADD A, #LED8 ;MOV R0, A ;MOV A, R0 ;MOVC A, A+DPTR ;LCALL F_Send_595 ;CLR P_HC595_RCLK ;SETB P_HC595_RCLK ;INC display_index ;MOV A, display_index;CJNE A, #3, L_QuitDisplayScan ;MOV display_index, #0 ;L_QuitDisplayScan:POP 00H ;POP DPL ;POP DPH ; RETF_INT0_Interrupt:INC INT0_cnt ;RETIF_INT1_Interrupt:MOV INT0_cnt , #00H ; RETIEND。

相关文档
最新文档