亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 無刷0621.c

?? 采用stc12c5404ad的51系列內核無刷控制器程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
//===================================================================================================
#include<reg51.h>                //包含文件預處理命令
#define uchar unsigned char      //8位單片機習慣性定義
#define uint unsigned int        //8位單片機習慣性定義
//
//*********AD轉換要用到的特殊寄存器地址定義*************************************
sfr  adc_contr=0xc5;             //定義AD轉換控制寄存器地址    
sfr  adc_data=0xc6;              //定義AD轉換結果寄存器地址
sfr  p1m0=0x91;                  //帶有8路AD的P1口模式選擇寄存器0定義地址
sfr  p1m1=0x92;                  //帶有8路AD的P1口模式選擇寄存器1定義地址
//
//*********PWM輸出要用到的特殊寄存器地址定義************************************
sfr  ccap0h=0xfa;                //PCA模塊0捕捉/比較寄存器高8位
sfr  ccap1h=0xfb;                //PCA模塊1捕捉/比較寄存器高8位
sfr  ccap2h=0xfc;                //PCA模塊2捕捉/比較寄存器高8位
sfr  ccap3h=0xfd;                //PCA模塊3捕捉/比較寄存器高8位
sfr  pca_pwm0=0xf2;              //PCA模塊0-PWM寄存器
sfr  pca_pwm1=0xf3;              //PCA模塊1-PWM寄存器
sfr  pca_pwm2=0xf4;              //PCA模塊2-PWM寄存器
sfr  pca_pwm4=0xf5;              //PCA模塊3-PWM寄存器
sfr  ccapm0=0xda;                //PCA模塊0工作模式寄存器
sfr  ccapm1=0xdb;                //PCA模塊1工作模式寄存器
sfr  ccapm2=0xdc;                //PCA模塊2工作模式寄存器
sfr  ccapm3=0xdd;                //PCA模塊3工作模式寄存器
sfr  ch=0xf9;                    //PCA計數器高8位
sfr  cl=0xe9;                    //PCA計數器低8位
sfr  ccon=0xd8;                  //PCA控制寄存器
sfr  cmod=0xd9;                  //PCA工作模式寄存器
sbit cr=ccon^6;                  //PCA計數器控制位,1開0關
sbit epca_lvd=IE^6;              //PCA中斷允許控制位1開0關
sfr  auxr=0x8E;                  //定時器工作于1T控制位
//==============================================================================
sbit zb=P1^3;
sbit pwmal=P2^3;                 //A相下橋驅動定義
sbit pwmbl=P2^2;                 //B相下橋驅動定義
sbit pwmcl=P2^1;                 //C相下橋驅動定義
sbit led=P2^7;                   //指示燈定義
sbit abs=P2^5;                   //ABS剎車功能選擇口,對地為ABS功能
sbit shache=P3^0;                //剎車口定義,對地剎車
sbit fd=P3^3;                    //防盜檢測口定義
int ledcs;                       //定義一個指示燈閃燈次數變量
static fd_hej; 
static timebj;                   //定義一個定時器計數比較變量
static timejs;                   //定義一個定時器中斷計數次數變量
static pwm_bl;                   //PWM輸出變量
static zs_bl=20;                  //pwm舊的變量數據,備份的
static pwm_bls;                  //PWM軟啟動加速用變量
static shache_bz;                //剎車后該標志置1供軟啟動使用
static hehc;                     //霍爾數據暫存區
static hehc_bl;                  //上相霍爾數據暫存區,用于檢測霍爾變化
static dz_bz;                  //堵轉標志,為1堵轉
static dz_bz1;
static zbyx_bz;                  //轉把有效標志,歸0時為0,行駛時為1有效
static ds_bf=10;                    //轉把上次的數據備份
static zs_js;                      //轉速數據
static zs_ds_js;
static he_cs_bz1;
static he_cs_bz2;
static he_cs_bz3;
static he_cs_sj1;
static he_cs_sj2;
static he_cs_sj3;
int qy_1,qy_2,qy_3;              //欠壓測量暫存區1,2,3
int cs1,cs2,cs3,cs_fx;           //電機測速全局變量
static qy_bf;                    //欠壓上次的數據備份 
int h;                           //ABS剎車用變量
int dz;
int dz2;  
void zb_fx(void);
void he_gzjc(void);
void pwm_out(void); 
                  
