基于单片机的 6种 led彩色循环灯

基于单片机的  6种 led彩色循环灯
基于单片机的  6种 led彩色循环灯

课程设计报告

一、课题名称

LED彩灯控制器

二、课程设计的目的和意义

1、掌握单片机技术,及其原理。

2、熟练使用C语言编程及KEIL软件。

3、掌握硬件设计

4、熟悉LED彩灯控制器原理

三、设计目标或任务要求、任务分析

要求:1、9个发光管6种花样自动变换,循环往复。

2、彩灯花样变换的快慢节拍可以选择。

3、系统复位清零开关。

任务分析:

方案:利用时间中断控制变换的快慢

原理:本方案的主要思想是将多种方式的引脚变换的数据装在一个数组里面,装载在rom里面,通过定时器中断将灯的闪烁控制在一个频率内。

原理图如下:

方案

电路实现:通过单片机引脚的高低电平控制led小灯的亮灭。

程序清单:

#include"reg52.h"

#define shuchu P1 //前8个灯的引脚

sbit danshuchu = P2^0; //D9最后一个灯

sbit jia = P2^1; //时间片增加循环变慢

sbit jian = P2^2; //时间片减少循环变快

unsigned char times=5, num=0; //分别是时间片时间计数

//利用一个数组将所要表示的6种亮的模式存入rom中 table0

是前8个的表 table1是最后一个的表下面是单点状态unsigned char code table0[]

={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,//从左到右依次亮 0000 0000 $1

0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,//从右到左依次亮 1000 000$0 0

0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,//亮灭亮灭 1010 10$10 1

0x08,0x14,0x22,0x41,0x80,0x41,0x22,0x14,0x08,//从中间到两边,在返回中间 0000 1$000 0

0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,0xff,//从左到右亮一条线 0000$ 0000 1

0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,// 从右到左亮一条线 100$0 0000 0 00//补位

};

unsigned char code table1[] ={0x00,0x03,0x53,0x85,0x00,0x30,0x00};

unsigned int choose=0, count=0,countrl=0; //分别定义

void main()

{

TMOD=0x01;

TH0=(65536-65072)/256;

TL0=(65536-65072)%256;

EA=1;

ET0=1;

TR0=1;

while(1){

if(0==jia)

{while(0==jia); times++; if(times>30) times=30;} if(0==jian)

{ while(0==jian);;times--; if(times<3) times=3;} }

}

void T0_time() interrupt 1

{

TH0=(65536-55872)/256;

TL0=(65536-55872)%256;

num++;choose++;

if(times==num) //可改变时间片

{

num=0;

danshuchu=(bit)((table1[count/8]>>(count%8))&0x01); shuchu=table0[count++];

if((countrl+9)==count)

{count-=9; if(countrl>50)countrl=0;count=0;} //使之循环if(100==choose) {choose=0;countrl+=9;} //循环时间

}

}

四、实验验证过程及结果

过程:1、启动keil软件,打开工程文件,编译源码,把程序下载到实验开发板上。

2、观察现象。

结果:9个发光管6种花样自动变换,循环往复。

变换方式见源码。

虽然只是用protues进行仿真但是我在开发板上进行过实际测试,完全可以通过。

五、结论

本设计完成要求,能实现彩灯变换。共有6种方式,每种方式有9个变换点,虽然老师很是希望看到更多硬件的实现,但是我还是只是做了个仿真,非常抱歉。按键本来应该用外部触发中断方式,但是限于时间和本人非常懒惰,只是用普通IO实现,有可能出现按一下没感觉的可能。

六、总结(体会)

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

这次课程设计终于结束了

所以上传了本文档

希望我的论文对你会有帮助

希望你只是借鉴而不是抄袭

基于单片机的流水灯系统

目录 1.系统方案选 (x) 1.1 设计要求 (x) 1.2 方案选择 (x) 2 系统的硬件设计与实现 (x) 2.1芯片介绍 (x) 2.2 电源 (x) 2.3 时钟 (x) 2.4 I/O线 (x) 2.5 晶振电路 (x) 2.6 LED电路 (x) 2.7按键电路 (x) 3 系统的软件设计 (x) 3.1 程序流程图 (x) 3.2 程序设计 (x) 3.3 仿真电路图 (x) 3.3.1仿真电路初始化图 (x) 3.3.2 仿真结果(设计实现的功能) (x) 3.3.3 结论 (x) 4.设计心得与体会 (x) 5.参考文献 (x)

