直流電機PWM調速與控制設計報告_第1頁
直流電機PWM調速與控制設計報告_第2頁
直流電機PWM調速與控制設計報告_第3頁
免費預覽已結束,剩余31頁可下載查看

下載本文檔

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

文檔簡介

1、綜合設計報告單位:.自動化學院學生姓名:專業:測控技術與儀器班級:-0820801學號:-指導老師:_成績:.設計時間:2011年12月 重慶郵電大學自動化學院制一、題目 直流電機調速與控制系統設計。二、技術要求 設計直流電機調速與控制系統,要求如下:1、學習直流電機調速與控制的基本原理;2、了解直流電機速度脈沖檢測原理;3、利用 51 單片機和合適的電機驅動芯片設計控制器及速度檢測電路;4、使用 C 語言編寫控制程序,通過實時串口能夠完成和上位機的通信;5、選擇合適控制平臺,繪制系統的組建結構圖,給出完整的設計流程圖6、要求電機能實現正反轉控制;7、系統具有實時顯示電機速度功能;8、電機的設

2、定速度由電位器輸入;9、電機的速度調節誤差應在允許的誤差范圍內。三、給定條件1、直流電機驅動原理 ,單片機原理及接口技術等參考資料;2、 電阻、電容等各種分離元件、IC、直流電機、電源等;3、STC12C5A60S單片機、LM298 以及 PC機;四、設計1. 確定總體方案;2. 畫出系統結構圖;3. 選擇以電機控制芯片和單片機及速度檢測電路,設計硬件電路;4. 設計串口及通信程序,完成和上位機的通信;5. 畫出程序流程圖并編寫調試代碼,完成報告;直流電機調速與控制 摘要:當今社會,電動機作為最主要的機電能量轉換裝置,其應用范圍已遍及國民經 濟的各個領域和人們的日常生活。無論是在工農業生產,交

3、通運輸,國防,航空航天,醫療 衛生,商務和辦公設備中,還是在日常生活的家用電器和消費電子產品(如電冰箱,空調, DVD等)中,都大量使用著各種各樣的電動機。據資料顯示,在所有動力資源中,百分之九 十以上來自電動機。 同樣, 我國生產的電能中有百分之六十是用于電動機的。電動機與人的生活息息相關,密不可分。電氣時代,電動機的調速控制一般采用模擬法、PID控制等,對電動機的簡單控制應用比較多。 簡單控制是指對電動機進行啟動, 制動, 正反轉控制和順序 控制。 這類控制可通過繼電器, 光耦、可編程控制器和開關元件來實現。還有一類控制叫復 雜控制,是指對電動機的轉速,轉角,轉矩,電壓,電流,功率等物理量

4、進行控制。本電機控制系統基于 51 內核的單片機設計,采用 LM298 直流電機驅動器,利用 PWM 脈寬調制控制電機,并通過光耦管測速,經單片機 I/O 口定時采樣,最后通過閉環反饋控制 系統實現電機轉速的精確控制,其中電機的設定速度由電位器經A/D 通過輸入,系統的狀顯示與控制由上位機實現。經過設計和調試,本控制系統能實現電機轉速較小誤差的控制, 系統具有上位機顯示轉速和控制電機開啟、 停止和正反轉等功能。 具有一定的實際應用意義。 關鍵字: 直流電機、反饋控制、 51內核、 PWM 脈寬調制、 LM298、 系統原理及功能概述1、系統設計原理本電機控制系統采用基于 51 內核的單片機設計

5、, 主要用于電機的測速與轉速控制, 硬件方面設計有可調電源模塊, 串口電路模塊、 電機測速模塊、 速度脈沖信號調理電路 模塊、 直流電機驅動模塊等電路; 軟件方面采用基于 C 語言的編程語言, 能實現系統與 上位機的通信, 并實時顯示電機的轉速和控制電機的運行狀態,如開啟、停止、正反轉 等。單片機選用了 51升級系列的STC12c5a60s2作為主控制器,該芯片完全兼容之前較 低版本的所有51指令,同時它還自帶 2路PWM控制器、2個定時器、2個串行口支持 獨立的波特率發生器、 3路可編程時鐘輸出、8路10位AD轉換器、一個SPI接口等,能非常方便的滿足本次電機控制的需求,其PWM端口用于輸出

