單片機實現直流電機測速和正反轉_第1頁
單片機實現直流電機測速和正反轉_第2頁
單片機實現直流電機測速和正反轉_第3頁
單片機實現直流電機測速和正反轉_第4頁
單片機實現直流電機測速和正反轉_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、西南科技大學自動化專業方向設計報告設計名稱: 直流電機數控器設計與制作 姓 名: 汪少華 學 號: 20105191 班 級: 電氣1002 指導教師: 聶詩良 起止日期: 2013.10.19-2013.11.9 西南科技大學信息工程學院制方 向 設 計 任 務 書學生班級: 電氣1002班 學生姓名: 汪少華 學號: 20105191 設計名稱: 直流電機數控器設計與制作 起止日期: 2013.10.19-2013.11.9 指導教師: 聶詩良 設計要求:要求采用單片機、LM298等器件設計制作一個可進行直流電機正反轉和加減調速控制的電路板,電機實際轉速可在LED或LCD上顯示。 方 向

2、設 計 學 生 日 志時間設計內容10.19至10.22查閱,積累相關課題資料;了解單片機運行方式;了解LM298引腳功能10.23至10.24根據資料羅列課題方案,論證方案可行性,決定方案10.25至10.26利用Altiumdesigner軟件繪制課題原理圖10.27至10.28利用Altiumdesigner軟件繪制課題PCB版圖10.29至10.30編寫單片機程序并購買所需材料10.31至11.3根據PCB版圖及其原理圖完成電路板制作11.4至11.5單片機程序測試,電路板模塊測試11.6至11.8設計報告的編寫11.9答辯直流電機數控器設計與制作摘要STC89C52RC是一個典型的,

3、內置4KB EEPROM,MAX810復位電路,3個16 位定時器/計數器,可通過串口下載的單片機。Lm298是ST公司生產的一種高電壓、大電流電機驅動芯片。本文設計了基于Lm298芯片的直流電機驅動,用TCRT5000光電管進行轉速測量的硬件電路,用LCD顯示電機轉速。并采用STC89C52RC單片機作為控制芯片,進行直流電機正反轉和加減調速控制的直流電機數控器。本文設計的電路中主要包含4個模塊:測速模塊(光電傳感器測量電機的轉速)、電源模塊(LM7805集成穩壓芯片)、顯示模塊(LCD液晶顯示)和控制模塊(利用PWM控制電機轉速以及LM298控制正反轉)。關鍵詞單片機 直流電機 光電管測速

4、DC motor design and production of CNCSummarySTC89C52RC is a typical, built 4KB EEPROM, MAX810 reset circuit, three 16-bit timer / counter, can be downloaded via the serial port of SCM. Lm298 is ST produces a high voltage, high current motor driver chip. This article is designed based on Lm298 chip D

5、C motor drives, optical tube with TCRT5000 speed measurement hardware circuit, the motor speed with the LCD display. And using STC89C52RC chip microcontroller as control for DC motor reversing and subtraction NC DC motor speed control device. This design of the circuit mainly includes four modules:

6、speed module (photoelectric sensor to measure the motor speed), power supply module (M7805 integrated voltage regulator chips), displays (LCD liquid crystal display) and a control module (with PWM control motor speed, and LM298 positive control inversion).CategoriesDC motor  microcontroller Pho

7、toelectric tachometer一、 設計目的和意義隨著現代科技的不斷發展,現在的電子產品越來越多,在早期,電子產品一般是純硬件電路,沒有使用單片機,電路復雜難以設計,也難以檢查問題,隨著微控制技術的不斷完善和發展,集成芯片越來越多,單片機便出來了,換言之,單片機的應用是對傳統控制技術的一場革命。具有劃時代的意義。在電機控制方面也是靠人的感覺,沒有側速和側距的概念,以前人機界面一般采用LED數碼二極管,隨著LCD液晶顯示器的出現,人機界面更加人性化、智能化,它能顯示數字、漢字和圖象,控制LCD液晶顯示器也很方便,電路設計也比較簡單;加上單片機,組合實現的功能也比較強大,還可方便以后電

