32LED单片机心形花样流水灯

发布者:备战最新更新时间:2015-07-08 来源: 51hei关键字:32LED  单片机  心形花样流水灯 手机看文章 扫描二维码
随时随地手机看文章
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar code zou[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//单个从0到7
uchar code you[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//单个从7到0
uchar code liang0_7[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐个点亮0~7
uchar code liang7_0[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐个点亮7~0
uchar code mie0_7[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐个灭0~7
uchar code mie7_0[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐个灭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
  {
     P0=P1=P2=P3=0x00;
    P0=0x01;
    delay(t);
    for(i=0;i<7;i++)
    {
    P0=liang0_7[i+1];
    P3=liang7_0[i];
    delay(t); 
    }
    P3=0xff;P1=0x01;
    delay(t);
    for(i=0;i<7;i++)
    {
     P1=liang0_7[i+1];
   P2=liang7_0[i];
   delay(t);
    }
    P2=0xff;delay(t);
   }
}
 
void qs(uint t,uchar a)  //全部闪烁
{
 uchar j;
 for(j=0;j
 {
    P0=P1=P2=P3=0x00;
    delay(t);
    P0=P1=P2=P3=0xff;
    delay(t);
  }   
}
 
 
void zgxh(uint t,uchar a)  // 逆时针逐个点亮
{
 uchar i,j;
 for (j=0;j
 {
  P0=P1=P2=P3=0xff;
  for (i=0;i<8;i++)
  {
   P3=liang7_0[i];
   delay(t);
  }
  for(i=0;i<8;i++)
  {
   P2=liang7_0[i];
   delay(t);
  }
  for(i=0;i<8;i++)
  {
   P1=liang7_0[i];
   delay(t);
  }
  for(i=0;i<8;i++)
  {
   P0=liang7_0[i];
   delay(t);
  }
 }
}
void nszgm(uint t,uchar a) // 逆时针逐个灭
{
 uchar i,j;
 for(j=0;j
 {
  P0=P1=P2=P3=0xff;
  for (i=0;i<8;i++)
  {
   P3=mie7_0[i];delay(t); 
  }
  for (i=0;i<8;i++)
  {
   P2=mie7_0[i];delay(t); 
  }
  for (i=0;i<8;i++)
  {
   P1=mie7_0[i];delay(t); 
  }
  for (i=0;i<8;i++)
  {
   P0=mie7_0[i];delay(t); 
  }
 }
 
}
 
 
void djs(uint t,uchar a)  //对角闪
{
 uchar j;
 for(j=0;j
 {
  P0=P1=P2=P3=0x00;
  P0=P3=0xff;
  delay(t);
  P0=P1=P2=P3=0x00;
  P1=P2=0xff;
  delay(t);
 }
 
}
 
void lbzgm(uint t,uchar a)//两边逐个灭
{
   uchar i,j;
   for (j=0;j
   {
    P0=P1=P2=P3=0x00;
  P3=0x7f;delay(t);
  for(i=0;i<7;i++)
  {
   P3=mie7_0[i+1];
   P0=mie0_7[i];
   delay(t);
  }
  P0=0x00;
  P2=0x7f;delay(t);
  for(i=0;i<7;i++)
  {
   P2=mie7_0[i+1];
   P1=mie0_7[i];
   delay(t);
  }
  P1=0x00;delay(t);
   }
}
void sztl(uint t,uchar a)//顺时逐个同步亮
{
 uchar i,j;
 for(j=0;j
 {
  P0=P1=P2=P3=0x00;
  for(i=0;i<8;i++)
  {
   P0=liang0_7[i];
   P1=P2=P3=liang0_7[i];
   delay(t);
  }
 }
}
void nztl(uint t,uchar a)//逆时逐个同步亮
{
 uchar i,j;
 for(j=0;j
 {
  P0=P1=P2=P3=0x00;
  for(i=0;i<8;i++)
  {
   P0=liang7_0[i];
   P1=P2=P3=liang7_0[i];
   delay(t);
  }
 }
}
void sztm(uint t,uchar a)//顺时逐个同步灭
{
 uchar i,j;
 for(j=0;j
 {
  P0=P1=P2=P3=0xff;
  for(i=0;i<8;i++)
  {
   P0=mie0_7[i];
   P1=P2=P3=mie0_7[i];
   delay(t);
  }
 }
}
[page]
void nztm(uint t,uchar a)//逆时逐个同步灭
{
 uchar i,j;
 for(j=0;j
 {
  P0=P1=P2=P3=0xff;
  for(i=0;i<8;i++)
  {
   P0=mie7_0[i];
   P1=P2=P3=mie7_0[i];
   delay(t);
  }
 }
}
void hwzjl(uint t,uchar a) //横往中间亮
{
 uchar i,j;
 for (j=0;j
 {
  P0=P1=P2=P3=0x00;
  for(i=0;i<8;i++)
  {
   P0=P2=liang0_7[i];
   P1=P3=liang7_0[i];delay(t); 
  }
 }
}
void hwzjm(uint t,uchar a) //横往中间灭
{
 uchar i,j;
 for (j=0;j
 {
  P0=P1=P2=P3=0xff;
  for(i=0;i<8;i++)
  {
   P0=P2=mie0_7[i];
   P1=P3=mie7_0[i];delay(t); 
  }
 }
}
 
void nzdl(uint t,uchar a) //逆时逐段亮
{
 uchar i,j;
 for (j=0;j
 {
  P0=P1=P2=P3=0x00;
  for(i=0;i<8;i++)
  {
   P0=liang0_7[i];
   delay(t);
  }
  P0=0x00;
  for(i=0;i<8;i++)
  {
   P1=liang0_7[i];
   delay(t);
  }
  P1=0x00;
  for(i=0;i<8;i++)
  {
   P2=liang0_7[i];
   delay(t);
  }
  P2=0x00;
  for(i=0;i<8;i++)
  {
   P3=liang0_7[i];
   delay(t);
  }
  P3=0x00;  
 }
}
 
void nzdgl(uint t,uchar a)   //逆时逐段一个点亮
{
 uchar i,j;
 for (j=0;j
 {
  P0=P1=P2=P3=0x00;
  for(i=0;i<8;i++)
  {
   P3=liang7_0[i];
   delay(t);
  }
  P3=0x00;
  for(i=0;i<8;i++)
  {
   P2=liang7_0[i];
   delay(t);
  }
  P2=0x00;
  for(i=0;i<8;i++)
  {
   P1=liang7_0[i];
   delay(t);
  }
  P1=0x00;
  for(i=0;i<8;i++)
  {
   P0=liang7_0[i];
   delay(t);
  }
  P0=0x00;  
 }
}
 
void jgs(uint t,uchar a)   //间隔闪
{
 uchar j;
 for (j=0;j
 {
  P0=P1=P2=P3=0x55;
  delay(t);
  P0=P1=P2=P3=0xaa;
  delay(t); 
 }
}
 
void main()
{
 uchar i;
 while(1)
 {
  zg(100,1);    //两边逐个亮
  lbzgm(100,1);   //两边逐个灭
  jgs(300,10);
  djs(100,20);  //对角闪
////////////////////////////////////////////
 P1=P2=P3=0x00;
 for(i=0;i<3;i++)
 {
  P0=0xff;delay(800);
  P0=0x00;delay(800);
  }
  P0=0xff;
  for(i=0;i<3;i++)
 {
  P1=0xff;delay(800);
  P1=0x00;delay(800);
  }
  P1=0xff;
  for(i=0;i<3;i++)
 {
  P2=0xff;delay(800);
  P2=0x00;delay(800);
  }
  P2=0xff;
  for(i=0;i<3;i++)
 {
  P3=0xff;delay(800);
  P3=0x00;delay(800);
  }
  P3=0xff;
  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);
  }
 
 
   nzdl(200,3); //逆时逐段亮
   jgs(50,100);   //间隔闪
 
 
 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<5;i++)
 {
  zgxh(100,1);
  nszgm(100,1);
  }
  djs(100,20);  //对角闪
  zg(300,1);
  lbzgm(300,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--);
 }
}
关键字:32LED  单片机  心形花样流水灯 引用地址:32LED单片机心形花样流水灯

上一篇:LEGO用轨迹传感器
下一篇:电脑控制单片机,单片机控制继电器

推荐阅读最新更新时间:2024-03-16 14:24

PIC单片机对摩托车防盗报警器的设计
R3EQU0X03 PORT5EQU0X05 PORT6EQU0X06 R3EQU0X03 KEY_STATUSEQU0X10;低半字节为按键标志,高半字节为控制标志 SIGNAL_LOWEQU0X11;信号电平低计数器 SIGNAL_HIGHEQU0X12;信号电平高计数器 DATA_RECORDEREQU0X13;接收码数据字节 CODE_RECORDER2EQU0X14;接收码地址高字节 CODE_RECORDER1EQU0X15;接收码地址低字节 CODE_TOTALEQU0X16;接收数据位计数器 KEY_COUN TE REQU0X17;两次按键检测计数器 /**********************KEY_S
[单片机]
PIC<font color='red'>单片机</font>对摩托车防盗报警器的设计
台媒:电源IC、MCU问题并不大
台积电涨价传闻持续发酵,加上此前联电等也都传出再次涨价的消息,引发业内对下游设计厂毛利率的担忧,但台媒分析指出,不同产品情况不同,如电源管理IC和MCU厂向下游转嫁成本问题不大。 钜亨网报道指出,部分电源管理IC厂近期陆续收到涨价通知,增加的成本已在新订单上反映给客户,大多数可以完全转嫁,体现需求仍然稳固,下半年毛利率有望维持第二季度的高水准。此外考虑到经济效益,电源管理IC多投片于8英寸,业内预期到明年底产能仍吃紧。 同样投片于8英寸的MCU情况类似,部分设计厂目前仍在议价中掌握主动权,成本仍可转嫁给客户,业内多数认为,从代理商、客户端的库存来看,MCU仍处于缺货状态,仍在积极拉货的趋势,除非第四季度终端销售状况大变,否则到年底
[手机便携]
单片机控制的电池管理实现了成功的互联网
微控制器将在观光噪比(IoT)取向设计大多数因特网主控制元件和这些MCU将有可能被电池供电。电源效率将是实现可接受的电池寿命至关重要因此MCU将需要管理的电池使用更精确地比以往任何时候。许多MCU具有特殊的功能,帮助管理电池电量和使用这些功能优化可能使输赢在市场之间的差异。 本文将很快回顾一些实现高效电池的MCU产品设计,并说明所需的关键功能,例如使用的设备,这些功能如何提高工作效率和电池寿命。软件工具,帮助估计电池寿命将用于展示如何在您详细的设计实施估计寿命。这极大地有助于设备选择并且是一个关键的技术用于创建电源效率的设计。 管理电源域 电池的MCU实现时想我们最初可能,前提是有一个单一的MCU电源域,流失的电池,我们的目
[嵌入式]
<font color='red'>单片机</font>控制的电池管理实现了成功的互联网
用CH372实现U盘与单片机通信功能
  该系统的程序设计主要包括两大部分,分别是USB接口部分固件程序和计算机端的CH372驱动程序。前者主要包括了 单片机 和CH372的初始化、读写接口程序和中断服务程序;后者包括了USB设备的驱动程序和相关应用程序的编写。这里主要介绍USB接口部分固件程序。      在本例中CH372工作在内部固件模式,通过8位并行数据总线挂接到单片机AT89C51上,并通过端点2上的上传端点和下传端点完成USB数据的读写。在本地端,CH372芯片以内置的固件程序自动处理了USB通信中的基本事务,在计算机端,提供了驱动程序的应用层调用接口,用以完成USB设备与计算机间的通信。      由于CH372支持内部固件模式,以内置的固件程序自动处理
[单片机]
用CH372实现U盘与<font color='red'>单片机</font>通信功能
闪存芯片KM29N32000TS在单片机系统中的应用
摘要:介绍32M位闪存芯片(Flash Memory)KM29N32000TS,并以87C552单片机为例介绍它在单片机系统中的硬件连接和软件编制方法。该芯片与单片机的硬件连接电路简单,可扩容能力强,易于编程,且体积小、容量大,具有很高的实用价值。 关键词:KM29N32000TS Flash存储器 单片机系统 在许多测量和测试应用系统中,如便携式仪器等其它电池供电系统,需要保证数据的可靠性和可用性,即使整个系统掉电,而所采集到的数据仍能长时间的保持不丢失。闪存技术的发燕尾服提供了这种可能性。闪存的非易失性非常优越,数据可保存长达10的。本文将介绍32M位闪存芯片KM29N32000TS及其在87C552单片机系统中的应用。
[应用]
51单片机扩展6264静态RAM程序
/******************** RAM6264的地址为0000~1FFF,共8K CS1接P2.7 CS2接VCC WE接WR OE接RD A8~A12接P2。0~P2.3 ********************/ #include reg51.h #include absacc.h unsigned char xdata *point=0x0000; unsigned char dat ; void delay1s(void) { unsigned char a,b,c; for(c=167;c 0;c--) for(b=171;b 0;b--) for(a=16;a 0;a-
[单片机]
STM32单片机I/O的工作模式
最近有个朋友在设计低功耗设备,用的是STM32的主控,他知道我做过很多类似的超低功耗项目,于是向我咨询了一些问题,其中就包括I/O口的几种工作模式。今天我就详细的来总结一下这几种工作模式,让大家在以后的设计中知其然也知其所以然。 先说说GPIO 在聊这8种工作模式之前,我想先说一下GPIO的概念—通用输入输出GeneralPurposeInputOutput简称GPIO,就是芯片引脚可以通过它们输出高、低电平,也可以通过他们输入、读取引脚的电压、电平状态。 下面的8种工作模式我将围绕下图进行分析介绍,读懂这一张图大家基本就可以完全理解STM32的GPIO了。希望大家仔细的看一看。 四种不同的输出模式 推挽输出:该模式下引脚
[单片机]
STM32<font color='red'>单片机</font>I/O的工作模式
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved