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

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

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

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

#include  <pic.h>
//該程序用于使CCP1模塊產(chǎn)生分辨率為10位的PWM波形,占空比為50%,根據(jù)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工作方式,且其工作
                      //循環(huán)的低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)          //系統(tǒng)開始輸出PWM波形。如果系統(tǒng)是多任務的,則可以在此執(zhí)行其它任務,而不會影響PWM波形的產(chǎn)生
 {
  if(RD0 == 1)
  {
   DelayMs(5);
   if(RD0 == 1)//設置條件停止發(fā)送脈沖,中止(步進電機等)設備
   {
    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;
   }  
  } 
 }
}

關閉窗口
主站蜘蛛池模板: 欧美成人一区二区三区 | 久久精品亚洲精品国产欧美 | 日本不卡免费新一二三区 | 最新国产精品视频 | 偷拍自拍在线观看 | 欧产日产国产精品视频 | 久久午夜视频 | 日本成人中文字幕在线观看 | 色免费看 | 亚洲国产精品一区 | 欧美黄在线观看 | 日韩看片 | 欧美中文视频 | 四虎免费视频 | 久热久 | 国产一区二区三区 | 欧美成人二区 | 欧州一区二区三区 | 久草www | 精品二区 | wwwww在线观看 | 亚洲视频欧美视频 | 日韩成人免费视频 | 日韩三级电影在线看 | 国产欧美三区 | 国产区在线观看 | 免费日本视频 | 国产在线一区二区 | 熟女毛片 | 日韩成人高清 | 一区二区在线免费观看 | 精品国产精品国产偷麻豆 | 欧美aⅴ | 国产成人久久 | 国产精品高清在线 | 天天激情综合 | 91精品成人久久 | 免费黄色在线 | 成年人在线视频 | 日韩综合在线 | 国产精品久久久久久久毛片 |