单片机 实验报告 外部中断应用

合集下载

外中断实验报告

外中断实验报告

一、实验目的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. 学习中断服务程序的设计方法。

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. 通过本次实验,提高了单片机编程和调试能力,加深了对单片机外部中断的理解。

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

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

一、实验目的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. 熟悉中断处理程序的设计和调试。

二、实验原理外部中断是指由外部设备或信号产生的中断,用于处理与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灯的亮灭。

单片机外部中断实验报告

单片机外部中断实验报告

实验三外部中断实验报告班级:学号:姓名:教师:一、实验目的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、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。

(单片机原理与应用实验)实验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灯闪烁不稳定等。

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

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

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

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

(三)实验原理1.中断:计算机执行主程序过程中,由于临时重要事件,需要暂停当前程序的运行,转到中断服务程序去处理临时事件,处理完后又返回原程序的断点处继续运行。

图1STC15单片机的中断系统包含21个中断源,2个中断优先级,二级中断服务嵌套,中断允许寄存器IE、IE2和INT_CLKO控制中断允许。

中断优先级寄存器IP、IP2管理中断优先级。

同优先级中断同时提出中断请求时,由内部的查询逻辑确定响应次序。

中断请求源中的外部中断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”时,外部中断0为下降沿触发;当IT1为“0”时,无论是上升沿还是下降沿,都会引发外部中断0.一旦输入信号有效,则置位IE0标志,向CPU申请终端。

2.LED数码管是显示数字和字母的常见显示器件,由8个发光二极管构成,结构如图2:图2段码:a、b、c、d、e、f、g、dp段的二进制代码(a为最低位),控制显示字型。

位选:公共端com,控制数码管是否显示。

3.数码管动态显示原理:任何时刻只有一个数码管处于显示状态,单片机采用“扫描”方式控制各个数码管轮流显示,通常将所有数码管段码线的相应段并联在一起,由一个8位I/O 端口控制。

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

一、实验目的
1、学习外部中断技术的基本使用方法。

2、学习中断处理程序的编程方法。

二、实验环境
1、Lab6000通用微控制器实验系统。

2、计算机,W A VE 集成调试软件。

三、实验项目
用单次脉冲申请中断,在中断处理程序中对输出信号进行反转控制直流电机转、停。

四、涉及内容
中断服务程序的关键是:
1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

2、必须在中断程序中设定是否允许中断重入,即设置EXO位。

3、选择相应的中断源,并设置中断屏蔽寄存器的相应位。

本实验使用了INTO中断。

一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。

本实验的中断程序保护了PSW寄存器并且在退出前恢复了这个寄存器。

另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。

本实验中没有涉及这种情况。

INTO(P3.2)接单次脉冲发生器。

P1.0接继电器,以查看信号反转。

主程序框图外部中断子程序框图
五、实验步骤、记录和结果
实验电路连线
1、汇编语言
操作步骤如下:
(1)创建一个项目目录:shiyan51。

(2)如实验一的七.2,修改编译器为汇编语言编译器。

(3)执行“新建文件”命令,在开发环境程序窗口中按汇编语言格式输入汇编语言源程序。

将程序文件名取为shiyan51.asm保存到目录“shiyan51”。

Output equ P1.0
OutBuf equ 0
ljmp Start
org 3
Interrupt0:
push PSW ; 保护现场
cpl OutBuf ; 取反LED
连线连接孔1 连接孔2
1 继电器——输入P1.0
2 INT0
单脉冲——
3 继电器——公共端+5V
4 继电器——常闭L0
5 继电器——常开L3
6 继电器——常开直流电机——至D/A
开始
设置初始状态
设置中断控制
寄存器
中断允许
中断入口保护现场状态位取反状态位输出恢复现场
mov c, OutBuf
mov Output, c
pop PSW ; 恢复现场
reti
Start:
setb OutBuf
mov TCON, #01h ; 外部中断0下降沿触发
mov IE, #81h ; 打开外部中断允许位(EX0)及总中断允许位(EA)
ljmp $
end
(4)在“文件”下拉菜单中,执行“新建项目”命令,建立新项目。

在弹出的“加入模块文件”窗口,确定实验程序所在路径,选择“shiyan51”目录中的实验源程序“shiyan51.asm”,并“打开”。

在弹出的“加入包含文件”窗口,选择“取消”。

在弹出的“保存项目”窗口,建立项目文件名shiyan51,选择“保存”到“shiyan51”目录。

(5)执行“编译”命令,对输入的源程序进行编译、连接,如果有错则修改直至没有错误为止。

(6)运行程序,观察程序运行过程。

2、C语言
操作步骤如下:
(1)创建一个项目目录:shiyan52。

(2)如实验一的八.2,修改编译器为C语言编译器。

(3)执行“新建文件”命令,在开发环境程序窗口中按C语言格式输入C语言源程序。

将程序文件名取为shiyan52.c保存到目录“shiyan52”。

#include <reg51.h>
sbit Output = P1^0;
void ExtInt0() interrupt 0
{ static bit OutBuf=1;
OutBuf = !OutBuf;
Output = OutBuf;
}
void main()
{ TCON = 0x01; // 外部中断0下降沿触发
IE = 0x81; // 打开外部中断允许位(EX0)及总中断允许位(EA)
while (1) ;
}
(4)在“文件”下拉菜单中,执行“新建项目”命令,建立新项目。

在弹出的“加入模块文件”窗口,确定实验程序所在路径,选择“shiyan52”目录中的实验源程序“shiyan52.c”,并“打开”。

在弹出的“加入包含文件”窗口,选择“取消”。

在弹出的“保存项目”窗口,建立项目文件名shiyan52,选择“保存”到“shiyan52”目录。

(5)执行“编译”命令,对输入的源程序进行编译、连接,如果有错则修改直至没有错误为止。

(6)运行程序,观察程序运行过程。

相关文档
最新文档