基于51单片机心形流水灯C语言源程序

合集下载

51单片机流水灯程序

51单片机流水灯程序

51单片机流水灯程序51单片机是一种广泛使用的微控制器,具有丰富的IO端口和定时器资源。

流水灯程序是51单片机入门的基础示例之一,通过多个LED灯按照一定顺序逐个亮起或熄灭,形成流水灯的效果。

下面详细介绍51单片机流水灯程序的编写。

一、硬件连接要实现流水灯效果,需要将多个LED灯连接到51单片机的IO端口上。

一般使用P1端口作为输出端口控制LED灯的亮灭,P2端口作为输出口控制LED灯亮起的顺序。

具体连接方式如下:•将LED灯的阳极通过限流电阻连接到VCC。

•将每个LED灯的阴极通过限流电阻连接到P1端口。

•将P2端口的每个引脚依次连接到每个LED灯的阴极。

二、程序实现#include <reg52.h> //包含51单片机头文件#define LED P1 //定义LED为P1端口#define ORDER P2 //定义顺序控制为P2端口void delay(unsigned int t); //延时函数声明void main(){unsigned char i;while(1) //循环控制流水灯效果{for(i=0; i<8; i++) //控制8个LED灯{LED = 0x01<<i; //将第i个LED灯置亮delay(10000); //延时一段时间,使LED灯亮起后延时熄灭LED = 0x01>>(i+1); //将第i个LED灯置灭}}}void delay(unsigned int t) //延时函数定义{unsigned int i, j;for(i=0; i<t; i++){for(j=0; j<1275; j++);}}该程序首先定义了LED和ORDER两个变量,分别对应P1和P2端口的输出口。

在主函数中,使用一个while循环控制流水灯效果。

在循环内部,使用一个for循环控制8个LED灯的状态。

在每次循环中,先将第i个LED灯置亮,延时一段时间后将其置灭,然后进入下一个循环。

51单片机爱心流水灯原理及制作

51单片机爱心流水灯原理及制作