【摘要】:若干个灯泡有规律依次点亮或者依次熄灭叫流水灯,它用在夜间建筑 物装饰方面。例如在建筑物的棱角上装上流水灯,可起到变换闪烁美不胜收的效果。一般情况下单片机的流水灯由若干个LED发光二极管组成,在单片机系统运行时,可以在不同的状态下让流水灯显示不同的组合,作为单片机运行正常的指示,当单片机系统出现故障时,可以利用流水灯显示当前的故障码,对故障做出诊断。 本设计采用一块单片机(AT89C52.BUS)作为流水灯系统的控制核心,通过编程来实现单片机I/O口对LED的控制,使流水灯显示上下流动、停止流动、闪灯等功能,并由按键控制流水灯的不同亮法,LED的工作方式通过键盘的扫描实现。其中的LED采取共阳极接法,通过依次向连接的LED的I/O口送出低电平来 实现LED的点亮。 【关键词】:流水灯按键控制单片机 1、方案: 1.1设计要求: 以单片机为核心,设计一个节日彩灯控制器: P1.2—开始,按此键则灯开始流动(由上而下)。 P1.3—停止,按此键则停止流动,所有灯为暗。 P1.4—上,按此键则灯由上向下流动。 P1.5—下,按此键则灯由下向上流动。 1.2方案选择: 根据题目的要求,控制模块需要选择单片机作为核心控件,可以选择的单片机有AT89C51、AT89C52还有各自的总线型号的,而对于按键,可以选择BUTTON,当然用SWITCH来代替也是可以实现的;显示模块的LED发光二极管也有很多颜色可以供选择如红色、蓝色、绿色等。 考虑到题目的要求与电路图布线的问题,经过仔细的分析和论证,最终的方案如下:单片机:AT89C52.BUS、按键:BUTTON 发光二极管:LED-RED。 系统的基本框图1.2.1所示,单片机主要用于对流水灯模块(发光二极管)的控制,实现流水灯从上往下流、停止、由下往上流、闪烁的功能,而按键模块控制单片机I/O口的输出电平,间接地控制流水灯模块。

用单片机控制的LED流水灯设计(电路、程序全部给出)

1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATM EL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz 工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要

基于单片机的彩灯设计

题目 基于单片机的彩灯设计 任务与要求 1.用三个按键开关K1,K2,K3组成一个独立式键盘,其中K1控制八个彩灯从左 向右依次循环点亮,K2控制八个彩灯从右向左依次循环点亮,K3控制八个彩灯按一定的时间间隔闪烁点亮。 2.给出硬件实现电路及软件程序 3.论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。 开始日期 2011.12.19 完成日期 2011.12.30 2011年 12 月 18 日 一:课程设计任务 基于单片机设计一个彩灯 二:课程设计的要求: 利用89C51单片机设计彩灯,用三个按键开关K1,K2,K3组成一个独立式键盘,其中K1控制八个彩灯从左向右依次循环点亮,K2控制八个彩灯从右向左依次循环点亮,K3控制八个彩灯按一定的时间间隔闪烁点亮。

三:设计过程: 1.设计原理: 此次课程设计题目是基于单片机的彩灯设计,由课程设计的要求和任务,我采用的C语言编程,系统由AT89C51、LED 发光二极管、按键,可以实现彩灯的不同类型显示切换。其硬件电路主要有主控制器,LED显示电路,复位电路,晶振电路。系统程序的设计包括主程序的设计,中断服务程序等等。此程序直接在Keil软件编译程序,利用Proteus进行仿真调试,方便修改程序。 2.芯片介绍: AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2.1主要特性: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道

单片机控制左右来回循环的流水灯

左右来回循环的流水灯 设计要求 8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。编程实现制作左右来回循环的节日彩灯,显示规律如下图所示。 题37图节日彩灯的花样显示的规律 为了使显示效果更加绚丽多彩,P1端口8个引脚分别接有不同颜色的发光二极管。具体如题37表所示。 题37表P1口8个引脚的不同颜色的发光二极管 使用C51编流水灯程序以及设计相应的硬件电路十分简单,且有多种方法。本方案力求程序最简化最清晰原则,用NS图(盒图)表示算法如下:

程序中设置中间变量temp用来给P1口赋值,命令_crol_和_cror_用于使temp左移或右移,例如当temp=11111110B时,执行_crol_(temp,1)之后temp=11111101,应用此两条语句必须把头文件包含进来。 全部代码如下: #include #include unsigned char temp; //定义字符变量temp,temp左移或右移并给连接LED的P1口赋值 int a; //定义延迟函数delay() void delay(void); void main() { temp=0xfe; //给temp赋初值 P1=temp; //temp赋值给P1口,第一个LED(红色)点亮 while(1) //主程序,括号中的程序将一直循环 { for(a=0;a<7;a++) //左移部分,LED从左到右依次点亮 { temp=_crol_(temp,1); //_crol_语句控制变量temp左移 delay(); //每个灯点亮之后延迟一会在点下一个灯 P1=temp; }

基于单片机控制LED灯亮度调节 邓宇锋

基于单片机控制LED灯智能亮度调节 系部:机电工程系 学生姓名:邓宇锋 专业班级:电气 11C3 班 学号: 6 指导教师:茅阳 2014年3月10日

声明 本人所呈交的基于单片机控制LED灯亮度调节,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 2014年3月10日

摘要 本文介绍LED灯智能亮度调节驱动电路设计,智能照明控制系统在确保灯具能够正常工作的条件下,给灯具输出一个最佳的照明功率,既可减少由于过压所造成的照明眩光,使灯光所发出的光线更加柔和,照明分布更加均匀,又可大幅度节省电能,智能照明控制系统节电率可达20%-40%。智能照明控制系统它可在照明及混合电路中使用,适应性强,能在各种恶劣的电网环境和复杂的负载情况下连续稳定地工作,同时还将有效地延长灯具寿命和减少维护成本。 【关键词】:智能控制;LED;智能光补

目录 引言 (1) 一、智能的概述 (2) (一)智能的定义 (2) (二)智能的分类 (2) 二、LED发光二极管的认识 (2) (一)LED的构造 (2) (二) LED的发光原理 (3) (三)LED的优势 (3) 三、LED亮度控制系统 (3) (一)脉冲宽度调制 (3) (二)调制LED的驱动电流 (3) (三)线性调光法 (3) 四、单片机及程序设计 (3) (一)概述 (4) (二)单片机STC89C51芯片简介 (4) (三)程序 (7) 此套控制分主程序与子程序,截取主程序代码在附件中。 (7) 五、控制系统电路设计 (7) (一)LED驱动电路 (7) (二)光电传感器的选择 (8) (三)电气原理图 (9) 六、实物调试 (9) 总结 (1) 参考文献 (2) 谢辞 (3) 附件 (4)

单片机c语言编程控制流水灯

说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上面讲过几个条件的哦)。那个单片机究竟有什么 功能和作用呢?先不要着急!接下来让我们点亮一个LED(搞电子的应该知道LED是什么吧^_^) 我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机 上接上最少的外围电路元件让单片机工作。一般只须连接晶体、VCC、GND、RST即可,一般情况下,AT89C51的31脚须接高电平。 #include //头文件定义。或用#include其具体的区别在于:后者定义了更多的地址空间。 //在Keil安装文件夹中,找到相应的文件,比较一下便知! sbit P1_0 = P1 ^ 0; //定义管脚 void main (void) { while(1) { P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效 } } 就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。因为我们把LED的正通过电阻接至VCC。 P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。那么这样就能达到了我们预先的要求了。 while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。如果我们要试着点亮其他的LED,也类似上述语句。这里就不再讲了。 点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其 实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。假设我们有8个LED分别接在P1口的8个引脚上。硬件连接,在 P1_1--P1_7上再接7个LED即可。例程如下: #include sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P1 ^ 4; sbit P1_5 = P1 ^ 5; sbit P1_6 = P1 ^ 6; sbit P1_7 = P1 ^ 7; void Delay(unsigned char a) { unsigned char i; while( --a != 0) {

基于AT89S52单片机的简易循环彩灯设计