6、一定頻率且脈寬可調的PWM波用于控制電機轉速,單片機自帶的A/D端口作為設定速度的模擬信號輸入口,定時器用于串口通信和速度的定時采樣以及上位機的定時顯示等。系統的電機驅動單元選擇了LM298N大功率驅動芯片,再利用 TLP521光耦合器和整流二極管設計的驅動電路能實現電器隔離與控制,能提高控制效率和精度極大減少了撓動干擾,而且可以實現電機的正反裝和剎車功能。系統測速模塊基于槽型光耦 GK105設計,將電機的轉速轉換成不同頻率的脈沖信 號,在經過基于 LM324的電壓比較器和 74HC573鎖存器進行信號波形的整形,最后通 過檢測單片機的I/O 口的脈沖實現速度的測量。1.1直流電機基本工作原理

7、Gi)甘體曲處于極b :佝 導休的處于舛極下圖直流電機的基本結夠圖1. 2直流電機調速原理直流電機轉速n的表達式為:U IRn(1-1)K式中:U-電樞端電壓;I-電樞電流;R-電樞電路總電阻;-每極磁通量;K與電機結構有 關的常數,因此直流電機轉速n的控制方法有三種,主要以調壓調速為主。本控制器主要通過脈寬調制PWM來控制電動機電樞電壓,實現調速。調脈寬的方式有三種:定頻調寬、定寬調頻和調寬調頻。本系統采用了定頻調脈寬方式的PWM控制,因為采用這種方式,電動機在運轉時比較穩定;并且在采用單片機產生PWM脈沖的軟件實現上比較方便。對直流電機轉速的控制即可采用開環控制,也可采用閉環控制。與開環控

8、制相比,速度控制閉環系統的機械特性有以下優越性:閉環系統的機械特性與開環系統機械特性相比,其性能大大提高;理想空載轉速相同時,閉環系統的靜差率(額定負載時電機轉速降落與理想空載 轉速之比)要小得多;當要求的靜差率相同時,閉環調速系統的調速范圍可以大大提高。直流電機的速度控制方案如圖 1所示。轉速設定值偏差轉速輸出卜調節器測速裝置圖1直流電機速度閉環控制方案二、系統硬件設計1.系統總體設計框圖本系統采用STC12C5A60作為控制核心,用上位機顯示設定轉速和測量轉速以及控制電機。采用LM298驅動芯片作為本系統的驅動電路和用槽型光耦GK105作為該系統的測量電路。框圖如2所示。LM298 驅動電

9、路時鐘電路直流電機光耦測速管信號調理 電路STC12C5A60S2單片機UART 串 口 電路上位機顯示 與控制速度模擬 量輸入電 路電源模塊圖2 直流電機控制系統總體框圖2 模塊電路及功能介紹單片機最小系統電路單片機主要擅長系統控制,而不適合做復雜的數據處理,在設計單片機最小系統時我們選用STC12C5A60S位DIP-40封裝的單片機作為 MCU。STC12C5A60S芯片是有宏晶科技生產的 單時鐘/機器周期(1T)的單片機,具有64K的用戶程序存儲空間及1280字節的RAM,完全 兼容之前較低版本的所有 51指令,但速度快5 8倍,內部集成有 MAX801專用復位電路、同 時它還自帶2路

10、PWM控制器、2個定時器、2個串行口支持獨立的波特率發生器、3路可編程時鐘輸出、8路高速10位AD轉換器、一個SP接口等,應用于電機控制等強干擾場合。本系統的單片機最小系統由時鐘電路、復位電路、電源電路、外圍總線接口等部分組成。圖3為單片機最小系統結構框圖。S F0FTP 1 1S1J>AP 1 2Pl"r 斗MOSI P 1 5xi is<) r iSC1KP 1 7RFSTTP3 1P32P33心4P35P Xt>WXIX2I M7 sI 71 H140TO£3牛3753嚇6357”&329321 O3 11 1301 22931 4271 S

