最新外部中断按键控制流水灯资料
实验五 广告流水灯中断控制

实验五广告流水灯中断控制实验五广告流水灯中断控制一、实训目的1、用外部中断源的中断控制方法控制发光二极管亮灭。
2、学习外部中断技术的基本使用方法。
3、学习中断处理程序的编写方法。
二、实训预备知识1、单片机中断系统包括5个中断请求源,4个中断控制寄存器IE、IP、TCON、SCON用来控制中断的请求、中断的开关和各种中断源优先级的确定。
2、编写中断处理程序需要注意的问题是:(1)保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
(2)必须在中断处理程序中设定是否允许中断重入,即设置EX0或EX1位。
一般进入中断处理程序时应保护现场,在退出前恢复现场。
另外中断处理程序中涉及到关键数据的设置时应关闭中断,即设置时不允许中断重入。
三、实训设备:微机一台、实训箱、THKL-C51仿真器、扁平数据线和一条串行数据通信线。
四、实训内容(2)从PROTEUS库中选取元器件单击“P”按钮,在其左上角“Keywords”(关键字)一栏中输入以下元器件的关键字,将以下元器件添加到对象选择器中。
①AT89C51:单片机②RES:电阻③LED-GREEN:绿色发光二极管④CAP、CAP-ELEC:电容、电解电容⑤CRYSTAL:晶振⑥74LS04:反相器⑦BUTTON:按钮⑧SOUNDER:喇叭图4-2 单击“P”按钮(3)放置元器件:按照原理图合理放置元器件。
(4)放置电源和地(终端)单击工具栏中的终端按钮,在对象选择器中选取电源(POWER)、地(GROUND),用上述放置元器件方法分别放置于编辑区中。
(5)电路图连线系统默认自动扑捉和自动布线有效。
只要在两端点相继单击,便可画线。
画折线,在拐弯处单击;若中途想取消,可右双击或按“Esc”;若终点在空白初,左双击即可结束。
(6)设置、修改元器件的属性先右击后左击各器件,在弹出的属性编辑框中设置、修改它的属性。
(7)电气检测选择【Tools】/【Electrical Rule Check】菜单项,出现电气检查报告单,无错误,则用户可执行下一步。
实验五 流水灯与中断控制

一、实验设备(1)PC一台(2)单片机多功能试验板一块(3)KEIL uVision 4.22 集成开发环境、STC-ISP烧录软件、串口调试助手(电子工程基础实验QQ群文件共享)二、实验目的(1)了解单片机的4组I/O端口(2)掌握通过串口通信控制LED灯的方法(3)复习巩固C语言知识三、实验要求与任务使用KEIL uVision 4软件新建一个C51内核工程,步骤如下:(1)在”Soruce Group 1”新建C程序文件,文件名:main.c(2)在工程中新建两个组,名称分别为com和myled.(3)在工程文件对应的目录下,再新建两个目录,com文件夹和myled文件夹。
(4)在工程中新建四个文件,分别名称com.c, com.h, myled.c, myled.h,前两个文件保存在com文件夹中,后两个文件保存在myled文件夹中。
(5)将共享资料的“单片机开发板资料\学习版资料\例程\LED\driver”目录及文件拷贝到工程文件所在的目录中,并在工程中新建driver组,把driver文件夹下的两个文件添加进去。
(提示,我们要使用它提供的延时函数)文件的组织结构如下图:实验任务:通过串口助手输入分别输入字符‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,分别完成以下功能:输入’0’,打开led1到led5共5个灯,它们处于常亮状态。
输入’1’,关闭led1到led5共5个灯。
输入’2’,led1到led5这5个灯间隔0.5秒轮流点亮(流水灯效果)。
输入’3’,led1、led3、led5这3个灯间隔0.5秒轮流点亮(流水灯效果)。
输入’4’,led2、led4这3个灯间隔0.5秒轮流点亮(流水灯效果)。
四、示例代码1. 实例代码.c文件(不需要修改,可参考主程序中如何调用它里面的函数)4. led.c文件5.myled.h 文件五、实验报告要求实验报告文档以word为格式,包含:1.请附上你完成部分的实验代码。
中断控制LED流水灯 16页PPT文档