//*********************AD轉換后PWM對照表*****************************************
uchar code pwmout[256]=
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,//60個1為1.3v以下
//------------------------------------------------------------------------------------------
 241,239,237,235,233,231,229,227,225,223,221,219,217,215,213,211,209,207,205,203,
 201,199,197,195,193,191,189,187,185,183,181,179,177,175,173,171,169,167,165,163,
 161,159,157,155,153,151,149,147,145,143,141,139,137,135,133,131,129,127,125,123,//60
 121,119,117,115,113,111,109,107,105,103,101,99,97,95,93,91,89,87,85,83,81,79,77,//23
 75,73,71,69,67,65,63,61,59,57,55,53,51,49,47,46,45,44,43,42,41,40,39,38,37,36,//26
 35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,//26
 9,8,7,6,5,4,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//34 //25個0為4.1--4.5v
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1};       //26個為4.5V以上
//*********************1MS延時函數***********************************************
void delay(int t)
{ 
  int i,j;
  for(i=0;i<t;i++)
   for(j=0;j<250;j++)
   ;
}
//*********************ABS剎車延時函數***********************************************
void delay1(int t)
{ 
  int i,j;
  for(i=0;i<t;i++)
   for(j=adc_data;j>0;j--)
   {}
}
//*********************設置AD電源和開漏函數**************************************
adc_power()
{
  adc_contr|=0x80;               //開AD電源
  delay(2);                      //首次開AD電源要延時1MS左右
  p1m0|=0x88;                    //設置P1.3和P1.7為開漏即AD轉換模式
  p1m1|=0x88;                    //同上
}
//-------------------設置P1.3為轉把測量通道函------------------------------------
set_p13_adc()
{ zb=1;
  adc_contr=0xe3;                //P13口為轉換通道
}
//-------------------設置P17為電機超載測量通道函數--------------------------------
set_p17_adc()
{
  adc_contr=0xe7;
}
//------------------設置P15為欠壓檢測測量通道-------------------------------------
set_p15_adc()
{adc_contr=0xe5;}
//===================測量電壓函數=================================================
get_ad_dy()
{ int adon=0;                    //定義一個整型變量用于檢測AD轉換是否結束
  adc_data=0;                    //AD轉換結果寄存器清0
  adc_contr|=0x08;               //轉換位置1啟動轉換
  while(adon==0)                 //循環判斷表達式成立反復執行語句,不成立退出
   {adon=adc_contr&0x10;}        //循環語句體,即判斷AD轉換是否完成,完成后高第4位為1
  adc_contr&=0xe7;               //循環語句退出轉換完成,清adc_flag,adc_start,停止轉換
}
//********************PWM初始化函數***********************************************
pwm_sz()
{
   cmod=0x82;                    //PCA在空閑模式下停止PCA計數器工作
                                 //PCA時鐘源為1/2溢出
                                 //禁止PCA計數器溢出中斷
   ccon=0x00;                    //禁止PCA計數器工作,清除中斷標志和計數器溢出標志
   cl=0x00;                      //清0計數器
   ch=0x00;
//======================以下為4路PWM輸出設置程序=============================
//設置模塊0為8位PWM輸出模式,PWM無需中斷支持,,脈沖在P3.7口輸出
   ccapm0=0x42;                  //***程序核心語句,-----0100,0010
   pca_pwm0=0x03;                //先關閉PWM-輸出為0,寫入0x00就可開PWM輸出
//設置模塊1為8位PWM輸出模式,PWM無需中斷支持,,脈沖在P3.5口輸出
   ccapm1=0x42;                  //***程序核心語句,-----0100,0010
   pca_pwm1=0x03;                //先關閉PWM-輸出為0,寫入0x00就可開PWM輸出
//設置模塊2為8位PWM輸出模式,PWM無需中斷支持,,脈沖在P2.0口輸出
   ccapm2=0x42;                  //***程序核心語句,-----0100,0010
   pca_pwm2=0x03;                //先關閉PWM-輸出為0,寫入0x00就可開PWM輸出
//模塊3未用
   epca_lvd=1;                   //開PCA中斷
   EA=1;                         //開總中斷
   cr=1;                         //開PCA計數器打開
}
//********************快閃燈函數***********************************************
led_k()
   { int k;                      //定義一個臨時變量
     for(k=0;k<ledcs;k++)        //表達式2條件不滿足即次數未到重復執行循環體語句
     {led=0;delay(700);
      led=1;delay(700);}
     delay(2000);
   }