基于AT89S52单片机的简易循环彩灯控制设计 目录 绪论 (4) 1项目分析 (2) 1.1 需求分析 (2) 1.2 功能模块分析 (3) 1.2.1 系统模块图 (3) 1.2.2 外部时钟电路 (3) 1.2.3 复位电路 (3) 1.2.4 LED驱动电路 (4) 1.2.5 最小系统电路 (4) 1.3 方案设计 (5) 1.3.1 设计方案比较及选择 (5) 1.3.2 可行性分析 (5) 1.3.3 难点分析及解决方法 (5) 1.4 技术性能指标 (6) 1.4.1基本要求: (6) 1.4.2 彩灯闪烁花型 (6) 2 硬件设计 (6) 2.1 总体电路图 (6) 2.2 电路的工作原理 (7) 2.3 元器件及其参数选择 (7) 2.4 PCB板的制作 (9) 2.5焊接组装 (9) 3 电路调试 (10) 3.1 静态调试 (10) 3.2 通电调试 (10) 3.3 故障分析与排除 (10) 4 软件设计 (11) 4.1 程序设计 (11) 4.2 程序功能模块的划分 (11) 4.3 程序框架图 (11) 4.4 软件程序: (11) 4.4 程序调试 (14) 4.5 系统仿真 (14) 4.6 设计结果评价 (15) 5 结语 (15) 参考文献 (17) 附录: (18) 致谢 (19)

基于AT89S52单片机的简易循环彩灯控制设计 摘要 在当代生活里,人们对生活灯饰品的要求越来越高,这样无疑使得各种彩灯成为了最日常生活中不可缺少的装饰品,它不仅能美化都市环境,渲染生活气氛,还可将其用于各种娱乐场所和电子玩具中。现以本毕业设计为例进行分析与设计简易的可编程的循环彩灯控制电路很多,其组合的方式和运用的集成块的种类及数目更是多种多样,而且还有专门的可编程[9]循的各种复杂程度的循环彩灯控制电路模块。市场上及大多数的彩灯都是运用各种数字电路来实现的,但本毕业设计在考虑到制作简易程度及成本的前提下,由于单片机具有集成度高、功耗低、运行可靠性强、体积并不大、价格低廉等优点 , 所以特意地运用了单片机、LED等优点及技术,来实现对各种形式不一的各色彩灯的自动简易控制。 本毕业设计以AT89S52单片机[2]为主要的控制核心,各电路都采用模块化的设计方法,运用各色LED彩灯、普通按键等组成主要电路,运用可编程循软件在按键的控制下实现对彩灯循环点亮花样及模式进行选择,从而达到每个不同需求的人对设计出来的成品的要求。本毕业设计具有体积小、电子元器件少、电路结构简易及操作方便等优点。 关键词:AT89S52单片机;数字电路[4];循环灯; LED Simple cycle lights AT89S52 microcontroller-based control designs Abstract

最经典的51单片机经典流水灯汇编程序

单片机流水灯汇编程序设计 开发板上的8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。 程序A: ;用最直接的方式实现流水灯 ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY;延时1秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY;延时1秒 MOV P1,#11011111B ;最下面第三个的LED点亮(以下省略) LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环 ;延时子程序,12M晶振延时约250毫秒 DELAY: MOV R4,#2 L3: MOV R2 ,#250 L1: MOV R3 ,#250 L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET END 程序B: ;用移位方式实现流水灯

ajmp main ;跳转到主程序 org 0030h ;主程序起始地址 main: mov a,#0feh ;给A赋值成11111110 loop: mov p1,a ;将A送到P1口,发光二极管低电平点亮 lcall delay ;调用延时子程序 rl a ;累加器A循环左移一位 ajmp loop ;重新送P1显示 delay: mov r3,#20 ;最外层循环二十次 d1: mov r4,#80 ;次外层循环八十次 d2: mov r5,#250 ;最内层循环250次 djnz r5,$ ;总共延时2us*250*80*20=0.8S djnz r4,d2 djnz r3,d1 ret end 51单片机经典流水灯程序,在51单片机的P2口接上8个发光二极管,产生流水灯的移动效果。 ORG 0 ;程序从0地址开始 START: MOV A,#0FEH ;让ACC的内容为11111110 LOOP: MOV P2,A ;让P2口输出ACC的内容 RR A ;让ACC的内容左移 CALL DELAY ;调用延时子程序 LJMP LOOP ;跳到LOOP处执行 ;0.1秒延时子程序(12MHz晶振)=================== DELAY: MOV R7,#200 ;R7寄存器加载200次数 D1: MOV R6,#250 ;R6寄存器加载250次数 DJNZ R6,$ ;本行执行R6次 DJNZ R7,D1 ;D1循环执行R7次 RET ;返回主程序

