精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
PWM控制LED燈漸亮漸滅源程序
PWM控制LED燈漸亮漸滅源程序
 更新時間:2010-1-28 11:07:30  點擊數(shù):0
【字體: 字體顏色

// PWM 控制 LED 燈漸亮漸滅程序[轉摘自偉納電子]
// 適用 ME300B 開發(fā)系統(tǒng)
// 晶振為11.0592M
// 利用定時器控制產生占空比可變的 PWM 波
// 按K1,PWM值增加,則占空比減小,LED 燈漸暗。
// 按K2,PWM值減小,則占空比增加,LED 燈漸亮。
// 當PWM值增加到最大值或減小到最小值時,蜂鳴器將報警。

#i nclude < reg51.h >
#i nclude < intrins.h >

sbit  K1 =P1^4 ;                    //增加鍵
sbit  K2 =P1^5 ;                    //減少鍵
sbit  BEEP =P3^7 ;                //蜂鳴器
unsigned char PWM=0x7f ;   //賦初值

void Beep();
void delayms(unsigned char ms);
void delay(unsigned char t);


void main()
{  

     P1=0xff; 
    TMOD=0x21 ;
    TH0=0xfc ;             //1ms延時常數(shù)
    TL0=0x66 ;            //頻率調節(jié)

    TH1=PWM ;            //脈寬調節(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!=0x02)
          {PWM-- ;delayms(10);}
           else Beep() ;
          }
     while(K2==0);
   }
}

/*********************************************************/
// 定時器0中斷服務程序.
/*********************************************************/
void timer0() interrupt 1

    TR1=0 ;
    TH0=0xfc ;
    TL0=0x66 ;
    TH1=PWM ;
    TR1=1 ;
    P0=0x00 ;      //啟動輸出
}

/*********************************************************/
// 定時器1中斷服務程序
/*********************************************************/
void timer1() interrupt 3
{
    TR1=0 ;
    P0=0xff ;     //結束輸出
}

/*********************************************************/
//蜂鳴器子程序
/*********************************************************/

void Beep()    
  {
      unsigned char i  ;
      for (i=0  ;i<100  ;i++)
        {
          delay(100)  ;
          BEEP=!BEEP  ;                //Beep取反
        }
     BEEP=1  ;                            //關閉蜂鳴器
     delayms(100);
  }

/*********************************************************/
// 延時子程序
/*********************************************************/ 
void delay(unsigned char t)
 {
    while(t--)   ;
 }

/*********************************************************/
// 延時子程序
/*********************************************************/
void delayms(unsigned char ms)

{
    unsigned char i ;
    while(ms--)
     {
        for(i = 0 ; i < 120 ; i++) ;
     }
}

  • 上一篇: C語言的幾種位操作運算
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    保德县| 兴安县| 淳安县| 淮安市| 通化县| 宁乡县| 盈江县| 睢宁县| 洛川县| 武宣县| 北流市| 乌恰县| 永德县| 东乌| 邵东县| 宁蒗| 桃源县| 塔河县| 高阳县| 河东区| 建德市| 越西县| 政和县| 南江县| 周至县| 筠连县| 淮北市| 资中县| 海阳市| 九江县| 阿拉善盟| 怀来县| 黄冈市| 北流市| 开平市| 社会| 鸡泽县| 凤庆县| 延庆县| 长治市| 崇明县|