久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1835|回復: 1
收起左側

51單片機高效PWM方案程序

[復制鏈接]
ID:612853 發表于 2019-9-18 00:19 | 顯示全部樓層 |閱讀模式
一種用51單片機實現的高效PWM方案,只需要兩次中斷即可實現可調的PWM,絕對原創,盜版必究!


/********************************************************************************************************/
/*在現在我已知的用51單片機產生PWM的方法中,基本都是通過定時器中斷來實現的,這樣一個PWM周期就包含了很多
小中斷,浪費了大量時間,尤其是當程序較復雜時,往往就會出問題!而本設計則克服了這個缺點!一個周期只需要兩
次中斷!絕對的好方法!
為了讓大家都能夠學到這個好方法,我特整理了這個程序,希望能對大家有所幫助!      */
//作者:嘻嘻嘻      2012年4月
/********************************************************************************************************/



#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

sbit OUT=P1^0;    //定義PWM端口
unsigned int PWM;
unsigned int PWM_0;
unsigned int PWM_H,PWM_L;
bit sign=0;


/*------------------------------------------------
                    定時器2初始化子程序
------------------------------------------------*/
void Init_Timer2(void)
{
T2CON=0X00;                     //使用16位自動重裝        
RCAP2H=0XFE;                        
RCAP2L=0XE0;                           //給定初值,0.8MS
TH2=0XFE;
TL2=0XE0;
EXEN2=1;
OUT=1;
ET2=1;           //定時器中斷打開
EA=1;            //總中斷打開
TR2=1;           //定時器開關打開
sign=0;
}
/*------------------------------------------------
                    主程序
------------------------------------------------*/
void delay()
{
        unsigned char i=60;
        for(;i>0;i--);
}
main()
{
Init_Timer2();
PWM_0=12000;                                               //初始化PWM
//RCAP2H=(unsigned char)((65536-PWM)>>8);
//RCAP2L=(unsigned char)((65536-PWM)&0x00ff);                //重新賦值,200US
while(1)
{         
for(;PWM_0>2;PWM_0--) delay();
for(;PWM_0<9999;PWM_0++) delay();
        }
}

/*------------------------------------------------
                 定時器中斷子程序
------------------------------------------------*/
void Timer2_isr(void) interrupt 5
{
if(sign==1)
  {
          TR2=0;         
    PWM=PWM_0;
         RCAP2H=(unsigned char)((65536-PWM)>>8);
    RCAP2L=(unsigned char)((65536-PWM)&0x00ff);                        
    sign=0;
        OUT=0;
        TF2=0;
        TR2=1;
  }
else
  if(sign==0)
  {
   TR2=0;  
   //PWM=660-PWM_0;                                                                          //1000HZ
   //PWM=3000-PWM_0;                                          //300HZ
   PWM=19550-PWM_0;                                                                  //50HZ
   RCAP2H=(unsigned char)((65536-PWM)>>8);
   RCAP2L=(unsigned char)((65536-PWM)&0x00ff);                    
   sign=1;
   OUT=1;
   TF2=0;
   TR2=1;
  }

}


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:156220 發表于 2019-9-18 09:02 | 顯示全部樓層
學習好方法,謝謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区三区视频 | 国产美女精品 | 国产精品久久久久久久午夜片 | 91精品久久久久久久久中文字幕 | 亚洲综合色视频在线观看 | 人人种亚洲 | 能免费看的av | 天天影视亚洲综合网 | www.中文字幕.com | 天天操夜夜爽 | 国产精品一区二区视频 | 黄色网络在线观看 | 日批免费看 | 欧美一级欧美三级在线观看 | 黄色国产大片 | 欧美日韩国产一区二区三区 | 亚洲欧美国产一区二区三区 | 亚洲国产一区二区在线 | 久久久久久久一区二区 | 国产精品久久精品 | 成人欧美一区二区三区白人 | 夜夜干夜夜操 | 超碰成人免费观看 | 日韩精品一区二区三区四区视频 | 亚洲精品久久久一区二区三区 | 久久天堂| 久久免费精品视频 | 999国产视频 | 国产精品综合一区二区 | 中文精品视频 | 三级视频网站 | 瑟瑟激情 | 日韩在线| 粉嫩高清一区二区三区 | 蜜臀91视频 | 亚洲欧美精品 | 成人av片在线观看 | 国产视频1 | 伊人中文字幕 | 99久久久国产精品免费消防器 | 精品国产31久久久久久 |