单片机C语言LED灯点亮程序完全版

单片机C语言L E D灯点亮 程序完全版 Prepared on 24 November 2020

1例子1第二个灯亮 #include<> voidmain() { P1=0xfd; } #include<> SbitD1=P1^0; Voidmain() { D1=0 } 注意:稍微改程序时需重新hex化 例子2第一个灯亮 #include<>include<>//52单片机头文件 sbitled1=P1^0;//单片机管脚位声明 voidmain() //主函数 { unsignedinti;//定义一个int型变量 while(1) { i=50000;//变量赋初值为50000 led1=0; //点亮灯 while(i--);//延时 i=50000; led1=1;//熄灭灯 while(i--); } } 3例子1357灯同时亮

#include<>//52单片机头文件 sbitled1=P1^0;//单片机管脚位声明 sbitled3=P1^2;//单片机管脚位声明 sbitled5=P1^4;//单片机管脚位声明 sbitled7=P1^6;//单片机管脚位声明 voidmain() //主函数 { led1=0; //将单片机口清零 led3=0; //将单片机口清零 led5=0; //将单片机口清零 led7=0; //将单片机口清零 while(1);//程序停止在这里,在后面会讲到为什么这样写。} 例子21357同时亮 #include<>//52单片机头文件 voidmain() //主函数 { P1=0xaa; while(1);//程序停止在这里,在后面会讲到为什么这样写。} 例子3流水灯一个一个接着亮不循环 #include<>//52单片机头文件 voidmain() //主函数 { unsignedinti;//定义一个int型变量

最新五种编程方式实现流水灯的单片机c程序讲课教案

五种编程方式实现流水灯的单片机C程序 //功能:采用顺序结构实现的流水灯控制程序 /*此方式中采用的是字操作(也称为总线操作)*/ #include void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1 = 0xfe; //点亮第1个发光二极管,0.000389s delay(200); //延时 P1 = 0xfd; //点亮第2个发光二极管,0.155403s,0.1558 delay(200); //延时 P1 = 0xfb; //点亮第3个发光二极管 delay(200); //延时 P1 = 0xf7; //点亮第4个发光二极管 delay(200); //延时 P1 = 0xef; //点亮第5个发光二极管 delay(200); //延时 P1 = 0xdf; //点亮第6个发光二极管 delay(200); //延时 P1 = 0xbf; //点亮第7个发光二极管 delay(200); //延时 P1 = 0x7f; //点亮第8个发光二极管 delay(200); //延时 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数{ unsigned char j, k; //定义无符号字符型变量j和k for(k = 0; k < i; k++) //双重for循环语句实现软件延时 for(j = 0; j < 255; j++); } //功能:采用循环结构实现的流水灯控制程序 //此方式中采用的移位,按位取反等操作是位操作 #include //包含头文件REG51.H void delay(unsigned char i); //延时函数声明 void main() //主函数

(完整word版)stm32单片机节日彩灯控制器

燕山大学 课程设计说明书 题目:节日彩灯控制器设计 学院(系):__________________________________________ 年级专业: __________________________________________ 学号:__________________________________________ 学生姓名:__________________________________________ 指导老师:__________________________________________ 答辩日期:__________________________________________

燕山大学课程设计(论文)任务书

摘要 节日彩灯是生活中常常的装饰物品,是我国普遍流行的传统的民间的综合工艺品。彩灯艺术也是灯的综合性的装饰艺术。在当今社会里,彩灯已经成为我们生活当中的一部分,能给我们带来视觉上的享受,还能美化我们的生活。彩灯控制器主要是通过产生有规律变化的脉冲信号来实现彩灯的各种变化,他集中的应用了单片机、LED、自动控制等技术,是典型的基于单片机的电子产品。本文以stm32单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现才在开启时满足不一样的闪亮方法及方式。按K1—开始,按此键则灯开始流动(由上而下)。K2—停止,按此键则停止流动,所有灯为暗。K3—上,按此键则灯由上向下流动。K4—下,按此键则灯由下向上流动。通过按键能方便使用者选择不一样的亮法。并用仿真软件进行仿真按不同的方式点亮LED。还有就是这节日彩灯的制作成本低、精确度高、装调容易,为节日增添气氛,具一定的市场价值,因此制作了此节日彩灯。 关键词:节日彩灯;单片机;LED;设计;仿真