C 2—*XTAL1—P?-R5470△型30PSEN ALE FALED 32 1'LED31 2! _E「〔i 3 丄::艾_4!岸匚舷5L 竺总 :LEt® 了 :-已不芒P1 M2P- \T ;EX P\2 pfiLEMRiyELEr^BF 2 Li I■ 05 L£kfllR4D2p-F?RT2LtO@Ri>M —n <TE3.T>■LEr--BIH^ ■iflEJC" 尺2l --------- 1_CTM» ^TEJ.T=jv ---------1L£EQD a 6 LE 仙日問Tl TR31砂JL : r - ■二□ 1LHbtiROi<reAi*^C17 1 •PT1 --------- r 也LES-BF-3JOJl-■=>DiflLE>BIF3R77<L~-LEBHR-ft126UEP-jJ月:訥4KRFHLED*"耶R24R13 TF ―—■■——■ i'fOfc .E[I •曰耶口1 - P14"E- v L2b1 二盲 Q ?3耕LFBTW.LEMRAnpR151! ■R2DLEI :1,1L=PUI ID31 丐Ml 舲 ■=rE^7=- LECJpT-.D13 RIB i " °^DR "5FU2<ED !4R13LEE BF ILE : BR :-■* ----4?0RLE :』赋iEW1、51 单片机x1、40Pin 座x12、L ED x32 (建议用5mm七彩的)3、电阻470Q x334、晶振12MHz x15、10uf电解电容x1、谐振瓷片电容30pf x26•其他的可以看自己的爱好去加7、其实也可以不用那么多的电阻,用几个排阻就OKT 效果展示:作品程序:#in clude<>#defi ne uchar un sig ned charuchar flag=200;/////////////////////////////////////////////////////////////////////// uchar codeTab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};〃下uchar codeTab2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};〃上uchar code Tab3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};〃下uchar code Tab4[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00};〃上uchar code Tab11[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xff};〃下uchar code Tab22[]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0xff};//////////////////////////////////////////////////////////////////// 暗中左移向暗中右移向亮中左移向亮中右移向暗中左移向uchar code Tab33[]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF}; uchar code Tab44[]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};uchar code Tab55[]={0x08,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff};uchar code Tab5[]={0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xff}; uchar code Tab6[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xff}; uchar code Tab7[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar code Tab8[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};////////////////////////////////////////////////////////////////void shansuo();void xl(); /////////////////////////////////////////////////////////////// void delay(void){unsigned char m,n; for(m=0;m<flag;m++) for(n=0;n<250;n++)J} /////////////////////////////////// void hy1(void) // 点亮状态逆时针旋转90 度(一个一个{灭)unsigned char i; for(i=0;i<8;i++){ P0=Tab11[i];P1=Tab22[i];P2=Tab11[i];P3=Tab22[i]; delay();} for(i=0;i<8;i++){ P0=Tab44[i];P1=Tab55[i];P2=Tab44[i];P3=Tab55[i];delay();}}///////////////////////////////////////////void hy2(void) // 暗中逆时针转360 。

51单片机流水灯程序

51单片机流水灯程序

1.第一个发光管以间隔200ms闪烁。

2.8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms。

3.8个发光管来回流动,第个管亮100ms。

4。

用8个发光管演示出8位二进制数累加过程。

5。

8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。

重复此过程。

6.间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。

7。

间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。

1#include<reg52。

h〉#define uint unsigned intsbit led1=P1^0;void delay();void main(){while(1){led1=0;delay();led1=1;delay();}}void delay(){uint x,y;for(x=200;x>0;x—-)for(y=100;y〉0;y-—);}2#include<reg52。

h>#include〈intrins。

h〉#define uint unsigned intuchar a;void delay();void main(){a=0xfe;P1=a;while(1){a=_crol_(a,1);delay();P1=a;delay();}}void delay(){uint b;for(b=55000;b>0;b—-);}3#include<reg52。

h〉#include <intrins。

h>#define uint unsigned int #define uchar unsigned char void delay(){uint x,y;for(x=100;x〉0;x--)for(y=110;y>0;y—-);}void main(){uchar a,i;while(1){a=0xfe;for(i=0;i〈8;i++){P1=a;delay(100);a=_crol_(a,1);for(i=0;i〈8;i++){P1=a;delay(100);a=_cror_(a,1);}}}4#include<reg52.h>#include 〈intrins。

基于51单片机的流水灯

基于51单片机的流水灯

基于51单片机的流水灯利用51单片机P0口实现8个LED(发光二极管)的流水灯控制。

可以使用Proteus软件进行仿真调试。

1 硬件设计利用单片机的PO口控制8个LED,其电路如下图所示。

在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。

单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“LSD.DSN”。

在器件选择按钮中单击“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示都可以不画,它们都是默认的。

在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER和GROUND放置电源和地。

放置好元件后,布好线。

左键双击各元件,设置相应元件参数,完成电路图的设计。

2 软件设计流水灯又称为跑马灯,在函数中可以将P0口的八种不同状态做成一维数组,循环执行即可,如下所示。

当然也可以采用其它函授来实现,如左移一位<<1(或右移一位>>1),循环左移函授_crol_(或循环右移函授_cror_)等。

/****************************************************************** 流水灯*******************************************************************/ #include "reg51.h"const tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void delayms(unsigned int x) //延时{unsigned int j;unsigned char k;for(j=0;j<x;j++){for(k=0;k<120;k++);}}void main(){unsigned char k;while(1){for(k=1;k<8;k++){P0=tab[k];delayms(500);}}}打开Keil程序(本人使用的是Keil8.05中文版),执行菜单命令“工程”→“新建工程”创建“流水灯”项目,并选择单片机型号为AT89C51。

多种方法写出的51单片机流水灯C语言程序

多种方法写出的51单片机流水灯C语言程序

目录流水灯最原始 (1)流水灯位左移 (3)流水灯移位函数 (4)流水灯数组 (5)流水灯精确定时器 (6)流水灯最原始#include "reg51.h"sbit p0=P1^0;sbit p1=P1^1;sbit p2=P1^2;sbit p3=P1^3;sbit p4=P1^4;sbit p5=P1^5;sbit p6=P1^6;sbit p7=P1^7;voidmdelay(unsigned int t){unsigned char n;for(;t>0;t--)for(n=0;n<125;n++){;}}void main(){while(1){P1=0;p0=1;mdelay(1000);p0=0;p1=1;mdelay(1000);p1=0;p2=1;mdelay(1000);p2=0;p3=1;mdelay(1000);p3=0;p4=1;mdelay(1000);p4=0;p5=1;mdelay(1000);p5=0;p6=1;mdelay(1000);p6=0;p7=1;mdelay(1000);p7=0;}}流水灯位左移#include "reg51.h"voidmdelay(unsigned int t){unsigned char n;for(;t>0;t--)for(n=0;n<125;n++){;}}void main(){unsigned char i;unsignedint led;while(1){led=0xfe;for(i=0;i<8;i++){P1=led;mdelay(1000);led=led<<1;led=led|0x01;}}}流水灯移位函数#include "reg51.h"#include "intrins.h"voidmdelay(unsigned int t){unsigned char n;for(;t>0;t--)for(n=0;n<125;n++){;}}void main(){unsigned char led;led=0x01;while(1){P1=led;led=_crol_(led,1);mdelay(1000);}}流水灯数组#include "reg51.h"unsigned char table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; voidmdelay(unsigned int t){unsigned char n;for(;t>0;t--)for(n=0;n<125;n++){;}}void main(){unsigned char i;while(1){for(i=0;i<8;i++){P1=table[i];mdelay(1000);}}}流水灯精确定时器#include "reg51.h"#include "intrins.h"unsignedint count=0,led;void main(){P1=0x00;led=0x01;EA=1;ET0=1;TMOD=0x01;TH0=0x3c;TL0=0xb0;TR0=1;for(;;){;}}voidbiao() interrupt 1{count++;if(count==20){count=0;P1=led;led=_crol_(led,1);}TH0=0x3c;TL0=0xb0;}。

51单片机爱心流水灯原理及制作

51单片机爱心流水灯原理及制作

电路原理图:原件清单:1、51单片机x1、40Pin 座x12、LED x32(建议用5mm 七彩的)3、电阻470Ωx334、晶振12MHz x15、10uf 电解电容x1、谐振瓷片电容30pf x26·其他的可以看自己的爱好去加7、其实也可以不用那么多的电阻,用几个排阻就OK了。

~效果展示:作品程序:#include<>#define uchar unsigned char;uchar flag=200;///////////////////////////////////////////////////////////////////////uchar code Tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};//暗中左移向下uchar code Tab2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};//暗中右移向上uchar code Tab3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};//亮中左移向下uchar code Tab4[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00};//亮中右移向上uchar code Tab11[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xff};//暗中左移向下uchar code Tab22[]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0xff};////////////////////////////////////////////////////////////////////uchar code Tab33[]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};;uchar code Tab44[]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};uchar code Tab55[]={0x08,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff};uchar code Tab5[]={0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xff};uchar code Tab6[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xff}; uchar code Tab7[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; uchar code Tab8[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};////////////////////////////////////////////////////////////////void shansuo();void xl();///////////////////////////////////////////////////////////////}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;for(i=0;i<8;i++){P0=Tab11[i];P1=Tab22[i];P2=Tab11[i];P3=Tab22[i];delay();}for(i=0;i<8;i++){P0=Tab44[i];P1=Tab55[i];!P2=Tab44[i];P3=Tab55[i];delay();}}///////////////////////////////////////////void hy2(void) //暗中逆时针转360。

51芯片超炫爱心流水程序灯代码

51芯片超炫爱心流水程序灯代码

#include<reg52.h>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 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 P20=P2^0;sbit P21=P2^1;sbit P22=P2^2;sbit P23=P2^3;sbit P24=P2^4;sbit P25=P2^5;sbit P26=P2^6;sbit P27=P2^7;sbit P30=P3^0;sbit P31=P3^1;sbit P32=P3^2;sbit P33=P3^3;sbit P34=P3^4;sbit P35=P3^5;sbit P36=P3^6;sbit P37=P3^7;unsigned int x,y;void rzmzy(); //红色走马左移声明void rzmyy(); //红色走马右移声明void rzmnwyd(); //红色走马内外移动声明void rtbyd(); //红色跳变移动声明void rjl(); //红色渐亮声明void rja(); //红色渐暗声明void rP0ja();//P0渐暗void zkb(unsigned char d);void delayms(int z)//延时声明,修改s的数值,就可以改变时间{int i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}void Onall() //开启所有灯{P0=0x00;P1=0x00;P2=0x00;P3=0x00;}void Offall()//关闭所有灯{P0=0xff;P1=0xff;P2=0xff;P3=0xff;}//void fxls()//逆时针逐个等时流水灯//{// P0=0xfe;delayms(50);// P0=0xfd;delayms(50);// P0=0xfb;delayms(50);// P0=0xf7;delayms(50);// P0=0xef;delayms(50);// P0=0xdf;delayms(50);// P0=0xbf;delayms(50);// P0=0x7f;delayms(50);// P0=0xff;//// P2=0x7f;delayms(50);// P2=0xbf;delayms(50);// P2=0xdf;delayms(50);// P2=0xef;delayms(50);// P2=0xf7;delayms(50);// P2=0xfb;delayms(50);// P2=0xfd;delayms(50);// P2=0xfe;delayms(50);// P2=0xff;//// P3=0x7f;delayms(50);// P3=0xbf;delayms(50);// P3=0xdf;delayms(50);// P3=0xef;delayms(50);// P3=0xf7;delayms(50);// P3=0xfb;delayms(50);// P3=0xfe;delayms(50);// P3=0xff;//// P1=0x7f;delayms(50);// P1=0xbf;delayms(50);// P1=0xdf;delayms(50);// P1=0xef;delayms(50);// P1=0xf7;delayms(50);// P1=0xfb;delayms(50);// P1=0xfd;delayms(50);// P1=0xfe;delayms(50);// P1=0xff;//}//void ls()//顺时针逐个等时流水灯//{// Offall();// P1=0xfe;delayms(50);// P1=0xfd;delayms(50);// P1=0xfb;delayms(50);// P1=0xf7;delayms(50);// P1=0xef;delayms(50);// P1=0xdf;delayms(50);// P1=0xbf;delayms(50);// P1=0x7f;delayms(50);// P1=0xff;//// P3=0xfe;delayms(50);// P3=0xfd;delayms(50);// P3=0xfb;delayms(50);// P3=0xf7;delayms(50);// P3=0xef;delayms(50);// P3=0xdf;delayms(50);// P3=0xbf;delayms(50);// P3=0x7f;delayms(50);// P3=0xff;;//// P2=0xfe;delayms(50);// P2=0xfd;delayms(50);// P2=0xfb;delayms(50);// P2=0xf7;delayms(50);// P2=0xef;delayms(50);// P2=0xdf;delayms(50);// P2=0xbf;delayms(50);// P2=0xff;;//// P0=0x7f;delayms(50);// P0=0xbf;delayms(50);// P0=0xdf;delayms(50);// P0=0xef;delayms(50);// P0=0xf7;delayms(50);// P0=0xfb;delayms(50);// P0=0xfd;delayms(50);// P0=0xfe;delayms(50);// P0=0xff;//}void bsb()//双边同时流水由上至下{Offall();delayms(50);P0=0xfe;delayms(50);P0=0xfd;P1=0xfe;delayms(50);P0=0xfb;P1=0xfd;delayms(50);P0=0xf7;P1=0xfb;delayms(50);P0=0xef;P1=0xf7;delayms(50);P0=0xdf;P1=0xef;delayms(50);P0=0xbf;P1=0xdf;delayms(50);P0=0x7f;P1=0xbf;delayms(50);P0=0xff;P2=0x7f;P1=0x7f;delayms(50);P1=0xff;P2=0xbf;P3=0xfe;delayms(50);P2=0xdf;P3=0xfd;delayms(50);P2=0xef;P3=0xfb;delayms(50);P2=0xf7;P3=0xf7;delayms(50);P2=0xfb;P3=0xef;delayms(50);P2=0xfd;P3=0xdf;delayms(50);P2=0xfe;P3=0xbf;delayms(50);P2=0xff;P3=0x7f;delayms(50);P3=0xff;}//void fbsb() //半双边流水由下至上//{// Offall();// P3=0x7f;delayms(80);// P2=0xfe;P3=0xbf;delayms(80);// P2=0xfd;P3=0xdf;delayms(80);// P2=0xfb;P3=0xef;delayms(80);// P2=0xf7;P3=0xf7;delayms(80);// P2=0xef;P3=0xfb;delayms(80);// P2=0xdf;P3=0xfd;delayms(80);// P2=0xbf;P3=0xfe;delayms(80);Offall(); // P2=0x7f;P1=0x7f;delayms(80);Offall(); //// P0=0x7f;P1=0xbf;delayms(80);// P0=0xbf;P1=0xdf;delayms(80);// P0=0xdf;P1=0xef;delayms(80);// P0=0xef;P1=0xf7;delayms(80);// P0=0xf7;P1=0xfb;delayms(80);// P0=0xfb;P1=0xfd;delayms(80);// P0=0xfd;P1=0xfe;delayms(80);// P0=0xfe;P1=0xff;delayms(80);//}void ss(y)//闪烁(y为闪烁间隔时间){Onall();delayms(y);Offall();delayms(y);}//void fxsz() //反向生长//{// Offall();// P0=0xfe;delayms(50);// P0=0xfc;delayms(50);// P0=0xf8;delayms(50);// P0=0xf0;delayms(50);// P0=0xe0;delayms(50);// P0=0xc0;delayms(50);// P0=0x80;delayms(50);// P0=0x00;delayms(50);//// P2=0x7f;delayms(50);// P2=0x3f;delayms(50);// P2=0x1f;delayms(50);// P2=0x0f;delayms(50);// P2=0x07;delayms(50);// P2=0x03;delayms(50);// P2=0x01;delayms(50);// P2=0x00;delayms(50);//// P3=0x7f;delayms(50);// P3=0x3f;delayms(50);// P3=0x1f;delayms(50);// P3=0x0f;delayms(50);// P3=0x07;delayms(50); // P3=0x03;delayms(50); // P3=0x01;delayms(50); // P3=0x00;delayms(50); //// P1=0x7f;delayms(50);// P1=0x3f;delayms(50);// P1=0x1f;delayms(50);// P1=0x0f;delayms(50);// P1=0x07;delayms(50); // P1=0x03;delayms(50); // P1=0x01;delayms(50); // P1=0x00;delayms(50); //// Offall();delayms(100);// Onall();delayms(100);// Offall();delayms(100);// Onall();delayms(500);// Offall();delayms(50);//}void zxsz() //正向生长{Offall();P0=0xfe;delayms(50);P1=0xfe;delayms(50);P1=0xfc;delayms(50);P1=0xf8;delayms(50);P1=0xf0;delayms(50);P1=0xe0;delayms(50);P1=0xc0;delayms(50);P1=0x80;delayms(50);P1=0x00;delayms(50);P3=0xfe;delayms(50);P3=0xfc;delayms(50);P3=0xf8;delayms(50);P3=0xf0;delayms(50);P3=0xe0;delayms(50);P3=0xc0;delayms(50);P3=0x80;delayms(50);P3=0x00;delayms(50);P2=0xfe;delayms(50);P2=0xfc;delayms(50);P2=0xf8;delayms(50);P2=0xf0;delayms(50);P2=0xe0;delayms(50);P2=0xc0;delayms(50);P2=0x80;delayms(50);P2=0x00;delayms(50);P0=0x7e;delayms(50);P0=0x3e;delayms(50);P0=0x1e;delayms(50);P0=0x0e;delayms(50);P0=0x06;delayms(50);P0=0x02;delayms(50);P0=0x00;delayms(50);Offall();delayms(100);Onall();delayms(100);Offall();delayms(100);Onall();delayms(500);Offall();delayms(100);}//void fxsw() //反向死亡//{// Onall();// P0=0x01;delayms(50); // P0=0x03;delayms(50); // P0=0x07;delayms(50); // P0=0x0f;delayms(50);// P0=0x1f;delayms(50);// P0=0x3f;delayms(50);// P0=0x7f;delayms(50);// P0=0xff;delayms(50);//// P2=0x80;delayms(50); // P2=0xc0;delayms(50); // P2=0xe0;delayms(50); // P2=0xf0;delayms(50);// P2=0xf8;delayms(50);// P2=0xfc;delayms(50);// P2=0xff;delayms(50);//// P3=0x80;delayms(50);// P3=0xc0;delayms(50);// P3=0xe0;delayms(50);// P3=0xf0;delayms(50);// P3=0xf8;delayms(50);// P3=0xfc;delayms(50);// P3=0xfe;delayms(50);// P3=0xff;delayms(50);//// P1=0x80;delayms(50);// P1=0xc0;delayms(50);// P1=0xe0;delayms(50);// P1=0xf0;delayms(50);// P1=0xf8;delayms(50);// P1=0xfc;delayms(50);// P1=0xfe;delayms(50);// P1=0xff;delayms(50);//}void c(x) //间隔闪烁x为闪烁间隔时间{Offall();P0=0xaa;P2=0x55;P3=0x55;P1=0x55;delayms(x);P0=0x55;P2=0xaa;P3=0xaa;P1=0xaa;delayms(x);}/*----------------------------------------------------------*/void cx() //出现一点点{Offall();delayms(500);P0=0xff;P2=0xff;P1=0xbf;P3=0xff;delayms(500);P0=0xdf;P2=0xbf;P1=0xbf;P3=0xff;delayms(500);P0=0xdb;P2=0xbd;P1=0xbf;P3=0xfb;delayms(500);P0=0x59;P2=0xa5;P1=0x5d;P3=0x9a;delayms(500);P0=0x11;P2=0x20;P1=0x24;P3=0x10;delayms(500);P0=0x00;P2=0x00;P1=0x00;P3=0x00;delayms(500); }//void df() //单飞//{// P0=0xfe;delayms(50);// P0=0xfc;delayms(50);// P0=0xf0;delayms(50);// P0=0xe0;delayms(50);// P0=0xc0;delayms(50);// P0=0x80;delayms(50);// P0=0x00;delayms(50);//先引出单飞//// P0=0x01;delayms(50);// P0=0x03;delayms(50);// P0=0x07;delayms(50);// P0=0x0f;delayms(50);// P0=0x1f;delayms(50);// P0=0x3f;delayms(50);// P0=0x7f;delayms(50);// P0=0xff;delayms(50);//// P2=0x7f;delayms(50);// P2=0x3f;delayms(50);// P2=0x1f;delayms(50);// P2=0x0f;delayms(50);// P2=0xf7;delayms(50);// P2=0xf3;delayms(50);// P2=0xf1;delayms(50);// P2=0xf0;delayms(50);//// P3=0x7f;delayms(50);// P2=0x80;delayms(50);// P2=0xc0;delayms(50);// P2=0xe0;delayms(50);// P2=0xf0;delayms(50);// P2=0xf8;delayms(50);// P2=0xfc;delayms(50);// P2=0xfe;delayms(50);// P2=0xff;delayms(50);//// P3=0x7f;delayms(50);// P3=0x3f;delayms(50);// P3=0x1f;delayms(50);// P3=0x0f;delayms(50);// P3=0x07;delayms(50);// P3=0x03;delayms(50);// P3=0x01;delayms(50);// P3=0x00;delayms(50);//// P3=0xc0;delayms(50);// P3=0xe0;delayms(50);// P3=0xf0;delayms(50);// P3=0xf8;delayms(50);// P3=0xfc;delayms(50);// P3=0xfe;delayms(50);// P3=0xff;delayms(50);//// P1=0x7f;delayms(50);// P1=0x3f;delayms(50);// P1=0x1f;delayms(50);// P1=0x0f;delayms(50);// P1=0x07;delayms(50);// P1=0x03;delayms(50);// P1=0x01;delayms(50);// P1=0x00;delayms(50);//// P0=0x01;delayms(50);// P1=0x80;delayms(50);// P1=0xc0;delayms(50);// P1=0xe0;delayms(50);// P1=0xf0;delayms(50);// P1=0xf8;delayms(50);// P1=0xfc;delayms(50);// P1=0xfe;delayms(50);// P1=0xff;delayms(50);////}/*----------------------------------------------------------*/ void cdP00() //沉淀语句{P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0xff;P0=0x7f;delayms(30);P0=0xbf;delayms(30);P0=0xef;delayms(30);P0=0xf7;delayms(30);P0=0xfb;delayms(30);P0=0xfd;delayms(30);P0=0xfe;delayms(30);}//P00void cdP01(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x7e;delayms(30);P0=0xbe;delayms(30);P0=0xde;delayms(30);P0=0xee;delayms(30);P0=0xf6;delayms(30);P0=0xfa;delayms(30);P0=0xfc;delayms(30);}//P01void cdP02(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x7c;delayms(30);P0=0xbc;delayms(30);P0=0xdc;delayms(30);P0=0xf4;delayms(30);P0=0xf8;delayms(30);}//P02void cdP03(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x78;delayms(30);P0=0xb8;delayms(30);P0=0xd8;delayms(30);P0=0xe8;delayms(30);P0=0xf0;delayms(30);}//P03void cdP04(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x70;delayms(30);P0=0xb0;delayms(30);P0=0xd0;delayms(30);P0=0xe0;delayms(30);}//P04void cdP05(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x60;delayms(30);P0=0xa0;delayms(30);P0=0xc0;delayms(30);}//P05void cdP06(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x40;delayms(30);P0=0x80;delayms(30);}//P06void cdP07(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);P2=0xff;P0=0x00;delayms(30);}//P07void cdP27(){P3=0x7f;delayms(30);P3=0xff;P2=0xfe;delayms(30);P2=0xfd;delayms(30);P2=0xfb;delayms(30);P2=0xf7;delayms(30);P2=0xef;delayms(30);P2=0xdf;delayms(30);P2=0xbf;delayms(30);P2=0x7f;delayms(30);}//P27void cdP26(){P3=0x7e;delayms(30);//P3=0xff;P2=0x7e;delayms(30);P2=0x7d;delayms(30);P2=0x7b;delayms(30);P2=0x77;delayms(30);P2=0x6f;delayms(30);P2=0x5f;delayms(30);P2=0x3f;delayms(30);}//P26void cdP25(){P3=0x7c;delayms(30);//P3=0xff;P2=0x3e;delayms(30);P2=0x3d;delayms(30);P2=0x3b;delayms(30);P2=0x37;delayms(30);P2=0x2f;delayms(30);P2=0x1f;delayms(30);}//P25void cdP24(){P3=0x78;delayms(30);//P3=0xff;P2=0x1e;delayms(30);P2=0x1d;delayms(30);P2=0x1b;delayms(30);P2=0x17;delayms(30);P2=0x0f;delayms(30);}//P24void cdP23(){P3=0x70;delayms(30);//P3=0xff;P2=0x0e;delayms(30);P2=0x0d;delayms(30);P2=0x0b;delayms(30);P2=0x07;delayms(30);}//P23void cdP22(){P3=0x60;delayms(30);//P3=0xff;P2=0x06;delayms(30);P2=0x05;delayms(30);P2=0x03;delayms(30);}//P22void cdP21(){P3=0x20;delayms(30);//P3=0xff;P2=0x02;delayms(30);P2=0x01;delayms(30);}//P21void cdP20(){P3=0x00;delayms(30);//P3=0xff;P2=0x00;delayms(30);}//P20void cdP10(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30) ;P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0xff;P1=0x7f;delayms(30);P1=0xbf;delayms(30);P1=0xdf;delayms(30);P1=0xef;delayms(30);P1=0xf7;delayms(30);P1=0xfb;delayms(30);P1=0xfd;delayms(30);P1=0xfe;delayms(30);}//P10void cdP11(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x7e;delayms(30);P1=0xbe;delayms(30);P1=0xde;delayms(30);P1=0xee;delayms(30);P1=0xf6;delayms(30);P1=0xfa;delayms(30);P1=0xfc;delayms(30);}//P11void cdP12(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x7c;delayms(30);P1=0xbc;delayms(30);P1=0xdc;delayms(30);P1=0xec;delayms(30);P1=0xf4;delayms(30);P1=0xf8;delayms(30);}//P12void cdP13(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x78;delayms(30);P1=0xb8;delayms(30);P1=0xd8;delayms(30);P1=0xe8;delayms(30);P1=0xf0;delayms(30);}//P13void cdP14(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x70;delayms(30);P1=0xb0;delayms(30);P1=0xd0;delayms(30);P1=0xe0;delayms(30);}//P14void cdP15(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x60;delayms(30);P1=0xa0;delayms(30);P1=0xc0;delayms(30);}//P15void cdP16(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x40;delayms(30);P1=0x80;delayms(30);}//P16void cdP17(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);P3=0xff;P1=0x00;delayms(30);}//P17void cdP30(){P3=0x7f;delayms(30);P3=0xbf;delayms(30);P3=0xdf;delayms(30);P3=0xef;delayms(30);P3=0xf7;delayms(30);P3=0xfb;delayms(30);P3=0xfd;delayms(30);P3=0xfe;delayms(30);}//P30void cdP31(){P3=0x7e;delayms(30);P3=0xbe;delayms(30);P3=0xde;delayms(30);P3=0xee;delayms(30);P3=0xf6;delayms(30);P3=0xfa;delayms(30);P3=0xfc;delayms(30); }//P31void cdP32(){P3=0x7c;delayms(30);P3=0xbc;delayms(30);P3=0xdc;delayms(30);P3=0xec;delayms(30);P3=0xf4;delayms(30);P3=0xfb;delayms(30); }//P32void cdP33(){P3=0x78;delayms(30);P3=0xb8;delayms(30);P3=0xd8;delayms(30);P3=0xe8;delayms(30);P3=0xf0;delayms(30); }//P33void cdP34(){P3=0x70;delayms(30);P3=0xb0;delayms(30);P3=0xd0;delayms(30);P3=0xe0;delayms(30); }//P34void cdP35(){P3=0x60;delayms(30);P3=0xa0;delayms(30);P3=0xc0;delayms(30);}//P35void cdP36(){P3=0x40;delayms(30);P3=0x80;delayms(30);}//P36void cdP37(){P3=0x00;delayms(30);}//P37/*----------------------------------------------------------*/ void cd() //由下至上沉淀{cdP00();cdP10();cdP01();cdP11();cdP02();cdP12();cdP03();cdP13();cdP04();cdP14();cdP05();cdP15();cdP06();cdP16();cdP07();cdP17();cdP27();cdP30();cdP26();cdP31();cdP25();cdP32();cdP24();cdP33();cdP23();cdP34();cdP22();cdP35();cdP21();cdP36();cdP20();cdP37();delayms(500);Offall();delayms(300);Onall();delayms(300);Offall();delayms(300);Onall();delayms(300);}/*----------------------------------------------------------*/ void szsx() //左右同时生长(由上至下){Offall();P0=0xfe;delayms(50);P0=0xfc;delayms(50);P1=0xfe;delayms(50);P0=0xf8;delayms(50);P1=0xfc;delayms(50);P0=0xf0;delayms(50);P1=0xf8;delayms(50);P0=0xe0;delayms(50);P1=0xf0;delayms(50);P0=0xc0;delayms(50);P1=0xe0;delayms(50);P0=0x80;delayms(50);P1=0xc0;delayms(50);P0=0x00;delayms(50);P1=0x80;delayms(50);P2=0x7f;delayms(50);P1=0x00;delayms(50);P2=0x3f;delayms(50);P3=0xfe;delayms(50);P2=0x1f;delayms(50);P3=0xfc;delayms(50);P2=0x0f;delayms(50);P3=0xf8;delayms(50);P2=0x07;delayms(50);P3=0xf0;delayms(50);P2=0x03;delayms(50);P3=0xe0;delayms(50);P2=0x01;delayms(50);P3=0xc0;delayms(50);P2=0x00;delayms(50);P3=0x80;delayms(50);P3=0x00;delayms(50);}/*----------------------------------------------------------*/void szxs() //左右同时生长(由下至上){Offall();P3=0x7f;delayms(50);P2=0xfe;delayms(50);P3=0x3f;delayms(50);P2=0xfc;delayms(50);P3=0x1f;delayms(50);P2=0xf8;delayms(50);P3=0x0f;delayms(50);P2=0xf0;delayms(50);P3=0x07;delayms(50);P2=0xe0;delayms(50);P3=0x03;delayms(50);P2=0xc0;delayms(50);P3=0x01;delayms(50);P2=0x80;delayms(50);P3=0x00;delayms(50);P2=0x00;delayms(50);P1=0x7f;delayms(50);P0=0x7f;delayms(50);P1=0x3f;delayms(50);P0=0x3f;delayms(50);P1=0x1f;delayms(50);P0=0x1f;delayms(50);P1=0x0f;delayms(50);P0=0x0f;delayms(50);P1=0x07;delayms(50);P0=0x07;delayms(50);P1=0x03;delayms(50);P0=0x03;delayms(50);P1=0x01;delayms(50);P0=0x01;delayms(50);P1=0x00;delayms(50);P0=0x00;delayms(50);}/*----------------------------------------------------------*/void l1d() //1个灯转{P0=0xfe,P2=0x7f,P3=0x7f,P1=0x7f;delayms(50);P0=0xfd,P2=0xbf,P3=0xbf,P1=0xbf;delayms(50);P0=0xfb,P2=0xdf,P3=0xdf,P1=0xdf;delayms(50);P0=0xf7,P2=0xef,P3=0xef,P1=0xef;delayms(50);P0=0xef,P2=0xf7,P3=0xf7,P1=0xf7;delayms(50);P0=0xdf,P2=0xfb,P3=0xfb,P1=0xfb;delayms(50);P0=0xbf,P2=0xfd,P3=0xfd,P1=0xfd;delayms(50);P0=0x7f,P2=0xfe,P3=0xfe,P1=0xfe;delayms(50); }/*----------------------------------------------------------*/ void l2d() //2个灯转{P0=0xfc,P2=0x3f,P3=0x3f,P1=0x3f;delayms(50);P0=0xf9,P2=0x9f,P3=0x9f,P1=0x9f;delayms(50);P0=0xf3,P2=0xcf,P3=0xcf,P1=0xcf;delayms(50);P0=0xe7,P2=0xe7,P3=0xe7,P1=0xe7;delayms(50);P0=0xcf,P2=0xf3,P3=0xf3,P1=0xf3;delayms(50);P0=0x9f,P2=0xf9,P3=0xf9,P1=0xf9;delayms(50);P0=0x3f,P2=0xfc,P3=0xfc,P1=0xfc;delayms(50);P0=0x7e,P2=0x7e,P3=0x7e,P1=0x7e;delayms(50); }/*----------------------------------------------------------*/ void l3d() //3个灯转{P0=0xf8,P2=0x1f,P3=0x1f,P1=0x1f;delayms(50);P0=0xf1,P2=0x8f,P3=0x8f,P1=0x8f;delayms(50);P0=0xe3,P2=0xc7,P3=0xc7,P1=0xc7;delayms(50);P0=0xc7,P2=0xe3,P3=0xe3,P1=0xe3;delayms(50);P0=0x8f,P2=0xf1,P3=0xf1,P1=0xf1;delayms(50);P0=0x1f,P2=0xf8,P3=0xf8,P1=0xf8;delayms(50);P0=0x3e,P2=0x7c,P3=0x7c,P1=0x7c;delayms(50);P0=0x7c,P2=0x3e,P3=0x3e,P1=0x3e;delayms(50);}/*----------------------------------------------------------*/ void l4d() //4个灯转{P0=0xf0,P2=0x0f,P3=0x0f,P1=0x0f;delayms(50);P0=0xe1,P2=0x87,P3=0x87,P1=0x87;delayms(50);P0=0xc3,P2=0xc3,P3=0xc3,P1=0xc3;delayms(50);P0=0x87,P2=0xe1,P3=0xe1,P1=0xe1;delayms(50);P0=0xaf,P2=0xf0,P3=0xf0,P1=0xf0;delayms(50);P0=0x1e,P2=0x78,P3=0x78,P1=0x78;delayms(50);P0=0x3c,P2=0x3c,P3=0x3c,P1=0x3c;delayms(50);P0=0x78,P2=0x1e,P3=0x1e,P1=0x1e;delayms(50);}/*----------------------------------------------------------*/void l5d() //5个灯转{P0=0xe0,P2=0x07,P3=0x07,P1=0x07;delayms(50);P0=0xc1,P2=0x83,P3=0x83,P1=0x83;delayms(50);P0=0x83,P2=0xc1,P3=0xc1,P1=0xc1;delayms(50);P0=0x87,P2=0xe0,P3=0xe0,P1=0xe0;delayms(50);P0=0x0e,P2=0x70,P3=0x70,P1=0x70;delayms(50);P0=0x1c,P2=0x38,P3=0x38,P1=0x38;delayms(50);P0=0x38,P2=0x1c,P3=0x1c,P1=0x1c;delayms(50);P0=0x70,P2=0x0e,P3=0x0e,P1=0x0e;delayms(50);}/*----------------------------------------------------------*/void l6d() //6个灯转{P0=0xc0,P2=0x03,P3=0x03,P1=0x03;delayms(50);P0=0x81,P2=0x81,P3=0x81,P1=0x81;delayms(50);P0=0x03,P2=0xc0,P3=0xc0,P1=0xc0;delayms(50);P0=0x06,P2=0x60,P3=0x60,P1=0x60;delayms(50);P0=0x0c,P2=0x30,P3=0x30,P1=0x30;delayms(50);P0=0x18,P2=0x18,P3=0x18,P1=0x18;delayms(50);P0=0x30,P2=0x0c,P3=0x0c,P1=0x0c;delayms(50);P0=0x60,P2=0x06,P3=0x06,P1=0x06;delayms(50);}void main() //主函数,由于模块化设计,只要修改下面各模块的排列顺序和时间,就可以实现各种变化模式{while(1) //无限循环{cx();//一点点出现rja(); //渐暗Onall();delayms(100);Offall();delayms(100);Onall();delayms(180);Offall();delayms(180);Onall();delayms(180);Offall();delayms(300);Onall();delayms(300);rja(); //渐暗delayms(300);// for(x=10;x>0;x--)// ss(100);/* 闪烁20次,50ms */// //ls(); /* 正向流水*/rjl();Offall();delayms(100);zxsz(); /* 正向生长*/delayms(500);rja();//渐暗rzmzy(); //拖尾从上到下rzmyy(); //拖尾从下到上for(x=6;x>0;x--) /*P00闪烁6次50ms*/{P0=0xfe,delayms(50);P0=0xff,delayms(50);}szsx(); /* 半双边生长,由上至下*/rja();//渐暗for(x=10;x>0;x--)ss(100);/* 闪烁20次,50ms */Offall();rzmnwyd();delayms(100);//走马内外移动函数//l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转rja();//渐暗for(x=6;x>0;x--) /*P00闪烁6次50ms*/{P0=0xfe,delayms(50);P0=0xff,delayms(50);}bsb();//双边同时流水由上至下szxs(); /* 半双边生长,由下至上*/rja();//渐暗ss(100); /* 闪烁10次*/l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转Onall();delayms(200);c(700),c(600),c(500);//间隔闪烁c(400),c(300),c(200);c(100),c(100),c(100),c(100);c(50),c(50),c(50),c(50);Offall();for(x=10;x>0;x--){ss(100);}/* 闪烁*/rzmzy(); //拖尾从上到下szxs();/* 半双边生长,由下至上*/szsx(); /* 半双边生长,由上至下*/rja(); //渐暗delayms(100);rzmzy(); //拖尾从上到下//fbsb();/* 半双边流水由下至上*/for(x=10;x>0;x--){P3=0x7f;delayms(50);Offall();delayms(50); /* P37闪烁6次,50ms */ }cd(); /* 由下至上沉淀*///fxsw(); /* 反向死亡*/rja(); //渐暗rzmyy(); //拖尾从下到上bsb();//双边同时流水由上至下// fxsz();Offall(); /* 反向生长*/szsx();/* 左右同时生长由上至下*/rja();delayms(200);for(x=20;x>0;x--){ss(100);} /* 闪烁20次*/rjl(); //渐亮delayms(500);rja(); //渐暗rzmyy(); //拖尾从下到上szsx(); /* 半双边生长,由上至下*/Offall();delayms(100);rjl(); //渐亮Offall();delayms(500); //开启所有灯2sfor(x=20;x>0;x--){c(100);} /* 闪烁20次*/l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转l1d(),l2d(),l3d(),l4d(),l5d(),l6d(),Onall(),delayms(50);//1至6个灯转for(x=3;x>0;x--){Onall();delayms(200);Offall();delayms(200);}Onall();delayms(500);rja(); //渐暗delayms(100);rzmzy(); //拖尾从上到下rzmyy(); //拖尾从下到上szsx();/* 左右同时生长由上至下*/delayms(300);rja(); //渐暗rjl(); //渐亮delayms(300);rzmnwyd(); //走马内外移动delayms(300);rja(); //渐暗delayms(300);rtbyd(); //眨眼rtbyd(); //眨眼Onall();delayms(180);Offall();delayms(180);Onall();delayms(180);Offall();delayms(180);Onall();delayms(500);Offall();delayms(300);szsx();/* 左右同时生长由上至下*/delayms(300);szsx();/* 左右同时生长由上至下*/rja();delayms(1000);Onall();delayms(2000);}}void rzmyy() //走马拖尾右移函数{Offall();delayms(200);P3=0x7f;delayms(60);P3=0xbf;P2=0xfe;if(P37==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P37 = 0;for(i = 0; i < 15; i++); //调节亮度高低P37 = 1;for(i = 0; i < 50; i++);}}P3=0xdf;P2=0xfd;if(P36==1 && P20==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P36 = 0;P20 = 0;for(i = 0; i < 15; i++); //调节亮度高低P37 = 0;for(i = 0; i < 1; i++); //调节亮度高低P36 = 1;P20 = 1;P37 = 1;for(i = 0; i < 50; i++);}}P3=0xef;P2=0xfb;if(P35==1 && P21 ==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P35 = 0;P21 = 0;for(i = 0; i < 15; i++); //调节亮度高低{P36 = 0;P20 = 0;}for(i = 0; i < 1; i++); //调节亮度高低P35 = 1;P21 = 1;P36 = 1;P20 = 1;for(i = 0; i < 50; i++);}}P3=0xf7;P2=0xf7;if(P34==1 && P22 == 1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P34 = 0;P22 = 0;for(i = 0; i < 15; i++); //调节亮度高低{P35 = 0;P21 = 0;}for(i = 0; i < 1; i++); //调节亮度高低P34 = 1;P22 = 1;P35 = 1;P21 = 1;for(i = 0; i < 50; i++);}}P3=0xfb;P2=0xef;if(P33==1 && P23==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P33 = 0;P23 = 0;for(i = 0; i < 15; i++); //调节亮度高低{P34 = 0;P22 = 0;for(i = 0; i < 1; i++); //调节亮度高低P33 = 1;P23 = 1;P34 = 1;P22 = 1;for(i = 0; i < 50; i++);}}P3=0xfd;P2=0xdf;if(P32==1 && P24==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P32 = 0;P24 = 0;for(i = 0; i < 15; i++); //调节亮度高低{P33 = 0;P24 = 0;}for(i = 0; i < 1; i++); //调节亮度高低P32 = 1;P24 = 1;P33 = 1;P23 = 1;for(i = 0; i < 50; i++);}}P3=0xfe;//P3^0P2=0xbf;//P2^6if(P31==1 && P25==1){unsigned int a;for(a=0;a<350;a++) //调节点亮时间{unsigned char i;P31 = 0;P25 = 0;for(i = 0; i < 15; i++); //调节亮度高低P32 = 0;。

基于单片机心形流水灯C语言源程序精编

基于单片机心形流水灯C语言源程序精编

基于单片机心形流水灯C语言源程序精编Document number:WTT-LKK-GBB-08921-EIGG-22986#include<>unsigned int x,y;void delayms(unsigned int z) //延时{unsigned int i,j;for(i=z;i>0;i--)for(j=150;j>0;j--);}void On_all() //开启所有灯{P0=0x00; P1=0x00; P2=0x00; P3=0x00; }void Off_all()//关闭所有灯{P0=0xff; P1=0xff; P2=0xff; P3=0xff; }void ls()//正向流水灯{P0=0x00; delayms(400);P2=0x00; delayms(400);P3=0x00; delayms(400);P1=0x00; delayms(400);P0=0x01; delayms(50);P0=0x02; delayms(50);P0=0x04; delayms(50);P0=0x08; delayms(50);P0=0x10; delayms(50);P0=0x20; delayms(50);P0=0x40; delayms(50);P0=0x80; delayms(50);P0=0x00;P2=0x01; delayms(50);P2=0x04; delayms(50); P2=0x08; delayms(50);P2=0x10; delayms(50); P2=0x20; delayms(50);P2=0x40; delayms(50); P2=0x80; delayms(50);P2=0x00;P3=0x80; delayms(50);P3=0x40; delayms(50); P3=0x20; delayms(50);P3=0x10; delayms(50);P3=0x08; delayms(50); P3=0x04; delayms(50);P3=0x02; delayms(50); P3=0x01; delayms(50); P3=0x00;P1=0x80; delayms(50);P1=0x40; delayms(50);P1=0x20; delayms(50); P1=0x10; delayms(50);P1=0x08; delayms(50); P1=0x04; delayms(50);P1=0x02; delayms(50); P1=0x01; delayms(50); P1=0x00;Off_all();P0=0xfe; delayms(50);P0=0xfd; delayms(50);P0=0xfb; delayms(50); P0=0xf7; delayms(50); P0=0xef; delayms(50); P0=0xdf; delayms(50);P0=0x7f; delayms(50);P0=0xff;P2=0xfe; delayms(50);P2=0xfd; delayms(50);P2=0xfb; delayms(50);P2=0xf7; delayms(50);P2=0xef; delayms(50);P2=0xdf; delayms(50);P2=0xbf; delayms(50);P2=0x7f; delayms(50); P2=0xff;P3=0x7f; delayms(50);P3=0xbf; delayms(50);P3=0xdf; delayms(50);P3=0xef; delayms(50);P3=0xf7; delayms(50);P3=0xfb; delayms(50);P3=0xfd; delayms(50);P3=0xfe; delayms(50);P3=0xff;P1=0x7f; delayms(50);P1=0xbf; delayms(50);P1=0xdf; delayms(50);P1=0xef; delayms(50);P1=0xf7; delayms(50);P1=0xfb; delayms(50);P1=0xfd; delayms(50);P1=0xfe; delayms(50);P1=0xff;P0=0xfe; delayms(50);P0=0xfc; delayms(50);P0=0xf8; delayms(50);P0=0xf0; delayms(50);P0=0xe0; delayms(50);P0=0xc0; delayms(50);P0=0x80; delayms(50);P0=0x00; delayms(50);P2=0xfe; delayms(50);P2=0xfc; delayms(50);P2=0xf8; delayms(50);P2=0xf0; delayms(50);P2=0xe0; delayms(50);P2=0xc0; delayms(50);P2=0x80; delayms(50);P2=0x00; delayms(50);P3=0x7f; delayms(50);P3=0x3f; delayms(50);P3=0x1f; delayms(50);P3=0x0f; delayms(50);P3=0x07; delayms(50);P3=0x03; delayms(50);P3=0x01; delayms(50);P3=0x00; delayms(50);P1=0x7f; delayms(50);P1=0x3f; delayms(50);P1=0x1f; delayms(50);P1=0x0f; delayms(50);P1=0x07; delayms(50);P1=0x03; delayms(50);P1=0x01; delayms(50);P1=0x00; delayms(50);}void fan_ls()//反向流水灯{Off_all(); delayms(300);On_all(); delayms(300); Off_all(); delayms(300); P1=0x00;delayms(400);P3=0x00;delayms(400);P2=0x00;delayms(400);P0=0x00;delayms(400); P1=0x01;delayms(50);P1=0x02;delayms(50);P1=0x04;delayms(50);P1=0x08;delayms(50);P1=0x10;delayms(50);P1=0x20;delayms(50);P1=0x40;delayms(50);P1=0x80;delayms(50);P1=0x00;P3=0x01;delayms(50);P3=0x02;delayms(50);P3=0x04;delayms(50);P3=0x08;delayms(50);P3=0x10;delayms(50);P3=0x20;delayms(50);P3=0x40;delayms(50);P3=0x80;delayms(50);P3=0x00;P2=0x80;delayms(50);P2=0x40;delayms(50);P2=0x20;delayms(50);P2=0x10;delayms(50);P2=0x08;delayms(50);P2=0x04;delayms(50);P2=0x02;delayms(50);P2=0x01;delayms(50);P2=0x00;P0=0x80;delayms(50);P0=0x40;delayms(50);P0=0x20;delayms(50);P0=0x10;delayms(50);P0=0x08;delayms(50);P0=0x04;delayms(50); P0=0x02;delayms(50);P0=0x01;delayms(50);P0=0x00;Off_all();P1=0xfe; delayms(50);P1=0xfd; delayms(50);P1=0xfb; delayms(50); P1=0xf7; delayms(50); P1=0xef; delayms(50); P1=0xdf; delayms(50); P1=0xbf; delayms(50); P1=0x7f; delayms(50);P1=0xff;P3=0xfe; delayms(50);P3=0xfd; delayms(50);P3=0xfb; delayms(50); P3=0xf7; delayms(50); P3=0xef; delayms(50); P3=0xdf; delayms(50); P3=0xbf; delayms(50); P3=0x7f; delayms(50);P3=0xff;P2=0x7f; delayms(50);P2=0xbf; delayms(50); P2=0xdf; delayms(50);P2=0xef; delayms(50); P2=0xf7; delayms(50);P2=0xfb; delayms(50); P2=0xfd; delayms(50); P2=0xfe; delayms(50);P2=0xff;P0=0x7f; delayms(50);P0=0xbf; delayms(50);P0=0xdf; delayms(50);P0=0xef; delayms(50);P0=0xf7; delayms(50);P0=0xfb; delayms(50); P0=0xfd; delayms(50); P0=0xfe; delayms(50);P0=0xff;P1=0xfe; delayms(50);P1=0xfc; delayms(50);P1=0xf8; delayms(50);P1=0xf0; delayms(50);P1=0xe0; delayms(50);P1=0xc0; delayms(50); P1=0x80; delayms(50); P1=0x00; delayms(50);P3=0xfe; delayms(50);P3=0xfc; delayms(50);P3=0xf8; delayms(50);P3=0xf0; delayms(50);P3=0xe0; delayms(50);P3=0xc0; delayms(50); P3=0x80; delayms(50); P3=0x00; delayms(50);P2=0x7f; delayms(50);P2=0x3f; delayms(50);P2=0x1f; delayms(50);P2=0x0f; delayms(50);P2=0x07; delayms(50);P2=0x03; delayms(50);P2=0x01; delayms(50);P2=0x00; delayms(50);P0=0x7f; delayms(50);P0=0x3f; delayms(50);P0=0x1f; delayms(50);P0=0x0f; delayms(50);P0=0x07; delayms(50);P0=0x03; delayms(50);P0=0x01; delayms(50);P0=0x00; delayms(50);Off_all();On_all();Off_all();On_all();Off_all();}void ban_shan()//半边交替闪{Off_all();P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;d elayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;d elayms(50);P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;d elayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;d elayms(50);P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;d elayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;d elayms(50);P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;d elayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;d elayms(50);P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;d elayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;d elayms(50);}void shangxia_shan()//上下交替闪{On_all();Off_all();P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;d elayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;d elayms(50);P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;d elayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;d elayms(50);P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;d elayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;d elayms(50);P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;d elayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;d elayms(50);P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;d elayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;d elayms(50);}void huayang_shan()//花样闪烁{On_all();delayms(400);P0=0xff;P2=0x00;P3=0x00;P1=0x00;delayms(200);P0=0x00;P2=0xff;P3=0x00;P1=0x00;delayms(200);P0=0x00;P2=0x00;P3=0xff;P1=0x00;delayms(200);P0=0x00;P2=0x00;P3=0x00;P1=0xff;delayms(200);P0=0x00;P2=0x00;P3=0xff;P1=0x00;delayms(200);P0=0x00;P2=0xff;P3=0x00;P1=0x00;delayms(200);P0=0xff;P2=0x00;P3=0x00;P1=0x00;delayms(200);On_all();delayms(400);P0=0x00;P2=0x00;P3=0x00;P1=0xff;delayms(200);P0=0x00;P2=0x00;P3=0xff;P1=0x00;delayms(200);P0=0x00;P2=0xff;P3=0x00;P1=0x00;delayms(200);P0=0xff;P2=0x00;P3=0x00;P1=0x00;delayms(200);P0=0x00;P2=0xff;P3=0x00;P1=0x00;delayms(200);P0=0x00;P2=0x00;P3=0xff;P1=0x00;delayms(200);P0=0x00;P2=0x00;P3=0x00;P1=0xff;delayms(200);On_all();delayms(400);Off_all();delayms(400);P0=0x00;delayms(200);P3=0x00;delayms(200);P1=0x00;delayms(200);P2=0x00;delayms(200);On_all();delayms(400);Off_all();delayms(400);P1=0x00;delayms(200);P2=0x00;delayms(200);P0=0x00;delayms(200);P3=0x00;delayms(200);On_all();delayms(400);Off_all();delayms(50);On_all();delayms(50);Off_all();delayms(50);On_all();delayms(50);Off_all();delayms(50);}void main(){On_all(); delayms(300);Off_all(); delayms(300);On_all(); delayms(300);Off_all(); delayms(300);On_all(); delayms(300);Off_all(); delayms(300);ls(); //正向流水fan_ls(); //反向流水ban_shan(); //半边交替闪shangxia_shan(); //上下交替闪烁huayang_shan();// 花样闪烁}。

单片机流水灯c语言实现

单片机流水灯c语言实现
//使数字0--9循环显示
//------------------------------------------------
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE []=
red_a=1;yellow_a=1;green_a=0;
red_b=0;yellow_b=1;green_b=1;
delayMs(2000);
Operation_Type=2;
break;
case 2://东西向黄灯开始闪烁,绿灯关闭
delayMs(300);
yellow_a=!yellow_a; green_a=1;
while(x--)
{
for(i=0;i<120;i++);
}
}
//---------------------------------------------
//交通灯切换子程序
void Traffic_Light()
{
switch (Operation_Type)
{
case 1://东西向绿灯亮与南北向红灯亮
{
uchar i;
P2=0x01;//P2端口初始化
while(1)//死循环
{
for(i=0;i<7;i++)//i自加1,当i=7时执行第二个for语句
{
P2=_crol_(P2,1);//P2端口循环左移1位
delayMs(150);
}
for(i=0;i<7;i++)

基于51单片机的流水灯系统设计

基于51单片机的流水灯系统设计

基于51单片机的流水灯系统设计介绍:流水灯系统是一种常见的电子灯光效果,通过多个方向或位置的灯光按照一定的规则顺序闪烁,形成一种流动的效果。

这种系统在舞台演出、广告等领域广泛应用。

本文将基于51单片机设计一个简单的流水灯系统。

设计目标:本设计的主要目标是实现一个简单的有5个LED灯的流水灯系统,通过51单片机控制闪烁的频率和方向。

设计原理:1.51单片机:使用常见的AT89C51单片机,作为整个系统的控制核心。

2.LED灯:选用5个LED灯作为流水灯的灯光源。

3.节拍控制电路:通过一个定时器电路来生成节拍信号,控制LED闪烁的频率。

详细设计:1.系统硬件设计选用的51单片机AT89C51与外部晶振连接,为单片机提供时钟信号。

5个LED灯分别通过多路开关连接到51单片机的I/O口上,通过单片机控制I/O口输出高或低电平来控制LED灯的亮灭。

定时器电路通过8051单片机内部的定时器模块来实现。

2.系统软件设计使用C语言编写程序,实现流水灯的控制逻辑。

1)初始化:设置51单片机的I/O口为输出模式,并将所有LED灯都设置为关闭状态。

2)闪烁控制:使用一个循环,通过依次改变LED灯的亮灭状态实现流水灯的效果。

可以通过循环变量的增加或减少来改变流水灯的方向。

3)节拍控制:使用编写好的定时器中断服务函数,来控制流水灯的闪烁频率。

可以通过调整定时器的工作模式和计数值来调整闪烁的频率。

测试与调试:总结:本文基于51单片机设计了一个简单的流水灯系统,通过控制LED灯的闪烁频率和方向,实现流水灯的效果。

通过学习和理解该设计,我们可以进一步探索更复杂的灯光系统设计,并在实际应用中进行扩展和优化。

51单片机爱心流水灯原理及制作

51单片机爱心流水灯原理及制作
#define uchar unsigned char
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++)

心型流水灯程序

心型流水灯程序

心型流水灯程序#include <REG52.H> //包含51头文件 #include <intrins.h> //使用左移右移头文件 #define uint unsigned int#define uchar unsigned char //宏定义void delay_ms(uint x) //毫秒级延时函数 {uint y;for(;x>0;x--)for(y=110;y>0;y--); }void main() //主函数{uchar i,aa;uint k;while(1){//-------------顺时针流动5次------------//for(k=0;k<2;k++){aa=0xFE;for(i=0;i<8;i++){P0=aa;aa=_crol_(aa,1); //crol是左移delay_ms(200);}P0=0xFF;aa=0x7F;for(i=0;i<8;i++){P2=aa;aa=_cror_(aa,1); //cror是右移delay_ms(200);}P2=0xFF;aa=0x7F;for(i=0;i<8;i++){P3=aa;aa=_cror_(aa,1);delay_ms(200);}P3=0xFF;aa=0x7F;for(i=0;i<8;i++){P1=aa;aa=_cror_(aa,1);delay_ms(200);}aa=P1=0xFF;}P0=~0x00;P1=~0x00;P2=~0x00;P3=~0x00; //与P3=0xFF;相同delay_ms(500);//----------------逆时针流动5次--------------// for(k=0;k<2;k++){for(i=0;i<8;i++){P1=~(0x01<<i);delay_ms(200);}P1=0xFF;for(i=0;i<8;i++){P3=~(0x01<<i);delay_ms(200);}P3=0xFF;for(i=0;i<8;i++){P2=~(0x01<<i);delay_ms(200);}P2=0xFF;for(i=0;i<8;i++){P0=~(0x80>>i);delay_ms(200);}P0=0xFF;}P0=~0x00;P1=~0x00;P2=~0x00;P3=~0x00;delay_ms(500);//---------------------上到下画爱心--------------// for(k=0;k<2;k++){for(i=0;i<8;i++){P1=~(0x01<<i);P0=~(0x01<<i);delay_ms(200);}P1=0xFF;P0=0xFF;for(i=0;i<8;i++){P3=~(0x01<<i);P2=~(0x80>>i);delay_ms(200);}P3=0xFF;P2=0xFF;}P0=~0x00;P1=~0x00;P2=~0x00;P3=~0x00;delay_ms(500);//----------------下到上画爱心---------------// for(k=0;k<2;k++){for(i=0;i<8;i++){P2=~(0x01<<i);P3=~(0x80>>i);delay_ms(200);}P2=0xFF;P3=0xFF;for(i=0;i<8;i++){P1=~(0x80>>i);P0=~(0x80>>i);delay_ms(200);}P1=0xFF;P0=0xFF;}P0=~0x00;P1=~0x00;P2=~0x00;P3=~0x00;delay_ms(500);//-----------------累加1---------------// for(k=0;k<=255;k++){aa++;P1=~aa;P0=~aa;delay_ms(60);}aa=0;P1=0xFF;P0=0xFF;for(k=0;k<=255;k++){aa++;P3=~aa;P2=~aa;delay_ms(60);}aa=0;P3=0xFF;P2=0xFF;//-----------------累加2---------------// for(k=0;k<255;k++){aa++;P1=~aa;P0=~aa;delay_ms(60);}aa=0;for(k=0;k<255;k++){aa++;P3=~aa;P2=~aa;delay_ms(60);}aa=0;delay_ms(3500);P3=0xFF;P2=0xFF;P1=0xFF;P0=0xFF;delay_ms(500);//------------------卷动笑脸-----------------// for(k=0;k<=40;k++){aa++;aa=_crol_(aa,7);P0=~aa;P1=~aa;P3=0x3F;P2=0xf8;delay_ms(200);}aa=0;P0=0xFF;P1=0xFF;P2=0xFF;P3=0xFF;//-----------------循环5次闪烁---------------// for(k=0;k<5;k++){P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay_ms(500);P0=~0x00;P1=~0x00;P2=~0x00;P3=~0x00; //与P3=0xFF一样delay_ms(500);}//---------------最后的笑脸显示------------//for(k=0;k<5;k++){P1=0x83;P3=0x3F;P2=0xf8;P0=0xC1;delay_ms(1000); }P0=~0x00;P1=~0x00;P2=~0x00;P3=~0x00;}}。

51心形流水灯代码

51心形流水灯代码

51心形流水灯代码#include //调用reg52头文件void delay(unsigned int t);//定义延时函数void one();//定义流水一函数void two();//定义流水二函数void three();//定义流水三函数void four();//定义流水四函数void five();//定义流水五函数void six();//定义流水六函数void seven();//定义流水七函数void eight();//定义流水八函数void night();//定义流水九函数void ten();//定义流水十函数void eleven();//定义流水十一函数void twelve();//定义流水十二函数void thirteen();//定义流水十三函数void fouteen();//定义流水十四函数sbit led00=P0^0;sbit led01=P0^1;sbit led02=P0^2;sbit led03=P0^3;sbit led04=P0^4;sbit led05=P0^5;sbit led10=P1^0;sbit led11=P1^1;sbit led12=P1^2;sbit led13=P1^3;sbit led14=P1^4;sbit led15=P1^5;sbit led20=P2^0;sbit led21=P2^1;sbit led22=P2^2;sbit led23=P2^3;sbit led24=P2^4;sbit led25=P2^5;sbit led30=P3^0;sbit led31=P3^1;sbit led32=P3^2;sbit led33=P3^3;sbit led34=P3^4;sbit led35=P3^5;void main()//主函数开启{unsigned int i;one();//执行流水一two();//执行流水二three();//执行流水三four();//执行流水四five();//执行流水五six();//执行流水六seven();//执行流水七eight();//执行流水八night();//执行流水九ten();//执行流水十eleven();//执行流水十一twelve();//执行流水十二thirteen();//执行流水十三fouteen();//执行流水十四for(i=0;i<3;i++){P0=0xF0;P1=0xE1;P2=0xE0;P3=0x03;delay(65000);P0=P1=P2=P3=0xFF;delay(65000);}while(1){led00=led01=led02=led03=led11=led12=led13=led14=led 32=led33=led34=led35=led20=led21=led22=led23=led24=0;led10=led15=led30=led31=led04=led05=led25=0;delay(30000);led10=led15=led30=led31=led04=led05=led25=1;delay(30000);}}////////////////////////////////////////////////////////我是分割线1(全灯闪亮三次)////////////////////////////////////////////////// void one()//编写流水一函数{unsigned int i;for(i=0;i<3;i++){P0=P1=P2=P3=0x00;//P0口全熄delay(30000);//延时P0=P1=P2=P3=0xFF;//P0口全熄delay(40000);//延时}}/////////////////////////////////////////////////////////我是分割线2(逆时针转一圈)//////////////////////////////////////////////////////void two()//编写流水二{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//定义数组unsigned int i;for(i=0;i<6;i++){P1=table[i];delay(20000);//延时}P1=0xFF;for(i=0;i<6;i++){P3=table[i];delay(20000);//延时}P3=0xFF;for(i=0;i<6;i++){P2=table[i];delay(20000);//延时}P2=0xFF;for(i=0;i<6;i++){P0=table1[i];delay(20000);//延时}P0=0xFF;}////////////////////////////////////////////////////////我是分割线3(顺时针转一圈)//////////////////////////////////////////////////////////// void three()//编写流水三{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//定义数组unsigned int i;P1=0xFE;delay(20000);P1=0xFF;for(i=0;i<6;i++){P0=table[i];delay(20000);//延时}P0=0xFF;for(i=0;i<6;i++){P2=table1[i];delay(20000);//延时}P2=0xFF;for(i=0;i<6;i++){P3=table1[i];delay(20000);//延时}P3=0xFF;for(i=0;i<6;i++){P1=table1[i];delay(20000);//延时}P0=0xFF;}////////////////////////////////////////////////////////我是分割线4(左半圈依次全亮)//////////////////////////////////////////////////////////// void four()//编写流水四{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0};//定义数组unsigned int i;for(i=0;i<6;i++){P1=table[i];delay(30000);//延时}for(i=0;i<6;i++){P3=table[i];delay(30000);//延时}P2=0xFE;delay(30000);P1=P3=0xFF;//P0口全熄P0=P2=0x00;delay(30000);P0=P2=0xFF;}////////////////////////////////////////////////////////我是分割线5(右半圈依次点亮)//////////////////////////////////////////////////////////// void five()//编写流水五{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0};//定义数组unsigned char codetable1[]={0xdf,0xcf,0xc7,0xc3,0xc1,0xc0};//定义数组unsigned int i;P1=0xFE;delay(30000);for(i=0;i<6;i++){P0=table[i];delay(30000);//延时}for(i=0;i<6;i++){P2=table1[i];delay(30000);//延时}P0=P2=0xFF;//P0口全熄P1=P3=0x00;//P0口全熄delay(30000);//延时P1=P3=0xFF;}////////////////////////////////////////////////////////我是分割线6//////////////////////////////////////////////////////////// void six()//编写流水六{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xFF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};//定义数组unsigned int i;for(i=0;i<7;i++){P1=table[i];delay(20000);//延时P3=table[i];delay(20000);//延时P2=table[i];delay(20000);//延时P0=table1[i];delay(20000);//延时}}////////////////////////////////////////////////////////我是分割线7//////////////////////////////////////////////////////////// void seven()//编写流水七{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0xFF};//定义数组unsigned char code table1[]={0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xFF};//定义数组unsigned int i;for(i=0;i<7;i++){P1=table[i];P0=table1[i];delay(30000);}P0=0xE0;P1=0xC0;delay(60000);P2=P3=0xC0;P1=0xFF;P0=0xDF;delay(60000);}////////////////////////////////////////////////////////我是分割线8//////////////////////////////////////////////////////////// void eight()//编写流水8{unsigned char code table[]={0xF8,0xC7};//定义数组unsigned char code table1[]={0xC7,0xF8};//定义数组unsigned int i,j;for(j=0;j<2;j++){for(i=0;i<2;i++){P1=P2=P3=table[i];P0=table1[i];delay(30000);}}}////////////////////////////////////////////////////////我是分割线9//////////////////////////////////////////////////////////// void night()//编写流水9{unsigned char code table[]={0xFC,0xF3,0xCF};//定义数组unsigned char code table1[]={0xCF,0xF3,0xFC};//定义数组unsigned int i;for(i=0;i<3;i++){P1=P2=P3=table[i];P0=table1[i];delay(30000);}}////////////////////////////////////////////////////////我是分割线10//////////////////////////////////////////////////////////// void ten()//编写流水10{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0};//定义数组unsigned char code table1[]={0xDF,0xCF,0xC7,0xC3,0xC1,0xC0};//定义数组unsigned int i;for(i=0;i<6;i++){P1=table[i];delay(10000);//延时}for(i=0;i<6;i++){P3=table[i];delay(10000);//延时}for(i=0;i<6;i++){P2=table[i];delay(10000);//延时}for(i=0;i<6;i++){P0=table1[i];delay(10000);//延时}}////////////////////////////////////////////////////////我是分割线11//////////////////////////////////////////////////////////// void eleven()//编写流水11{unsigned char code table[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0};//定义数组unsigned char code table1[]={0xDF,0xCF,0xC7,0xC3,0xC1,0xC0};//定义数组unsigned int i;P1=0xFE;delay(10000);for(i=0;i<6;i++){P0=table[i];delay(10000);//延时}for(i=0;i<6;i++){P2=table1[i];delay(10000);//延时}for(i=0;i<6;i++){P3=table1[i];delay(10000);//延时}for(i=0;i<6;i++){P1=table1[i];delay(10000);//延时}}////////////////////////////////////////////////////////我是分割线12蝴蝶闪////////////////////////////////////////////////////////////void twelve()//编写流水12{unsigned int i;for(i=0;i<12;i++){P1=P3=0x00;P2=0xFE;delay(15000);P1=P2=P3=0xFF;P1=0xFE;P0=P2=0x00;delay(15000);P0=P1=P2=0xFF;}}////////////////////////////////////////////////////////我是分割线13////////////////////////////////////////////////////////////void thirteen()//编写流水十三{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//定义数组unsigned int i,j;for(j=0;j<3;j++) {for(i=0;i<6;i++) {P3=0x00;P1=table[i]; delay(20000);//延时}P1=P3=0xFF;for(i=0;i<6;i++) {P2=0x00;P3=table[i]; delay(25000);//延时}P2=P3=0xFF;for(i=0;i<6;i++) {P0=0x00;P2=table[i]; delay(30000);//延时}P0=P2=0xFF;for(i=0;i<6;i++) {P1=0x00;P0=table1[i]; delay(35000);//延时}P0=P1=0xFF;}}/////////////////////////////////////////////////////////我是分割线14////////////////////////////////////////////////////// void fouteen()//编写流水十四{unsigned char code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//定义数组unsigned char code table1[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//定义数组unsigned int i,j;for(j=0;j<3;j++){P1=0xFE;delay(20000);P1=0xFF;for(i=0;i<6;i++){P2=0x00;P0=table[i];delay(20000);//延时}P0=P2=0xFF;for(i=0;i<6;i++){P3=0x00;P2=table1[i];delay(25000);//延时}P2=P3=0xFF;for(i=0;i<6;i++){P1=0x00;P3=table1[i];delay(30000);//延时}P1=P3=0xFF;for(i=0;i<6;i++){P0=0x00;P1=table1[i];delay(35000);//延时}P0=P1=0xFF;}}/////////////////////////////////////////////////////////我是分割线15////////////////////////////////////////////////////// void delay(unsigned int t)//编写延时函数{while(--t);}。

