洛陽理工學院運動控制系統課程設計MT法測速_第1頁
洛陽理工學院運動控制系統課程設計MT法測速_第2頁
洛陽理工學院運動控制系統課程設計MT法測速_第3頁
洛陽理工學院運動控制系統課程設計MT法測速_第4頁
洛陽理工學院運動控制系統課程設計MT法測速_第5頁
已閱讀5頁,還剩27頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、運動控制系統課程設計運動控制系統課程設計 學號: 姓名: 日期:2016/6/30M法、T法、M/T法測速單片機程序設計摘 要數字測速具有測速精度高、分辨能力強、受器件影響小等優點,被廣泛應用于調速高,調速范圍大的調速系統和伺服系統。本設計的數字轉速測量是以單片機AT89C52為控制芯片, 利用單片機三個定時器的特點,可以使用按鍵輸入來調整M法、T法測速法中Z、TC等參數以及測速方法的選擇,以此來增強本設計的適應性,運用轉速測量M法、T法、M/T法, 通過對光電編碼盤輸出的脈沖信號測量,獲得電動機轉速測量,有精度高,范圍寬等特點。測量結果將會顯示在LCD1602液晶顯示屏上。關鍵詞:數字測速,

2、單片機,LCD1602,轉速,測速法7目錄第1章 緒論51.1 數字測速方法的原理與應用51.1.1 M法測速51.1.2 T法測速61.1.3 M/T法測速6第2章 系統總體設計8第3章 硬件設計93.1 硬件選型93.1.1 CPU主控模塊的選型93.1.2顯示器的選型103.2 硬件電路設計103.2.1時鐘電路的設計103.2.2顯示電路103.2.3速度檢測電路113.2.4按鍵輸入電路113.2.5復位電路12第4章 軟件設計134.1 系統流程134.1.1 主程序流程設計134.1.2 M法測速程序設計144.1.3 T法測速程序設計154.1.4 M/T法測速程序設計15第5

3、章 仿真結果175.1 測速功能仿真測試175.1.1 建立仿真文件175.1.2 測速功能測試185.2 仿真結果分析19結論20參考文獻21附錄22 第1章 緒論1.1 數字測速方法的原理與應用1.1.1 M法測速 在一定時間TC 內測取旋轉編碼器輸出的脈沖個數M1用以計算這段時間內的轉速,稱作M法測速。把M1除以TC就可得到旋轉編碼器輸出脈沖的頻率f1=M1/TC,所以又稱為頻率法。M法是測量單位時間內的脈數換算成頻率,因存在測量時間內首尾的半個脈沖問題,可能會有2個脈的誤差。速度較低時,因測量時間內的脈沖數變少,誤差所占的比例會變大,所以M法宜測量高速。如要降低測量的速度下限,可以提高

4、編碼器線數或加大測量的單位時間,使用一次采集的脈沖數盡可能多。計算公式為:時鐘Z = 倍頻系數 x 編碼器光柵數。M法測速的分辨率:M法測速誤差率: 在上式中,Z和TC 均為常值,因此轉速 n 正比于脈沖個數。高速時M1大,量化誤差較小,隨著轉速的降低誤差增大。所以,M法測速只適用于高速段。1.1.2 T法測速T法測速是測出旋轉編碼器兩個輸出脈沖之間的間隔時間來計算轉速,它又成為周期法測速。T法是測量兩個脈沖之間的時間換算成周期,從而得到頻率。因存在半個時間單位的問題,可能會有1個時間單位的誤差。速度較高時,測得的周期較小,誤差所占的比例變大,所以T法宜測量低速。如要增加速度測量的上限,可以減

5、小編碼器的脈沖數,或使用更小更精確的計時單位,使一次測量的時間值盡可能大。計算公式為:T法測速的分辨率: 法測速誤差率: 低速時,編碼器相鄰脈沖間隔時間長,測得的高頻時鐘脈沖個數M2多,所以誤差率小,測速精度高,故T法測速適用于低速段。1.1.3 M/T法測速在M法測速中,隨著電動機的轉速的降低,計數值M1減少,測速裝置的分辨能力變差,測速誤差增大。如果速度過低,M1將小于1,測速裝置便不能正常工作。T法測速正好相反,隨著電動機轉速的增加,計算值M2減小,測速裝置的分辨能力越來越差。綜合這兩種測速方法的特點,產生了M/T法測速。它無論在高速還是在低速時都具有較高的分辨力和檢測精度。M/T法采用

