日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 顯示光電 > 電源-LED驅(qū)動
[導(dǎo)讀]/***********************************************************程序說明:利用定時器控制產(chǎn)生占空比可變的 PWM按S6,PWM值增加,則占空比減小, LED 燈漸暗。 按S3,PWM值減

/***********************************************************程序說明:利用定時器控制產(chǎn)生占空比可變的 PWM按S6,PWM值增加,則占空比減小,
LED 燈漸暗。 按S3,PWM值減小,則占空比增加,LED 燈漸亮。
當(dāng)PWM值增加到最大值或減小到最小值時,蜂鳴器將報警。
***********************************************************/#include < reg51.h >
#include < intrins.h >sbit  K1 =P3^2 ;                    //增加鍵
sbit  K2 =P3^3 ;                    //減少鍵
sbit  BEEP =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ù) 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);
   }
}/*********************************************************/
// 定時器0中斷服務(wù)程序.
/*********************************************************/
void timer0() interrupt 1
{  
    TR1=0 ;
    TH0=0xfc ;
    TL0=0x66 ;
    TH1=PWM ;
    TR1=1 ;
    P0=0x00 ;      //啟動輸出
}/*********************************************************/
// 定時器1中斷服務(wù)程序
/*********************************************************/
void timer1() interrupt 3
{
    TR1=0 ;
    P0=0xff ;     //結(jié)束輸出
}/*********************************************************/
//蜂鳴器子程序
/*********************************************************/void Beep()     
  {
      unsigned char i  ;
      for (i=0  ;i<100  ;i++)
        {
          delay(100)  ;
          BEEP=!BEEP  ;                //Beep取反
        }
     BEEP=1  ;                            //關(guān)閉蜂鳴器
     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++) ;
     }
}

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