




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上電子科技大學中山學院學生實驗報告院別:電子信息學院 課程名稱:微處理器實驗 班級: 12電信A 姓名: 學號: 實驗名稱:十、 步進電機與直流電機控制實驗 實驗時間:2014年12月1日成績: 教師簽名: 批改時間:1、 實驗原理與目的1、掌握步進電機工作原理、單片機接口電路及程序控制方法。2、掌握直流電機工作原理、單片機接口電路及程序控制方法。步進電機和直流電機是機電一體化系統中常用的兩種電動執行設備。步進電機可在電脈沖信號的控制下,實現快速啟停以及精確的角位移控制。直流電機可通過H橋電路切換轉向,并可利用PWM技術進行調速。ZSC-1實驗箱為MCU1配置了一個四相
2、步進電機(其最小步距角為5.625°/64)和一個減速直流電機。圖3.10.1為步進電機實驗電路。P2.4P2.7某根口線輸出低電平時,相應的功率三極管導通,其所連接的一相線圈通電,口線輸出高電平時線圈斷電。程序以一定的時間間隔依次輸出單4拍、雙4拍或4-8拍方式對應的相序字,便可控制步進電機轉動,顛倒相序字順序,或改變時間間隔,步進電機的轉向和轉速也隨之改變。圖中按鍵KX0KX3可用于步進電機轉向、轉速的控制輸入。圖3.10.1 步進電機實驗電路圖3.10.2為直流電機實驗電路,其核心為功率三極管T104T107組成的H型全橋驅動電路。在單片機控制信號作用下,4個功率管呈現多種不同
3、的通斷組合,使電機處于相應工作狀態。圖中按鍵KX0KX3可用于直流電機轉向、轉速的控制輸入。圖3.10.2 直流電機實驗電路表10-1為不同控制信號組合對應的直流電機狀態。進行調速控制時,單片機先將FWD、REV置為10或01組合,再通過ENM輸出PWM信號,利用PWM信號的不同占空比來調節電機繞組的平均電壓,從而實現電機轉速的控制。表3.10.1 直流電機控制功能表ENMFWDREV電機狀態ENMFWDREV電機狀態000制動100制動001惰行101反轉010惰行110正轉011惰行111制動二、實驗設備1、PC機一臺(已安裝Keil uVision、STC_ISP等軟件);2、ZSC-1
4、單片機實驗箱一臺。三、實驗內容與分析1、設計程序,控制四相步進電機以4-8拍方式(步距角為5.625°/64)正轉90°,停2s,然后反轉90°,再停2s,如此循環。 在Keil中編寫源程序。C語言參考程序如下(請將下劃線部分補充完整):/*頭文件聲明*#include <reg51.h> /*數據類型定義*typedef unsigned char uint8;typedef unsigned int uint16;/*常量數組聲明*uint8 code FWD_TABLE8= 0xEF,0xCF,0xDF,0x9F,0xBF,0x3F,0x7F ,
5、0x6F ; /4-8拍正轉相序字uint8 code REV_TABLE8= 0x6F,0x7F,0x3F,0xBF,0x9F,0xDF,0xCF,0xEF ; /4-8拍反轉相序字 /*函數原型聲明*void Delay(uint16 ms);/*主函數*void main() uint8 i,j; while(1) for(j=0;j< 128 ;j+) /正轉90°(1024步) for(i=0;i<8;i+) P2=FWD_TABLEi; /查表并輸出正轉相序字 Delay(5); /軟件延時(控制步進電機轉速) Delay(2000); for(j=0;j&l
6、t; 128 ;j+) /反轉90°(1024步) for(i=0;i<8;i+) P2=REV_TABLEi ; /查表并輸出反轉相序字 Delay(5); /軟件延時(控制步進電機轉速) Delay(2000); /*軟件延時函數*void Delay(uint16 ms) uint16 i; do for(i=700;i;i-); while(-ms); /*程序結束* 在Keil中創建工程,加入源程序文件,設置選項,進行編譯、連接、轉換處理,生成HEX格式的單片機程序文件。 用串行電纜連接實驗箱和PC機各自的串行通信口,并運行PC機上的STC_ISP程序,進行單片機程序
7、下載(注意MCU1要先斷電再上電)。 驗證程序運行效果。也可對程序做適當修改,試驗多種不同的控制方案和運行效果。2、設計程序,通過按鍵KX0、KX1調節步進電機的轉速,通過按鍵KX2、KX3切換其轉向。C語言參考程序如下(請將下劃線部分補充完整):/*頭文件聲明*#include <reg51.h>/*數據類型定義*typedef unsigned char uint8;typedef unsigned int uint16;/*口線聲明*sbit P32 = P32;sbit P34 = P34;sbit P35 = P35;sbit P37 = P37;/*常量數組聲明*uin
8、t8 code PHASE_TABLE8= 0xEF,0xCF,0xDF,0x9F,0xBF,0x3F,0x7F,0x6F ; /4-8拍相序字/*函數原型聲明*uint8 ScanKey();void Delay(uint16 ms);/*主函數*void main() int i=0,j,k,SpeedTime=25; uint8 Key,Direction=0; while(1) P2= PHASE_TABLEi ; /查表輸出當前相序字 if(Direction=0) /準備下一個相序字 if(+i>= 8 ) i=0; else if(-i<0) i=7; for(j=0
9、;j<SpeedTime;j+) /由SpeedTime控制總延時 for(k=700;k;k-); /以1ms為延時單位 Key=ScanKey(); if(Key=0xFF) continue ; /無鍵按下,則繼續延時循環 while(ScanKey()!=0xFF); /有鍵按下,等待按鍵釋放后再處理 if(Key=0) if(SpeedTime>5) SpeedTime-=5; /KX0按下,則加速 else if(Key=1) if(SpeedTime<50) SpeedTime+=5; /KX1按下,則減速 else if(Key=2) Direction= 0
10、 ; /KX2按下,則正轉 else if(Key=3) Direction= 1 ; /KX3按下,則反轉 break; /從延時循環中跳出 /*獨立鍵盤掃描函數*uint8 ScanKey() if(P32=1&&P34=1&&P35=1&P37=1) return 0xFF; /無鍵按下時,返回0xFF Delay(10); /延時消抖 if(P32=0) return 0; /KX0KX3按下,分別返回0,1,2,3 if(P34=0) return 1; if(P35=0) return 2; if(P37=0) return 3; retur
11、n 0xFF; /無鍵按下時,返回0xFF/*軟件延時函數*void Delay(uint16 ms) uint16 i; do for(i=700;i;i-); /以1ms為延時單位 while(-ms); /*程序結束*3、設計程序,控制直流電機全速正轉2s,反轉2s,然后再慢速正轉2s,反轉2s,如此循環。C語言參考程序如下(請將下劃線部分補充完整):/*頭文件聲明*#include <reg51.h> /*數據類型定義*typedef unsigned char uint8;typedef unsigned int uint16;/*特殊功能寄存器聲明*sfr P1M1=0
12、x91;sfr P1M0=0x92;/*口線聲明*sbit ENM = P14 ;sbit REV = P16;sbit FWD = P17;/*全局變量聲明*uint16 PwmHighTiming,PwmLowTiming;uint8 PwmHighTH0Buff,PwmHighTL0Buff,PwmLowTH0Buff,PwmLowTL0Buff;bit PwmPhase=1;/*函數原型聲明*void PWMInit();void PWMOut(uint8 Duty);void Delay(uint16 ms);/*中斷服務函數*void T0ISR() interrupt 1 if(
13、PwmPhase=1) /切換輸出電平及定時時間 PwmPhase=0; ENM=0; TH0=PwmLowTH0Buff; TL0=PwmLowTL0Buff; else PwmPhase=1; ENM=1; TH0=PwmHighTH0Buff; TL0=PwmHighTL0Buff; /*主函數*void main() P1M1=0x00; P1M0=0x10; /設置P14(ENM)為強推挽輸出 PWMInit( ); /PWM(定時/計數器)初始化 while(1) PWMOut(100); /全速 FWD=1; /正轉2s REV=0; Delay(2000); REV=1; /反
14、轉2s FWD=0; Delay(2000); PWMOut(50) ; /慢速 FWD=1; /正轉2s REV=0; Delay(2000); REV=1; /反轉2s FWD=0; Delay(2000); /*PWM初始化函數*void PWMInit() TMOD=0x01; TR0=1; ET0=1; EA=1 ; /*PWM占空比更新函數*void PWMOut(uint8 Duty) /Duty=0.100 if(Duty=0) TR0=0; ENM=0; /占空比為0時,停止定時,固定輸出低電平 else if(Duty=100) TR0=0; ENM=1; /占空比為100時,停止定時,固定輸出高電平 else PwmHighTiming=10*Duty; /根據占空比計算高、低電平定時時間 PwmLowTiming=1000-PwmHighTiming; PwmHighTH0Buff=(65536-PwmHighTiming)>>8; PwmHighTL0Buff=(65536-PwmHighTiming)&0xff; PwmLowTH0Buff=(65536-PwmLowTiming)>>8; PwmLowTL0Buff=(65536-PwmLowTiming)&a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 系統學習軟件測試工程師試題及答案
- 嵌入式發展的未來趨勢探索試題及答案
- 行政理論考試常識性試題及答案
- 網絡協議分析與故障排除技巧試題及答案
- 項目管理中作用的重要性試題及答案
- 行政組織框架的試題及答案探討
- 計算機三級重要試題及答案解析
- 公路設計變更管理試題及答案
- 計算機三級數據庫學習方法試題及答案
- 理解數據庫與互聯網的緊密聯系試題及答案
- 醫療設備巡檢和維修保養管理制度
- 2024年云南省中考歷史試卷(含答案)
- 2024年個人信用報告(個人簡版)樣本(帶水印-可編輯)
- 浙江省溫州市2024年高一下學期期末教學質量統測英語試題(B)含解析
- 教科版科學五年級下冊《課本問題課后研討題》參考答案
- 2023年河南省對口升學計算機類基礎課試卷
- 生活中的趣味數學智慧樹知到期末考試答案章節答案2024年石河子大學
- 醫療收費收據樣式(醫院基層)
- 2024年北京市中考物理模擬卷(一)
- MOOC 金融法學-浙江財經大學 中國大學慕課答案
- 浙江省杭州市上城區2022-2023學年六年級下學期期末語文試題
評論
0/150
提交評論