久久久久久久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日本在线观看 | 天天操夜夜操免费视频 | 亚洲视频免费在线观看 | 在线观看亚洲欧美 | 亚洲综合在线视频 | 日干夜干 | 亚洲网站在线观看 | 一区二区在线不卡 | 女人精96xxx免费网站p | 久久av一区二区 | 九色 在线 | 视频一二区 | 国产不卡一区在线观看 | 一区二区三区在线 | 欧美 日韩 国产 在线 | 日韩欧美在线不卡 | 亚洲精品电影在线观看 | 中文字幕在线人 | 日韩av电影在线观看 | 男女免费观看在线爽爽爽视频 | 中文字幕不卡在线88 | 欧美日韩亚洲国产 | 精品国产鲁一鲁一区二区张丽 | 91一区二区 | 欧美一区二区大片 | 性色视频| 久久国产欧美日韩精品 | 国产高清精品一区二区三区 | 国产精品久久久久久久午夜片 | 国产精品精品久久久 | 日韩一二三区视频 | 蜜桃精品噜噜噜成人av |