版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE4重慶郵電大學綜合實驗報告——單片機控制步進電機調(diào)速學生姓名:組長:AAAA組員:AAAAAAAA學號:XXXXXXXXXXXXXXXXXX所在學院:自動化班級:XXXXX專業(yè):機械設(shè)計制造及其自動化指導老師:XXXX成績評定:檢測與控制實驗中心目錄一、實驗要求與目的 31、設(shè)計要求 32、實驗目的 3二、設(shè)計思路 3三、實驗原理 41、步進電機 32、步進電機控制系統(tǒng)結(jié)構(gòu) 43、速度控制算法 5四、功能概述及方案設(shè)計 51、顯示模塊 52、AD轉(zhuǎn)換模塊 63、步進電機細分驅(qū)動模塊 6五、實驗運行程序 7六、實驗心得 13參考文獻 13一、實驗要求與目的1、步進電機的給定速度由電位器通過AD轉(zhuǎn)換輸入2、只有給定速度和實際速度顯示功能3、實際速度通過紅外光電開關(guān)(或霍爾元件)檢查4、步進電機具有細分功能:1/2細分1/4細分1/8細分5、測試步進電機的響應時間及曲線1、熟悉步進電機的工作原理2、熟悉51系列單片機的工作原理及調(diào)試方法3、設(shè)計基于51系列單片機控制的步進電機調(diào)速原理圖4、實現(xiàn)51系列單片機對步進電機的速度控制5、了解霍爾元件和步進電機細分驅(qū)動芯片tb6560的使用二、設(shè)計思路主控芯片采用STC89C52單片機,顯示采用1602液晶,由于步進電機速度設(shè)定由電位器輸入,使用外部ADtlc5510,AD時鐘源接89C52ALE引腳,AD為并行,AD使用單片機P1口,可以直接讀取,根據(jù)對應數(shù)據(jù)設(shè)定速度。步進電機速度控制采用閉環(huán)控制,由于傳統(tǒng)的PID控制算法波動較大,我們采用分級設(shè)定加速度的辦法,并把編碼器反饋回來的速度與設(shè)定速度進行比較確定是加速還是減速,軟件模擬加速減速過程,步進電機細分由驅(qū)動芯片TB6560提供,由于驅(qū)動細分由m1、m2口電平?jīng)Q定,我們采取直接通過撥碼開關(guān)設(shè)定電平,從而設(shè)定驅(qū)動細分值。三、實驗原理步進電機是數(shù)字控制電機,它將脈沖信號轉(zhuǎn)變成角位移,即給一個脈沖信號,步進電機就轉(zhuǎn)動一個角度,因此非常適合于單片機控制。步進電機可分為反應式步進電機(簡稱VR)、永磁式步進電機(簡稱PM)和混合式步進電機。步進電機區(qū)別于其他控制電機的最大特點是,它是通過輸入脈沖信號來進行控制的,即電機的總轉(zhuǎn)動角度由輸入脈沖數(shù)決定,而電機的轉(zhuǎn)速由脈沖信號頻率決定。步進電機的驅(qū)動電路根據(jù)控制信號工作,控制信號由單片機產(chǎn)生。其基本原理作用如下:(1)控制換相順序通電換相這一過程稱為脈沖分配。例如:三相步進電機的三拍工作方式,其各相通電順序為A-B-C-D,通電控制脈沖必須嚴格按照這一順序分別控制A,B,C,D相的通斷。(2)控制步進電機的轉(zhuǎn)向如果給定工作方式正序換相通電,步進電機正轉(zhuǎn),如果按反序通電換相,則電機就反轉(zhuǎn)。(3)控制步進電機的速度如果給步進電機發(fā)一個控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個脈沖,它會再轉(zhuǎn)一步。兩個脈沖的間隔越短,步進電機就轉(zhuǎn)得越快。調(diào)整單片機發(fā)出的脈沖頻率,就可以對步進電機進行調(diào)速。單片機在適當?shù)臅r刻通過對計數(shù)器0賦初值,設(shè)置好加減速過程的頻率變化(即速度、加速度變化),以防止失步。例如,在點位控制中設(shè)置好速度曲線圖,在起動和升速時,使步進電機產(chǎn)生足夠的轉(zhuǎn)矩驅(qū)動負載,跟上規(guī)定的速度和加速度;在減速時,下降特性使負載不產(chǎn)生過沖,停止在規(guī)定的位置。啟動細分驅(qū)動電路中的固化程序以產(chǎn)生一定頻率的脈沖,經(jīng)功率放大后驅(qū)動步進電機運動。步進電機運動方向的改變及啟動和停止均由計算機控制硬件控制電路實現(xiàn)。程序邏輯程序邏輯功率驅(qū)動器步進電機編碼器電源輸入脈沖細分指令圖2步進電機控制系統(tǒng)單片機控制系統(tǒng)通過A/D電路檢測設(shè)定速度值,通過編碼器得到實際速度值,當實際速度值大于設(shè)定速度值,步進電機加速,反之減速。根據(jù)實際速度真與設(shè)定速度值的差值大小的不同,將加速度分為三個等級,相差越大,加速度越大。從而達到既能快速達到設(shè)定速度值,又能讓實際速度穩(wěn)定在設(shè)定速度值左右的目的。四、功能概述及方案設(shè)計顯示模塊采用1602液晶顯示測量參數(shù)和顯示所有測量數(shù)據(jù)。TB6560步進電機驅(qū)動電路主要包括3部分電路:控制信號隔離電路、主電路和自動半流電路,可利用簡單的編程實現(xiàn)。五、實驗運行程序/******************************************************Display.c文件******************************************************/#include<reg52.h>#include<intrins.h>#defineDataP0//數(shù)據(jù)端口#defineLENGTH7typedefunsignedcharuchar;typedefunsignedintuint;codecharnum[]="0123456789";charsetSd[LENGTH]="SetSpd:";charnowSd[LENGTH]="NowSpd:";charr_min[5]="r/min";//液晶顯示接口sbitRS=P2^4;sbitRW=P2^5;sbitE=P2^6; voidDelayMs(ucharms);voidDelayUs(ucharus);voidInitLcd(void);voidWriteData(ucharc);voidWriteCommand(ucharc);voidDisPlay(uintnumber,ucharstatus);voidDisplayStr(char*s,ucharlength);/******************************************************************數(shù)據(jù)顯示******************************************************************/voidDisPlay(uintnumber,ucharstatus){ chari; staticcharpre_i=0; chartemp[8]={0}; if(status==0) { WriteCommand(0x80); DisplayStr(setSd,LENGTH); } else { WriteCommand(0xc0); DisplayStr(nowSd,LENGTH); } if(number==0) { WriteData(num[temp[0]]); } else { i=0; while(number) { temp[i]=number%10; number/=10; i++; } if(pre_i>i) { WriteCommand(0x01);//顯示清屏 } pre_i=i; while(i>0) { i--; WriteData(num[temp[i]]); } } DisplayStr(r_min,5);}/*******************************************字符串顯示函數(shù)********************************************/voidDisplayStr(char*s,ucharlength){ ucharj=0; while(j<length) { WriteData(s[j]); j++; }}/******************************************************************寫入命令函數(shù)******************************************************************/voidWriteCommand(ucharc){ DelayMs(5);//操作前短暫延時,保證信號穩(wěn)定 E=0; RS=0; RW=0; _nop_(); E=1; Data=c; E=0;}/******************************************************************寫入數(shù)據(jù)函數(shù)******************************************************************/voidWriteData(ucharc){ DelayMs(5);//操作前短暫延時,保證信號穩(wěn)定 E=0; RS=1; RW=0; _nop_(); E=1; Data=c; E=0; RS=0;}/******************************************************************初始化函數(shù)******************************************************************/voidInitLcd(void){ DelayMs(15); WriteCommand(0x38);//displaymode WriteCommand(0x38);//displaymode WriteCommand(0x38);//displaymode WriteCommand(0x06);//顯示光標移動位置 WriteCommand(0x0c);//顯示開及光標設(shè)置 WriteCommand(0x01);//顯示清屏}/******************************************************************微妙級函數(shù) 12MHz頻率******************************************************************/voidDelayUs(ucharus){ ucharuscnt; uscnt=us>>1; while(--uscnt);} /******************************************************************毫秒延時函數(shù)******************************************************************/voidDelayMs(ucharms){ while(--ms) { DelayUs(250); DelayUs(250); DelayUs(250); DelayUs(250); }}/******************************************************Init.c文件******************************************************/#include<reg52.h>typedefunsignedcharuchar;typedefunsignedintuint;sbitCW=P2^1; sbitENABLE=P2^2; externvoidInitLcd(void);/************************************************TB6560初始化*************************************************/voidInitTB6560(void){ CW=0; ENABLE=1;}/************************************************定時器0初始化函數(shù)功能:周期定時50ms*************************************************/voidInitTime0(void){ TMOD|=0x01; EA=1; ET0=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1;}/************************************************定時器1初始化函數(shù)功能:設(shè)定為外部脈沖計數(shù)模式*************************************************/voidInitTime1(void){ TMOD|=0x50; EA=1; ET1=0; TH1=0; TL1=0; TR1=1;}/************************************************定時器1初始化函數(shù)功能:設(shè)定為外部脈沖計數(shù)模式*************************************************/voidInitTime2(void){ RCAP2H=(65536-50000)/256;//重裝載計數(shù)器賦初值 RCAP2L=(65536-50000)%256; ET2=1;//開定時器2中斷 EA=1;//開總中斷 TR2=1;//開啟定時器,并設(shè)置為自動重裝載模式}/************************************************總初始化函數(shù)*************************************************/voidInitSystem(void){ InitLcd(); InitTB6560(); InitTime0(); InitTime1(); InitTime2();}/******************************************************StepMotor.c文件******************************************************/#include<reg52.h>#include<math.h>#include"StepMotor.h"voidmain(void){ intK;InitSystem(); while(1) { if(statusFlag==0) { preSetSpeed=setSpeed; setSpeed=SET_SPEED; if(setSpeed>nowSpeed) { if(setSpeed-nowSpeed>10)K=10; elseif(setSpeed-nowSpeed>5)K=20; elseK=60; if(adjustment<1)adjustment=1; adjustment=adjustment-adjustment/K; } elseif(setSpeed<nowSpeed) { if(setSpeed-nowSpeed>10)K=10; elseif(setSpeed-nowSpeed>5)K=20; elseK=60; if(adjustment>30000)adjustment=30000; adjustment=adjustment+adjustment/K; } DisPlay(setSpeed,0); DisPlay(nowSpeed,1); statusFlag=1; } }}/************************************************定時器2中斷函數(shù)功能:周期定時50ms*************************************************/voidTsr_Time2(void)interrupt5{ staticvolatileucharinTimes=0; TR1=0; if(inTimes<20) { inTimes++; } else { nowSpeed=TH1*256+TL1; statusFlag=0; inTimes=0; TH1=0; TL1=0; } TF2=0;//定時器2的中斷標志要軟件清0 TR1=1;}/************************************************定時器0中斷函數(shù)功能:周期定時50ms*************************************************/voidTsr_Time0(void)interrupt1{ CLK=~CLK; TH0=(65536-adjustment)/256; //2600一轉(zhuǎn)每秒 TL0=(65536-adjustment)%256; }/******************************************************StepMotor.h*******************************************************//********************************clkp2.0 步進電機轉(zhuǎn)速c/cwP2.1 正反轉(zhuǎn)EnableP2.2 驅(qū)動使能singalP3.5編碼器信號反饋*********************************/#defineSET_SPEEDP1typedefunsignedcharuchar;typedefunsignedintuint; sb
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年云南錫業(yè)職業(yè)技術(shù)學院單招職業(yè)傾向性測試題庫含答案詳解
- 2026年廣西水利電力職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫及答案詳解一套
- 2026年廣東省廣州市單招職業(yè)傾向性考試題庫及參考答案詳解1套
- 新昌社工面試題目及答案
- 甘孜州消防隊面試題及答案
- 安全一夏快樂暑假-暑假假期安全主題班會課件
- 園區(qū)內(nèi)企業(yè)反恐怖管理協(xié)議書范本
- 什邡市人力資源和社會保障局什邡市民政局關(guān)于2025年面向全市公開選調(diào)工作人員的備考題庫及一套答案詳解
- 廣東省第二榮軍優(yōu)撫醫(yī)院2025年非編人員招聘備考題庫及參考答案詳解
- 2025年中國能源建設(shè)集團遼寧電力勘測設(shè)計院有限公司社會成熟人才招聘備考題庫及1套完整答案詳解
- 全國高校黃大年式教師團隊推薦匯總表
- 員工管理規(guī)章制度實施細則
- 社會心理學(西安交通大學)知到章節(jié)答案智慧樹2023年
- 《安井食品價值鏈成本控制研究案例(論文)9000字》
- GB/T 4135-2016銀錠
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- 關(guān)節(jié)鏡肘關(guān)節(jié)檢查法
- 生化講座犬貓血液常規(guī)檢驗項目及正常值
- 馬克思主義基本原理(完整版)
- 山茶油知識普及課件
- 心腦血管疾病的預防及治療課件
評論
0/150
提交評論