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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

pic單片機CCP脈沖(PWM)輸出

作者:佚名   來源:不詳   點擊數:  更新時間:2014年08月31日   【字體:

#include  <pic.h>
//該程序用于使CCP1模塊產生分辨率為10位的PWM波形,占空比為50%,根據PWM_WIDE計算頻率。proteus仿真通過
//CCP1(CCP2相同設置)模塊的PWM工作方式初始化子程序(中斷為什么不行呢?)
#define CCP1
#define PWM_WIDE   0x7F
#define PWM_TOTAL PWM_WIDE<<1

 

void CCPINIT()
{
#ifdef CCP1
 CCPR1L = PWM_WIDE;
 CCP1CON = 0X3C;      //設置CCP1模塊為PWM工作方式,且其工作
                      //循環的低2位為11,高8位為01111111=7F
 TRISC  &= 0XFB;      //設置CCP1引腳為輸出方式
#else
 CCPR2L = PWM_WIDE;
 CCP2CON = 0X3C;   // CCP2
 TRISC  &= 0XFD;      //設置CCP2引腳為輸出方式
#endif
 PR2=PWM_TOTAL;       //設置PWM的工作周期
 INTCON &= 0X00;      //禁止總中斷和外圍中斷 
}
void DelayMs(unsigned int ms)
{
 unsigned char i;
 while(--ms)
 {
  for(i=110;i>0;--i);
 }
}
//主程序
main()
{
 TRISD = 0xff;
    CCPINIT();        //CCP1模塊的PWM工作方式初始化
 T2CON |= 0X04;    //打開TMR2,且使其前分頻為0,
                      //同時開始輸出PWM波形
 while(1)          //系統開始輸出PWM波形。如果系統是多任務的,則可以在此執行其它任務,而不會影響PWM波形的產生
 {
  if(RD0 == 1)
  {
   DelayMs(5);
   if(RD0 == 1)//設置條件停止發送脈沖,中止(步進電機等)設備
   {
    T2CON &= 0xFB;
   #ifdef CCP1
    CCPR1L=0;
   #else
    CCPR2L=0;
   #endif
    PR2=0;
    while(!RD0);
   }
   else
   {
    T2CON |=0X04;
   #ifdef CCP1
    CCPR1L = PWM_WIDE;
   #else
    CCPR2L = PWM_WIDE;
   #endif
    PR2 = PWM_TOTAL;
   }  
  } 
 }
}

關閉窗口
主站蜘蛛池模板: 伊人伊人伊人 | 久久久成人动漫 | 91精品国产欧美一区二区成人 | 亚洲一区二区三区免费视频 | 91精品国产欧美一区二区 | 一级毛片在线播放 | 久久久www成人免费精品张筱雨 | 影音先锋中文字幕在线观看 | 二区在线视频 | 中国美女撒尿txxxxx视频 | 成人免费在线电影 | www.99精品 | 欧美专区在线 | 欧美极品少妇xxxxⅹ免费视频 | 一级免费视频 | 亚洲国产免费 | 在线播放一区 | 成人毛片一区二区三区 | 五月婷婷激情网 | 国产成人久久精品一区二区三区 | 精品国产不卡一区二区三区 | 欧美在线视频一区 | 国产精品久久久久无码av | 国产一区二区在线播放 | 日韩精品视频一区二区三区 | 亚洲午夜视频在线观看 | 久久久久久久国产精品视频 | av一区二区三区四区 | 午夜二区 | 国产精品亚洲一区 | 亚洲欧美一区二区三区在线 | 欧美淫片| 国产精品久久久久久久久污网站 | 亚洲欧美视频一区 | 亚洲成人高清 | 羞羞的视频在线 | 日韩久久成人 | 亚洲免费人成在线视频观看 | 亚洲成av人片在线观看 | 国产操操操 | 久久在线免费 |