新闻中心

EEPW首页>嵌入式系统>设计应用> STC89C52单片机流水灯

STC89C52单片机流水灯

作者: 时间:2016-11-21 来源:网络 收藏
/////////////////////////////////////////////////////////////////////////

实现功能:让实验板上的D1-D8这个八个灯循环跑起来,先点亮D1,其他的灯都是熄
灭状态,间隔0.3秒,点亮D2,其他的灯都熄灭,这样依次循环,直到点
亮D8,然后从头再依次点亮。
实验板型号:BS-XYD-C52
实验名称:流水灯
编写人:谢应东
编写日期:2012-4-24
/////////////////////////////////////////////////////////////////////////

本文引用地址://m.amcfsurvey.com/article/201611/319226.htm

#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秒
}
}
}



评论


技术专区

关闭