stc15流水灯c语言,STC89C52单片机流水灯

原标题:STC89C52单片机流水灯

/

实现功能:让实验板上的D1-D8这个八个灯循环跑起来,先点亮D1,其他的灯都是熄

灭状态,间隔0.3秒,点亮D2,其他的灯都熄灭,这样依次循环,直到点

亮D8,然后从头再依次点亮。

实验板型号:BS-XYD-C52

实验名称:

编写人: 谢应东

编写日期: 2012-4-24

/

#include

#include //这个头文件里包含了_crol_(,)这个循环右移的函数

#define uchar unsigned char //定义unsigned char 为 uchar

#define uint unsigned int

/

函数名称:毫秒延时函数

函数功能:实现毫秒级的延时

参数介绍:Delay_MS: 定义需要延时的毫秒的数值

iNumber: 记录Delay_MS的数值,以for语句实现所要求的延时

iValue: 要延时毫秒所要进行的循环数值,本数值为实际测得

返回值: 无

注意事项:本实验是在所用晶振为12M的前提下实现的毫秒延时,本函数是通过循环的形

式完成,所以如果改变了晶振的频率,请做相应的改变

/

void DelayMs(uint Delay_MS)

{

uint iNumber,iValue;

for(iNumber=0;iNumber

{

iValue=107;

while(iValue--);

}

}

/

函数名称:主函数

函数功能:完成D1-D8发光二极管的循环显示

参数介绍:无

返回值: 无

注意事项:无

/

void main()

{

uchar cTempValue,cNumber;//cTempValue为取零时值的变量,cNumber为循环变量

while(1)

{

cTempValue=0xfe; //起始让D1点亮的零时值

for(cNumber=0;cNumber<8;cNumber++)

{

P1=cTempValue; //赋予P1口初始值

cTempValue=_crol_(cTempValue,1); //调用循环右移的函数

DelayMs(300); //延时0.3秒

}

}

}

责任编辑:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值