8、路的升級與擴展。本設計結合LCD顯示、電機控速、光電管測速等多種技術,實現了基于單片機的電機轉速測量控制系統的設計,以達到對直流電機負載(與電機連結的運行裝置)運行狀況控制的目的。二、控制要求采用單片機、LM298等器件設計制作一個可進行直流電機正反轉和加減調速控制的電路板,電機實際轉速可在LED或LCD上顯示。三、設計方案論證測速模塊模擬測速:即利用測速電機作為發電機,通過檢測反電勢E的大小和極性即可得到轉速N和電機轉向;采用這種方法直接可以得到轉速N和輸出電壓的特性曲線,直觀,但也有很多不足,比如在高速和低速情況下實際輸出偏離理想特性。數字檢測技術:即通過分析數字信號產生的一系列脈沖間接獲

9、取電機轉速。這種方法不會受高低速的限制,通過比較所以選擇數字檢測技術。采用光電傳感器測量電機的轉速,在設計中,在電機轉軸末梢上安裝紙卡,在紙卡上留出兩個孔。電機轉軸每轉一圈,發射二極管發出的光便通過紙卡的孔到達接受二極管,就可在接受二極管上產生相應的脈沖信號。計算下1s內輸出的脈沖信號的個數,把計數的結果取一半,就可得到電動機的轉動速度。電源模塊使用電壓源供電,可提供較穩定,精確電源,缺點是電壓源體積太大,不利于設計的小體積要求。使用220V轉±15V,再使用集成穩壓芯片LM7805將電壓穩定至所需,缺點是散熱不易,需加裝散熱片,體積小。顯示模塊采用數碼管動態顯示,但顯示的內容有限,

10、不豐富。采用LED點陣顯示,但需要的I/O資源較多。 采用LCD液晶顯示,顯示內容最豐富,只通過串口通信與單片機連接。調速模塊采用集成芯片Lm298及其外部輔助電路和電機構成驅動電路,利用LM298的功能引腳控制電路正反轉。通過單片機的接口,利用PWM控制電機的轉速及其加減速。最終方案:采用光電傳感器測量電機的轉速,使用集成穩壓芯LM7805將電壓穩定至所需,LCD液晶顯示,利用PWM控制電機轉速并利用LM298控制正反轉。四、系統設計4.1控制系統原理框圖系統原理框圖如圖1所示。總系統主要包括:LCD顯示、鍵盤輸入、測速模塊、PWM調速模塊和電機驅動模塊5個部分。 圖14.2系統硬件設計4.

11、2.1系統硬件原理圖及工作原理說明硬件由電源部分、單片機最小系統、液晶顯示、獨立按鍵、電源指示、光電對管及PWM調速電機等模塊構成。系統硬件原理圖見附件原理圖。4.2.2單元電路設計原理。(1)電源模塊設計使用220V轉±15V,再使用集成穩壓芯片LM7805將電壓穩定至所需。電源原理圖見圖2圖2(2)單片機核心控制模塊系統采用單片機STC89C52RD為中心控制器件,顯示部分采用液晶顯示屏顯示。控制系統采用5V電源供電,外接11.0592MHz晶振。單片機核心控制模塊主要實驗一下功能:1、控制電機的運行;2、控制測速模塊測量電機的速度;3、控制液晶顯示器顯示電機的設定轉速及當前轉速

12、。單片機電路設計原理圖如圖3. 圖3(3)PWM調速及正反轉模塊本設計采用集成芯片Lm298及其外部輔助電路和電機構成驅動電路。Lm298是 SGS 公司的產品, 其內部包含 4 通道邏輯驅動電路, 即內含二個H 橋的高電壓大電流雙全橋式驅動器, 接收標準TTL 邏輯電平信號, 可驅動 46V、2A以下的電機。由 Lm298構成的通過單片機的接口,利用PWM控制電機的轉速及其加減速。通過按鍵P2.4、P2.5分別控制電機的加速減速。電路原理圖如圖4。圖4(4 )測速模塊 采用光電傳感器測量電機的轉速,在設計中,在電機轉軸末梢上安裝紙卡,在紙卡上留出兩個孔。電機轉軸每轉一圈,發射二極管發出的光便