基于51单片机的流水灯控制

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的

视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。 3.软件编程 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。 3.1位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下:ORG 0000H ;单片机上电后从0000H地址执行 AJMP START ;跳转到主程序存放地址处 ORG 0030H ;设置主程序开始地址 START:MOV SP,#60H ;设置堆栈起始地址为60H CLR P1.0 ;P1.0输出低电平,使LED1点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED1熄灭

基于51单片机的流水灯设计说明

基于51单片机的流水灯设计 一.基本功能 利用AT89c51作为主控器组成一个LED流水灯系统,实现8个LED 灯的左、右循环显示。 二.硬件设计 图1.总设计图

1.单片机最小系统 1.1选用AT89C51的引脚功能 图2. AT89C51 XTAL1:单芯片系统时钟的反向放大器输入端。 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语言虽然执行效率没有汇编语言

51单片机控制LED灯程序设计

51单片机:LED灯亮灯灭程序设计 1.功能说明:控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。 程序: 01: MOV A , #11111110B ; 存入欲显示灯的位置数据 02: MOV P1, A ; 点亮第一只灯 03: JMP $ ; 保持当前的输出状态 04: END ; 程序结束 2.功能说明:单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。 程序: 01:START: MOV A , #00010010B ; 存入欲显示灯的位置数据 02: MOV P1, A ; 点亮灯

03: JMP START ; 重新设定显示值 04: END ; 程序结束 3.功能说明:单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重复循环。 程序: 01: START: MOV R0, #8 ;设左移8次 02: MOV A, #11111110B ;存入开始点亮灯位置 03: LOOP: MOV P1, A ;传送到P1并输出 04: RL A ;左移一位 05: DJNZ R0, LOOP ;判断移动次数 06: JMP START ;重新设定显示值

07: END ;程序结束 4.功能说明:单片机P1端口接8只LED,每次点亮一只,向右移动点亮,重复循环。 程序: 01: START: MOV R0, #8 ;设右移8次 02: MOV A, #01111111B ;存入开始点亮灯位置 03: LOOP: MOV P1, A ;传送到P1并输出 04: ACALL DELAY ;调延时子程序 05: RR A ;右移一位 06: DJNZ R0, LOOP ;判断移动次数 07: JMP START ;重新设定显示值

单片机彩灯循环

《单片机原理及应用》课程设计报告 题目:彩灯循环系统 专业:电子信息工程 班级: 学号: 姓名: 指导教师:

一.实验目的: 《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。 二.实验内容: 通过8051单片机实现彩灯循环 三.实验过程: 1.引言 随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,便宜的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,。。 本方案提出了一种基于8051单片机的彩灯控制方案,实现对LED彩灯的控制。本方案以8051单片机作为主控核心,在主控模块上设有3个按键和8个码LED显示灯,根据需要可以编写若干种亮灯模式,利用其内部定时器T0实现一个基本单位时间为1 ms的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。与普通LED 彩灯相比,具有体积小、价格低、低能耗等优点。 2.8051单片机引脚功能介绍 首先我们来连接一下单片机的引脚图,如果,具体功能在下面都有介绍。单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 ⒈电源: ⑴ VCC - 芯片电源,接+5V; ⑵ VSS - 接地端; ⒉时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

基于-单片机的节日彩灯设计

单片机课程设计 题目: 院(系): 专业: 学号: 姓名: 指导教师:

摘要 彩灯控制器在我们的日常生活中有着重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。本次报告中设计的花样彩灯控制器是其中较简单的,但这是进行复杂设计的基础。 查阅相关资料,用简单的输入输出端口等硬件,结合实际彩灯的亮灭控制过程进行设计。利用键盘上的灯实现灯的各种形式的变换,使彩灯变换的样式更多,克服了节日彩灯变换样式单调的缺点,使节日彩灯朝着变换多种多样的方式发展。 关键词:可编程节日彩灯;循环;控制高低电平;实现对彩灯的控制

