|
|
楼主 |
发表于 2016-9-13 01:09:09
|
显示全部楼层
本帖最后由 我爱萝丽爱萝丽 于 2016-9-13 01:11 编辑
1.2 闪出七种色彩!
在学会了怎么控制LED的亮灭后,你有什么想法呢?是不是已经按捺不住想要写点更复杂的程序了?
我们先把每个LED的控制引脚都定义好:
sbit LED_R=P3^4;//定义红灯
sbit LED_G=P3^3;//定义绿灯
sbit LED_B=P3^2;//定义蓝灯
然后按照三原色的混合原理,控制每一种色彩吧:
- #include<reg51.h>
- sbit LED_R=P3^4;//定义红灯
- sbit LED_G=P3^3;//定义绿灯
- sbit LED_B=P3^2;//定义蓝灯
- void Delay1000ms() //@12.000MHz
- {
- unsigned char i, j, k;
- //_nop_();删去此处
- //_nop_();
- i = 46;
- j = 153;
- k = 245;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- main()
- {
-
- while(1)
- {
- LED_R=1;
- LED_G=0;
- LED_B=0;
- Delay1000ms();//红色亮1秒
- //空一行为了让程序更清晰
- LED_R=1;
- LED_G=1;
- LED_B=0;
- Delay1000ms();//黄色亮1秒
-
- LED_R=0;
- LED_G=1;
- LED_B=0;
- Delay1000ms();//绿色亮1秒
-
- LED_R=0;
- LED_G=1;
- LED_B=1;
- Delay1000ms();//青色亮1秒
-
- LED_R=0;
- LED_G=0;
- LED_B=1;
- Delay1000ms();//蓝色亮1秒
-
- LED_R=1;
- LED_G=0;
- LED_B=1;
- Delay1000ms();//紫色亮1秒
-
- LED_R=1;
- LED_G=1;
- LED_B=1;
- Delay1000ms();//白色亮1秒
- }
-
- }
复制代码
|
| |