freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

電動自行車驅(qū)動控制系統(tǒng)畢業(yè)設(shè)計-資料下載頁

2025-06-17 14:18本頁面
  

【正文】 6分頻產(chǎn)生的PWM信號頻率為OSC/4/256 AUXR1 |= 0X40。 //PCA設(shè)置到P4口,PCA模塊0做PWM輸出用 CCAP0H = CCAP0L =127。// 0x80。 //設(shè)置初始占空比 PCAPWM0 =0。 CCAPM0 = 0X40。//0X42。 //打開CCAPM0寄存器的PWM0 和ECOM0 CCAP1L = 0。 CCAP1H = 0。 CCAPM1 = 0x21。 //PCA模塊0為16位捕獲模式(上升沿捕獲,可測從高電平開始的整個周期),且產(chǎn)生捕獲中斷// CCAPM1 = 0x11。//PCA模塊0為16位捕獲模式(下降沿捕獲,可測從低電平開始的整個周期),且產(chǎn)生捕獲中斷// CCAPM1 = 0x31。//PCA模塊0為16位捕獲模式(上升沿/下降沿捕獲,可測高電平或者低電平寬度),且產(chǎn)生捕獲中斷// EA = 1。 //開總中斷 主程序中打開 CR = 1。 //PCA定時器開始工作}/***************PWM脈沖占空比調(diào)節(jié)函數(shù)********************/void PWM_DAC(unsigned char pwm0temp){ CCAP0H = CCAP0L =255 pwm0temp。}void pca_pro(void){ float m。 float f。 m = capture_period*。 //前后捕獲值,轉(zhuǎn)換成溢出中斷次數(shù) m = m + capture_pca。 //總溢出中斷次數(shù) if( m == ||START_F==0 ) rpm = 0。 else{ m = m * 。 //us 一次捕獲所用時間 , f = 。 //頻率,一秒的轉(zhuǎn)數(shù) //f = 。 rpm =( 60 * f)/8 。 // ( 60 * f)/8。 碼盤有8個孔 一份60秒轉(zhuǎn)數(shù) }}/***********************中斷服務(wù)函數(shù)********************************/void PCA_Routine(void) interrupt 7 using 1{ static unsigned int current_capture_value, previous_capture_value 。 static unsigned int current_pca, previous_pca。 if ( CF == 1 ) //定時器溢出中斷到 { CF=0。 //清零中斷標(biāo)志位 current_pca++。 //定時器溢出次數(shù)++ } if (CCF1 == 1 ) { CCF1=0。 //清零中斷標(biāo)志位; current_capture_value = CCAP1H*256+CCAP1L。 capture_pca = current_pca previous_pca。 previous_pca = current_pca。 capture_period = current_capture_value previous_capture_value。 if(current_capture_valueprevious_capture_value) capture_pca。 previous_capture_value = current_capture_value。 } }電動機調(diào)速程序include include includeincludeunsigned char PWM0_TEMP= 128。 //占空比設(shè)置,賦初值0x80 50%占空比unsigned char duty_cycle。 //占空比unsigned char KEY1_F,KEY2_F,KEY3_F,KEY4_F。 //按鍵標(biāo)志位unsigned char START_F = 0。 //設(shè)置完成,啟動標(biāo)志位void Motor_Ctr_Int(void) { DIR = 0。 //初始化方向 設(shè)IR=1正 DIR=0反 PWM_DIS。 //初始化時不輸出PWM}////////////////PWM調(diào)節(jié)函數(shù)////////////////////////void PID_Adjust(void){ if(START_F==1) { PWM_DAC(PWM0_TEMP)。 //更新PWM參數(shù),改變輸出占空比 duty_cycle=PWM0_TEMP*100/255。 //占空比計算 CL=PWM0_TEMP 輸出高 CLPWM0_TEMP 輸出低 }}/******************按鍵掃描****************************//*KEY1P3^2INT0設(shè)定+ *//*KEY2P3^3INT1設(shè)定 *//*KEY3P3^4ET0RUN/STOP/DIR *//*KEY4P3^5ET1進入設(shè)置模式*/void Key(void){ static unsigned int key1_t,key2_t,key3_t,key4_t。 //按鍵有效計數(shù) if( KEY1 == 0 ) { ++key1_t。 //按鍵去抖 if( key1_t == 5 ) { KEY1_F = 1。 } } else key1_t= 0。 if( KEY2 == 0 ) { ++key2_t。 if( key2_t == 5 ) { KEY2_F = 1。 } } else key2_t= 0。 if( KEY3 == 0 ) { ++key3_t。 if( key3_t == 5 ) { KEY3_F = 1。 } } else key3_t= 0。 if( KEY4 == 0 ) { ++key4_t。 if( key4_t == 5 ) { KEY4_F = 1。 } } else key4_t= 0。}/******************按鍵處理****************************//*KEY1P3^2INT0設(shè)定+ *//*KEY2P3^3INT1設(shè)定 *//*KEY3P3^4ET0RUN/STOP/DIR *//*KEY4P3^5ET1進入設(shè)置模式*/void Key_symbol_process(void){ static unsigned char key4_flag。 //按鍵狀態(tài)標(biāo)志 key3_flag,key1_flag,key2_flag, if( KEY1_F ) { KEY1_F = 0。 PWM0_TEMP++。 //加速 } if( KEY2_F ) { KEY2_F = 0。 PWM0_TEMP。 //減速 } if( KEY3_F ) { KEY3_F = 0。 DIR=~DIR。 //方向切換 } if( KEY4_F ) { KEY4_F = 0。 key4_flag++。 //通過標(biāo)志位,設(shè)置個十百千設(shè)置 if(key4_flag==1) //KEY4P3^5ET1按第1次 { PWM_EN。 // 啟動 START_F = 1。 } if(key4_flag==2) //KEY4P3^5ET1按第2次 { START_F = 0。 MOTOR_STOP。 //快速制動 key4_flag = 0。 } }}主程序include include include includeincludeinclude//includeincludevoid DS10MS_CNT(void){ if( JS10MS_F ) //10ms到 { JS10MS_F = 0。//標(biāo)志位清零 Key()。 //按鍵掃描 }}void DS50MS_CNT(void){ if( JS50MS_F ) //10ms到 { JS50MS_F = 0。 //標(biāo)志位清零 pca_pro()。 //轉(zhuǎn)速處理 PID_Adjust()。 //PID調(diào)節(jié) }}void DS100MS_CNT(void){ if( JS100MS_F )//200ms到 { JS100MS_F = 0。 Key_symbol_process()。 //按鍵處理 }}void DS1MIN_CNT(void){ if( JS1MIN_F ) //1000ms到 { JS1MIN_F = 0。 //標(biāo)志位清零 Data_Display()。 //更新數(shù)據(jù)顯示 }}////////////////////////主函數(shù)///////////////////////void main(){ PWM_Init()。 //PWM初始化 Motor_Ctr_Int()。 //控制初始化 lcd_init()。 //160液晶初始化 Timer0_Init()。 EA = 1。//開總中斷 while (1) { DS10MS_CNT()。 DS50MS_CNT()。 DS100MS_CNT()。 DS1MIN_CNT()。 }}37
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1