11、1 &231 72-41 N239f fX22工1PCM JPOlPO3P<M-l'C)5potsEA丄w7)P22PZJP2OI OI 4 I 5 IO1 7 I H1 9圖351最小系統電路2.1.1系統時鐘電路XTALI 和 XTAL2單片機內部具有一個高增益反相放大器,用于構成振蕩器。通常在引腳跨接石英晶體和兩個補償電容構成自激振蕩器,系統時鐘電路結構如圖 6所示,可以根據情況選擇6MHz、8MHz或12MHz等頻率的石英晶體,本系統采用 12MHz的晶振。補償電容 通常選擇20-30pF左右的瓷片電容。2.1.2復位電路單片機小系統采用上電自動復位和手動按鍵復位

12、兩種方式實現系統的復位操作。上電復位要求接通電源后,自動實現復位操作。 手動復位要求在電源接通的條件下,在單片機運行期間,用按鈕開關操作使單片機復位。復位電路結構如圖 6所示。上電自動復位通過電容充電來實現。手動按鍵復位是通過按鍵將電阻與VCC接通來實現。電機驅動模塊直流電機驅動采用常用的 H橋電路,通過控制信號選通對管與否實現電機的正反轉, 并改變所加電壓的占空比來改變電機轉速。如圖4所示,這里采用電機驅動專用芯片L298N,該芯片可驅動兩路 5 - 36V的直流電機或者一路四拍的步進電機。同時在L298N與主控芯片間通過四路光耦 TLP521 - 4隔離消除干擾信號。在 STC12C5A6

13、0S2±配置好串口、 PWM,實 現串口接收的數據直接賦值給PWM定時器CCAP1L CCAP1H利用串口調試助手發送控制信息給STC12C5A60S2同時輔助外界 6V電源更改L298N的IN1和IN2共同完成L298N電機 驅動模塊的調試。圖4 LM298N電機驅動電路直流電機測速電路2.3.1槽型光耦GK105測速電路n姑刷圖5槽型光耦GK105電路如圖5和圖6所示,和光電三極管構成,當二極管發出的光打在光電三極管的基極B上時三極管 CE導通。而正常情況下二極管的光不能到達光電管的基極上,故通過裝在電機轉軸上得圓形編碼片即可實現對小車的測速。假設編碼片兒有n片個缺口,測得光電三

14、極管的輸出脈沖頻率為f,則車速=f/n 。由圖7可知,電機每轉一圈,槽型光耦產生4個脈沖,因此可以利用槽型光耦傳感器信號得到電機的實際轉速。為盡可能縮短一次速度采樣的時間,則電機的實際轉速為:V=(N/4)*60;4fV速度R/mi nN:每秒采樣的脈沖個數圖7電機轉1圈GK105光耦管信號2.3.2速度脈沖信號調理電路給電機加電讓其帶動編碼盤旋轉,將光電對管靠近編碼盤,用示波器觀測輸出脈沖信號的有無與好壞。信號調理電路主要利用LM324運算放大器設計的比較器,如圖8所示,調節比較器偏置電壓使脈沖最接近于方波且幅度大于。為了提高測速的精 度,在信號后級添加比較器調理信號為標準的方波,調節比較器

15、運放的偏置電壓使方 波信號最適合于測速。串口電路設計1、2、3、MAX232芯片是美信公司專門為電腦的RS-232標準串口設計的接口電路, 使用+5V 單電源供電。其內部結構基本可分三個部分:第一部分是電荷泵電路,由4、5、6腳和4只電容構成。功能是產生+12V和-12V兩個電源,提供給 RS-232串口電平的需要。第二部分是數據轉換通道,由7、8、9、10、11、12、13、14腳構成兩個數據通道。其中13 腳(R1IN )、12 腳(R10UT)、11 腳(T1IN )、14 腳(T10UT)為第一數據通道。8 腳(R2IN)、9 腳(R20UT)、10 腳(T2IN )、7 腳(T20U

16、T)為第二數據通道。 TTL/CMOS數據從 T1IN、T2IN輸入轉換成 RS-232數據從 T10UT、T20UT 送到電腦 DB9插頭;DB9插頭的 RS-232數據從 R1IN、R2IN輸入轉換成 TTL/CMOS數 據后從 R10UT、R20UT輸出。第三部分是供電,15腳GND、16腳VCC ( +5V)。電路如圖9所示。圖9串口電路圖系統電源設計LM317作為電源芯片。本系統要求有 5V和6 7V的電源輸入,因此我們選用了LM317作為輸出電壓可變的集成三端穩壓塊,是一種使用方便、應用廣泛的集成穩壓 塊。其應用電路如圖10所示。圖11為電源濾波電路。VCCC2IIJUL'

17、Fl>U2*LED圖11 濾波電路穩壓電源的輸出電壓可用下式計算,Vo=( 1+R2/R1 )。本系統中取 R1 為 240n,R2取5K的可調電位器。通過調節R2的阻值大小,進而可以改變輸出電壓的大小,實現電壓可調,其可調范圍是Vo= 37V。在應用中,為了電路的穩定工作,在一般情況下,還需要接二極管作為保護電路,防止電路中的電容放電時的高壓把317燒壞。電機設定速度輸入電路本系統采用了簡單的電位器,通過電位器將5V電源信號分壓在經過單片機A/D端口輸入到CPU處理,實現電機速度手動的可調,其電路如圖12所示。三、系統軟件設計本程序主要分為6大塊,主程序、A/D轉換處理程序、PWM輸出

18、程序、串口顯示與電機狀態控制程序、定時器0的中斷服務程序,串口中斷服務程序。主程序主要做了系統初始化,定時器0的初始化和主循環等。配置STC12C5A60S2定時器0為定時器方式 2、50ms計數器中斷,累計20次定時器0中斷為1秒,此時 TL1即光電對管輸入的脈沖頻率,同時在此一秒內觸發AD采集一次電源電壓Voltage送入內存并通過運算轉換成設定的速度值。PC終端的顯示也是沒隔一秒刷新一次。配置STC12C5A60S2串行口 1為方式2、獨立波特率發生器9600、允許接收中斷。當串口 1接收到PC機數據轉入中斷處理程序,檢測接收到的數據以此來區分數據是屬于哪種控制信號。配置STC12C5A

19、60S2脈寬調制 PWM為8位、無中斷。主程序中循環執行Pwm()函數實時更改PWM定時器CCAP1L CCAP1H的值,實現對電機轉速的控制。1 .主程序主程序主要功能為系統初始化,定時器0的初始化和主循環等。流程圖如圖13所示圖13系統主程序流程圖2. 串口中斷發送程序本系統的串口通信指的是單片機與上位機(PC機)之間的串口通信,該通信主要用于測速模塊的調試以及在測量轉速時,單片機能從上位機(PC機)接收數據或者能將數據發回給上位機(PC機),以便觀察電機轉動情況,或者獲得我們所需要的數據。如圖14所示,在本設計中,采用的是STC12C5A60S2芯片的串口 UARTO來與PC機進行串口通

20、信。在串口UARTO的配置中,定時 /計數采用方式 2是將兩個 8位計數器TH1和TL1分成獨立的兩個部分,組成一個8位可自動再裝入的定時器/計數器,由TL1作為8位計數器,TH1作為計數初值寄存器,設置初值時同時送TH1和TL1,當TL1計數滿回0產生溢出,不僅置位TF1,而且控制 TH1中的初值重新裝入TL1,繼續下一輪計數,此信號送串行通信系統,以設置串行通信波特率,波特率設置公式如式所示:波特率 =2 SMOD*(溢出率)/32圖14串口發送程序流程圖3. 串口中斷接收程序上位機控制單元解擴出 1bit數據后,產生一次中斷。接收時首先采用 窗口、1bit滑動方式來接收通信的同步幀頭0x

21、09、0xAF,幀頭接收成功后,按每8bits 一個字節的方式進行截取,得到傳送的有效數據,同時將得到的有效數據 存儲在緩沖單元中;接收過程中,按有關的通信協議進行地址判別、長度接收、校驗 計算。地址相同的模塊對符合通信協議的數據進行應答,轉入發送態。程序流程圖如16bits接收后續數據圖15所示。進入接收中斷圖15串口接收程序流程圖4. A/D轉換程序A/D轉換程序主要用于電機速度的輸入模擬信號的采集與轉換。程序流程圖如圖16所示。圖16 A/D轉換程序流程圖5. PWM輸出程序PWM控制一一脈沖寬度調制技術,即通過一系列脈沖的寬度調制來等效地獲得所需的波形(含形狀和幅值),程序主要用于控制

