led流水灯电路图
CD4017流水灯电路设计

CD4017流水灯电路设计摘要:随着LED技术的不断发展以及LED在低功耗、长寿命、环保等方面的优势,LED应用领域逐渐增多。
同时,许多国家在看到LED巨大的市场潜力后,纷纷出台各项鼓励措施大力推动LED在各领域中的应用。
目前,LED的应用已经从最初的指示灯应用转向更具发展潜力的显示屏,景观照明、背光源、汽车车灯、交通灯、照明等领域,LED应用正呈现出多样化发展趋势。
本次毕业设计就是用小功率LED作为发光体替代实验室中价格昂贵的钠光灯或白炽灯。
并利用555定时器、可变电阻普通电阻、电解电容以及普通电容构成可调驱动电路,驱动CD4017计数器构成的译码电路,使LED依次循环发光,从而组成循环流水灯。
关键词: CD4017 555定时器 LED目录设计任务和要求 (3)1.引言 (4)2.总体设计方案选择与说明 (5)2.1 方案选择 (5)2.2 电路工作原理: (5)3.单元硬件设计说明 (5)3.1 555定时器 (6)3.2 自激多谐振荡器 (10)3.3 十进制计数/分频器CD4017 (11)3.3.1 CD4017内容说明: (11)3.3.2 CD4017十进制计数器内部电路图: (12)3.3.3 CD4017时序波形图: (13)3.3.4 CD4017引脚图如下: (14)3.3.5 CD4017引脚功能: (14)3.4 发光二极管(LED) (15)3.4.1 LED 特点 (13)3.4.2 LED光源的特点 (16)3.5 元件明细表 (17)4.软件说明 (18)4.1 Protel99简介 (18)4.2 Proteus简介 (19)5.安装调试方法 (19)5.1 安装方法 (19)5.2 调试方法 (20)6.总结 (20)7.致谢 (21)8.参考文献 (22)附录一 (22)附录二 (24)附录三 (25)附录四 (26)设计任务和要求设计任务:以CD4017计数器为基础设计一灯组流动速度和亮度均可调的循环流水灯。
三组9只LED流水灯电路图

焊点是否有漏焊、虚焊、拉尖、桥接、空隙、焊锡过多等现象?记录有问题的焊点数量
本组记录
通电试验记录电路功能
电路功能组间对比检查
对比组电路功能有什么不同?
原因是什么?
老师评价
实训组成员签名:检查组组名:
三组9只LED灯电路图
元件清单
元件标号
名称
参数
数量
R1 R3 R5
电阻
10K
3
R2 R4 R6
电阻
470
3
C1 C2 C3
电解电容
47μF
3
Q1 Q2 Q3
三极管
9013
3
LED1---LED9
发光二极管
红色
9
X1
电源接
组间互查
电路焊接是否完成
元件布局是否美观
根据电路图,核查已焊接元件是否有错焊?
3组12只LED流水灯电路设计与制作

3组12只LED流水灯电路设计与制作(姓名:黄丽琳学号:20101041101)(姓名:廖雨学号:20101041120)2013年06月17日3组12只LED流水灯电路设计与制作(姓名:黄丽琳学号:20101041101;姓名:廖雨学号:20101041120)摘要:3组12只LED流水灯是特别针对电子装配与调试技能设计出来的,值得学习和电路分析。
本文分析了该流水灯电路的特点及其电路工作原理的说明.关键字:3组12只LED流水灯;电路设计;循环。
1 引言随着科学技术的发展,电力电子设备与人们的工作、生活的关系日益密切。
各种小套件层出不穷,功能多样。
本文所设计的电子制作可以说是电子初学者学习电子的最佳入门制作!其制作方式容易,趣味横生,更能提高初学者的动手能力!让初学者在制作学习中感受电子技术带来的乐趣!2 系统的功能描述这款3组12只LED流水灯具有制作容易、有趣易学的特点,电路焊接成功后,装入电池,即可正常工作,3组12只发光二极管便会被轮流点亮,不断的循环发光,达到流动的效果。
3 设计原理3.1 电路工作原理说明:本电路是由3只三极管组成的循环驱动电路。
每当电源接通时,3只三极管会争先导通,但由于元器件存在差异,只会有1只三极管最先导通.这里假设V1最先导通,则V1集电极电压下降,使得电容C2的左端下降,接近0V.由于电容两端的电压不能突变,因此此时V2的基极也被拉到近似0V,V2截止,V2的集电极为高电压,故接在它上面的发光二极管LED5—LED8被点亮。
此时V2的高电压通过电容C3使V3基极电压升高,V3也将迅速导通,因此在这段时间里,V1、V3的集电极均为低电压,因此只有LED5-LED8被点亮,LED1-LED4、LED9—LED12熄灭。
但随着电源通过电阻R3对C2的充电,V2的基极电压逐渐升高,当超过0。
7V时,V2由截止状态变为导通状态,集电极电压下降,LED5-LED8熄灭。
使用74LS164制作流水灯

使用74LS164制作流水灯单片机初学者对于流水灯实验一定特别的熟悉,这个实验逻辑清晰,效果明显,在各类单片机以及微机控制相关材料中都会进行讲解。
当我们学习了一段时间单片机之后,或者在进行单片机系统设计时,会发现51单片机的引脚有时并不是很够用,有时候需要尽量节省单片机I/O引脚。
如何节省I/O引脚是我们在设计单片机系统时,经常需要考虑的一个问题。
下面以8个LED组成的流水灯效果的实现为例,讲解如何节省单片机的I/O引脚。
通常我们会采用如图1所示的电路图,通过单片机直接驱动8个LED,但是这种控制方式消耗了8个单片机引脚。
图1 常规流水灯电路我们也可以使用三八译码器来完成流水灯的效果。
其控制电路图如图2所示(这种控制方式在我之前上传的文档中有详细介绍,感兴趣读者可以查看)。
这种控制方式虽然可以在一定程度上可以节省单片机I/O接口的使用,如下图所示,最少只需要使用3个I/O口。
但是这种方式也存在一定的缺点,这种控制方式只能同时点亮1个LED 灯,如果想实现两个以及以上的LED灯点亮的效果,那么这种电路将无法直接实现效果。
图2 三八译码器拓展I/O口下面我们看一下能够使用其他的芯片,来进一步降低单片机I/O 口的消耗。
使用串行转并行芯片74LS164来制作流水灯效果,其控制原理图如图3所示。
从原理图中可以看出,使用了74LS164芯片控制流水灯之后,只占用了单片机的两个I/O口。
一个用于输出时钟脉冲,另外一个用于输出串行数据。
图3 74LS164控制流水灯原理图与前面采用译码器控制的流水灯相比,使用74LS164控制的流水灯效果具有如下两个显著优点:1.占用单片机I/O口少,最少仅为2个。
2.控制功能强大,74LS164驱动的流水灯点亮的个数没有限制,可以任意数量点亮。
编程思路:单片机以最快的速度通过串口控制8个LED灯的点亮状态,由于此过程极短,人眼无法分辨,通过延时函数稳定输出效果,并延时一定时间,再次以最快的速度通过串口控制8个LED灯的亮灭状态,并执行延时函数实现等待效果,如此反复,就可以实现流水灯的效果,且可以实现任意的流水灯的效果。
单片机流水灯原理图pcb

一、设计题目流水灯设计二、设计要求1、通过本次课程设计对80C51单片机对数据的处理和输出显示的认识和理解。
2、能够结合单片机对数据的处理输出显示了解单片机软件的应用。
3、将软、硬件有机地结合,软件系统采用汇编语言编写程序,并在WAVE中调试运行。
三、设计内容功能描述:1.功能要求:程序运行后,将依次循环出现8只LED依次逐个点亮,依次逐个叠加,依次逐个递减,从两边靠拢后分开,从两边叠加递减的流水灯效果。
2.使用说明:总体分三大部分(1)8个发光二极管(2)80C51单片机(3)软件部分按照硬件电路图把8个发光二极管依次连接P1.0~P1.7如图所示,EA (80C51 31脚) 为访问外部程序存储器控制信号,低电平有效当。
当EA端保持高电平时,单片机访问片内程序存储器的程序。
若超出该范围时,自动转去执行外部程序存储器的程序。
当EA端保持低电平时,无乱片内有无程序存储器,均只访问外部程序存储器,所以硬件电路要保持31脚高电平。
18 、19脚是接外部晶振的两脚,根据硬件电路图接上12MHz的外部晶振。
9脚是复位脚即为RESET,该引脚为单片机的上电复位端,当单片机晶体振荡器工作时,该引脚上出现两个机器周期的高电平,就可以实现复位操作,使单片机回复到初始状态。
图9脚就是上电复位电路连接图。
3.基础知识:80C51单片机的寻址方式包括寄存器寻址、直接寻址、寄存器间接寻址、立即寻址以及基址寄存器加变址寄存器间接寻址5种寻址方式。
其中基址寄存器加变址寄存器间接寻址方式一般用于访问程序存储器中的数据表格。
这种寻址方式是以DPTR 或PC作基址寄存器,以累加器作变址寄存器,并以两者内容相加成的16位地址作为操作数的地址,以达到访问数据表格的目的。
即熟悉运用查表指令编写程序。
查表指令可用于复杂代码转换显示,通过查表指令可以实现复杂的显示效果,并可以减少程序代码。
四、程序设计1、程序内容;----------------------------------------------- ;流水灯实例;功能:点亮发光管LED并闪烁;-----------------------------------------------ORG 0000H ;伪指令,指定程序从0000HLJMP MAIN ; 跳转指令,程序跳转到MAIN处ORG 0100H ; 伪指令,指定以下程序从0100H开始存放 MAIN:MOV SP ,#60H ; 给堆栈指针赋初值MOV P1,#0FFH ;给P1赋初值,LED全熄灭;以下为查表程序MOV DPTR,#LED TABLELIGHT :MOV R7, #42LOOP :MOV A , #42SUBB A , R7MOVC A ,@A+DPTRMOV P1 , A ; 输出显示LCALL DELAY ; 调延时子程序DJNZ R7 , LOOPSJMP LIGHT ;跳转,程序继续;延时子程序DELAY :MOV R7 ,#10HDELAY0 :MOV R6 ,#7FHDELAY1 :MOV R5 ,#7FHDJNZ R5 ,$DJNZ R6 ,DELA Y1DJNZ R7 ,DELA Y0RET; 表格数据LED TABLE :DB 0FFH ;全部熄灭DB 0FEH, 0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH;依次逐个点亮DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,000H; 依次逐个叠加DB 080H,0C0H,0E0H,0F0H,0F8,0FCH,0FEH,0FFH; 依次逐个递减DB 07EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,07EH;两边靠拢后分开DB 07EH,03CH,018H,000H,000H,018H,03CH,07EH; 两边叠加后递减DB 000H ;全部点亮END六、成员分工七、心得体会这次这个单片机的课程设计我们完成的不太理想,我们小组有四个人。
流水灯设计

