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

正文內(nèi)容

課程設計論文-基于單片機的轉(zhuǎn)速控制系統(tǒng)設計(編輯修改稿)

2025-09-07 07:35 本頁面
 

【文章內(nèi)容簡介】 以通過手動設置占空比值來控制轉(zhuǎn)速。4. 在自動控制轉(zhuǎn)速中,主要是用了PID算法,計算占空比值來達到目的,發(fā)現(xiàn)進入模式4后,并不能自動控制轉(zhuǎn)速,把返回的占空比值放到主函數(shù)中,自動控制轉(zhuǎn)速得到實現(xiàn);在PID算法中,要注意形參并不能與主函數(shù)的實參相同,否則會出錯。 5結(jié)論本次的單片機轉(zhuǎn)速控制系統(tǒng)設計,實現(xiàn)了對電機的啟動與停止,可是設置轉(zhuǎn)速、顯示實時速度,實現(xiàn)用PWM轉(zhuǎn)速的閉環(huán)控制;實驗中轉(zhuǎn)速調(diào)節(jié)范圍為300r/min——3400r/min,在控制轉(zhuǎn)速部分,測速誤差波動為上下60r/min,在要求的誤差范圍內(nèi),達到了較好的效果。系統(tǒng)設計是以STC89C51單片機為核心,硬件系統(tǒng)包括STC89C51控制模塊、按鍵模塊、傳感器模塊、驅(qū)動模塊、顯示模塊;軟件部分由主函數(shù)控制模塊、定時中斷和外部中斷模塊、鍵盤部分、PID控制轉(zhuǎn)速模塊、LCD初始化模塊等組成。系統(tǒng)模式設置中,在模式1中按下UP鍵啟動電機,通過霍爾傳感器接受信號,LCD顯示實時轉(zhuǎn)速,此時PWM值為100,轉(zhuǎn)速為全速,一段時間后達到一個穩(wěn)定值;在模式2設定轉(zhuǎn)速模式,指示燈D1亮,在ENT鍵下選擇要更改的位,通過UP與DN鍵對轉(zhuǎn)速進行設置,并在LCD上顯示輸入的設定值;將設定值傳給單片機,可以通過模式3手動設置PWM的值來控制轉(zhuǎn)速;在模式4中,通過與設定的轉(zhuǎn)速做比較,進行PID計算,確定新的PWM值來控制電機,使其達到設定的轉(zhuǎn)速,并在LCD上顯示出來。當按下復位鍵后,回到待機模式,設定值回到初始值,電機停止轉(zhuǎn)動,PWM對應值為0。在軟件調(diào)試中,主程序中要先關PWM,否則在實際調(diào)試過程中,開始沒有啟動電機,但LCD上會顯示個小的實際速度值;在對電機進行停止和啟動時,可以通過PWM占空比的值來進行設置,啟動時PWM賦值為100,停止時PWM賦值0,要注意不能寫成等于,而不能通過打開火關閉PWM來進行啟動和停止。 參考文獻[1] 程德福.智能義器.機械工業(yè)出版社,2009.9[2] 萬文略.單片機原理及應用.重慶:重慶大學出版社,2004.3 [3] 胡文金.單片機系統(tǒng)實訓教程.重慶:重慶大學出版社,2005[4] 林金陽.基于MC51單片機的直流電機PWM調(diào)速系統(tǒng).長春工程學院學報(自然科學版)2009年第10卷第3期[5] 張洪潤.單片機應用技術教程.北京:清華大學出版社,2004.3 附錄1 硬件電路圖附錄2 程序清單include include void InitLCD()。 //LCD初始化void delay(char i)。 //延時void inttimer()。 //定時器初始化void key_scan()。 //鍵值掃描void Function()。void zhishi()。unsigned char pid(unsigned int SpeedSet,unsigned int CurrentSpeed)。sbit CS=P1^0。 //LCD設置sbit SID=P1^1。sbit SCLK=P1^2。sbit B_light=P2^7。sbit K_M=P2^0。 //按鍵口定義sbit K_U=P2^1。sbit K_D=P2^2。sbit K_E=P2^3。sbit D1=P1^5。 //指示燈定義sbit D2=P1^6。sbit D3=P1^7。sbit PWM=P1^4。 //PWM定義sbit HUOER=P3^2。 //霍爾 中斷采集脈沖 定義unsigned int count0=0。 //從0值開始計數(shù)unsigned char Mode=0。 //模式0 待機 模式1“啟動、停止”并實時速度 模式2 速度設定 模式3 PWM占空比 模式4 PID控制參數(shù)unsigned char speed1[4]={0000},speed2[4]={1500},pwm1[3]={000},PID[3]={000}。//實時速度 速度設定 PWM占空比 PID參數(shù) unsigned int temp=0,temp1=1500,temp2=0。//實時速度 速度設定 PWM占空比unsigned int flag1=0,flag2=0,flag3=0。 //速度設定位標志 占空比設定“位”標志 PID三個參數(shù)修改標志float Kp=,Ki=,Kd=。 //PID三個參數(shù) 初值/******************************LCD初始設置**********************/void send_mand(unsigned char mand_data) //發(fā)送命令{ unsigned char i。 unsigned char i_data,temp_data1,temp_data2。 i_data=0xf8。 //操作命令,可以查看資料 delay(10)。 CS=1。 SCLK=0。 for(i=0。i8。i++) { SID=(bit)(i_dataamp。0x80)。 SCLK=0。 SCLK=1。 i_data=i_data1。 } i_data=mand_data。 i_dataamp。=0xf0。 for(i=0。i8。i++) { SID=(bit)(i_dataamp。0x80)。 SCLK=0。 SCLK=1。 i_data=i_data1。 } i_data=mand_data。 temp_data1=i_dataamp。0xf0。 temp_data2=i_dataamp。0x0f。 temp_data1=4。 temp_data2=4。 i_data=temp_data1|temp_data2。 i_dataamp。=0xf0。 for(i=0。i8。i++) { SID=(bit)(i_dataamp。0x80)。 SCLK=0。 SCLK=1。 i_data=i_data1。 } CS=0。 }void send_data(unsigned char mand_data) //發(fā)送數(shù)據(jù){ unsigned char i。 unsigned char i_data,temp_data1,temp_data2。 i_data=0xfa。 //操作命令,可以查看資料 delay(10)。 CS=1。 for(i=0。i8。i++) { SID=(bit)(i_dataamp。0x80)。 SCLK=0。 SCLK=1。 i_data=i_data1。 } i_data=mand_data。 i_dataamp。=0xf0。 for(i=0。i8。i++) { SID=(bit)(i_dataamp。0x80)。 SCLK=0。 SCLK=1。 i_data=i_data1。 } i_data=mand_data。 temp_data1=i_dataamp。0xf0。 temp_data2=i_dataamp。0x0f。 temp_data1=4。 temp_data2=4。 i_data=temp_data1|temp_data2。 i_dataamp。=0xf0
點擊復制文檔內(nèi)容
語文相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1