实验三 单片机外部中断实验

合集下载

外部中断计数实验报告

外部中断计数实验报告

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

实验三:外部中断实验

实验三:外部中断实验
主要函数功能如下:
;
()
{
;
;
;
( ) {
;*清除中断标志*
}
;*通知中断处理结束*
}
()
{
设定相应的引脚,为输出;设置为功能
;
;
;
设置外部中断触发方式
;初始化为下降沿中断
;
0F;清除所有外部中断标志
设置,将外部中断分配到向量
;将所有的中断源都分配给
( );
( );使能给外部中断
<<外部中断的通道号是
实验三:外部中断实验
【实验目的】
掌握系列处理器的中断处理工作原理
掌握外部中断的寄存器设置
掌握中断服务程序的在下的编程方法
【实验内容】
借助于外部中断,将按键动作进行累加计数,用个指示当前按键的次数。
【实验原理】
系列可以管理最多个外部中断,并将这些中断源最终通过或者提交给核进行处理。外部中断也在管理之中,通过设置相应的外部中断寄存器,可以对外部按键的输入进行中断处理。
.若要使用向量来完成此功能,如何修改代码?
.若要在设置中,将的是能寄存器中的使能位(即:的位)清,此中断服务程序还会执行吗?怎么样才会执行?写出让出现上述程序相同的现象的程序。
的中断处理通道和相应的寄存器管理如下图
具体的寄存器功能请参照教材,一章节。
外部中断寄存器见下图
根据需要可以设置外部中断的方式和极性,寄存器中断实验的电路。按键要接到的任一引脚上。下图以为例:
用建立一个工程,命名为,并添加一个文件到项目中。具体步骤参照实验一和实验二。
();让程序停在这里,等待中断
;
}
仔细分析上述代码,用编译后在中运行,记录运行结果。

单片机IO及外部中断实验

单片机IO及外部中断实验

单片机I/O及外部中断实验一、实验目的1.学习P1、P3口作为基本I/O口的使用方法,掌握对发光二极管和继电器的程序控制方法;2.学习在单片机系统中扩展简单I/O接口的方法,学习模拟交通灯控制的方法;3.掌握外部中断技术的基本使用方法和中断处理程序的编程方法。

二.实验仪器:1.仿真教学实验机(5196ET)一台2.直流稳压电源(DF 1731 SB 3A)一台3.PC机一台三、实验内容1、P1口做输出口实验(1)实验要求:P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

(2)电路及连线如下:(3)实验说明1.延时子程序的延时计算问题对于程序DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS(4)实验框图(见TP1A.ASM主程序框图):(5)P1.0~P1.7接DL1.~DL8,运行程序TP1A,观察现象。

TP1A程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV A,#01HROTATE: MOV P1,A ;点亮一个LEDRL A ;循环右移LCALL DELAY ;延时NOPSJMP ROTATEDELAY: ;延时子程序(1秒)MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RETEND(6)修改程序TP1A,使指示灯左循环。

* (7)修改程序TP1A,使指示灯两两右循环。

* (8)修改程序TP1A,使指示灯从两边向中间循环。

外部中断实验

外部中断实验

外部中断实验一、实验目的1. 掌握51单片机外部中断的应用。

2. 掌握中断函数的写法。

3. 掌握XL400实验板的使用。

二、实验内容1. 用外部中断改变流水灯的方式。

2. 用外部中断0测量负跳变信号的累计数,同时在八位LED数码管上显示出来。

三、实验步骤说明参考实验指导书第一部分实验工具简介中,XL400实验板的使用。

着重掌握外部中断0和外部中断1,本此实验使用外部中断0。

外部中断0请求,由P3.2管脚输入,通过IT0位来决定是低电平有效还是下降沿有效。

一旦输入信号有效,即向CPU申请中断,并建立IE0中断标志。

以外部中断0为例,开放中断源采用以下语句:EA=1; //开放中断总允许位EX0=1; //开放外部中断0允许位IT0=1; //置外部中断为边沿(下边沿)触发方式中断函数结构如下:void int_0() interrupt 0 // interrupt 0表示该函数为中断类型号0的中断函数{}1. 用外部中断改变流水灯的方式。