//********************定時器0和1初始化函數*******************************************
time_csh()
{ 
   TMOD=0x11;                   //定時器0工作于8位自動重裝,1工作于方式1
   TH0=0x3c;                    //
   TL0=0x0b;
   TH1=0x3c;                    //12MHZ時50MS數據,20次為1S
   TL1=0x0b;
   IT0=1;                       //設置外中斷0為下降沿觸發358第一腳
   EX0=1;                       //開外中斷0
   EA=1;                        //開總中斷
   ET0=1;                       //開定時期0中斷
   ET1=1;                       //開定時期1中斷
}
//********************定時器0中斷函數PWM頻率用************************************
void time0(void)interrupt 1
 {TR0=0;TH0=0x3c;TL0=0x0b;
  zs_ds_js++;
  if(zs_ds_js==10)
   {if(zs_js<20)
    {  
     dz_bz1=1;zs_ds_js=0;zs_js=0;
     TH1=0X3C;TL1=0X0B;TR1=1;
     TH0=0x3c;TL0=0x0b;TR0=1;
    // pwm_bls=200;
    }
	 else
	 {dz_bz1=0;zs_ds_js=0;zs_js=0;zs_bl=zs_js;
     TH1=0X3C;TL1=0X0B;TR1=0;
     TH0=0X3C;TL0=0X0B;TR0=1;
    }
   }
	else
	{TR0=1;}
 }
//********************定時器1中斷函數*********************************************
void time1(void)interrupt 3
 { TR1=0;TH1=0x3c;TL1=0x0b;
   timejs++;
   if(timejs==12)           //中斷次數等于給定的次數就取反LED
     {if(zbyx_bz==0)        //轉把歸0標志為0,可以閃燈
      {led=~led;timejs=0;TR1=1;}
	  }
	if(timejs==80)
	{if(dz_bz1==1)
	 {TR0=0;dz_bz1=0;dz_bz=1;zs_ds_js=0;zs_js=0;timejs=0;}
	 else
	 {dz_bz=0;zs_ds_js=0;zs_js=0;timejs=0;}
	}
   TR1=1;
 }
//*******************電機堵轉轉函數***********************************************
//根據2S定時內一直堵轉的話置DZ_BZ為1,本函數檢測到該標志為1立即關閉所有輸出
//并閃爍指示燈間隔快閃2次提示,最后監控轉把歸0后可以退出本函數重新啟動
void dgdz(void)
{
  while(dz_bz1==1)
 {pwm_bls=170;he_gzjc();pwm_out();  
if(dz_bz==1)
 { TR0=0;TR1=0;
   pca_pwm0=0x03;                 //關3路PWM信號
   pca_pwm1=0x03;                 //
   pca_pwm2=0x03;                 //
   pwmal=0;pwmbl=0;pwmcl=0;       //關3路下橋
   set_p13_adc();                 //電機進入保護后開始等待轉把歸零后可以重新啟動
 do{ledcs=2;led_k();get_ad_dy();} //間隔開閃2次提示堵轉保護,測量轉把電壓是否歸0
 while(adc_data>=61);             //沒有歸0執行DO循環體語句
   led=1;dz_bz=0;dz_bz1=0;                 //轉把歸0后關指示燈清堵轉標志
 }
 }
}
//********************外中斷0函數限流或康銅開路************************************
void intt0()interrupt 0 
{
  TR0=0;TR1=0;                         //關PWM頻率
  pca_pwm0=0x03;                 //關3路PWM信號
  pca_pwm1=0x03;                 //
  pca_pwm2=0x03;                 //
  pwmal=0;pwmbl=0;pwmcl=0;       //關3路下橋
  set_p13_adc();
  get_ad_dy();
  while(adc_data>=61)
  {ledcs=4;led=0;get_ad_dy();}
  led=1;
}
//********************PWM驅動橋驅動輸出函數****************************************
void pwm_out(void)   //入口:pwm_bl里有轉把調速參數.出口:輸出全橋驅動信號
{ 
  switch(hehc)                               //多分支語句根據霍爾位置輸出對應節拍
  {case  0x01:{pca_pwm1=0x03;pca_pwm2=0x03;pwmal=0;pwmbl=0;
         ccap0h=pwm_bls;pwmcl=1;pca_pwm0=0x00;break;}  //第1拍ccap0h刷新參數開C下橋A上橋
       //-------------------------------------------------------------
   case  0x03:{pca_pwm0=0x03;pca_pwm2=0x03;pwmal=0;pwmbl=0;
         ccap1h=pwm_bls;pwmcl=1;pca_pwm1=0x00;break;}  //第2拍ccap1h刷新參數開C下橋b上橋
       //-------------------------------------------------------------    
   case  0x02:{pca_pwm0=0x03;pca_pwm2=0x03;pwmbl=0;pwmcl=0;
         ccap1h=pwm_bls;pwmal=1;pca_pwm1=0x00;break;}  //第3拍ccap1h刷新參數開a下橋b上橋
       //-------------------------------------------------------------  
   case  0x06:{pca_pwm0=0x03;pca_pwm1=0x03;pwmbl=0;pwmcl=0;
         ccap2h=pwm_bls;pwmal=1;pca_pwm2=0x00;break;}  //第4拍ccap2h刷新參數開a下橋c上橋
       //-------------------------------------------------------------  
   case  0x04:{pca_pwm0=0x03;pca_pwm1=0x03;pwmal=0;pwmcl=0;
         ccap2h=pwm_bls;pwmbl=1;pca_pwm2=0x00;break;}  //第5拍ccap2h刷新參數開b下橋c上橋
       //-------------------------------------------------------------  
   case  0x05:{pca_pwm1=0x03;pca_pwm2=0x03;pwmal=0;pwmcl=0;
         ccap0h=pwm_bls;pwmbl=1;pca_pwm0=0x00;break;}  //第6拍ccap0h刷新參數開b下橋a上橋     
  }
}

