定时中断流水灯程序电路图

实验设计
题目:LED流水灯设计
学生:
学号:
院(系):机电工程学院
专业:
指导教师:
2012年3月20日
1.设计目的:
1、通过本实验的设计初步了解单片机工作原理和各功能端口的相关设置;
2、掌握PROTEUS软件的安装和配置过程;
3、学会绘制电路原理图;
4、了解装载程序和调试;
5、PROTEUS VSM 与uVision3的联调;
6、用单片机仿真软件,并进行调试;
7、掌握单片机相应的编程步骤,了解走马灯相关的工作流程;
8、熟悉KEIL\PROTEUS等相关软件的使用。

2.任务要求:利用汇编语言(或C语言),实现8个单色LED灯的左、右循环显示,程序中运用定时中断。

3. 硬件电路图:
4.软件程序清单:
ORG 0000H ;起始地址
LJMP MAIN ;转入主函数
ORG 000BH ;定时中断0入口地址
LJMP PE ;转入中断程序
ORG 0100H ;主程序入口
MAIN: ;
MOV TMOD,#01H ;设置定时中断0的工作方式
MOV TL0,#0EFH ;添加初值
MOV TH0,#0D8H ;
SETB EA ;开总中断
SETB ET0 ;开定时中断
SETB TR0 ;开始计时
MOV P0,#00H ;点亮所有灯
MOV R0,#0C8H ;设定定时次数,两百次10ms*200=2s QUAN: ;
MOV A,R0 ;
JNZ QUAN ;
MOV A,#0FEH ;
PAOMA: ;点亮第一个灯
MOV P0,A ;
MOV R0,#32H ;设定定时次数50次。

10ms*50=0.5s HJ:
CJNE R0,#00H,HJ ;定时器重复50次,延时0.5秒 RL A ;循环左移进行跑马灯
LJMP PAOMA ;
PE: ;定时器
MOV TL0,#0EFH ;
MOV TH0,#0D8H ;
DEC R0 ;用R0决定定时次数
RETI ;
END
5.分析总结:
本课题单片机控制预计8只LED按2种不同的模式滚动显示,模式选择由K1健控制,显示效果使用8个LED;设置三个按钮,K1为模式健,通过按键调整显示结果,要求有两种模式,即由左向右和由右向左;;K2为加速键,提高走马灯显示效果的速度;K3为减速健,放慢走马灯的显示效果速度。

但是在程序编写时发现若用汇编语言会造成逻辑混乱,课下准备用C语言编写控制方向、速度由五个开关控制的程序。

在设计过程中,接开关的端口要全部保持高电平,当按下一个开关时,输入一个低电平,即为状态改变信号。

不能同时有两个端口同为高电平。

中断功能让程序操作更加有效率,也让程序的应用更具有扩展性。

观察中断过程,从两个方面来看:一是中断执行所花费的时间;二是中断执行时,主程序的工作状况。

本次实验定时中断的最小时间间隔为10ms。

调试过程中问题很多,主要原因是对单片机结构的不熟悉,其次就是程序中的一些问题。

实际接线前应该先用protues仿真一下实验结果,确认无误后准备上课时接线。

合集下载

可中断LED流水灯课程设计

可中断LED流水灯课程设计

摘要本设计是可中断LED流水灯的设计。

整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED灯的动态设计和开发过程。

通过该芯片控制一个行LED灯按一定顺序亮,文中详细介绍了LED显示的设计思路。

单片机控制系统程序采用单片机汇编语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。

当然流水灯一般只是在用芯片做控制时起修饰作用,不能很好体现单片机的强大功能。

这里的流水灯只是单片机应用中的最基础的一方面。

LED显示以其组构方式灵活、显示稳定、功耗低、寿命长、技术成熟、成本低廉等特点在车站、证券所、运动场馆、交通干道及各种室内外显示场合的信息发布,公益宣传,环境参数实时,重大活动倒计时等等得到广泛的应用。

经实践证明,该系统显示误差小,性能稳定,结构合理,扩展能力强。

关键词:汇编语言;AT89C51单片机; LED;中断程序1绪论单片机的发展大致可分为四个阶段:第一阶段:单片机探索阶段。

以Intel公司MCS-48,Motorola公司6801为代表,属低档型8位机。

第二阶段:单片机完善阶段。

以Intel公司MCS-51,Motorola公司68HC05为代表,属高档型8位机。

此阶段,8位单片机体系进一步完善,特别是MCS-51系列单片机在世界和我国得到了广泛的应用,奠定了它在单片机领域的经典地位,形成了事实上的8位单片机标准结构。

第三阶段:8位机和16位机争艳阶段,也是单片机向微控制器发展的阶段。

此阶段Intel公司推出了16位的MCS-96系列单片机,世界其他芯片制造商也纷纷推出了性能优异的16位单片机,但由于价格不菲,其应用面受到一定的限制。

相反MCS-51系列单片机,由于其性能价格比高,却得到了广泛的应用,并吸引了世界许多知名制造厂商,竟相使用以80C51为内核,扩展部分测控系统中使用的电路技术、接口技术、A/D、D/A和看门狗等功能部件,推出了许多与80C51兼容的8位单片机。

中断控制LED流水灯 16页PPT文档

中断控制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);

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。

二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。

2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。

3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。

5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。

三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。

当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。

E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。

综上,画出实验电路原理图。

2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。

图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。

实验5程序流程图如图3-5,3-6所示。

图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。

《STM32单片机仿真开发实例》教学课件 4.3 流水灯之定时器延时(中断方式)

《STM32单片机仿真开发实例》教学课件 4.3  流水灯之定时器延时(中断方式)

任务要求:
仿真电路如图所示,任务要求同3.3,即实现八个LED的流水灯效果,要求延时必须 通过定时器中断方式实现。
4.3.2 任务程序的编写
首先是工程的图形化配 置,将PC0~PC7全部设为 “GPIO_Output”模式,计 算并设定定时器参数,如 右图所示。
打开定时器中断功能,在定时器配置页面中,选择“NVIC Settings”(NVIC设定) 页,将“TIM3 global interrupt”(定时器3全局中断)打勾,如图所示。
例程:
//TIM3溢出中断回调 void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef *htim) { if(htim==&htim3) { … } }
(现场操作演示...)
技能训练(选做):
修改任务3.1程序,将延时程序由软件延时改为定时器溢出中断方式。
4.3 流水灯之定时器延时(中断方式)
能力目标:
在4.2节的基础上,进一步理解单片机定时器中断的触发原理,掌握单片机定时器延 时中断程序的编制方法。
任务要求:
仿真电路如图所示,任务要求同3.3,即实现八个LED的流水灯效果,要求延时必须 通过定时器中断能,中断发生的时刻为定时器溢出的时刻,即定时器 一个计数周期完成的时刻。
To be continued...
本次任务需要用到的新的API函数有: ① 定时器启动函数(开中断) HAL_TIM_Base_Start_IT
例程:
//运行定时器TIM3并开启对应中断 if( HAL_TIM_Base_Start_IT(&htim3) != HAL_OK ) { Error_Handler(); }

单片机课程设计外部中断控制流水灯变化

单片机课程设计外部中断控制流水灯变化

单片机课程设计外部中断控制流水灯变化-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN单片机课程设计报告设计题目:外部中断控制流水灯变化姓名一.设计目的通过学习单片机工作原理和各种工作方式及各管脚的功能,想通过P3口的俩管脚和第二功能,即外部中断来使CPU响应,达到控制流水灯的目的。

二.设计要求主程序实现8个灯从到依次亮灭,灯与灯之间间歇约秒.当口是低电平时,灯从到依次亮灭,灯与灯之之间间歇约秒.循环3次返回主程序.当口是低电平时,灯全灭,当口是高电平时,返回主程序.当同时使和为低电平时,灯全灭,因为外部中断0的优先级高于外部中断1的优先级.三.MCS-51的硬件结构:四.P3口的状态P3口是双功能口,默认为第一功能(通用I/O口),通过编程可设置第二功能。

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

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

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

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

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

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

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