中断前:实验板上P20~P27的8个显示灯全亮。

外部中断0:实验板上P20~P27的左右4个显示灯闪烁循环8次。

外部中断1:实验板上P20~P27的8个显示灯依次循环点亮。

中断的方式:用导线或者金属触碰AT89S52芯片P3.2管脚。

改变中断优先级和保护现场,观察运行结果2. 用外部中断0测量负跳变信号的累计数,同时在八位LED数码管上显示出来。

跳变信号由P3.0给出(提示:P3_0=1;延时;P3_0=0),跳变信号加之管脚P3.2。

实验时,可用导线或者导电金属将AT89S52芯片P3.0和P3.2管脚相连即可。

实验板XL400的8位数码管:0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff为0,1,2,3,4,5,6,7,8,9,关显示,数码管码表。

0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe 为8位数码管位选码。

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

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

一、实验目的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来控制其开启和关闭。

单片机实验三_中断与定时器实验

单片机实验三_中断与定时器实验

a b c d e f g 实验三 中断、定时器实验信息学院 10通信A 柳东旭 1015231030一、实验目的1. 学习外部中断和定时器的工作原理及使用方法。

2. 学习外部中断和定时器的初始化程序、应用程序的编写和调试。

二、实验仪器和设备PC 机、W A VE 软件、仿真器+仿真头、实验板、电源等。

三、实验说明本实验1通过开关向单片机提出中断请求,单片机响应中断进行计数,并通过LED 数码管指示出计数值,从而观察中断的请求、响应的过程。

实验2通过单片机的定时器产生延时,模拟交通灯控制的方法。

通过本实验学生可以掌握单片机中断和定时器的工作原理及使用方法以及中断和定时器的初始化程序、应用程序的编写和调试。

四、实验内容1、开关S0—S1连接P3口做输入,P0输出接LED 数码管,通过S2产生外部中断请求(/INT0)信号,在中断服务程序中完成十进制递增计数,并将计数值显示在LED 数码管上,要求分别采用电平触发和边沿触发。

按上述要求完成S3产生外部中断请求。

编写初始化程序和中断服务程序。

(注意开关抖动处理)2、P1.0--P1.7作输入口接拨动开关S0--S7;P0.0--P0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,要求发光二极管(LED )按亮0.5秒、暗0.5秒闪烁,LED 亮的同时,从P2.0送出1kHz 的音频信号到音频驱动电路发声(持续0.5秒),将开关编号(0—7)显示在LED 数码管上。

要求延时采用内部定时器T0,音频的产生采用内部定时器T1。

编写初始化程序和中断服务程序。

