多按键花样流水灯设计

合集下载

流水灯花样变换

流水灯花样变换

【018】流水灯花样变换 [51]实验参考: 笨笨工作室-实验九、流水灯花样变换(中断)。

(查看)实验板: FB51A。

(查看)实验目的: 掌握在中断程序中处理多个按键动作的响应方法。

实验现象: 进入程序后,程序作双向流水灯;按下k1键,程序作左向流水灯; 按下k2按键程序作右向流水灯; 按下k3键两个亮点从两边向中间移动; 按下k 3键两个亮点从中间向两边移动。

在上个实验(016中断的应用中对断点的保护)中,只用了一个按键触发中断, 而本次实验中断程序要对多个按键动作进行响应,灯光变换的花样有4种,用4个按键k1,k2,k3,k4切换。

显示部分电路:键盘部分电路(图中K0对应程序中K1……K3对应K4):思路:主程序中执行左右流水灯,在中断服务程序中,首先读取按键状态,然后延时10ms,再次读取按键状态。

把两次获得的按键状态比较,如果不同,就表示是抖动,退出中断;否则,就去判断是哪个按键按下。

如果是k1,就执行左跑马灯;如果是k2,就执行右跑马灯;如果是k3,就执行亮点向中间移动;如果是k4,就执行亮点向两边移动。

值得注意的是: 在中断服务程序中,应该尽量的使得任务简化,不要让中断服务程序作过多复杂的任务,而要尽量把这些复杂的任务放到主程序中间去完成。

本着这一原则, 可以采用置标志位的方法。

即在主程序中设定一个标志位,不断的对这个标志进行查询:如果是标志为状态1,就执行双向跑马灯;如果是状态2,就执行左向跑马灯;如果是状态3,就执行右向跑马灯,依次类推。

而在中断服务程序中,只需要进行如下工作:去抖动,键识别,改变标志位。

这里我们用寄存器r0的内容作为标志,当它里面的内容是0ffh时,执行左右跑马灯程序;为01h时,执行左跑马灯;02h时执行右跑马灯;03h时执行两个亮点向中间移动;04h时执行两个亮点象两边移动。

下面是主程序和中断程序的流程图程序如下:org 0000hljmp startorg 0003horg 0020hstart: mov r0, #0ffh ; 对r0赋值,r0为所设标志位setb ea ; 开中断setb ex0 ; 允许外部中断0申请中断setb it0 ; 外部中断0为跳变方式触发mov sp, #70h ; 设置中断loop0: cjne r0, #0ffh, loop1 ; r0不为ff, 转到loop1ajmp main_light ; 否则执行左右流水灯loop1: cjne r0, #01h, loop2 ; r0不为01, 转到loop2ajmp k1_light ; 否则执行左向流水灯loop2: cjne r0, #02h, loop3 ; r0不为02, 转到loop3ajmp K2_light ; 否则执行右向流水灯loop3: cjne r0, #03h, loop4 ; r0不为03, 转到loop4ajmp k3_light ; 否则执行双亮点向中间移动loop4: cjne r0, #04h, loop5 ; r0不为04, 转到loop5ajmp k4_light ; 否则执行双亮点向两边移动loop5: ajmp loop0 ; 返回重新查询;===========================中断服务程序===========================ext1: clr ea ; 关中断push accpush pswmov a, p1 ; 读入键值anl a, #0fh ; 屏蔽高四位mov 30h, a ; 键状态存入30hlcall del10msmov a, p1 ; 再次读入键值anl a, #0fhcjne a, 30h, pass ; 两次键值不同,是抖动,退出中断ajmp k1_check ; 如果相等,进行键识别; 键识别部分k1_check: cjne a, #0eh, k2_check ; 不是k1, 判断是不是k2mov r0, #01h ; 是k1, 置标志为01ajmp passk2_check: cjne a, #0dh, k3_check ; 不是k2, 判断是不是k3mov r0, #02h ; 是k2, 置标志为02ajmp passk3_check: cjne a, #0bh, k4_check ; 不是k3, 判断是不是k4mov r0, #03h ; 是k3, 置标志为03k4_check: cjne a, #07h, pass ; 不是k4, 退出中断mov r0, #04h ; 是k4, 置标志为04ajmp passpass: pop psw ; 现场恢复pop accsetb ea ; 开中断reti ; 中断返回;==================================================================== ==main_light: mov r7, #08h ; 左右流水灯程序mov r6, #06hmov a, #0fehl_loop: mov r1, a ; r1保存现在亮点位置,做样式变换时从该处开始mov p0, alcall del100msrl adjnz r7, l_loopmov a, #0bfhr_loop: mov r1, amov p0, alcall del100msrr adjnz r6, r_loopajmp loop0k1_light: mov r1, a ; 左向流水灯mov p0, alcall del100msrl amov r1, aajmp loop0k2_light: mov r1, a ; 右向流水灯mov p0, alcall del100msrr amov r1, aajmp loop0k3_light: mov p0, #07eh ; 双亮点向中间移lcall del100msmov p0, #0bdhlcall del100msmov p0, #0dbhlcall del100msmov p0, #0e7hlcall del100msajmp loop0k4_light: mov p0, #0e7h ; 双亮点向两边移lcall del100msmov p0, #0dbhlcall del100msmov p0, #0bdhlcall del100msmov p0, #07ehlcall del100msajmp loop0del10ms: ; 10ms延时子程序(12M) mov r5, #20temp1: mov r4, #248djnz r4, $djnz r5, temp1retdel100ms: mov r3, #0c3h ;100.036mstemp2: mov r2, #0ffh ;511usdjnz r2, $djnz r3, temp2retend用Proteus仿真通过,原理图如下:实验结果: 下载到板上测试, 结果与预计相符。

多按键花样流水灯课程设计

多按键花样流水灯课程设计

多按键花样流水灯前言当单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由CPU、RAM、ROM、定时/计时器、I/O接口电路通过应刷电路板上的总线连成一体的完整计算机系统。

[1]从1971年出现单片机的雏形开始,短短四十多年的时间里,单片机便社会各领域中得到了广泛的应用在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式控制系统,成为日后此系统中的核心部分。

由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。

今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。

目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。

本设计用AT89C51单片机自制了一款简易的花样流水灯,介绍了其硬件电路及软件编程方法,在实践中体验单片机的自动控制功能。

该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。

学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料。

本课题将以发光二极管作为发光器件,用单片机自动控制,实现一个简易的花样流水灯设计。

目录前言第一章设计目的及要求................................................................................................................................ - 4 -1.1 设计目的........................................................................................................................................... - 4 -1.2 设计要求........................................................................................................................................... - 4 -1.2.1 课程设计要求............................................................................................................................ - 4 -1.2.2 课程设计目的:........................................................................................................................ - 4 - 第二章方案设计............................................................................................................................................ - 5 -2.1 设计任务分析................................................................................................................................... - 5 -2.2 方案比较........................................................................................................................................... - 5 -2.3 硬件系统的设计要求....................................................................................................................... - 6 -2.3.1 实验总原理图............................................................................................................................ - 6 -2.3.2 硬件系统概述............................................................................................................................ - 6 - 第三章主要元器件介绍................................................................................................................................ - 7 -3.1 AT89C51单片机介绍........................................................................................................................ - 7 -3.1.1 AT89C51芯片简介..................................................................................................................... - 7 -3.1.2 引脚说明.................................................................................................................................... - 7 -3.2 晶振电路........................................................................................................................................... - 9 -3.2 LED发光二极管 ............................................................................................................................. - 10 - 第四章硬件电路设计................................................................................................................................ - 10 -4.1 主控系统......................................................................................................................................... - 10 -4.2 晶振时钟电路设计......................................................................................................................... - 11 -4.3 复位电路设计................................................................................................................................. - 11 -4.4 输入控制模块及中断控制模块设计 ............................................................................................. - 12 -4.5 输出控制模块设计......................................................................................................................... - 13 - 第五章软件设计及主要子程序.................................................................................................................. - 15 -5.2 主程序流程图................................................................................................................................. - 16 -5.3 主程序............................................................................................................................................. - 16 -5.4 中断子程序..................................................................................................................................... - 19 -5.5 LIGHT1跑马灯子程序................................................................................................................... - 19 -5.6 LIGHT2流水灯子程序................................................................................................................... - 19 -5.7 LIGHT3戏水灯子程序................................................................................................................... - 19 -5.8 延时子程序..................................................................................................................................... - 20 - 第六章系统仿真与调试.............................................................................................................................. - 21 -6.1 Keil编译.......................................................................................................................................... - 21 -6.2 Protues仿真平台简介..................................................................................................................... - 21 -6.3 跑马灯仿真演示............................................................................................................................. - 21 -6.4 流水灯仿真演示............................................................................................................................. - 23 -6.5 戏水灯仿真演示............................................................................................................................. - 24 -6.6 顺序循环执行三种花样灯............................................................................................................. - 25 - 第七章PCB板生成 ..................................................................................................................................... - 26 -7.1 PCB生成 ......................................................................................................................................... - 26 - 第八章课程设计总结.................................................................................................................................. - 27 -摘要:自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。

多按键花样流水灯设计实习报告

多按键花样流水灯设计实习报告

中国电子科技大学实习总结报告实习类型生产实习实习单位电子科学学院实习基地实习起止时间 201X年7月X日至202X年6月X日指导教师所在院(系)电子科学学院班级电信X班学生姓名学号202X年 6月 20日多按键花样流水灯设计一、设计目的与要求通过学习51单片机开发软件及其实验箱掌握51单片机与外部扩展芯片连接方式和外部芯片的初始化编程方法。

进一步学习掌握8031内部计数器的使用和编程方法。

进一步掌握中断处理程序的编程方法。

利用74LS273扩展8031的I/O口通过编程实现流水灯实验。

1、设计目的(1)掌握51系列单片机的基本硬件结构及工作原理;(2)掌握51系列单片机的汇编语言及基本程序设计方法;(3)学习并掌握使用51系列单片机开发控制系统的基本步骤及方法。

2、设计要求(1)选择一个I/O口控制八只流水灯。

(2)设置四个按键K1—K4,按下K1跑马灯,K2流水灯,K3鸳鸯戏水,K4则循环三种控制方式。

(3)跑马灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。

(4)流水灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。

(5)鸳鸯溪水灯:共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。

然后继续上次操作。

二、单片机开发板原理整个系统工作由软件程序控制运行,根据需要,可以上电后系统经过初始化,进入用户设定模式状态。

基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。

本方案以AT89C52单片机作为主控核心,与驱动等模块组成核心主控制模块。

在主控模块上设有晶振电路和8个LED显示二极管,根据需要编写若干种亮灯模式,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号。

多花样流水灯

多花样流水灯

4 一个流水灯闪烁2次后,从左往右移
5 左右各亮一个灯 往中间移 前一个灭
6 第几个灯闪烁几次 往右移:如 第一个闪1次,第二个闪2次……第八个闪8次
7 全部led灯闪烁一次后亮两个流水灯从左往右
8 左右各亮一个灯往中间移前一个不灭 全亮后 从中间往两边灭
9 一个流水灯从左往右移 一直亮,全亮后 一边往另一边灭,直到灭,接着重复
多花பைடு நூலகம்流水灯
只用一个数码管显示0-9 初始值为0
用两个按钮一个加 一个减 最多加到9 最底减到0
数码管显示
0:一个流水灯从左往右跑 前一个灭
1 一个流水灯从右往左跑 前一个灭
2 流水灯从左往右跳着亮 第一次7,5,3,1 第二次8,6,4,2,第三次重复第一次
3 两个流水灯来回跑 先从左往右 再从右往左

单片机课程设计多功能花样流水灯设计