6、三個定時/計數器,同時對輸入脈沖、高頻脈沖、及預設的定時時間進行定時和計數,M1反映轉角,M2反映測速的準卻時間,通過計算可得轉速值n。該法在高速及低速時都具有相對較高的精度。測速時間Td由脈沖發生器脈沖來同步,即Td等于M1個脈沖周期。由圖1-1可見,從a點開始,計數器對M1和M2計數,到達b點,預定的測速時間時,單片機發出停止計數指令,因為TC不一定正好等于整數個脈沖發生器脈沖周期,所以,計數器仍然對高頻脈沖繼續計數,到達C點時,脈沖發生器脈沖的上升沿使計數器停止,這樣M2就代表了M1個脈沖在周期時間。轉速角可表示為:=2M1Z檢測周期可寫成:T=M2f0綜合二式可求出被測得轉速為:n=6

7、0f0M1ZM2n轉速值,單位:(轉/分);f0晶體震蕩頻率,單位:HZ; M1輸入脈沖數,反映轉角; M2時基脈沖數。圖1-1 M/T法定時/計數測量第2章 系統總體設計設計一個基于51單片機的光電編碼器測測速。設計一個電路來實現光電編碼器測量;利用單片機內部精確到微妙的定時計數器來實現一個周期的時間來統計脈沖數;P0和P2口控制1602液晶顯示轉速;利用復位按鍵功能來實現復位操作。由于定時器工作模式2是八位,可裝入的值太小,每進行一個周期的脈沖統計需要進入5000次定時器中斷,由于進入中斷的次數太多,所以很容易出現在低八位裝滿本應觸發而程序還在中斷子程序中運行,而無法觸發中斷的情況,所以不

8、采用工作模式2。工作模式0只需要進入定時中斷1000次就可以進行一個周期的脈沖統計,所以選擇功能模式0。用純軟件計數雖然電路簡單,但是計數速度慢,難以滿足實時性要求,而且容易出錯。我們可以用單片機內部的計數器來實現加減計數。單片機片內有兩個16位定時計數器都可以用來脈沖計數,用兩個外部中斷來檢測正反轉,避免了每一個脈沖都要進行高低電平檢測的步驟。轉速測量系統的總體設計框圖如圖2-1所示。圖2-1總體設計框圖8計算機控制技術課程答辯論文第3章 硬件設計3.1 硬件選型3.1.1 CPU主控模塊的選型 AT89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash 存儲

9、器。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得AT89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節Flash,512字節RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,2個16 位 定時器/計數器,一個6向量2級中斷結構,全雙工串行口。另外 可降至0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻

10、率35MHz,6T/12T可選。T2/P1.040T2EX/P1.141P1.242P1.343P1.444P1.51P1.62P1.73P0.037P0.136P0.730P0.631P0.532P0.433P0.334P0.235P2.018P2.119P2.220P2.321P2.422P2.523P2.624P2.725RxD/P3.05TxD/P3.17INT0/P3.28INT1/P3.39T0/P3.410T1/P3.511WR/P3.612RD/P3.713VSS16VDD38RES4ALE27PSEN26EA29X014X115P4.017P4.128INT3/P4.239I

11、NT2/P4.36U1AT89C52RC-40C-PQFP圖3-1單片機原理圖3.1.2顯示器的選型 本設計的顯示部分使用的是液晶顯示器LCD1602,該顯示器只能顯示英文字母和數字,所以參數的說明都用英語意思或是符號代替。屏幕上會顯示參數、模式以及計算后的速度。3.2 硬件電路設計3.2.1時鐘電路的設計 STC89C52內部有一個用于構成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。在RXD和TXD引腳上外接定時元件,內部振蕩器就產生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯諧振回路。晶體振蕩頻率可以在1.212M