五、实验电路连线P0.0 ---- LED0P3.2(/INT0)----- S2 P0.1 ---- LED1P3.3(/INT1)----- S3 P0.2 ---- LED2P0.3 ---- LED3P0.4 ---- LED4P0.5 ---- LED5P0.6 ---- LED6P0.7 ---- LED7LED 连接 外部中断请求输入a b c d e f g h(dp)P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7LED数码管各段与I/O的连接六、程序框图1、中断实验中断实验程序ORG 0000H;SJMP START;ORG 0003H; //外部中断0程序入口地址SJMP IN0;START : SETB EA ; //开总中断SETB EX0; //外部中断0允许SETB IT0; //下降沿触发MOV IP,#01H; //最高优先MOV DPTR,#TABLE; //表格地址MOV P2,#0FFH; //清零LL1 : MOV A,#00H;MOVC A,@A+DPTR; //输入表格第一个数CJNE A,#1BH,LL2; //是否结束字符,不是则到LL2MOV DPTR,#TABLE; //是,则重新输入LJMP LL1; //跳转到LL1LL2 : MOV P2,A; //输出数据LJMP LL1;IN0 : CLR EX0; //关中断LCALL DELAY; //延时MOV A,P3;CJNE A,#0FBH,LL3; //对比是否低电平.真的有中断PUSH PSW; //入栈PUSH ACC;INC DPTR; //表格地址加一POP ACC;POP PSW; // 出栈SETB EX0; //开中断RETI; //返回LL3 :SETB EX0;RETI;DELAY : MOV R7,#01H; //延时程序DE1 : MOV R6,#50;DE2 : MOV R5,#123;DJNZ R5,$;DJNZ R6,DE2;DJNZ R7,DE1;RETTABLE : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 1BHEND2、定时器实验框图定时器实验程序ORG 0000H;AJMP START;ORG 000BH; //定时器0入口AJMP ITT0;ORG 001BH; //定时器1入口LJMP ITT1;START : SETB EA; //开总中断MOV IP,#08H; //设置优先级MOV TMOD,#11H; //设置方式1MOV TH0,#3CH; //置定时器0初值MOV TL0,#0B0H;SETB ET0; //允许T0中断MOV TH1,#0FEH; //定时器1初值MOV TL1,#0CH;SETB ET1; //开启定时器1SETB TR1;BEEP BIT P3.7; //蜂鸣器设置SETB BEEP;MOV R0,#00H; //初始化MOV R1,#00H;MOV P2,#0FFH;MOV P0,#0FFH;MOV P1,#0FFH; //p1口初始化给ffh值L2 : MOV DPTR,#TABLE; //表地址存入DPTRMOV 50H,#0FEH; //比较初值载入地址50hL0 : MOV A,P1; //按键消抖CJNE A,#0FFH,L1;AJMP L0;L1 : LCALL DELAY ; //延时再判断MOV A,P1;CJNE A,#0FFH,LL1;AJMP L0;LL1 : CJNE A,50H,LL2; //是否与地址50h中数据相等MOV R0,A; //按键值载入R0,R3MOV R3,A;SETB TR0; //开定时器0MOV A,#00H;MOVC A,@A+DPTR;MOV P2,A; //输出表格数据到数码管LJMP L2; //返回程序开头LL2 : XCH A,50H; //交换数据RL A; //左移XCH A,50H; //再次交换,此时地址50h中数据左移一位INC DPTR; //表格数据地址加一LJMP LL1; //返回继续比较ITT0 : MOV TH0,#3CH; //定时器0中断程序重装计数值MOV TL0,#0B0H;CLR TR0; //关中断INC R1; //加一CJNE R1,#0AH,LL3; //是否为10,即中断了500ms 不是跳转到LL3MOV R1,#00H; //是,清零计数值MOV A,R0;MOV P0,A; //输出led控制值XRL A,R3; //异或求反让灯下次输出相反CPL A;MOV R0,A;LL3 : SETB TR0; //开定时中段0RETI; //返回ITT1 : CLR TR1; //定时中断1程序关中断MOV TH1,#0FEH;MOV TL1,#0CH;CJNE R0,#0FFH,LL4; //判断R0是否为0ffh 即灯是否为灭是则转移到LL4 :CPL BEEP; //蜂鸣器求反响LL4 : SETB TR1; //开定时器中断1RETI; //放回DELAY : MOV R7,#01; //延时程序DE1 : MOV R6,#40;DE2 : MOV R5,#123;DJNZ R5,$;DJNZ R6,DE2;DJNZ R7,DE1;RETTABLE : DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H;;//DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH; //表格数据END六、思考题1、外部中断采用电平触发和边沿触发处理方法上又何不同?答:选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。

单片机中断实验实训报告

一、实验背景随着电子技术的飞速发展,单片机因其体积小、成本低、功能强大等优点,在各个领域得到了广泛应用。

中断技术是单片机设计中非常重要的一部分,它允许单片机在执行程序的过程中,能够及时响应外部事件,从而提高系统的实时性和效率。

本实训旨在通过实验,加深对单片机中断系统的理解,掌握中断系统的使用方法,并学会在实际应用中灵活运用中断技术。

二、实验目的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. 编译程序,下载到单片机实验板上。

单片机外部中断实验程序

单片机外部中断实验程序单片机外部中断是一种常用的硬件中断方式,可以使单片机在执行主程序的同时,及时响应外部设备的信号,并进行相应的处理。

在本实验中,我们将编写一段简单的程序,用于实现单片机外部中断的功能。

首先,我们需要明确实验的硬件配置。

