标题:
小白初学单片机问题!
[打印本页]
作者:
sz15207554653
时间:
2017-3-28 09:33
标题:
小白初学单片机问题!
间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。
/***********************************************************************
间隔300ms第一次一个管亮流动一次,
第二次两个管亮流动,依次到8个管亮,
然后重复整个过程
***********************************************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define D1 P2
void Delay10ms(uchar ms);
void main()
{
uchar i,x,y;
while(1)
{
i=0x01;
for(x=0;x<8;x++)
{
for(y=0;y<8-x;y++)
{
P2=i;
Delay10ms(30);
i=_crol_(i,1);
}
i=_cror_(i,x);
i|=0x01;
}
}
}
/***********************************************************************
10ms延迟
***********************************************************************/
void Delay10ms(uchar ms)
{
uchar a,b;
for(;ms>0;ms--)
{
for(a=38;a>0;a--)
for(b=130;b>0;b--);
}
}
作者:
imxuheng
时间:
2017-3-28 15:28
蓝染队长研究流水灯了。。。。。
我理解的是首先1个led亮,然后向一个方向移动;接着2个led亮,然后向一个方向移动;接着3个led亮,然后向一个方向移动。。。最后8个led亮,然后向一个方向移动,附上程序
#include <reg52.h>
#include <intrins.h>
void DelayMS(unsigned int x)
{
unsigned char i;
while(x--)
{
for(i=120;i>0;i--);
}
}
void main()
{
unsigned char x,y,i;
P0 = 0xFF;
x = 0xFF;
while(1)
{
x=x<<1;
if(x==0) x=0xFF;
y=x;
for (i=0;i<8;i++)
{
P0 = y;
y=y<<1;
y++;
DelayMS(300);
}
P0 = 0xFF;
}
}
无标题.png
(13.82 KB, 下载次数: 78)
下载附件
2017-3-28 15:28 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1