单片机课程设计多功能花样流水灯设计
六、心得与体会
此次单片机课程设计我学到了许多,第一次学会了软硬结合做一个项目出来,自我感觉非常自豪,但是由于自我能力的不足,我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源?懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。比如在设计显示程序时,一开始数码管的显示不全,然后就不断地调试延时程序,结果数字缺定在0不动,经过反复的调试终于将程序调试成功。而且要学会拓展自己思路,一开始只做了一个速度显示,后来感觉挺好玩的,就做了花样显示。同时要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你思路,这样也为资料的保存和交流提供了方便。整个设计的过程中(还是碰到了一些问题。比如对于键盘的延时防抖问题不能较好的解决,对于编程的顺序及各模块程序调用掌握得还不够好,对于一些相关的应用软件没能熟练掌握。通过这几天的反复思考,以及参考网上的程序最终还是完成了设计。设计中我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,在动手的过程中,不仅能增强实践能力而且在理论上可以有更深的认识。
长 江 学 院
花样流水灯设计报告
课题:多功能花样流水灯
院系:机械与电子工程系
专业:自动化
班级:
学号:
姓名:
指导老师:
2016年12月20日
1、设计思路………………………………………………………………………3
2、流程图……………………………………………………………………………………..4
四、硬件设计思路和电路图7
关键词:STC89C52RCLED灯单片机花样流水灯

任务3-2 按键控制多种花样霓虹灯设计

任务3-2 按键控制多种花样霓虹灯设计
} else if(K4==0)
//再次检测到K3按下,第三种模式,高四位亮 //第一次检测到K4按下
{ delay(TIME);
//延时去抖动
if(K4==0) P1=0xf0; //再次检测到K4按下,第四种模式,低四位亮
}
举一反三2
采用8个发光二极管模拟霓虹灯的显示,通过1个按键控制霓虹 灯在四种显示模式之间切换,由P0口的P0.0引脚控制按键K。
//LED全灭
while(1)
{
if(K==0)
//第一次检测到按键K按下
{
delay(1200); //延时10ms左右去抖动
if(K==0)
//再次检测到按键K按下
{ w=0x01;
//流水灯显示字初值为0x01
for(i=0;i<8;i++)
{
P1=~w;
//显示字取反后,送P1口
delay(10000);
{
if(K==0)
//第一次检测到按键K按下
{
delay(1200); //延时10ms左右去抖动
if(K==0)
//再次检测到按键K按下
{ w=0x01;
//流水灯显示字初值为0x01
for(i=0;i<8;i++)
{
P1=~w;
//显示字取反后,送P1口
delay(10000);
//延时,一个灯显示时间
//根据i的值显示不同模式
//i=1显示第1种模式 //i=2显示第2种模式 //i=3显示第3种模式 //i=4显示第4种模式
while(!K); delay(1200);
判断按键是否弹起
//等待K键释放,!为逻辑非操作 //延时消除抖动

基于C51单片机4按键4种花样流水灯设计

基于C51单片机4按键4种花样流水灯设计
}
}
if(k4==0){
delay(10);
if(k4==0){
flag1=0;
flag2=0;
flag3=0;
flag4=1;
}
}
}
/**************主程序************************/
void main() {
while(1)
{keyscan();
if(flag1==1){
void delay(uint x)
{
uint i;
while(x--)
for(i=50;i>0;i--);
}
/******************判断按键***********************/
void keyscan()
{ if(k1==0)
{delay(10);
if(k1==0)
{
flag2=0;
基于c51单片机4按键4种花样流水灯设计单片机流水灯电路图单片机流水灯程序单片机流水灯按键控制流水灯单片机按键消抖程序单片机按键程序单片机按键控制led单片机按键电路单片机独立按键程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/************************流水灯花样设计********************/
uchar table1[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfc,0xff};/***从右到左逐一点亮反向灭之**/

多功能流水灯设计实验报告

多功能流水灯设计实验报告

多功能流水灯的设计一.设计要求:1.设计一8盏彩灯控制电路,使彩灯可以向左,向右流动、全亮、全灭四种功能。

功能变换可以手控也可以自控。

2.自动功能变换时间10秒。

二.总体方案构思:用Verilog语言来为单片机编程,通过编程来控制单片机各引脚在不同时间输出的不同的电平,进而控制个发光二级管的亮灭,以及控制流水灯的流速和流动方向。

1.使用按钮(auto)来控制手动或自动。

2.因为需要向左,向右,全亮,全灭四种功能,所以需要两个开关(btn1和btn2),分别用开和关两种状态表示,即(00,01,10,11)。

3.使用clk时钟来记时和触发事件。

三.实验器材:电脑和LED设备四.程序如下:module LED(clk,auto,btn1,btn2,led);input clk;input auto;input btn1;input btn2;output reg [7:0] led;reg [29:0] count;//1ns的计数器reg [3:0] count_10;//10秒的计数器reg [1:0] status;//记录当前LED灯流动的情况:"00左到右,01右到左,10全亮,11全灭"reg [1:0] type;reg second_1;//1秒的标志reg second_10;//10秒的标志initialbeginstatus<=2'b00;type<=2'b00;count<=30'b0;count_10<=4'b0;second_1<=1'b0;second_10<=1'b0;endalways@(posedge clk)//给出1s的标志和10s的标志beginif(count<25000000)//等待1s的到来begincount<=count+1;second_1<=0;second_10<=0;endelsebegincount<=0;second_1<=1;count_10<=count_10+1;if(count_10>=4'd10)beginsecond_10<=1;endendendalways@(posedge clk)//当自动的情况时,每10s变化一次流动状态beginif(auto==1 && second_1==1)beginif(second_10==1)beginif(status==2'b11)beginstatus<=2'b00;endelsebeginstatus<=status+1;endendendendalways@(posedge clk)//设置总变化状态等于手动或自动的状态beginif(second_1==1)beginif(auto==1)//自动begintype<=status;endelse//手动begintype<={btn1,btn2};endendendalways@(posedge clk)//根据type设置LED灯情况beginif(second_1==1)beginif(type==00)//左到右beginif(led==8'b00000000 || led==8'b11111111)beginled<=8'b10000000;endelsebeginled<=led>>1;endendelse if(type==01)//右到左beginif(led==8'b00000000 || led==8'b11111111)beginled<=8'b00000001;endelsebeginled<=led<<1;endendelse if(type==10)//全亮beginled<=8'b11111111;endelse//全灭beginled<=8'b00000000;endendendendmodule五.测试图如下:六.个人体会:在这次实验中收货颇丰,我学会了使用简单的Verilog语言,更加深入的学习了数字逻辑,还有更多的,我学会和同学们合作,讨论,去解决问题。

花样流水灯的设计

花样流水灯的设计

电子技术课程设计题目花样流水灯的设计院(系)名称信息工程学院专业班级10 专升本一班学号100310026学生姓名江涛指导教师2011年6月16日课程设计任务书2010—2011学年第二学期专业:电子信息工程学号:100310026 姓名:江涛课程设计名称:单片机原理及应用课程设计设计题目:花样流水灯设计完成期限:自2011 年 5 月30 日至2011 年 6 月10 日共 2 周一、设计依据城市夜景中,变幻多姿的霓虹灯历来是一道亮丽的风景。

利用单片机的自动控制功能,设计出相应不同的电路,可以实现彩灯不同模式的流水效果。

本设计通过对器件选择和线路连接进行分析讨论,结合相应的软件设计,达到相应的设计要求。

通过本设计,要求对多种流水灯的连线和程序控制方式进行讨论,并对软件设计能提出相应建设性意见,同时写出合格的课程设计论文。

二、要求及主要内容1.硬件电路设计89C51应用系统设计(晶振电路, 上电复位电路)P1口接八个彩灯P3.0---P3.7接8个开关提供8种控制方式,共实现20种不同的亮灯方式。

2.程序设计:先画流程图再根据流程图写程序(1)主程序设计:查询程序八个分支:停止,1灯流水,2灯流水,1灯间隔,2灯间隔,快速/慢速,循环,正流水/倒流水,每个子程序执行完后返回主程序。

(2)子程序设计:停止;1灯流水子程序设计;2灯流水子程序设计;1灯间隔子程序设计;2灯间隔子程序设计;0.5秒延时子程序;2秒延时子程序;正流水/倒流水子程序设计,循环子程序设计。

3.选芯片, 元件按设计连线4.完成子程序调试(1)实验板与PC机联机。

(2)输入子程序单步执行。

如果流水灯显示错误, 检查接口是否有误, 若无误再检查控制代码,直至符合要求(3)在延时后设断点, 每执行1次流水灯移动1次。

(4)连续执行完成1种流水灯的调试。

(5)改变控制代码逐个完成所有子程序。

5.完成总调试(1)输入主程序及子程序。

(2)按子程序调试执行, 先执行1灯流水, 成功后复位。

花样流水灯设计

花样流水灯设计

单片机课程设计课程单片机课程设计题目花样流水灯院系电气工程及其自动化系专业班级1112 班学生姓名温亿锋学生学号20147年6月15 日指导教师张瑛一丶任务设计一款以 AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。

二丶设计要求通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。

三丶设计方案本方案主要是通过对基于单片机的多控制、多闪烁方式的 LED 流水灯循环系统的设计,来达到本设计的要求。

其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、 LED 发光二极管和 5V 直流电源组成。

单片机流水灯循环控制系统硬件框图此设计方案中单片机的 P1 口接 5路按键控制电路,实现流水灯花型的切换功能;单片机的 P3.7 引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的 P2口接八路 LED 发光二极管组成流水灯电路,显示流水灯循环情况。

四丶系统硬件设计4.1 直流稳压电源电路花样流水灯1对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模 块,电源电路的稳定可靠是系统平稳运行的前提和基础。

电子设备除用电池供电 外,还采用市电(交流电网)供电。

通过变压、整流、滤波和稳压后,得到稳定 的直流电。

直流稳压电源是电子设备的重要组成部分。

本项目直流稳压电源为 +5V 。

直流稳压电源的制作一般有 3 种制作形式,分别是分立元件构成的稳压电 源、线性集成稳压电源和开关稳压电源。

下图为稳压电源采用的是三端集成稳压 器 7805 构成的正 5V 直流电源。

三端固定式集成稳压电源电路图AT89C51 单片机的工作电压范围: 4.0V---5.5V ,所以通常给单片机外接 5V 直流电源。

此处用 3 节 1.5V 的干电池供电。

按键选择控制流水灯效果设计

按键选择控制流水灯效果设计

按键选择控制流水灯效果设计设有一单片机控制系统:P2口上接有8只发光二极管。

二极管的阴极分别接P2口各I/O位,阳极分别连一500Ω的电阻接+5V的高电平电源。

通过按键选择8只发光二极管闪烁效果。

电路如下图所示。

流水灯仿真电路图流水灯系统结构框图主控模块流程图:0位闪烁 show()流程图:单只低位向高位移动show1()流程图: 单只高位向低位移动show2()流程图:单只来回移动show3()流程图:程序清单:#include<reg51.h>#define uchar unsigned char#define uint unsigned int//*************************//***** 延时Xms子函数*****void delay (uint x){uint i,j;for(i=x;i>0;i--)for(j=121;j>0; j--);}//**********show0()单只闪烁************void show0(){P2=0xfe; //送一个亮的控制信号字 delay(100); //延时P2=0xff; //送一个灭的控制信号字 delay(100); //延时}//********show1(); //单只左移*****************void show0(){uchar i , y ; //定义变量 i、 y 的类型,也就是能表达的最大数y=0x01 ; //设初始信号控制字for(i=0;i<8;i++) //重复执行8遍{}中的语句{P2=~y; //送一个控制信号字delay(100); //延时y=y<<1; //计算下一个控制信号字}}//**********show2()单只右移***************void show1(){uchar i , y ; //定义变量 i、 y 的类型,也就是能表达的最大数y=0x80 ; //设初始信号控制字for(i=0;i<8;i++) //重复执行8遍{}中的语句{P2=~y; //送一个控制信号字delay(100); //延时y=y>>1; //计算下一个控制信号字}}//**********show3()单只来回跑***************void show3(){uchar i , y ; //定义变量 i、 y 的类型,也就是能表达的最大数 y=0x01 ; //设左移初始信号控制字for(i=0;i<8;i++) //重复执行8遍{}中的语句{P2=~y; //送一个控制信号字delay(100); //延时y=y<<1; //计算下一个控制信号字} //左移完y=0x40 ; //设右移初始信号控制字for(i=0;i<6;i++) //重复执行8遍{}中的语句 {P2=~y; //送一个控制信号字delay(100); //延时y=y>>1; //计算下一个控制信号字} //右移完}//***** 主函数 main *****void main( ){uchar y; //说明y可以最大表示11111111B(255) while(1){y=P0;switch (y){case 0xfe:show0(); //单只闪烁break;case 0xfd:show1(); //单只左移 break;case 0xfb:show2(); //单只右移 break;case 0xf7:show3(); //单只来回跑break;default:break;}}}。

花样流水灯设计

花样流水灯设计

花样流水灯设计单片机课程设计课程题目院系电气工程及其自动化系专业班级学生姓名学生学号2022年6月15日指导教师一丶任务设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。

二丶设计要求通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。

三丶设计方案本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。

其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED发光二极管和5V直流电源组成。

单片机流水灯循环控制系统硬件框图此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。

四丶系统硬件设计4.1直流稳压电源电路对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。

电子设备除用电池供电外,还采用市电(交流电网)供电。

通过变压、整流、滤波和稳压后,得到稳定的直流电。

直流稳压电源是电子设备的重要组成部分。

本项目直流稳压电源为+5V。

直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。

下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。

三端固定式集成稳压电源电路图AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V直流电源。

此处用3节1.5V的干电池供电。

4.2单片机最小系统要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。

多功能流水灯设计毕业设计

多功能流水灯设计毕业设计

多功能流水灯设计毕业设计毕业设计:多功能流水灯设计一、引言多功能流水灯是一种常见的电子灯具,其特点是能够根据预定的规律产生流动的灯光效果。

在本毕业设计中,我们将设计一款具有多种功能的流水灯,包括不同的灯光模式切换、亮度调节等功能。

本设计将以STM32微控制器作为核心控制器,并通过外部电路和软件编程实现多种流水灯效果。

二、设计方案1.硬件设计本设计中,我们将使用STM32微控制器作为核心控制器,具有丰富的GPIO引脚和定时器功能。

通过连续改变GPIO引脚的电平状态,我们可以实现流水灯的亮灭效果。

同时,我们还将使用一些外部元件,如电阻、电容和三极管等,来实现灯光的亮度调节和控制。

2.软件设计本设计将使用Keil C编译环境进行软件开发。

首先,我们需要编写相关的GPIO和定时器驱动程序,实现对流水灯的控制。

其次,我们还需要编写额外的模式切换和亮度调节功能的程序,通过按键或旋钮等输入方式来改变流水灯的工作模式和亮度。

三、具体实现1.灯光模式切换功能我们将设计一个菜单界面,通过按键输入来切换不同的流水灯工作模式。

在菜单界面中,用户可以选择要显示的流水灯模式,如单色流水灯、多色流水灯等。

通过编写相应的程序代码,我们可以通过按键触发事件来实现模式的切换。

2.亮度调节功能我们将使用旋钮或调光器等输入方式来实现对流水灯亮度的调节功能。

通过读取旋钮当前的位置或调节器的电阻值,我们可以确定亮度的大小。

然后,我们将通过改变PWM信号的占空比来实现对流水灯亮度的控制。

3.故障检测和保护功能为了保证流水灯在长时间使用过程中的稳定性和安全性,我们还将设计故障检测和保护功能。

例如,我们可以通过检测电流和电压等参数来判断灯管是否损坏,并及时发出警报提醒用户更换。

同时,我们还可以设置过压、过流和过载保护功能,以防止灯具因异常情况而损坏。

四、测试与验证在完成硬件和软件设计后,我们将进行测试和验证。

首先,我们将验证流水灯的各项功能是否正常工作,包括模式切换、亮度调节等。

单片机课程设计—8个按键控制8个LED自动设定控制流水灯

单片机课程设计—8个按键控制8个LED自动设定控制流水灯

单片机课程设计—8个按键控制8个LED自动设定控制流水灯东北石油大学实习总结报告实习类型生产实习实习单位东北石油大学实习基地实习起止时间 7月7日至 7月16日指导教师刘东明、孙鉴所在院(系)电子科学学院班级电子科学与技术15-2 学生姓名学号7月 16日目录第1章按键控制流水灯设计 (1)1.1 实习目的 ..................................................... 错误!未定义书签。

1.2 实习要求 ..................................................... 错误!未定义书签。

第2章电路工作原理 (2)2.1 STC89C52单片机工作原理 (2)2.2 LED工作原理 (3)2.3按键工作原理 (3)2.4整体电路图 (5)2.5 本章小结 (6)第3章 C程序设计 (7)3.1 程序设计流程图 (7)3.2实验结果 (8)3.3 本章小结 (9)总结及体会 (10)参考文献 (11)附录 (12)第1章按键控制流水灯设计1.1实习目的本次实习以STC89C52单片机为控制核心。

经过它实现对八盏LED灯的亮灭进行设定,并在设定完成之后能够按照之前的设定实现流水灯效果。

外部电路为按键控制流水灯。

P0口控制八盏灯,P1口控制矩阵键盘,P2口控制独立按键,程序利用单片机内部计时器中断实现流水效果。

要求流水灯能够自行设定、暂停、复位,工作稳定,可靠性高。

生产实习的主要目的是培养理论联系实际的能力,提高实际动手操作能力。

本专业的生产实习旨在广泛了解实际单片机电子产品工作的全过程,熟悉电子产品的主要技术管理模式,并在实习的操作过程中学习掌握电子产品的焊接安装调试的实际操作技能。

巩固和加深理解所学的理论,开阔眼界,提高潜力,为培养高素质大学本科人才打下必要的基础。

透过学习,是理论与实际相结合,能够使学生加深对所学知识的理解,并为后续专业课的学习带给必要的感性知识,同时直接了解本业的生产过程和生产资料,为将来走上工作岗位带给必要的实际生产知识。

花样流水灯设计

花样流水灯设计

一、原理图设计的目的:利用AT89C51,通过控制按键来实现六种流水灯花样的转换,实现花样流水灯的设计,同时通过外部中断0,来控制流水灯的速度.二、各器件的功能作用:1、AT89C51AT89C51有40个引脚,每个引脚都有其功能。

本次设计中,利用P0口当输出口,输出低电平来驱动发光二极管点亮。

利用P1.0~P1.5六个引脚,通过按键接地,然后采用扫描的方式,判断哪个引脚所接按键按下,从而来控制六种流水灯的花样。

利用P3.2引脚外接按键接地,通过控制按键来减慢流水灯的速度,利用P3。

3引脚外接按键接地,通过控制按键来提高流水灯的速度。

利用P3.7输出低电平,导通三极管Q1,从而给八个发光二极管的阳极加高电平,一旦P0口输出低电平就可以驱动发光二极管。

2、八个发光二极管:通过八个发光二极管来实现流水灯的变化,用低电平驱动发光二级管亮,同时,用高电平使其熄灭。

3、按键通过P1.0-P1.5外接的按键来实现流水灯各种花样的变化,当按键按下时,驱动一种流水灯花样的闪烁。

同时,利用按键来提供外部中断,当按下按键时,产生一个外部中断,向CPU申请中断,CPU响应其中断,因此可以用按键来实现提高流水灯闪烁的速度。

通过在RST口处加上一个按钮手动复位电路,利用复位按钮可以使运行中的流水灯复位到初始的状态.4、排阻因为P0口作为输出口时需要外接上拉电阻三、设计原理图:四、程序如下:#include<reg51.h> //51系列单片机定义文件#define uchar unsigned char //定义无符号字符#define uint unsigned int //定义无符号整数void delay(uint);//声明延时函数void main(void){uint i;uchar temp;TCON=0x05;IE=0x85;PX1=1;PX0=0;while(1){temp=0x01;for(i=0;i〈8;i++)//8个流水灯逐个闪动{P0=temp;delay(100);//调用延时函数temp〈〈=1;}temp=0x80;for(i=0;i<8;i++) //8个流水灯反向逐个闪动{P0=temp;delay(150);//调用延时函数temp>>=1;}temp=0xFE;for(i=0;i<8;i++)//8个流水灯依次全部点亮{P0=temp;delay(150); //调用延时函数temp<〈=1;}temp=0x7F;for(i=0;i<8;i++)//8个流水灯依次反向全部点亮{P0=temp;delay(150); //调用延时函数temp>>=1;}temp=0x03;for(i=0;i〈4;i++) //两个流水灯顺序点亮P0=temp;delay(150);temp<<=2;}temp=0x30;for(i=0;i<3;i++) //两个流水灯反向点亮{P0=temp;delay(150);temp〉>=2;}temp=0x07;for(i=0;i〈3;i++) //3个{P0=temp;delay(150);temp〈<=3;}temp=0xe0;for(i=0;i〈3;i++)//3流水灯反向点亮{P0=temp;delay(150);temp〉〉=3;}temp=0x0f;for(i=0;i〈3;i++) //4ge{P0=temp;delay(150);temp〈<=4;}temp=0xf0;for(i=0;i〈3;i++)//4流水灯反向点亮{P0=temp;delay(150);temp>〉=4;}}void int0()interrupt 0{uint i;uchar temp;while(1){temp=0x01;for(i=0;i<8;i++) //8个流水灯逐个闪动{P0=temp;delay(800);//调用延时函数temp<<=1;}temp=0x80;for(i=0;i<8;i++)//8个流水灯反向逐个闪动{P0=temp;delay(800);//调用延时函数temp〉〉=1;}temp=0xFE;for(i=0;i<8;i++)//8个流水灯依次全部点亮{P0=temp;delay(800); //调用延时函数temp<<=1;}temp=0x7F;for(i=0;i〈8;i++)//8个流水灯依次反向全部点亮{P0=temp;delay(800); //调用延时函数temp>〉=1;}temp=0x03;for(i=0;i<4;i++)//两个流水灯顺序点亮{P0=temp;delay(800);temp〈〈=2;}temp=0x30;for(i=0;i<3;i++) //两个流水灯反向点亮{P0=temp;delay(800);temp>〉=2;}temp=0x07;for(i=0;i〈3;i++)//3个流水灯顺序点亮{P0=temp;delay(800);temp<〈=3;}temp=0xe0;for(i=0;i<3;i++) //3个流水灯反向点亮{P0=temp;delay(800);temp〉〉=3;}}temp=0x0f;for(i=0;i〈3;i++)//4个流水灯顺序点亮{P0=temp;delay(800);temp<<=4;}temp=0xf0;for(i=0;i〈3;i++)//4流水灯反向点亮{P0=temp;delay(800);temp〉〉=4;}}void delay(uint t)//定义延时函数{register uint bt;for(;t;t-—)for(bt=0;bt<255;bt++); }。

多按键花样流水灯设计

多按键花样流水灯设计

指导教师:许景辉多按键花样流水灯的设计摘要:自人类发明计算机以来,单片机技术在社会各领域中得到了广泛的应用。

在流水灯控制系统中,单片机的作用更是发挥的淋漓尽致,成为此系统中的核心部分。

利用单片机的可编程功能,软硬件结合,来控制LED的灯的开通关断,通过丰富多彩的花样变化,给人以不同的视觉效果,更是成为现代商业社会不可缺少吸引消费者的普遍手段。

本文结合单片机的突出特点,着重介绍通过单片机来实现多按键花样流水灯的变化,主要包括其软件程序的编写、硬件电路的搭接、器件的选择,以及通过PROTEUS的仿真和PCB板的制作等。

关键词:单片机、可编程控制器、多按键花样流水灯、准确。

目录前言 (4)第一章设计目的和要求 (5)1.1 设计目的 (5)1.2 设计基本要求 (5)第二章方案设计 (6)2.1 方案设计任务分析 (6)2.2硬件系统的设计要求 (6)2.2.1 主控系统 (7)2.2.2花样灯输入及中断控制模块 (7)2.2.3 花样灯输出控制部分 (8)2.2.4 时钟及复位部分电路 (9)2.3 软件总体设计 (13)2.3.1 程序设计流程图 (13)2.3.2 主程序 (13)第三章硬件设计 (17)3.1 80c51单片机 (17)3.2PCB板的生成 (18)第四章软件设计 (20)4.1 中断子程序 (20)4.2 跑马灯子程序 (20)4.3 流水灯子程序 (20)4.4戏水灯子程序 (21)4.5 延时子程序 (21)第五章操作说明 (22)5.1 跑马灯操作说明 (22)5.2 流水等操作说明 (22)5.3 戏水灯操作说明 (23)5.4 顺寻循环执行三种花样灯操作说明 (23)结束语 (24)参考文献 (25)前言单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由CPU、RAM、ROM、定时/计时器、I/O 接口电路通过应刷电路板上的总线连成一体的完整计算机系统。

节日炫彩流水灯

节日炫彩流水灯

节日炫彩流水灯一、设计目标16个发光二极管LED0~LED15经限流电阻分别接至P1口和P2口,阳极共同接高电平。

编程实现制作节日炫彩流水灯,控制其流水或闪烁花样和速度,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭),用按键1在几种灯光效果间切换,用按键2加速,用按键3减速,用按键4暂停彩灯效果,再按一下恢复运行。

二、设计方案1、利用P1、P2口接出16个发光二极管,P3.0、P3.1、P3.2、P3.3接四个按钮,分别控制程序的减速、加速、变换闪烁方式、暂停和恢复。

2、定义了一个delay 函数用于延时。

3、进入主程序先让16个LED 灯全亮,通过按键P3.2控制六种闪烁方式,定义一个变量key ,每按下P3.2进一次中断key 加1,主函数里通过 switch(key) 切换闪烁方式。

4、定义了一个变量flag 控制程序的暂停与恢复。

每按下P3.3进入中断flag 取反一次,在闪烁程序中通过判断flag 控制暂停还是恢复。

5、定义了一个变量speed 来控制闪烁的快慢。

每按下P3.0一次speed 加50000,使闪烁变慢,每按下一次P3.1,speed 减50000,使闪烁加快。

6、变换函数:Change1:p1、p2连接的灯分别单灯循环下移。

Change2:p1、p2连接的灯先全灭后不断闪烁。

Change3:p1、p2连接的灯分别单灯循环上移。

Change4:p1、p2连接的灯分别奇偶交替闪烁。

Change5:p1、p2连接的灯分别双灯循环下移。

Change6:p1、p2连接的灯上三个下五个交替闪烁。

三、程序流程否是开始 P1、P2全部点亮,外部中断初始化 判断flag 的值是否为1=1 =2 =3 =4 =5 =6否是否是Switch 判断key 的值Change1 执行第一种闪烁方式 Change2 执行第二种闪烁方式 Change3 执行第三种闪烁方式 Change4 执行第四种闪烁方式Change5 执行第五种闪烁方式 Change6 执行第六种闪烁方式 判断是否加速或减速 改变delay 函数改变闪烁速度 判断是否要暂停进入暂停状态四、源程序#include<reg51.h>#define uchar unsigned charunsigned char key=0;int flag=1,speed,d;sbit S1=P3^0;sbit S2=P3^1;void init(); //中断初始化函数声明void change1(); //闪烁方式变化函数声明void change2();void change3();void change4();void change5();void change6();void delay() //延时函数{int i,j;speed=10000;if (d==1)speed=speed+50000;if (d==2)speed=speed-50000;d=0;for(j=0;j<10000;j++);for(i=0;i<speed;i++);} //主函数void main(){P1=0; //让P1口连接的LED灯全亮P2=0; //让P2口连接的LED灯全亮init(); //调用中断初始化函数while(1){if(flag==1) //判断是否暂停{switch(key){case 1:change1();break;case 2:change2();break;case 3:change3();break;case 4:change4();break;case 5:change5();break;case 6:change6();break;}}}}void init() //中断初始化函数{EA=1; //开总中断EX0=1; // 外部中断0允许EX1=1; //外部中断1允许IT1=1; //外部中断1下降沿触发IT0=1; //外部中断0下降沿触发PX1=1; //外部中断1高优先级}void service1() interrupt 0 using 1 //外部中断0中断服务子程序{IE0=0;key++; //每进一次中断key加1 if (key==7){key=1;}}void service2() interrupt 2 using 2 //外部中断1中断服务子程序{IE1=0;flag=~flag; //每进一次中断flag取反一次}void change1() //第一种闪烁变换方式函数{unsigned char i,a=1,b=0x80;delay();for(i=0;i<8;i++){ if(S1==0) //判断是否要加速或减速{d=1;}if(S2==0){ d=2;}if (key!=1) //判断是否要变换闪烁方式break;P1=~a;P2=~b;delay();delay();b<<=1; //P2口连接的灯从P2.7到P2.0循环左移a<<=1; //P1口连接的灯从P1.0到P1.7循环左移delay();delay();if(a==0)a=1;if(b==0)b=1;while (flag!=1); //判断是否要暂停}}void change2() //第二种闪烁变换方式函数{ P1=0X00;P2=0X00;while (1){if(S1==0) //判断是否要加速或减速d=1;if(S2==0)d=2;if (key!=2) //判断是否要变换闪烁方式break;P1=~P1; //P1口取反闪烁delay();P2=~P2;delay();while (flag!=1); //判断是否要暂停}}void change3() //第三种闪烁变换方式函数{unsigned char i,a=0x80;delay();while(1){ for(i=0;i<8;i++){ if(S1==0)d=1; //判断是否要加速或减速if(S2==0)d=2;if (key!=3) //判断是否要变换闪烁方式break;P2=~a; //P2口单灯循环右移delay();a>>=1;delay();if(a==0)a=0x80;}for(i=0;i<8;i++) //P1口单灯循环右移{P1=~a;delay();a>>=1;delay();if(a==0)a=0x80;while (flag!=1);} }}void change4() //第四种闪烁变换方式函数{ P1=0x55;P2=0x55;while (1){ if(S1==0) //判断是否要加速或减速d=1;if(S2==0)d=2;if (key!=4) //判断是否要变换闪烁方式break;P1=~P1; //P1、P2口奇偶交替闪烁P2=~P2;delay();while (flag!=1); //判断是否要暂停}}void change5() //第四种闪烁变换方式函数{unsigned char i;while (1){if (key!=5) //判断是否要变换闪烁方式break;for (i=0;i<8;i++){if(S1==0)d=1; //判断是否要加速或减速if(S2==0)d=2;if(i<7){P1=~(3<<i); //P1口双灯循环左移P2=~(3<<i); //P2口双灯循环左移delay();delay();}else{P1=~(0x81);P2=~(0x81);delay();delay();}while (flag!=1); //判断是否要暂停}}}void change6(){P1=0xf8;P2=0xf8;while (1){ if(S1==0)d=1;if(S2==0)d=2;if (key!=6)break;P1=~P1;P2=~P2;delay();delay();while (flag!=1); }}五、硬件原理图1、电路总图2、闪烁模块3、按键模块4、单片机主体5、复位模块6、时钟电路六、仿真结果1、全亮2、循环下移3、奇偶交替闪烁4、循环上移5、奇偶交替闪烁6、双灯循环下移7、上三个下五个交替闪烁8、暂停七、设计总结1、关于硬件仿真本次我设计的单片机题目为“节日炫彩流水灯”,在protuse仿真里主要用到了80c51单片机、16个四种颜色的LED灯、电阻若干、电容若干、电源若干、四个按键。

花式流水灯硬件设计报告精品

花式流水灯硬件设计报告精品

一、 设计题目花式流水灯二、 设计目的使用单片机控制LED 的花式亮灭。

三、 设计原理及要求1、设计原理流水灯系统由以下五个部分组成:电源模块、复位电路模块、晶振模块、 AT89C51单片机、LED 灯显示模块等组成。

其硬件框图如图1所示:图1花式流水灯硬件框图8个发光二极管依次接单片机 P0口,当单片机P0口输出低电平时,LED 亮,由程序控制灯亮的顺序,按键采用中断方式控制灯亮的方式。

2.设计要求(1) 以单片机为核心,设计花式流水灯。

(2) 按键中断电路。

(3) LED 显示电路。

四、芯片介绍AT89C51是美国ATME 公司生产的低电压,高性能 CMOS 位单片机,片内含4k bytes 的 可反复擦写的只读程序存储器(PEROM 和128 bytes 的随机存取数据存储器(RAM ,器件采用ATME 公司的高密度、 非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用 8位中央处理器(CPU 和Flash 存储单元,功能强大 AT89C51单片机可为您提夏位电路 模块<=1AT89C5L<=1LED 灯显示模块按笑控制模块供许多高性价比的应用场合,可灵活应用于各种控制领域。

AT89C52主要性能参数:1与MCS-51产品指令和引脚完全兼容 2、 8k 字节可重擦写Flash 闪速存储器 3、 1000次擦写周期 4、 全静态操作:0Hz-24MHz 5、 三级加密程序存储器 6、 256*8字节内部RAM 7、 32个可编程I/O 口线 8、 3个16位定时/计数器9、 8个中断源 10、可编程串行 LART 通道11、低功耗空闲和掉电模式功能特性概述:AT89C51提供以下标准功能: 4k 字节Flash 闪速存储器,128字节内部RAM 32个I /O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C5何降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。

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

课程设计设计名称:多按键花样流水灯学年学期:2014-2015学年第二学期课程名称:单片机原理及应用课程设计专业年级:12级电气工程及其自动化姓名:秦磊学号:2012012081提交日期:2014年6月15号成绩:指导教师:许景辉甘学涛摘要:当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,一般被单片机智能控制系统所取代。

单片机具有体积小、功能强、成本低、应用面广等优点,智能控制与自动控制的核心就是单片机。

而C51系列单片机就是其中一种,它具有较大内存还可以方便扩展,接口简单,与keil等编程软件易于结合,操作方便,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,是时常被用对象。

关键词:单片机流水灯 keil 程序目录前言 (4)第一章设计目的及要求 (5)1.1 设计目的 (5)1.2 设计基本要求 (5)1.2.1、课程设计要求 (5)第二章方案设计 (6)2.1、几种常见的跑马灯 (6)2.2、研究背景 (6)2.3 方案设计任务分析 (6)第三章主要元器件介绍 (7)3.1 AT89C51单片机介绍 (7)3.1.1 AT89C51芯片简介 (7)3.1.2 引脚说明 (8)第四章硬件电路设计 (10)4.1硬件系统的设计要求 (10)4.2 主控系统 (11)4.3花样灯输入及中断控制模块 (11)4.4 花样灯输出控制部分 (12)4.5 时钟及复位部分电路 (12)4.5.1时钟电路 (12)第五章软件设计及主要子程序 (14)5.1、软件设计思路 (14)第六章系统仿真与调试 (18)6.1、Keil编译 (18)6.2、Protues仿真平台 (18)6.2.1、Protues仿真简介及部分模块仿真 (18)6.2.2、硬件电路总图与仿真 (19)6.2.3、PCB板的生成 (19)第七章操作说明 (21)7.1 方式一操作说明 (21)7.2 方式二操作说明 (21)7.3 方式三操作说明 (22)7.4 方式四操作说明 (22)第八章课程设计总结 (24)附录 (25)1 中断子程序 (25)2 跑马灯子程序 (25)3 流水灯子程序 (25)4戏水灯子程序 (26)5 延时子程序 (26)参考文献 (28)前言近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。

单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由CPU、RAM、ROM、定时/计时器、I/O接口电路通过应刷电路板上的总线连成一体的完整计算机系统。

[1]随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机AT89C51来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,使用protues来实现设计,方便快捷。

因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。

第一章设计目的及要求1.1 设计目的1)掌握51系列单片机的基本硬件结构及工作原理;2)掌握51系列单片机的汇编语言及基本程序设计方法;3)学习并掌握使用51系列单片机开发控制系统的基本步骤及方法4)学习并掌握protues和keil的使用熟悉操作。

1.2 设计基本要求1.2.1、课程设计要求能熟练运用51单片机实现硬件与软件结合完成电子产品的设计,把理论真正运用于实践,会用Keil 等软件编程调试运行,熟悉应用Proteus软件仿真。

强化编程练习,注意查询方式与中断方式的区别等等1.2.2、基本设计功能要求主要解释多按键花样流水灯采用80c51单片机为控制器件,此花样流水灯共有四个按键,分别对应控制着四种花样灯光效果。

当开关K1按下时,执行跑马灯程序,共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。

当K1断开时所有的LED应该都保持在断开时的状态;当开关k2按下时,执行流水灯程序,共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED 灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。

当开关k2断开时所有LED灯都应熄灭;当开关K3按下时,执行戏水灯程序共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。

然后继续上次操作。

当开关k3断开时所有的LED应该保持led的1,3,5,7亮;当k4按下时,则循环执行上述程序,一直到K4断开,所有的LED熄灭。

第二章方案设计2.1、几种常见的跑马灯市面上有很多中流水灯,有多种花样方式,这里不一一例举2.2、研究背景随着现代社会的发展,各种各样的产品出现。

现在大街小巷都有流水灯的身影。

流水灯就是一种,以前简单的照明工具来让我们的生活变得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以使用电子电路去设计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机AT89C51来实现,或者51系列的都可以。

因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。

2.3 方案设计任务分析采用标准80c51单片机作为控制器;采用P2口作为输出口控制八个LED的亮灭;P1口为输出口,P1.4,P1.5,P1.6,P1.7分别与四个开关K1,K2,K3,K4相连作为输入控制口,采用外部中断的控制方式控制各种花样灯的开通。

采用以上结构,考虑到只有8个LED灯,所选单片机的I/O口完全够用,不需外部扩展。

该系统具有电路简单,设计方便,显示亮度高,显示准确,耗电较少,可靠性高等特点。

整个电路组成框图如图2-1所示[3]。

图2-1 花样流水灯控制系统第三章主要元器件介绍3.1 AT89C51单片机介绍3.1.1 AT89C51芯片简介AT89C51是MCS—51系列单片机中的一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。

主要性能:与MCS-51 微控制器产品系列兼容。

片内有4KB可在线重复编程的快闪擦写存储器存储数据保存时间为10年。

宽工作电压范围:Vcc可为2.7V到6V全静态工作;可从0Hz至16MHz 程序存储器具有3级加密保护 128*8位内部RAM 32条可编程I/O线、两个16位定时器/计数器、中断结构具有5个中断源和2个优先级、可编程全双工串行通道、空闲状态维持低功耗和掉电状态保存存储内容。

[5]按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。

AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。

因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机[1]。

89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。

如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。

它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。

但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。

微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统各部分功能及说明类似于8051单片机内部结构说明。

特殊功能寄存器共有21个,用于对片内的各功能的部件进行管理、控制、监视。

实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。

由上可见, 89C51单片机的硬件结构具有功能部件种类全,功能强等特点。

特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个1位微计算机有自己的CPU、位寄存器、I/O口和指令集。

1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。

MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机设计的精美之处。

80C51单片机属于MCS-51系列单片机,[2]由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。

采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K 的ROM。

80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。

80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。

由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。

程序存储器数据存储器图3-1 80c51结构图3.1.2 引脚说明引脚是单片机和外界进行通信的通道连接点,用户只能通过引脚组建控制系统。

从应用的角度来看,引脚的应用是单片机应用的一个重要基础。

因此熟悉引脚是学习应用单片机的基础。

MCS-51系列单片机的引脚封装主要有: PDIP40、PLCC44和PQFP/TQFP44。

相关文档
最新文档