12、Hz之間選擇,電容值在530pF之間選擇,電容值的大小可對頻率起微調的作用。其電路圖3-2如下所示:圖3-2時鐘電路圖3.2.2顯示電路顯示電路原理圖如圖3-3所示。圖3-3顯示電路原理圖3.2.3速度檢測電路光電編碼器是開漏輸出,所以在和單片機連接時需要加上拉電阻。編碼器輸出端連接到51單片機外部中斷0引腳上所以就可以在每次接收到脈沖時就能觸發外部中斷,電路如圖3-4所示。圖3-4 速度檢測電路原理圖3.2.4按鍵輸入電路按鍵輸入負責調整測速模式和改變參數的值,一個按鍵是“確認”按鍵,一個是“加”按鍵,在模式選擇時為T法選擇鍵;另一個是“減”按鍵, 在模式選擇時為M法選擇鍵。在調整參數的時候

13、,也是根據“減”“加”調整參數。其電路圖如圖3-5所示 圖3-5按鍵輸入電路圖3.2.5復位電路復位電路是指單片機的初始化操作。單片機啟動運行時都需要先復位,其作用是使CPU和系統中其他的部件處于一個確定的初始狀態,并從這個狀態開始工作。因而,復位是個很重要的操作方式。但單片機本身不能自動進行復位的,必須配合相應的外部電路才能實現復位功能。復位電路的基本功能是:系統上電時提供復位信號,直至系統電源穩定后,撤銷復位信號。為可靠期間,電源穩定后還需經歷一定延時才撤銷復位信號,以防電源開關或電源插頭分合過程中引起抖動而影響復位。復位電路如圖3-6所示: 圖3-6復位電路12 第4章 軟件設計4.1

14、系統流程4.1.1 主程序流程設計本設計程序運行時,通過按鍵輸入首先來選擇測速方法,然后設定測速法中T和Z等參數。主程序流程圖如圖4-1所示。圖4-1 主程序流程圖4.1.2 M法測速程序設計選擇M法測速模式后,打開外部中斷0,同時開啟定時器0開始一定時間的定時,外部中斷開始計數脈沖個數。當定時間到的時候關閉外部中斷和定時器,讀取外部中斷計數的個數并計算速度。M法測速程序流程如圖 4-2所示。圖4-2 M法測速流程圖4.1.3 T法測速程序設計程序初始化完成后選擇T法測速模式,只打開外部中斷0,當外部中斷檢測到脈沖的第一個跳變時打開定時器0的中斷開始計時。當外部中斷檢測到第二個跳變是關閉外部中

15、斷0和定時器并讀取計時的時間值。圖 4-3T法測速程序流程圖:圖4-3 T法測速流程圖4.1.4 M/T法測速程序設計M/T法測速程序設計如圖4-4所示。圖4-4 M/T法測速流程圖16第5章 仿真結果5.1 測速功能仿真測試 電路仿真采用Proteus軟件,Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR

16、、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。5.1.1 建立仿真文件 認真了解設計要求并寫出具體方案后,開始進行硬件仿真調試,建立如圖5-1電路仿真圖圖5-1 電路仿真圖5.1.2 測速功能測試首先運行程序,然后選擇M法測速,則液晶屏會有圖5-2顯示圖5-2 選擇M法測速按下確認鍵,通過加間按鈕來進行Z、TC參數的選擇,如同5-3所示圖5-3 參數的選擇選擇完畢后,按下確認鍵,液晶屏就會顯示出測速結果,如圖5-4所示圖5-3測速結果5.2 仿真結果分析 通過軟件

17、程序控制能夠實現測速方法德選擇,參數的設定,及測試結果的顯示等基本功能。調試結果一切正常。此過程中我們查找出來了些程序的錯誤并通過多次的運行分析,終于把程序更完善了,但是我們認為在一些方面還可以再進行深一步研究和完善,不過由于時間與能力有限,沒能繼續。20結論本設計是M法、T法、M/T法測速單片機程序設計,采用單片機技術來實現轉速的測量,可以提高效果和精確度,具有較好的實時性。本文介紹的轉速測量方法適用于高、低轉速測量,測量精確度與轉速無關,因而具有較寬的適用范圍和較廣闊的應用前景。經過這次課程設計,使我覺得不論從理論知識還是從實際操縱中都學到了不少知識。它讓我接觸更多平時沒有接觸過的科學儀器

