渐明渐暗彩灯.c

来自「单片机入门制作专题_配套光盘 [1]」· C语言 代码 · 共 64 行

C
64
字号

/*************************************************************
* 程序名 * 渐明渐暗彩灯
* 编写人 * 杜 洋 
* 日  期 * 2007-8-25
* 日  志 * 2007-8-25 开始编写
/*************************************************************/

/*************************************************************
* 头文件定义 *
/*************************************************************/
#include <AT89X52.h>

/*************************************************************
* IO定义 *
/*************************************************************/
sbit LED    =   P1 ^ 0;		//定义P1.0为LED控制口,低电平使能

/*************************************************************
* 毫秒级延时函数 *
/*************************************************************/
void delay (unsigned int d){	//延时功能函数,由d决定延时长度
    	unsigned char i;
		while( --d != 0){
			  	for(i = 0; i < 2; i++);
		}   				   
}
/*************************************************************
* 主函数 *
实验板上连接到P1.0上的LED逐渐点亮再逐渐熄灭
/*************************************************************/
void main (void){
		unsigned char a, b;//a控制延时长度 b控制循环周期
		while (1){
				LED = 1;
				a = 0x00;
	         for (b=250; b>0; b--){
	         		a++;
						delay (a);		//延时长度随a而改变
						LED = 0;
	         		a = ~a;			//a值取反,决定灯灭时的占空比
	         		delay (a);
						LED = 1;
						a = ~a;			//a值取反 使a回到原值继续循环
	         }
				LED = 0;					//亮起LED
				a = 0x00;
				for (b=250; b>0; b--){
						a++;
						delay (a);
						LED = 1;
						a = ~a;
						delay (a);
						LED = 0;
						a = ~a;
				}
				LED = 1;
		}
}
/*************************************************************
* DoYoung.net 电子技术 -- 创造独立资源 * www.doyoung.net *
/*************************************************************/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?