花样流水灯设计
- 格式:doc
- 大小:520.00 KB
- 文档页数:7
花样流水的灯课程设计一、课程目标知识目标:1. 让学生理解并掌握“花样流水”灯的制作原理,包括电路连接、灯光控制等方面的基础知识。
2. 使学生了解“花样流水”灯在生活中的应用,提高对物理知识在实际应用中的认识。
技能目标:1. 培养学生动手操作能力,能够独立完成“花样流水”灯的制作。
2. 提高学生团队协作能力,学会在小组合作中共同解决问题,完成作品。
情感态度价值观目标:1. 培养学生对科学的兴趣和好奇心,激发他们探索未知世界的热情。
2. 引导学生关注生活中的科技创新,培养创新精神和实践能力。
3. 培养学生节能环保意识,让他们认识到科技发展应与环境保护相结合。
课程性质:本课程为实践性课程,结合物理知识,以学生动手制作为主,注重培养学生的实践能力和创新能力。
学生特点:六年级学生具有较强的动手操作能力和好奇心,对新鲜事物感兴趣,具备一定的团队合作意识。
教学要求:教师应引导学生主动探究,注重启发式教学,让学生在动手实践中掌握知识,提高能力。
同时,关注学生的情感态度价值观培养,使他们在课程学习中得到全面发展。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容本课程依据课程目标,选择以下教学内容:1. 电路基础知识:介绍电路的组成、电路图的识别、电路连接方式等,为学生制作“花样流水”灯奠定基础。
(对应教材章节:第二章 电路基础)2. 传感器原理:讲解传感器的工作原理、种类及其在“花样流水”灯中的应用。
(对应教材章节:第五章 传感器)3. 灯光控制技术:学习灯光亮度、颜色及动态效果的控制系统,使学生能够设计出独特的“花样流水”灯效果。
(对应教材章节:第七章 光电控制系统)4. 实践操作:指导学生动手制作“花样流水”灯,包括电路搭建、灯光调试等环节。
教学内容安排如下:第一课时:电路基础知识学习,了解“花样流水”灯的制作原理。
第二课时:学习传感器原理,探讨其在“花样流水”灯中的应用。
第三课时:学习灯光控制技术,掌握灯光效果的调整方法。
eda花样流水灯的课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握花样流水灯的设计原理;2. 学生能描述流水灯电路的工作原理,了解相关电子元件的功能和连接方式;3. 学生掌握C语言编程基础,能编写简单的程序控制流水灯的显示效果。
技能目标:1. 学生能运用所学知识,设计出具有创意的花样流水灯电路;2. 学生通过实践操作,提高焊接和电路调试的能力;3. 学生通过团队协作,学会沟通和解决问题,提高项目实践能力。
情感态度价值观目标:1. 学生对电子设计产生兴趣,培养创新意识和探索精神;2. 学生认识到科技发展对社会进步的重要性,增强社会责任感和使命感;3. 学生在团队协作中,学会尊重他人、分享成果,培养良好的团队合作精神。
分析课程性质、学生特点和教学要求:本课程为电子技术与应用的实践课程,适用于初中或高中年级学生。
学生在之前的学习中已经掌握了基本的电路知识和C语言编程基础。
课程注重实践操作,鼓励学生创新设计,培养学生的动手能力和团队协作能力。
课程目标具体、可衡量,旨在让学生通过实践,掌握EDA技术的基本应用,提高电子设计能力,同时注重培养学生的情感态度价值观,为今后的学习和发展奠定基础。
二、教学内容本课程教学内容主要包括以下三个方面:1. 电子设计自动化(EDA)基础理论- 了解EDA的基本概念、发展历程和应用领域;- 学习流水灯的设计原理和电路组成;- 掌握相关电子元件的功能、符号和连接方式。
2. 流水灯电路设计与编程- 学习流水灯电路的设计方法,分析不同显示效果的实现原理;- 掌握C语言编程基础,编写控制流水灯的程序;- 结合教材相关章节,实践操作,调试电路。
3. 团队协作与项目实践- 分组进行项目设计,明确分工,培养团队协作能力;- 制定项目进度计划,按计划完成电路设计、编程、调试和展示;- 教师指导,学生互评,总结项目实施过程中的经验教训。
教学内容安排和进度:第一周:EDA基础理论学习和流水灯设计原理了解;第二周:学习C语言编程基础,编写简单的流水灯程序;第三周:分组项目实践,进行电路设计和调试;第四周:项目总结与展示,交流学习心得。
单片机实训报告——花样流水灯的制作班级:电气一班学号:110101127姓名:李亚龙一、花样流水灯的设计方案流水灯实际上就是一个带有八个发光二级管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
如果要让P0.0口的LED2亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.0~P0.7口的其他7个LED的电亮和熄灭的方法同LED2。
因此,要实现流水灯功能我们只要将发光二极管LED2~LED9依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
对8段LED数码管显示器的控制,包括“显示段”和“公共端”两个地方的控制。
其中显示段用来控制字符的形状,公共端用来控制若干个LED中的那一只被选中,前者称为“段选”,后者称为”位选”。
只有二者结合起来,才能在指定的LED上显示指定的字形。
显然,要显示某种字形就应该使此字形的相应字段点亮,按照dp、g、e、f、e、d、c、b、a的顺序,dp为最高位,a为最低位,引脚输入不同的8位二进制编码,可显示不同的数字或字符。
二、花样流水灯的硬件电路设计时钟电路是计算机的心脏,它控制着计算机的工作节奏,CPU 就是通过复杂的时序电路完成不同的指令功能的,89C52的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。
单片机有多种复位电路,本系统采用电平式复位与上电复位方式,如下图所示当上电时C1相当于短路时,使单片机复位,在正常工作时,按下复位键是单片机复位。
显示部分主要是由八个LED和四个七段数码管组成,八个LED 由限流电阻限流后接入89C52的P0口。
三、花样流水灯的软件设计#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit key3=P3^1;sbit key2=P3^2;sbit key1=P3^3;uchar code table[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; uchar code moshi1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchar code moshi2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar code moshi3[]={0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00};uchar code moshi4[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};uchar code moshi5[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};uchar code moshi6[]={0x7e,0x3c,0x18,0x00,0x81,0xc3,0xe7,0xff};uchar moshi,dingshi; //模式,定时uchar shijian,k1; //时间控制uchar num0,num;void delay(uint x) //延时程序{uchar i;while(x--);for(i=0;i<120;i++);}void keyscan() //键盘扫描{if(key1==0){delay(10);if(key1==0) //按键1,模式循环{moshi++;if(moshi==7)moshi=1;TR0=1;k1=1;while(!key1);}}if(key2==0) //按键2,时间调整{delay(10);if(key2==0){shijian++;if(shijian==15)shijian=15;while(!key2);}}if(key3==0) //按键3,时间复位{delay(10);if(key3==0){shijian--;if(shijian==1)shijian=1;while(!key3);}}}void display() //数码管显示{P1=table[moshi];P2=0xfe; //从左向右显示delay(2);P1=0XFF;P2=0XFF; //数码管不显示delay(2);P1=table[dingshi/10]; //十位显示P2=0xfd;delay(2);P1=table[dingshi%10]; //个位显示P2=0xfe;delay(2);}void liushuideng() //流水灯显示{switch(moshi) //模式选择{case 1:P0=moshi1[num];break;case 2:P0=moshi2[num];break;case 3:P0=moshi3[num];break;case 4:P0=moshi4[num];break;case 5:P0=moshi5[num];break;case 6:P0=moshi6[num];break;}}void disp() //显示器{num++;if(num==8){num=0;dingshi--;if(dingshi==0){dingshi=shijian;moshi++;if(moshi==7)moshi=1;}}}void init() //初始化{TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=0;shijian=5;dingshi=5;moshi=0;P3=P0=0xff;num=num0=0;}void main(){init();while(1){keyscan(); //键盘扫描display(); //数码管显示if(k1==1) //模式选择liushuideng(); //流水灯显示}}void t0_time() interrupt 1 //中断{TH0=(65536-50000)/256;TL0=(65536-50000)%256;num0++;if(num0==6){num0=0;disp();}}四、总结实训中我发现主要问题是在焊接电路板的时候有虚焊,导致电路接触不良,还有多焊导致电路板损坏或短路。
单品机花样流水灯程序设计外部中断触发方式结果分析```while (true) {// 更新灯光状态updateLightPattern();// 控制LED灯显示displayLightPattern();// 延时一段时间delay(someDelayTime);}```在上述伪代码中,`updateLightPattern()`函数用于更新灯光状态,`displayLightPattern()`函数用于控制LED灯显示,`delay()`函数用于延时一段时间。
2. 外部中断触发方式:外部中断可以是通过按下按钮、接收到特定信号等方式触发。
在单品机花样流水灯中,可以通过外部中断触发方式改变灯光的状态或执行其他操作。
以下是一个示例的外部中断触发方式的伪代码:```void externalInterruptHandler() {// 处理外部中断触发// 更新灯光状态或执行其他操作updateLightPattern();}void setup() {// 初始化外部中断attachInterrupt(externalInterruptPin, externalInterruptHandler, INTERRUPT_MODE);}void loop() {// 控制LED灯显示displayLightPattern();// 延时一段时间delay(someDelayTime);}```在上述伪代码中,`externalInterruptHandler()`函数用于处理外部中断触发,`attachInterrupt()`函数用于将外部中断与特定的引脚和触发模式关联起来。
外部中断可在`setup()`函数中进行初始化,然后在`loop()`函数中进行循环执行。
3. 结果分析:通过上述程序设计和外部中断触发方式,单品机花样流水灯可以实现按照设定的规律进行灯光状态的变化,并且通过外部中断触发方式可以改变灯光的状态或执行其他操作。
心形花样流水灯设计报告
心形花样流水灯设计报告
心形花样流水灯是现有流水灯的一种经典改良版本,它采用16个灯作为原形,在跟随律动改变时,灯会形成一个心形的图案,从而形成艳丽夺目的画面。
该设计把流水灯的动感与闪烁的灯光有机地结合起来,带给观众一个难忘的视觉体验。
心形花样流水灯的实现原理主要基于按使灯在每个节点切换时都可以获取正确的额外信号,然后根据信号来控制灯的状态,从而实现每颗灯在固定节点可以达到设定的图案效果。
实现心形花样流水灯首先需要准备好必要的硬件,如灯、电源、封装等。
其中,灯是实现该图案花样的关键元素,合适的灯应该选择一直亮的灯,最好是采用柱面形状的灯放置;电源属于复杂的功能元件,而电源的输出功率是有限的,因此要选择规范型号的电源;灯装接容器也是必不可少的,以尽可能减少容器内部电阻增加此设计系统电源负载。
安装完必要的硬件之后,就可以编写控制程序实现心形花样的设计。
首先,程序需要实现的功能应该包括定时停档、定时启动、控制灯泡亮度等,这是该系统实现的最基本的功能,其次,控制程序设计的关键是要编写一段循环程序,使在每一节点可以实现按照心形花样拍摄计划设定的图案,最后,实现定时调节,达到改变速度以及心形持续不断等效果。
通过以上步骤,就可以实现心形花样流水灯的设计制作,从而实现不同场合的美观效果,更好的吸引更多的注意力,从而取得全新的效果。
花样流水灯课程设计论文一、教学目标本课程旨在通过花样流水灯的制作,让学生掌握基础的电子元件知识和简单的电路搭建技巧,培养学生的动手能力和创新能力,增强学生对科技的兴趣和好奇心。
在知识目标上,学生需要了解发光二极管的工作原理、颜色与波长的关系,以及串联和并联电路的基本概念。
在技能目标上,学生能够熟练使用电子元件进行电路搭建,并能够通过编程控制流水灯的效果。
在情感态度价值观目标上,学生能够体验到科技制作的乐趣,增强对科学的热爱和探索精神。
二、教学内容本课程的教学内容主要包括三个部分:电子元件知识、电路搭建技巧和编程控制。
在电子元件知识部分,学生将学习发光二极管的工作原理、颜色与波长的关系。
在电路搭建技巧部分,学生将学习如何使用发光二极管、电阻等元件进行串联和并联电路的搭建。
在编程控制部分,学生将学习如何使用编程语言控制流水灯的效果。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
在讲授法方面,教师将系统的讲解电子元件知识、电路搭建技巧和编程控制相关的内容。
在讨论法方面,教师将引导学生进行思考和讨论,提高学生的理解和应用能力。
在案例分析法方面,教师将分析一些典型的流水灯制作案例,帮助学生掌握制作技巧。
在实验法方面,学生将通过动手制作花样流水灯,提高实践能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源。
教材方面,我们将使用《电子制作》等相关教材,为学生提供系统的基础知识。
参考书方面,我们将提供一些关于电子制作和编程的书籍,供学生自主学习。
多媒体资料方面,我们将制作一些教学视频和PPT,帮助学生更好的理解和掌握知识。
实验设备方面,我们将准备一些发光二极管、电阻等元件和编程设备,供学生进行实验和制作。
五、教学评估本课程的评估方式将包括平时表现、作业和考试三个部分,以保证评估的客观性和全面性。
平时表现部分,将根据学生在课堂上的参与度、提问和回答问题的表现等进行评估。
单⽚机课程设计花样流⽔灯2前⾔随着⼈们⽣活环境的不断改善和美化,在许多场合可以看到彩⾊霓虹灯不断变化闪烁。
LED灯由于其丰富的灯光⾊彩,低廉的造价以及控制简单等特点⽽得到了⼴泛的应⽤,⽤彩灯来装饰街道和城市建筑物已经成为⼀种时尚。
但⽬前市场上各式样的LED灯控制器⼤多数⽤全硬件电路实现,电路结构复杂、功能单⼀,这样⼀旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
这种彩灯控制器结构往往有芯⽚过多、电路复杂、功率损耗⼤等缺点。
此外从功能效果上看,亮灯模式少⽽且样式单调,缺乏⽤户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进⾏改进。
流⽔灯是⼀串按⼀定的规律像流⽔⼀样连续闪亮。
流⽔灯控制是可编程控制器的⼀个应⽤,其控制思想在⼯业控制技术领域也同样适⽤。
流⽔灯控制可⽤多种⽅法实现,但对现代可编程控制器⽽⾔,利⽤移位寄存器实现最为便利。
通常⽤左移寄存器实现灯的单⽅向移动;⽤双向移位寄存器实现灯的双向移动。
本案例利⽤价格低廉的AT89C51系列单⽚机控制基⾊LED灯泡从⽽实现丰富的变化。
1、课程设计的⽬的和要求1.1 设计⽬的近年来随着科技的发展,单⽚机的应⽤正在不断⾛向深⼊,同时带动传统控制检测⽇新⽉异更新,在实时检测和⾃动控制的单⽚机应⽤系统中,单⽚机往往是作为⼀个核⼼部件来使⽤,单⽚机⽅⾯知识是不够的,还应根据具体硬件结构,以及针对具体应⽤对象点的软件结合,加以完善。
流⽔灯,可以更简单、⽅便的使⽤。
通过本课程设计使学⽣进⼀步巩固单⽚机原理及应⽤的基本概念、基本理论,分析问题的基本⽅法,增强系统地运⽤已学的理论知识解决实际问题的能⼒和查阅资料的能⼒。
培养⼀定的⾃学能⼒和独⽴分析问题、解决问题的能⼒,能通过独⽴思考、查阅⼯具书、参考⽂献,寻找解决⽅案。
1.2 设计要求设计流⽔灯的基本要求:设计⼀个流⽔灯,应⽤AT89C51试验系统,电路开启后红、绿两种颜⾊的灯在时钟信号作⽤下按⼀定规律转换状态。
摘要摘要计算机技术的飞速发展和提高,把我们带入了崭新的时代,现在,计算机的应用已经深入到千家万户。
单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。
单片机在现在社会有着广泛的应用,小到人们的日常电子用品,大到航天飞机、宇宙飞船,上面都有单片机的广泛应用。
单片机具有体积小、功能强大、低功耗、应用广泛等特点。
以AT公司的芯片AT89C51 单片机来实现流水灯的设计。
本系统由单片机控制,I/O口接LED的负极,而LED的正极则直接与5V电源相连。
通过I/O口输出的低电平点亮LED灯。
因此可以通过控制单片机的I/O口的电平高低以达到控制LED,从而实现不同花样的流水灯的目的。
关键词:LED,单片机,高低电平变化ABSTRACTThe rapid development of computer technology and improving, bring us to the new era, now, the application of computer has been deep into the thousands. Single chip microcomputer is made on an integrated circuit chip computer, hereinafter referred to as single chip microcomputer. SCM has been widely used in the present society, small to People's Daily electronic products, big to aerospace aircraft, spacecraft, above has the wide application of single-chip microcomputer. SCM has small volume, powerful function, low power consumption, wide application, etc. AT the company's chip AT89C51 single-chip microcomputer to realize the water lamp design. This system controlled by single chip microcomputer, I/O ports connect the LED the cathode, and LED the anode is directly connected to 5V power supply. Through the I/O port output low level light leds. So you can single chip microcomputer control through the I/O ports to control LED, the level of high and low so as to realize the purpose of the different pattern of flowing water light.Key words:LED , MCU ,High and Low output leve目录第1章引言 (1)1.1 研究背景及意义 (1)1.2 国内外研究现状以及本系统的重点问题 (1)1.3 本文章节安排 (2)第2章系统设计方案论证 (3)2.1 控制器模块方案论证 (3)2.2 键盘模块方案 (4)2.3 电源模块方案 (4)第3章系统硬件设计方案 (5)3.1 系统设计框图 (5)3.2 硬件电路设计 (5)3.2.1 电源电路 (5)3.2.2 单片机89C52最小系统 (6)3.2.3 按键电路 (13)3.3.4 LED灯电路 (13)第4章程序设计及软件仿真 (15)4.1 软件设计框图 (15)4.2 软件开发平台选择 (15)4.3 软件系统功能模块 (16)4.3.1 初始化模块 (16)4.3.2 延时函数 (17)4.3.3 定时器控制模块 (17)4.3.4 键盘扫描模式 (17)4.3.5 LED灯输出控制模块 (18)4.4 程序调试仿真 (19)4.4.1 仿真平台介绍 (19)4.4.2 仿真测试 (19)第5章硬件调试 (21)5.1 硬件设计 (21)5.2 硬件调试 (21)5.2.1 下载功能调试 (21)5.2.2 LED电路测试 (21)5.2.3 模式选择功能调试 (22)5.2.4 速度加减功能调试 (22)5.2.5 复位电路调试 (22)5.2.6 稳定性测试 (22)总结 (23)致谢 (25)参考文献 (26)附录 (27)附录一:原理图 (27)附录二:硬件实物 (28)附录三:程序代码 (29)第1章引言第1章引言1.1 研究背景及意义现如今,随着集成化芯片的飞速发展,分立元件或数字逻辑电路正逐步被集成电路所取代,而单片机作为一种集成电路,其价格低廉,且可靠性强、控制简单但控制方法多样。
一、原理图设计的目的:
利用AT89C51,通过控制按键来实现六种流水灯花样的转换,实现花样流水灯的设计,同时通过外部中断0,来控制流水灯的速度。
二、各器件的功能作用:
1、AT89C51
AT89C51有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++); }。