用C语言编写简单跑马灯程序(4个灯的)

Python026

用C语言编写简单跑马灯程序(4个灯的),第1张

如下程序

if(ledi==8)

{

ledi=0//到了最后一个灯就换到第一个

//每跑一圈灯就根据预定设置的表格来决定下一圈的跑马速度

speed=speedcode[i]

i++if(i==2)i=0?你的速度设置不仅仅就2个呀(10个预定义的速度)

}

有两种解决办法:

一个就是将预定的速度加2倍

speedcode[30]={3,3,3,1,1,1,5,5,5,12,12,12,、、、、、、}

二是增加一全局变量uchar z=0在i++前加上如下,前后不改:

、、、、、if(++z==3){z=0i++;}、、、、、、、、、、、

你CPU的种类是什么都不说,编个毛的程序呀

第一个

P0 = 0x00000000

int t = 3

while(t--) //3次循环

{

while(1)

{

delay(500)//延时500毫秒

P0 <<= 1//点亮下一个灯

P0 |= 1

if(P0==0x7FFFFFFF) //灯全亮后,全部熄灭

{

P0 = 0x00000000

break//跳出小循环

}

}

}

第二个

int d1 = 0x20000000//30号等亮

int d2 = 0x00000001//1号等亮

P0=d1|d2

int t = 10

while(t--) //循环10次

{

while(1)

{

delay(500)//延时500毫秒

d1 >>= 1//控制逆时针依次亮

d2 <<=1 //控制顺时针依次亮

P0=d1|d2//合成输出

if(d1==0) //循环一次结束

{

int d1 = 0x20000000

int d2 = 0x00000001

P0=d1|d2

break

}

}

}

#include <reg51.h> //51头文件

#include <intrins.h> //包含移位函数_crol_

void Delay10ms(unsigned int c) //延时函数声明

void main(void)

{

unsigned char LED

LED = 0x01 //一个unsigned char有8位,每一位代表了一个灯,初始点亮第一盏灯

while(1)

{

P0 = LED //点亮一盏灯

Delay10ms(50) //延时500ms,让其量一会儿

LED = _crol_(LED,1)//向左移位函数,比如 0x01 -->0x02 -->0x04 -->0x08 --->0x10

}

}

void Delay10ms(unsigned int c) //延时函数

{

unsigned char a, b

for (c>0c--)//三重循环延时,大约延时10ms

{

for (b=38b>0b--)

{

for (a=130a>0a--)

}

}

}