基于51单片机的C语言程序设计

基于51单片机的C语言程序设计

基于51单片机的C语言程序设计实训100例第 01 篇基础程序设计01 闪烁的LED/* 名称:闪烁的LED说明:LED按设定的时间间隔闪烁*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P1^0;//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){while(1){LED=~LED;DelayMS(150);}}02 从左到右的流水灯/* 名称:从左到右的流水灯说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intvoid DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){P0=0xfe;while(1){P0=_crol_(P0,1); //P0的值向左循环移动DelayMS(150);}}03 8只LED左右来回点亮/* 名称:8只LED左右来回点亮说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){uchar i;P2=0x01;while(1){{P2=_crol_(P2,1); //P2的值向左循环移动DelayMS(150);}for(i=0;i<7;i++){P2=_cror_(P2,1); //P2的值向右循环移动DelayMS(150);}}}04 花样流水灯/* 名称:花样流水灯说明:16只LED分两组按预设的多种花样变换显示*/#include<reg51.h>#define uchar unsignedchar#define uint unsigned intuchar code Pattern_P0[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f, 0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff, 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe, 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff};uchar code Pattern_P2[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff, 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f, 0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00, 0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序void main(){uchar i;while(1){ //从数组中读取数据送至P0和P2口显示for(i=0;i<136;i++){P0=Pattern_P0[i];P2=Pattern_P2[i];DelayMS(100);}}}05 LED模拟交通灯/* 名称:LED模拟交通灯说明:东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。

