基于单片机的LED流水灯控制系统设计
基于51单片机的流水灯设计
基于51单片机的流水灯设计51单片机是一种常用的微控制器,它具有高性价比、易于编程和广泛的应用范围。
流水灯是一种常见的电子灯光装置,它通过类似于瀑布般的效果,逐个点亮一系列的灯。
本文将介绍基于51单片机的流水灯的设计。
流水灯的设计过程可以分为硬件设计和软件设计两个步骤。
硬件设计:在硬件设计方面,我们需要准备以下器件和材料:1.51单片机开发板2.杜邦线3.LED灯4.电阻接下来,根据流水灯的设计思路,将多个LED灯连接在一起,形成一个线性的灯带。
为了控制LED灯的亮灭,我们需要使用51单片机的GPIO 口来提供高低电平信号。
通过改变GPIO口的输出信号,我们可以实现各个LED灯的顺序点亮和熄灭。
软件设计:在软件设计方面,我们需要使用到汇编或C语言来编写控制程序。
以下是一个简单的流水灯程序的伪代码:```1.初始化51单片机的GPIO口方向,设置为输出模式2. 定义一个存储灯光模式的数组,比如`light_pattern[] = {0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01}`3.定义一个循环计数器`i`4.进入无限循环5. 通过将`light_pattern[i]`的值写入GPIO口,控制LED灯的亮灭6.延时一定时间(比如几百毫秒)7.更新循环计数器`i`8.如果`i`超过了数组的长度,将其重置为09.结束循环```在程序中,我们可以通过循环计数器`i`来依次点亮和熄灭LED灯。
通过不断更新`i`的值,我们可以实现灯光模式的循环播放。
总结:。
基于单片机的LED流水灯控制
课程设计说明书课程名称:单片机原理及应用设计题目:基于单片机的LED流水灯控制院系:信息技术学院专业:计算机科学与技术2013年1月10日基于单片机的LED流水灯控制摘要基于单片机的LED流水灯的应用十分广泛,由单片机作为的核心控制器,通过按键实现控制功能和数据输入是非常普遍的。
通常在所需按键数量不多时,系统常采用独立式按键。
这种按键的电路配置灵活,软件结构简单。
由于实际应用中,不同系统对按键的要求不同,因此,对按键程序的设计要考虑全面,以便更好地完成按键所设定的功能,简述了该系统中一些重要芯片的基本工作原理,着重论述了硬件线路各个模块的设计思想。
进而熟练掌握相关专业基础知识的综合应用,提高学生的实际动手和设计能力。
本系统是基于AT89C51系列单片机为核心的LED流水灯设计,实现8个LED灯变化方向和速度的可调。
关键词:单片机独立式按键 LED目录第一章绪论 (1)1. 设计背景 (1)1.1设计目的 (1)1.2可行性分析及相关现状 (1)1.3意义 (2)第二章系统设计 (3)2系统设计 (3)2.1整体设计 (3)2.2模块设计 (4)第三章系统实现 (7)3.1整体仿真电路图 (7)3.2各部分模块原理 (7)3.2.1单片机最小系统 (7)3.2.2外围电路 (8)第四章核心代码 (11)第五章调试 (14)第六章总结与致谢 (15)6.1总结 (15)6.2致谢 (15)第七章附录 (16)7.附录 (16)7.1源代码 (16)第一章绪论1.设计背景1.1设计目的通过本次课题设计,应用《单片机原理及应用》等所学相关知识及查阅资料完成简易LED流水灯系统设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。
1.2可行性分析及相关现状随着人们生活水平的提高,基于单片机的LED流水灯的应用越来越广泛,其中独立式键盘的扩展电路,该模块主要应用于仪器仪表、工业控制器、条形显示器、控制面板等实时性要求不太高的设备。
基于51单片机流水灯毕业设计
基于51单片机的流水灯毕业设计方案:一、引言流水灯是一种常见的电子设计项目,适合初学者练习和毕业设计。
通过使用51单片机和少量外围元件,可以实现一个简单而有趣的流水灯效果。
本文将介绍基于51单片机的流水灯设计方案,包括硬件连接、软件程序设计和效果展示等内容。
二、硬件设计1. 材料准备:51单片机(如STC89C52)、LED灯若干(建议4-8个)、电阻、面包板、连线等。
2. 连接方式:将LED灯按顺序连接到51单片机的IO口,每个LED 灯通过一个电阻连接到IO口,确保电流限制。
3. 电源供应:连接电源至电路板,保证正常工作电压和电流。
三、软件设计1. 编程环境:使用Keil C51等集成开发环境进行程序编写。
2. 程序设计:设计一个循环移位的程序,控制51单片机的IO口依次点亮LED灯,形成流水灯效果。
3. 定时控制:通过定时器中断或延时函数控制LED灯的亮灭时间,实现流水灯的效果。
四、效果展示1. 烧录程序:将编写好的程序烧录到51单片机中。
2. 调试测试:连接电路并通电,观察LED灯按顺序点亮并流动的效果。
3. 优化改进:根据实际效果调整程序和硬件设计,优化流水灯的效果和稳定性。
五、注意事项1. 电路连接:确保电路连接正确,避免短路或接反现象。
2. 程序设计:合理设计程序逻辑,确保LED灯的流水效果符合预期。
3. 调试测试:在调试过程中注意观察LED灯的亮暗情况,及时发现问题并进行调整。
六、总结基于51单片机的流水灯设计是一个适合初学者和毕业设计的简单而有趣的项目,通过设计和实现可以提升对单片机编程和电路连接的理解和技能。
希望通过本文的介绍,读者能够顺利完成基于51单片机的流水灯毕业设计,并在实践中不断提升自己的电子设计能力。
单片机控制左右循环的流水灯设计
单片机控制左右循环的流水灯设计单片机是一种微型计算机芯片,可以用于控制和管理各种电子设备。
流水灯是一种经典的电子元件,通过依次点亮或熄灭一组LED灯来形成流动效果。
本文将设计一个使用单片机控制的左右循环流水灯。
设计思路:1.硬件设计:a.先准备一个单片机开发板、一组LED灯和与LED灯串联的电阻。
b.将LED灯按照循序连接,连接方式可以为并联或串联。
c.通过引脚和外部电路将LED灯与单片机的IO口相连。
每个LED灯与一个IO口相连,并且通过电阻限流。
2.软件设计:a.在单片机上编写控制流水灯的程序。
这可以使用C语言或汇编语言进行编写。
b.程序主要通过循环结构来实现流水灯的效果。
编写一个循环函数,用于控制LED灯的点亮和熄灭。
c.在循环函数中,通过控制IO口输出高电平或低电平来控制LED灯的亮灭。
每次循环,根据需要逐个点亮或熄灭LED灯。
d.为了实现左右循环的效果,可以通过改变点亮或熄灭的顺序来改变流水灯的方向。
可以使用一个变量来控制点亮和熄灭的顺序,每次循环后改变该变量的值。
示例代码:以下是一个使用C语言编写的简单示例代码,来控制左右循环流水灯。
```c#include <reg52.h>//定义LED灯使用的IO口sbit LED1 = P1^0;sbit LED2 = P1^1;sbit LED3 = P1^2;sbit LED4 = P1^3;//控制流水灯循环void lightFlowint i;int direction = 1; // 控制流水灯的方向,1表示向右,-1表示向左//流水灯循环while(1)//控制LED灯的点亮和熄灭LED1=0;LED2=1;LED3=1;LED1=1;LED2=0;LED3=1;LED4=1;LED1=1;LED2=1;LED3=0;LED4=1;LED1=1;LED2=1;LED3=1;LED4=0;//根据方向改变控制顺序if(direction == 1)//向右direction = -1;}elsedirection = 1;}}void mainlightFlow(;```这个示例代码中,使用P1口上的4个IO口来控制4个LED灯的点亮和熄灭。
基于单片机控制的LED流水灯设计
1 单片机 的硬件 组成
单 芯片微型计算机 , 简称单 片机 。 它 是把组成微型计算 机 的各功能部件—— 中央处理 器C P U、 随机存储 器R AM、 只读 存 储 器R O M、 定时/ 计数 器、 并行I / 0接 口电路 、 中断系统 以及 串
行 通 信 接 口等 制 作 在 一 块 集 成 芯 片 上 , 构 成 了 一 个 完 整 的 微
这就 需要输入 让 单片机 能够 解读 的指令 , 控制 单片机 按 照指 令工 作 , 即编 写程 序控 制单片 机 的管脚 , 通过 向I / O口不停 地 赋值、 延 时来 实现 。这 里采 用 移植 性 较高 的c语 言来 控制 单
片机 。
片机 的最小应用系 统 , 即 由8 4 " 发光 二极管 、 手动 复位 电路 、 由
程 方法 。
光 二 极 管一 只一 只地 亮 , 一 只一 只地 灭 , 每 次 亮 的 灯 只 有 一 个, 而 且 是 按 照 一 个 方 向顺 序 向 前 或 向后 走 动 。在 此 我 们 还 应
注 意一 点, 由于 单片机执行 每条指令 的时 间很短 , 并且 人 眼具
有 视觉 暂 留的效应 , 我 们 在 控 制 二 极 管 亮 灭 的 时 候 应 该 延 时
立 单片机应 用系统 。利 用单 片机 实施控 制的系统称 为单 片机 应用系统 , 单 片机应用 系统可分 为最小系统 、 最 小功耗 系统及 典型系 统等 。单片 机最小应用 系统是 指维持单片 机正常 工作 所 必需 的电路连 接 。
本流 水灯 系统 实际上 就是 一个 带有8 个 发 光 二 极 管 的 单
一
段时 间, 所 以说 必 须 有 延 时 函数 , 否 则我们就 看不到“ 流水”
流水灯控制系统设计(单片机)
实验报告单实验名称:流水灯控制系统设计实验项目:实验目的:1. 理解单片机系统软硬件开发的过程,单片机基本的I/O控制方法。
2. 掌握51单片机的汇编指令。
3. 掌握Proteus硬件仿真软件的使用及技巧。
4. 掌握Keil uVision程序开发软件的使用技巧。
实验器材:安装了Keil uVision5和Proteus的电脑;实验原理:通过更改P2口8位的高低电平,分别控制8个Led灯的亮灭。
单片机流水灯的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。
使用rl或rr a实现位的转换。
然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置操作。
具体的亮灭情况如下表:要实现“流水灯”效果,也就是需要将P2口的输出值发生以下变化:FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE ..... 可以使用一个循环,不断对数据进行移位运算实现。
这里的移位指令采用RL和RR,即不带进位的位移运算指令。
如果使用带进位的位移运算指令(RLC 和RRC),则需要定期把cy置0,否则会出现同时亮起两个发光二极管的情况。
实验步骤:1.在仿真系统Proteus中实现电路原理图设计;新建设计文档、设置工作环境、选择并放置元器件、对原理图进行布线、原理图的电器规则检查、调整、保存和输出报表等。
2.源代码的设计与生成目标代码;在Keil uVision5平台进行C语言和汇编语言源代码的输入、编译与调试,并生成可执行文件.hex。
C语言存储为.c文件,汇编语言存储为.asm文件。
3.调试与仿真在Proteus中将可执行文件.hex加载到单片机中,对系统进行虚拟仿真。
基于单片机的LED流水灯控制系统设计【范本模板】
《单片机应用技术》课程设计报告2015 ~ 2016 学年第 2 学期题目:基于单片机的LED流水灯控制系统设计专业:电气工程及其自动化班级: 13电气(2)班姓名:杨光单亚指导教师:陆媛宋洪儒成绩:电气工程学院2016年6月9 日任务书摘要.......................................................................................................................................................... - 0 - 第一章A T89S51单片机硬件介绍................................................................................................................ - 1 -1.1 A T89S51单片机硬件组成 ................................................................................................................ - 1 -1。
2 AT89S51管脚说明...................................................................................................................... - 2 -1.2.1 电源及时钟引脚.................................................................................................................... - 3 -1.2。
基于单片机的LED流水彩灯设计
第1章概述近几年来,彩灯对于美化、亮化城市有着不可轻视的重要工作。
因此作为城市装饰的彩灯需求量越来越大,对与彩灯的技术和花样也越来越高。
但传统的彩灯控制电路一般是由数字电路组成,这种彩灯控制器电路结构复杂、成本较高、功率损耗大,此外从功能效果上看,彩灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进行改进。
然而单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
LED彩灯具有成本低、发光纯度高、发光热量小、耗电量低、超长寿命的特点。
所以利用单片机作LED彩灯控制,不仅是使控制花样、路数大大增加,成本也很低,而且对环境能源没有污染,有着很大的发展前景。
本方案是一种基于AT-89C51单片机的彩灯控制方案,实现对LED彩灯的控制。
主要以AT-89C51单片机作为主控核心与发光二极管、晶振、复位、电源等组成电路,利用软件编辑实现彩灯流水灯的效果。
第2章方案设计2.1设计任务(1)共有红、绿、蓝3色彩灯各8个,要求按一定顺序和时间关系运行:红色发光二极管由弱到强—>绿色发光二极管由弱到强—>蓝色发光二极管由弱到强。
(2)利用三基色原理,控制每次点亮红色发光二极管,绿色发光二极管,蓝色发光二极管的数目,实现黄色,紫色,青色。
(3)控制不同颜色发光二极管的数目,实现花样彩灯。
(4)编写程序代码。
(5)程序分析与调试。
2.2工程方案按照设计任务要求,红,绿,蓝光由弱到强,每个颜色用8个发光二极管,在程序控制下,先亮一个,再亮两个,再亮三个,慢慢的直到最后全亮,就能看到由弱到强的现象。
如果同一颜色使用更多的发光二极管,显示效果会更柔和。
要实现黄色,紫色,青色光,只能根据三基色原理进行合成。
所谓三基色是指红,绿,蓝三色,人眼对红,绿,蓝最为敏感,大多数可以通过红,绿,蓝3种颜色按照不同的比例合成产生。
同时,绝大多数单色光也可以分解成红绿蓝三种光。
基于51单片机的流水灯设计
基于51单⽚机的流⽔灯设计基于51单⽚机的流⽔灯设计⼀.基本功能利⽤AT89c51作为主控器组成⼀个LED流⽔灯系统,实现8个LED 灯的左、右循环显⽰。
⼆.硬件设计图1.总设计图1.单⽚机最⼩系统1.1选⽤AT89C51的引脚功能图2. AT89C51XTAL1:单芯⽚系统时钟的反向放⼤器输⼊端。
XTAL2:系统时钟的反向放⼤器输出端,⼀般在设计上只要在XTAL1和XTAL2上接上⼀只⽯英震荡晶体系统就可以⼯作了,此外可以在两引脚与地之间加⼊20PF的⼩电容,可以使系统更稳定,避免噪⾳⼲扰⽽死机。
RESET:重置引脚,⾼电平动作,当要对晶体重置时,只要对此引脚电平提升⾄⾼电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。
P3:端⼝3是具有内部提升电路的双向I/O端⼝,通过控制各个端⼝的⾼低电平了实现LED流⽔灯的控制。
1.2复位电路如图所⽰,当按下按键时,就能完成整个系统的复位,使得程序从新运⾏。
图3.复位电路1.3时钟电路时钟电路⽤于产⽣单⽚机⼯作所需要的时钟信号,单⽚机本⾝就是⼀个复杂的同步时序电路,为了保证同步⼯作⽅式的实现,电路应在唯⼀的时钟信号控制下严格地按时序进⾏⼯作。
在AT89C51芯⽚内部有⼀个⾼增益反相放⼤器,其输⼊端为芯⽚引脚X1,输出端为引脚X2,在芯⽚的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了⼀个稳定的⾃激振荡器。
此电路采⽤12MHz的⽯英晶体。
图4.时钟电路2.流⽔灯部分图5.流⽔灯电路三.软件设计3.1编程语⾔及编程软件的选择本设计选择C语⾔作为编程语⾔。
C语⾔虽然执⾏效率没有汇编语⾔⾼,但语⾔简洁,使⽤⽅便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计⾃由度⼤,有很好的可重⽤性,可移植性等特点。
⽽汇编语⾔使⽤起来并没有这么⽅便。
本设计选⽤了Keil作为编程软件,.Keil C51⽣成的⽬标代码效率⾮常之⾼,多数语句⽣成的汇编代码很紧凑,容易理解。
单片机课程设计--基于单片机的LED流水灯系统设计
单片机课程设计报告项目名称:基于单片机的LED流水灯系统设计目录第一章绪论--------------------------------------------------------------------------- 21.1 课题简介 ----------------------------------------------------------------------------------- 2 1.2 设计目的 ----------------------------------------------------------------------------------- 2 1.3 设计任务 ----------------------------------------------------------------------------------- 2 1.4 设计方法 ----------------------------------------------------------------------------------- 3第二章设计内容与所用器件 ------------------------------------------------------- 4第三章方案论证与比较 ----------------------------------------------------------- 5 3.1循环移位法--------------------------------------------------------------------------------- 5 3.2查表法 -------------------------------------------------------------------------------------- 5 3.3位控法--------------------------------------------------------------------------------------- 5第四章硬件系统设计 ---------------------------------------------------------------- 7 4.1 键盘接口电路----------------------------------------------------------------------------- 7 4.2 7段LED数码管 -------------------------------------------------------------------------- 8 4.3 程序下载接口----------------------------------------------------------------------------- 8 4.4 数码管驱动芯片-------------------------------------------------------------------------- 8 4.5、单片机时钟电路 ------------------------------------------------------------------------ 8 4.6、单片机复位电路 ------------------------------------------------------------------------ 9第五章软件设计 ---------------------------------------------------------------------- 7 5.1 汇编语言和C语言的特点及选择 ---------------------------------------------------- 7 5.2 LED显示原理 ----------------------------------------------------------------------------- 8第六章系统调试与存在的问题 ---------------------------------------------------- 9 6.1 硬件调试 ----------------------------------------------------------------------------------- 9 6.2 软件调试 ----------------------------------------------------------------------------------- 9总结 ----------------------------------------------------------------------------------- 10参考文献------------------------------------------------------------------------------- 10附录------------------------------------------------------------------------------------16第一章绪论1.1 课题简介当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。
基于单片机的流水灯设计
基于单片机的流水灯设计单片机是一种集成电路,它包含了处理器、内存和输入/输出接口等组件。
它为嵌入式系统提供了良好的硬件和软件支持。
流水灯是一种常见的电子实验项目,它可以通过多个LED灯的顺序闪烁,形成一种流动的效果。
在本文中,我们将介绍基于单片机的流水灯设计。
首先,我们需要选择适合的单片机。
常见的单片机包括51系列、AVR系列和ARM系列等。
在这里,我们选择使用51系列单片机,因为它具有广泛的应用和丰富的开发资源。
接下来,我们需要准备硬件组件。
除了单片机之外,我们还需要LED 灯、电阻、电源和连接线等。
LED灯是流水灯的核心组件,我们可以选择不同颜色和尺寸的LED灯,以满足不同的设计需求。
电阻用于限制LED灯的电流,这样可以保护LED灯和单片机。
电源可以是直流电压,可以使用电池或者外部电源适配器。
连接线用于将LED灯与单片机连接起来。
在硬件准备好之后,我们开始进行软件设计。
软件设计包括两个方面:硬件配置和程序编写。
首先,我们需要将单片机的引脚与LED灯进行连接。
通过单片机的GPIO引脚,我们可以控制LED灯的亮灭。
根据具体的硬件连接方式,我们需要在程序中设置相应的引脚为输出模式。
程序编写是流水灯设计的核心。
我们使用C语言进行程序编写。
首先,我们需要定义相应的宏定义和全局变量,以便在程序中使用。
接下来,我们可以使用循环控制语句和延时函数,实现LED灯的流动效果。
具体的程序设计可以根据实际需求进行调整和修改。
在实际操作中,我们可能会遇到一些问题。
例如,LED灯不亮、流动效果不理想等。
这些问题可能是由于硬件连接错误、程序错误或者供电不稳定等原因引起的。
对于这些问题,我们可以检查硬件连接是否正确、程序是否有误、供电是否稳定等,查找问题的所在,并进行相应的调整和修正。
流水灯设计是一个典型的嵌入式系统设计项目,它涉及到硬件和软件的多个方面。
通过这个项目,我们可以学习和掌握单片机的应用和开发技术。
此外,我们还可以进一步扩展该项目,例如添加按键控制、改变流动速度等,以满足不同的设计需求。
基于51单片机的流水灯系统设计
基于51单片机的流水灯系统设计介绍:流水灯系统是一种常见的电子灯光效果,通过多个方向或位置的灯光按照一定的规则顺序闪烁,形成一种流动的效果。
这种系统在舞台演出、广告等领域广泛应用。
本文将基于51单片机设计一个简单的流水灯系统。
设计目标:本设计的主要目标是实现一个简单的有5个LED灯的流水灯系统,通过51单片机控制闪烁的频率和方向。
设计原理:1.51单片机:使用常见的AT89C51单片机,作为整个系统的控制核心。
2.LED灯:选用5个LED灯作为流水灯的灯光源。
3.节拍控制电路:通过一个定时器电路来生成节拍信号,控制LED闪烁的频率。
详细设计:1.系统硬件设计选用的51单片机AT89C51与外部晶振连接,为单片机提供时钟信号。
5个LED灯分别通过多路开关连接到51单片机的I/O口上,通过单片机控制I/O口输出高或低电平来控制LED灯的亮灭。
定时器电路通过8051单片机内部的定时器模块来实现。
2.系统软件设计使用C语言编写程序,实现流水灯的控制逻辑。
1)初始化:设置51单片机的I/O口为输出模式,并将所有LED灯都设置为关闭状态。
2)闪烁控制:使用一个循环,通过依次改变LED灯的亮灭状态实现流水灯的效果。
可以通过循环变量的增加或减少来改变流水灯的方向。
3)节拍控制:使用编写好的定时器中断服务函数,来控制流水灯的闪烁频率。
可以通过调整定时器的工作模式和计数值来调整闪烁的频率。
测试与调试:总结:本文基于51单片机设计了一个简单的流水灯系统,通过控制LED灯的闪烁频率和方向,实现流水灯的效果。
通过学习和理解该设计,我们可以进一步探索更复杂的灯光系统设计,并在实际应用中进行扩展和优化。
基于单片机的LED流水灯设计
交通与汽车工程学院课程设计说明书课程名称: 微机原理及应用课程设计课程代码: 8234570 题目: 基于单片机的LED流水灯设计年级/专业/班: 学生姓名: 学号: 开始时间: 2012 年 07 月 02 日完成时间: 2012 年 07 月 06 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总分(100)指导教师签名:年月日目录摘要 (2)1 引言 (3)1.1 设计目的 (3)1.2 设计任务 (3)1.3 设计方法 (3)2 设计内容和所用器件 (4)2.1 基本功能 (4)2.2 元件清单 (4)3 系统硬件设计 (5)3.1 AT89C52 (5)3.2 单片机时钟电路 (11)3.3 单片机复位电路 (11)4系统软件设计 (12)4.1 proteus软件环境介绍 (12)4.2 protel软件环境介绍 (12)4.3程序流程图 (13)4.4 LED显示原理 (14)5 系统的调试过程 (16)5.1 原理图与ERC检查 (16)5.2 PCB板图 (17)6 仿真结果图 (18)7系统调试存在的问题 (19)8 总结 (20)9 参考文献 (21)10 附录 (22)摘要当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。
计算器作为一种快速通用的计算工具方便了用户的使用。
计算器可谓是我们最亲密的电子伙伴之一。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。
单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中。
单片微型计算机是微型计算机称单片机,特别适用于控制领域,故又称为微控制器。
LED流水灯设计-单片机控制
《微机应用系统设计与综合实验(实践)》课程设计实验报告实验课题LED霓虹灯设计姓名学号班级指导老师目录第一章设计概述 (3)1.1 设计任务 (3)1.2 设备器材 (3)第二章硬件设计方案 (3)2.1 设计思想 (3)2.2 硬件选择 (4)2.3 AT89C52单片机介绍 (4)2.4 硬件逻辑图 (7)2.5 设计连线 (8)2.6 仿真电路图 (8)第三章软件设计方案 (8)3.1 软件设计思想 (8)3.2 程序流程图 (9)第四章调试及运行结果 (10)第五章设计心得与体会 (10)参考资料 (11)源程序清单 (11)第一章设计概述1.1 设计任务设计内容:利用汇编语言(或C语言),实现8个单色LED灯的左、右循环显示,并实现循环的速度可调。
选用芯片: 8255 等注:由于实验室的没有提供8255芯片,所以改用单片机完成此实验,并且添加了调节灯明暗的功能,以实现明暗可调。
1.2 设备器材在本设计中,所用到的设备器材如下所示:(1)计算机一台;(2)唐都仪器实验箱一台;(3) AT89C52单片机一片;(4)导线若干。
第二章硬件设计方案2.1 设计思路本课题需要用按钮开关实现流水灯的左右循环显示、调速、控制亮度的功能。
可以选用五个开关来实现这些操作。
单片机正在软件运行下通过不断扫描开关状态,来将相关操作对应量送入单片机的输入端口,然后判断属于哪一类操作。
五个开关分别为K1,K2,K3,K4,K5,分别控制流水灯的调向、加速、减速、变亮、变暗。
在设计过程中,接开关的端口要全部保持高电平,当按下一个开关时,输入一个低电平,即为状态改变信号。
不能同时有两个端口同为高电平。
在设计中我主要负责了用云脉冲宽度调制(PWM)波控制LED灯的亮度环节,开始对PWM并不是很了解,通过请教同学和查阅相关资料,渐渐明白了其中的原理。
在主程序运行时通过中断方式调整其输出电压的占空比,从而改变灯泡的亮度。
原理是这样的,主程序的始终频率和中断的始终频率并不相同,大约是中断的一千倍,LED灯在移动时如果响应了中断,则在执行中断程序时,LED 灯近似看做没有移动,此时在中断程序中设计一个初值和一个上限,当计数到初值时置灯泡灭掉,在计数到上限之前小灯泡都是熄灭的,到达上限后回0,并置灯泡为亮,继续计数,在到设定的初值时置小灯泡为灭掉。
C51单片机控制LED灯设计方案
C51单片机控制LED灯设计方案C51单片机是一种8位单片机,被广泛应用于嵌入式系统和各种控制设备中。
LED灯是一种常见的电子显示器件,可以通过控制单片机的输入输出口来实现各种灯光效果。
以下是一个基本的C51单片机控制LED灯的设计方案。
1.设计硬件电路首先,我们需要设计一个合适的硬件电路来连接单片机和LED灯。
一个简单的电路包括单片机、电流限制电阻和LED灯。
单片机的输出端口与LED灯正极相连,电阻连接在LED灯的负极,此电阻一般选择220欧姆以限制电流。
2.编写程序使用Keil C51开发环境编写程序,通过编程来控制单片机的输出口,从而控制LED灯的亮灭。
首先,需要包含头文件reg51.h,该头文件包含了控制单片机输入输出口的相关函数。
接着,需要定义LED灯的连接引脚。
例如,如果LED灯连接到单片机的P1.0引脚,可以使用以下命令定义:sbit LED = P1^0;在主程序中,我们可以使用循环语句来实现LED灯的不同亮灭效果。
例如,以下代码实现了一个LED灯闪烁的效果:#include <reg51.h>sbit LED = P1^0;unsigned int i, j;for(j=0;j<1275;j++);void mainwhile(1)LED=0;//亮灯delay(1000); //延时LED=1;//灭灯delay(1000); //延时}在以上代码中,LED = 0;表示将P1.0引脚输出低电平,亮起LED灯;LED = 1;表示将P1.0引脚输出高电平,灭掉LED灯。
delay函数用于延时一段时间,以控制LED灯的闪烁频率。
3.烧录程序完成程序编写后,将C51单片机与计算机通过编程器连接,并使用烧录软件将程序烧录到单片机内部存储器中。
4.运行程序烧录完成后,将单片机与电路连接,并将电路供电。
LED灯应该开始闪烁起来,效果如设计所期望。
以上是一个基本的C51单片机控制LED灯的设计方案。
LED流水灯单片机的设计
LED流水灯单片机的设计引言:设计目标:设计一个能够实现LED流水灯效果的电路,使用单片机控制灯光的亮灭和流动速度,并通过按键控制流水灯的运行。
设计过程:1.硬件设计:1.1 选择LED:选择合适的LED灯珠,通常使用常见的5mm圆形LED 灯。
1.2连接方式:将多个LED按照串联或并联方式连接,以形成流水灯效果。
1.3电流限制:通过串联合适的电阻,将电流限制在每个LED的额定值以下。
2.单片机选型:2.1功能要求:选择具备足够的I/O管脚数量,用于控制LED的亮灭和流动速度,以及接受按键输入的单片机。
2.2仿真和编程支持:选择具备仿真和编程支持的单片机,以方便调试和开发。
3.单片机与LED的连接:3.1端口选择:选择合适的I/O口进行连接,根据LED连接方式决定使用串口或并口进行连接。
3.2串行或并行输出:设置相应的单片机端口为输出模式,并将其与LED连接。
4.软件设计:4.1初始化:对单片机进行初始化设置,包括设置I/O口状态和初始化计时器。
4.2流水灯特效:使用循环控制语句控制LED流动的方向和速度,并通过改变LED的亮灭状态实现不同的灯光效果。
4.3按键控制:使用中断或轮询方式检测按键输入,并通过控制流水灯的运行状态来实现按键控制功能。
5.测试和调试:5.1仿真调试:使用仿真软件对设计的电路和代码进行调试,确保运行正常。
5.2硬件调试:将设计的电路和程序烧入实际的单片机和电路板中,通过观察和测试,确保流水灯的特效和按键控制功能正常。
总结:LED流水灯单片机设计是一个简单且具有实践意义的项目,通过设计和控制LED流水灯,可以提高对单片机的理解和熟练程度。
本文介绍了设计流程和关键步骤,希望对读者有所帮助。
通过本项目的实践,可以进一步扩展其他LED灯光效果的设计和控制。
基于单片机的流水灯控制系统设计
电子设计综合实训学院:工学院专业:电气工程及其自动化班级:姓名:学号:2020年6月12日目录摘要 (4)前言 (5)1 设计内容及设计方案 (5)1.1 设计内容 (5)1.2 设计方案 (5)2 单片机硬件电路设计 (6)2.1 单片机最小系统 (6)2.1.1 选用AT89C51的引脚功能 (6)2.1.2 复位电路 (7)2.1.3 时钟电路 (8)2.2 流水灯部分 (8)2.3 完整电路图 (9)3 单片机软件电路设计 (10)4 PCB设计 (10)4.1 AD原理图设计 (10)4.2 PCB文件设计 (11)5 电路组装与焊接 (12)5.1 电子元器件的手工焊接: (12)5.1.1 焊接方法步骤: (12)5.1.2 质量标准 (12)5.1.3 影响焊接质量的两个关键因素 (12)5.2 面包板搭接 (13)6 利用单片机驱动LED灯相关实验 (13)6.1 实验一LED灯闪烁控制 (13)6.1.1 LED灯闪烁控制仿真过程图 (13)6.1.2 LED灯闪烁控制电路程序编写 (13)6.2 实验二跑马灯控制 (15)6.2.1 跑马灯控制电路仿真过程图 (16)6.2.2 跑马灯控制电路程序编写 (16)6.3 实验三开关控制LED灯 (19)6.3.1 开关控制LED灯电路仿真过程图 (19)6.3.2 开关控制LED灯电路程序编写 (20)结论 (23)参考文献 (25)摘要计算机技术的飞速发展和提高,把我们带入了崭新的时代,现在,计算机的应用已经深入到千家万户。
单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。
单片机在现在社会有着广泛的应用,小到人们的日常电子用品,大到航天飞机、宇宙飞船,上面都有单片机的广泛应用。
单片机具有体积小、功能强大、低功耗、应用广泛等特点。
本文是基于51单片机的花样流水灯的项目设计,在项目程序设计中运用了单片机AT89C51芯片实现流水灯花样点亮,控制8个发光二极管的流水灯亮灭。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机应用技术》课程设计报告2015 ~ 2016 学年第 2 学期题目:基于单片机的LED流水灯控制系统设计专业:电气工程及其自动化班级: 13电气(2)班姓名:杨光单亚指导教师:陆媛宋洪儒成绩:电气工程学院2016年 6月9 日任务书摘要 (1)第一章 AT89S51单片机硬件介绍 (2)1.1 AT89S51单片机硬件组成 (2)1.2 AT89S51管脚说明 (3)1.2.1 电源及时钟引脚 (4)1.2.2控制引脚 (4)1.2.3并行I/O口引脚 (4)第二章硬件电路设计 (6)2.1 时钟电路设计 (6)2.2复位电路设计 (7)2.3 LED灯显示电路 (7)2.4 LED流水灯总硬件图 (8)第三章软件设计 (9)3.1软件设计流程图 (9)3.2 延时程序 (9)3.3 主程序 (9)3.4LED流水灯总程序 (10)第四章 Proteus虚拟设计与仿真 (11)4.1 Proteus虚拟设计与仿真流程 (11)4.2 Proteus ISIS下电路设计 (11)4.3源程序设计与生成目标代码文件 (12)4.3.1 源程序输入 (12)4.3.2源程序编译与调试 (14)4.4 Proteus ISIS与Keil Vision2 联调 (15)第五章电路板制作 (16)5.1元器件清单 (16)5.2 元器件布局 (16)5.3 元器件焊接 (17)5.4电路板验收 (17)总结 (18)参考文献 (19)单片机(Microcontrollers)诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。
其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
学习单片机就免不了要编写程序,目前使用较为广泛的是C语言。
C语言是一门通用计算机编程语言,应用广泛。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C 语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
目前使用较多的单片机芯片为AT89S51.AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80S51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。
关键词:单片机 C语言 AT89S51第一章 AT89S51单片机硬件介绍单片机应用的特点是编写程序来控制硬件,所以,首先熟知并掌握AT89S51单片机片内硬件的基本结构和特点。
1.1 AT89S51单片机硬件组成AT89S51单片机的片内硬件组成结构如图1-1所示,它把那些作为控制应用所必需的基本外围部件都集成在一个集成芯片上。
AT89S51具有如下外围部件:图1-1 AT89S51单片机片内结构1、4k Bytes Flash片内程序存储器;2、128 bytes的随机存取数据存储器(RAM);3、32个外部双向输入/输出(I/O)口;4、2个中断优先级、2层中断嵌套中断;5、5个中断源;6、2个16位可编程定时器/计数器;7、2个全双工串行通信口;8、看门狗(WDT)电路;9、片内振荡器和时钟电路;10、与MCS-51兼容;11、全静态工作:0Hz~33MHz;12、三级程序存储器保密锁定;13、可编程串行通道;14、低功耗的闲置和掉电模式。
1.2 AT89S51管脚说明AT89S51单片机多采用40只引脚的塑料双列直插封装方式,如图1-2所示。
40只引脚按功能可以分为如下3类:(1)电源及时钟引脚:v cc、v ss、XTAL1、XTAL2;(2)控制引脚:PSEN、ALE/PROG、EA/VPP、RST(3)I/O口引脚:P0、P1、P2、P3图1-2 AT89S51双列直插封装方式的引脚1.2.1 电源及时钟引脚VCC(40引脚):电源电压输入端GND(20引脚):电源地XTAL1(19引脚):片内振荡器反相放大器和时钟发生器的输入端。
XTAL2(18引脚):片内振荡器反相放大器的输出端。
1.2.2控制引脚ALE/PROG(30引脚):地址锁存允许/编程脉冲信号端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时, ALE 只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:外部程序存储器的选通信号,低电平有效。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:外部程序存储器访问允许。
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
RST:复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
1.2.3并行I/O口引脚P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通I/O口,还P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
AT89S51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有其他的功能。
第二章硬件电路设计基于单片机的LED流水灯控制系统硬件包含时钟电路、复位电路和LED灯显示电路。
故本章主要就介绍这几种电路。
2.1 时钟电路设计AT89S51单片机各外围部件的运行都以时钟控制信号为基准,有条不紊、一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式,一种是内部时种方式,另一种是外部时钟方式。
本课设我选择内部时钟方式,所以下面内容是关于内部时钟电路的。
AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图2-1所示为AT89S51单片机内部时钟方式的电路。
电路中的电容和的典型值通常选择为30pF,晶体振动频率通常选择6MHz、12MHz(可得到准确的定时)或11.0592MHz(可得到准确的串行通信波特率)的石英晶体。
本实验采用12MHz的石英晶体。
图2-1 AT89S51内部时钟方式的电路2.2复位电路设计AT89S51单片机的复位是由外部电路实现的。
AT89S51典型的复位电路如图2-2所示。
上电时的自动复位是通过v cc(+5V)电源给电容C充电加给RST引脚一个短暂的高电平信号,此信号随着v cc对电容C的充电过程而逐渐回落,即RST引脚上高电平持续时间取决于电容C充电时间。
因此为保证系统能可靠的复位,RST引脚上的高电平必须大于复位所要求的的高电平的时间。
除了上电复位外,有时候还需要人工按键复位。
按键复位时通过RST端经两个电阻对接通分压产生高电平来实现。
电源图2-2 复位电路2.3 LED灯显示电路由AT89S51单片机硬件组成(第一章)可知,AT89S51共有4个I/O口,其四个I/O 口都可以作为通信端口,但P0口没有上拉电阻,做输出时需要上拉电阻,而P1、P2、P3不需要上拉电阻。
在做实物时由老师给的器材可知,没有上拉电阻,所以不能选P0口,可以选其他三个I/O口。
另外,8个LED灯有共阴和共阳两种连接方式,共阳极就是将阳极连接在一起,公共阳极接到+5V上;共阴极就是将共阴极接在一起,通常此共阴极都是接地。
综合考虑,我选择的是P2口LED灯共阴连接,其显示电路如图2-3所示。