外部中断实验
单片机外部中断实验(附C语言程序)
单片机外部中断实验(附c程序)一、实验目的掌握外部中断的C语言和汇编语言编程方法,会用外部中断解决实际应用问题。
二、实验内容8051C51单片机P2.0接一个发光二极管LED1、P2.1接一个发光二极管LED2,P3.2接一个开关、P3.3接一个开关要求实现以下功能:(1)合上、P3.3断开时LED1闪烁(2)P3.2断开、P3.3合上时LED2闪烁(3)P3.2合上后(不断开)再合上P3.3,LED1闪烁LED2不闪烁(4)P3.3合上后(不断开)再合上P3.2,LED2不闪烁LED1闪烁试编写C语言和汇编语言程序使用自然优先级就可以也可 XO 高级X1低级PX0=1 PX1=0四、实验电路五、参考程序(自己完成)C程序:Include<reg52.h>Sbit P2_0=P2^0;Sbit P2_1=P2^1;Sbit P3_2=P3^2;Sbit P3_3=P3^3;void delay02s(void) //延时0.2秒子程序{unsigned char i,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}Void main{EA=1;EX0=1;EX1=1;ITO=1;IT1=1;PX0=1;PX1=0;While(1);}Void int0(void) interrupt 0 { if(!P3_2){While(1){P2_0=1;delay02s();P2_0=0;delay02s();}}}Void int1(void) interrupt 2 { if(!P3_3){While(1){P2_1=1;delay02s();P2_1=0;delay02s();}}}。
单片机原理外部中断实验
单片机原理实验报告实验题目外部中断实验一、实验目的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六、实验分析与总结。
外部中断实验_4
实验四外部中断实验——可控霓虹灯控制一、实验目的1.了解单片机中断系统的结构;2.掌握单片机中断有关的寄存器、中断的开放与禁止以及中断程序的编写。
3.掌握定时器和中断系统的综合应用。
二、实验设备(仪器)PC机、PCB版、ISP下载线和USB线。
三、实验内容(一)开发板实验根据图1原理图,实现以下要求的霓虹灯控制。
(1)正常情况8个灯正向依次点亮,反向两两点亮,时间间隔都为0.5s;(2)按键按下后8个灯同时亮灭一次,时间间隔为1s。
用定时器T0,工作方式1编制延时程序,按键动作采用外部中断INT1实现。
图1 硬件原理图(二)ISIS仿真实验仿真电路如图2所示,实现以下要求的霓虹灯控制。
主函数执行流水灯,时间间隔200ms,无限循环。
(1)按键key0按下后8个灯同时亮灭一次,时间间隔为200ms。
(2)按键key1按下后8个灯从中间向两边依次点亮,时间间隔为500ms,然后再从两边向中间依次点亮。
延时为500ms,再让8个灯同时点亮,延时500ms。
(3)当同时按下key0和key1键时,程序执行(2)步骤。
要求:Key0按键动作采用外部中断INT0实现;Key1按键动作采用外部中断INT1实现。
图2 硬件原理图四、实验步骤(一)开发板实验1.准备焊接好的PCB版,其电路参见图1;2.打开计算机,运行Keil uVision2软件,新建工程项目,编写控制流水灯源程序;3.对源程序调试,连接,生成可执行文件;4.连接ISP下载线;5.运行“progisp1.67”文件夹内的“progisp.exe”,将程序下载到单片机中;6.单片机是否正常运行。
(二)ISIS仿真实验1.运行Proteus ISIS 硬件电路仿真软件,按照实验内容(二)中仿真电路图2画图;2.运行Keil uVision2软件,新建工程项目,编写实验内容(二)要求功能程序;3.对源程序调试,连接,生成可执行文件;4.将可执行文件下载到ISIS仿真电路中的单片机中;5.观察仿真电路是否正常运行。
单片机外部中断实验报告
单片机外部中断实验报告实验三外部中断实验报告班级:学号:姓名:教师:一、实验LI的1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管DPD8O每当发生外部中断时,发光二极管以向下流水灯的方式点亮。
分别选择边沿触发外部中断放是和电平触发外部中断方式两种。
三、编程提示1、P3 口是8位准双向口,具有双重功能:第一功能和P1 口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3. 0RXD串行输入口P3. 1TXD串行输出口P3. 2INTO外部中断0请求输入线P3. 3INT1外部中断1请求输入线P3.4TO定时器/计数器TO外部计数器脉冲输入线P3. 5T1定时器/计数器T1外部计数器脉冲输入线P3. 6WR外部数据存贮器写脉冲输出线P3. 7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断OBH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EAESET1EX1ET0EX0(1)外部中断源允许中断(中断0: EX0=l;中断1: EXl=l)o(2)CPU 开中断(EA二1)。
(3)外部中断方式CPU发出中断申请。
4、外部中断方式的选择控制TCOX:TF1TR1TF0TR0IE1IT1IE0IT0IT0是选择文字则外部中断0请求(INTO)边沿触发方式或电平触发方式的控制位。
前一方式IT0二1,后一方式IT0二0。
IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。
前一方式IT1=1,后一方式ITl=0o当8031复位后,TCON被清0。
5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。
MCS-51单片机实验5-1外部中断实验1
【实验流程图】
主程序
外部中断0初 始化
点亮P1.0口 LED灯
等待中断
主程序结束
中断程序
P1.0取反
中断程序返 回
【实验O程RG序代码】
0LJ0M00PH M ORAGIN 0003H
INTER0:CPL P1.7
RETI MAIN:SETB EA
SETB EX0
SETB IT0 CLR P1.7 SJMP $
END
实验一、外部中断实验1
【实验步骤】
将程序补充完整,并添加注释 运行程序观察实验现象。
ORG
0LJ0M00PH
;主程序入口
;转置主程序
330
M ORAGIN 0003H;外中0断入口
INTER0:CPL P1.7 ;;LLDDEE灯灯灭亮
74ls0
RETI
为避免占;用返其回他等中断待的入
实验一、外部中断实验1
【实验目的】
掌握外部中断的初始化方法 熟悉中断的触发过程
【接线方式】
P1.0接1个LED灯 P3.2接一个单脉冲发生器。
实验一、外部中断实验1
【实验内容及要求】
编写程序,实现以下功能 上电LED灯亮,中断一次,小灯变灭,再次中断, 小灯再次点亮,如此反复,即每发生一次中断, 灯的亮灭状态改变一次。
ORG 0013H入口地址初始化
SETB EA SETB EX1 SETB IT1
允许总中断
允许外部中断0 设置外部中断1的触发方式 为边沿触发方式
口地址,我们通常将中断
7 P1.7
MAIN:SETB入E口A处;放允一许条总跳中转断指令,单脉
SETB
可EX以0把;程允序许修外改中如断下。0
stm32外部中断实验报告-STM32实例外部中断实验
stm32外部中断实验报告_STM32实例外部中断实验上⼀篇⽂章我们介绍了 STM32F10x 的中断,这次我们就来学习下外部中断。
本⽂中要实现的功能与按键实验⼀样,即通过按键控制LED,只不过这⾥采⽤外部中断⽅式进⾏控制。
学习时可以参考《STM32F10x 中⽂参考⼿册》-9 中断和事件章节。
外部中断介绍EXTI 简介STM32F10x 外部中断/事件控制器(EXTI)包含多达 20 个⽤于产⽣事件/中断请求的边沿检测器。
EXTI 的每根输⼊线都可单独进⾏配置,以选择类型(中断或事件)和相应的触发事件(上升沿触发、下降沿触发或边沿触发),还可独⽴地被屏蔽。
EXTI 结构框图EXTI 框图包含了 EXTI 最核⼼内容,掌握了此框图,对 EXTI 就有⼀个全局的把握,在编程的时候思路就⾮常清晰。
从图中可以看到,有很多信号线上都有标号 9 样的“20”字样,这个表⽰在控制器内部类似的信号线路有 20 个,这与 STM32F10x 的 EXTI 总共有20 个中断/事件线是吻合的。
因此我们只需要理解其中⼀个的原理,其他的 19个线路原理都是⼀样的。
EXTI 分为两⼤部分功能,⼀个产⽣中断,另⼀个产⽣事件,这两个功能从硬件上就有所差别,这个在框图中也有体现。
从图中标号 3 的位置处就分出了两条线路,⼀条是 3-4-5 ⽤于产⽣中断,另⼀条是 3-6-7-8⽤于产⽣事件。
下⾯我们就来介绍下这两条线路:(1)⾸先看下产⽣中断的这条线路(1-2-3-4-5)1.标号 1 为输⼊线,EXTI 控制器有 20 个中断/事件输⼊线,这些输⼊线可以通过寄存器设置为任意⼀个 GPIO,也可以是⼀些外设的事件,这部分内容我们会在后⾯专门讲解。
输⼊线⼀般是存在电平变化的信号。
2.边沿检测电路,EXTI 可以对触发⽅式进⾏选择,通过上升沿触发选择寄存器和下降沿触发选择寄存器对应位的设置来控制信号触发。
边沿检测电路以输⼊线作为信号输⼊端,如果检测到有边沿跳变就输出有效信号 1 给红⾊框 3 电路,否则输出⽆效信号 0。
微机原理实验-外部中断实验
下面是赠送的几篇网络励志文章需要的便宜可以好好阅读下,不需要的朋友可以下载后编辑删除!!谢谢!!出路出路,走出去才有路“出路出路,走出去才有路。
”这是我妈常说的一句话,每当我面临困难及有畏难情绪的时候,我妈就用这句话来鼓励我。
一定有很多人想说:“这还在北京混个什么劲儿啊!”但他每天都乐呵呵的,就算把快递送错了也乐呵呵的。
某天,他突然递给我一堆其他公司的快递单跟我说:“我开了家快递公司,你看得上我就用我家的吧。
”我有点惊愕,有一种“哎呦喂,张老板好,今天还能三蹦子顺我吗”的感慨。
之后我却很少见他来,我以为是他孩子出生了休假去了。
再然后,我就只能见到单子见不到他了。
某天,我问起他们公司的快递员,小伙子说老板去上海了,在上海开了家新公司。
我很杞人忧天地问他:“那上海的市场不激烈吗?新快递怎么驻足啊!”小伙子嘿嘿一笑说:“我们老板肯定有办法呗!他都过去好几个月了,据说干得很不错呢!”“那老婆孩子呢?孩子不是刚生还很小吗?”“过去了,一起去上海了!”那个瞬间,我回头看了一眼办公室里坐着的各种愁眉苦脸的同事,并且举起手机黑屏幕照了一下我自己的脸,一股“人生已经如此的艰难,有些事情就不要拆穿”的气息冉冉升起。
并不是说都跳槽出去开公司才厉害,在公司瞪着眼睛看屏幕就是没发展,我是想说,只有勇气才能让自己作出改变。
《拒绝平庸》里有一句话:很多时候我们为什么嫉妒别人的成功?正是因为知道做成一件事不容易又不愿意去做,然后又对自己的懒惰和无能产生愤怒,只能靠嫉妒和诋毁来平衡。
其实走出去不一定非要走到什么地方去,而是更强调改变自己不满意的现状。
有人问我那你常说要坚持,天天跑出去怎么坚持?其实要坚持的是一种信仰,而不是一个地方,如果你觉得一个地方让你活得特别难受,工作得特别憋屈,除了吐槽和压抑没别的想法,那就要考虑走出去。
就像歌词里说的:“梦想失败了,那就换一个梦想。
”不能说外面都是大好前程,但肯定你会认识新的人,有新的机会,甚至改头换面重新做人。
单片机实验报告四 外部中断实验
南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期: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 端口控制。
实验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. 通过实验验证多级外部中断的响应和处理过程。
4. 提高对中断系统在实际应用中的理解和应用能力。
二、实验原理多级外部中断是指在一个系统中,根据中断的优先级,将多个外部中断源分配到不同的优先级级别,并按照优先级顺序进行响应和处理。
在多级外部中断系统中,当多个中断源同时产生中断请求时,系统会根据优先级顺序依次响应,优先处理优先级较高的中断。
三、实验环境1. 单片机开发板:选用STM32F103系列单片机开发板。
2. 软件工具:Keil uVision5、STM32CubeIDE。
3. 实验器材:按键、LED灯、连接线等。
四、实验步骤1. 搭建实验电路按照实验要求,连接按键和LED灯到单片机的相应引脚。
具体连接方式如下:- 按键1连接到单片机的外部中断0(EXTI0)引脚。
- 按键2连接到单片机的外部中断1(EXTI1)引脚。
- LED灯连接到单片机的GPIO引脚。
2. 编写程序使用Keil uVision5或STM32CubeIDE编写程序,实现以下功能:- 配置外部中断0和外部中断1的优先级。
- 编写中断服务程序,分别处理外部中断0和外部中断1。
- 在中断服务程序中,根据优先级顺序控制LED灯的亮灭。
3. 编译和下载程序使用Keil uVision5或STM32CubeIDE编译程序,将生成的hex文件下载到单片机中。
4. 实验验证- 触发按键1,观察LED灯1的状态变化。
- 触发按键2,观察LED灯2的状态变化。
- 同时触发按键1和按键2,观察LED灯的状态变化,验证优先级顺序。
五、实验结果与分析1. 当仅触发按键1时,LED灯1亮起,LED灯2熄灭,验证外部中断0正常工作。
2. 当仅触发按键2时,LED灯2亮起,LED灯1熄灭,验证外部中断1正常工作。
3. 当同时触发按键1和按键2时,LED灯1亮起,LED灯2熄灭,验证多级外部中断的优先级顺序。
实验二、外部中断
实验二外部中断实验一、实验目的1.掌握外部中断技术的基本使用方法2.掌握中断处理程序的编写方法二、实验原理1.外部中断的初始化设置的三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。
中断方式设置一般有两种方式:电平方式和脉冲方式.2.中断服务的关键:(1)保护进入中断时的状态。
堆栈有保护断点和保护现场的功能使用PUSH,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。
注:中断程序自动保护PC,对其做入栈操作(2)用POP指令恢复中断时的现场。
(先进后出)3.中断控制原理:中断控制是提供给用户使用的中断控制手段。
实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。
TCON格式SCON格式三、实验内容参考实验程序(主程序为P1口输出跑马灯程序),编写中断子程序使得发生外部中断0,且为下降沿触发时,LED灯全亮。
中断结束后LED继续接上次状态进行跑马灯闪烁。
注:注意保护现场。
且编译器不支持工作组寄存器名(R0-R7)入栈,需要对栈地址操作。
例:PUSH 06H ;把R6入栈等同 PHSHU R6四、实验步骤1.使用单片机最小应用系统1模块,P1接发光二极管,INTO接单次脉冲输出端。
2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加**.ASM源程序,进行编译,直到编译无误。
4.打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。
五、参考程序ORG 0000HLJMP STARTORG 0030HSTART: MOV A, #0FEHOUTPUT: MOV P1,ARL AACALL DELAYLJMP OUTPUTDELAY: MOV R6,#0MOV R7,#0MOV R5#5DELAYLOOP: ;延时程序DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPDJNZ R5,DELAYLOOP RETEND。
计算机原理实验-外部中断实验
计算机原理与应用实验实验名称:外部中断实验学院:信息与通信工程学院班级:2017211113姓名:***学号:**********同组成员姓名:李凝同组成员学号:**********一、实验目的1. 掌握NVIC 中断优先级配置。
2. 学会外部中断配置。
二、实验原理及内容(一)实验原理电路结构如图3.1 所示1. NVIC 中断优先级NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。
但是各个芯片厂商在设计芯片的时候会对Cortex-M4 内核里面的NVIC 进行裁剪,把不需要的部分去掉,所以说STM32 的NVIC 是Cortex-M4 的NVIC 的一个子集。
CM4 内核可以支持256个中断,包括16个内核中断和240个外部中断,256 级的可编程中断设置。
对于STM32F4 没有用到CM4 内核的所有东西,只是用到了一部分,对于STM32F40 和41 系列共有92个中断,其中有10个内核中断和82个可屏蔽中断,常用的为82个可屏蔽中断。
ISER[8]—中断使能寄存器组,用来使能中断,每一位控制一个中断,由于上面已经说明了控制82 个可屏蔽的中断,因此利用ISER[0~2]这三个32 位寄存器就够了。
一下的几个寄存器同理。
ICER[8]—中断除能寄存器组,用来消除中断。
ISPR[8]—中断挂起控制寄存器组,用来挂起中断。
ICPR[8]—中断解挂控制寄存器组,用来解除挂起。
IABR[8]—中断激活标志寄存器组,对应位如果为1 则表示中断正在被执行。
IP[240]—中断优先级控制寄存器组,它是用来设置中断优先级的。
我们只用到了IP[0]~IP[81],每个寄存器只用到了高4 位,这4 位又用来设置抢占优先级和响应优先级(有关抢占优先级和响应优先级后面会介绍到),而对于抢占优先级和响应优先级各占多少位则由AIRCR 寄存器控制,相关设置如表 3.1 所示。
外部中断实验
外部中断实验
外部中断实验通常是指在控制系统中测试外部事件对系统的影响。
外部中断可以是由输入设备、定时器、计数器、ADC等外部事件所触发的中断信号,当系统接收到外部中断信号时,会立刻停止当前运行的任务,执行中断服务程序,完成相应的处理后再返回原任务。
一个简单的外部中断实验可以是设计一个有按键操作的控制系统。
可以使用单片机或其他控制器,将按键连接到单片机的外部中断输入引脚,当按键被按下时,会产生外部中断信号,中断服务程序可以完成按键检测、处理等操作。
另外,也可以通过连接定时器或计数器来测试外部中断功能。
当定时器或计数器达到预设的计数值时,会产生中断信号,中断服务程序可以完成相应的处理。
在实际应用中,外部中断还可以用于实现多任务系统、数据采集、数据传输等应用。
外部中断实验的实验原理
外部中断实验的实验原理小伙伴们!今天咱们来唠唠外部中断实验的原理,这可超级有趣呢!咱先得知道啥是中断。
你可以把中断想象成一个突然插队的家伙。
就好比你正在好好地排队买冰淇淋呢,突然有个小朋友急急忙忙地跑过来,说他有特别紧急的事情,要先买。
这在计算机的世界里,就是中断啦。
外部中断呢,就是这个插队的信号是从计算机外面来的。
比如说,你按下了一个按键,这个按键就像那个着急的小朋友,它给计算机发送了一个信号,说“我这儿有事儿,你先停下手里正在做的事儿,来处理我这个事儿”。
那这个外部中断是怎么被计算机知道的呢?这里就涉及到硬件电路啦。
计算机有专门的引脚来接收这些外部的中断信号。
这些引脚就像一个个小耳朵,在那等着外面的信号传来。
当你按下按键或者外部有其他能产生中断的事件发生的时候,就会有一个电信号的变化。
比如说,从高电平变成低电平,或者反过来。
这个电信号的变化就像一阵小风吹进了计算机的小耳朵里,告诉它有情况啦。
计算机收到这个中断信号之后呢,它可不能就这么手忙脚乱地开始处理呀。
它得有一套规矩。
就像在商店里,虽然小朋友可以插队,但是也得按照一定的流程来。
计算机内部有一个中断向量表,这个表就像是一个超级指南。
它告诉计算机,这个中断来了,你应该去哪个地方找处理这个中断的程序呢。
比如说,你按了某个特定的按键产生的中断,那计算机就会根据这个中断向量表的指示,找到对应的处理程序。
这个处理程序可就像是专门为这个插队的事情准备的解决方案。
比如说这个按键是控制一个小灯的开关的。
那这个处理程序可能就是改变小灯的状态,原来是亮的就把它弄灭,原来是灭的就把它点亮。
这个处理程序执行完了之后呢,计算机就又可以回到它之前正在做的事情啦,就好像小朋友买完冰淇淋走了,大家又继续好好排队买自己的东西一样。
而且呀,外部中断还有不同的优先级呢。
这就像插队也分紧急程度一样。
有些外部中断可能特别重要,比如说火灾报警器传来的信号,那这个就得优先处理,计算机就得先放下其他所有的事情去处理这个紧急的中断。
实验二 外部中断实验
实验二外部中断实验一、实验目的1.学会使用Keil μVision3和Proteus软件进行单片机汇编语言和C语言程序设计与开发。
了解和掌握MCS-51单片机的中断组成、中断控制工作原理、中断处理过程、外部中断的中断触发方式, 掌握中断功能的编程方法。
二、实验内容1.单片机的P1.0引脚连接LED指示灯D0。
单片机的P3.2引脚(INT0)连接按键开关K, 作为中断源, 每次按键都会触发INT0中断。
在INT0中断服务程序中将P1.0端口的信号取反, 使LED指示灯D0在点亮和熄灭两种状态间切换, 产生LED指示灯由按键开关K控制的效果。
三、实验程序ORG 0000H ;MCS-51复位入口AJMP MAIN ;转入主程序ORG 0003H ;INTO中断入口AJMP EX_INTO ;转入中断服务程序ORG 0100H ;主程序入口MAIN: MOV SP,#40H ;中断初始化设置堆栈SETB IT0 ;中断请求信号设置为边沿触发方式 SETB EA ;开放总中断SETB EX0 ;允许INTO中断HERE: SJMP HERE ;原地踏步(处理其他事务)等待中断到来ORG 0200H ;中断服务程序EX_INTO:CPL P1.0 ;改变指示灯状态RETI ;中断返回END四、实验原理图五、实验仿真及结果当开关断开时,LED指示灯D1熄灭,如图1所示:图1当按键开关接通时, LED指示灯D1点亮, 如图2所示:图2六、实验总结通过本次实验, 进一步熟悉了对Keil μVision3软件的操作, 另外还接触到了Proteus软件。
掌握了中断功能的编程方法, 加上两个上述软件, 使得单片机汇编语言得以仿真。
进一步深化了解和掌握MCS-51单片机的中断的相关知识, 包括中断的组成、工作原理、处理过程以及外部中断的中断触发方式。
【大学】单片机实验-单个外部中断实验(WORD档)
实验三——单个外部中断实验一、实验要求在单片机的外部中断引脚INT0接一个按键开关来产生外部中断请求,通过P1口连接的8个LED发光二极管的状态,来反映中断程序的作用。
中断未发生时,P1口连接的8个LED为闪烁状态,当按键开关按下,即外中断请求产生时,8个LED呈现流水灯操作。
按键开关松开,8个LED则为闪烁状态。
二、实验目的1.理解掌握外部中断源、中断请求、中断标志、中断入口等的概念。
2.掌握中断程序的设计办法。
三、实验内容1.选择实验所需元器件,按实验图连接电路。
2.用计算机编写代码,并汇编、调试。
4.将程序下载到单片机中,观察现象。
5.如果不符合预期要求则修改程序重新调试。
源代码ORG 0000hAJMP STAR1ORG 0003hAJMP INRT0ORG 000Fh STAR1 :MOV P1,#00HMOV R3,#200X4 :DJNZ R3,X4MOV p1,#0FFHMOV R3,#200X5 :DJNZ R3,X5JB P3.2,STAR1SETB EASETB EX0CLR IT0X6 :AJMP X6ORG 0100H INRT0 :MOV P1,#0FEHMOV A,P1 LOOP:Rl AMOV p1,AX1 :MOV R1,#255X2 :MOV R2,#255X3 :DJNZ R2,X3DJNZ R1,X2JNB P3.2,LOOPLJMP X7RETIX7 :MOV P1,#00HMOV R3,#200X8 :DJNZ R3,X8MOV p1,#0FFHMOV R3,#200X9 :DJNZ R3,X9JB P3.2,X7RETIEND通过本次实验基本了解了外部中断的工作原理,通过编写汇编程序实现了单个外部中断的功能,复习并更加掌握汇编语言,尤其是汇编语言中外部中断的编程。
第一次调试时,不按开关灯闪烁,按下开关呈流水灯,当再次按下开关灯灭。
检查了几遍虽感觉不对,但不知道到程序那错了,又把课本中有关中断的内容看了一遍,才发现自己编的程序第二次循环时成了死循环。
外部中断实验遇到的问题和解决方法
外部中断实验遇到的问题和解决方法一、实验背景外部中断是指由外部设备或者其他引起的中断请求,例如按键、传感器等。
在单片机开发中,外部中断是非常重要的一种中断方式,它可以使单片机在执行某些任务时可以及时响应外界的事件。
二、实验目的本实验旨在通过使用STM32F103C8T6开发板和Keil uVision 5软件,学习如何配置和使用STM32F103C8T6外部中断,并解决在实验过程中可能遇到的问题。
三、实验步骤1. 硬件连接将STM32F103C8T6开发板上的PB0引脚连接到按键上,并将按键另一端连接到GND引脚上。
2. 配置GPIO口初始化首先需要配置PB0引脚为输入模式,并且使能其时钟。
具体代码如下:```RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOB口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // PB0引脚GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 输入模式,带上拉GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始化PB0口```3. 配置NVIC初始化需要配置NVIC(Nested Vector Interrupt Controller)初始化,使能外部中断并设置优先级。
具体代码如下:```NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; // 外部中断0对应的中断通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //抢占优先级为1NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; // 子优先级为1NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // 使能中断通道NVIC_Init(&NVIC_InitStructure); // 初始化NVIC```4. 配置外部中断初始化需要配置外部中断初始化,设置外部中断触发方式。
实验外部中断实验报告
实验三定时中断实验一、实验目得1、掌握51单片机外部中断得应用。
2、掌握中断函数得写法。
3、掌握定时器得定时方法。
4、掌握LED数码管得显示。
二、实验内容1、用外部中断0测量负跳变信号得累计数,同时在LED数码管上显示出来。
2、用外部中断改变流水灯得方式。
3、用定时器T1得方式2控制两个LED以不同周期闪烁。
使用定时器T1得方式2来控制P0、0、P0、1引脚得两个LED分别以1s与2s得周期闪烁。
三、实验仿真硬件图在Proteus软件中建立如下图所示仿真模型并保存。
}同级自然优先级:外部中断0→定时器T0中断→外部中断1→定时器T1中断→串行口中断。
中断优先级别得设定:实验二要求:初始状态为P0、0~P0、7得8个LED显示灯依次循环点亮;外部中断0服务程序为8个LED灯,左4个,右4个闪烁8次,外部中断1服务程序8个LED灯,间隔闪烁8次。
⑴设定外部中断0为高优先级,先执行外部1中断,过程中用外部0中断来将其中断,反之不行。
注意保护现场。
⑵设定外部中断1为高优先级,先执行外部0中断,过程中用外部1中断来将其中断,反之不行。
注意保护现场。
实验三(调试下列程序,在错误行后面注明错误及改正方法):#include <reg51、h>#define ucharunsigned char;sbit D0=P1^0;sbitD1=P1^1;uchar a,b;void main(){EA=1;ET1=1;TMOD=0x20;ﻩTL1=6;ﻩTR0=1;a=0;ﻩb=0;ﻩwhile(1);}void t1()interrupt 1{ﻩa++;ﻩb++;if(a=1000){D0=~D0ﻩa=0;}if(b=4000)ﻩ{ﻩD1=~D1;ﻩﻩb=0;}写出源程序,并注释实验报告格式实验三定时中断实验学院: 专业:年级: 实验时间: 姓名: 学号: 指导教师:一、实验目得1、掌握51单片机外部中断得应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二外部中断实验
一.实验目的
1.学习外部中断技术的基本使用方法;
2.学习中断处理程序的编程方法。
二.实验设备及器材配置
1.单片机仿真实验系统。
2.计算机。
3.导线。
三.实验内容
在以下实验题目中任选一个或由老师指定。
1.P1口做输出口,接八只发光二极管,编写程序,使其循环点亮。
以单脉冲输出端做为中断申请,当第一次产生外部中断时,使发光二极管全亮,延时1秒后返回中断之前的状态;当第二次产生外部中断时,使发光二极管全灭,延时1秒后返回中断之前的状态;以后如上述一直循环下去。
2.以单脉冲输出端做为中断申请,自行设计连线,用实验箱上的红、绿、黄发光二极管模拟交通灯控制。
当有急救车通过时,两交通灯信号为全红,以便让急救车通过,延时10秒后交通灯恢复中断前状态。
四.实验原理说明
本实验中中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能返回中断前P1口及发光二极管的状态。
除了保护累加器A、程序状态字PSW外、P1口的状态外,还要注意主程序中的延时程序和中断程序的延时程序不能混用,本实验中,主程序延时程序用的寄存器和中断延时用的寄存器也不能混用。
五.连线方法及实验电路
8031的P1.0—P1.7分别接发光二极管L0—L7,P3.2接单脉冲输出端“ ”
外部中断实验电路如图1-3所示。
图1-3 外部中断实验电路
六.思考题及实验报告要求
1.思考题
(1).试说明51系列单片机外部中断如何使用。
(2).修改程序,外部中断产生时,使发光二极管闪亮移位方向改变。
2.实验报告要求
(1).给出自行设计的程序清单、程序流程图。
(2). 总结实验过程中调试所遇到的问题和解决方法,写出编程调试的经验和体会。
VW集成调试软件使用
1.自建以字母开头的文件夹,推荐在F盘。
2.双击桌面V/W快捷方式
3.左击【文件】-新建文件-保存文件(存于自建文件夹下,以字母开头,后缀为.ASM或.C)
4.左击【文件】-新建项目-(以字母开头,存于自建文件夹下,加入自存的汇编或C源程序)
5.编写程序
6. 左击【项目】-编译,根据提示将提示的错误位置修改,编译,直至程序无错。
7.实验箱断电、连线完毕后,打开实验箱电源开关。
左击【仿真器】,在出现的窗口中选择LAB8000\MCS51\8031AH或A T89C51,晶体频率:6000000Hz。
8. 左击【执行】-全速运行,在实验箱上观察运行结果。