心形LED流水灯制作方法
心型流水灯制作教程
作为一个电子技术爱好者,先就做一个最简单的心形流水灯玩玩吧。
本教程主要特点就是简单,不要你懂原理,不要你懂编程,只要最基本的元件和材料就可以完成。
首先我们来准备和认识元件。
1、最大的一个部件,洞洞板也叫万能板,9*15cm的刚刚好.便宜的万能板1元一块,你也可以用双面喷锡的质量好的玻纤板,4元一块。
2、主角单片机。
要求用40脚的,刚好驱动32个led。
建议用STC89C52RC,最常见便宜而且不用复位电路。
3、led,5mm的颜色随你喜欢,32个,注意长脚为正极.我用的是白发蓝,你也可以用不同的颜色组合各种效果。
4、电阻,限制led的工作电流,这个严格讲要经过计算,咱们随便作就不管了,200欧姆到1K欧姆的都可以,只是led的亮度有点区别。
贴片电阻和直插的都可以,建议用贴片美观,熟练了焊起来更快,只要稍加练习就可以,实在没信心直插的也可以,反正在背面也没用什么影响.5、镊子,焊接贴片电阻要用到.6、晶振和瓷片电容。
晶振采用12MHz的,电容15pF—33pF都可以。
7、导线几根,连接电源和飞线用,当然飞线越少越好,一是美观,二是飞线容易出问题.8、焊接工具。
烙铁、焊锡、烙铁架、海绵、斜口钳等等,大家自己有啥样就用什么。
我的是坏烙铁拼凑的白菜白光,看着烂用着还可以.9、还有最好用IC座,一是保护单片机二是方便拆卸和烧录。
第一个是固定式IC座,0.2元,第二个是活体的,用的更方便,4元一个。
10、电源部分.这里可以废物利用,用废弃的手机电池,在正负极接上导线,安装XH插头,插座焊在洞洞板上。
不必在意电压,只是点亮led,手机电池标准电压3.7V,充满4。
2V这里用没问题。
可以加一个拨动开关控制电源.接下来开始焊接,注意元件的位置和极性。
先焊最小系统,ic座,晶振、电容这些,然后是led,注意正极(长脚)朝外,负极(断脚)朝向单片机.接着是led的负极用锡接过线接到单片机的io口,注意中间接电阻。
最后连上电源正负极就完成了。
心形流水灯课程设计之流水灯制作方法(含CD4017电路)
心形流水灯课程设计之流水灯制作方法(含CD4017电路)
此作品特别适合初学者制作,其本质就是用数字芯片CD4017构成的流水灯,显示方式根据自己的喜好、创意就OK。
动手制作这样的礼物,送给ta绝对会是再好不过了。
首先,我们了解一下该作品的五脏六腑:
1. 杜邦线(若干)
2. 万能板X2
3. 电位器X2
4. 470uF电容X1
5. 二极管X4
6. 变压器X1
7. 104电容(若干)
8. LM7809芯片X1
9. 散热片X1
10. 各色LED灯(若干)
11. 100uF电容X1
12.2K电阻X1
13. 680欧电阻(若干)
14. 共阴数码管X4
15. NE555和CD4017 (各一片)
16. 芯片底座X2(有利于芯片的二次利用)
17. 木板5块加包装纸2张(尺寸大小根据自己情况而定)
所需器件如下图所示:
我把作品电路分为3个部分,这3个部分都是以我的实物为依据的,你当然可以有更好的。
心形花样流水灯设计报告
心形花样流水灯设计报告
心形花样流水灯设计报告
心形花样流水灯是现有流水灯的一种经典改良版本,它采用16个灯作为原形,在跟随律动改变时,灯会形成一个心形的图案,从而形成艳丽夺目的画面。
该设计把流水灯的动感与闪烁的灯光有机地结合起来,带给观众一个难忘的视觉体验。
心形花样流水灯的实现原理主要基于按使灯在每个节点切换时都可以获取正确的额外信号,然后根据信号来控制灯的状态,从而实现每颗灯在固定节点可以达到设定的图案效果。
实现心形花样流水灯首先需要准备好必要的硬件,如灯、电源、封装等。
其中,灯是实现该图案花样的关键元素,合适的灯应该选择一直亮的灯,最好是采用柱面形状的灯放置;电源属于复杂的功能元件,而电源的输出功率是有限的,因此要选择规范型号的电源;灯装接容器也是必不可少的,以尽可能减少容器内部电阻增加此设计系统电源负载。
安装完必要的硬件之后,就可以编写控制程序实现心形花样的设计。
首先,程序需要实现的功能应该包括定时停档、定时启动、控制灯泡亮度等,这是该系统实现的最基本的功能,其次,控制程序设计的关键是要编写一段循环程序,使在每一节点可以实现按照心形花样拍摄计划设定的图案,最后,实现定时调节,达到改变速度以及心形持续不断等效果。
通过以上步骤,就可以实现心形花样流水灯的设计制作,从而实现不同场合的美观效果,更好的吸引更多的注意力,从而取得全新的效果。
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作一、引言爱心流水灯是一种常见的电子制作项目,它使用51单片机控制LED灯的亮灭顺序,形成一个流动的爱心图案。
本文将详细介绍51单片机爱心流水灯的原理及制作过程。
二、原理介绍1. 51单片机51单片机是一种非常常见的单片机,具有广泛的应用领域。
它具有强大的计算能力和丰富的外设接口,非常适合用于控制LED灯的亮灭。
2. LED灯LED灯是一种半导体发光二极管,具有低功耗、长寿命和高亮度等特点。
在爱心流水灯中,我们使用红色的LED灯来形成爱心图案。
3. 流水灯原理流水灯是一种常见的电子灯光效果,通过控制LED灯的亮灭顺序,形成一个流动的效果。
在爱心流水灯中,我们将多个LED灯按照特定的顺序亮灭,形成一个流动的爱心图案。
4. 原理图以下是51单片机爱心流水灯的原理图:(在此处插入原理图)三、制作材料准备在开始制作爱心流水灯之前,我们需要准备以下材料:1. 51单片机开发板2. LED灯(红色)3. 电阻4. 面包板5. 连接线6. 电源四、制作步骤1. 连接电路首先,将51单片机开发板和面包板连接起来。
然后,根据原理图连接LED灯、电阻和51单片机的引脚。
确保连接正确且稳固。
2. 编写程序使用C语言编写51单片机的程序。
程序的主要功能是控制LED灯的亮灭顺序,形成一个流动的爱心图案。
以下是一个简单的示例程序:(在此处插入示例程序)3. 烧录程序将编写好的程序烧录到51单片机中。
可以使用专业的烧录工具,也可以使用通用的USB转串口模块进行烧录。
4. 测试将电源接入电路,打开电源开关,观察LED灯的亮灭情况。
如果一切正常,LED灯将按照程序中设定的顺序亮灭,形成一个流动的爱心图案。
五、注意事项在制作爱心流水灯时,需要注意以下几点:1. 连接线的接触要牢固,确保电路的稳定性。
2. 程序的编写要准确无误,确保LED灯按照预期的顺序亮灭。
3. 使用适当的电阻限流,以保护LED灯和51单片机。
十八路心形流水灯设计报告
十八路心形流水灯——设计报告目录一、摘要 (2)二、设计目的和作用 (2)(三、设计方案和原理 (2)电路功能 (2)电路工作原理 (2)参数计算 (3)元器件选择 (3)四、仿真调试与性能分析 (4)MUITLSIM仿真 (4)实验步骤 (5),调试分析 (5)实物图 (5)五、设计心得 (6)一、摘要随着科学技术的发展,电力电子设备与人们的工作、生活的关系日益密切。
如今人民的生活水平大幅提升,生活质量和审美情趣也大幅提升,所以本次实验,我们设计了一个十八路心形流水灯,灯交替闪烁,组成心形图案,集美观于实用于一体,也可以用于馈赠亲朋好友,是十分有意义的。
关键字:LED 十八路流水灯心形流水灯交替闪烁二、设计目的和作用随着微电子技术的迅速发展,各类功能芯片的性能不断提高,数字信号处理得到越来越广泛的应用,而十八路流水灯是一个简单的应用,在通信系统、数字仪器仪表、语音、图像处理等方面都是必不可少的部分,所以流水灯的基础设计显得尤为重要。
本次设计在软硬件常规实验的基础上,运用“模拟电子技术”的理论知识,设计、分析、测试基本电路系统,初步掌握综合运用理论知识、软件仿真以及硬件测试进行简单系统的设计与分析的基本方法。
流水灯在日常生活中非常重要,运用非常广泛,在电子工程,通信工程,自动控制,遥测控制,测量仪器,仪表和计算机等技术领域,经常需要用到各种各样的流水灯。
随着集成电路的迅速发展,用集成电路可很方便地构成各种复杂功能的流水灯。
用集成电路实现的流水灯与其他流水灯相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。
流水灯在电路实验和设备检测中具有十分广泛的用途。
三、设计方案和原理电路功能18颗LED排列成心形,由三只振荡三极管驱动,通电后LED依次旋转闪亮,夜间效果更佳。
电路工作原理本电路是由3只三极管组成的循环驱动电路。
每当电源接通时,3只三极管会争先导通,但由于元器件存在差异,只会有1只三极管最先导通。
自制爱心流水灯
自制爱心流水灯每到情人节、圣诞节、恋爱纪念日等等重要的日子时,每个人都想给心爱的人最好的礼物,最能代表真心的礼物,有的人送花,有的人送巧克力,有的人带着心爱的人旅游,等等。
无论是鲜花、巧克力、旅游还是其他浪漫的活动,次数多了也就厌了,习惯了。
当你的ta对你年复一年相同的礼物已经习以为常时怎么办?你只是个学生没太多的钱买礼物怎么办?你想给ta一个独特的惊喜怎么办?不用担心,往下读,我会教你自制一个爱心流水灯,给ta最棒的礼物!这是我制作的爱心流水灯。
我已经把我制作的爱心流水灯的视频上传到土豆网:/programs/view/4gnAMZoY5rI/你们可以看看,欢迎交流,本人QQ1151195733。
这个爱心流水灯是用STC89C52单片机的32个I/O控制32个LED,实现每个LED的随意亮灭,用C语言编程,具体程序我会在后面给出。
第一步购买原件购买以下原件,总成本不到30元,相当的便宜。
1、32个6mm红色LED(多买几个以防备用)。
4元。
2、15cm*15cm万用版一个(大点小点都没事)。
5元。
3、STC89C52单片机一个。
5元。
4、DIP-40(单片机的插座)。
0.1元。
5、自锁式开关一个。
0.1元。
6、30pf电容2个,1u电容一个。
0.1元。
7、12M晶振一个。
0.1元。
8、5V电源一个,如果你用电池做电源的话就买4节1.5V 的电池,再买一个四节电池盒。
6元。
9、导线若干。
5元。
我是在我们学校的实验室里弄到这些东西的,没花一分钱。
第二步准备工具基本的电子制作工具:1、电烙铁一个。
2、焊锡丝若干。
3、松香少许,助焊剂也可以。
4、镊子(有更好,没有也行)。
第三步装配、焊接原件备齐后,就是装配焊接了,对照电路图焊接,当然,如果你会Protel或Altium Designer,你可以做个PCB板,就省去焊接工作了。
原理图如下:因为上拉电阻不够,我只有一个,所以我是这样设计的:连接P0口的LED共阳,连接P1口、P2口和P3口的LED共阴。
心形流水灯制作教程
亲,感谢你的支持并购买“新生科技电子卖场”的宝贝,网店网址:心形流水灯制作教程1、制作前先用笔对焊孔进行描绘。
这时候亲会注意到最顶上的焊孔有着些数字,只要数着这些数字并在对应的格数画上点就可以了。
具体画点参照图片。
2、画完焊孔以后进行对纸板的粘贴。
撕开胶纸后粘贴在板子上面。
粘贴后的板子3、翻到板子后面,对焊孔一一进行戳破。
可以用LED灯的灯脚剪尖进行操作。
戳好的板子正面如下图4、将LED安照戳好的洞口进行排版,记住LED排放的位置都是在外围的为正极,因为最后正极是需要全部焊接在一起的。
切记了。
刚刚排好的灯会七倒八歪的,所以要进行下面一个步骤。
6、把排版好了以后的板子翻转,然后分别先给每个LED的正极点上焊点。
负极先不需要点。
点完焊点后,一只手在后面按着LED灯,一只手用焊铁融对应的焊点,这样子LED就会被按得平平的,不会七倒八歪的了。
等全部整平整了以后,剪去长出来的引脚。
并焊上负极的点,如下图:7、给单片机上焊点(注意数点即可),如图,并给板子走上正极的焊线。
走线图如下:8、给单片机焊上晶振以及电容。
如图,晶振两个脚分别串联上电容一端再分别一个接单片机的第18个脚,一个接单片机的第19个脚。
电容剩下的连接单片机负极。
(单片机脚的定位参照配件附带的纸片。
)正面:背面:9、贴上贴片电阻,单片机上一共要焊32个贴片电阻,每8个一组。
焊贴片电阻时,先将贴片电阻八个八个弄出来,一个个放在板子上面贴着单片机脚的焊点上,用焊铁融化焊点时,贴片会被吸入。
至于北面走线的,请按照我给的图片进行焊接,不然会出现空间不够走焊线的情况。
其中的P3.8脚采用跳线焊接。
如果你全部做好了,那么恭喜你,成功的用自己的双手做出了一个精美的心形流水灯。
亲,在制作过程中有任何不懂的地方都可以随时向我说出来的。
再次欢迎你再次光临“新生科技卖场”网店网址:本店还有LED电子沙漏提供购买。
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作引言:在现代科技发展的背景下,电子产品已经成为我们生活中不可或者缺的一部份。
而作为电子制作的入门级项目,流水灯因其简单而受到泛博爱好者的爱慕。
本文将介绍使用51单片机制作爱心流水灯的原理及制作过程。
1. 原理介绍:爱心流水灯是一种特殊的流水灯效果,通过控制LED灯的亮灭顺序和时间间隔,形成一个爱心图案在LED灯带上流动的效果。
其原理基于51单片机的GPIO (通用输入输出)口控制LED灯的亮灭,通过改变LED灯的状态来实现流动效果。
2. 材料准备:制作爱心流水灯所需的材料如下:- 51单片机开辟板- LED灯带- 面包板- 杜邦线- 电阻- 电容- 电源适配器3. 硬件连接:首先,将51单片机开辟板和面包板连接起来。
然后,将LED灯带连接到面包板上,确保正极和负极正确连接。
接下来,通过杜邦线将51单片机的GPIO口与LED灯带连接起来。
最后,将电阻和电容连接到电路中,以保护电路免受过电流和过电压的伤害。
4. 软件编程:使用Keil C编译器进行软件编程。
首先,需要定义LED灯带的控制引脚,并初始化为输出模式。
然后,编写程序来控制LED灯的亮灭顺序和时间间隔。
在本例中,我们将使用循环语句和延时函数来实现流水灯效果。
通过改变LED灯的状态和延时时间,可以形成一个爱心图案在LED灯带上流动的效果。
5. 程序调试:将编写好的程序下载到51单片机开辟板上,并连接电源适配器。
打开开关,LED灯带上的爱心流水灯效果就会开始显示出来。
如果浮现问题,可以通过调试程序和检查硬件连接来解决。
6. 制作扩展:如果你对爱心流水灯的效果满意,你还可以进一步扩展你的制作。
例如,你可以添加一个按键来控制流水灯的启停,或者通过蓝牙模块和手机APP来远程控制流水灯的效果。
这些扩展可以增加你的制作的趣味性和创造性。
结论:通过本文的介绍,我们了解了51单片机爱心流水灯的原理及制作过程。
通过硬件连接和软件编程,我们可以制作出一个具有特殊效果的流水灯。
心形灯制作方法
心形灯制作方法简介心形灯是一种可爱又浪漫的装饰品,可以用来装饰家中的房间或作为礼物赠送给亲友。
本文将介绍一种简单的心形灯制作方法,让你能够轻松制作出精美的心形灯。
材料准备在开始制作心形灯之前,你需要准备以下材料:1.透明的塑料瓶2.塑料杯3.彩色胶纸4.灯珠/LED灯5.电线6.电池盒7.铅笔8.剪刀9.胶水10.螺丝刀确保你已经准备齐全以上材料,接下来我们将一步步进行心形灯的制作。
制作步骤第一步:准备工作1.将塑料瓶和塑料杯洗净并确保完全干燥。
2.使用铅笔在塑料瓶上画出一个心形的轮廓。
你可以使用一个心形模板来帮助你画出一个完美的心形。
3.使用剪刀沿着铅笔线剪下心形。
第二步:装饰心形灯1.从彩色胶纸中剪下一些小块。
颜色可以选择你喜欢的颜色,最好选择亮丽的颜色以增加心形灯的亮度。
2.使用剪刀将彩色胶纸剪成心形的形状,大小要与之前剪下的塑料心形一致。
3.将剪下的彩色胶纸粘贴在塑料心形上,可以使用胶水或透明胶带来固定。
第三步:安装灯珠/LED灯1.在心形灯的底部使用螺丝刀锥孔,以便将电线穿过去。
注意要保持底部封闭,并确保孔的大小适合电线通过。
2.将一个灯珠或LED灯固定在心形灯的底部。
你可以将灯珠或LED灯粘贴在塑料瓶的底部,或者使用胶水将其固定。
第四步:连接电线和电池盒1.将一段电线连接到灯珠/LED灯的一个引线上,并用胶带或胶水固定好。
2.将电线的另一端连接到电池盒上的正极(+)。
3.将另一段电线连接到电池盒上的负极(-)。
第五步:完成心形灯1.将电池盒放入塑料杯中,并确保电线可以从杯子底部插入。
2.将心形灯插入塑料杯中,使其底部与电池盒相连接。
3.当心形灯与电池盒连接时,心形灯将亮起。
使用和注意事项•当心形灯亮起时,请确保电池的使用安全,避免电池短路或过热。
•在更换电池时,务必先将电源关闭。
•定期检查电线和灯珠/LED灯,确保他们的连接牢固。
若有损坏或松动,请及时修复或更换。
现在,你已经制作出了一个可爱的心形灯!你可以放置在床头、书桌或其他你喜欢的地方,或者送给你的亲友作为礼物。
心形流水灯设计原理
心形流水灯设计原理
心形流水灯是一款综合多彩灯带、音乐控制灯、延时功能的智能装饰灯,它可以极具艺术美感地装点房间室外空间。
心形流水灯使用LED灯珠、电子电路技术和音乐控制技术,聚合在一起,它能够根据用户的设置,实现彩色变化、渐变变色及跟随音乐的节奏律动等功能,给人以多彩的视觉感受。
心形流水灯的原理如下:首先,根据控制要求,通过控制电路板连接相应的灯具,实现对各个灯具的控制,如果要实现彩色变化、渐变变色及跟随音乐的节奏律动,则需要将控制电路板和电脑软件结合起来使用。
其次,音乐控制灯需要使用麦克风来监听音乐信号,并将其转换为指令发送给控制电路板,以便实现跟随音乐的节奏律动等功能。
最后,控制器会根据音乐的节奏和动作,生成控制信号,通过控制电路板驱动灯具随着音乐变化,实现多彩变化的效果。
心形流水灯小巧、环保、安全,可替代传统电源装饰灯,具有节能减排的保护环境的效果。
它不仅可以满足各种变彩诉求,而且可以随着音乐节奏变化,增强视觉冲击力。
它还可以延时,可以让观看者们享受到舒服而持久的光线,让我们的生活更加温馨舒适!。
心形花样LED流水灯(带程序)
心形花样LED 流水灯(带程序)1000146073713使用89C52做的,原理图如下:总共有32个LED灯,4个I/O全部用上了。
我在这里不加有LED保护电阻,用200的也可以晶振用12M的或11.0592M也行,C1,C2用30PF。
PCB图如下:作品效果录像:/programs/view/z0bjKg_3Cd4/程序是用C语言写的;如下:#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐个点亮0~7 uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐个点亮7~0 uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐个灭0~7 uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐个灭7~0/***********************************************************/void delay(uint t); //延时void zg(uint t,uchar a);//两边逐个亮void qs(uint t,uchar a);//全部闪烁void zgxh(uint t,uchar a); // 逆时针逐个点亮//void zgxh1(uint t,uchar a); // 顺时针逐个点亮void djs(uint t,uchar a); //对角闪void lbzgm(uint t,uchar a);//两边逐个灭//void sszgm(uint t,uchar a); // 顺时针逐个灭void nszgm(uint t,uchar a); // 逆时针逐个灭void sztl(uint t,uchar a);//顺时逐个同步亮void nztl(uint t,uchar a);//逆时逐个同步亮void sztm(uint t,uchar a);//顺时逐个同步灭void nztm(uint t,uchar a);//逆时逐个同步灭void hwzjl(uint t,uchar a); //横往中间亮void hwzjm(uint t,uchar a); //横往中间灭//void swzjl(uint t,uchar a); //竖往中间亮//void swzjm(uint t,uchar a); //竖往中间灭void nzdl(uint t,uchar a); //逆时逐段亮void nzdgl(uint t,uchar a); //逆时逐段一个点亮void jgs(uint t,uchar a); //间隔闪/**********************************************************/void zg(uint t,uchar a)//两边逐个亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=0x7f;delay(t);for(i=0;i<7;i++){P0=table1[i+1];P2=table1[i];delay(t);}P2=0x00;P1=0xfe;delay(t);for(i=0;i<7;i++){P1=table[i+1];P3=table1[i];delay(t);}P3=0x00;delay(t);}}void qs(uint t,uchar a) //全部闪烁{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;delay(t);P0=P1=P2=P3=0x00;delay(t);}}void zgxh(uint t,uchar a) // 逆时针逐个点亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(t);}for(i=0;i<8;i++){P1=table[i];delay(t);for(i=0;i<8;i++){P3=table[i];delay(t);}for(i=0;i<8;i++){P2=table[i];delay(t);}}}void nszgm(uint t,uchar a) // 逆时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P0=table3[i];delay(t);}for (i=0;i<8;i++){P1=table2[i];delay(t);}for (i=0;i<8;i++){P3=table2[i];delay(t);}for (i=0;i<8;i++){P2=table2[i];delay(t);}}}/*void zgxh1(uint t,uchar a) // 顺时针逐个点亮{for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P2=table1[i];delay(t);}for(i=0;i<8;i++){P3=table1[i];delay(t);}for(i=0;i<8;i++){P1=table1[i];delay(t);}for(i=0;i<8;i++){P0=table[i];delay(t);}}}*//*void sszgm(uint t,uchar a) // 顺时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P2=table3[i];delay(t);}for (i=0;i<8;i++){P3=table3[i];delay(t);}for (i=0;i<8;i++){P1=table3[i];delay(t);}for (i=0;i<8;i++){P0=table2[i];delay(t);}}}*/void djs(uint t,uchar a) //对角闪{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=P3=0x00;delay(t);P0=P1=P2=P3=0xff;P1=P2=0x00;delay(t);}}void lbzgm(uint t,uchar a)//两边逐个灭{uchar i,j;for (j=0;j<a;j++){P0=P2=0x00;P3=0x01;delay(t);for(i=7;i>1;i--){P1=table[i-1];P3=table1[i-2];delay(t);}P1=0xfe;P3=0xff;delay(t);P1=0xff;P2=0x01;delay(t);for(i=7;i>1;i--){P0=table1[i-1];P2=table1[i-2];delay(t);}P0=0x7f;P2=0xff;delay(t);P0=0xff;delay(t);}}void sztl(uint t,uchar a)//顺时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table[i];P1=P2=P3=table1[i];delay(t);}}}void nztl(uint t,uchar a)//逆时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];P1=P2=P3=table[i];delay(t);}}}void sztm(uint t,uchar a)//顺时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=table2[i];P1=P2=P3=table3[i];delay(t);}}}void nztm(uint t,uchar a)//逆时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table3[i];P1=P2=P3=table2[i];delay(t);}}}void hwzjl(uint t,uchar a) //横往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table1[i];P3=table[i];delay(t);}}}void hwzjm(uint t,uchar a) //横往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table3[i];P3=table2[i];delay(t);}}}/*void swzjl(uint t,uchar a) //竖往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table[i];P3=table1[i];delay(t);}}}void swzjm(uint t,uchar a) //竖往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table2[i];P3=table3[i];delay(t);}}}*/void nzdl(uint t,uchar a) //逆时逐段亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];delay(t);}P0=0xff;for(i=0;i<8;i++){P1=table[i];delay(t);}P1=0xff;for(i=0;i<8;i++){P3=table[i];delay(t);}P3=0xff;for(i=0;i<8;i++){P2=table[i];delay(t);}P2=0xff;}}void nzdgl(uint t,uchar a) //逆时逐段一个点亮{uchar i,j,k,l;for (j=0;j<a;j++){k=table1[0];P0=k;l=table[0];P1=P2=P3=l;delay(t);for(i=0;i<8;i++){k=_crol_(k,-1);P0=k;l=_crol_(l,1);P1=P2=P3=l;delay(t);}}}void jgs(uint t,uchar a) //间隔闪{uchar j;for (j=0;j<a;j++){P0=0x55;P1=P2=P3=0xaa;delay(t);P0=0xaa;P1=P2=P3=0x55;delay(t);}}void main(){uchar i;while(1){zg(100,1); //两边逐个亮lbzgm(100,1); //两边逐个灭jgs(300,10);djs(100,20); //对角闪////////////////////////////////////////////P1=P2=P3=0xff;for(i=0;i<3;i++){P0=0x00;delay(800);P0=0xff;delay(800);}P0=0x00;for(i=0;i<3;i++){P1=0x00;delay(800);P1=0xff;delay(800);}for(i=0;i<3;i++){P3=0x00;delay(800);P3=0xff;delay(800);}P3=0x00;for(i=0;i<3;i++){P2=0x00;delay(800);P2=0xff;delay(800);}qs(500,3);/////////////////////////////////////////////for(i=0;i<6;i++){zgxh(50,1);nszgm(50,1);}djs(100,20); //对角闪for(i=0;i<3;i++){zg(100,1); //两边逐个亮lbzgm(100,1); //两边逐个灭}qs(200,10);djs(100,50);for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(300,10); //对角闪nzdgl(300,10); //逆时逐段一个点亮jgs(300,10); //间隔闪for(i=0;i<3;i++){nszgm(100,1);}/*for(i=0;i<5;i++){zgxh1(100,1);sszgm(100,1);}*/nzdl(200,3); //逆时逐段亮jgs(50,100); //间隔闪/*///////////////////////////////////////////////////// P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(200);}for (i=0;i<8;i++){P1=table[i];delay(200);}for(i=0;i<3;i++){P0=P1=0x00;delay(200);P0=P1=0xff;delay(200);}for (i=0;i<8;i++){P2=table1[i];delay(200);}for (i=0;i<8;i++){P3=table1[i];delay(200);}for(i=0;i<3;i++)P2=P3=0x00;delay(200);P2=P3=0xff;delay(200);}*///////////////////////////////////////////////////nzdgl(50,40); //逆时逐段一个点亮for(i=0;i<4;i++){zg(100,1);qs(100,10);lbzgm(100,1);}// djs(50,100); //对角闪for(i=0;i<3;i++){zgxh(100,1);nszgm(100,1);}djs(1000,10);for(i=0;i<10;i++){hwzjl(200,1); //横往中间亮hwzjm(200,1); //横往中间灭}djs(300,10); //对角闪/* for(i=0;i<10;i++){swzjl(200,1); //竖往中间亮swzjm(200,1); //竖往中间灭}*/for(i=0;i<5;i++){zgxh(100,1);nszgm(100,1);}djs(100,20); //对角闪zg(300,1);lbzgm(300,1);/*for(i=0;i<5;i++)zgxh1(100,1);sszgm(100,1);}*/for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(500,20); //对角闪djs(100,30); //对角闪djs(50,50); //对角闪// djs(10,100); //对角闪delay(1000);}}void delay(uint t){uint x,y;for (x=t;x>0;x--){for (y=120;y>0;y--);}}因为89C52的容量有限,所以还有几个方式注释掉了。
51单片机爱心流水灯原理及制作
uchar flag=200;
///////////////////////////////////////////////////////////////////////
uchar code Tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};//暗中左移向下
电路原理图:
原件清单:
1、51单片机x1、40Pin座x1
2、LED x32(建议用5mm七彩的)
3、电阻470Ωx33
4、晶振12MHz x1
5、10uf电解电容x1、谐振瓷片电容30pf x2
6·其他的可以看自己的爱好去加
7、其实也可以不用那么多的电阻,用几个排阻就OK了。
效果展示:
作品程序:
#include<reg52.h>
void delay(void)
{
unsigned char m,n;
for(m=0;m<flag;m++)
for(n=0;n<250;n++)
;
}
///////////////////////////////////
void hy1(void) //点亮状态逆时针旋转90度(一个一个灭)
{
unsigned char i;
void hy3(void) //点亮中逆时针转360°(一个一个灭)
{
unsigned char i;
flag=50;
P0=0x00;P1=0x00;P2=0x00;P3=0x00;
for(i=0;i<8;i++)
基于单片机心形音乐流水灯设计
摘要本论文基于单片机技术与单片机芯片AT89S51芯片功能和汇编语言程序,实现心形音乐流水灯的多种亮与灭的循环。
首先,我们了解单片机的一些技术,了解了单片机芯片AT89S51的一些功能;然后结合汇编语言编程;最后将它们运用到实际的电路,使心形音乐LED灯实现多种亮灭方法(5种状态)。
本论文介绍关于流水灯的运用和单片机技术;然后介绍芯片AT89S51;最后介绍运用到的相关软件.目录引言 ........................................................................................ 错误!未定义书签。
1 设计方案.............................................................................. 错误!未定义书签。
1.1 总体设计目标................................................................................ 错误!未定义书签。
1.2 总体设计组成框图.............................................................................. 错误!未定义书签。
2 相关运用与功能.................................................................. 错误!未定义书签。
2.1流水灯运用........................................................................................... 错误!未定义书签。
2.2 单片机运用.......................................................................................... 错误!未定义书签。
心形花样LED流水灯程序-推荐下载
} for(i=0;i<8;i++) {
P1=table[i]; delay(t); } for(i=0;i<8;i++) { P3=table[i]; delay(t); } for(i=0;i<8;i++) { P2=table[i]; delay(t); } } }
void nszgm(uint t,uchar a) // 逆时针逐个灭 {
}
/* void zgxh1(uint t,uchar a) // 顺时针逐个点亮 {
uchar i,j; for (j=0;j<a;j++) {
P0=P1=P2=P3=0xff; for (i=0;i<8;i++) {
/***********************************************************/ void delay(uint t); //延时 void zg(uint t,uchar a);//两边逐个亮 void qs(uint t,uchar a);//全部闪烁 void zgxh(uint t,uchar a); // 逆时针逐个点亮 //void zgxh1(uint t,uchar a); // 顺时针逐个点亮 void djs(uint t,uchar a); //对角闪 void lbzgm(uint t,uchar a);//两边逐个灭 //void sszgm(uint t,uchar a); // 顺时针逐个灭 void nszgm(uint t,uchar a); // 逆时针逐个灭 void sztl(uint t,uchar a);//顺时逐个同步亮 void nztl(uint t,uchar a);//逆时逐个同步亮 void sztm(uint t,uchar a);//顺时逐个同步灭 void nztm(uint t,uchar a);//逆时逐个同步灭 void hwzjl(uint t,uchar a); //横往中间亮 void hwzjm(uint t,uchar a); //横往中间灭 //void swzjl(uint t,uchar a); //竖往中间亮 //void swzjm(uint t,uchar a); //竖往中间灭 void nzdl(uint t,uchar a); //逆时逐段亮 void nzdgl(uint t,uchar a); //逆时逐段一个点亮 void jgs(uint t,uchar a); //间隔闪 /**********************************************************/ void zg(uint t,uchar a)//两边逐个亮 {
心形流水灯报告
心形流水灯报告引言心形流水灯是一种独特的装饰灯,其形状呈现为一个心形,且灯光呈现流水般效果。
心形流水灯广泛应用于情人节、婚礼、生日派对等场合,成为一种浪漫且温馨的装饰方式。
本报告将介绍心形流水灯的设计原理、制作方法和一般使用情况,并提供一些建议和注意事项。
设计原理心形流水灯的核心组成部分包括LED灯珠、心形灯板、控制电路和电源。
其工作原理是通过控制电路将电源的电能转化为LED灯珠的光能,然后通过心形灯板的特殊设计,使灯光呈现出流水效果。
制作方法以下是制作心形流水灯的一般步骤:1.准备材料和工具–LED灯珠(多达数十颗)–心形灯板–控制电路(例如Arduino)–电源线和插头–电焊工具–导线–热熔胶枪2.连接LED灯珠–使用导线将LED灯珠连接到控制电路上,确保正确极性和正常电路连接。
3.连接控制电路和电源–将控制电路和电源连接起来,注意正确的极性和电压要求。
4.安装心形灯板–将心形灯板安装在适当的位置上,确保灯珠布置整齐,并由热熔胶固定灯珠和电线。
5.测试与调试–接通电源,检查心形流水灯是否正常工作,如有异常,可通过调整控制电路或检查连线来解决问题。
6.包装和完成–可以根据需要制作灯罩或装饰外壳,以增加装饰效果和保护灯具。
使用情况心形流水灯适合用于以下情况和场合:1.情人节装饰–心形流水灯作为情人节的装饰品,能够创造出浪漫的氛围,为情侣们营造出甜蜜而温馨的氛围。
2.婚礼装饰–在婚礼现场悬挂或摆放心形流水灯,能够给婚礼增添浪漫和喜庆的氛围。
3.生日派对装饰–在生日派对上使用心形流水灯,可以为寿星带来惊喜和祝福,同时也能增加派对的欢乐氛围。
4.居家装饰–安装一个心形流水灯在家中的角落,可以增加居家生活的乐趣和温馨感。
建议和注意事项在制作和使用心形流水灯时,需要注意以下事项:1.安全第一–在制作和使用心形流水灯时,务必注意安全,避免电路短路、漏电等安全问题。
2.选择合适的材料和工具–使用高质量的LED灯珠、适用的心形灯板和控制电路,以确保心形流水灯的效果和耐用性。
心形流水灯的实验报告
心形流水灯的实验报告心形流水灯的实验报告一、引言心形流水灯是一种具有艺术性和创意性的灯光装饰,它通过流动的灯光呈现出一个心形的图案。
本实验旨在探索心形流水灯的制作原理和工作原理,并通过实际搭建一个心形流水灯来验证理论。
二、实验材料和方法1. 实验材料:- Arduino开发板- LED灯珠- 面包板- 连接线- 电阻- 电池或电源2. 实验方法:- 将Arduino开发板与面包板连接,并将LED灯珠插入面包板上。
- 根据电路图连接电路,包括电阻和电源的连接。
- 编写Arduino程序,控制LED灯珠按照心形图案流动。
三、实验过程1. 搭建电路根据电路图,将Arduino开发板与面包板连接,并将LED灯珠插入面包板上。
根据需要,可以选择不同颜色的LED灯珠,以增加艺术效果。
2. 连接电路根据电路图连接电路。
首先,将Arduino开发板的数字引脚与面包板上的LED灯珠连接,以控制灯珠的亮灭。
然后,将电阻连接到面包板上的LED灯珠,以限制电流。
最后,将电源连接到电路上,为LED灯珠提供电力。
3. 编写Arduino程序使用Arduino编程软件,编写程序以控制LED灯珠按照心形图案流动。
可以使用Arduino的编程语言,通过控制数字引脚的高低电平来控制LED灯珠的亮灭。
通过循环和延时函数,可以实现LED灯珠按照一定的频率和顺序流动,形成心形图案。
四、实验结果经过实验,我们成功搭建了一个心形流水灯,并通过Arduino程序控制LED灯珠按照心形图案流动。
当灯珠流动时,形成一个明亮的心形图案,给人一种浪漫和温馨的感觉。
五、实验分析心形流水灯的制作原理是通过控制LED灯珠的亮灭和流动顺序,形成一个心形图案。
通过Arduino开发板和编程软件,我们可以方便地控制LED灯珠的亮灭和流动,实现心形流水灯的效果。
在实验过程中,我们还可以对实验进行一些改进和扩展。
例如,可以增加更多LED灯珠,以增加心形图案的亮度和效果。
爱心灯
爱心灯第一步购买元件爱心流水灯部分:1. 6mm红色LED(可以再多买几个备用)24个2.15cm*20cm万用板2个3.STC89C52单片机1片4.单片机插座DIP-40 1个5.自锁式开关1个6.30pF 电容2个7.10uF电解电容1个8.12M晶振(或者11.0592M晶振)1个9. 三节电池盒一个10.按键2个11.1K电阻24个12.10K上拉电阻1个13.导线若干电子音乐部分:1.MSP430G2553 单片机1个2.1N4001二极管2个(或者用ams1117-3.3V稳压芯片)3.10K电阻1个4.喇叭一个5.10uF电解电容第二步准备工具基本的电子制作工具:1、电烙铁一个。
2、焊锡丝若干。
3、松香少许,助焊剂也可以。
4、镊子第三步焊接第一步,在万用板上排好要焊接的LED正面图如下:第二步,在背面焊接上1k限流电阻:在这里采用贴片电阻,占用地方少。
焊接好好后的的样子如下第三步,就是把所有的正极连起来,如下:第三步,就是把所有的正极连起来,如下:正面如下:反面如下:第五步,将24个led的阴极连接到单片机引脚上(原理图如下)。
第七步:焊接msp430g3553(电子音乐部分)。
至此,大部分已经焊接完成,最后再焊接两个按键和三个个跳线帽和一个音频接口。
其中一个按键的作用是启动流水灯,另一个备用,三个跳线帽其中两个跳线帽可以选择控制两个绿色的led的亮灭(拔掉跳线帽就是是绿色led不发光),另外一个控制喇叭能否发声。
下面贴上几幅焊接完成的图片:为了好看,可以将电路板背面的导线遮挡住,在此处采用再加一个空板子放在下面。
第四步程序分析#include"reg52.h"#include"intrins.h"#define uint unsigned int#define uchar unsigned charuchar f=0;bit ff=0;sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;sbit P00=P0^0;sbit P01=P0^1;sbit P02=P0^2;sbit P03=P0^3;sbit P04=P0^4;sbit P05=P0^5;sbit P06=P0^6;sbit P07=P0^7;sbit P24=P2^4;sbit key1=P3^2;sbit key2=P3^3;void delay_ms(uint ms)void offall()//close all ledvoid onall()//open all ledvoid ss(uint a)//闪烁a为闪烁间隔void jgss(uint a)//间隔闪烁void bbss(uint a)//半边交替闪烁void sxss(uint a)//上下交替闪烁void func1(uint a)//等时流水灯void func1_1()//等时流水灯void func2(uint a)//反向等时流水灯void func2_1()//反向等时流水灯void func3(uint a)//半双边流水由上至下void func3_1()//半双边流水由上至下void func4(uint a)//半双边流水右下至上void func4_1()//半双边流水右下至上void func5(uint a)//正向生长void func5_11()//正向生长void func6(uint a)//反向生长void func6_11()//反向生长void func5_1(uint a)//两边同时向下生长void func5_12()//两边同时向下生长void func6_1(uint a)//两边从下往上同时生长void func6_12()//两边从下往上同时生长void func7(uint a)//不亮的灯流水顺时针void func7_1()//不亮的灯流水顺时针void func8(uint a)//不亮的灯流水逆时针void func8_1()//不亮的灯流水逆时针void func9(uint a)//正向死亡void func9_1()//正向死亡void func10(uint a)//逆向消亡void func10_1()//逆向消亡void func12(uint a)//流水灯,留下每4位的第1,2,3个led亮void func12_1()//流水灯,留下每4位的第1,2,3个led亮void func13(uint a)//自下而上依次填满void func13_1()//自下而上依次填满void func14(uint a)//自上而下依次填满void func14_1()//自上而下依次填满void func15(uint a)//P0,P1,P2同时循环左移void func16(uint a)//P0,P1,P2同时循环左移void func17(uint a)//P0,P1,P2同时左移void func18(uint a)//P0,P1,P2同时右移void func19(uint a)//逐个熄灭void func20(uint a)//逐个变亮以上只给出了函数名,具体函数见附录。
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作爱心流水灯是一种常见的电子制作项目,它利用51单片机控制LED灯的亮灭顺序,形成一个动态的爱心图案。
下面将详细介绍爱心流水灯的原理及制作过程。
一、原理介绍1. 51单片机:51单片机是一种常用的微控制器,具有较强的控制能力和广泛的应用领域。
2. LED灯:LED灯是一种半导体发光器件,具有低功耗、长寿命和丰富的颜色选择等特点。
3. 流水灯原理:流水灯是利用多个LED灯按照一定的顺序依次亮灭,形成一个动态的流动效果。
二、制作材料准备1. 51单片机开发板:用于编写和烧录控制程序。
2. LED灯:选择红色LED灯,数量根据实际需要确定。
3. 电阻:用于限流,根据LED灯的工作电流和电压确定合适的电阻值。
4. 连接线:用于连接单片机和LED灯。
三、制作步骤1. 连接电路:将LED灯按照心形的形状连接在面包板上,每个LED灯之间通过连接线连接。
2. 连接单片机:将51单片机开发板与面包板上的电路连接,确保每个LED灯的正极连接到单片机的输出引脚。
3. 编写程序:使用C语言编写控制LED灯亮灭的程序,并将程序烧录到51单片机中。
4. 供电测试:将电路连接到电源上,通过控制程序使LED灯按照设定的顺序亮灭,观察是否形成了爱心流水灯效果。
5. 优化调整:根据实际效果对程序进行优化和调整,使得爱心流水灯效果更加流畅和美观。
四、注意事项1. 电路连接:在连接LED灯的过程中,注意正负极的连接,确保LED灯正极连接到单片机的输出引脚。
2. 电阻选择:根据LED灯的工作电流和电压确定合适的电阻值,以保护LED 灯不受过电流的损坏。
3. 程序编写:编写程序时,注意控制LED灯的亮灭顺序和时间间隔,以达到预期的流水灯效果。
4. 安全用电:在进行供电测试时,确保使用稳定可靠的电源,并注意电路的绝缘和防触电措施。
五、扩展应用1. 调节亮度:通过调整LED灯的亮度,可以改变爱心流水灯的效果,使其更加柔和或明亮。
LED点阵心形流水灯单片机设计
河南理工大学开放实验室单片机设计报LED点阵心形流水灯礼品目录0 前言 (1)1系统组成与功能 (1)1.1 系统组成 (1)1.1.1 AT89C51单片机 (1)1.1.2 16乘16点阵 (2)1.2 系统功能 (3)2系统原理 (3)2.1系统仿真图 (3)2.2 实物照片 (4)3程序流程图 (6)4程序代码 (7)5结论 (14)参考文献 (14)基于单片机控制心形流水灯跟点阵0 前言随着社会的发展,单片机得到了广泛的应用,人们越来越重视单片机的应用。
比如温度是和每个人息息相关的,并且在有的生产车间里还要进行温度时时测量,甚至是对温度的进一步调控等,这些都是单片机的应用之例。
本设计是用单片机和点阵加一个小的流水灯电路,作为玩具挺有趣的。
这次的作品,初衷是希望通过单片机学习,做个生日礼物送给朋友。
由于时间紧迫,做的有些仓促,望原谅。
1系统组成与功能1.1 系统组成本系统主要有AT89C51单片机、18b20、1602、蜂鸣器、四位一体七段数码管等元件组成。
1.1.1 AT89C51单片机AT89S51具有如下特点:40个引脚,8kBytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可图1-1 A T89C51引脚图为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
引脚图如图1-1所示。
管脚说明1RST:复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LED心形流水灯加程序1.原件清单:一个万能板,一个底座,一个STC89C52芯片,32个LED 灯,32个贴片电阻,两个30uf电容,一个晶振。
2.原理图:注:电源处的复位可以不用;就是上面红框里的内容3.正面图背面图:亮灯图:4. 程序代码:#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐个点亮0~7 uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐个点亮7~0 uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐个灭0~7 uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐个灭7~0/***********************************************************/ void delay(uint t);//延时void zg(uint t,uchar a);//两边逐个亮void qs(uint t,uchar a);//全部闪烁void zgxh(uint t,uchar a); // 逆时针逐个点亮//void zgxh1(uint t,uchar a); // 顺时针逐个点亮void djs(uint t,uchar a); //对角闪void lbzgm(uint t,uchar a);//两边逐个灭//void sszgm(uint t,uchar a); // 顺时针逐个灭void nszgm(uint t,uchar a); // 逆时针逐个灭void sztl(uint t,uchar a);//顺时逐个同步亮void nztl(uint t,uchar a);//逆时逐个同步亮void sztm(uint t,uchar a);//顺时逐个同步灭void nztm(uint t,uchar a);//逆时逐个同步灭void hwzjl(uint t,uchar a); //横往中间亮void hwzjm(uint t,uchar a); //横往中间灭//void swzjl(uint t,uchar a); //竖往中间亮//void swzjm(uint t,uchar a); //竖往中间灭void nzdl(uint t,uchar a); //逆时逐段亮void nzdgl(uint t,uchar a); //逆时逐段一个点亮void jgs(uint t,uchar a); //间隔闪/**********************************************************/ void zg(uint t,uchar a)//两边逐个亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=0x7f;delay(t);for(i=0;i<7;i++){P0=table1[i+1];P2=table1[i];delay(t);}P2=0x00;P1=0xfe;delay(t);for(i=0;i<7;i++){P1=table[i+1];P3=table1[i];delay(t);}P3=0x00;delay(t);}}void qs(uint t,uchar a)//全部闪烁{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;delay(t);P0=P1=P2=P3=0x00;delay(t);}}void zgxh(uint t,uchar a) // 逆时针逐个点亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(t);}for(i=0;i<8;i++){P1=table[i];delay(t);}for(i=0;i<8;i++){P3=table[i];delay(t);}for(i=0;i<8;i++){P2=table[i];delay(t);}}}void nszgm(uint t,uchar a) // 逆时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P0=table3[i];delay(t);}for (i=0;i<8;i++){P1=table2[i];delay(t);}for (i=0;i<8;i++){P3=table2[i];delay(t);}for (i=0;i<8;i++){P2=table2[i];delay(t);}}}/*void zgxh1(uint t,uchar a) // 顺时针逐个点亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P2=table1[i];delay(t);}for(i=0;i<8;i++){P3=table1[i];delay(t);}for(i=0;i<8;i++){P1=table1[i];delay(t);}for(i=0;i<8;i++){P0=table[i];delay(t);}}}*//*void sszgm(uint t,uchar a) // 顺时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P2=table3[i];delay(t);}for (i=0;i<8;i++){P3=table3[i];delay(t);}for (i=0;i<8;i++){P1=table3[i];delay(t);}for (i=0;i<8;i++){P0=table2[i];delay(t);}}}*/void djs(uint t,uchar a) //对角闪{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=P3=0x00;delay(t);P0=P1=P2=P3=0xff;P1=P2=0x00;delay(t);}}void lbzgm(uint t,uchar a)//两边逐个灭{uchar i,j;for (j=0;j<a;j++){P0=P2=0x00;P3=0x01;delay(t);for(i=7;i>1;i--){P1=table[i-1];P3=table1[i-2];delay(t);}P1=0xfe;P3=0xff;delay(t);P1=0xff;P2=0x01;delay(t);for(i=7;i>1;i--){P0=table1[i-1];P2=table1[i-2];delay(t);}P0=0x7f;P2=0xff;delay(t);P0=0xff;delay(t);}}void sztl(uint t,uchar a)//顺时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table[i];P1=P2=P3=table1[i];delay(t);}}}void nztl(uint t,uchar a)//逆时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];P1=P2=P3=table[i];delay(t);}}void sztm(uint t,uchar a)//顺时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=table2[i];P1=P2=P3=table3[i];delay(t);}}}void nztm(uint t,uchar a)//逆时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table3[i];P1=P2=P3=table2[i];delay(t);}}}void hwzjl(uint t,uchar a) //横往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table1[i];P3=table[i];delay(t);}}}void hwzjm(uint t,uchar a) //横往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table3[i];P3=table2[i];delay(t);}}}/*void swzjl(uint t,uchar a) //竖往中间亮uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table[i];P3=table1[i];delay(t);}}}void swzjm(uint t,uchar a) //竖往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table2[i];P3=table3[i];delay(t);}}}*/void nzdl(uint t,uchar a) //逆时逐段亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];delay(t);}P0=0xff;for(i=0;i<8;i++){P1=table[i];delay(t);}P1=0xff;for(i=0;i<8;i++){P3=table[i];delay(t);}P3=0xff;for(i=0;i<8;i++){P2=table[i];delay(t);}P2=0xff;}}void nzdgl(uint t,uchar a) //逆时逐段一个点亮{uchar i,j,k,l;for (j=0;j<a;j++){k=table1[0];P0=k;l=table[0];P1=P2=P3=l;delay(t);for(i=0;i<8;i++){k=_crol_(k,-1);P0=k;l=_crol_(l,1);P1=P2=P3=l;delay(t);}}}void jgs(uint t,uchar a) //间隔闪{uchar j;for (j=0;j<a;j++){P0=0x55;P1=P2=P3=0xaa;delay(t);P0=0xaa;P1=P2=P3=0x55;delay(t);}}void main(){uchar i;while(1){zg(100,1);//两边逐个亮lbzgm(100,1);//两边逐个灭jgs(300,10);djs(100,20); //对角闪//////////////////////////////////////////// P1=P2=P3=0xff;for(i=0;i<3;i++){P0=0x00;delay(800);P0=0xff;delay(800);}P0=0x00;for(i=0;i<3;i++){P1=0x00;delay(800);P1=0xff;delay(800);}P1=0x00;for(i=0;i<3;i++){P3=0x00;delay(800);P3=0xff;delay(800);}P3=0x00;for(i=0;i<3;i++){P2=0x00;delay(800);P2=0xff;delay(800);}qs(500,3);/////////////////////////////////////////////for(i=0;i<6;i++){zgxh(50,1);nszgm(50,1);}djs(100,20); //对角闪for(i=0;i<3;i++){zg(100,1);//两边逐个亮lbzgm(100,1);//两边逐个灭}qs(200,10);djs(100,50);for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(300,10); //对角闪nzdgl(300,10); //逆时逐段一个点亮jgs(300,10); //间隔闪for(i=0;i<3;i++){zgxh(100,1);nszgm(100,1);}/*for(i=0;i<5;i++){zgxh1(100,1);sszgm(100,1);}*/nzdl(200,3); //逆时逐段亮jgs(50,100); //间隔闪/*///////////////////////////////////////////////////// P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(200);}for (i=0;i<8;i++){P1=table[i];delay(200);}for(i=0;i<3;i++){P0=P1=0x00;delay(200);P0=P1=0xff;delay(200);}for (i=0;i<8;i++){P2=table1[i];delay(200);}for (i=0;i<8;i++){P3=table1[i];delay(200);}for(i=0;i<3;i++){P2=P3=0x00;delay(200);P2=P3=0xff;delay(200);}*/////////////////////////////////////////////////// nzdgl(50,40); //逆时逐段一个点亮for(i=0;i<4;i++){zg(100,1);qs(100,10);lbzgm(100,1);}//djs(50,100); //对角闪for(i=0;i<3;i++){zgxh(100,1);nszgm(100,1);}djs(1000,10);for(i=0;i<10;i++){hwzjl(200,1); //横往中间亮hwzjm(200,1); //横往中间灭}djs(300,10); //对角闪/*for(i=0;i<10;i++){swzjl(200,1); //竖往中间亮swzjm(200,1); //竖往中间灭}*/for(i=0;i<5;i++){zgxh(100,1);nszgm(100,1);}djs(100,20); //对角闪zg(300,1);lbzgm(300,1);/*for(i=0;i<5;i++){zgxh1(100,1);sszgm(100,1);}*/for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(500,20); //对角闪djs(100,30); //对角闪djs(50,50); //对角闪//djs(10,100); //对角闪delay(1000);}}void delay(uint t){uint x,y;for (x=t;x>0;x--){for (y=120;y>0;y--);}}。