18、、元器件以及獲得相關的儀器調試經驗,同時我也發現自己在這方面很多不足之處。體會到理論知識對實踐有很大的指導作用,學會了高效率的查閱資料、運用工具書、利用網絡查找資料,各種參數都需要自己去調整。偶爾還會遇到錯誤的資料現象,這就要求我們應更加注重實踐環節。在課程設計中,我們應當注意重點與細節的關系。參考文獻1 高偉.AT89單片機原理及應用.北京:國防工業出版社,2008 2 陳伯時.電力拖動自動控制系統M.北京:機械工業出版社,2004.3 新型高精度測速方法探討J. 安徽機電學院學報, 1997年02期.4 于海生.微型計算機控制技術選編.北京:清華大學出版社,19995 耿長清單片機應用技術

19、M北京:化學工業出版社,20026 李曉林,蘇淑靖. 單片機原理與接口技術M. 北京: 電子工業出版社, 20157 陳敏遜.近代電機調速技術G:科學技術文獻出版社,20048 康華光.電子技術基礎.數字部分(第四版).北京:高等教育出版社,200032附錄 硬件電路總圖軟件程序#include <reg52.h>#include <intrins.h>#defineucharunsigned char#define uintunsigned int #define DataPort P0/LCD1602數據端口sbit LCM_RS=P25; /LCD1602命令端口

20、sbit LCM_EN=P27; /LCD1602使能端口 sbit KEY1=P11; /確認按鍵sbit KEY2=P13; /減按鍵M法sbit KEY3=P15; /加按鍵T法sbit KEY4=P16; /按鍵M/T法uchar table = "Mode selection:" /顯示模式選擇uchar table2 = "selection:M/T" /顯示模式選擇uint M1 = 0;bit M_FLAG = 0; /M法脈沖個數及M法標志位uint M2 = 0;bit T_FLAG = 0; /T法測速脈沖個數及T法標志位bit M

21、T_FLAG = 0;uint Z = 0,T = 1000,n = 100; /轉軸轉一周脈沖發生器個數 計時時間 bit flag = 0;void delay(uint z)/延遲函數uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void write_com(uchar com)/寫命令LCM_RS=0; /低電平為命令選擇,即選擇寫命令模式DataPort=com; /將要寫的命令送到數據總線P0口delay(5); /延遲5ms,稍作延遲使數據穩定LCM_EN=1; / 給使能端一段高脈沖,因為初始化中函數已將使能端置0delay(5

22、);/稍作延遲LCM_EN=0;/完成高脈沖void write_data(uchar date)/寫數據LCM_RS=1;/高電平為數據選擇DataPort=date; / 將要寫的數據傳送到P0口delay(5);/延遲5msLCM_EN=1;/高脈沖delay(5);LCM_EN=0;/完成高脈沖void init()/1602初始化LCM_EN=0;write_com(0x38); /設置16*2顯示,5*7點陣,8位數據接口write_com(0x0e);/設置開顯示 write_com(0x06);/寫一個字符后地址指針加1 write_com(0x01);/顯示清0,數據指針清0

23、(清除LCD顯示內容)write_com(0x80+0x00); /1000 0000 從液晶第一行開始寫命令void main(void)/主函數 uchar i; init(); /液晶初始化write_com(0x80); /1000 0000 從液晶第一行開始寫命令for(i = 0;i < 15;i+)/循環寫入15個數據字母"Mode selection:"write_data(tablei);/寫數據 令其顯示在1602上while(!flag)/循環檢測 如果flag=0 則執行循環if(!KEY2) /減按鍵 選擇M法delay(15);/延遲15m

24、swrite_com(0x80 + 15);/定位數據指針,使其顯示在后面write_data('M');/寫數據,使其顯示“M”M_FLAG = 1; /M標志位置1T_FLAG = 0; / T標志位置0MT_FLAG = 0;while(!KEY2); /等待按鍵釋放if(!KEY3) /加按鍵 選擇T法delay(15);write_com(0x80 + 15);write_data('T'); /寫數據,使其顯示“T”T_FLAG = 1;M_FLAG = 0;MT_FLAG = 0;while(!KEY3);if(!KEY4) /加按鍵 選擇M/T法

