回答

收藏

[每日一帖] 之8__色彩变换的程序实现

#线上活动 #线上活动 1850 人阅读 | 0 人回复 | 2016-08-15

在色彩时钟的DIY过程中,主要涉及的问题有:
1RGB_LED的电路搭建
2RGB_LED的色彩调配
3)串行数据收发
在进行色彩变换测试前,我们先要搭建RGB_LED的电路。处于方便的原因,我是将RGB_LED3个限流电阻固定在一块硬纸板上,然后配上了一个4引脚的插座以便以单片机连接。
在保证RGB_LED的电路正确情况下,需要确定单片机的I/O口驱动能力,经测试单片机的P1口完全可以驱动RGB_LED
在测试色彩调配时,可以下面的程序体验色彩的魅力。
  1. /******************************************************
  2. *  程序名称:main.c
  3. *  程序功能:主控程序,实现色彩切换显示,每按一下K1键就换一种色彩。
  4. *  设计:JINGLIXIXI
  5. *  编写时间:2016-7-26
  6. *  程序版本:V1.0
  7. *****************************************************/
  8. /* 头文件 */
  9. #include "reg51.h"
  10. //#include "delay.h"
  11. sbit RC = P1^0;
  12. sbit GC = P1^1;
  13. sbit BC = P1^2;
  14. sbit K1 = P3^2;
  15. sbit K2 = P3^3;
  16. unsigned int j=0;
  17. unsigned int rtc=0;   //秒计数器
  18. /******************************************************
  19. *  函数名称:main()
  20. *  函数功能:主函数
  21. *  入口参数:
  22. *  出口参数:
  23. *****************************************************/
  24. int main()
  25. {
  26. unsigned int k=0;
  27. unsigned char hh=0;    //  时
  28. unsigned char mm=0;   //  分
  29.         K1 = 1;
  30.         K2 = 1;
  31.             TimeInit();
  32.             RC = 0;
  33.             GC = 0;
  34.             BC = 0;
  35.                 //  白色测试
  36.                 RC = 1;
  37.             GC = 1;
  38.             BC = 1;
  39.                 while(K1);
  40.                 RC = 0;
  41.             GC = 0;
  42.             BC = 0;
  43.         k=0;
  44.             while(1)
  45.         {       
  46.                 if(k==0)
  47.                 {
  48.                 RC = 1;
  49.             GC = 0;
  50.             BC = 0;
  51.         }
  52.                 if(k==1)
  53.                 {
  54.                 RC = 1;
  55.             GC = 1;
  56.             BC = 0;
  57.         }
  58.                 if(k==2)
  59.                 {
  60.                 RC = 0;
  61.             GC = 1;
  62.             BC = 0;
  63.         }       
  64.                 if(k==3)
  65.                 {
  66.                 RC = 0;
  67.             GC = 1;
  68.             BC = 1;
  69.         }               
  70.                 if(k==4)
  71.                 {
  72.                 RC = 0;
  73.             GC = 0;
  74.             BC = 1;
  75.         }       
  76.                 if(k==5)
  77.                 {
  78.                 RC = 1;
  79.             GC = 0;
  80.             BC = 1;
  81.         }       
  82.                 while(K1);
  83.             k++;
  84.                 if(k==6) k=0;
  85.             }
  86.         return 0;
  87. }
复制代码
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条