久久久久久久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;
   }  
  } 
 }
}

關閉窗口
主站蜘蛛池模板: 在线不卡视频 | 日本伊人 | 999精品视频| 久久久久九九九九 | 不卡日本 | 国产成人福利 | 亚洲精品乱码久久久久 | 久久一级片 | a级毛毛片 | 综合激情网站 | 日本午夜视频 | 日韩成人精品一区二区 | 一级片在线观看视频 | 国产女人18毛片水18精品 | 久久久美女 | 国产精品美女久久久久av爽 | av男人天堂网 | 91蜜桃视频 | 国产美女自拍 | 懂色av一区二区三区 | 国产精品久久久久久久久久 | 欧美激情网 | 成人视屏在线观看 | 亚洲成人黄色 | 成人国产精品视频 | 国产又黄又爽 | 午夜精品久久久久久久久久久久 | 91精品国产综合久久久蜜臀九色 | 久久艳片www.17c.com | 九九久久精品视频 | 中文字幕一区二区三区在线观看 | 欧美一区二区精品 | 免费特级毛片 | 精品蜜桃一区二区三区 | 在线a | 久草福利资源 | 国产无精乱码一区二区三区 | 黄色一级视频 | 日本一级淫片色费放 | 欧洲精品一区二区 | 国产一区二区中文字幕 |