25、delay(15);init(); /液晶初始化write_com(0x80); /1000 0000 從液晶第一行開始寫命令for(i = 0;i < 13;i+)/循環寫入15個數據字母"Mode selection:"write_data(table2i);/寫數據 令其顯示在1602上T_FLAG = 0;M_FLAG = 0;MT_FLAG = 1;while(!KEY4);if(!KEY1 &&(T_FLAG | M_FLAG | MT_FLAG) /如果已經選擇了M法或T法,/并按確認鍵flag = 1;/flag標志位置1while(!

26、KEY1);/等待按鍵釋放write_com(0x80 + 0x40);/從1602第二行開始寫命令、數據write_data('Z');/顯示“Z”write_data('='); /顯示“=”write_data(Z / 100 + '0');/顯示Z的百位write_data(Z / 10 % 10 + '0');/顯示Z的十位write_data(Z % 10 + '0');/顯示Z的個位flag = 0; /flag標志位置0while(!flag) /如果flag標志位是0if(!KEY2)/ 減按鍵

27、delay(15);Z=Z-50;write_com(0x80 + 0x42); /從1602第二行第三位開始寫命令、數據write_data(Z / 100 + '0');write_data(Z / 10 % 10 + '0');write_data(Z % 10 + '0');delay(15);while(!KEY2);if(!KEY3) /加按鍵 delay(15);Z=Z+50;write_com(0x80 + 0x42);write_data(Z / 100 + '0');write_data(Z / 10 % 10

28、 + '0');write_data(Z % 10 + '0');delay(15);while(!KEY3);if(!KEY1) /按下確認建flag = 1;while(!KEY1);write_com(0x80 + 0x48); /LCD第二行,第9位開始寫數據 write_data('T'); /顯示T=多少ms (周期)write_data('=');write_data(T / 1000 + '0');write_data(T / 100 % 10 + '0');write_data(T

29、 / 10 % 10 + '0');write_data(T % 10 + '0');write_com(0x80 + 0x4E);write_data('m');write_data('s');flag = 0;while(!flag)if(!KEY2)delay(15);T=T-500;write_com(0x80 + 0x4A);write_data(T / 1000 + '0');write_data(T / 100 % 10 + '0');write_data(T / 10 % 10 +

30、'0');write_data(T % 10 + '0');while(!KEY2);if(!KEY3)delay(15);T=T+500;write_com(0x80 + 0x4A);write_data(T / 1000 + '0');write_data(T / 100 % 10 + '0');write_data(T / 10 % 10 + '0');write_data(T % 10 + '0');while(!KEY3);if(!KEY1) flag = 1;while(!KEY1);f

31、lag = 0;write_com(0x01); /lCD1602清零IT0 = 1; /下降沿觸發EX0 = 1; /打開外部中斷0 TMOD = 0x11; /定時/計數器0、1工作于方式1TH0 = 0xFC; /裝入初值12.000TL0 = 0x18; /裝入初值 ET0=1; /允許定時/計數器0 中斷if(MT_FLAG) /如果選擇了M法測速TR0=1; /啟動定時/計數器0 中斷 if(M_FLAG) /如果選擇了M法測速TR0=1; /啟動定時/計數器0 中斷else if(T_FLAG) /如果選擇了T法測速 TR0=0; /啟動定時/計數器0 中斷EA=1; /開總中斷

32、while(1) /大循環;void Int0(void) interrupt 0 /外部中斷0函數if(M_FLAG) /如果選擇M法測速M1+; if(MT_FLAG) /如果選擇M/T法測速M1+; if(T_FLAG) /如果選擇T法測速TR0=1; /啟動定時器0if(flag) /如果flag標志位為1flag = 0; /將標志位置零 n = 60000/Z/M2;/n = 60000/Z/M2; /轉速公式/ /轉速公式 /轉速公式/write_com(0x80); /從1602第一行寫數據write_data('s');/顯示Speed:(表示速度)write

33、_data('p');write_data('e');write_data('e');write_data('d');write_data(':');write_data(n / 10000 + '0');/顯示轉速萬位write_data(n / 1000 % 10 + '0');/顯示轉速千位write_data(n / 100 % 10 + '0');/顯示轉速百位write_data(n / 10 % 10 + '0');/顯示轉速十位write_data(n % 10 + '0');/顯示轉速個位write_data('r');/顯示單位 r/minwrite_data('/');write_data('m');write_data('i');write_data('n');EA = 0; /關總中斷flag = 1;M2 =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論