目录 目录 引言 (4) 1、设计目的与要求 (5) 2、设计总体方案 (5) 3、模块电路的设计 (7) 4、独立设计部分 (10) 5、焊接制作与调试结果及其分析 (12) 6、设计过程中的问题及其解决方案 (13) 7、心得体会 (13) 8、改进工作展望 (14) 参考文献 (14) 附录一 (15) 附录二 (17) 附录三 (19) 1 设计目的与要求 1.1引言 在现代生活中,彩灯作为一种景观,安装在建筑物的适当地方。一是作为装饰增添

节日气氛,二是有一种广告宣传的作用:用在舞台上增强晚会灯光效果。 彩灯控制器在我们的日常生活中有着重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。本次报告中设计的花样彩灯控制器是其中较简单的,但这是进行复杂设计的基础。 数码管是一种半导体发光器件,其基本单元是发光二极管。通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。由于它的价格便宜、使用简单,在电器特别是家电领域应用极为广泛,空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。 可编程节日彩灯打破常规彩灯闪烁固定变化的现状,可根据人们不同的意愿进行编程设计出想要的变换的色彩效果。查阅相关资料,用简单的输入输出端口等硬件,结合实际彩灯的亮灭控制过程进行设计。利用键盘上的灯实现灯的各种形式的变换,使彩灯变换的样式更多,克服了节日彩灯变换样式单调的缺点,使节日彩灯朝着变换多种多样的方式发展。 1.2设计目的 通过课程设计使我们更进一步掌握微机原理与应用课程的有关知识,通过查阅资料,阅读程序,提高设计程序的能力及动手能力,使编程水平有一定的提高,同时也会提高我们通过动手进行硬件设计及程序设计从而提高解决实际问题的能力。 1.3实验要求———————————— 1. 用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭; 2. 手动模式与自动模式切换:设置一个按钮可以在自动模式和手动模式间切换; 3. 手动模式可以用输入按钮在几种灯光效果间切换; 4. 自动模式下自动在几种效果间切换的功能; 5. 可以通过按钮暂停彩灯效果,使小灯全亮并闪烁,再次按下相同按钮后继续之前的效果。 2 设计总体方案 2.1硬件设计的思路、原理、设计细节 用单片机最小系统控制彩灯电路用流水灯的方式实现彩灯自动闪烁,彩灯电路总共有32的LED共隐接法组成,彩灯电路有三个部分,八个LED组成“二”,十六个LED组成字母“G”,八个LED组成字母“O”。用P0口的P1.0、P1.1、P1.2、P1.3控制四个LED点亮或熄灭,P1.0、P1.1、P1.2、P1.3控制四个LED点亮或熄灭,用P1和P2控制字母“G”的点亮或熄灭,用P3控制字母“O”的点亮熄灭。 2.2、软件设计的思路、原理、设计细节 采用C语言编写控制程序,程序设计思路用流水灯先点亮“二”,然后再点亮字母“G”,最后点亮“O”。

基于单片机的节日彩灯控制器

基于单片机的节日彩灯控 制器 Prepared on 24 November 2020

湖北文理学院理工学院 课程单片机课程设计 题目节日彩灯控制器设计 专业通信工程 姓名学号 姓名学号 姓名学号 一、任务 以单片机为核心,设计一个节日彩灯控制器。 二、设计要求 以单片机为核心,设计一个节日彩灯控制器,要求有四个控制按键: ●K1—开始,按此键则灯开始流动(两翼展开)。 ●K2—停止,按此键则停止流动,所有灯为暗。 ●K3—上,按此键则灯由上向下流动。 ●K4—下,按此键则灯由下向上流动。