本实验中,我们使用的是STC89C52单片机,其中P3.2引脚作为外部中断0的引脚。

接下来,我们将详细介绍实验的步骤。

首先,在主程序中,我们需要首先对单片机的外部中断进行初始化设置。

具体的设置步骤如下:1.设置外部中断引脚的工作方式。

我们需要将P3.2引脚设置为外部中断0的工作模式。

可以通过将P3.2引脚对应的P3CON寄存器位设置为1来实现。

2.设置外部中断的触发方式。

单片机外部中断可以通过电平触发或边沿触发来响应外部设备的信号。

在本实验中,我们选择边沿触发方式。

可以通过将IE寄存器中的EX0位设置为1来实现。

然后,在程序的主循环中,我们可以编写一个简单的实验程序,用于验证外部中断的功能。

具体的步骤如下:1.在主循环中,我们可以设置一个循环延时函数,用于模拟主程序的执行过程。

2.在循环延时函数的适当位置,可以编写一段代码来模拟外部设备的信号触发。

可以通过向P3.2引脚输出一个高电平信号来触发外部中断。

3.在外部中断的中断服务函数中,我们可以编写一段简单的代码,用于处理外部中断触发时的操作。

可以通过向LED等外设输出一个特定的信号,以验证中断服务函数的正确性。

最后,在程序的尾部,我们可以添加一个死循环,用于保证程序的持续运行。

具体的代码如下所示:```#include<reg52.h>sbit LED=P1^0;void delay(unsigned int t){unsigned int i,j;for(i=t;i>0;i--)for(j=110;j>0;j--);}void ExternalInterrupt0()interrupt0{LED=~LED;delay(100);}void main(){IT0=1;//设置外部中断0为边沿触发EX0=1;//允许外部中断0EA=1;//允许总中断while(1){//主循环中的其他操作delay(1000);}}```通过以上的程序,我们可以实现单片机的外部中断功能。

实验报告-实验三 中断与定时器实验INT

ab cd efg h(dp) 中断、定时器实验实验目的:学习外部中断和定时器二、实验说明本实验1通过开关向单片机提出中断请求,单片机响应中断进行计数,并通过LED 数码管指示出计数值,从而观察中断的请求、响应的过程。

实验2通过单片机的定时器产生延时,控制LED 闪烁的方法。

通过本实验学生可以掌握单片机中断和定时器的工作原理及使用方法以及中断和定时器的初始化程序、应用程序的编写和调试。

三、实验内容1、开关S0—S1连接P3口做输入,P0输出接LED ,通过S2产生外部中断请求(/INT0)信号,在中断服务程序中完成十进制递增计数,并将计数值显示在LED 数码管上,要求分别采用电平触发和边沿触发。

按上述要求完成S3产生外部中断请求。

编写初始化程序和中断服务程序。

(注意开关抖动处理)2、P1.0--P1.7作输入口接拨动开关S0--S7;P0.0--P0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,要求发光二极管(LED )按亮0.5秒、暗0.5秒闪烁,LED 亮的同时,从P2.0送出1kHz 的音频信号到音频驱动电路发声(持续0.5秒),将开关编号(0—7)显示在LED 数码管上。

要求延时采用内部定时器T0,音频的产生采用内部定时器T1。

编写初始化程序和中断服务程序。

四、实验电路连线P0.0 ---- LED0 P3.2(/INT0)----- S2P0.1 ---- LED1 P3.3(/INT1)----- S3P0.2 ---- LED2P0.3 ---- LED3P0.4 ---- LED4P0.5 ---- LED5P0.6 ---- LED6P0.7 ---- LED7LED 连接 外部中断请求输入a b c d e f g h(dp)P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 五、实验仪器和设备PC机、WA VE软件、仿真器+仿真头、实验板、电源等。

外部中断实验报告问题(3篇)

第1篇实验报告:外部中断实验一、实验目的1. 理解外部中断的概念及其在嵌入式系统中的应用。

2. 掌握外部中断的配置方法及其在程序中的实现。

3. 通过实验验证外部中断的响应机制和优先级控制。

二、实验原理外部中断是嵌入式系统中一种重要的中断形式,它允许系统在特定的外部事件发生时,暂停当前的任务,转而处理该外部事件。

