新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機控制LED七彩漸變燈

        51單片機控制LED七彩漸變燈

        作者: 時間:2016-11-18 來源:網絡 收藏
        自己設計的51單片機控制LED七彩漸變燈

        MCU:89C51,89S51,89C2051等

        本文引用地址:http://www.104case.com/article/201611/315727.htm

        晶振:12MHz

        電路驅動(LED連接):

        P1.0連接藍色LED

        P1.1連接紅色LED

        P1.2連接綠色LED (必須使用純綠色高亮LED,不可使用普通草綠管)

        全為低電平驅動(低電平點亮),可以加三極管驅動,紅、藍、綠LED也可以交換位置

        控制方式:PWM

        頻率:約300-700Hz(我沒有計算或測量過,只是試驗顯示效果足夠好)

        調節級數:共600級,相當平滑

        編譯后的HEX文件:

        687241197859316.rar

        HEX代碼:

        :0D009300E4FEEEC39F50060000000E80F555

        :0100A000223D

        :06005F00A9078D828C83CD

        :10006500E4FDE96008C292FF120093D292E5824551

        :10007500836009C291AF82120093D291EB4A600965

        :0D008500C290AF03120093D2900DBD0AD5BA

        :01009200224B

        :100003007508C8E4F509F50AE5086008E50A70040F

        :1000130015080509E5096008E50870041509050ACE

        :10002300E50A6008E5097004150A0508E5082509CD

        :10003300FFE433FE7C00EF250AFFEC3EFEEF64C8CD

        :100043004E60087508C8E4F509F50AE509FD7C006A

        :0C005300E50AFB7A00AF0812005F80ACE9

        :030000000200A15A

        :0C00A100787FE4F6D8FD75810A020003A8

        :00000001FF

        C語言源程序:

        /*******************************

        程序名稱:七彩LED漸變程序

        編寫者:ZH YU

        MCU:51/2051

        晶振:12MHz

        *********************************/

        #include

        #include

        sbit gl=P1^2; //綠色

        sbit rl=P1^1; //紅

        sbit bl=P1^0; //蘭

        timer(unsigned char t)

        {unsigned char b;

        for(b=0;b

        {_nop_();

        _nop_();

        _nop_();}

        }

        ledout(unsigned char g,r,b)

        {unsigned char a;

        for(a=0;a<10;a++)

        {if(g!=0)

        {gl=0;timer(g);gl=1;}

        if(r!=0)

        {rl=0;timer(r);rl=1;}

        if(b!=0)

        {bl=0;timer(b);bl=1;}

        }

        }

        main()

        { unsigned char g,r,b;

        g=200;r=0;b=0;

        while(1)

        {if(g!=0&&b==0)

        {g--;r++;}

        if(r!=0&&g==0)

        {r--;b++;}

        if(b!=0&&r==0)

        {b--;g++;}

        if(g+r+b!=200)

        {g=200;r=0;b=0;}

        ledout(g,r,b);

        }

        }

        入無法下載HEX,大家可以用KEIL自己編譯,或者使用記事本保存HEX代碼(重命名為.HEX文件)都可以

        再把.hex文件寫入單片機,接好電路即可工作



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宁波市| 清丰县| 乐昌市| 扬中市| 太和县| 丰原市| 余干县| 昂仁县| 阜宁县| 集贤县| 邹平县| 成都市| 简阳市| 绵竹市| 习水县| 陆河县| 珠海市| 广昌县| 清苑县| 洪洞县| 佛学| 平遥县| 天镇县| 本溪| 澄迈县| 通化市| 高尔夫| 马山县| 肃宁县| 陆川县| 曲麻莱县| 布拖县| 彩票| 都昌县| 通渭县| 娱乐| 金坛市| 沂源县| 马龙县| 鹤庆县| 甘肃省|