c语言51单片机流水灯程序怎么写,51单片机流水灯用C语言编写的设计程序???

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

juxiqosn0

推荐于 2017.09.13

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:44%    等级:12

已帮助:9003人

/*********************************************************************************************

程序名:    8路流水灯

编写时间:  2009年5月13日

硬件支持:  STC12C4052AD 外部12MHZ晶振

接口说明:  8个LED彩灯接P1口

修改日志:

NO.1-2009年5月14日 在程序前面加入参数定义项

/*********************************************************************************************

说明:

根据参数设置产生流水LED效果。

/*********************************************************************************************/

#include //51头文件

/*********************************************************************************************/

#define DY_PORTP1 //设置LED连接的I/O组

#define DY_SPEED100 //设置每一个明亮级的停留时间(值域:0~65535)

/*********************************************************************************************

bit [自定义名] ; //定义一个位(位的值只能是0或1)例:bit LED

#define [代替名][原名] //用代替名代替原名(可以方便修改常改或调试的值)例:#define LED P1

sbit [自定义名] = [系统位名] ; //自定义系统位名。例:sbit Add_Key = P3 ^ 1;

unsigned char [自定义名] ; //定义一个0~255的整数变量.例:unsigned char a;

unsigned int [自定义名] ; //定义一个0~65535的整数变量

/*********************************************************************************************/

void delay (unsigned int a){ // 1ms延时程序

unsigned int i;

while( --a != 0){

for(i = 0; i < 600; i++);//STC单片机在外部晶振为12MHz时i值上限为600

} //AT89C51单片机在外部晶振为12MHz时i值上限为125

}

/*********************************************************************************************/

void main(void){

unsigned int i;

unsigned int temp;

while(1){

temp=0x01;

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

DY_PORT=~temp;

delay(DY_SPEED); //调用延时函数

temp<<=1;

}

temp=0x80;

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

DY_PORT=~temp;

delay(DY_SPEED); //调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++){ //8个流水灯依次全部点亮

DY_PORT=temp;

delay(DY_SPEED); //调用延时函数

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++){ //8个流水灯依次反向全部点亮

DY_PORT=temp;

delay(DY_SPEED); //调用延时函数

temp>>=1;

}

}

}

/*********************************************************************************************/

114分享举报

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值