13、通過紙卡的孔到達接受二極管,就可在接受二極管上產生相應的脈沖信號。計算下1s內輸出的脈沖信號的個數,把計數的結果取一半,就可得到電動機的轉動速度。為提高精度,將輸出信號經LM324整流后送入單片機T1口。測速原理圖如圖6,實物如圖5。圖5 圖6(5)顯示模塊 采用LCD液晶顯示,顯示內容最豐富,只通過8條數據線與單片機連接,采用了串口通信的原理。顯示原理圖如圖7,實物圖如圖8。圖7圖84.2.3硬件PCB圖圖94.3軟件各功能的流程圖4.3.1定時計數模塊是輸出T1值否計時是否結束T1計數+1是否是否有脈沖信號T0計數開始4.3.2PWM調速模塊4.4主程序及注解#include<reg

14、52.h>#include <stdio.h>#include "1602.h"sbit KEY_CTRl=P27;sbit KEY_UP=P26;sbit KEY_DOWN=P25;sbit KEY_REVERSE=p24;sbit IN1=P10;sbit IN2=P11;sbit IN3=P12;sbit IN4=P13;sbit ENA=P14;sbit ENB=P15;unsigned char temp16;unsigned char SwitchZT,LEVEL,SPEED,REVERSE,ENA,SPEED_COUNT;/*-系統延時-*/

15、void Delay(unsigned int z)unsigned int x,y;for(x=0;x<z;x+)for(y=0;y<120;y+);/*-所有東西初始化-*/void EVE_Init(void)LEVEL=50;REVERSE=0;ENA=1;SPEED_COUNT=0;TMOD =0X11;TH0 = (65536-10000) /256; TL0 = (65536-10000) %256;TH1 = (65536-50000) /256; TL1 = (65536-50000) %256;EA = 1;IT0=1;EX0=1;ET0 = 1;TR0 = 1

16、; ET1 = 1;TR1 = 1; /*-顯示-*/void Show(void)sprintf(temp,"LEVEL:%3d",LEVEL);LCD_Write_String(0,0,temp);sprintf(temp,"SPEED:%3d",SPEED);LCD_Write_String(0,1,temp);if(REVERSE=1) sprintf(temp,"REV",SPEED); LCD_Write_String(12,0,temp); if(ENA=0) sprintf(temp,"STO",S

17、PEED); LCD_Write_String(12,1,temp); /*-按鍵掃描-*/void Key_Scan(void)KEY_UP=1;KEY_DOWN=1;KEY_CTRL=1;KEY_REVERSE=1;if(KEY_UP=0)Delay(1);if(KEY_UP=0)if(LEVEL>=0&&LEVEL<100) LEVEL+;while(KEY_UP=0)Show();if(KEY_DOWN=0)Delay(1);if(KEY_DOWN=0)if(LEVEL>0&&LEVEL<=100) LEVEL-;while(KE

18、Y_DOWN=0)Show();if(KEY_CTRL=0)Delay(1);if(KEY_CTRL=0)ENA=ENA;while(KEY_CTRL=0)Show();if(KEY_REVERSE=0)Delay(1);if(KEY_REVERSE=0)REVERSE=REVERSE;while(KEY_REVERSE=0)Show();/*-計算速度-*/void COUNT_SPEED() interrupt 0SPEED_COUNT+;void CHECK_SPEED() interrupt 3static unsigned char s_count=0;TH1 = (65536-50

19、000) /256; TL1 = (65536-50000) %256;s_count+;if(speed_count>=20) s_count=0; SPEED=SPEED_COUNT; SPEED_COUNT=0; /*-PWM速度調制 -*/void PWM() interrupt 1static unsigned char PWM_switch=0,PWM_COUNT;switch(PWM_switch)case 0: if(LEVEL=100) PWM_switch=2; else if(LEVEL=0) PWM_switch=3;else PWM_COUNT=LEVEL;IN

20、1=REVERSE&1;IN2=(REVERSE)&1;PWM_switch=1;break;case 1:PWM_COUNT-;if(PWM_COUNT=0) IN1=0; IN2=0; PWM_switch=0; break;case 2: IN1=REVERSE&1;IN2=(REVERSE)&1;if(LEVEL!=100) PWM_switch=0;break;case 3:IN1=0;IN2=0;if(LEVEL!=0) PWM_switch=0;break; TH0 = (65536-10000) /256; TL0 = (65536-10000) %256; /*-狀態機-*/void Main_Fun(void)static unsigned char SwitchZT=0;switch(SwitchZT)case 0:DATA=CHECK_SPPED();SwitchZT=1;break;case 1:Show();SwitchZ

溫馨提示

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

評論

0/150

提交評論