C语言设计跑马灯程序

C语言设计跑马灯程序,第1张

#include<reg51.h> //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint) //声明延时函数

void main(void)

{

uint i

uchar temp

while(1)

{

temp=0x01

for(i=0i<8i++) //8个流水灯逐个闪动

{

P1=~temp

delay(100) //调用延时函数

temp<<=1

}

}

void delay(uint t) //定义延时函数

{

register uint bt

for(tt--)

for(bt=0bt<255bt++)

}

跑马灯程序最基本的,c语言还未入门啊!!!

给个示例程序看看

/*-----------------------------------------------

名称:流水灯

公司:上海浩豚电子科技有限公司

编写:师访

日期:2009.5

修改:无

内容:循环点亮P1口对应的8个LED灯,造成循环流水点亮的效果

------------------------------------------------*/

#include<reg52.h>

//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

/*------------------------------------------------

延时子程序

------------------------------------------------*/

void

delay(unsigned

int

cnt)

{

while(--cnt)

}

/*------------------------------------------------

主函数

------------------------------------------------*/

main()

{

P1=0xfe

//给初始化值

换算成二进制是1111

1110

while(1)

{

delay(30000)//延时程序

P1<<=1

//左移一位

该语句等效于

P1=P1<<1

P1|=0x01

//最后一位补1,该语句等效于

P1=P1|0x01

符号"|"表示"或"

if(P1==0x7f)

//检测是否移到最左端?"=="表示检测符号2端的值是否相等

{

delay(30000)

P1=0xfe

//重新赋值

}

}

}

你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

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7936435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存