程序如下:
#include
sbit led1 = P2^0;
sbit led2 = P2^1;
sbit led3 = P2^2;
sbit led4 = P2^3;
sbit led5 = P2^4;
sbit led6 = P2^5;
sbit led7 = P2^6;
sbit led8 = P2^7;
void main()
{
int i,j;
//点亮第一个灯
led1 = 1;
led2 = 0;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
//延时1秒
for(i = 0;i < 110; ++i)
{
for(j = 0; j < 1000; ++j)
{
;//什么也不做
}
}
//点亮第二个灯
led1 = 0;
led2 = 1;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
//点亮剩余的灯
//省略……
while(1);
}
流水灯几点说明:
void:因为该延时函数不需要返回值,所以写为void
delay1s:该函数的函数名,命名需要符合C语言的标识符命名规则。
(): 不需要传入参数,所以括号中为空
至此我们可以把流水灯程序写为以下形式:
#include
#include
#define uint unsigned int //宏定义
#define uchar unsigned char//宏定义
void delayms(uint); //声明子函数
uchar a; //定义uchar类型的变量a
void main() //主函数
{
a=0xfe; //赋初值11111110
while(1) //大循环
{
P1=a;
delayms(500); //延时500毫秒
a=_crol_(a,1); //将a循环左移1位后再赋给a
}
}
void delayms(uint xms) //延时函数
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
学习单片机,还需要结合实际硬件电路来编程
来自理科生的浪漫,用51单片机制作心形流水灯
花样流水灯的玩法,一个51单片机8位端口轮流输出16颗灯珠,
推荐你看郭天祥十天学会单片机,回讲实际程序的,讲的挺好的