22、電機轉速,他通過主程序的反饋算法計算出來,圖17 PWM輸出程序流程圖6 定時器0中斷服務程序定時器0中斷程序主要用于1秒定時、轉速的計算、A/D值采集以及上位機顯示刷新。序流程圖如圖18所示。圖18定時器0中斷服務程序流程圖四、系統調試及性能分析1.系統硬件調試如圖19為系統測速電路的采樣波形圖19經整形后的速度脈沖波形串口收發數據調試串口電路是連接PC機與通信模塊的橋梁,可借助串口調試助手對所設計的串口通信電路和通信模塊進行測試。如圖所示,通過串口調試助手,向端口分別發送數據 0x01、0x02、0x03、0x04、0x05數據經串口電路被單片機接收,將數據進行存儲判斷,決定是開啟顯示和電

23、機還是正反轉或是停止,同時將所出狀態及電機轉速發送回來,在串口調試助手的接收窗口上可以看到接收到的數據。串口調試如圖20所示。I芾口I-It 丨 X|停止位老閉t: 口瞪11顯a :2 口動話空 廠-hk鍛刪忌亍芒?7鈕亍裁®f|正耳II1LLlHU*T*a«暫alle口4s*o«e0QIIeewaeua pG>ppponpppppppE>p?ppp PADP ru Jllfilfl uEHausJIsEusllsulKsns 一匚一二匚二一-二L-L-一匚 KLAlJ 丄就 J a JRL41alaL-il 機 d 4 ;機 daialQl4 畳更&

24、#171;*<£. _*<«-*<* 滬亡備 * -VCM rrrrrrrrrrrrrrrrrTilrrrrr1?isJ n.D2B-*v*.4§5 眉63TJ74E 右諾75151UJ骨1 J呂呂£!dddrtddddd-d djddddd-dddjd dd « 4 » _r e » c e “ s:Kgs:5:*5:q 一- -=-t t 七電 t 社£申-t 七 t #- e*««e-w -U4-電 <>-*0_l!e<F*>=Lax.3sulx,

25、3'5.5. m'sEilrsIJEBIln !=3T->11 *£*e 56 veilogt £ 專町 vul L-ag« S TE占1 *FI*5 2* volt =T§fw*s T 5 vJ-L-ag TE -oll ng« s T6, vol 1 -ie* E TT$ vol X 4 £ 寸Q# vol t gt: s SG truL -L k» 9 35., ifoI t -ftgeiu iO亂 wo丄tdgo 3 £111 種承ItmU口li?. lZ, TT3H38 丄亠.m_