第1章绪论 彩灯是我国普遍流行的传统的民间的综合性的工艺品。彩灯艺术也就是灯的综合性的装饰艺术。新中国成立后,彩灯艺术得到了更大的发展,特别是随着我国科学技术的发展,彩灯艺术更是花样翻新,奇招频出。而随着人们生活环境的不断改善和美化,在许多节日的气氛里可以看到彩色霓虹灯,这种LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。其将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一。在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。 1 LED彩灯控制器概述 新型LED彩灯系统包括两大部分,即LED彩灯控制器(89C51主控模块)和LED彩灯管(管内LED板模块)。彩灯控制器是主控模块,具有按键、显示等功能,并利用89C51的P口输出控制信号;彩灯管是受控模块,上面焊有三色LED彩灯和信号驱动芯片,模块置于LED的透明管内。该LED彩灯控制器是一种基于STC89C51单片机的彩灯控制器,实现对LED彩灯的控制。其以STC89C51单片机作为主控核心,与键盘、显示、驱动等模块组成核心主控制模块。如果稍微改动控制电路,就可以改变电路的不同工作状态,控制彩灯变幻出不同的闪烁效果。 2 LED彩灯控制技术状况 彩灯控制电路是由单元模块电路组合而成的,主要以STC89C51单片机为控制中心,并与按键控制电路、时钟电路、复位电路在直流稳压电路的相互作用下进而控制彩灯亮灭的顺序,从而实现多控制、多闪烁方式的LED彩灯循环。 3 本设计任务 运用STC89C51单片机、发光二极管、电阻、电容、按键等元件组成LED 节日彩灯控制电路中的按键控制电路、彩灯显示电路以及单片机最小系统等模块。并用Proteus等软件仿真,做出其电路仿真图。 第2章总体方案设计与论证

单片机流水灯先下后上循环

今天刚买一个单片机,然后看着教程发现其实单片机很有意思,看完他的第一个例子,就是流水灯实验,我就想着让他先是从上往下,然后从下往上的循环,下面就是代码了: #include #include #define uint unsigned int #define uchar unsigned char void later(uint xms); uchar aa; uchar bb; uint x,y; void main() { aa=0xfe; while(1) { x=1;y=1;

while(x) { P1=aa; later(500); aa=_crol_(aa,1); bb=0xBF; if(P1==bb) { x=0; } } while(y) { P1=aa; later(500); aa=_cror_(aa,1); bb=0xFD; if(P1==bb) { y=0; }

} } } void later(uint xms) { int i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } 第一个出现的while是整个的循环,第二个while是看灯是否到达最后一个,如果是到达了,那就结束循环。第三个while是检测是否到达第一个,如果到达第一个那就结束循环,代码就是这样了,然后至于一些新手可能会问,怎么知道他显示亮的那个灯,很简单,如果第一个灯亮了那他的二进制就是:11111110,你自己转换到十六进制就知道了,然后第二个就是:11111101,以此内推下去

单片机实现发光二极管的循环点亮控制讲解

桂林电子科技大学单片机最小应用系统 设 计 报 告 指导老师:吴兆华

学生:钟静茹 学号:09210202 机电工程学院 2010年6月 单片机最小应用系统设计报告 目录 一、设计题目 (3) 二、设计内容与要求 (3) 三、设计目的意义 (3) 四、系统硬件电路图 (4) 五、程序流程图与源程序 (6) 5.1流程图 (6) 5.2源程序 (7) 5.2.1程序设计思想 (7) 5.2.2源程序清单 (7) 六、系统功能分析与说明 (9) 6.1系统主要组成部分 (9) 6.2指示灯显示部分 (10) 6.3 电路板的制作 (10) 6.3.1 PCB图的制作 (11) 6.3.2 电路板的腐蚀、钻孔和元器件的焊接 (13)

七、设计体会 (11) 八、参考文献 (12) 一、设计题目 用8031单片机实现发光二极管的循环点亮控制。采用3个按键分别控制发光二极管的启动、停止及每个灯点亮的时间的更换,定时时间有软件控制。 二、设计内容与要求 用8031单片机控制8个发光二极管循环点亮。要求用按键控制点亮时间(如每个灯点亮0.5秒或者1秒等,各灯点亮时间相同)。按启动键开始循环点亮;按停止键后停止。 三、设计目的意义 1、掌握单片机系统中扩展简单I/O接口的方法。 2、掌握单片机的硬件接口电路、8031单片机的内部结构及其编程方法。 3、掌握单片机的最小系统的设计。 4、掌握电路板的设计与制作。。 5、了解程序编写与调试的方法和技巧。 6、综合掌握所学的单片机指令系统和硬件接口电路知识,进行简单的最小系统开

发。 四、系统硬件电路图 系统硬件图(图1)包括单片机最小系统(复位电路、晶振电路和相关的控制信号)、外电路接通显示部分、及电源显示部分。 设计硬件电路图时,其基本思想:先通过万能板搭建试验平台,将编好的程序下载到51中,等可以达到预期要求后,最后在PROTEL中设计原理图与PCB,做出电路板。

相关文档
最新文档