基于单片机c语言花样彩灯设计
- 格式:doc
- 大小:47.00 KB
- 文档页数:7
题目基于单片机的彩灯设计任务与要求1.用三个按键开关K1,K2,K3组成一个独立式键盘,其中K1控制八个彩灯从左向右依次循环点亮,K2控制八个彩灯从右向左依次循环点亮,K3控制八个彩灯按一定的时间间隔闪烁点亮。
2.给出硬件实现电路及软件程序3.论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。
开始日期 2011.12.19 完成日期 2011.12.302011年 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是它的一种精简版本。
单片机课程设计报告书彩灯控制器设计一、设计目的通过课程设计的教学实践,将课本所学应用于实际中,缩小理论与实际的差距,进一步学习、掌握单片机应用系统的有关知识,加深了解单片机的工作原理。
初步掌握简单单片机应用系统的设计、制作、调试的方法。
使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计要求本课题以单片机为核心,利用其中断器和8个LED,设计一个彩灯控制器。
要求有以下功能:1.花型种类不少于四种,花型自拟;2.可用键控制彩灯按预设的花型进行变换;3.可用键控制分别用快/慢两种节拍实现花型变换。
三、硬件电路设计1、单片机总体设计原理LED彩灯系统包括5大部分,即闪烁系统、脉冲震荡系统、核心控件(89C52主控模块)、复位电路。
主控模块,具有控制功能,闪烁系统是受控模块,上面焊有八个白色LED灯及八个大小为1k的电阻。
脉冲震荡系统是由一个12MHz的晶振及两个12pf的电容组成。
核心控件主要由89C52芯片组成,是整个彩灯循环系统的核心是控制彩灯循环闪烁等等一切功能的部件。
复位开关连接控制器的RST端,实现复位控制。
基于89C52单片机的彩灯控制方案,实现对LED彩灯的控制。
本方案以89C52单片机作为主控核心,与驱动等模块组成核心主控制模块。
在主控模块上设有晶振电路和8个LED显示二极管,根据用户需要可以编写若干种亮灯模式,利用其两个外部中断实现花型的切换及快慢的切换,在不同时刻输出灯亮或灯灭的控制信号,硬件主电路图如图1所示。
图1 硬件主电路图2、闪烁系统发光二极管显示器简称LED。
这种灯具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用8个LED。
LED有共阴共阳之分,本系统采用共阳型LED,其原理图如图2所示,每端有8个发光二极管,公共端由8个发光二极管的阳极并接而成,正常显示时公共端接高电平,各发光二极管是否点亮取决于各引脚上是否是低电平。
彩灯闪烁由+5V电源和八个LED发光二极管,八个限压电阻组成如下图所示是彩灯闪烁系统的主要的外部可视部件。
课程设计报告课程名称:单片机课程设计报告题目:节日彩灯控制学生姓名:所在学院:专业班级:学生学号:指导教师:2013年12月25日课程设计任务书摘要彩灯是我国普遍流行的传统的民间的综合性的工艺品。
彩灯艺术也就是灯的综合性的装饰艺术。
新中国成立后,彩灯艺术得到了更大的发展,科学技术的发展,彩灯艺术更是花样翻新。
节日彩灯以成为我们生活中常见的装置,在各种场合我们都能看见它,它使我们的生活更加的丰富多彩。
它集中运用了单片机, LED, 自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次从上到下循环点亮,健二可以使彩灯停止流动,所有的灯为暗,键三可以使彩灯上向下流动,健四可以使彩灯下向上流动,键五可以使所有的彩灯从亮到暗到亮循环。
通过按键可以达到不同的效果。
关键词节日彩灯;循环;AT89C51;目录一、概述 (1)二、方案设计与论证 (1)1.方案比较 (1)2.方案论证 (3)3.方案选择 (3)三、单元模块设计 (3)3.1 矩阵键盘的控制 (3)3.2 流水灯的控制 (4)四、总原理图 (6)五、结论与心得 (6)六、参考文献 (8)附录一:程序清单 (10)一、概述传统的制灯工艺和现代科学技术紧密结合,将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一。
在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化。
它的主要器件是寄存器。
现如今寄存器是数字系统常见的重要部件,除在计算机中广泛用于存放中间数据外,它在其他方面的应用,目前在教材中只介绍可构成环形或扭环形计数器。
1 任务及要求1.1 设计任务1. 设计一个基于单片机的节日彩灯控制器。
2. 设计出硬件电路;3. 设计出软件编程方法,并写出源代码;4. 用PROTEUS进行仿真;1.2 设计要求1.用C语言或汇编语言编实现程序设计。
2.利用查表,中断等方式实现目的。
3.系统的各各功能模块要清楚,有序。
4.程序运行时有友好的用户界面2 设计思想2.1 硬件设计思想节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出(I/O)接口电路集成在一块集成电路芯片上的特点。
通过其与发光二极管及驱动电路的连接,从而构成一个完整的硬件电路。
然后通过对单片机的ROM进行编程,实现对彩灯闪烁的控制。
2.2 软件设计思想通过编程改变P1口的状态,从而改变彩灯的闪烁。
本程序主要可分为主程序模块,比较模块LOOP0、LOOP1、LOOP2、LOOP3、LOOP4、LOOP5和状态显示程序模块k1_light、k2_light、k3_light、k4_light延时程序模块del10ms 等模块。
其中延时时间t1 = T×20×248;t1 = T×C3H×FFH;T为单片机的机器周期3 电路原理与电路图3.1 电路原理以AT-89C52单片机作为主控核心,与按键、电阻等较少的辅助硬件电路相结合,利用软件实现对LED彩灯进行控制,材料有单片机AT89C52、多色发光二极管LED、电阻RES。
3.2 电路原理图4 流程图与算法描述4.1 流程图图4-1 主程序流程图4.2 算法描述本程序主要可分为主程序模块,比较模块,状态显示程序模块和延时程序模块。
比较模块LOOP0、LOOP1、LOOP2、LOOP3、LOOP4、LOOP5。
状态显示程序模块k1_light、k2_light、k3_light、k4_light延时程序模块del10ms等模块。
5程序清单org 0000hljmp startorg 0003hljmp ext1org 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, 置标志为03ajmp passk4_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, temp2retend6仿真结果图 6.1 从上到下闪烁图 6.2 从下到上闪烁图 6.3 上下同时闪烁7 设计总结7.1 设计体会通过这次的设计使我认识到我对单片机方面的知识太重要了,对于书本上的很多知识还不够熟悉,有很多我们需要掌握的知识还没掌握,我会在以后的学习生活中弥补我所缺少的知识。
任务书以单片机为核心,设计一个节日彩灯控制器控制24个LED灯:P1.2—开始,按此键则灯开始流动(由上而下)。
P1.3—停止,按此键则停止流动,所有灯为暗。
P1.4—上,按此键则灯由上向下流动。
P1.5—下,按此键则灯由下向上流动。
目录1.引言2.工艺过程3.系统控制要求4.方案论证5.系统电路设计6.系统软件设计7.系统程序设计8.连接调试9.心得10.致谢11.参考文献附录1.引言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
特别是每当节日的到来,节日彩灯更是到处都看的到。
节日彩灯已成为生活中不可缺少的装饰物。
它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次循环点亮,健二可以使彩灯从左到又从右到左循环点亮,三号键使两端灭,中间亮,再对半交替亮,然后再奇偶亮。
通过按键能方便使用者选择不同样的亮法。
节日彩灯使生活中常常用到的装饰物品,是我国普遍流行的传统的民间的综合性的工艺品。
彩灯艺术也就是灯的综合性的装饰艺术。
在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。
彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化,它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按P1.2键使灯开始流动;按P1.3键则停止流动;按P1.4键则灯由上向下流动;按P1.5键则灯由下向上流动。
/*-------------2011.3.19 xxx编写------------------------------------------------------------设计名称:花样和速度可控的花样彩灯设计功能:1.本程序用了两个按键,其中一个可以循环控制花样,另一个循环控制流水速度;2.有断电保存当前花样和速度功能,即断电后,在重现上电时,执行的花样和速度仍旧是断电前的速度和花样。
缺点:1、本程序为延时计时,精度不高;2、由于使用延时来得到秒信号,时数和分数被改变后,有时要过一秒后才能被更新显示------------------------------------------------------------------------------------------------*/#include<reg52.h>#include<zi.c>#include<24c02.c>sbit s1=P1^4; //定义按键sbit s2=P1^5;void zhongduan(void)interrupt 1{//P1=0xff;TR0=0; //关闭定时器T0if(s1==0) //如果按键s1被按下{delay_ms(10); //延时消抖di();{if(s1==0) //如果按键s1按下{k++;write_add_24c02(0,k);if(k==6){k=1;}}while(!s1);flag=1;} //等待s1键抬起并改变标志位TR0=1; //启动定时器T0}if(s2==0) //如果按键s2被按下{delay_ms(10); //延时消抖di();if(s2==0){i++;write_add_24c02(1,i);if(i==6)i=1;}while(!s2);flag=1;} //等待s2键抬起并改变标志位TR0=1; //启动定时器T0}void main(void){TMOD=0X02; // 定时器TO,工作方式2,带自动装在的8位计数器,最大数值2^8=256TH0=256-200; //装载初值TL0=256-200;ET0=1; // 定时器T0中断允许TR0=1; //开启定时器T0EA=1; //打开外部中断0k=read_add_24c02(0);i=read_add_24c02(1);if(k>=6)k=1;if(i>=6)i=1;while(1){flag=0; //按键按下标志位while(flag==0) //检测到有按键按下{ switch(k){case 1:huayang_1();break;case 2:huayang_2();break;case 3:huayang_3();break;case 4:huayang_4();break;case 5:huayang_5();break;}switch(i){case 1:x=10;break;case 2:x=100;break;case 3:x=500;break;case 4:x=1000;break;case 5:x=2000;break;}}}}/****************************************花样子文件zi.c*************************************************/ /*sbit S1=P1^3; 定义按键s1为引脚P1.3sbit S2=P1^4;sbit S3=P1^5;sbit S4=P1^6;sbit S5=P1^7;*/#define led P3sbit beep=P2^0; //定义蜂鸣器为引脚P2.0unsigned int x=10;unsigned char k=1,i=1,flag=0;//#define led ledvoid delay_ms(unsigned int xms) //1ms延时子程序{ unsigned int aa,bb;for(aa=xms;aa>0;aa--){if(flag==1) //当检测到有按键按下,跳出内层循环break;for(bb=800;bb>0;bb--);} //调整bb数值,以使本句运行时间为1ms 。
节日彩灯控制器课程设计报告c语言节日彩灯控制器课程设计报告一、引言随着科技的不断进步,现代人们的生活越来越依赖于电子产品。
而在各种电子产品中,微控制器是其中非常重要的一种。
本次课程设计是基于C语言,利用单片机实现节日彩灯控制器。
二、设计目标本次课程设计的主要目标是通过C语言编写程序,利用单片机实现对彩灯进行控制。
具体地说,需要实现以下功能:1. 彩灯颜色切换:通过按键进行彩灯颜色的切换;2. 彩灯亮度调节:通过按键进行彩灯亮度的调节;3. 彩灯闪烁效果:通过按键实现彩灯闪烁效果。
三、硬件设计本次课程设计所使用的硬件如下:1. 单片机:STC89C52;2. LED彩灯模块;3. 5V直流电源;4. 按键模块。
四、软件设计1. 程序框架本次课程设计采用模块化编程思想,将整个程序分为三个模块:LED 控制模块、按键扫描模块和主函数模块。
其中,LED控制模块主要实现对彩灯的控制;按键扫描模块用于检测按键是否被按下,并将按键状态传递给主函数模块;主函数模块则是整个程序的核心,用于调用其他两个模块的函数,并根据按键状态进行相应的处理。
2. 程序流程(1)LED控制模块LED控制模块主要实现对彩灯颜色、亮度以及闪烁效果的控制。
具体流程如下:a. 初始化:设置P1口为输出口;b. 颜色切换:通过改变P1口输出电平来实现彩灯颜色的切换;c. 亮度调节:通过PWM技术来实现彩灯亮度的调节;d. 闪烁效果:通过定时器中断来实现彩灯闪烁效果。
(2)按键扫描模块按键扫描模块主要用于检测按键是否被按下,并将按键状态传递给主函数模块。
具体流程如下:a. 初始化:设置P3口为输入口;b. 扫描按键状态:循环检测P3口输入电平,如果检测到输入电平为低电平,则说明相应的按键被按下,将按键状态传递给主函数模块。
(3)主函数模块主函数模块是整个程序的核心,用于调用其他两个模块的函数,并根据按键状态进行相应的处理。
具体流程如下:a. 初始化:调用LED控制模块和按键扫描模块的初始化函数;b. 循环执行:循环检测按键状态,根据不同的按键状态调用LED控制模块中相应的函数实现彩灯控制。
基于单片机的彩灯控制器设计一、引言彩灯是一种可以调节颜色和亮度的灯光装置,被广泛应用于舞台灯光效果、建筑物装饰、商业广告、节日庆典等场合。
传统的彩灯控制器往往依赖于传感器和模拟电路实现,无法快速调节灯光效果,操作不方便。
为了实现更加灵活、方便的彩灯控制,本文将设计一款基于单片机的彩灯控制器。
二、系统设计本彩灯控制器系统设计基于单片机,通过单片机控制器实现对灯光的调节和控制。
系统硬件主要由单片机、彩灯模块、按键开关、显示模块和电源构成,软件主要由单片机程序编写实现。
1.单片机选择单片机是整个系统的核心控制器,选择合适的单片机至关重要。
根据给定的设计要求,选取具有较强处理能力和丰富外设接口的单片机。
一般来说,常用的51系列单片机和STM32系列单片机具备较好的性能和扩展能力。
2.彩灯模块设计彩灯模块是实现灯光调节的核心部分,可以使用RGBLED灯珠或者是WS2812灯带等灯光模块。
通过控制彩灯模块的亮度和色彩来实现不同的灯光效果。
3.按键开关设计通过按键开关来切换不同的灯光模式,实现系统的开关和功能选择。
可以设计多个按键开关,分别对应不同的灯光模式,通过按下不同的按键实现灯光模式的切换。
4.显示模块设计为了方便用户了解灯光的当前状态和模式选择,可以使用OLED显示模块或者数码管显示模块来实现数据的显示。
5.电源设计由于彩灯模块通常需要较高的驱动电流,所以需要提供稳定的电源。
可以采用电池供电或者是AC-DC转换器等方式,确保系统稳定运行。
三、系统实现1.程序设计通过单片机编程实现对彩灯的控制和灯光模式的切换。
根据不同的按键输入,设置对应的灯光参数和模式,通过单片机的I/O接口控制彩灯模块的亮度和色彩。
2.硬件连接按照设计要求,将单片机、彩灯模块、按键开关、显示模块和电源连接起来。
通过对应的引脚和接口进行连接,确保系统正常运行。
四、总结本文设计了一款基于单片机的彩灯控制器,通过单片机编程实现对彩灯的控制和灯光模式的切换。
单片机的花样彩灯设计课程设计报告书题目: 单片机控制的花样彩灯设计专业:电气工程及其自动化(1)班学号:学生姓名:指导教师:2010年 12 月 1 日南昌工程学院课程设计(论文)任务书电气与电子工程系 07电气工程电力系统专业 1 班学生:王文虎日期:自 2010 年 11 月 22 日至 2010 年 12 月 3 日指导教师:章彧助理指导教师(并指出所负责的部分):教研室:电气工程教研室主任:目录1.1引言 (4)随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。
但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进行改进。
(4)课程设计是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练,是培养学生工程意识和创新能力的重要环节。
进一步巩固和加深“单片机”课程的基本知识,了解单片机设计知识在实际中的应用。
综合运用“单片机”课程和先修课程的理论及生产实际知识去分析和解决电路设计问题,进行单片机电路设计的训练。
学习单片机设计电路的一般方法,了解和掌握单片机电路的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体电路设计能力。
通过计算和绘图,学会运用标准、规范和查阅有关技术资料等,培养单片机电路设计的基本技能。
(4)2设计原理 (5)2.1MCS51单片机 (5)引脚说明 (6)2.2LED显示数码管 (7)有键按下 (12)T0按下? (12)T1按下? (12)INT1按下? (12)INT0按下? (12)间隔点亮动点亮 (12)逐点熄灭 (12)逐点点亮 (12)流水灯 (12)INT0键按下? (13)参考文献 (20)1.1引言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
基于单片机的彩灯控制系统设计摘要:本文提出了一种基于单片机的彩灯控制系统设计方案。
该系统设计采用单片机作为控制核心,用于控制彩灯的色彩、亮度和显示效果。
通过编程实现的软件算法,可以实现多种不同的彩灯控制效果。
在硬件方面,我们采用了高亮度的LED作为彩灯的光源,通过单片机的PWM控制技术,可以实现对彩灯亮度的调节。
同时,我们还设计了一个显示器件,用于显示彩灯的状态和效果。
经过实际测试,该系统具有控制灵活、彩灯效果多样等特点,可以满足不同用户的需求。
关键词:单片机,彩灯,控制系统,PWM1.引言随着科技的不断发展,彩灯作为一种新型的照明装饰灯具,已经在家庭、商业和娱乐场所得到了广泛的应用。
传统的彩灯控制方式主要依靠人工操作,无法实现彩灯的自动控制和多种效果的切换。
为了实现对彩灯的精确控制和多样化的效果切换,本文提出了一种基于单片机的彩灯控制系统设计方案。
2.系统设计2.1硬件设计本系统采用了一块单片机作为控制核心,用于控制彩灯的色彩、亮度和显示效果。
在硬件方面,我们选择了高亮度的LED作为彩灯的光源,通过单片机的PWM控制技术,可以实现对彩灯亮度的调节。
同时,在为单片机提供电源的同时,我们还设计了一个显示器件,用于显示彩灯的状态和效果。
2.2程序设计在程序设计方面,我们使用C语言编写了彩灯控制程序。
程序首先初始化单片机,并设置相关的IO口配置。
然后,根据用户的输入,通过利用PWM控制技术,实现彩灯色彩、亮度和显示效果的控制。
程序针对不同的彩灯效果,设计了一系列算法,并通过循环切换的方式,实现了多种不同的彩灯效果。
3.系统测试与评估我们对设计的彩灯控制系统进行了实际测试。
通过测试,我们发现该系统可以实现对彩灯色彩、亮度和显示效果的灵活控制。
各种彩灯效果切换流畅,控制精确。
同时,系统的电路连接简单,易于搭建和维护。
4.结论本文提出了一种基于单片机的彩灯控制系统设计方案。
该系统通过单片机的控制,实现了对彩灯色彩、亮度和显示效果的精确控制。
单片机彩灯控制器课程设计1. 课程设计背景单片机作为一种集成了微处理器、存储器和输入输出功能的微型计算机,广泛应用于各种电子设备中。
彩灯控制器是一种基于单片机的电子设备,可以通过控制单片机的输出口来实现对彩灯的控制。
本课程设计旨在通过学习和实践,使学生掌握单片机的基本原理和彩灯控制器的设计方法。
2. 课程设计目标通过本课程设计,学生将达到以下目标:•理解单片机的基本原理和工作方式;•掌握单片机编程语言及开发环境;•学习使用单片机的输入输出功能;•熟悉彩灯控制器的硬件电路设计;•能够独立完成一个简单的彩灯控制器的设计与实现。
3. 课程设计内容3.1 单片机基础知识•单片机原理及分类•单片机开发环境搭建•单片机编程语言介绍3.2 单片机输入输出功能•数字输入输出口配置及使用•模拟输入输出口配置及使用•中断输入输出口配置及使用3.3 彩灯控制器硬件设计•彩灯控制器电路原理图设计•电路元器件选型与参数计算•PCB布局设计3.4 彩灯控制器软件设计•硬件连接与测试•单片机程序设计思路•程序代码编写与调试4. 课程设计步骤4.1 单片机基础知识学习通过教师讲解、实验演示和学生自主学习,学习单片机的基本原理、分类以及开发环境的搭建。
学习单片机编程语言,如C语言或汇编语言。
4.2 单片机输入输出功能实践在掌握了单片机的基础知识后,通过实验进行单片机输入输出功能的实践。
包括数字输入输出口、模拟输入输出口和中断输入输出口的配置和使用。
4.3 彩灯控制器硬件设计在完成了单片机输入输出功能的实践后,开始进行彩灯控制器的硬件设计。
根据彩灯控制器的功能需求,设计电路原理图,并选型合适的电路元器件。
根据原理图设计PCB布局,并进行电路连接与测试。
4.4 彩灯控制器软件设计在完成了彩灯控制器的硬件设计后,开始进行软件设计。
根据硬件连接与测试的结果,设计单片机程序的思路,并编写程序代码。
通过调试和测试,确保彩灯控制器能够正常工作。
任务书以单片机为核心,设计一个节日彩灯控制器控制24个LED灯:P1.2—开始,按此键则灯开始流动(由上而下)。
P1.3—停止,按此键则停止流动,所有灯为暗。
P1.4—上,按此键则灯由上向下流动。
P1.5—下,按此键则灯由下向上流动。
目录1.引言2.工艺过程3.系统控制要求4.方案论证5.系统电路设计6.系统软件设计7.系统程序设计8.连接调试9.心得10.致谢11.参考文献附录1.引言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
特别是每当节日的到来,节日彩灯更是到处都看的到。
节日彩灯已成为生活中不可缺少的装饰物。
它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次循环点亮,健二可以使彩灯从左到又从右到左循环点亮,三号键使两端灭,中间亮,再对半交替亮,然后再奇偶亮。
通过按键能方便使用者选择不同样的亮法。
节日彩灯使生活中常常用到的装饰物品,是我国普遍流行的传统的民间的综合性的工艺品。
彩灯艺术也就是灯的综合性的装饰艺术。
在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。
彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化,它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按P1.2键使灯开始流动;按P1.3键则停止流动;按P1.4键则灯由上向下流动;按P1.5键则灯由下向上流动。
毕业设计(论文)题目:基于单片机的多样彩灯设计毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:日期:毕业论文(设计)授权使用说明本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。
有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。
学校可以公布论文(设计)的全部或部分内容。
保密的论文(设计)在解密后适用本规定。
作者签名:指导教师签名:日期:日期:注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它摘要单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。
51单片机彩灯课程设计一、课程目标知识目标:1. 理解51单片机的基本原理,掌握其内部结构及功能;2. 学习并掌握C语言编程基础,能编写简单的程序控制51单片机;3. 掌握51单片机I/O口的应用,理解彩灯电路的原理及程序设计方法;4. 了解电子元器件的选择原则,能正确选用元器件并进行电路搭建。
技能目标:1. 能够运用C语言编写51单片机控制彩灯的程序;2. 学会使用相关开发工具和调试设备,具备独立搭建和调试彩灯电路的能力;3. 提高动手实践能力,培养解决实际问题的能力。
情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学习热情;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 培养学生严谨、细致、勇于创新的科学态度,增强自信心。
本课程针对高年级学生,结合学科特点,注重理论与实践相结合,旨在提高学生的编程能力、动手实践能力和创新能力。
通过课程学习,使学生能够独立完成51单片机彩灯的设计与制作,为后续深入学习电子技术打下坚实基础。
二、教学内容1. 51单片机原理及结构:介绍51单片机的内部结构、工作原理及特点,使学生了解单片机的基本组成和功能。
教材章节:《单片机原理与应用》第一章。
2. C语言编程基础:学习C语言的基本语法、数据类型、运算符、控制语句等,为编写单片机程序打下基础。
教材章节:《C语言程序设计》第一章至第四章。
3. 51单片机I/O口应用:讲解51单片机I/O口的使用方法,分析彩灯电路原理,使学生掌握I/O口编程及电路设计。
教材章节:《单片机原理与应用》第三章。
4. 彩灯程序设计:学习彩灯控制程序编写方法,包括流水灯、闪烁灯等效果的设计与实现。
教材章节:《单片机原理与应用》第四章。
5. 电子元器件选择与电路搭建:介绍常用电子元器件,学习元器件的选择原则,掌握电路搭建方法。
教材章节:《电子技术基础》第一章。
6. 开发工具与调试:学习使用51单片机开发工具(如Keil、Proteus等),掌握程序下载、调试及排错方法。
单片机 彩灯的课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解彩灯控制电路的组成及工作原理。
2. 使学生了解并掌握单片机编程的基本方法,能编写简单的控制程序。
3. 让学生了解彩灯电路中常用的电子元件,如电阻、电容、二极管等,并理解它们在电路中的作用。
技能目标:1. 培养学生动手实践能力,能够独立完成单片机彩灯电路的搭建与调试。
2. 提高学生编程能力,能够根据实际需求编写控制彩灯的程序。
3. 培养学生分析问题、解决问题的能力,能够针对彩灯电路的故障进行排查和修复。
情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养其探索精神。
2. 培养学生团队合作意识,学会与他人共同解决问题。
3. 培养学生爱护电子设备,养成良好的实验操作习惯。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握单片机彩灯控制技术。
学生特点:学生具备一定的物理和数学基础,对电子技术有一定了解,但对单片机编程和控制电路的实践操作相对陌生。
教学要求:教师需结合学生实际情况,采用启发式教学,引导学生主动探索,注重培养学生的实践操作能力和问题解决能力。
在教学过程中,关注学生的个体差异,给予个别辅导,确保每个学生都能达到课程目标。
通过分解课程目标为具体学习成果,便于教学设计和评估。
二、教学内容1. 单片机基本原理:介绍单片机的结构、工作原理,重点讲解CPU、内存、I/O口等组成部分及其功能。
教材章节:第二章 单片机原理与接口技术2. 彩灯控制电路:讲解彩灯电路的组成,包括单片机、驱动电路、LED灯等,分析电路工作原理。
教材章节:第三章 常用电子元件及应用3. 编程语言:介绍单片机编程的基本语法和编程方法,以C语言为例,讲解彩灯控制程序的编写。
教材章节:第四章 单片机C语言编程4. 实践操作:指导学生进行彩灯电路的搭建、调试及编程,培养学生动手实践能力。
教材章节:第五章 单片机实践操作5. 故障排查与修复:分析彩灯电路可能出现的故障,教授学生排查及修复方法。
课程设计题目基于51单片机的节日彩灯设计学院物流工程学院专业物流工程班级姓名同组者指导教师月日课程设计任务书学生姓名:专业班级:指导教师:工作单位:物流工程 __题目: 单片机节日彩灯控制器初始条件:1.Protues 7 professional的ISIS 7 professional和ARES 7 professional软件2.Keil uvision4软件3.单片机的相关资料指导书要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)设计一个节日彩灯控制器,实现不同的闪烁方式,要求:(1)P3.3: 开始,按此键则灯开始流动(由上而下);(2)P3.2: 停止,按此键则停止流动,所有灯为暗;(3)P3.1: 上,按此键则灯由上向下流动;(4)P3.0: 下,按此键则灯由下向上流动。
时间安排:十八周到十九周设计,十九周答辩指导教师签名:年月日系主任(或责任教师)签名:年月日武汉理工大学课程设计教学检查记录表课程设计名称设计周数检查日期课程设计指导教师进行方式:集中□分散□.地点检查项目检查结果好一般不理想差课程设计选题适当程度学生数与指导教师数配比(15名学生/教师好; >=20名/教师一般; >=30名学生/教师不理想;>40名学生/教师差)指导教师到位情况学生课程设计完成进度及质量对学生课程设计日常管理(出勤考核)措施及执行情况课程设计秩序综合意见:检查人附件6:本科生课程设计成绩评定表姓名陈文超性别男专业、班级物流工程学院行政1001班课程设计题目:基于51单片机的交通灯设计课程设计答辩或质疑记录:1.选题合理、目的明确 10分2.设计方案正确,具有可行性、创新性 20分3.设计结果 20分4.态度认真、学习刻苦、遵守纪律 15分5.设计报告的规范化、参考文献充分(不少于5篇) 10分 6. 答辩 25分成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:年月日摘要 01 设计任务 (1)2 总体方案设计与论证 (2)2.1 方案比较 (2)2.2 方案论证 (3)2.3 方案选择 (3)3 系统硬件设计 (4)3.2 单片机最小系统设计 (4)3.3 LED彩灯显示电路设计 (4)3.4 按键控制电路设计 (4)4 系统的软件设计 (5)4.1 按键扫描子程序设计 (5)4.2 主程序设计 (5)参考文献 (7)彩灯是我国普遍流行的传统的民间的综合性的工艺品。
/*-------------2011.3.19 xxx编写------------------------------------------------------------设计名称:花样和速度可控的花样彩灯设计功能:1.本程序用了两个按键,其中一个可以循环控制花样,另一个循环控制流水速度;2.有断电保存当前花样和速度功能,即断电后,在重现上电时,执行的花样和速度仍旧是断电前的速度和花样。
缺点:1、本程序为延时计时,精度不高;2、由于使用延时来得到秒信号,时数和分数被改变后,有时要过一秒后才能被更新显示------------------------------------------------------------------------------------------------*/#include<reg52.h>#include<zi.c>#include<24c02.c>sbit s1=P1^4; //定义按键sbit s2=P1^5;void zhongduan(void)interrupt 1{//P1=0xff;TR0=0; //关闭定时器T0if(s1==0) //如果按键s1被按下{delay_ms(10); //延时消抖di();{if(s1==0) //如果按键s1按下{k++;write_add_24c02(0,k);if(k==6){k=1;}}while(!s1);flag=1;} //等待s1键抬起并改变标志位TR0=1; //启动定时器T0}if(s2==0) //如果按键s2被按下{delay_ms(10); //延时消抖di();if(s2==0){i++;write_add_24c02(1,i);if(i==6)i=1;}while(!s2);flag=1;} //等待s2键抬起并改变标志位TR0=1; //启动定时器T0}void main(void){TMOD=0X02; // 定时器TO,工作方式2,带自动装在的8位计数器,最大数值2^8=256TH0=256-200; //装载初值TL0=256-200;ET0=1; // 定时器T0中断允许TR0=1; //开启定时器T0EA=1; //打开外部中断0k=read_add_24c02(0);i=read_add_24c02(1);if(k>=6)k=1;if(i>=6)i=1;while(1){flag=0; //按键按下标志位while(flag==0) //检测到有按键按下{ switch(k){case 1:huayang_1();break;case 2:huayang_2();break;case 3:huayang_3();break;case 4:huayang_4();break;case 5:huayang_5();break;}switch(i){case 1:x=10;break;case 2:x=100;break;case 3:x=500;break;case 4:x=1000;break;case 5:x=2000;break;}}}}/****************************************花样子文件zi.c*************************************************/ /*sbit S1=P1^3; 定义按键s1为引脚P1.3sbit S2=P1^4;sbit S3=P1^5;sbit S4=P1^6;sbit S5=P1^7;*/#define led P3sbit beep=P2^0; //定义蜂鸣器为引脚P2.0unsigned int x=10;unsigned char k=1,i=1,flag=0;//#define led ledvoid delay_ms(unsigned int xms) //1ms延时子程序{ unsigned int aa,bb;for(aa=xms;aa>0;aa--){if(flag==1) //当检测到有按键按下,跳出内层循环break;for(bb=800;bb>0;bb--);} //调整bb数值,以使本句运行时间为1ms 。
//在PROTEUS中仿真时,可调为120;实际下载到STC12C5A32S2使应调为800左右}//-------------------------------------------------void di() //短促响一声函数{ beep=0; delay_ms(100);beep=1;}//-----------------------------------------------//------------------花样1隔一个位置灯亮----------------void huayang_1(void){led=0xfe;delay_ms(x);led=0xfb;delay_ms(x);led=0xef;delay_ms(x);led=0xbf;delay_ms(x);}//-----------------------------------------------------//-------------------花样2高低四位灯循环亮灭-----------void huayang_2(void){led=0xf0;delay_ms(x); //调用延时函数led=0x0f;delay_ms(x); //调用延时函数}//---------------------------------------------------//--------------------花样3灯两盏两盏亮---------------- void huayang_3(void){led=0xfc;delay_ms(x);led=0xf3;delay_ms(x);led=0xcf;delay_ms(x);led=0x3f;delay_ms(x);}//------------------------------------------//---------------------花样4流水灯---------------void huayang_4(void){led=0x7f;delay_ms(x);led=0xbf;delay_ms(x);led=0xdf;delay_ms(x);led=0xef;delay_ms(x);led=0xf7;delay_ms(x);led=0xfb;delay_ms(x);led=0xfd;delay_ms(x);led=0xfe;delay_ms(x);}//----------------------------------------------//---------------花样5灯闪烁---------------------void huayang_5(void){led=0xff;delay_ms(x);led=0x00;delay_ms(x);}/* 24C02的使用函数库函数使用说明:1、write_add_24c02(2,aaa ); //把变量aaa的值保存到在24c02的单元地址2中,注意,最好在后面加上几个ms的延时,避免出错。
2、bbb=read_add_24c02(2); //读出24c02的单元地址2中保存的数据并赋给变量bbb*/#define uint unsigned int#define uchar unsigned char//--------与24C02相关的设置和子函数-------------void delay(){ ;; } //简单短延时子函数sbit sda_24c02=P2^7; //定义24C02的数据线与单片机的连接sbit scl_24c02=P2^6;//--------与24C02相关的设置和子函数-------------void start_24c02() //24c02开始信号{ sda_24c02=1; delay();scl_24c02=1; delay();sda_24c02=0; delay(); }void stop_24c02() //24c02停止{ sda_24c02=0; delay();scl_24c02=1; delay();sda_24c02=1; delay(); }void respons_24c02() //24c02应答{ uchar i;scl_24c02=1;delay();while((sda_24c02==1)&&(i<250))i++;scl_24c02=0;delay(); }void init_24c02() //24c02初始化{ sda_24c02=1; delay();scl_24c02=1; delay(); }void write_byte_24c02(uchar date) //写8个{ uchar i,temp;temp=date;for(i=0;i<8;i++){ temp=temp<<1;scl_24c02=0; delay();sda_24c02=CY; delay();scl_24c02=1; delay();}scl_24c02=0; delay();sda_24c02=1; delay(); }uchar read_byte_24c02(){ uchar i,k;scl_24c02=0; delay();sda_24c02=1; delay();for(i=0;i<8;i++){ scl_24c02=1; delay();k=(k<<1)|sda_24c02;scl_24c02=0; delay();}return k; }void write_add_24c02(uchar address,uchar date)//将某数据写入24C02某个单元中{ start_24c02();write_byte_24c02(0xa0); //24c02的写地址(1010 0000)respons_24c02();write_byte_24c02(address);respons_24c02();write_byte_24c02(date);respons_24c02();stop_24c02(); }uchar read_add_24c02(uchar address)//读出24c02某个单元数据到变量中{ uchar date;start_24c02();write_byte_24c02(0xa0); //24c02的读地址(1010 0001)respons_24c02();write_byte_24c02(address);respons_24c02();start_24c02();write_byte_24c02(0xa1);respons_24c02();date=read_byte_24c02();stop_24c02();return date; }//--------与24C02相关的设置和子函数结束-----------。