七.电路原理逻辑图如下:灯亮情况00全灭01全灭10从到依次亮灭11从到依次亮灭八.实验硬件电路图如下九.程序流程图如下十.程序清单ORG 0000HAJMP STARTORG 0003HAJMP SERORG 0013HAJMP SER1ORG 0030HSTART: MOV IE,#85H ;外部中断0和1都开MOV IP,#01H ;外部中断0级优先高MOV TCON,#00H ;低电平出发MAIN: MOV A,#0FEH ;口亮MOV P2,AACALL TIMO ;延时RL A ;循环左移SJMP RESSER1: MOV R2,#18H ;循环3次MOV A,#0EFH ;口亮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十一.课程设计总结:通过本次课程设计,发现了学习中一些不足的地方,及时进行了补充学习。

实验五 广告流水灯中断控制

实验五 广告流水灯中断控制

实验五广告流水灯中断控制一、实训目的1、用外部中断源的中断控制方法控制发光二极管亮灭。

2、学习外部中断技术的基本使用方法。

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

二、实训预备知识1、单片机中断系统包括5个中断请求源,4个中断控制寄存器IE、IP、TCON、SCON用来控制中断的请求、中断的开关和各种中断源优先级的确定。

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

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

一般进入中断处理程序时应保护现场,在退出前恢复现场。

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

三、实训设备:微机一台、实训箱、THKL-C51仿真器、扁平数据线和一条串行数据通信线。

四、实训内容图4-1 中断控制信号灯电路原理图(1)P1为输出口,INT0为电平触发接开关产生中断请求。

要求:主程序8个发光二极管同时闪烁,当发生中断时使8个发光二极管循环点亮,结束时再返回主程序。

(2)P1为输出口,INT0为电平触发接单次脉冲源产生中断请求。

要求:主程序8个发光二极管循环点亮,当发生中断时循环暂停,小喇叭响,松开脉冲源后再返回主程序8个灯循环亮。

五、程序设计步骤1、PROTEUS电路设计中断控制广告流水灯电路原理图如图4-1所示,设计在PROTEU ISIS平台中进行。

(1)新建设计文件菜单【file】/【New Design】,出现选择模板窗口,选中”DEFAULT”模板,再单击”OK”按钮,在文件名框中输入文件名,单击”保存”按钮,则保存新建设计文件,其后缀自动为.DSN。

(2)从PROTEUS库中选取元器件单击“P”按钮,在其左上角“Keywords”(关键字)一栏中输入以下元器件的关键字,将以下元器件添加到对象选择器中。

①AT89C51:单片机②RES:电阻③LED-GREEN:绿色发光二极管④CAP、CAP-ELEC:电容、电解电容⑤CRYSTAL:晶振⑥74LS04:反相器⑦BUTTON:按钮⑧SOUNDER:喇叭图4-2 单击“P”按钮(3)放置元器件:按照原理图合理放置元器件。

编程训练二:使用T0定时器中断服务程序实现流水灯控制

编程训练二:使用T0定时器中断服务程序实现流水灯控制
单片机学习实例
#include <reg52.h>//加入头文件
#include <intrins.h>
#define uchar unsigned char//宏定义
#define ulong unsigned long
ulong delay_flag=0;//用于较精确延时的变量
void init_time0();//定时器0初始化函数
void main()//主函数定义
{
uchar a=0xfe;//定义一个给P0口赋值的变量a,并对其赋初值init_time0();//调用初始化函数
while(1)//永远循环
{
P0=a;//将a值赋给P0
delay_flag=20000;//延时2S
while(delay_flag);
a=_crol_(a,1);//将a循环左移1位,实现彩灯流水
}
}
void time0_pwm() interrupt 1//定时器0中断服务程序
{
if(delay_flag)
delay_flag--;
}
void init_time0()//定时器初始化函数
{
TMOD=0x02; //采用定时器模式2,8位精确定时
TL0=156; //定时器赋初值;100US中断一次,这里的晶振是11.0592M;若晶振为12M,则选用156;
TH0=156;
EA=1; //开总中断
ET0=1; //开定时器中断
TR0=1 ;//定时器开始运行
}。

任务三流水灯定时控制1精品PPT课件

3.1 中断系统
以定时方式 控制流水灯
3. 2 定时器/计数器
3.1 中断系统
本节主要介绍中断的概念、一个 完整的中断过程所包含的几个过程、 MCS-51单片机是如何来实现中断的? 我们怎么利用MCS-51单片机的中断 资源为我们的应用系统的中断服务
3.1.1中断的概念
计算机设置中断的目的:
在CPU与外设交换信息时,存在着一个快 速的CPU与慢速的外设间的矛盾。为解决这 个问题,发展了中断的概念。
TF1
TF0
IE1 IT1 ITEI0 IRT0I
3)中断标志的产生:
对于定时/计数器0、1的中断标志TF0、TF1是在加1计数器加 到全零时自动将TF0、TF1置位(置1)
加1计数器
TF0
时钟脉冲
T0定时/计数器
对于串行口的中断标志RI和TI的产生:
当串行口作为接收数据时,当接收允许时,根据设置的方式不 同,当连续接收到8位(或9位)数据时,RI置1;
2) 中断优先级结构
MCS一51中断系统具有两级优先级它们遵循下列两条基本规则:

(1)低优先级中断源可被高优先级中断源所中断,而高优先级中断源不能被任 何中断源所中断。
(2)一种中断源(不管是高优先级或低优先级)一旦得到响应,与它同级的中断 源不能再中断它。
(3)当同时收到几个同一优先级的中断时,响应哪一个中断源取决于内部查询 顺序。其优先级由高到低排列如下:
3.1.2 MCS-51单片机中断系统
高级中断请求
自然优先级
IT0=0
INT0 IT0=1
T0
IT1=0
INT1 IT1=1
T1
TXD RXD
当串行口作为发送数据时,当发送完一帧数据(根据设置的方 式不同,当连续发送了8位(或9位)数据时),TI置1。

中断方式流水灯设计

int b[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void InitInt0(void);
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k; //定义3个无符号字符型数据。
for(i=20;i>0;i--) //作循环延时
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void InitInt0(void)
{
IT0 = 1;//设置中断0为跳变触发方式
IT1 = 1;//设置中断1为跳变触发方式
IE = 0x85;//CPU开放中断,允许INT0、INT1中断
IP = 0x04;
}
void Int0Interrupt(void) interrupt 0 // 实现要求子程序(key1按下时实现逐盏点亮,逐盏灭掉)
temp=0xfe;
P0=temp; P2=temp;P3=temp;delay02s();
for(y=1;y<8;y++)
{
u=temp<<y;
v=temp>>(8-y);
P0=u|v;
P2=u|v;
P3=u|v;
delay02s();
}
for(y=1;y<8;y++)
{
u=temp>>y;
v=temp<<(8-ykey2=P1^2;
sbit key3=P1^4;
sbit W1=P1^5;
sbit W3=P1^7;
unsigned char i,j,k,m,n,temp,y,v,u;

定时器控制流水灯

定时器控制流水灯The Standardization Office was revised on the afternoon of December 13, 2020成绩信息与通信工程学院实验报告(操作性实验)课程名称:微机原理与微控制器应用实验题目:c51单片机的定时器实验指导教师:班级: 学号:学生姓名:一、实验目的和任务1.掌握定时器中断的编程方法。

2.掌握keil C51集成开发环境在硬件仿真条件下各参数的设置。

二、实验仪器及器件硬件:电脑一台、微机原理与单片机试验箱:51开发板、开关及LED显示单元、导线若干软件:keil uVision4三、实验内容及电路图利用实验板上的八个LED灯作显示,利用定时器中断编写中断一次为50ms的定时程序,控制单片机定时器进行定时,总定时时间为。

四、流程图与程序#include ""#include<>int temp=0x01,num=0;void T0Int() interrupt 1{TH0=(65536-45872)/256;TL0=(65536-45872)%256;num++;if(num==15) {num=0;P1=_crol_(temp,1);temp=P1;}}void main(){EA=1;ET0=1;TMOD=0X01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;TR0=1;while(1);}五、实验结果八个LED灯由左往右依次亮起,并且每个LED灯点亮时间大约为。

六、实验数据分析及处理从实验现象来看,LED灯从左到右依次点亮,符合实验要求,说明实验操作正确,实验结果正确。

七、实验结论与感悟(或讨论)。

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