//********************上電初始化函數**********************************************
void sd_csh(void)
{P1=0xff;zb=0;P2=0xff;P3=0xff;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中文精品| 91色九色蝌蚪| 欧美精品一区二区三区一线天视频 | 一本色道久久综合精品竹菊| 国产精品久久看| 99久久精品国产麻豆演员表| 亚洲美女一区二区三区| 欧美视频一区在线| 日韩av午夜在线观看| 精品福利av导航| 成人av在线看| 午夜久久久久久久久久一区二区| 91精品国产色综合久久久蜜香臀| 久久99国产精品麻豆| 久久精品男人天堂av| 91香蕉视频在线| 丝袜诱惑制服诱惑色一区在线观看| 3d成人动漫网站| 国产成人精品一区二区三区网站观看| 国产精品毛片无遮挡高清| 欧美在线免费视屏| 麻豆91精品视频| 日韩一区在线播放| 欧美福利电影网| 床上的激情91.| 亚洲午夜电影网| 久久久久久久免费视频了| 色乱码一区二区三区88| 久88久久88久久久| 亚洲精品一二三四区| 日韩精品综合一本久道在线视频| 成人精品一区二区三区中文字幕| 亚洲国产一区视频| 中文一区二区在线观看| 欧美日韩国产美| 成人午夜短视频| 奇米综合一区二区三区精品视频| 欧美国产丝袜视频| 日韩免费高清电影| 色av成人天堂桃色av| 极品尤物av久久免费看| 艳妇臀荡乳欲伦亚洲一区| 久久久国产一区二区三区四区小说 | 欧美日本高清视频在线观看| 福利一区福利二区| 奇米色一区二区三区四区| 日韩美女视频一区| 国产日韩欧美麻豆| 日韩你懂的在线播放| 欧美片在线播放| 91香蕉视频mp4| 国产白丝网站精品污在线入口| 午夜不卡在线视频| 樱桃国产成人精品视频| 国产日韩欧美不卡在线| 欧美大黄免费观看| 欧美三区免费完整视频在线观看| 不卡的av电影在线观看| 久久99国产精品久久99| 秋霞电影网一区二区| 亚洲一区二区精品视频| 亚洲精品中文字幕在线观看| 中文字幕成人在线观看| 久久日一线二线三线suv| 5月丁香婷婷综合| 欧美精品久久一区| 欧美午夜精品一区二区三区| 91久久免费观看| 97精品视频在线观看自产线路二| 国产91对白在线观看九色| 国产精品一区在线观看乱码| 精品在线你懂的| 久久97超碰国产精品超碰| 日韩成人精品在线| 免费国产亚洲视频| 精品一区二区三区在线视频| 日韩av电影一区| 蜜臀av亚洲一区中文字幕| 日本在线播放一区二区三区| 日韩精品一区第一页| 丝袜美腿一区二区三区| 日本不卡在线视频| 激情久久久久久久久久久久久久久久| 免费日本视频一区| 国产一区二区三区美女| 国产成人鲁色资源国产91色综| 国产成人免费高清| 99re热视频这里只精品| 欧美中文字幕一二三区视频| 91国产福利在线| 欧美久久久久久蜜桃| 这里只有精品视频在线观看| 欧美成人在线直播| 久久久久国产成人精品亚洲午夜| 日本在线观看不卡视频| 美女任你摸久久| 国产高清成人在线| 99久久精品免费| 欧美日韩综合在线| 日韩欧美一区中文| 中文字幕乱码亚洲精品一区| 亚洲女同ⅹxx女同tv| 首页亚洲欧美制服丝腿| 韩国精品久久久| av爱爱亚洲一区| 欧美日本精品一区二区三区| 亚洲精品一区二区三区四区高清| 欧美国产乱子伦| 亚洲国产日韩一级| 狠狠狠色丁香婷婷综合久久五月| 国产精品99久久久久久久vr| 色噜噜久久综合| 日韩一卡二卡三卡国产欧美| 国产精品视频一二三区| 亚洲成av人片在线观看| 国产一区二区三区综合| 一本色道久久综合亚洲精品按摩| 日韩视频一区二区在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 一区二区成人在线| 国产一区二区三区高清播放| 91丝袜高跟美女视频| 欧美不卡在线视频| 亚洲免费观看高清完整版在线观看| 老司机精品视频在线| 成人激情电影免费在线观看| 日韩一区二区三区三四区视频在线观看 | 一区二区三区在线免费| 麻豆91免费看| 欧洲一区二区av| 国产色91在线| 奇米777欧美一区二区| 一本大道av伊人久久综合| 久久久久久黄色| 奇米综合一区二区三区精品视频| 99国产精品久| 国产喂奶挤奶一区二区三区| 日韩黄色免费网站| 在线日韩一区二区| 成人免费在线观看入口| 国产老肥熟一区二区三区| 欧美精选一区二区| 亚洲男人电影天堂| 国产99久久精品| 欧美变态凌虐bdsm| 午夜国产精品影院在线观看| 色婷婷精品久久二区二区蜜臂av| 国产欧美精品一区二区色综合朱莉| 免费在线看一区| 欧美猛男超大videosgay| 亚洲男同性恋视频| 99精品在线免费| 国产精品国产精品国产专区不蜜 | 日本特黄久久久高潮| 色狠狠一区二区| 国产精品色呦呦| 国产精品原创巨作av| 日韩限制级电影在线观看| 亚瑟在线精品视频| 欧美三级电影网| 亚洲一区二区三区在线看| 91亚洲精品久久久蜜桃| 国产精品久久久久久久蜜臀 | 成人黄色电影在线| 国产欧美一二三区| 成人sese在线| 国产精品午夜在线| 成人综合婷婷国产精品久久免费| 精品成人佐山爱一区二区| 久久福利资源站| 久久久一区二区三区捆绑**| 精品亚洲欧美一区| 久久精品亚洲一区二区三区浴池| 国产主播一区二区三区| 久久网站热最新地址| 国产白丝精品91爽爽久久| 欧美国产日韩a欧美在线观看 | 日韩一区二区电影网| 精品一区精品二区高清| 久久久精品国产免大香伊| 国产成人精品aa毛片| 亚洲人成精品久久久久| 欧美性一区二区| 日韩国产一区二| 日韩视频一区二区三区| 国产精品18久久久久| 国产精品毛片久久久久久久| 日本高清不卡在线观看| 亚洲国产精品欧美一二99| 欧美一区二区三区免费在线看 | 91精品综合久久久久久| 免费成人你懂的| 国产亚洲成av人在线观看导航| av在线这里只有精品| 亚洲电影欧美电影有声小说| 日韩视频在线一区二区| 成人性色生活片| 亚洲国产日韩综合久久精品| 久久综合网色—综合色88| va亚洲va日韩不卡在线观看|