26、i £那T&ER i總蛇械期 讓玄Q2T344 i iS. 0CT134404Fn7S iMB. (H&PT5 i;s. oe«w二 63曲1 鼻勺.61-JSgJl irs? fil3?E1 iel.&*S125 i-l. WE50Q苗三出點.劉土的=苛/妒jy h十/7鍛幗曲4 手戢悽醫 廠自動知g胸陶曼后重覽1 l=|itltULI0M : luiTi 包a s> j j ljin. im Jil. is. 11L 1、 U * 5】0艮 is 1皿 l£ 110,vnl-t 鼻鼻 i.x4. D429Bg vltJice ig

27、j tHEWR Elty is4.0e2O31 '宀丄il.UVLL JL尊4<L 陷e i 4. EIZ343B ist.valt4« in*QC勒前I*塔文L|占 i:rATiu ; cikMH urKnr.-.i .*,ua»n,u,L m '. n tjcll|iSnith' -t h£SEi IMtZL. YEHIslUUD圖20電機轉速及對應的電壓顯示數據實物展示圖22系統實物圖2 系統測試數據處理利用matlab對電機兩端電壓和轉速數據進行曲線擬合實型電壓數據:votlage_V= 2345;整型電壓數據:votlage

28、_D=77,82,87,92,97,102,108,113,118,123,128,133,138,143,148,153,159,164,169,175,179, 185,190,195,200,205,210,216,220,225,231,236,241,246,251,255;測得速度數據:speed=12,17,22,27,33,42,45,48,53,58,62,65,69,73,76,80,83,87,89,93,96,99,101,103,106,109,111,113,116,119,122,125,128,133,140,144;Matlab擬合命令:p=polyfit(v

29、otlage_V,speed,1);speed_poly 1=p(1)*votlage_V+p(2);q=polyfit(votlage_D,speed,1);speed_poly2=q(1).*votlage_D+q(2);figure(1)plot(votlage_V,speed,'or',votlage_V,speed_poly1);grid ontitle('電壓 V-轉速 r/s')figure(2)plot(votlage_D,speed,'or',votlage_D,speed_poly2);grid ontitle('電壓

30、 D-轉速 r/s')擬合曲線如圖21所示:圖21電壓一速度曲線如圖21所示,電機電壓與轉速基本成正比關系,所以可以按最小二乘法進行線性擬合,得到電壓與轉速關系式為:(1)電壓為實型,轉速 =*電壓V ,其中(a=, b=);(2) 電壓為整型,轉速 =*電壓,其中(a= b=);上面兩個關系式將作為電機控制的基本數學模型,有軟件算法實現電機輸出轉速對輸入電壓的跟蹤。不同轉速設定值下電機對應的輸出轉速及誤差如表1輸入轉 速輸出轉 速絕對誤差輸入轉 速輸出轉 速絕對 誤差1213-17680-41719-28078-22219383812272528789-2333308993-4424

31、029397-445423969424849-1999905355-2101102-15859-1103104-162620106105165632109112-36971-211111107376-31131121116119-312512501191172128130-2122126-41331312表1電機轉速誤差表2. 3電機輸出轉速誤差曲線圖23電機輸出轉速相對電壓絕對誤差曲線電底.一塗圮7圖24電機輸出轉速相對電壓的相對誤差曲線2 . 4系統性能分析對上面圖23、圖24兩個誤差曲線分析可以得出以下結論,一方面,當電機兩端的電壓在范圍了變化時,電機的轉速變化范圍在12R/S134R/

32、S (即720R/mint8040R/mint )之間變化,當電機兩端的電壓在以下時,電機無法驅動,為電機的死區電壓,電機轉速變化基本符合實際情況。另一方面,由于本系統自身設計本省存在著多種缺陷,所以測式結果產生了一定的誤 差,電機轉速的絕對誤差基本在 6V 以下,其相對誤差根據兩端電壓范圍的不同呈現不同的 趨勢,當電壓在左右,即電機轉速W 50R/S時,電機輸出轉速的相對誤差W16%,當電機兩端電壓在左右,即電機轉速60R/S時,電機輸出轉速的相對誤差W8%。所以系統綜合性能基本能滿足設計要求。五、設計心得課程設計是培養我們綜合運用所學知識發現、提出、分析和解決實際問題,鍛煉實踐能力的重要環

33、節 ,是對我們實際工作能力的具體訓練和考察過程。本次的課程設計是基于運用所學單片機技術、 傳感檢測技術、 電機驅動技術等方面的知 識,設計電機調速與控制系統, 很好的結合了當今工業直流電機方面的實際應用, 相對于前 幾學期的課程設計, 這次的題目綜合性更高、 設計難度更大、 實用性更強, 是對我們所學專 業知識如單片機原理及接口技術 、傳感器與檢測、C語言程序設計、直流電機驅動 原理等課程知識的綜合檢驗與應用, 很好的鍛煉了我們從單一模塊到系統設計與調試能力 的轉變與提高,同時也讓增強了我們直流電機控制原理與應用有了更深的認識和體會。回顧起此次課程設計,至今我仍感慨頗多,從選題到定稿,從理論到

34、實踐,我們小組都付出了很多努力, 也收獲了很多, 在此次設計中不僅可以鞏固了以前所學過的知識, 而且學 到了很多在書本上所沒有學到過的知識。 通過這次課程設計也使我懂得了理論與實際相結合 的重要性, 只有理論知識是遠遠不夠的, 只有把所學的理論知識與實踐相結合起來, 從理論 中得出結論, 才能做出實際的有用的東西, 從而提高自己的實際動手能力和獨立思考的能力。 通過這次課程設計還鍛煉了我們的團隊合作精神,只有大家在分工明確的基礎上齊心協力, 才能使團隊獲得成就。在這次設計的過程中我們也遇到了很多困難, 尤其是我們小組有兩個人都要考研, 時間 特別緊迫, 還有就是這次在電機的控制其設計和測速模塊

35、的設計上都遇到了很大的問題,但是我們在老師的指導下, 我們小組積極討論, 分工合作, 合理安排時間,通過查閱資料學習 相關的知識,逐步突破了每一個技術難關,最后比較好的獨立的完成了這次設計。通過這次課程設計, 我更發現了自己的很多不足之處, 對以前所學過的知識理解得不夠 深刻,掌握得不夠牢固, 而且缺少自主分析問題的能力, 碰到問題后有一種和逃避依賴心理。 也讓我明白做電子類設計每一步都要細心嚴謹,不能馬虎。六、 參考文獻1李朝青編 單片機原理及接口技術 (簡明修訂版 )北京航空航天大學出版社, 1998 2胡向東編傳感技術 .重慶大學出版社, 2006 年第 1 版。3. 譚浩強 C 語言程

36、序設計 . 北京:清華大學出版社, 2002。8. 后閑哲也編 單片機 C 程序設計與實踐叢書北京航空航天大學出版社 2008。七、 附錄程序: #include <>#include <>#include ""typedefunsigned charINT8U;typedefunsigned intINT16U;typedefunsigned intINT8;/ 以下選擇 ADC 轉換速率,只能選擇其中一種/SPEED1 SPEED0 A/D 轉換所需時間#define AD_SPEED0x60 / 0110,00001170 個時鐘周期轉換一次

37、,/ CPU工作頻率21MHz時 A/D 轉換速度約 300KHz/#define AD_SPEED0x40 /0100,000010140 個時鐘周期轉換一次/#define AD_SPEED0x20 /0010,000001280 個時鐘周期轉換一次/#define AD_SPEED0x00 /0000,000000420 個時鐘周期轉換一次/#define uchar unsigned char/#define uint unsigned int#defineP2M00x00#defineP2M10x00#defineP0M00x00#defineP0M10x00sbit caiji=P

38、2A2;sbit led0=P2A0;sbit led 仁P2X;INT8 flag_uart=0,flag_on=0,flag_x=0,flag_xianshi=0,flag_ad=0,n1=0;INT8 ad_vall=0,ad_val=0,moto_speed=0,shudu=0,shisu=0;INT8U rec,cont=0,cont2=0;/ 串口、計數器變量float ad_fl,a1=0,a2=0,b1=0,b2=0;INT8U get_AD_result(INT8U channel); /AD 轉換函數聲明void delay0(INT8U delay_time);void

39、delay(char xms) ;/ 延時函數聲明/ 延時函數void timer_init()/ 定時器計數器初始化函數 TMOD=0x21;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=0xfd; TL1=0xfd; TR1=1;ET0=1; SM0=0; SM1=1; REN=1; EA=1;ES=1;void ad_init() P1ASF=0x01; AUXR1 &= 0x04;ADC_CONTR |= 0x80;void pwm_init()/ 單片機 AD 初始化函數/1111,1111, 將 P1 置成模 AD/ 000

40、0,0100, 令 ADRJ=0/1000,0000 打開 A/D 轉換電源/ 單片機 PWM 相關寄存器 初始化函數 CCON=0; CL=0; CH=0; CMOD=0x00;PCA_PWM0=0x00; CCAPM0=0x42;EPCnL=1, CCAPnL=FFH 時 PWM 固定輸出低 */;PCA_PWM1=0x00; CCAPM1=0x42; CR=1; void PWM(INT8 a) INT8 xx; xx=256-a;CCAP0H=CCAP0L=0+xx;CCAP1H=CCAP1L=256-xx-5;INT8 ceshu() if(caiji=0)n1=1;if(caiji

41、=1)&&(n1=1) shudu+; n1=0;/P13/P14/ 速度脈沖檢測函數/ 脈沖上升沿檢測void delay0(INT8U delay_time) ;return shudu;void UART(INT8 a,INT8 b,float c) if(flag_uart=1) flag_uart=0; ES=0;switch(flag_on)/ 串口函數/ 串口顯示標志判斷TI=1;/ 顯示模式及電機狀態控制命令判斷 case 0: puts("Turn on n");led0=0;led1=1; TR0=1; _nop_();_nop_();_nop_();_nop_();break;case 1:_nop_();_nop_();led0=0;led1=0; _nop_();_nop_(); led0=1;led1=0; break;case 2:_nop_();_nop_();led0=0;led1=0; _nop_();_nop_(); led0=0;led1=1; break;led0=0;led1=0;TR0=0; break;case 3: printf("Turn off n");break; / 串口顯示標志判斷case 4: puts("Error!n"); whil

溫馨提示

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

評論

0/150

提交評論