标题: 求大神,单片机流水灯右移循环3次,左移循环2次的程序怎么写。 [打印本页]
作者: qq1234qq 时间: 2018-5-27 22:05
标题: 求大神,单片机流水灯右移循环3次,左移循环2次的程序怎么写。
任务一:花样流水灯(15分)
流水灯的左移右移,八个发光二极管LED1-LED8分别接在单片机的P1口,重复循环3次右移。然后左移2次,间隔闪烁2次,延时时间可调(初始延时时间为0.5S)。
这是实训的任务,第一道题就把我难倒了。来个能秒杀这道题的大神,有黑币哦!!!
作者: loading88 时间: 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);
} //左移循环两次
}
}
作者: loading88 时间: 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)
仿真图片
作者: loading88 时间: 2018-5-28 11:57
仿真实验如图
-
3e1c4586d8c36934c635c9e2c8c4c2a.png
(45.25 KB, 下载次数: 67)
仿真实验
作者: qq1234qq 时间: 2018-5-30 20:14
缺少一个延时可调,不过还是感谢大佬写的程序,我会认真参考的。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |