找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3461|回复: 0
打印 上一主题 下一主题
收起左侧

Arduino花样流水灯程序+Protues仿真

[复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


///使用开发板型号:Arduino UNO R3
///单片机晶振频率:16MHz
///本列使用元器件:8个LED,8个220R电阻
///电路的连接说明:LED结成阴极
//************************************************************************/
/*********通过下载测试,全部代码分为 4个子事件:*****************
              样式 1,样式 2,样式 3和闪烁:
样式 1: 1-8号灯逐个点亮,然后 8-1逐个熄灭。
        闪烁两次
样式 2:4,5号灯先亮,然后3,6号再亮,接着2,7号亮,最后1,8号亮。
        1,8号灯先灭,然后2,7号熄灭,接着3,6号灭,最后4,5号灭。
        闪烁两次
样式 3:1,8号灯先亮,然后1,8号熄灭, 接着2,7号亮,然后2,7号熄灭
        接着3,6号亮,然后3,6号熄灭, 接着4,5号亮,然后4,5号熄灭。
闪  烁:1-8号灯亮,延时 200ms,1-8号灯熄灭,延时200ms,闪烁两次。
****************************************************************/
///设置控制Led 的数字IO脚
int Led1 = 1;
int Led2 = 2;
int Led3 = 3;
int Led4 = 4;
int Led5 = 5;
int Led6 = 6;
int Led7 = 7;
int Led8 = 8;
#define uchar unsigned char
//led 灯花样显示样式1子程序
void style_1(void)
{
  uchar j;
  for(j=1;j<=8;j++)//每隔200ms依次点亮1~8引脚相连的led灯
  {
    digitalWrite(j,HIGH);//点亮j引脚相连的led 灯
    delay(200);//延时200ms
   }
    for(j=8;j>=1;j--)//每隔200ms依次熄灭8~1引脚相连的led灯
    {
      digitalWrite(j,LOW);//熄灭j引脚相连的led 灯
      delay(200);//延时200ms
     }  
  }
//灯闪烁子程序
void flash(void)
{   
   uchar j,k;
   for(k=0;k<=1;k++)//闪烁两次
   {
     for(j=1;j<=8;j++)//点亮1~8引脚相连的led灯
     digitalWrite(j,HIGH);//点亮与j引脚相连的led灯
     delay(200);//延时200ms
     for(j=1;j<=8;j++)//熄灭1~8引脚相连的led灯
     digitalWrite(j,LOW);//熄灭与j引脚相连的led灯
     delay(200);//延时200ms
   }
}
//led 灯花样显示样式2子程序
void style_2(void)
{
     uchar j,k;
     k=1;//设置k的初值为1
     for(j=4;j>=1;j--)//
     {
       digitalWrite(j,HIGH);//点亮灯
       digitalWrite(j+k,HIGH);//点亮灯
       delay(400);//延时400ms
       k +=2;//k值加2
     }
     k=7;//设置k值为5
     for(j=1;j<=4;j++)
     {
       digitalWrite(j,LOW);//熄灭灯
       digitalWrite(j+k,LOW);//熄灭灯
       delay(400);//延时400ms
       k -=2;//k值减2
     }
   }
   //led 灯花样显示样式3子程序
   void style_3(void)
   {
     uchar j,k;//led 灯花样显示样式3子程序
     k=7;//设置k值为5
     for(j=1;j<=4;j++)
     {
       digitalWrite(j,HIGH);//点亮灯
       digitalWrite(j+k,HIGH);//点亮灯
       delay(400);//延时400ms
       digitalWrite(j,LOW);//熄灭灯
       digitalWrite(j+k,LOW);//熄灭灯
       k -=2;//k值减2
     }

     k=3;//设置k值为3
     for(j=3;j>=1;j--)
     {   
       digitalWrite(j,HIGH);//点亮灯
       digitalWrite(j+k,HIGH);//点亮灯
       delay(400);//延时400ms
       digitalWrite(j,LOW);//熄灭灯
       digitalWrite(j+k,LOW);//熄灭灯
       k +=2;//k值加2
     }  
  }
  void setup()
  {
     uchar i;
     for(i=1;i<=8;i++)//依次设置1~8个数字引脚为输出模式
     pinMode(i,OUTPUT);//设置第i个引脚为输出模式
   }
   void loop()
   {
     style_1();//样式1
     flash();//闪烁
     style_2();//样式2
     flash();//闪烁
     style_3();//样式3
     flash();//闪烁
   }

全部资料51hei下载地址:
花样流水灯.zip (62.41 KB, 下载次数: 39)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表