单片机课程设计例题6-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.掌握中断处理程序的编写方法二、实验原理1.外部中断的初始化设置的三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。

中断方式设置一般有两种方式:电平方式和脉冲方式.2.中断服务的关键:(1)保护进入中断时的状态。

堆栈有保护断点和保护现场的功能使用PUSH,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。

注:中断程序自动保护PC,对其做入栈操作(2)用POP指令恢复中断时的现场。

(先进后出)3.中断控制原理:中断控制是提供给用户使用的中断控制手段。

实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。

TF1TR1TF0TR0IE1IT1IE0IT0TCON格式(中断控制字)TF1、TF0:定时器/计数器T的溢出中断请求标志位;TR1、TR0:计数器控制位TR1(TR0)=1启动定时器TR1(TR0)=0停止计数器IE1:外部中断请求1标志位;IT1:选择外部请求1;IE0:外部中断请求0标志位;IT0:IT0=0为低电平触发IT0=1为负跳变有效;复位后TCON被清零,中断请求被禁止。

SCON格式(触发方式中断控制字)TI:串行口的发送中断请求标志位。

发送1帧串行数据后,硬件自动为TI置1。

注:CPU不会为T1清零,需要在中断程序中用软件为TI清零RI:串行口接受中断请求标志位。

接收完1帧串行数据后,硬件自动为RI置1。

注:CPU不会为R1清零,需要在中断程序中用软件为RI清零三、实验内容参考实验程序(主程序为P1口输出跑马灯程序),编写中断子程序使得发生外部中断0,且为下降沿触发时,LED灯全亮。

中断结束后LED 继续接上次状态进行跑马灯闪烁。

注:注意保护现场。

且编译器不支持工作组寄存器名(R0-R7)入栈,需要对栈地址操作。

例:PUSH 06H (累加器支持左移右移不支持压栈出栈; 工作组寄存器不支持左移右移支持压栈出栈);把R6入栈 等同 PHSHU R6四、实验步骤1.使用单片机最小应用系统1模块,P1接发光二极管,INTO接单次脉冲输出端。

51单片机中断程序例子

51单片机中断程序例子

51单片机中断程序例子
1. 外部中断:当外部信号引脚检测到高电平时,单片机会触发外部中断服务程序。

可以利用外部中断实现按键扫描功能,当按键按下时,触发中断程序对按键进行处理。

2. 定时器中断:利用定时器中断可以实现精确的时间控制。

例如,我们可以设置定时器中断为1秒,当定时器溢出时,触发中断程序,实现1秒钟执行一次的任务。

3. 串口中断:当接收到串口数据时,单片机会触发串口中断服务程序,可以利用串口中断实现串口通信功能。

4. ADC中断:当模数转换器完成一次转换时,单片机会触发ADC中断服务程序,可以利用ADC中断实现模拟信号的采集和处理。

5. 看门狗中断:看门狗定时器溢出时,单片机会触发看门狗中断服务程序,可以利用看门狗中断实现系统复位或其他相关功能。

6. 外部中断优先级:当多个外部中断同时触发时,可以通过设置外部中断的优先级来确定触发的顺序和优先级。

7. 定时器中断优先级:当多个定时器中断同时触发时,可以通过设置定时器中断的优先级来确定触发的顺序和优先级。

8. 中断嵌套:单片机支持中断嵌套,即在一个中断服务程序中触发
另一个中断服务程序,可以通过中断嵌套实现复杂的任务处理。

9. 中断屏蔽:单片机支持对中断的屏蔽,即可以通过设置中断屏蔽标志位来屏蔽某些中断,使其暂时不被触发。

10. 中断标志位:单片机提供中断标志位,用于标识中断是否被触发。

在中断服务程序中,可以通过读取和清除中断标志位来判断中断是否发生。

以上是根据51单片机中断程序的例子进行的描述,这些例子涵盖了常见的中断类型和相关功能。

通过学习和理解这些例子,可以更好地掌握51单片机中断编程的原理和方法。

单片机外部中断实验程序

单片机外部中断实验程序

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

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

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

本实验中,我们使用的是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);}}```通过以上的程序,我们可以实现单片机的外部中断功能。

单片机外部中断详解及程序

单片机外部中断详解及程序

单片机外部中断详解及程序单片机在自主运行的时候一般是在执行一个死循环程序,在没有外界干扰(输入信号)的时候它基本处于一个封闭状态。

比如一个电子时钟,它会按时、分、秒的规律来自主运行并通过输出设备(如液晶显示屏)把时间显示出来。

在不需要对它进行调校的时候它不需要外部干预,自主封闭地运行。

如果这个时钟足够准确而又不掉电的话,它可能一直处于这种封闭运行状态。

但事情往往不会如此简单,在时钟刚刚上电、或时钟需要重新校准、甚至时钟被带到了不同的时区的时候,就需要重新调校时钟,这时就要求时钟就必须具有调校功能。

因此单片机系统往往又不会是一个单纯的封闭系统,它有些时候恰恰需要外部的干预,这也就是外部中断产生的根本原由。

实际上在第二个示例演示中,就已经举过有按键输入的例子了,只不过当时使用的方法并不是外部中断,而是用程序查询的方式。

下面就用外部中断的方法来改写一下第二个示例中,通过按键来更改闪烁速度的例子(第二个例子)。

电路结构和接线不变,仅把程序改为下面的形式。

#include ;unsigned int t=500; //定义一个全局变量t,并设定初始值为500次//===========延时子函数,在8MHz晶振时约1ms=============void delay_ms(unsigned int k){unsigned int i,j;for(i=0;i<k;i++){for(j=0;j<1140;j++);}}//============主函数==================================void main( void ){DDRB = 0xFF; //设置端口B为输出方向PORTB = 0xFF; //设置端口B的输出为全高电平DDRD = 0x00; //设置端口D为输入方向PORTD = 0xFF; //设定端口D为内部上拉方式,无信号输入时处于高电平状态MCUCR = 0x0A; //设定INT0、INT1为下降沿触发GICR = 0xC0; //使能INT0、INT1中断SREG = 0x80; //使能总中断while(1){PORTB = 0x55; //让接在端口B上的LED显示01010101 delay_ms(t); //延时t个msPORTB = 0xAA; //让接在端口B上的LED显示01010101 delay_ms(t); //延时t个ms}}//============中断函数(外部0)==========================#pragma vector = INT0_vect__interrupt void INT0_Server(void){t = 100; //设定t的值为100次}//============中断函数(外部1)==========================#pragma vector = INT1_vect__interrupt void INT1_Server(void){t = 500; //设定t的值为500次}把上述程序进行编译并下载到单片机中,可以看到结果与第二个示例中的完全一致。

单片机 外部中断 程序设计

单片机 外部中断 程序设计

单片机外部中断程序设计一、引言在单片机应用系统中,外部中断是一个非常重要的功能。

当外部事件发生时,中断系统可以打断正在执行的程序,转而执行相应的中断服务程序(ISR)。

本指南将详细介绍如何进行单片机外部中断的程序设计,主要包括以下五个方面:配置中断控制器、定义中断服务程序、设置中断触发方式、开启外部中断以及测试与调试。

二、配置中断控制器中断控制器是单片机的核心部件之一,它负责管理中断的优先级、触发方式以及处理方式。

在进行外部中断程序设计之前,需要先配置中断控制器。

根据所使用的单片机型号和中断控制器的不同,配置方法会有所差异。

一般情况下,需要设置以下几个参数:1.中断触发方式:电平触发或边沿触发。

2.中断优先级:多个中断源的情况下,需要确定每个中断源的优先级。

3.中断处理方式:通常有向量中断和非向量中断两种处理方式,需要根据具体硬件平台进行选择。

三、定义中断服务程序中断服务程序(ISR)是当外部中断触发时,单片机执行的一段程序代码。

在定义ISR时,需要注意以下几点:1.ISR的入口和出口参数:一般情况下,单片机厂商会提供相应的库函数,用于定义ISR的入口和出口参数。

2.ISR的执行时间:为了保证系统的实时性,ISR的执行时间应尽可能短,避免长时间的操作导致系统响应延迟。

3.ISR的返回值:根据需要,ISR可以返回一定的状态信息或处理结果。

四、设置中断触发方式根据具体应用需求,需要设置外部中断的触发方式。

常见的触发方式包括电平触发和边沿触发。

电平触发是指当外部信号电平发生变化时,触发中断请求;边沿触发则是在信号电平由低变高或由高变低时触发中断请求。

选择合适的触发方式可以提高系统的响应速度和准确性。

五、开启外部中断完成以上步骤后,最后一步是开启外部中断。

具体方法取决于所使用的单片机型号和编译器。

一般来说,需要使用相应的指令或函数来开启外部中断。

在开启外部中断时,需要注意以下几点:1.中断使能:需要开启单片机的中断使能开关。

51单片机中断程序例子

51单片机中断程序例子

51单片机中断程序例子1. 外部中断程序:外部中断是指由外部设备或外部信号触发的中断。

在51单片机中,通过设置中断允许位和中断优先级来实现对外部中断的响应。

例如,当外部设备发出一个信号时,单片机可以立即停止当前任务,转而执行外部中断程序。

外部中断程序的编写需要根据具体的外部设备和信号进行相应的处理,如读取设备状态、处理数据等。

通过外部中断程序,可以实现单片机与外部设备的互动和数据交换。

2. 定时器中断程序:定时器中断是指通过设置定时器的计数值和中断允许位,使得在指定的时间间隔内触发中断。

在51单片机中,可以通过定时器中断来实现定时任务的执行。

例如,可以设置一个定时器,在每隔一定的时间就触发中断,然后在中断程序中执行相应的任务,如数据采集、数据处理等。

通过定时器中断程序,可以实现定时任务的自动执行,提高系统的实时性和可靠性。

3.串口中断程序:串口中断是指通过串口通信接口接收或发送数据时触发的中断。

在51单片机中,可以通过设置串口中断允许位和中断优先级来实现对串口数据的中断处理。

例如,当接收到一个完整的数据包时,单片机可以立即停止当前任务,转而执行串口中断程序,对接收到的数据进行处理。

通过串口中断程序,可以实现单片机与外部设备的数据交换和通信。

4. ADC中断程序:ADC(模数转换器)中断是指在进行模数转换时触发的中断。

在51单片机中,可以通过设置ADC中断允许位和中断优先级来实现对模数转换结果的中断处理。

例如,当模数转换完成后,单片机可以立即停止当前任务,转而执行ADC中断程序,对转换结果进行处理和分析。

通过ADC中断程序,可以实现对模拟信号的采集和处理,用于实时监测和控制。

5. 外部中断优先级设置:在51单片机中,可以通过设置外部中断的中断优先级来确定中断的响应顺序。

中断优先级越高,优先级越高的中断会先被响应。

通过合理设置中断优先级,可以确保关键任务的及时响应和执行。

例如,当多个外部设备同时发出中断信号时,可以通过设置优先级,确保先响应优先级高的设备,保证系统的正常运行。

第6章 51单片机的中断系统和外部中断

第6章 51单片机的中断系统和外部中断
L1 D6 D5 D4 D3 D2 D1 D0
C1 C2 R1
U1
30pF 19
R2
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 100
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C52
SW1
SW-SPST
SW2
SW-SPST
6.5 51单片机外部中断应用实例
6.5.2 低电平中断的应用
3、实例的应用代码
51单片机使用两个外部中断服务子程序来对外部中断0和外部中断1的 进行处理,在中断服务子程序中只做一件事情,就是控制对应的LED 翻转。
6.3 51单片机的中断服务子程序设计
中断服务函数需要使用关键字interrupt来进行定义,interrupt后面的参数 0~4表明了中断源,在实际使用中常常使用using来定义在中断服务函数中使 用的寄存器组,其参数可以为0~3,分别对应通用工作寄存器组0~组3, 可以减少压入堆栈的变量内容,从而简化中断服务函数的内容,以加快程序 执行的速度。 标准结构:void 函数名(void) interrupt 中断标号 using 寄存器编号 { 中断函数代码; } 51单片机中断源对应的中断标号按照内部优先级从高到低的顺序分配为 0~5,外部中断0对应的中断号是0,定时/计数器T2对应的中断号是5 。
第六章 51单片机的中断系统和外部中 断
6.1 51单片机的中断系统

单片机外部中断技术原理及应用案例

单片机外部中断技术原理及应用案例

单片机外部中断技术原理及应用案例单片机是一种微型电脑,它集成了处理器、内存和输入输出接口等功能,广泛应用于各种电子设备中。

在单片机的应用过程中,外部中断技术起到了重要的作用。

本文将介绍单片机外部中断技术的原理,以及一些应用案例。

一、单片机外部中断技术原理单片机外部中断技术是通过对外部信号的检测和响应,实现单片机与外设之间的交互。

当外部信号满足特定条件时,单片机将进入中断服务程序,执行相应的操作。

单片机外部中断主要包括中断源、中断触发方式和中断向量表等几个关键要素。

1. 中断源:中断源是指引起中断的外部信号。

常见的中断源有外部按键、传感器信号等。

当外部信号满足特定条件时,会触发中断信号,从而引起单片机进入中断状态。

2. 中断触发方式:中断触发方式主要有两种,即电平触发和边沿触发。

- 电平触发:当外部信号保持在高电平或低电平时,单片机将进入中断状态。

电平触发的稳定性较好,在噪声较多的环境中有较好的抗干扰能力。

- 边沿触发:当外部信号从低电平变为高电平(上升沿)或从高电平变为低电平(下降沿)时,单片机将进入中断状态。

边沿触发灵敏度较高,适合对信号变化较快的应用场景。

3. 中断向量表:中断向量表存储了每个中断源对应的中断服务程序的入口地址。

当中断发生时,单片机会自动根据中断源的编号在中断向量表中查找相应的入口地址,并跳转到该地址执行中断服务程序。

二、单片机外部中断应用案例为了更好地理解单片机外部中断技术的应用,下面将介绍两个常见的案例。

1. 按键中断:在很多电子设备中,我们经常会见到按键的应用。

通过单片机外部中断技术,可以实现对按键的检测和响应。

以一个简单的LED闪烁控制器为例,假设有一个按键连接到单片机的外部中断引脚上。

当按键按下时,外部中断触发,单片机进入中断状态,执行相应的中断服务程序。

在中断服务程序中,可以控制LED的闪烁频率或状态。

这种按键中断的应用案例在很多电子设备中常见,比如遥控器的按键控制、电子游戏手柄的按键检测等。

单片机外部中断讲解

单片机外部中断讲解

单片机外部中断讲解在单片机的世界里,外部中断就像是一位“紧急事务专员”,能够在关键时刻打断单片机正在进行的工作,让其优先处理更为重要和紧急的任务。

这一特性使得单片机在应对复杂多变的外部环境时变得更加灵活和高效。

首先,咱们来理解一下什么是外部中断。

简单来说,外部中断就是单片机从外部接收的一种信号,这个信号告诉单片机:“嘿,有重要的事情发生啦,你得马上停下来处理!”这个信号可以来自各种各样的外部设备,比如按键、传感器等等。

那么,单片机是如何感知到这些外部中断信号的呢?这就涉及到单片机的引脚配置。

通常,单片机都会有专门的引脚用于接收外部中断信号。

当外部设备产生中断信号并通过这些引脚输入到单片机时,单片机会立即响应。

外部中断有它自己的触发方式,常见的有边沿触发和电平触发。

边沿触发就像是一个瞬间的“脉冲”,可以是上升沿触发(也就是从低电平变为高电平的那一瞬间),也可以是下降沿触发(从高电平变为低电平的瞬间)。

而电平触发呢,则是根据引脚的高电平或者低电平状态来触发中断。

比如说,设置为高电平触发,那么只要引脚保持高电平,就会一直触发中断。

为了更好地管理外部中断,单片机一般都会有相应的中断控制寄存器。

通过对这些寄存器的配置,我们可以决定是否允许某个外部中断、选择触发方式、设置中断的优先级等等。

接下来,咱们说说外部中断的优先级。

想象一下,如果同时有多个外部中断信号来了,单片机该先处理谁呢?这就需要靠优先级来决定。

优先级高的中断会先得到处理,处理完后再去处理优先级低的中断。

在实际编程中,使用外部中断需要经过一系列的步骤。

首先,要对单片机进行初始化,包括设置中断相关的寄存器。

然后,编写中断服务函数。

这个函数就是单片机在响应中断后要执行的具体任务。

比如说,我们有一个基于单片机的温度监测系统,使用了一个温度传感器。

当温度超过设定的阈值时,传感器会给单片机发送一个外部中断信号。

在中断服务函数里,单片机可能会执行报警操作,比如点亮一个指示灯或者发出声音警报。

单片机中断技术及应用案例

单片机中断技术及应用案例

单片机中断技术及应用案例引言:单片机中断是一种非常重要的技术,可以提高单片机的响应速度和并发处理能力。

本文将介绍单片机中断的原理及其在实际应用中的案例。

一、单片机中断的原理1. 中断的基本概念中断是指在程序运行过程中,由硬件或软件发出的一种异步请求,中断请求的触发可以是外部输入信号、定时器、串口等。

中断的目的是实现对一些事件或数据的即时处理,从而提高系统的实时性。

2. 中断的分类根据中断源的不同,中断可以分为外部中断和定时中断。

外部中断是指由外部输入引脚触发的中断,如外部按键、传感器信号等;定时中断是指由定时器或计数器产生的中断,用于实现定时任务和周期性任务。

3. 中断的工作原理在单片机中,中断是通过中断向量表和中断优先级控制实现的。

中断向量表是一个存储器数组,用于存放中断服务子程序的入口地址。

当中断发生时,CPU会根据中断号查找中断向量表,获得相应中断服务子程序的入口地址,并将程序的控制权转向该子程序执行。

二、单片机中断的应用案例1. 外部中断的应用案例外部中断常用于对外部事件进行响应,例如按键检测、传感器触发等。

以按键检测为例,当按键闭合时,引发外部中断,系统立即响应并执行相应的中断服务子程序。

假设我们设计一个按键控制LED灯的系统,当按键按下时,LED灯亮起;当按键松开时,LED灯熄灭。

在主程序中,我们配置外部中断来检测按键状态变化,并通过中断服务子程序来控制LED灯的亮灭。

2. 定时中断的应用案例定时中断常用于周期性任务和实时任务的控制,例如定时采集传感器数据、定时发送数据等。

以定时采集传感器数据为例,我们可以使用定时器产生定时中断,在每个定时中断时触发传感器数据的采集和处理。

假设我们设计一个温度监控系统,每隔一段时间采集一次温度数据并进行处理。

我们可以设置一个定时器,每次定时中断时触发温度采集和处理的中断服务子程序。

3. 中断嵌套的应用案例在一些需要处理多个中断请求的场景中,我们可以使用中断嵌套的方式来进行响应和处理。

单片机 程序 外部中断中断

单片机 程序 外部中断中断

实验四外部中断与一位数码管静态显示实验一、实验目的1、通过实验掌握静态显示的工作原理;2、通过实验掌握如何设置控制外部中断的特殊功能寄存器;3、通过实验掌握外部中断的工作原理。

二、实验内容注:实验前先将矩阵按键模块的INT0和INT1插针用短路套短接。

1、根据电路图图1-6编写程序,由P1口控制八个LED,按键INT0和按键INT1控制八个LED循环点亮的方向。

初始状态八个LED全部熄灭,如果按键INT0按下,由电路板上LED7→LED0逐个移位点亮(每一时刻只有一个点亮),到LED0后停止;如果按键INT1按下,由电路板上LED0→LED7逐个移位点亮(每一时刻只有一个点亮),到LED7后停止;2、根据电路图图1-6编写程序,由P1口控制八个LED,按键INT0和按键INT1控制八个LED循环点亮的方向。

初始状态八个LED全部熄灭,如果按键INT0按下,由电路板上LED7→LED0逐个移位点亮(每一时刻只有一个点亮),到LED0再由LED7→LED0逐个移位点亮;如果按键INT1按下,由电路板上LED0→LED7逐个移位点亮(每一时刻只有一个点亮),到LED7再由LED0→LED7逐个移位点亮;3、根据电路图图1-6编写程序,由P1口控制八个LED,按键INT0和按键INT1控制八个LED循环点亮的方向。

初始状态八个LED由LED7→LED0逐个移位点亮,如果按键INT0按下,循环点亮的方向向右(每一时刻只有一个点亮);如果按键INT1按下,循环点亮的方向向左(每一时刻只有一个点亮),无论哪个LEDx正在被点亮,都从该位LEDx开始反向循环点亮;4、根据电路图图1-6编写一个P0口控制段选信号和P2.7引脚控制位选信号的一位数码管静态显示程序,初始状态显示“0”;如果按键INT0按下,显示加一后的数值;如果按键INT1按下,显示减一后的数值;如果加到“9”再加一,显示“0”;如果减到“0”再减一,显示“9”;5、根据电路图图1-6编写一个P0口控制段选信号和P2.7引脚控制位选信号的一位数码管静态显示程序,初始状态显示全灭;如果按键INT0按下,数码管的显示段被逐个移位点亮的方向“a段→f段”(每一时刻只有一段点亮,数码管顺时钟作画圈动画);如果按键INT1按下,数码管的显示段被逐个移位点亮的方向“f段→a段”(每一时刻只有一段点亮,数码管逆时钟作画圈动画);6、自己编写程序,设计数码管动态显示和按键的创意实验。

(完整版)单片机毕业课程设计_外部中断控制灯移动

(完整版)单片机毕业课程设计_外部中断控制灯移动

课程设计任务书多级外部中断控制灯移动摘要:单片机的中断功能可以提高CPU的效率,利用它设计出不同优先级中断控制灯的移动。

验证在低优先级中断控制灯的移动中加入高优先级中断控制命令,则先执行高级中断,之后再完成低级中断控制灯的移动;在高优先级中断控制灯移动中加入低优先级中断,则不会影响灯的移动。

结果表明单片机可实现实时处理以满足实时控制要求,并且能及时处理故障,提高单片机的可靠性。

关键词:单片机外部中断控制灯优先级实时处理目录1设计背景 (5)1.1优点介绍 (5)1.2应用介绍 (5)2设计方案 (5)2.1电源设计 (5)2.2其它模块设 (5)3方案实施 (5)3.1电源 (5)3.2彩灯与单片机连接 (6)3.3 晶振及复位 (6)3.4 软件设计 (6)4 结果与结论 (6)4.1 软件设计 (6)4.2 整体测试 (6)5 收获与致谢 (7)6 参考文献 (7)7 附件 (7)1. 设计背景1.1单片机中断的优点中断可提高CPU的效率,可实现实时处理,满足实时控制要求。

中断功能,可及时处理故障,提高单片机的可靠性。

1.2单片机在控制灯规律变化上的应用用单片机控制LED灯变化在公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传等方面应用广泛,价格合理。

因此,掌握该项技术是很有必要的。

2.设计方案2.1电源模块设计采用220V-6V变压器提供6V交流电,通过2W10桥堆以及7805得到单片机所使用的5V直流电,同时采用1000uF电容起到稳定电路的作用。

2.2单片机及彩灯模块设计设计采用AT89S52单片机,P1口接8个彩灯,12、13管脚接两只开关作为外部中断源,选用12M Hz晶振;采用按键复位方式。

3. 方案实施3.1电源模块设计采用220V-6V变压器提供6V交流电,通过2W10桥堆以及7805得到单片机所使用的5V直流电,同时采用1000uF电容稳定电路。

3.2彩灯与单片机的连接令P1口输出低电平时对应LED灯亮,由此,将8只LED灯的阳极连接Vcc,阴极接P1口,并采用220欧的限流电阻。

厦门理工学院 单片机 硬件实验六 外部中断(急救车与交通灯) C程序

厦门理工学院 单片机 硬件实验六 外部中断(急救车与交通灯) C程序

连接孔 1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 单脉冲输出
连接孔 2 L0 L1 L2 L3 L4 L5 INT0(51)
四、实验说明
中断服务程序的关键是: 1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。 2、必须在中断程序中设定是否允许中断重入,即设置 EXO 位。 本例中使用了 INTO 中断,一般中断程序进入时应保护 PSW,ACC 以及中断程序使用 但非其专用的寄存器。本例的中断程序保护了 PSW,ACC 等三个寄存器并且在退出前恢复 了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。 本例中没有涉及这种情况。 对于 8051CPU 外部中断由 INTO(P32)端接入。中断信号由单次脉冲发生器产生。 对中断的处理可参见硬件实验十一。
} }
void int0() interrupt 0 {
//stat(1,0,0,1,0,0); sn_red=1; sn_yellow=0; sn_green=0; ew_red=1; ew_yellow=0; ew_green=0;
delay2(); }
机械工程系 微机原理与接口技术
实验报告书
实 验 名 称:
年级专业及班级:

名:

号:
指 导 教 师:
评 定 成绩:
教 师 评 语:
刘建春
硬件实验六 外部中断(急救车与交通灯)
一、实验要求
本实验模拟交通信号灯控制,一般情况下正常显示,有急救车到达时,两个方向交通信号灯全 红,以便让急救车通过。设急救车通过路口时间为 10 秒,急救车通过后,交通恢复正常,本实验
#include <reg52.h> #include <intrins.h> sbit sn_red=P1^0; sbit sn_yellow=P1^1; sbit sn_green=P1^2; sbit ew_red=P1^3; sbit ew_yellow=P1^4; sbit ew_green=P1^5;

8051外部中断实例

8051外部中断实例

6.2 8051单片机的外部中断一、外部中断的应用实例采用低电平中断方式与负脉冲中断方式的过程基本相同,唯一不同的在于中断请求信号的保持与撤消。

负脉冲方式将IE置1向CPU申请中断,由于没有中断请求标志位,要求中断源在中断处理程序返回主程序前,将或引脚的电平升为高电平,以避免重复中断。

因此,在实际使用中应注意两点:(1)请求中断的低电平必须保持足够长的时间,直到中断响应为止。

(2)低电平的中断信号必须在返回主程序前撤消,否则会产生多余的中断动作。

解决这个问题的方法是,在单片机外增加一个D触发器作为中断标志位,当中断请求发生时,置该触发器为1,当中断响应后将触发器清零,其电路如图6-4所示。

例6-3 利用作为外部中断输入线,每按一次开关K使P1口处的8个LED轮流点亮一次,如图4所示。

(本题可作为实例演示,施密特触发器可不用)(3)使用脉冲中断请求方式的硬件电路如图6-5所示。

在主程序中先将初始化为:负脉冲、允许中断工作方式。

然后将控制码01H由累加器A送入P1口,使P1.0控制的二极管发光。

当用户按开关K后产生负脉冲的中断请求信号给80C51的引脚,CPU响应中断后执行中断处理程序,使累加器A中控制码左移一位,重新送给P1口,此时P1.1控制的LED发光,而P1.0控制的LED熄灭。

每按一次开关产生一次中断,使控制码左移一位,用户看到的情况是8个LED轮流发光显示。

例6-4如图6-6所示。

有4个中断源:A、B、C、D,要求中断优先级:A→B→C→D,即A最高,D最低。

中断处理程序入口地址:adda、addb、addc、addd,试设计硬件与软件实现上述要求。

中断入口地址为0003H。

分析:4个中断源A、B、C、D通过或非门将中断请求信号传送给80C51的引脚。

再将每个中断源A、B、C、D的引脚连接到80C51P1口的P1.0、P1.1、P1.2、P1.3的引脚上。

当某些中断源同时发中断请求信号(高电平)时,CPU响应后执行中断处理程序。

51单片机外部中断实验

51单片机外部中断实验

实验6 外部中断实验(仿真部分)一、实验目的1. 学习外部中断技术的基本使用方法。

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

二、实验内容在INT0和INT1上分别接了两个可回复式按钮,其中INT0上的按钮每按下一次则计数加一,其中INT1上的按钮每按下一次则计数减一。

P1.0~ P1.3接LED灯,以显示计数信号。

三、实验说明编写中断处理程序需要注意的问题是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

2.必须在中断处理程序中设定是否允许中断重入,即设置EX0位。

3.INT0和INT1分别接单次脉冲发生器。

P1.0~ P1.3接LED灯,以查看计数信号.四、硬件设计利用以下元件:AT89C51、BOTTON、CAP、CAP-POL、CRYSTAL、RES、NOT、LED-Yellow。

设计出如下的硬件电路。

晶振频率为12MHz。

五、参考程序框图开始设置有关中断控制寄存器开外中断INT0、INT1 设置P1.0~ 3初始状态显示循环等待中断INT0中断入口计数加一保护现场恢复现场中断返回主程序框图INT0中断处理程序框图实验6 外部中断实验(实验箱部分)1.实验目的认识中断的基本概念学会外部中断的基本用法学会asm和C51的中断编程方法2.实验原理图按键中断【硬件接法】P1.1控制LED,低电平点亮P3.3/INT1接按键,按下时产生低电平【运行效果】程序工作于中断方式,按下按键K2后,LED点亮,1.5秒后自动熄灭。

8051单片机有/INT0和/INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或下降沿触发方式来输入中断请求信号。

/INT0和/INT1中断的入口地址分别是0003H和0013H。

TCON寄存器(SFR地址:88H)中的IT0和IT1位分别决定/INT0和/INT1的触发方式,置位时为下降沿触发,清零时为低电平触发。

实际应用时,如果外部的中断请求信号在产生后能够在较短时间内自动撤销,则可以选择低电平触发。

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

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

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

实例(7)-外部中断

实例(7)-外部中断

实验(7) 外部中断一、实验目的:1、了解单片机的中断系统。

2、掌握单片机的外部中断机制。

3、编程实现利用外部中断控制LED和蜂鸣器。

二、实验原理:2.1、中断系统中断是为使CPU具有对外界异步事件的处理能力而设置的。

所谓中断,是指CPU对系统中或系统外发生的某个事件的一种响应过程,即CPU暂时停止现行程序的执行,而自动转动执行预先安排好的处理该事件的服务子程序。

当处理结束后,再返回到被暂停程序的断点处,继续执行原来的程序。

实现这种中断功能的硬件系统和软件系统称为中断系统。

中断系统是计算机的重要组成部分。

实时控制、故障自动处理时往往用到中断系统,计算机与外部设备间传送数据及实现人机联系也常常采用中断方式。

学习中断系统时主要注意三个内容:中断源、中断服务程序、中断优先级。

CPU的中断系统一般允许有多个中断源,当几个中断源同时向CPU请求中断,要求为它服务的时候,这就存在CPU优先响应哪一个中断源请求的问题。

通常根据中断源的轻重缓急排队,优先处理最紧急的事件的中断源请求源,即规定每一个中断源有一个优先级别。

CPU总是先响应优先级别最高的中断请求。

下面两幅图分别是中断处理示意图和中断处理流程图。

图1 图22.2、中断嵌套当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断请求。

如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完之后,再回到原低级中断服务程序,这样的过程称为中断嵌套。

图3为中断嵌套的示意图。

图32.4、51单片机的中断源和中断优先级传统51单片机有5个中断请求,按优先级从高到低排序分别是:外部中断0(/INT0)、定时器0中断、外部中断1(/INT1)、定时器1中断、串口(UART)中断。

而增强型STC 51单片机在保留传统51单片机的中断结构之外,还额外增加了5个中断源。

其优先级仅接着前面5个中断源,从高到低分别是,A/D转换中断、低电压检测(LVD)中断、PCA中断、串口2中断及SPI中断。

单片机课程设计 外部中断控制流水灯变化(最全)word资料

单片机课程设计 外部中断控制流水灯变化(最全)word资料

单片机课程设计报告设计题目:外部中断控制流水灯变化姓名一.设计目的通过学习单片机工作原理和各种工作方式及各管脚的功能,想通过P3 二.设计要求三. MCS-51的硬件结构:四. P3口的状态P3口是双功能口,默认为第一功能(通用I/O口),通过编程可设置第二功能。

五.中断传送方式:中断方式则是在外设为数据传送做好准备之后,就向CPU发出中断请求信号(相当于通知CPU)。

CPU接收到中断请求信号之后立即作出响应,暂停正在执行的原程序(主程序),而转去外设的数据输入输出服务,待服务完之后,程序返回。

CPU再继续执行被中断的原程序。

六.外部中断外部中断是指从单片机外部引脚输入请求信号。

输入/输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为外部中断源,从引脚INT0、INT1输入。

外部中断请求、有两种触发方式:电平触发及跳变(边沿)触发。

这两种触发方式可以通过对特殊功能寄存器TCON编程来选择。

七.电路原理逻辑图如下:八.实验硬件电路图如下九.程序流程图如下十.程序清单ORG 0000HAJMP STARTORG 0003HAJMP SERORG 0013HAJMP SER1ORG 0030HSTART: MOV IE,#85H ;外部中断0和1都开MOV IP,#01H ;外部中断0级优先高 MOV TCON,#00H ;低电平出发 MAIN: MOV A,#0FEH ;P2.0口亮 MOV P2,AACALL TIMO ;延时SER1:MOVSER2: MOVTIMO:LOOP1: MOVLOOP2: MOVLOOP3: DJNZDJNZDJNZRETSER: RES MOV R2,#18H A,#0EFH P2,A A R6,#100 R7,#50 R7,LOOP3 R6,LOOP2 R5,LOOP1;循环左移;循环3次;P2.7口亮;延时;循环右移;延时子程序;灯全灭 6 RL A SJMP ACALL TIMO RR DJNZ R2,SER2 RETI MOV R5,#50 MOV P2,#0FFH RETIEND十一.课程设计总结:通过本次课程设计,发现了学习中一些不足的地方,及时进行了补充学习。

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

5.程序仿真
n
n
n
在Keil集成开发环境中,输入上述源程序并命名为 输入上述源程序并命名为lm46.c,建立名为lm4-6的工程并将 的工程并将lm4-6.c加入工程中,经 编译、链接后进入调试状态, ,打开P1、P2口和interrupt system对话框,在P2口中使高 口中使高4位引脚为1001;单击工具 栏全速运行按钮,观察interrupt interrupt system对话框。 system 由于程序中有语句IE=0x81和 和IT0=1,所以EA 、EX0和IT0 选项已自动选取,单击对话框下部的单选项 单击对话框下部的单选项IE0使中断中 断请求标志置位,响应中断后执行中断程序 响应中断后执行中断程序。 改变P2口高4位引脚状态,单击 单击interrupt system对话框 的下部的单选项IE0,观察P1 P1口引脚变化情况。 在仿真时,也可打开P3口对话框 口对话框,单击P3.2引脚2次,模 拟按下开关SW4产生的下降沿信号 产生的下降沿信号,观察P1口的状态(此 时不用再单击interrupt interrupt system对话框下部的单选项 system IE0)。
单片机课程设计
例题6—1级外部中断
4.4.1例题6—1级外部中断
n n n
n
1.教学目的 (1)了解中断控制的工作原理 了解中断控制的工作原理。 (2)掌握中断方式的选择 掌握中断方式的选择,学习中断程序的 格式及编写中断程序。 。 (3)掌握中断程序的调试方法 掌握中断程序的调试方法。
2.电路图
图4­30 例题6电路图
3.相关知识
硬件开关防抖电路 电路图中R-S触发器部分。该电路是利用 该电路是利用R-S触发器的保 持功能完成开关去抖作用的。 。设SW4按下前处于端,电路状 态:Q端为1,端则为0;使开关 使开关SW4拨向端,电路状态:Q端 为0,端则为1;此时即使SW4发生抖动 发生抖动,触点脱离R端(但 不能回到S端),由于Q端为0这一信号送回到 这一信号送回到G1的输入端, 仍然能保证端为1,从而Q端为 端为0保持不变。所以,在开关拨 向R端的过程中,电路Q端产生了一个无抖动的下降沿信号 端产生了一个无抖动的下降沿信号。
n
6.习题
n
外部请求信号送入INT1 INT1 端,采用电平触发方式, 编写程序。
n n
static void xint0_isr(void) interrupt IE0_VECTOR using 1 //这个函数只限本文件使用,不允许其它文件中的函数调用它 不允许其它文件中的函数调用它,是内 //部函数。
n n n n n n n n n n n
{ unsigned char buf1,buf2; EX0=0 ;//关中断 关中断 P2=0xFF ;//读取P2 P2口前,先写1 buf1=buf2=P2 ;//读入P2 P2口 delay() ;//延时 buf2=~buf2>>4 ;//P2口低 口低4位数据 buf1=(buf1&0xF0);//P2口高 口高4位数据 P1=buf2|buf1 ;//高、低 低4位数据合并送P1口 EX0=1 ;// 开中断 }
#include <regx51.h> void delay (void) //延时程序 { unsigned int i,j; for (i=0;i<20;i++) for (j=0;j<120;j++); } main( ) { IT0=1 ;//边沿触发 IE=0x81 ;//开中断 while(1) ; // ; // 等待中断 }
4.程序设计
(1)流程图
开始 关中断 开始 读P2口高4位 IT0=1 INTБайду номын сангаас开中断 取反,右移,合并 向P1口送数据 开中断 等待 结束
(a)主程序 图4­31
(b)中断服务程序 例题6程序流程图
n
(2)C语言程序
n n n n n n n n n n n n n
+5V +5V 3 30 x 8 39 38 37 R1 36 35 34 LED 8 L ED7 LED6 L ED5 LE D4 LE D3 L ED2 LED1 33 32 1 2 3 4 5 6 7 8 + 5V R 9 1 0K C1 4.7 u C3 30p C 2 3 0p Y1 12MH z 9 18 19 P0 .0 P0 .1 P0 .2 P0 .3 P0 .4 P0 .5 P0 .6 P0 .7 P 1.0 P1 .1 P1 .2 P1 .3 P1 .4 P1 .5 P1 .6 P1 .7 RST XT AL1 XT AL2 IC 1 A T89 S51 P2. 0 P2. 1 P2. 2 P2. 3 P2. 4 P2. 5 P2. 6 P2. 7 P3. 0/RX D P 3.1/ TXD P 3.2/ INT 0 P 3.3/ INT 1 P3. 4/T0 P3. 5/T1 P 3.6 /WR P3 .7/R D ALE /PRO G PSE N EA/V PP 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 30 29 31 +5V G1 Q & R R15 1K SW4 Q & G2 S R1 4 1K +5 V SW0 SW 1 SW 2 SW 3 R13 R 12 R11 R1 0 4. 7k x 4 R8 R7 R6 R5 R4 R3 R2
相关文档
最新文档