新聞中心

        EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > PWM控制LED漸亮漸滅示例程序

        PWM控制LED漸亮漸滅示例程序

        作者: 時(shí)間:2013-04-24 來(lái)源:網(wǎng)絡(luò) 收藏
        /***********************************************************程序說(shuō)明:利用定時(shí)器控制產(chǎn)生占空比可變的 PWM按S6,PWM值增加,則占空比減小,
        燈漸暗。 按S3,PWM值減小,則占空比增加, 燈漸亮。
        當(dāng)PWM值增加到最大值或減小到最小值時(shí),蜂鳴器將報(bào)警。
        ***********************************************************/#include reg51.h >
        #include intrins.h >sbitK1 =P3^2 ; //增加鍵
        sbitK2 =P3^3 ; //減少鍵
        sbitBEEP =P3^7 ; //蜂鳴器
        unsigned char PWM=0x7f ; //賦初值void Beep();
        void delayms(unsigned char ms);
        void delay(unsigned char t);/*********************************************************/
        void main()
        { P0=0xff;
        TMOD=0x21 ;
        TH0=0xfc ; //1ms延時(shí)常數(shù) 12M
        TL0=0x18 ; //頻率調(diào)節(jié) TH1=PWM ; //脈寬調(diào)節(jié)
        TL1=0 ; EA=1;
        ET0=1;
        ET1=1;

        TR0=1 ; while(1)
        {
        do{
        if(PWM!=0xff)
        {
        PWM++ ;
        delayms(10);
        }
        else
        Beep();
        }while(K1==0); do{
        if(PWM!=0x01)
        {
        PWM-- ;
        delayms(10);}
        else
        Beep() ;
        }while(K2==0);
        }
        }/*********************************************************/
        // 定時(shí)器0中斷服務(wù)程序.
        /*********************************************************/
        void timer0() interrupt 1
        {
        TR1=0 ;
        TH0=0xfc ;
        TL0=0x66 ;
        TH1=PWM ;
        TR1=1 ;
        P0=0x00 ; //啟動(dòng)輸出
        }/*********************************************************/
        // 定時(shí)器1中斷服務(wù)程序
        /*********************************************************/
        void timer1() interrupt 3
        {
        TR1=0 ;
        P0=0xff ; //結(jié)束輸出
        }/*********************************************************/
        //蜂鳴器子程序
        /*********************************************************/void Beep()
        {
        unsigned char i;
        for (i=0;i100;i++)
        {
        delay(100);
        BEEP=!BEEP; //Beep取反
        }
        BEEP=1; //關(guān)閉蜂鳴器
        delayms(100);
        } /*********************************************************/
        // 延時(shí)子程序
        /*********************************************************/
        void delay(unsigned char t)
        {
        while(t--) ;
        }/*********************************************************/
        // 延時(shí)子程序
        /*********************************************************/
        void delayms(unsigned char ms) {
        unsigned char i ;
        while(ms--)
        {
        for(i = 0 ; i 120 ; i++) ;
        }
        }

        pwm相關(guān)文章:pwm是什么


        pwm相關(guān)文章:pwm原理


        蜂鳴器相關(guān)文章:蜂鳴器原理


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

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 萍乡市| 兰坪| 日照市| 南郑县| 沁水县| 思茅市| 偏关县| 东方市| 定州市| 宁都县| 类乌齐县| 威宁| 体育| 抚顺市| 敦化市| 唐河县| 西平县| 武城县| 政和县| 虹口区| 泊头市| 申扎县| 陆良县| 南康市| 丰宁| 青铜峡市| 嘉禾县| 乡宁县| 渝北区| 迁安市| 锦屏县| 海门市| 宾川县| 象山县| 凤庆县| 隆德县| 静乐县| 闽侯县| 乡城县| 大邑县| 饶阳县|