51单片机流水灯程序

51单片机流水灯程序

char code table4[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,};//P0123 一个灯走动
char code table5[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,};//P0123 两个灯走动
char code table6[]={0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,};//P0123 三个灯走动
for(j=0;j<8;j++)//P0123 一条龙一个灯走动
{ P0=table4[j];
delay(5);
} P0=0xff;
for(j=0;j<8;j++)//P0123 一条龙一个灯走动
{ P2=table4[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<7;j++)//P0123 两个灯走动
{ P0=table5[j];
P1=table5[j];
P2=table5[j];
P3=table5[j];
for(j=1;j<7;j++)//P0123 一条龙两个灯走动
{ P2=table5[j];
delay(5);
{ P0=table10[j];
P1=table10[j];
P2=table10[j];
P3=table10[j];
delay(5);
} P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(5);

(完整版)51单片机流水灯程序

(完整版)51单片机流水灯程序

1.第一个发光管以间隔200ms 闪烁。

2.8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms。

3.8 个发光管来回流动,第个管亮100ms。

4.用8 个发光管演示出8 位二进制数累加过程。

5.8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁 5 次。

重复此过程。

6.间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。

7.间隔300ms 先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。

1#include<reg52.h>#define uint unsigned intsbit led 仁P"0;void delay();void main(){while(1){led1=0;delay();led1=1;delay();}}void delay(){uint x,y;for(x=200;x>0;x--) for(y=100;y>0;y--);}2#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char sbit p 仁P1A0;uchar a;void delay(); void main() {a=0xfe;P1=a;while(1){ a=_crol_(a,1); delay();P1=a;delay();}}void delay(){uint b; for(b=55000;b>0;b--);}3#include<reg52.h>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void delay(){uint x,y; for(x=100;x>0;x--) for(y=110;y>0;y--);}void main(){uchar a,i;while(1)a=0xfe;for(i=0;i<8;i++){P1=a; delay(100); a=_crol_(a,1);}a=0x7f;for(i=0;i<8;i++){P1=a; delay(100); a=_cror_(a,1);}}}4#include<reg52.h>#include <intrins.h> #define uint unsigned int #define uchar unsigned char void delay(uint a){uint x,y;for(x=a;x>0;x--) for(y=110;y>0;y--);}void main(){uchar b;while(1){b++;P1=~b; delay(200);5#include<reg52.h>#include <intrins.h> #define uint unsigned int #define uchar unsigned char void main(){uchar a,i,j;while(1){ for(j=0;j<2;j++){a=0xfe;for(i=0;i<8;i++){P1=a;delay(200); a=_crol_(a,1);}a=0x7f;for(i=0;i<8;i++){P1=a;delay(200); a=_cror_(a,1);}}P1=0xff; for(j=0;j<10;j++) {delay(300);P1=~P1;}}}void delay(){uint x,y; for(x=200;x>0;x--) for(y=110;y>0;y--); 6 #include<reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char void delay(){uint x,y; for(x=300;x>0;x--) for(y=110;y>0;y--);} void main(){uchar a,i,j; while(1) {a=0xfe; for(j=0;j<8;j++) { for(i=0;i<8-j;i++) {P1=a; delay(200); a=_crol_(a,1);} a=_crol_(a,j); P1=0xff; a=a<<1;}} }7#include<reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char void delay(uint z){uint x,y; for(x=z;x>0;x--)for(y=110;y>0;y--);}void main(){uchar a,i,j;for(j=0;j<3;j++){P1=0x55;delay(300);P1=0xaa;delay(300);}for(j=0;j<3;j++){a=0xfe;for(i=0;i<8;i++){P1=a;delay(300);a=_crol_(a,1);}}P1=0xff;for(j=0;j<3;j++){P1=0x7e;delay(300);P1=0xbd;delay(300);P1=0xdb;delay(300);P1=0xe7;delay(300);}P1=0xff;for(j=0;j<3;j++){P1=0xe7;delay(300);P1=0xdb;delay(300);P1=0xbd;delay(300);P1=0x7e;delay(300);}P1=0xff; for(j=0;j<6;j++) {P1=~P1; delay(300);}P1=0xff;while(1);}。

基于MCS-51单片机的流水灯实验

基于MCS-51单片机的流水灯实验
闪烁如何实现?一会亮,一会灭。怎么样眼睛能分辨出来?亮灭间隔超过20ms以上,人眼视觉残留现象。编程实现方案:端口电平维持想要的时间。延时不切换,CPU空操作耗时不改变端口来实现。
如何依次亮灭:从左到右,8个LED灯亮,8种状态,如何实现,数组形式?移位形式?
参考共阳极接法:
Char s[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
二、实验类型:验证型( )、设计型(√)、研究创新型( )
三、预期学生学习的成果
1、对本课程的作用、地位和学习方法有明确认知。
2、理解keil、Proteus软件安装及基本应用。
3、对实验用启东计算机厂51单片机实验箱资源及提供的实验案例有较好认知。
4、掌握MCS-51单片机的工程开发流程及Proteus软件虚拟仿真流程。
目标2:初步具备自行拟定实验步骤、检查和故障排除、分析和综合实验结果以及撰写实验报告的能力。
目标4:掌握MCS-51单片机/STM32F103单片机系统仿真工具和仿真流程,了解常用实验仪器、设备的基本工作原理,了解其正确使用方法,具备利用电子仪器设备和专业仿真软件对复杂工程问题进行分析和设计的能力。
(3)虚拟仿真效果观测,能观察到8个LED依次亮灭,鼓励采用不同的编程方式实现。
(4)利用Keil软件,将编译好的hex文件下载到51单片机里,按复位键运行程序,观察实验现象,并视频拍摄实验过程。
(5)调试观察,注意不同时延LED观察,段码表对应的LED闪烁,程序设计有逻辑错误,实验调试分析。
六·实验结果
掌握mcs51单片机stm32f103单片机系统仿真工具和仿真流程了解常用实验仪器设备的基本工作原理了解其正确使用方法具备利用电子仪器设备和专业仿真软件对复杂工程问题进行分析和设计的能力

C语言从51单片机led数组,51单片机实现LED流水灯(数组方式和位运算方式)

C语言从51单片机led数组,51单片机实现LED流水灯(数组方式和位运算方式)

C语⾔从51单⽚机led数组,51单⽚机实现LED流⽔灯(数组⽅式和位运算⽅式)/*名称:51单⽚机实现LED流⽔灯(数组⽅式和位运算⽅式)说明:今天⼜重新开始系统的学习51了,LED就算个开端吧。

要注意两点:1、sfr和sbit是C语⾔扩展出来的关键字。

其中sfr⽤于对特殊功能寄存器进⾏声明,sbit⽤于对某些特殊功能寄存器的某位进⾏声明。

这⾥和宏定义很相似,但是不能⽤宏定义进⾏替换,对于前者是因为51单⽚机的寄存器存在于内部空间0x80-0xFF,这空间属于直接寻址,51特殊功能寄存只能直接寻址,不能间接寻址。

如果⽤宏定义的话,在翻译成汇编时就会认为是通过总线访问对应的外部地址了。

对于后者,sbit是定义⼀个标志位,也叫位变量。

⽽类似于#define key1 P3^0就说不通了。

2.对于⼀般的⼆极管LED来说,驱动其发光的电流⼀般为5-30mA。

所以⼀般的发光⼆极管都接成灌电流的形式,(即电流是流⼊单⽚机的,使其对应位为低电平)。

但是我⽤的开发板⽤的却不是这种形式,(在这⾥是⾼电平对应的⼆极管⼯作。

)但是51单⽚机IO⼝输出的电流⼤⼩只有1-2mA,为什么⾜以驱动⼆极管发光呢(私⾃以为是中间接了⼀些能够放⼤电流的东西)?*/#include#define uchar unsigned char//延时函数void delay_ms(unsigned int n){unsigned int i=0,j=0;for(i=0;ifor(j=0;j<123;j++);}//以数组⽅式实现流⽔灯void LEDlightByArray(){uchar _data[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};uchar i = 0;while(1){for(i = 0;i<8;++i){P2 = _data[i];delay_ms(1000);}}}//利⽤位运算实现流⽔灯void LEDlightByBitOpe() {uchar i = 0;while(1){P2 = 0x01;for(i = 0;i<8;++i){delay_ms(1000);P2 = P2<<1;}}}int main(){//LEDlightByArray(); LEDlightByBitOpe(); return 0;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机心形流水灯C语言源程序#include<reg51.h>unsigned int x,y;void delayms(unsigned int z) //延时{unsigned int i,j;for(i=z;i>0;i--)for(j=150;j>0;j--);}void On_all() //开启所有灯{P0=0x00; P1=0x00; P2=0x00; P3=0x00; }void Off_all()//关闭所有灯{P0=0xff; P1=0xff; P2=0xff; P3=0xff; }void ls()//正向流水灯{P0=0x00; delayms(400);P2=0x00; delayms(400);P3=0x00; delayms(400);P1=0x00; delayms(400);P0=0x01; delayms(50);P0=0x04; delayms(50);P0=0x08; delayms(50);P0=0x10; delayms(50); P0=0x20; delayms(50);P0=0x40; delayms(50); P0=0x80; delayms(50);P0=0x00;P2=0x01; delayms(50);P2=0x02; delayms(50);P2=0x04; delayms(50); P2=0x08; delayms(50);P2=0x10; delayms(50); P2=0x20; delayms(50);P2=0x40; delayms(50); P2=0x80; delayms(50);P2=0x00;P3=0x80; delayms(50);P3=0x40; delayms(50); P3=0x20; delayms(50);P3=0x10; delayms(50);P3=0x08; delayms(50); P3=0x04; delayms(50);P3=0x01; delayms(50); P3=0x00;P1=0x80; delayms(50); P1=0x40; delayms(50); P1=0x20; delayms(50); P1=0x10; delayms(50); P1=0x08; delayms(50); P1=0x04; delayms(50); P1=0x02; delayms(50); P1=0x01; delayms(50); P1=0x00;Off_all();P0=0xfe; delayms(50);P0=0xfd; delayms(50);P0=0xfb; delayms(50); P0=0xf7; delayms(50); P0=0xef; delayms(50); P0=0xdf; delayms(50); P0=0xbf; delayms(50); P0=0x7f; delayms(50); P0=0xff;P2=0xfe; delayms(50);P2=0xfb; delayms(50);P2=0xf7; delayms(50);P2=0xef; delayms(50);P2=0xdf; delayms(50);P2=0xbf; delayms(50);P2=0x7f; delayms(50); P2=0xff;P3=0x7f; delayms(50);P3=0xbf; delayms(50);P3=0xdf; delayms(50);P3=0xef; delayms(50);P3=0xf7; delayms(50);P3=0xfb; delayms(50);P3=0xfd; delayms(50);P3=0xfe; delayms(50);P3=0xff;P1=0x7f; delayms(50);P1=0xbf; delayms(50);P1=0xdf; delayms(50);P1=0xef; delayms(50);P1=0xf7; delayms(50);P1=0xfb; delayms(50);P1=0xfe; delayms(50); P1=0xff;P0=0xfe; delayms(50); P0=0xfc; delayms(50); P0=0xf8; delayms(50); P0=0xf0; delayms(50); P0=0xe0; delayms(50); P0=0xc0; delayms(50); P0=0x80; delayms(50); P0=0x00; delayms(50); P2=0xfe; delayms(50); P2=0xfc; delayms(50); P2=0xf8; delayms(50); P2=0xf0; delayms(50); P2=0xe0; delayms(50); P2=0xc0; delayms(50); P2=0x80; delayms(50); P2=0x00; delayms(50); P3=0x7f; delayms(50); P3=0x3f; delayms(50); P3=0x1f; delayms(50); P3=0x0f; delayms(50);P3=0x07; delayms(50);P3=0x03; delayms(50);P3=0x01; delayms(50);P3=0x00; delayms(50);P1=0x7f; delayms(50);P1=0x3f; delayms(50);P1=0x1f; delayms(50);P1=0x0f; delayms(50);P1=0x07; delayms(50);P1=0x03; delayms(50);P1=0x01; delayms(50);P1=0x00; delayms(50);}void fan_ls()//反向流水灯{Off_all(); delayms(300);On_all(); delayms(300);Off_all(); delayms(300);P1=0x00;delayms(400);P3=0x00;delayms(400);P2=0x00;delayms(400);P0=0x00;delayms(400);P1=0x01;delayms(50);P1=0x04;delayms(50); P1=0x08;delayms(50); P1=0x10;delayms(50); P1=0x20;delayms(50); P1=0x40;delayms(50); P1=0x80;delayms(50);P1=0x00;P3=0x01;delayms(50); P3=0x02;delayms(50); P3=0x04;delayms(50); P3=0x08;delayms(50); P3=0x10;delayms(50); P3=0x20;delayms(50); P3=0x40;delayms(50); P3=0x80;delayms(50);P3=0x00;P2=0x80;delayms(50);P2=0x40;delayms(50); P2=0x20;delayms(50); P2=0x10;delayms(50);P2=0x08;delayms(50); P2=0x04;delayms(50);P2=0x01;delayms(50);P2=0x00;P0=0x80;delayms(50);P0=0x40;delayms(50);P0=0x20;delayms(50);P0=0x10;delayms(50);P0=0x08;delayms(50);P0=0x04;delayms(50); P0=0x02;delayms(50);P0=0x01;delayms(50);P0=0x00;Off_all();P1=0xfe; delayms(50);P1=0xfd; delayms(50);P1=0xfb; delayms(50); P1=0xf7; delayms(50); P1=0xef; delayms(50); P1=0xdf; delayms(50); P1=0xbf; delayms(50); P1=0x7f; delayms(50);P1=0xff;P3=0xfe; delayms(50);P3=0xfb; delayms(50); P3=0xf7; delayms(50); P3=0xef; delayms(50); P3=0xdf; delayms(50); P3=0xbf; delayms(50); P3=0x7f; delayms(50);P3=0xff;P2=0x7f; delayms(50);P2=0xbf; delayms(50);P2=0xdf; delayms(50);P2=0xef; delayms(50);P2=0xf7; delayms(50);P2=0xfb; delayms(50); P2=0xfd; delayms(50); P2=0xfe; delayms(50);P2=0xff;P0=0x7f; delayms(50);P0=0xbf; delayms(50);P0=0xdf; delayms(50);P0=0xef; delayms(50);P0=0xf7; delayms(50);P0=0xfb; delayms(50);P0=0xfd; delayms(50); P0=0xfe; delayms(50);P0=0xff;P1=0xfe; delayms(50);P1=0xfc; delayms(50);P1=0xf8; delayms(50);P1=0xf0; delayms(50);P1=0xe0; delayms(50);P1=0xc0; delayms(50); P1=0x80; delayms(50); P1=0x00; delayms(50);P3=0xfe; delayms(50);P3=0xfc; delayms(50);P3=0xf8; delayms(50);P3=0xf0; delayms(50);P3=0xe0; delayms(50);P3=0xc0; delayms(50); P3=0x80; delayms(50); P3=0x00; delayms(50);P2=0x7f; delayms(50);P2=0x3f; delayms(50);P2=0x1f; delayms(50);P2=0x0f; delayms(50);P2=0x07; delayms(50);P2=0x03; delayms(50);P2=0x01; delayms(50);P2=0x00; delayms(50);P0=0x7f; delayms(50);P0=0x3f; delayms(50);P0=0x1f; delayms(50);P0=0x0f; delayms(50);P0=0x07; delayms(50);P0=0x03; delayms(50);P0=0x01; delayms(50);P0=0x00; delayms(50);Off_all();On_all();Off_all();On_all();Off_all();}void ban_shan()//半边交替闪{Off_all();P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;del ayms(50);ayms(50);P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;del ayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;del ayms(50);P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;del ayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;del ayms(50);P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;del ayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;del ayms(50);P1=0x00;P3=0x00;delayms(50);P0=0xff;P2=0xff;del ayms(50);P1=0xff;P3=0xff;delayms(50);P0=0x00;P2=0x00;del ayms(50);}void shangxia_shan()//上下交替闪{On_all();Off_all();P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;del ayms(50);ayms(50);P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;del ayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;del ayms(50);P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;del ayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;del ayms(50);P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;del ayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;del ayms(50);P0=0x00;P1=0x00;delayms(50);P2=0xff;P3=0xff;del ayms(50);P0=0xff;P1=0xff;delayms(50);P2=0x00;P3=0x00;del ayms(50);}void huayang_shan()//花样闪烁{On_all();delayms(400);P0=0xff;P2=0x00;P3=0x00;P1=0x00;delayms(200);P0=0x00;P2=0xff;P3=0x00;P1=0x00;delayms(200);P0=0x00;P2=0x00;P3=0xff;P1=0x00;delayms(200);P0=0x00;P2=0x00;P3=0x00;P1=0xff;delayms(200); P0=0x00;P2=0x00;P3=0xff;P1=0x00;delayms(200); P0=0x00;P2=0xff;P3=0x00;P1=0x00;delayms(200); P0=0xff;P2=0x00;P3=0x00;P1=0x00;delayms(200); On_all();delayms(400);P0=0x00;P2=0x00;P3=0x00;P1=0xff;delayms(200); P0=0x00;P2=0x00;P3=0xff;P1=0x00;delayms(200); P0=0x00;P2=0xff;P3=0x00;P1=0x00;delayms(200); P0=0xff;P2=0x00;P3=0x00;P1=0x00;delayms(200); P0=0x00;P2=0xff;P3=0x00;P1=0x00;delayms(200); P0=0x00;P2=0x00;P3=0xff;P1=0x00;delayms(200); P0=0x00;P2=0x00;P3=0x00;P1=0xff;delayms(200); On_all();delayms(400);Off_all();delayms(400);P0=0x00;delayms(200);P3=0x00;delayms(200);P1=0x00;delayms(200);P2=0x00;delayms(200);On_all();delayms(400);Off_all();delayms(400);P1=0x00;delayms(200);P2=0x00;delayms(200);P0=0x00;delayms(200);P3=0x00;delayms(200);On_all();delayms(400);Off_all();delayms(50);On_all();delayms(50);Off_all();delayms(50);On_all();delayms(50);Off_all();delayms(50);}void main(){On_all(); delayms(300);Off_all(); delayms(300);On_all(); delayms(300);Off_all(); delayms(300);On_all(); delayms(300);Off_all(); delayms(300);ls(); //正向流水fan_ls(); //反向流水ban_shan(); //半边交替闪shangxia_shan(); //上下交替闪烁huayang_shan();// 花样闪烁}。

相关文档
最新文档