新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > PWM控制LED燈的亮度(C 語言)

        PWM控制LED燈的亮度(C 語言)

        作者: 時間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
        控制LED燈的亮度,通過調(diào)節(jié)電壓的方式可以達到,但不理想,而且可調(diào)的范圍很小,電壓稍高,還容易把LED燒毀,唯一可行的方法就是通過PWM(脈沖寬度調(diào)節(jié))來控制其亮度.

        以下程序是在單片機中控制LED...

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


        //***********************
        // PWM控制LED發(fā)光亮度
        // 作者:周 勇
        //***********************

        #include
        sbit speaker=P2^1;//定義喇叭控制引腳
        sbit up=P1^5; //定義UP鍵
        sbit down=P1^6; //定義DOWN鍵
        static unsigned char pwm;
        unsigned char t;
        main ()
        {
        void delay (unsigned char ms);
        void beep (void);
        void alarm_delay (void);
        TMOD=0X21;
        ET0=1;
        ET1=1;
        EA=1;
        TH0=0XFC; //定時器0,定時1ms
        TL0=0X18;
        TH1=0X9C; //定時器1,定時0.1ms
        TL1=0X00;
        TR0=1;
        PT1=1; //定義定時器1優(yōu)先中斷
        pwm=0x9c;
        while (1)
        {
        do
        {
        pwm++;
        delay (10);
        if (pwm==0xff) beep();
        }
        while (pwm!=0xff);

        do
        {
        pwm--;
        delay (10);
        if (pwm==0x01) beep ();
        }
        while (pwm!=0x01);

        }
        }

        void timer0 (void) interrupt 1 //定義定時器0
        {
        TH0=0XFC;
        TL0=0X18;
        TR1=1;
        TH1=pwm;
        P0=0X00;

        }

        void timer1(void) interrupt 3 //定義定時器1
        {
        P0=0XFF;
        TR1=0;
        }

        void delay (unsigned char ms)//延時
        {
        unsigned char i=120;
        while (ms--)
        {
        while (i--)
        {}
        }
        }

        void beep (void)//報警
        {
        unsigned char b;
        for (b=40;b>=2;b--)
        {speaker=!speaker;
        alarm_delay ();

        }
        speaker=1;
        }

        void alarm_delay (void) //報警延時
        {
        unsigned char time;
        for (time=0;time<120;time++)
        {}
        }



        關(guān)鍵詞: PWM控制LED

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 澄城县| 兴城市| 合江县| 丹东市| 叶城县| 东至县| 鞍山市| 尤溪县| 日喀则市| 五原县| 额尔古纳市| 扎囊县| 治多县| 高台县| 繁峙县| 文水县| 比如县| 贵南县| 达尔| 古蔺县| 全南县| 平山县| 泾川县| 铜鼓县| 翁牛特旗| 桐梓县| 祁阳县| 泗阳县| 黄龙县| 南昌县| 延长县| 海宁市| 兴仁县| 承德县| 平江县| 布拖县| 迭部县| 博客| 陵水| 景东| 莎车县|