数电课程设计一课程课题:流水灯设计二课程任务:设计一个可以循环移动的流水灯,灯总数为8盏,具体要求如下: -1,5亮,其余灭,右移三次后全灭-4,8亮,其余灭,左移三次后全灭-4,5亮,其余灭,各向两边移三次后全灭-1,8亮,其余灭,各向中间移三次后全灭三课程设计原理:①译码器74139 将Y10N-Y23N 分别命名为led1-led8,利用2-4译码,采用A1,B1,A2,B2分别控制,Y10N-Y23N 为低电平时led 等亮,否则灭。
根据设计任务,结合译码器,可得到循环状态图为:②计数器74169计数器74169 译码器74139序列信号产生74194由于led1-led4和led5和led8的移动方向不尽相同,故采用两个计数器来控制,以led1-led4为例,A1,B1由Q0,Q1决定,则通过UP/DN 可控制Q0,Q1是由00-01-10-11,还是由11-10-01-00,即灯的移动方向。
结合灯的移动方向,取led1-led4的控制端UP/DN为s1,led5-led8的为s2,则s1应为1001序列,s2为1010序列。
③序列产生74194利用74x194产生序列信号s1,s2,来控制下一段的计数器的升降UP/DN,进而控制灯的循环顺序。
功能表:四课程设计方案:①电路图:②仿真波形:学习数电以来,都是一些题目化问题的设计,但这次课程设计却和实际联系紧密,牵扯到很多芯片的原理,链接,是一次很好的实践,原理图的设计是理论与实践的交叉点,原理图设计好之后,我们可以利用仿真软件进行仿真,这样便可以验证我们设计的正确性;积累了经验并且熟练地掌握了软件的基本使用方法和一些快捷键的用途,并体会到数电和实际生活的联系,是不错的开始。
51八只LED灯做流水灯实验

51八只LED灯做流水灯实验第一节:单片机在上电初始后,其各端口输出为高电平。
如果我们现在想让接在P1.0口的LED1亮,那么我们只要把P1.0口的电平变为低电平就可以了。
想让LED1灭,LED0亮,只需将P1.0升高,P1.1变低,LED 1就熄灭LED2随后既点亮!依始类推如下所示8只LED变会一亮一暗的做流水灯了。
本实验在“SP-5 1实验板”学习套件上的相关图纸:P1.0低、P1.0高、P1.1低、P1.1高、P1.2低、P1.2高、P1.3低、P1.3高、P1.4低、P1.4高、P1.5低、P1.5高、P1.6低、P1.6高、P1.7低、P1.7高、返回到开始、程序结束。
我们不能说P1.1你变低,它就变低了。
因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”代码。
我们又怎样来用二进制语议论使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。
今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。
这里的“程序语言”目前主要有汇编和C两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。
前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。
现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。
“汉语”语言汇编语言开始:star:P1.0低clr p1.0P1.0高setb p1.0P1.1低clr p1.1P1.1高setb p1.1P1.2低clr p1.2P1.2高setb p1.2这里用到了四条汇编指令:clr、 setb、 ljmp 、end;clr:是将其后面指定的位清为0;setb:是将其后面指定的位置成1;ljmp:是无条件跳转指令,意思是:跳转到指定的标号处继续运行。
心形花样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的容量有限,所以还有几个方式注释掉了。