51单片机流水灯程序_51单片机流水灯程序

51单片机流水灯程序_51单片机流水灯程序32路51单片机流水灯程序给喜欢折腾DIY的朋友,来一点小玩意,原理图就不上了既然要玩单片机,我想原理图都有所了解,具备的材料,面包板,编程器。电脑是必须具备的哈,没有这些玩单片机就是一个童话,好了废话不说直接上货

32路51单片机流水灯程序   给喜欢折腾DIY的朋友,来一点小玩意,原理图就不上了既然要玩单片机,我想原理图都有所了解,具备的材料,面包板,编程器。电脑是必须具备的哈,没有这些玩单片机就是一个童话,好了废话不说直接上货   #include<reg52.h>   #include <intrins.h>   #define uint unsigned int   #define uchar unsigned char   uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐个点亮 0~7   uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐个点亮 7~0   uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐个灭 0~7   uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐个灭 7~0   /*/   void delay(uint t); //延时   void zg(uint t,uchar a);//两边逐个亮   void qs(uint t,uchar a);//全部闪烁   void zgxh(uint t,uchar a); // 逆时针逐个点亮   //void zgxh1(uint t,uchar a); // 顺时针逐个点亮   void djs(uint t,uchar a); //对角闪   void lbzgm(uint t,uchar a);//两边逐个灭   //void sszgm(uint t,uchar a); // 顺时针逐个灭   void nszgm(uint t,uchar a); // 逆时针逐个灭   void sztl(uint t,uchar a);//顺时逐个同步亮   void nztl(uint t,uchar a);//逆时逐个同步亮   void sztm(uint t,uchar a);//顺时逐个同步灭   void nztm(uint t,uchar a);//逆时逐个同步灭   void hwzjl(uint t,uchar a); //横往中间亮   void hwzjm(uint t,uchar a); //横往中间灭   //void swzjl(uint t,uchar a); //竖往中间亮   //void swzjm(uint t,uchar a); //竖往中间灭   void nzdl(uint t,uchar a); //逆时逐段亮   void nzdgl(uint t,uchar a); //逆时逐段一个点亮   void jgs(uint t,uchar a); //间隔闪   //   void zg(uint t,uchar a)//两边逐个亮   {   uchar i,j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   P0=0x7f;delay(t);   for(i=0;i<7;i++)   {   P0=table1[i+1];   P2=table1[i];   delay(t);   }   P2=0x00;P1=0xfe;   delay(t);   for(i=0;i<7;i++)   {   P1=table[i+1];   P3=table1[i];   delay(t);   }   P3=0x00;delay(t);   }   }   void qs(uint t,uchar a) //全部闪烁   {   uchar j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   delay(t);   P0=P1=P2=P3=0x00;   delay(t);   }   }   void zgxh(uint t,uchar a) // 逆时针逐个点亮   {   uchar i,j;   for (j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   for (i=0;i<8;i++)   {   P0=table1[i];   delay(t);   }   for(i=0;i<8;i++)   {   P1=table[i];   delay(t);   }   for(i=0;i<8;i++)   {   P3=table[i];   delay(t);   }   for(i=0;i<8;i++)   {   P2=table[i];   delay(t);   }   }   }   void nszgm(uint t,uchar a) // 逆时针逐个灭   {   uchar i,j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0x00;   for (i=0;i<8;i++)   {   P0=table3[i];delay(t);   }   for (i=0;i<8;i++)   {   P1=table2[i];delay(t);   }   for (i=0;i<8;i++)   {   P3=table2[i];delay(t);   }   for (i=0;i<8;i++)   {   P2=table2[i];delay(t);   }   }   }   /*   void zgxh1(uint t,uchar a) // 顺时针逐个点亮   {   uchar i,j;   for (j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   for (i=0;i<8;i++)   {   P2=table1[i];   delay(t);   }   for(i=0;i<8;i++)   {   P3=table1[i];   delay(t);   }   for(i=0;i<8;i++)   {   P1=table1[i];   delay(t);   }   for(i=0;i<8;i++)   {   P0=table[i];   delay(t);   }   }   }   */   /*   void sszgm(uint t,uchar a) // 顺时针逐个灭   {   uchar i,j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0x00;   for (i=0;i<8;i++)   {   P2=table3[i];delay(t);   }   for (i=0;i<8;i++)   {   P3=table3[i];delay(t);   }   for (i=0;i<8;i++)   {   P1=table3[i];delay(t);   }   for (i=0;i<8;i++)   {   P0=table2[i];delay(t);   }   }   }   */   void djs(uint t,uchar a) //对角闪   {   uchar j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   P0=P3=0x00;   delay(t);   P0=P1=P2=P3=0xff;   P1=P2=0x00;   delay(t);   }   }   void lbzgm(uint t,uchar a)//两边逐个灭   {   uchar i,j;   for (j=0;j<a;j++)   {   P0=P2=0x00;   P3=0x01;delay(t);   for(i=7;i>1;i–)   {   P1=table[i-1];P3=table1[i-2];   delay(t);   }   P1=0xfe;P3=0xff;delay(t);   P1=0xff;P2=0x01;delay(t);   for(i=7;i>1;i–)   {   P0=table1[i-1];   P2=table1[i-2];   delay(t);   }   P0=0x7f;P2=0xff;delay(t);   P0=0xff;delay(t);   }   }   void sztl(uint t,uchar a)//顺时逐个同步亮   {   uchar i,j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   for(i=0;i<8;i++)   {   P0=table[i];   P1=P2=P3=table1[i];   delay(t);   }   }   }   void nztl(uint t,uchar a)//逆时逐个同步亮   {   uchar i,j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   for(i=0;i<8;i++)   {   P0=table1[i];   P1=P2=P3=table[i];   delay(t);   }   }   }   void sztm(uint t,uchar a)//顺时逐个同步灭   {   uchar i,j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0x00;   for(i=0;i<8;i++)   {   P0=table2[i];   P1=P2=P3=table3[i];   delay(t);   }   }   }   void nztm(uint t,uchar a)//逆时逐个同步灭   {   uchar i,j;   for(j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   for(i=0;i<8;i++)   {   P0=table3[i];   P1=P2=P3=table2[i];   delay(t);   }   }   }   void hwzjl(uint t,uchar a) //横往中间亮   {   uchar i,j;   for (j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   for(i=0;i<8;i++)   {   P0=P2=P1=table1[i];   P3=table[i];delay(t);   }   }   }   void hwzjm(uint t,uchar a) //横往中间灭   {   uchar i,j;   for (j=0;j<a;j++)   {   P0=P1=P2=P3=0x00;   for(i=0;i<8;i++)   {   P0=P2=P1=table3[i];   P3=table2[i];delay(t);   }   }   }   /*   void swzjl(uint t,uchar a) //竖往中间亮   {   uchar i,j;   for (j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   for(i=0;i<8;i++)   {   P0=P2=P1=table[i];   P3=table1[i];delay(t);   }   }   }   void swzjm(uint t,uchar a) //竖往中间灭   {   uchar i,j;   for (j=0;j<a;j++)   {   P0=P1=P2=P3=0x00;   for(i=0;i<8;i++)   {   P0=P2=P1=table2[i];   P3=table3[i];delay(t);   }   }   }   */   void nzdl(uint t,uchar a) //逆时逐段亮   {   uchar i,j;   for (j=0;j<a;j++)   {   P0=P1=P2=P3=0xff;   for(i=0;i<8;i++)   {   P0=table1[i];   delay(t);   }   P0=0xff;   for(i=0;i<8;i++)   {   P1=table[i];   delay(t);   }   P1=0xff;   for(i=0;i<8;i++)   {   P3=table[i];   delay(t);   }   P3=0xff;   for(i=0;i<8;i++)   {   P2=table[i];   delay(t);   }   P2=0xff;   }   }   void nzdgl(uint t,uchar a) //逆时逐段一个点亮   {   uchar i,j,k,l;   for (j=0;j<a;j++)   {   k=table1[0];   P0=k;l=table[0];   P1=P2=P3=l;delay(t);   for(i=0;i<8;i++)   {   k=_crol_(k,-1);   P0=k;   l=_crol_(l,1);   P1=P2=P3=l;   delay(t);   }   }   }   void jgs(uint t,uchar a) //间隔闪   {   uchar j;   for (j=0;j<a;j++)   {   P0=0x55;P1=P2=P3=0xaa;   delay(t);   P0=0xaa;P1=P2=P3=0x55;   delay(t);   }   }   void main()   {   uchar i;   while(1)   {   zg(100,1); //两边逐个亮   lbzgm(100,1); //两边逐个灭   jgs(300,10);   djs(100,20); //对角闪   ////////////////////////////////////////////   P1=P2=P3=0xff;   for(i=0;i<3;i++)   {   P0=0x00;delay(800);   P0=0xff;delay(800);   }   P0=0x00;   for(i=0;i<3;i++)   {   P1=0x00;delay(800);   P1=0xff;delay(800);   }   P1=0x00;   for(i=0;i<3;i++)   {   P3=0x00;delay(800);   P3=0xff;delay(800);   }   P3=0x00;   for(i=0;i<3;i++)   {   P2=0x00;delay(800);   P2=0xff;delay(800);   }   qs(500,3);   /////////////////////////////////////////////   for(i=0;i<6;i++)   {   zgxh(50,1);   nszgm(50,1);   }   djs(100,20); //对角闪   for(i=0;i<3;i++)   {   zg(100,1); //两边逐个亮   lbzgm(100,1); //两边逐个灭   }   qs(200,10);djs(100,50);   for(i=0;i<5;i++)   {   sztl(200,1); //顺时逐个同步亮   nztm(200,1);   nztl(200,1);   sztm(200,1); //顺时逐个同步灭   }   djs(300,10); //对角闪   nzdgl(300,10); //逆时逐段一个点亮   jgs(300,10); //间隔闪   for(i=0;i<3;i++)   {   zgxh(100,1);   nszgm(100,1);   }   /*   for(i=0;i<5;i++)   {   zgxh1(100,1);   sszgm(100,1);   }   */   nzdl(200,3); //逆时逐段亮   jgs(50,100); //间隔闪   /*/////////////////////////////////////////////////////   P0=P1=P2=P3=0xff;   for (i=0;i<8;i++)   {   P0=table1[i];   delay(200);   }   for (i=0;i<8;i++)   {   P1=table[i];   delay(200);   }   for(i=0;i<3;i++)   {   P0=P1=0x00;delay(200);   P0=P1=0xff;delay(200);   }   for (i=0;i<8;i++)   {   P2=table1[i];   delay(200);   }   for (i=0;i<8;i++)   {   P3=table1[i];   delay(200);   }   for(i=0;i<3;i++)   {   P2=P3=0x00;delay(200);   P2=P3=0xff;delay(200);   }   *///////////////////////////////////////////////////   nzdgl(50,40); //逆时逐段一个点亮   for(i=0;i<4;i++)   {   zg(100,1);qs(100,10);   lbzgm(100,1);   }   // djs(50,100); //对角闪   for(i=0;i<3;i++)   {   zgxh(100,1);   nszgm(100,1);   }   djs(1000,10);   for(i=0;i<10;i++)   {   hwzjl(200,1); //横往中间亮   hwzjm(200,1); //横往中间灭   }   djs(300,10); //对角闪   /* for(i=0;i<10;i++)   {   swzjl(200,1); //竖往中间亮   swzjm(200,1); //竖往中间灭   }   */   for(i=0;i<5;i++)   {   zgxh(100,1);   nszgm(100,1);   }   djs(100,20); //对角闪   zg(300,1);   lbzgm(300,1);   /*   for(i=0;i<5;i++)   {   zgxh1(100,1);   sszgm(100,1);   }   */   for(i=0;i<5;i++)   {   sztl(200,1); //顺时逐个同步亮   nztm(200,1);   nztl(200,1);   sztm(200,1); //顺时逐个同步灭   }   djs(500,20); //对角闪   djs(100,30); //对角闪   djs(50,50); //对角闪   // djs(10,100); //对角闪   delay(1000);   }   }   void delay(uint t)   {   uint x,y;   for (x=t;x>0;x–)   {   for (y=120;y>0;y–);   }   }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/37623.html

(0)
上一篇 2024年 9月 8日
下一篇 2024年 9月 8日

相关推荐

关注微信