外部中断通常由外部硬件设备触发,如按钮按下、传感器信号变化等。

在嵌入式系统中,外部中断通常通过中断控制器(Interrupt Controller)来实现。

中断控制器负责管理多个中断源,并根据优先级将中断信号传递给CPU。

CPU接收到中断信号后,暂停当前任务,跳转到中断服务程序(ISR)进行处理。

三、实验环境1. 嵌入式开发板(如STM32、Arduino等)。

2. 编程环境(如Keil、Arduino IDE等)。

3. 外部中断触发设备(如按钮、传感器等)。

四、实验步骤1. 硬件连接:- 将外部中断触发设备(如按钮)连接到嵌入式开发板的外部中断引脚。

- 确保连接正确,无短路或开路现象。

2. 软件配置:- 在编程环境中创建一个新的项目。

- 配置外部中断引脚的模式,如输入模式、上拉/下拉电阻等。

- 配置外部中断的优先级。

- 编写外部中断服务程序(ISR),在该程序中实现对外部事件的响应。

3. 程序编写:```cvoid EXTI0_IRQHandler(void) {if (EXTI_GetITStatus(EXTI_Line0) != RESET) {// 处理外部事件// ...EXTI_ClearITPendingBit(EXTI_Line0); // 清除中断标志位 }}```- 在主程序中启用外部中断。

- 编写主程序,实现其他任务。

4. 编译与下载:- 编译程序,生成可执行文件。

- 将程序下载到嵌入式开发板。

5. 实验验证:- 触发外部中断(如按下按钮),观察系统是否正确响应。

- 改变外部中断的优先级,验证优先级控制是否有效。

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

实验三 单片机外部中断实验
一、实验目的
1.理解单片机AT89C51的中断原理及其中断过程。
2.用proteus设计、仿真AT89C51单片机的外部中断。
外部中断是单片机AT89C51的重要功能,本实验用AT89C51单片机
外部中断功能改变数码管的显示状态。当无外部中断0时,主程序运行状
态为七段数码管的a~g段依次点亮,不断循环;当有外部中断0(单片机
P3.2脚上有下降沿电压)输入时,立即产生中断,转而执行中断服务程序,
数码管显示状态为“8”亮灭闪烁显示,亮灭闪烁显示8次以后,返回主
程序原断点处继续执行,数码管继续段点亮的循环显示。
二、电路设计

XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD3
36
P0.4/AD4
35

P0.5/AD5
34

P0.6/AD6
33

P0.7/AD7
32

P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD
10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51PROGRAM=DZC33.hexX1CRYSTALC130pC230pC322uFR110k12345678161514131211109RN1200

1.从PROTEUS库中选取元件
①AT89C51:单片机;
②RES、RX8:电阻、8排阻;
③7SEG-COM-AN-GRN:绿色发光二极管;
④CAP、CAP-ELEC:电容、电解电容;
⑤CRYSTAL:晶振;
⑥BUTTON:按钮。
2.放置元器件
3.放置电源和地
4.连线
5.元器件属性设置
6.电气检测

四、源程序设计、生成目标代码文件
1.流程图
2.源程序设计
通过菜单“source→Add/Remove Source Files„”新建源程序文件:
DZC31.ASM。
通过菜单“source→DZC33.ASM”,打开PROTEUS提供的文本编辑器
SRCEDIT,在其中编辑源程序。

程序编辑好后,单击按钮存入文件DZC33.ASM。
3.源程序编译汇编、生成目标代码文件
通过菜单“source→Build All”编译汇编源程序,生成目标代码文件。
若编译失败,可对程序进行修改调试直至汇编成功。
五、PROTEUS仿真
1.加载目标代码文件
2.全速仿真
单击按钮,启动仿真。
3.仿真调试
(1)带断电仿真
五、思考题:
1、MCS-51单片机响应某一个中断请求的条件是什么?
2、8051单片机提供几个中断源?有几级中断优先级别?各中断标志是如
何产生的又如何清除这些中断标志?各中断源所对应的中断入口地址是
多少?

相关文档
最新文档