/****************************************************************************/ #include sbit LEDR= P1 ^ 0; //P1.0引脚上接了一个红的发光二极管 code unsigned char stop[3] _at_ 0x3B; //Mon51用Mon51用,绝对地址引用 /**************************************************************************** 延时程序: /****************************************************************************/ void delay (unsigned int d){ // 延时功能函数--由d决定延时长度 unsigned char i; while( d-- != 0){ for(i = 0; i < 8; i++); } } /**************************************************************************** 主程序:后面是LED跳闪2次的程序 /****************************************************************************/ void main (void){ // 彩灯主函数 实现彩灯的显示 unsigned char a, b; // a控制延时长度 b控制循环周期 while (1){ LEDR = 0; Delay(250); LEDR = 1; Delay(250); LEDR = 0; Delay(100); LEDR = 1; Delay(250); /**************************************************************************** 主程序: 后面是渐变式LED闪烁 /***********************************************************************/ LEDR= 0; delay (15535); a = 0x00; for (b=255; b>0; b--) { a++; delay (a); // 延时长度随a而改变 LEDR= 0; a = ~a; // a值取反 决定灯灭时的占空比 delay (a); LEDR=1; a = ~a; // a值取反 使a回到原值继续循环 } delay (15535); LEDR= 0; // 彩灯全亮 使灯达到最亮 a = 0x00; for (b=255; b>0; b--){ a++; delay (a); LEDR= 0xff; a = ~a; delay (a); LEDR= 0; a = ~a; } LEDR= 1; } }