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

正文內(nèi)容

基于51單片機控制步進電機畢業(yè)設(shè)計論文(參考版)

2025-07-01 00:12本頁面
  

【正文】 break。 write_inst(0x01)。 else L2+=1。 value = GetKey()。amp。 while(!distanceset)。 } while(~direction)。 } write_inst(0x01)。 } else if(state) { RunState=LEFT_RUN。state) { RunState=RIGHT_RUN。 if(flagamp。 else LED_SP=1。 ShowState()。 DoSpeed()。 else LED_SP=1。 ShowState()。 DoSpeed()。 count_1ms =0。 count_1ms++。 } //定時器void t_1(void) interrupt 3{ TL1 = (65536 5000)%256。 LED=1。 write_inst(0x08)。 AT89S51Config()。 }void StateOn(){ while(!state) { if(START==0) { if(START==0) { state=1。 TL1 = (65536 5000)%256。 //設(shè)置中斷 TH0=0xff。 //定時器0,1都為計數(shù)方式,方式2; IE=0x8f。 TimerFlag=0。 while(!distanceset) { Distance_Set()。state) { SetAngle()。i++) { while(!TimerFlagamp。 for(i=0。 k3=0。 DoDistance()。 DoSpeed()。void main(){ while(1) { StateOn()。bit k2=1。 //方向標志參數(shù)bit psign=0。 //定時器bit state=0。 unsigned char j=0。static unsigned char count_1ms=0。 unsigned char DA,DL,c。 //運行狀態(tài)unsigned int angle=90。unsigned char RunSpeed=125。char STATE_CCW[]=CCW。char DistanceSet[16]。char AngleChar[]=AR: 。 //位移計算char SpeedChar[]=SP(n/min):。 //顯示距離函數(shù)void CountDistance(void)。 //方向設(shè)定函數(shù)void Distance_Set(void)。 //檢查是否忙碌函數(shù)TYPEDEF_KEY GetKey(void)。 //蜂鳴器發(fā)聲函數(shù)void SetAngle(void)。 //角度void AT89S51Config(void)。 //顯示狀態(tài)void DoSpeed(void)。 //寫入指令函數(shù)void write_char(char)。 //啟動函數(shù)void inti_lcd(void)。 //蜂鳴器 typedef enum { NULL, KEY_Add, KEY_Reduce}TYPEDEF_KEY。 //角度設(shè)定指示燈sbit LED_Run=P0^4。 //系統(tǒng)指示燈sbit LED_SP=P0^2。 //位移sbit QUIT=P2^0。 //角度sbit direction=P3^1。 //忙碌標志sbit START=P2^3。 //LCM控制標志sbit E= P2^6。附錄程序代碼:include // 頭文件include define RIGHT_RUN 1 //正轉(zhuǎn)值define LEFT_RUN 0 //反轉(zhuǎn)值define LCDP P1 //定義LCD數(shù)據(jù)總線連接P1define KEY_PIN P3 //按鍵sbit RS= P2^4。沒有苦就也體會不到甜,沒有累就體會不到收獲的享受,回望曾經(jīng)憧憬的來到大學校園,內(nèi)心是忐忑的,此時,離開這幾年的地方,內(nèi)心卻又是不舍,感謝陪伴過一起的同學朋友,有你們,學習不會感到孤單。設(shè)計的過程培養(yǎng)了我的耐心與耐力,同時培養(yǎng)了發(fā)現(xiàn)問題、分析問題、解決問題的能力。多虧在這次畢業(yè)設(shè)計過程中,有著老師和同學的不斷幫助,是我克服了一個又一個困難,同時借助互聯(lián)網(wǎng)工具,使得自己對課題有著更深一層的認識,也加快了設(shè)計進度,最終完成了這次課題設(shè)計。當它低頻運動時,會出現(xiàn)電流震蕩問題,而當它高頻運動時,又會出現(xiàn)負載轉(zhuǎn)矩降低,達不到控制要求的問題。平時在課本上所學的知識點,當運用到實際設(shè)計中,會發(fā)現(xiàn)自己學的真是太膚淺。從選擇畢業(yè)設(shè)計課題到最終完成課題的設(shè)計要求,沒有他無微不至的指導,過程就不會那么相對順利。本系統(tǒng)設(shè)計電路簡單、成本低而且易于操作,能夠滿足人們對電機的高精度、寬范圍以及平穩(wěn)性的要求,具有廣泛的應用前景。事實證明,這幾個思路對系統(tǒng)設(shè)計的進度有著事倍功半的效果。根據(jù)設(shè)計方案,接下來就是設(shè)計硬件電路圖以及軟件程序的設(shè)計,這里有幾個思路,首先還是先查閱大量資料,關(guān)于步進電機的控制原理,以及單片機的各個引腳功能,然后開始設(shè)計電路圖,這里需要經(jīng)過多次修改與調(diào)試,特別是關(guān)于各個功能的調(diào)試,有時看似很合理的設(shè)計,當應用到實際的系統(tǒng)時,就會出現(xiàn)問題,此時,就需要多次論證,查出問題,然后尋找解決方案。做這次課題設(shè)計,首先查閱了步進電機的工作原理及特點,了解其主要特征,然后設(shè)計出相應的方案。第七章 總結(jié)在這幾個月的努力下,基于單片機的步進電機控制系統(tǒng)的設(shè)計最終順利完成。這樣會極大提高系統(tǒng)的精度,誤差也會小很多。 Zr——轉(zhuǎn)子齒數(shù);所以要提高步進電機的精度,就是要減少步距角,由這個計算公式可知,一是可以選擇相數(shù)與拍數(shù)更多的電機;二是在保持原有相數(shù)與拍數(shù)的情況下,增加步進電機的轉(zhuǎn)子齒數(shù),這樣也可以大幅度降低步距角,從而提高步進電機的精度。位移控制測試時也會出現(xiàn)這樣的情況,解決方法只能是提高步進電機的精度。圖610控制脈沖本次設(shè)計的誤差來源主要有來自于步進電機的步距角,由于本次仿真實驗步進電機默認步距角是45176。此系統(tǒng)的位移設(shè)定范圍是目的坐標的極徑的極限值是8,超出蜂鳴器會提醒,同時極徑需重新輸入。)90176。2(2,60176。)(2,60176。)135176。4(2,45176。)(2,45176。下表是作為測試幾組位移坐標的結(jié)果。若繼續(xù)按下“位移控制”,則表示繼續(xù)運行位移狀態(tài)。接下來就是通過量值鍵調(diào)整目的坐標的極徑,調(diào)整完畢就按下“位移控制”鍵,開始調(diào)整目的坐標的極角。 圖66 角度設(shè)定狀態(tài)設(shè)置環(huán)節(jié) 圖67 角度設(shè)定狀態(tài)運行結(jié)束(5)位移設(shè)定系統(tǒng)測試在進行位移設(shè)定功能的時候,需系統(tǒng)處于運行狀態(tài),與此同時,系統(tǒng)不在進行角度設(shè)定,否則無法操作。的固定角運行完畢,指示燈現(xiàn)在暗滅,表示角度設(shè)定環(huán)節(jié)結(jié)束,系統(tǒng)被鎖定。圖66分別是步進電機當前旋轉(zhuǎn)角度、角度設(shè)定指示燈、設(shè)定的旋轉(zhuǎn)角度。首先按下“角度設(shè)定”按鍵,此時,系統(tǒng)就進入角度設(shè)定等待狀態(tài),步進電機開始停轉(zhuǎn),等待設(shè)定固定角度。此外,在位移定位控制的時候,偏移角度為負時,其系統(tǒng)會反轉(zhuǎn),此時不需要按鍵來改變旋轉(zhuǎn)方向。圖64為電機正轉(zhuǎn),即順時針旋轉(zhuǎn);圖65為電機反轉(zhuǎn),逆時針旋轉(zhuǎn)。若速度再次升高,根據(jù)步進電機的運行矩頻特征,會有失步現(xiàn)象。 系統(tǒng)初始化默認的運行速度是60n/min,通過“加速”按鍵,可以方便的進行加速,如圖63,此時速度已經(jīng)達到100n/min;此時連續(xù)按下“減速”按鍵,可知此時的步進電機運行速度是30n/min。這個環(huán)節(jié)測試正常。第六章 仿真結(jié)果與分析圖61系統(tǒng)硬件圖(1)對系統(tǒng)正常運行狀態(tài)進行檢測,按下“啟動”按鍵,系統(tǒng)開始工作;按下“停止”按鍵,則關(guān)閉系統(tǒng)。當然,這里的建模程序相比實際要求是比較粗陋的。 L1=L2。 A1=A2。 //偏移距離對應的脈沖 LL=LO。 } DA=A/45。 } else { RunState=RIGHT_RUN。 //判定轉(zhuǎn)角正負 if(a0) { RunState=LEFT_RUN。 else if(A2A1) a=1。amp。 //計算BD A=180abs(acos((LO*LO+LL*LLLT*LT)/(2*LO*LL))*180/)。 } Else // 起點不是原點的情況 { LO=sqrt(L1*L1 + L2*L2 2*L1*L2*cos((A2A1)/*))。L3=0。 //若角度符號為負,則為反轉(zhuǎn) P0_0=0。 //若角度符號為正,則為正轉(zhuǎn) P0_0=1。 //目標位置覆蓋原始位置 L1=L2。 //偏移角度對應的脈沖 DL=L2*2。amp。 float a。 char LT。 default: break。 ShowState()。 DoDistance()。 else i=1。 //更新顯示 break。 //數(shù)據(jù)處理 write_inst(0x01)。 L2=i*10+L2%10。 //掃描量值按鍵是否按下 switch(value) { case KEY_Add: //量值增加 if(i==9) i=0。 i=L2/10。amp。 while(!distanceset)。以下是流程圖:圖53 位移設(shè)定程序流程圖這里抽取一段運行代碼,利用while循環(huán)函數(shù)進行當前操作鎖定,即每一步系統(tǒng)操作都能夠?qū)哟位?,有秩序的運行每一個相應的功能。 //關(guān)閉系統(tǒng)運行 } }位移設(shè)定與角度設(shè)定的原理差不多,都是通過讓實際變量轉(zhuǎn)換為相應驅(qū)動脈沖數(shù),從而告訴步進電機怎么運行,運行多少尺度。 TimerFlag=0。 } P0_1=P0_1^0x01。state)。i++) //步進電機開始隨著脈沖執(zhí)行,完成就停止 { while(!TimerFlagamp。 //設(shè)定角度換算成脈沖 for(i=0。 default: break。 // 清除顯示屏 ShowState()。 //設(shè)置按鍵改變的大小 DoAngle()。 case KEY_Reduce: //量值減少 if(angle==0) //限制角度范圍 angle=360。 // 清除顯示屏 ShowState()。 //設(shè)置按鍵改變的大小 DoAngle()。 //掃描按鍵函數(shù) switch(value) //選擇按鍵值 { case KEY_Add: //量值增加 if(angle==360) //限制角度范圍 angle=0。state) //等待設(shè)定角度 { TYPEDEF_KEY value = NULL。 //去按鍵抖動 while(Angle_SETamp。在實際應用中,就可以帶動執(zhí)行機構(gòu)鎖定一個設(shè)定方位進行運動。對于一個步進電機而言,步距角是固定的。 //顯示旋轉(zhuǎn)狀態(tài) } while(~direction)。 } write_inst(0x01)。 } else if(state) //按鍵偶數(shù)次為反轉(zhuǎn) { RunState=LEFT_RUN。state) //按鍵奇數(shù)次為正轉(zhuǎn) { RunState=RIGHT_RUN。 //方向標志 if(flagamp。通過這樣的設(shè)計原理,就可以利用
點擊復制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1