找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求大神,单片机流水灯右移循环3次,左移循环2次的程序怎么写。

[复制链接]
回帖奖励 1 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
任务一:花样流水灯(15分)
流水灯的左移右移,八个发光二极管LED1-LED8分别接在单片机的P1口,重复循环3次右移。然后左移2次,间隔闪烁2次,延时时间可调(初始延时时间为0.5S)。



这是实训的任务,第一道题就把我难倒了。来个能秒杀这道题的大神,有黑币哦!!!

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

使用道具 举报

沙发
ID:317135 发表于 2018-5-28 10:58 | 只看该作者
本帖最后由 loading88 于 2018-5-28 14:34 编辑

#include "reg52.h"
#include "intrins.h"
#define led P1
typedef unsigned char u8;
typedef unsigned int  u16;
void delay(u16 i)
{
    while(i--);
}
void main()
{
  u8 i;
  led=P1;
  led=0x01;
  delay(500000);
  while(1)
  {
         for(i=0;i<7;i++)
     {
     led=_cror_(led,1);
     delay(50000);
         }
         for(i=0;i<7;i++)
     {
     led=_cror_(led,1);
     delay(50000);
         }
         for(i=0;i<7;i++)
     {
     led=_cror_(led,1);
     delay(50000);
         }              //右移循环三次
         led=0x00;
         delay(50000);
         led=0xff;
         delay(50000);

         led=0x00;
         delay(50000);
         led=0xff;
         delay(50000);  //闪烁两次

         led=0x01;

         for(i=0;i<7;i++)
         {
     led=_crol_(led,1);
     delay(50000);
     }
         for(i=0;i<7;i++)
         {
     led=_crol_(led,1);
     delay(50000);
     }                           //左移循环两次
  }
}
回复

使用道具 举报

板凳
ID:317135 发表于 2018-5-28 11:33 | 只看该作者
#include "reg52.h"
#include "intrins.h"
#define led P1
typedef unsigned char u8;
typedef unsigned int  u16;
void delay(u16 i)
{
    while(i--);
}
void main()
{
  u8 i;
  led=P1;
  led=0x01;
  delay(500000);
  while(1)
  {
         for(i=0;i<7;i++)
     {
     led=_cror_(led,1);
     delay(50000);
         }
         for(i=0;i<7;i++)
     {
     led=_cror_(led,1);
     delay(50000);
         }
         for(i=0;i<7;i++)
     {
     led=_cror_(led,1);
     delay(50000);
         }              //右移循环三次
         led=0x00;
         delay(50000);
         led=0xff;
         delay(50000);

         led=0x00;
         delay(50000);
         led=0xff;
         delay(50000);   //间隔两次
         
     led=0x01;
     

         for(i=0;i<7;i++)
         {
     led=_crol_(led,1);
     delay(50000);
     }
         for(i=0;i<7;i++)
         {
     led=_crol_(led,1);
     delay(50000);
     }                           //左移循环三次
  }
}

cde6dcce69fc752bcc2abf001f9a37d.png (71.22 KB, 下载次数: 64)

仿真图片

仿真图片
回复

使用道具 举报

地板
ID:317135 发表于 2018-5-28 11:57 | 只看该作者
仿真实验如图

3e1c4586d8c36934c635c9e2c8c4c2a.png (45.25 KB, 下载次数: 67)

仿真实验

仿真实验
回复

使用道具 举报

5#
ID:338427 发表于 2018-5-30 20:14 | 只看该作者

缺少一个延时可调,不过还是感谢大佬写的程序,我会认真参考的。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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