应和中断服务);
待CPU将事件B处理完毕后,再回到原来事件A被中
断的地方继续处理事件A(中断返回)。 事件A 什么
中断过程
中断请求→中断响应→中断服务→中断返回
事件B
是中
断 事件B的 ? 处理过程
中断源
80C51单片机有5个中断源。见下表
中断源 外部中断 INT 0 定时器T0中断 外部中断 INT 1 定时器T1中断 串行口中断
}
主程序流程图 图
子程序流程
关键程序代码(一)
void main(void)
{
TMOD = 0x01;
TH0 = (65536 - 10000) / 256;
TL0 = (65536 - 10000) % 256;
TR0 = 1;
ET0 = 1;
PT0 = 1;
IT0 = 1;
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
AT89C51
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
TR0 = 1;
ET0 = 1;
//允许T0中断
PT0 = 1;
//设定T0为高优先级
IT0 = 1;
EX0 = 1;
EA = 1;
//外部中断输入下降沿有效 //允许X0中断 //开放总中断
temp = 0xfe;
P1 = temp;
while(1);
基于STC89C52的键控花样流水灯

EA = 1;
IT0 = 1;
while(1)
{
if(label == 0)//从左至右流;i++)
{
delayms(100);
if(label == 0)
P1 = _crol_(P1,1);
else break;
}
}
if(label == 1)//从右至左流水灯
if(label == 4)
P1 = (~(0xfe << i));
else break;
}
}
}
}
void INT_0() interrupt 0
{
delayms(10);
if(BUTTON == 1) return;
label++;
if(label == 5)
label = 0;
//以上三句话也可以通过label = (label+1)%5;来代替
{
P1 = 0x7f;
for(i=0;i<8;i++)
{
delayms(100);
if(label == 1)
P1 = _cror_(P1,1);
else break;
}
}
if(label == 2)//对向流水灯
{
a = 0x7f; b = 0xfe;
for(i=0;i<8;i++)
{
P1 = a&b;//&表示按位与
#define uint unsigned int
sbit BUTTON = P3^2;
uchar label = 0;
最新单片机课程设计 外部中断控制流水灯变化

单片机课程设计报告设计题目:外部中断控制流水灯变化姓名一.设计目的通过学习单片机工作原理和各种工作方式及各管脚的功能,想通过P3口的俩管脚P3.2和P3.3第二功能,即外部中断来使CPU响应,达到控制流水灯的目的。
二.设计要求主程序实现8个灯从P2.0到P2.7依次亮灭,灯与灯之间间歇约0.5秒.当P3.3口是低电平时,灯从P2.7到P2.0依次亮灭,灯与灯之之间间歇约0.5秒.循环3次返回主程序.当P3.2口是低电平时,灯全灭,当P3.2口是高电平时,返回主程序.当同时使P3.2和P3.3为低电平时,灯全灭,因为外部中断0的优先级高于外部中断1的优先级. 三.MCS-51的硬件结构:四.P3口的状态P3口是双功能口,默认为第一功能(通用I/O口),通过编程可设置第二功能。
五.中断传送方式:中断方式则是在外设为数据传送做好准备之后,就向CPU发出中断请求信号(相当于通知CPU)。
CPU接收到中断请求信号之后立即作出响应,暂停正在执行的原程序(主程序),而转去外设的数据输入输出服务,待服务完之后,程序返回。
CPU再继续执行被中断的原程序。
六.外部中断外部中断是指从单片机外部引脚输入请求信号。
输入/输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为外部中断源,从引脚INT0、INT1输入。
外部中断请求、有两种触发方式:电平触发及跳变(边沿)触发。
这两种触发方式可以通过对特殊功能寄存器TCON编程来选择。
七.电路原理逻辑图如下:P3.3 P3.2 灯亮情况0 0 全灭0 1 全灭1 0 从P2.0到P2.7依次亮灭1 1 从P2.7到P2.0依次亮灭八.实验硬件电路图如下九.程序流程图如下十.程序清单ORG 0000HAJMP STARTORG 0003HAJMP SERORG 0013HAJMP SER1ORG 0030HSTART: MOV I E,#85H ;外部中断0和1都开MOV I P,#01H ;外部中断0级优先高MOV TCON,#00H ;低电平出发MAIN: MOV A,#0FEH ;P2.0口亮MOV P2,AACALL TIMO ;延时RL A ;循环左移SJMP RESSER1: MOV R2,#18H ;循环3次MOV A,#0EFH ;P2.7口亮SER2: MOV P2,AACALL TIMO ;延时RR A ;循环右移DJNZ R2,SER2RETITIMO: MOV R5,#50 ;延时子程序LOOP1: MOV R6,#100LOOP2: MOV R7,#50LOOP3: DJNZ R7,LOOP3DJNZ R6,LOOP2DJNZ R5,LOOP1RETSER: MOV P2,#0FFH ;灯全灭RETIEND十一.课程设计总结:通过本次课程设计,发现了学习中一些不足的地方,及时进行了补充学习。
推荐-基于单片机AT89C51控制的中断控制流水灯课程设计

宁波技师学院课程设计报告设计课题:单片机——中断控制流水灯摘要随着计算机技术的迅猛发展,计算机越来越广泛地应用于人们工作和生活的各个领域。
作为计算机领域里的一个重要方面单片机及其应用技术近年来也得到了长足的发展。
单片机被广泛地应用在工业自动化控制、智能仪器仪表、数据采集、通讯以及家用电器等领域。
单片机以其与通用微机完全不同的发展模式,不断满足工业测控、恶劣环境下可靠运行的要求。
、单片机已成为现代工业领域中不可缺少的重要角色。
单片机技术的发展速度十分迅速,速度更快、功能更强的16位、32位单片机以及陆续问世,但8位机,特别是新一代高档8位机具有优异的性能,已能满足大部分单片机应用领域的需要,另外,它还具有可靠性高、外围芯片配套、系统结构简单、应用软件丰富、技术成熟、开发应用方便等优点,在单片机市场中依旧据有一定地位。
目录一总体设计方案1.1系统设计方案流水灯系统主要由:复位电路、晶振电路、数码管显示电路、LED灯指示电路、速度与方式选择电路等部分电路组成。
各器件的选用:1 单片机的选用:单片机芯片选用A T89C51。
2数码管的选用:数码管选用共阳极数码管。
3晶振的选用:晶振选用的是12MHZ。
1.2系统结构框图框图如图1.2-1。
图1..2-1系统结构框图二系统硬件设计复位电路、晶振电路、数码管显示电路迪电路组成。
2.1晶振电路图2.1-1晶振电路内部方式时钟电路如图2.1-1所示。
在XTAL2和XTAL2引脚上外接定时元件,内部振荡电路就产生自激振荡。
2.2复位电路图2.2-1按键复位电路按键手动复位有电平方式和脉冲方式。
而此次选用的便是按键电平复位。
按键电平复位是通过复位端经电阻与Vcc接通而实现的。
电路如图2.2-1所示。
2.3数码管电路图2.3-1数码管电路此电路可以十分清楚的体现出当前LED指示灯所运行的模式。
图2.3-2数码管2.4LED指示电路与模式电路图2.4-1 LED指示电路此电路可以明显的反映出LED的运行状态,如图2.4-1所示。
用按键(采用外部中断0或1的方式)控制彩灯的运行
实验一标志寄存器实验目的:用按键(采用外部中断0或1的方式)控制彩灯的运行。
实验方法:1、通过在在中断过程中,设置标志变量flag(取值为0表示左移,1表示右移,2自定义)来判断按键被按下,每次按下切换一种显示方式。
2、当flag>2,则被清零,主程序按照flag的取值,分别执行不同的显示方式。
3、为了确保外部中断信号可靠,可对按键采取软件消抖处理。
实验程序编写:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuint flag=0;uchar a[]={0xe7,0xdb,0xbd,0x7e};uchar LED=0xfe;uint i;void delay(unsigned int x) //定义延时函数{uchar i;while(x--){for(i=0;i<125;i++) //通过循环实现延迟功能{;}}}void intersvr0(void) interrupt 0 using 1 //INTO中断服务程序{flag=flag+1;if (flag>=3)flag=0;}void main(void){P0=0x00; //初始化p0口保持LED全亮EA=1; //开启中断总控制位IT0=1; //开启外部中断0控制位,采用边沿触发EX0=1; //允许中断0中断while(1){if (flag==0){P0=0x01;{LED=_crol_(LED,1);P0=LED;delay(500);}}if (flag==1){P0=0x80;{LED=_cror_(LED,1); P0=LED;delay(500);}}if (flag==2){{for (i=0;i<3;i++){LED=a[i];P0=LED;delay(500);P0=0xff;}}}}; //判断是否有按键按下,若有按键按下执行中断服务程序}实验结果:当运行后,通过按动一个键,彩灯在左移,右移和自定义花样(查表法)三种闪亮方式之间顺序切换。
键控双流水灯
用单片机的P3.2、P3.3各接一只按键,按下 一个按键时,实现彩灯左移花样,按下另一个按 键时,实现彩灯右移花样。
一 . 电路原理图
二、中断的基本概念
1.中断 当中央处理器CPU正在处理某事件时,与
它并行工作的外围部件或者外部设备由于工作 的需要或者出现故障,请求CPU迅速去处理, CPU暂停当前工作,转去处理所发生的事件, 处理结束之后,再回到被打断的地方继续原来 的工作。这样的过程称为中P K2
;转移到K2,避开右移指令
K1:RR A K2:
;显示代码右移
LCALL DELAY
;调用延时子程
SJMP K0
;返回,继续下一拍
INT0:CLR FX RETI
INT1:SETB FX RETI
;外中断0服务程序,方向标志位清0 ;中断返回
;外中断1服务程序,方向标志位 置1 ;中断返回
序的开始处
三 . 实训内容与步骤
1.电平触发方式键控流水灯程序
(1)参考程序
FX BIT 00H
;位地址00H命名为FX
ORG 0000H
LJMP MAIN
;转移到主程序
ORG 0003H 口
;外中断0服务程序入
LJMP INT0 程序
;转移到外中断0服务
ORG 0013H 口
;外中断1服务程序入
SETB EX0 ;开外中断0
SETB EX1 SETB EA
样。
;开外中断1
;开总中断 ;*******
以下和程序(1)完全一
MOV A,#0FEH;显示代码初值送累加器A
51单片机 流水灯 中断
//51单片机控制8个LED灯,左右循环移动,当外部中断0引脚的按键,第一次按下时,停在当前位置;第二次按下时,继续向下执行//***************************************************************************** *****************************************//注释:当主函数中在执行左右流水点亮LED灯的时候,按键按下(这是第一次按下,即奇数次),CPU暂时//中断当前点亮灯的工作,转去处理中断程序(c=1),处理完后,再返回原来中断的地方继续原来的工作,//因为这时候C为1,while(c);为真,为死循环状态,即是LED亮的状态停在当前位置;当按键按下(这是第二次按下,即偶数次)//CPU中断当前状态,转去处理中断程序(c=0),处理完后,再返回原来中断的地方继续原来的工作,//这时候C为0,while(c);为假,则程序继续向下执行。
//***************************************************************************** ******************************************#include<>#include<>//控制左右移的头文件void delay(int);//声明延时函数unsigned char i=0,a=0,b=0,c=0;//a为判断按键按下时奇数次还是偶数次void main(){P2=0xfe;IT0=0;// 低电平有效EX0=1;//开外部中断0EA=1; //开总中断while(1){for(i=0;i<7;i++)//左循环{b=1;while(c);//C为0时,顺序向下执行,为1时停在当前状态,P2=_crol_(P2,1);delay(500);}for(i=0;i<7;i++)//右循环{b=1;while(c);//C为0时,顺序向下执行,为1时停在当前状态,P2=_cror_(P2,1);delay(500);}}while(1);//等待中断}void int0_int(void) interrupt 0 //中断服务函数{delay(40);//延时一段时间,消除抖动if(b==1){b=0;a+=1;//按键为奇数次时,停在当前的状态;偶数次时,接着原来的状态继续往下执行if(a%2)c=1;elsec=0;}}void delay(int n)//延时函数{unsigned int i,j;for(i=0;i<n;i++)for(j=0;j<50;j++);}。
4外部中断按键控制流水灯综述综述
全局中断使能位:
EA :全局中断使能位(总允许位)。
=0:全局中断禁止;=1:全局中断允许。
中断服务函数
中断函数的写法
void 函数名() interrupt 中断编号
{
;
}
二、中断方式实现流水灯
1.硬件电路
中
断
方
式
实
现
流
水
灯
的
电
路
图
2.程序设计
实验:
1、利用库函数、逻辑运算实现流水灯。
部结构。
按键实物图
按键内部结构图
按键去抖动的硬件电路
二、按键设计
对于按键的使用一般有
两种方式,即独立式和矩阵
式(也称为行列式)。
独立式:
按键设
计简单,但
占用单片
机的硬件
资源较多。
矩阵式:
按键设
计复杂,但
却能从很
大程度上
节省单片
机的硬件
资源。
独立式按键结构电路图
任务实施
一
二
三
实现按键控制小灯
优先权排队问题。同一优先级的中断优先权排队,
由中断系统硬件确定的自然优先级形成,其排列如
所示:
3.中断处理
1)中断系统的功能
(2)
(1)
• 实现中断响应
和中断返回
• 实现优先级排队
(3)
• 实现中断嵌套
MCS-51单片机的中断系统结构
主程序
中断请求
中断响应
执行主
程序
断点
继续执行
主程序
执行
中断
处理
程序
中断返回
中断响应条件