各种流水灯花样代码
五种编程方式实现流水灯的单片机C程序
五种编程方式实现流水灯的单片机C 程序//功能:采用顺序结构实现的流水灯控制程序/*此方式中采用的是字操作(也称为总线操作)*/#include<regvoiddelay(unsignedchari);//延时函数声明voidmain()//主函数{while(1){P1=Oxfe;//点亮第1 个发光二极管,delay(200);//延时P1=Oxfd;//点亮第2 个发光二极管,delay(200);//延时P1=Oxfb;//点亮第3 个发光二极管delay(200);//延时P1=0xf7;〃点亮第4 个发光二极管delay(200);//延时P1=Oxef;//点亮第5 个发光二极管delay(200);//延时P1=Oxdf;//点亮第6 个发光二极管delay(200);//延时P1=Oxbf;//点亮第7 个发光二极管delay(200);//延时P1=0x7f; 〃点亮第8 个发光二极管delay(200);//延时}}//函数名:delay//函数功能:实现软件延时//形式参数:unsignedchari;//i 控制空循环的外循环次数,共循环i*255 次//返回值:无voiddelay(unsignedchari)//延时函数,无符号字符型变量i 为形式参数{unsignedcharj,k;〃定义无符号字符型变量j 和kfor(k=0;k<i;k++) 〃双重for 循环语句实现软件延时for(j=0;j<255;j++);}//功能:采用循环结构实现的流水灯控制程序//此方式中采用的移位,按位取反等操作是位操作#include<reg包含头文件REGvoiddelay(unsignedchari); 〃延时函数声明voidmain()//主函数{unsignedchari,w;while(1){w=0x01;//信号灯显示字初值为01Hfor(i=0;i<8;i++){P1=~w;//显示字取反后,送P1 口delay(200);//延时w<<=1;//显示字左移一位}}}//函数名:delay//函数功能:实现软件延时//形式参数:unsignedchari;//i 控制空循环的外循环次数,共循环i*255 次//返回值:无voiddelay(unsignedchari)//延时函数,无符号字符型变量i 为形式参数{unsignedcharj,k;〃定义无符号字符型变量j 和kj++);}/******// 功能:for(k=0;k<i;k++) 〃双重for 循环语句实现软件延时for(j=0;j<255;***************************************************************采用位运算符编写的流水灯控制程序,显示效果为挨次熄灭信号灯//此方式也是典型的顺序结构#include<regvoiddelay(unsignedchari); 〃延时函数声明voidmain()//主函数{while(1){P1=OxOO;〃P1 口全部清0,即点亮8 个发光二极管delay(200);//延时P1=P1|0x01;//熄灭第1 个发光二极管delay(200);//延时P1=P1|0x03;//熄灭第1、个发光二极管delay (200);//延时P1=P1|0x07;//熄灭第1〜3 个发光二极管delay(200);//延时P1=P1|0x0f;//熄灭第1〜4 个发光二极管delay(200);//延时P1=P1|0x1f;//熄灭第1〜5 个发光二极管delay(200);//延时P1=P1|0x3f; 〃熄灭第1〜6 个发光二极管delay(200);//延时P1=P1|0x7f; 〃熄灭第1〜7 个发光二极管delay(200);//延时P1=P1|0x7f;//熄灭所有发光二极管delay(200);//延时}}//函数名:delay//函数功能:实现软件延时//形式参数:unsignedchari;//i 控制空循环的外循环次数,共循环i*255 次//返回值:无voiddelay(unsignedchari)//延时函数,无符号字符型变量i 为形式参数{unsignedcharj,k;〃定义无符号字符型变量j 和kfor(k=0;k<i;k++) 〃双重for 循环语句实现软件延时for(j=0;j<255;j++);}/**********************************************************///功能:采用数组实现的流水灯控制程序//此方式也是典型的循环结构#include<reg包含头文件REGvoiddelay(unsignedchari); 〃延时函数声明voidmain()//主函数{unsignedchari;unsignedchardisplay[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};while(1){for(i=0;i<8;i++){P1=display[i]; 〃显示字送P1 口delay(200);//延时}}}//函数名:delay//函数功能:实现软件延时//形式参数:unsignedchari;//i 控制空循环的外循环次数,共循环i*255 次//返回值:无voiddelay(unsignedchari)//延时函数,无符号字符型变量i 为形式参数{unsignedcharj,k;〃定义无符号字符型变量j 和kfor(k=0;k<i;k++) 〃双重for 循环语句实现软件延时for(j=0;j<255;j++);}#include<reg#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharvoiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidmain(){uchara,i,j;while(1){for(j=0;j<2;j++){a=0xfe;for(i=0;i<8;i++){P2=a; delay(200);a=_crol_(a,1);//11110}a=0x7f;for(i=0;i<8;i++){P2=a; delay(200);a=_cror_(a,1);}}P2=0xff;for(j=0;j<10;j++)}}{}delay(300);P2=~P2;。
花样流水灯C语言源程序
//文件名称:flash_led.c文件说明:流水灯C程序编写人员:Jerry Yang编写日期:2006年10月5日程序说明:MCU采用AT89S51,外接12M晶振,P1口输出// #include<reg51.h> //51系列单片机定义文件#define uchar unsigned char //定义无符号字符#define uint unsigned int //定义无符号整数void delay(uint); //声明延时函数void main(void){uint i;uchar temp;while(1){temp=0x01;for(i=0;i<8;i++) //8个流水灯逐个闪动{P1=~temp;delay(100); //调用延时函数temp<<=1;}temp=0x80;for(i=0;i<8;i++) //8个流水灯反向逐个闪动{P1=~temp;delay(100); //调用延时函数temp>>=1;}temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮{P1=temp;delay(100); //调用延时函数temp<<=1;}temp=0x7F;for(i=0;i<8;i++) //8个流水灯依次反向全部点亮{P1=temp;delay(100); //调用延时函数temp>>=1;}}}void delay(uint t) //定义延时函数{register uint bt;for(;t;t--)for(bt=0;bt<255;bt++);。
基于STC89C52的键控花样流水灯
EA = 1;
IT0 = 1;
while(1)
{
if(label == 0)//从左至右流;i++)
{
delayms(100);
if(label == 0)
P1 = _crol_(P1,1);
else break;
}
}
if(label == 1)//从右至左流水灯
if(label == 4)
P1 = (~(0xfe << i));
else break;
}
}
}
}
void INT_0() interrupt 0
{
delayms(10);
if(BUTTON == 1) return;
label++;
if(label == 5)
label = 0;
//以上三句话也可以通过label = (label+1)%5;来代替
{
P1 = 0x7f;
for(i=0;i<8;i++)
{
delayms(100);
if(label == 1)
P1 = _cror_(P1,1);
else break;
}
}
if(label == 2)//对向流水灯
{
a = 0x7f; b = 0xfe;
for(i=0;i<8;i++)
{
P1 = a&b;//&表示按位与
#define uint unsigned int
sbit BUTTON = P3^2;
uchar label = 0;
花样流水灯(汇编)
花样流水灯程序(汇编)汇编起始命令统一为:ORG 0000HLJMP MAINORG 0100H延时程序统一为:DELAY: MOV R7, #10 (延时500ms)DL Y2: MOV R6, #200DL Y1: MOV R5, #125DJNZ R5, $DJNZ R6, DL Y1DJNZ R7, DL Y2RET 注:不可少1.普通流水灯MAIN: MOV A, #0FEHLOOP0: MOV R1,#10HLOOP1: MOV P1,ALCALL DELAYRL ADJNZ R1,LOOP1LCALL DELAY 注:每循环一次延时长一些,以便观察LCALL DELAYSJMP LOOP02.L1亮到L8,L8灭到L1MAIN: MOV A, #0FEH LOOP0:MOV R1, #15LOOP1: MOV P1, ALCALL DELAYRL ADEC R1CJNE R1, #07H,LOOP1RR ALOOP2: RR AMOV P1, ALCALL DELAYDJNZ R1, LOOP2LCALL DELAYLCALL DELAYSJMP LOOP0 MAIN: MOV A, #0FEH LOOP0: MOV R1, #08MOV R2, #08 LOOP1: MOV P1, ALCALL DELAYRL ADEC R1DJNZ R1, LOOP1RR ALOOP2: RR AMOV P1, ALCALL DELAYDJNZ R2, LOOP2LCALL DELAYLCALL DELAYSJMP LOOP03.L1到L8逐个亮灭MAIN: MOV A, #0FEHLOOP0: MOV R1, #0FEHMOV R2, #15LOOP1: MOV P1, ALCALL DELAYRL AANL A, R1DEC R2CJNE R2, #07H,LOOP1 注:以上是让灯从1亮到8MOV R1, #80HLOOP2: ORL A, R1MOV P1, ALCALL DELAYRR ADJNZ R2, LOOP2RL ALCALL DELAYLCALL DELAYSJMP LOOP04.13572468亮MAIN: MOV A,#0FEHLOOP0: MOV R1,#08HLOOP1: MOV P1, ALCALL DELAYRL ARL ADEC R1CJNE R1,#04H ,LOOP1MOV A, #0FDH LOOP2: MOV P1, ALCALL DELAYRL ARL ADJNZ R1, LOOP2RR ASJMP LOOP0 5.逐个闪烁MAIN: MOV A, #0FEH LOOP0: MOV R1,#10H LOOP1: MOV P1,ALCALL DELAYMOV P1, #0FFHLCALL DELAYRL ADJNZ R1,LOOP1LCALL DELAYLCALL DELAYSJMP LOOP06.流水灯四个四个地亮花样IMAIN: MOV A, #0F0H LOOP0: MOV R1, #09H LOOP1: MOV P1, ALCALL DELAYRL A花样IIMAIN: MOV A, #0F0HLOOP0: MOV R1, #040H LOOP1: MOV P1, ALCALL DELAYSWAP ADJNZ R1, LOOP1LCALL DELAYDEC R1CJNE R1,#05H,LOOP1 LOOP2: MOV P1, ALCALL DELAYRR ADJNZ R1,LOOP2RL A LCALL DELAY LCALL DELAY SJMP LOOP0 LCALL DELAY SJMP LOOP07.全亮全灭MAIN:LOOP0: MOV R1, #04H LOOP1: MOV P1, #00HLCALL DELAYMOV P1, #0FFHLCALL DELAYDJNZ R1, LOOP1LCALL DELAYLCALL DELAYSJMP LOOP08.两个两个地亮MAIN: MOV A, #0FCH LOOP0: MOV R1, #08H LOOP1: MOV P1, ALCALL DELAYRL ARL ADEC R1CJNE R1,#04H,LOOP1RR ARR ALOOP2: MOV P1, ALCALL DELAYRR ARR ADJNZ R1, LOOP2RL ARL ALCALL DELAYLCALL DELAYSJMP LOOP0 9.穿越MAIN: MOV R2,#0FEHMOV R3, #7FH LOOP0: MOV R1,#016 LOOP1: MOV A,R2ANL A,R3MOV P1, ALCALL DELAYMOV A,R2RL AMOV R2, AMOV A,R3RR AMOV R3, ADJNZ R1,LOOP1LCALL DELAYSJMP LOOP0 LCALL DELAY。
心形流水灯叠加代码一个到8个叠加。
心形流水灯叠加代码一个到8个叠加。
#include#define uint unsigned int#define uchar unsigned char#includeuchar c1[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//高位往低位移动加uchar c2[7]={0x7e,0xbe,0xde,0xee,0xf6,0xfa,0xfc};uchar c3[6]={0x7c,0xbc,0xdc,0xec,0xf4,0xf8};uchar c4[5]={0x78,0xb8,0xd8,0xe8,0xf0};uchar c5[4]={0x70,0xb0,0xd0,0xe0};uchar c6[3]={0x60,0xa0,0xc0};uchar c7[2]={0x40,0x80};uchar b3[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};// 低位向高位移动0--7 // uchar b4[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};/// 高位向低位移动7--0 // uchar a1[7]={0x7e,0x7d,0x7b,0x77,0x6f,0x5f,0x3f}; //一个点到两个点uchar a2[6]={0x3e,0x3d,0x3b,0x37,0x2f,0x1f}; // 两个到三个uchar a3[5]={0x1e,0x1d,0x1b,0x17,0x0f}; // 三个到四个uchar a4[4]={0x0e,0x0d,0x0b,0x07};//4个到5个uchar a5[3]={0x06,0x05,0x03};//5个到6个uchar a6[2]={0x02,0x01};//6到7//////////////////////////////////////////void delay(int t){ int i;while(t--){ for( i=114; i>0;i--);}}//////////////////////////// void m() ///跑3段{ int i,s;s=30;for(i=0;i<8;i++){ P3=b3[i];delay(s);}P3=0xff;for(i=0;i<8;i++){P2=b3[i];delay(s);}P2=0xff;for(i=0;i<8;i++){P0=b4[i];delay(s);}P0=0xff; delay(s);}/////////////////////////// void m1() //跑两段{int i,s;s=50;for(i=0;i<8;i++){ P3=b3[i];delay(s);}P3=0xff;for(i=0;i<8;i++){P2=b3[i];delay(s);}P2=0xff; delay(s);}void m2() //跑一段{int i,s;s=50;for(i=0;i<8;i++){ P3=b3[i];delay(s);}P3=0xff;delay(s);}////////////////////////////////////////////////////延时函数void main (){ int i,s; s=50;// P1=P0=P2=P3=0XFF;for(i=0;i<8;i++){ P3=b3[i];delay(s);}P3=0xff;for(i=0;i<8;i++)P2=b3[i];delay(s);}P2=0xff;for(i=0;i<8;i++){P0=b4[i];delay(s);}P0=0xff;for(i=0;i<8;i++){P1=b3[i];delay(s);}//while(1);/////////一个点完成m();for(i=0;i<7;i++){P1=a1[i];delay(s);}////第一段第二个点完成for(i=0;i<8;i++){ P3=b3[i];delay(s);}P3=0xff;for(i=0;i<8;i++)P2=b3[i];delay(s);}P2=0xff;for(i=0;i<8;i++)P0=b4[i];delay(s);}P0=0xff;for(i=0;i<6;i++){P1=a2[i];delay(s);} //第一段第三点完成///////////////////////////////// m();for(i=0;i<5;i++){P1=a3[i];delay(s);} ////////第一段第4点亮m();for(i=0;i<4;i++){P1=a4[i];delay(s);}//////////////第一段第五个灯亮m();for(i=0;i<3;i++){P1=a5[i];delay(s);//////////////第一段第6个亮m();for(i=0;i<2;i++){P1=a6[i];delay(s);} /////第一段第7个亮m();P1=0x00;delay(s);/////第一段第8个亮//////////////////////////////第一段全部亮转下一段for(i=0;i<8;i++){P0=c1[i];delay(s);} ///////////////第2段第一点亮m1();for(i=0;i<7;i++){P0=c2[i];delay(s);}m1();for(i=0;i<6;i++){P0=c3[i];delay(s);}m1();for(i=0;i<5;i++){P0=c4[i];delay(s);}m1();for(i=0;i<4;i++){P0=c5[i];delay(s);}m1();for(i=0;i<3;i++){P0=c6[i];delay(s);}m1();for(i=0;i<2;i++){P0=c7[i];delay(s);}m1();P0=0x00; delay(s);////////////////////////////////第二段全亮/////////////////////////////第2段全亮m2(); for(i=0;i<8;i++){P2=b3[i];delay(s);}m2();for(i=0;i<7;i++){P2=a1[i];delay(s);}m2();for(i=0;i<6;i++){P2=a2[i];delay(s);}m2();for(i=0;i<5;i++){P2=a3[i];delay(s);}m2();for(i=0;i<4;i++){P2=a4[i];delay(s);}m2();for(i=0;i<3;i++){P2=a5[i];delay(s);}m2();for(i=0;i<2;i++){P2=a6[i];delay(s);}m2();P2=0x00; delay(s);//////////////////////第3段全亮for(i=0;i<8;i++){P3=b3[i];delay(s); }for(i=0;i<7;i++) {P3=a1[i];delay(s); } for(i=0;i<6;i++) { P3=a2[i];delay(s); } for(i=0;i<5;i++) { P3=a3[i];delay(s); } for(i=0;i<4;i++) { P3=a4[i];delay(s); } for(i=0;i<3;i++) { P3=a5[i];delay(s); } for(i=0;i<2;i++) { P3=a6[i];delay(s); } P3=0x00; delay(s); }。
单片机流水灯C语言源代码
uchar a,i,j,k,l,l1,k1,j1,i1;
a=0xfe;
P0=a;
delay(z);
for(i=0;i<7;i++)
{
a=a<<1;
P0=a;
delay(z);
}
for(j=0;j<8;j++)//单个灯依次点亮所有灯,从下往上
{
P2=table2[j];
delay(z);
}
a=0xfe;
void delay(uchar);
void lsd1();
void lsd2();
void lsd3();
void lsd4();
void lsd5();
void lsd6();
void lsd7();
void lsd8();
void lsd9();
void lsd10();
void lsd11();
0xe7,0xdb,0xbd,0x7e,
0xbd,0xdb,0xe7,0xff};
uchar code table5[]={
0xe7,0xc3,0x81,0x00,
0x81,0xc3,0xe7,0xff};
uchar code table6[]={
0x7e,0x3c,0x18,0x00,
0x18,0x3c,0x7e,0xff};
a=0xfe;
P0=a;
delay(z);
a=a<<1;
P0=a;
delay(z);
for(i=0;i<6;i++)
{
a=_crol_(a,1);
P0=a;
delay(z);}P0=07f;P2=0xfe;
花样流水灯程序
}
{
time=0;
miao++;
miao=miao%10;//0-9
display();//数码管显示函数
}
}
void int_T0()//定时器T0初始化
{
EA=1;//打开总中断
ET0=1;//允许T1中断
TMOD=TMOD&0Xf0|0X01;//配置模式为定时模式(C/T=0),16位自动重装
TH0=(65536-500)/256;//50ms
TL0=(65536-500)%256;//从15536开始计数,到65536溢出,一共计50000个脉冲
TR0=1;//允许计数
}
void fuwu_int_T0(void) interrupt 1//定时器0的优先级比定时器1的优先级高
{//它先要执行完定时器0的服务程序,才能再去执行定时器1的服务程序
{
P0=a;
a=a>>1;
a=a|0x01;
delay_ms((num*100)+1);
}
for(i=0;i<2;i++)//8个led闪烁两次
{
P0=0Xff;//led全部消灭
delay_ms((num*100)+1);
P0=0x00;//led灯全部点亮
delay_ms((num*100)+1);
{
if(pwm1==1)
{
pwm1=1;
flag=0;
}
pwm1--;
}
}
if(num1>64)
{
num1=0;
}
if(num1<=pwm1)
51单片机流水灯C语言源代码
#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char uchar z=50,e=0x00,f=0xff; uchar code table1[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};uchar code table2[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; uchar code table3[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};uchar code table4[]={0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff}; uchar code table5[]={0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff};uchar code table6[]={0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0xff}; void delay(uchar); void lsd1();void lsd2();void lsd3();void lsd4();void lsd5();void lsd6();void lsd7();void lsd8();void lsd9();void lsd10();void lsd11();void lsd12();main(){while(1){lsd1();lsd2();lsd3();lsd4();lsd5();lsd6();lsd7();lsd8();lsd9();lsd10();lsd11();lsd12();}}void delay(uchar x) //延时函数{uint i,j;for(i=x;i>0;i--)for(j=250;j>0;j--);}void lsd1() //lsd1 单个流水灯双程模式1 {uchar a,i,j,k,l,l1,k1,j1,i1;a=0xfe;P0=a;delay(z);for(i=0;i<7;i++) //仅单个灯亮从上往下流{a=_crol_(a,1);P0=a;delay(z);}P0=0xff;a=0xfe;P2=a;delay(z);for(j=0;j<7;j++){a=_crol_(a,1);P2=a;delay(z);}P2=0xff;a=0xfe;P3=a;delay(z);for(k=0;k<7;k++){a=_crol_(a,1);P3=a;delay(z);}P3=0xff;a=0xfe;P1=a;delay(z);for(l=0;l<7;l++){a=_crol_(a,1);P1=a;delay(z);}a=0xbf;P1=a;delay(z);for(l1=0;l1<6;l1++) //l1==6 仅单个灯亮从下往上流{a=_cror_(a,1);P1=a;delay(z);}P1=0xff;a=0x7f;P3=a;delay(z);for(k1=0;k1<7;k1++) {a=_cror_(a,1);P3=a;delay(z);}P3=0xff;a=0x7f;P2=a;delay(z);for(j1=0;j1<7;j1++) {a=_cror_(a,1);P2=a;delay(z);}P2=0xff;a=0x7f;P0=a;delay(z);for(i1=0;i1<7;i1++){a=_cror_(a,1);P0=a;delay(z);}P0=0xff;}void lsd2() //lsd2 两个灯流水双程模式1 {uchar a,i,j,k,l,l1,k1,j1,i1;a=0xfe;P0=a;delay(z);a=a<<1;P0=a;delay(z);for(i=0;i<6;i++){a=_crol_(a,1);P0=a;delay(z);}P0=0x7f;P2=0xfe;delay(z);P0=0xff;a=0xfc;P2=a;delay(z);for(j=0;j<6;j++) {a=_crol_(a,1);P2=a;delay(z);}P2=0x7f;P3=0xfe;delay(z);P2=0xff;a=0xfc;delay(z);for(k=0;k<6;k++) {a=_crol_(a,1);P3=a;delay(z);}P3=0x7f;P1=0xfe;delay(z);P3=0xff;a=0xfc;P1=a;delay(z);for(l=0;l<6;l++) {a=_crol_(a,1);P1=a;delay(z);}P1=0x7f;P1=0xff;delay(z);a=0x7f;P1=a;delay(z);a=a>>1;P1=a;delay(z);for(l1=0;l1<6;l1++) {a=_cror_(a,1);P1=a;delay(z);}P1=0xfe;P3=0x7f;delay(z);P1=0xff;a=0x3f;P3=a;delay(z);for(k1=0;k1<6;k1++) {a=_cror_(a,1);P3=a;delay(z);}P3=0xfe;P2=0x7f;delay(z);P3=0xff;a=0x3f;P2=a;delay(z);for(j1=0;j1<6;j1++) {a=_cror_(a,1);P2=a;delay(z);}P2=0xfe;P0=0x7f;delay(z);a=0x3f;P0=a;delay(z);for(i1=0;i1<6;i1++){a=_cror_(a,1);P0=a;delay(z);}P0=0xfe;delay(z);P0=0xff;delay(z);}void lsd3() //lsd3 两个灯流水双程模式2 {uchar a,i,j,k,l,l1,k1,j1,i1;a=0xfe;P0=a;delay(z);a=a<<1;delay(z);for(i=0;i<6;i++) //_crol_与_cror_混合使用{a=_crol_(a,1);P0=a;delay(z);}P0=0x7f;a=0x7f;P2=a;delay(z);P0=f;a=a>>1;P2=a;delay(z);for(j=0;j<6;j++){a=_cror_(a,1);P2=a;delay(z);}a=0xfe;P3=a;delay(z);P2=f;a=a<<1;P3=a;delay(z);for(k=0;k<6;k++) {a=_crol_(a,1);P3=a;delay(z);}P3=0x7f;a=0x7f;P1=a;delay(z);P3=f;a=a>>1;P1=a;delay(z);for(l=0;l<6;l++){a=_cror_(a,1);P1=a;delay(z);}P1=0xfe;delay(z);P1=f;delay(z);a=0xfe;P1=a;delay(z);a=a<<1;P1=a;delay(z);for(l1=0;l1<6;l1++) //l1==6 {a=_crol_(a,1);P1=a;delay(z);}P1=0x7f;a=0x7f;P3=a;delay(z);P1=f;a=a>>1;P3=a;for(k1=0;k1<6;k1++) {a=_cror_(a,1);P3=a;delay(z);}P3=0xfe;a=0xfe;P2=a;delay(z);P3=f;a=a<<1;P2=a;delay(z);for(j1=0;j1<6;j1++){a=_crol_(a,1);P2=a;delay(z);}P2=0x7f;a=0x7f;P0=a;delay(z);P2=f;a=a>>1;P0=a;delay(z);for(i1=0;i1<6;i1++) {a=_cror_(a,1);P0=a;delay(z);}P0=0xfe;delay(z);P0=f;delay(z);}void lsd4() //lsd4{uchar a,i,j,k,l,l1,k1,j1,i1;a=0xfe;P0=a;delay(z);for(i=0;i<7;i++){a=a<<1; //单个灯依次点亮所有灯,从上往下P0=a;delay(z);}a=0xfe;P2=a;delay(z);for(j=0;j<7;j++){a=a<<1;P2=a;delay(z);}a=0xfe;P3=a;delay(z);for(k=0;k<7;k++){a=a<<1;P3=a;delay(z);}a=0xfe;P1=a;delay(z);for(l=0;l<7;l++){a=a<<1;P1=a;delay(z);}for(l1=0;l1<8;l1++) //l1==8{P1=table1[l1]; //单个灯依次熄灭所有灯,从下往上delay(z);}for(k1=0;k1<8;k1++){P3=table1[k1];delay(z);}for(j1=0;j1<8;j1++){P2=table1[j1];delay(z);}for(i1=0;i1<8;i1++){P0=table1[i1];delay(z);}}void lsd5() //lsd5 {uchar a,i,j,k,l,l1,k1,j1,i1;a=0xfe;P0=a;delay(z);for(i=0;i<7;i++){a=a<<1;P0=a;delay(z);}for(j=0;j<8;j++) //单个灯依次点亮所有灯,从下往上{P2=table2[j];delay(z);}a=0xfe;P3=a;delay(z);for(k=0;k<7;k++){a=a<<1;P3=a;delay(z);}for(l=0;l<8;l++){P1=table2[l];delay(z);}for(l1=0;l1<8;l1++) //单个灯依次熄灭所有灯,从上往下{P1=table3[l1];delay(z);}for(k1=0;k1<8;k1++){P3=table1[k1];delay(z);}for(j1=0;j1<8;j1++) //单个灯依次熄灭所有灯,从上往下{P2=table3[j1];delay(z);}for(i1=0;i1<8;i1++){P0=table1[i1];delay(z);}}void lsd6() //每组为单位同亮同灭从左向右再向左{P0=0x00;delay(z);P0=0xff;P2=0x00;delay(z);P2=0xff;P3=0x00;delay(z);P3=0xff;P1=0x00;delay(z);P3=0x00;P1=0xff;delay(z);P2=0x00;P3=0xff;delay(z);P0=0x00;P2=0xff;delay(z);P0=0xff;delay(z);}void lsd7() //lsd7 全亮全灭{uchar i;for(i=0;i<2;i++){P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(z);P0=0xff;P1=0xff;.P2=0xff;P3=0xff;delay(z);}}void lsd8() //每组仅两个灯,从中间往两边再往中间{uchar i;for(i=0;i<8;i++){P0=table4[i];P1=table4[i];P2=table4[i];P3=table4[i];delay(z);}}void lsd9() //每组两个灯引亮所有灯再引灭,从中间带两边再到中间{uchar i;for(i=0;i<8;i++){P0=table5[i];P1=table5[i];P2=table5[i];P3=table5[i];delay(z);}}void lsd10(){uchar a,i,j;a=0xfe;P0=a;P1=a;P2=a;P3=a;delay(z);for(i=0;i<7;i++) //仅单个灯亮从上往下流{a=_crol_(a,1);P0=a;P1=a;P2=a;P3=a;delay(z);}for(j=0;j<7;j++) //仅单个灯亮从上往下流{a=_cror_(a,1);P0=a;P1=a;P2=a;P3=a;delay(z);}P0=f;P1=f;P2=f;P3=f;delay(z);}void lsd11(){uchar a,i,j;a=0xfe;P0=a;P1=a;P2=a;P3=a;delay(z);for(i=0;i<7;i++) {a=a<<1;P0=a;P1=a;P2=a;P3=a;delay(z);}for(j=0;j<8;j++) {P0=table1[j];P1=table1[j];P2=table1[j];P3=table1[j];delay(z);}}void lsd12(){uchar a,i,j,k,l;a=0xfe;P0=a;P1=a;delay(z);for(i=0;i<7;i++){a=a<<1;P0=a;P1=a;delay(z);}a=0x7f;P2=a;P3=a;delay(z);for(j=0;j<7;j++){a=a>>1;P2=a;P3=a;delay(z);}for(k=0;k<8;k++){P2=table3[k];P3=table3[k];delay(z);}for(l=0;l<8;l++){P0=table1[l];P1=table1[l];delay(z);}while(1);}。
单片机流水灯c语言实现
//------------------------------------------------
#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++)
基于C51单片机4按键4花样流水灯4种LCD显示的设计
按下K1,LCD显示一种内容同时显示一种花样流水灯,按下K2, K3,K4也有不同的花样和内容。 代码如下: /**************************************************/ #include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define out P0 #define LED P3 uchar i,flag1,flag2,flag3,flag4; /*****定义端口******/ sbit rs=P2^0; sbit rw=P2^1; sbit e=P2^2; sbit k1=P2^4; sbit k2=P2^5; sbit k3=P2^6; sbit k4=P2^7; //////////子函数/////////////// void check_busy(void); void write_command(uchar com); void write_data(uchar dat); void LCD_initial(void); void string(uchar ad ,uchar *s); void lcd_test(void); void delay(uint); /************************流水灯花样设计********************/ uchar table1[]= {0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};/** 从右到左点亮再灭之**/ uchar table2[]={0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff};/****两头分开 点亮再靠拢熄灭****/ uchar table3[]= {0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x9f,0xcf,0xe7,0xf3,0xf9};/****两灯 左右循环****/ uchar table4[]=
花样LED流水灯
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++)
/***********************************************************/
void delay(uint t); //延时
void zg(uint t,uchar a);//两边逐个亮
void qs(uint t,uchar a);//全部闪烁
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);
}
}
}
/*
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];
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);}。
单片机流水灯汇编语言源代码大全(六款流水灯汇编语言源代码)
ORG 0
MOV R1,#3
LOOP1:MOV R0,#8
MOV A,#11111110B
LOOP2:MOV P0,A
RL A
CALL D200MS
DJNZ R0,LOOP2
DJNZ R1,LOOP1
MOV A,#00000000B
MOV P0,A
MOV P2,#0FFH
LOOP:MOV A,P2
ORG 0000H
JMP main
ORG 0003H
JMP int_0
main:
SETB IT0
SETB EX0
SETB EA
MOV A,#11111110B
s:RL A
MOV P2,A
CALL delay
JMP s
delay:
MOV R7,#100
d3:MOV R6,#200
d2:MOV R5,#250
ORG 0000H
MOV R0,#11111110B
start:MOV A,#11111110B
MOV P2,A
s:CALL delay
RL A
MOV P2,A
CALL delay
CJNE A,#01111111B,s
MOV A,R0
MOV P1,A
RL A
MOV R0,A
JMP start
delay:MOV R5,#100
CPL A
MOV P0,A
JMP LOOP
D200MS:
MOV R7,#250
D1:MOV R6,#200
D2:MOV R5,#2
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1