查看: 1588|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2016-8-15 09:03:12 | 显示全部楼层 |阅读模式
    分享到:
    在色彩时钟的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. }
    复制代码
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 19:45 , Processed in 0.112960 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.