直流電機調(diào)速與系統(tǒng)控制詳解_第1頁
直流電機調(diào)速與系統(tǒng)控制詳解_第2頁
直流電機調(diào)速與系統(tǒng)控制詳解_第3頁
直流電機調(diào)速與系統(tǒng)控制詳解_第4頁
直流電機調(diào)速與系統(tǒng)控制詳解_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、電子工藝課程設(shè)計報告姓名盧星星班級T983-6學(xué)號20090830616指導(dǎo)老師王思山標(biāo)題 直流電機調(diào)速與控制系統(tǒng)設(shè)計.課程設(shè)計課題總體分析1.1 直流電機調(diào)速原理圖1.1所示電樞電壓為Ua,電樞電流為Ia ,電樞回路總電阻為Ra,電機常數(shù)Ca, 勵磁磁通量是。根據(jù)KVL方程:電機轉(zhuǎn)速n=(Ua-IaRa)/Ca。,其中,對于極對數(shù)p,匝數(shù)為N, 電樞支路數(shù)為a的電機來說:電機常數(shù)Ca=pN/60a,意味著電機確定后,該值是 不變的。而在Ua-IaRa中,由于Ra僅為繞組電阻,導(dǎo)致IaRa非常小,所以Ua-IaRa 約等于Ua由此可見我們改變電樞電壓時,轉(zhuǎn)速 n即可隨之改變。圖1.1直流電機原

2、理圖1.2 系統(tǒng)硬件組成原理調(diào)速系統(tǒng)硬件原理框圖1.2圖直流電機調(diào)速系統(tǒng)硬件原理框圖如圖 1.2所示,以89C51單片機為控制核心,包 括測速電路、電源電路、數(shù)模轉(zhuǎn)換電機驅(qū)動電路、顯示電路、鍵盤控制電路。1.3 直流電動機轉(zhuǎn)速控制系統(tǒng)的工作原理直流電動機的轉(zhuǎn)速與施加于電動機兩端的電壓大小有關(guān)。本系統(tǒng)用DAC0832空制輸出到直流電動機的電壓的方法來控制電動機的轉(zhuǎn)速。當(dāng)電動機轉(zhuǎn)速小于設(shè)定值時,DAC08325片的輸出電壓增大,當(dāng)大于設(shè)定值時則 DAC08325片輸出電壓減 小,從而使電動機以設(shè)定的速度恒速旋轉(zhuǎn)。我們采用比例調(diào)節(jié)器算法??刂埔?guī)律:Y=KPe(t)+KI式中:Y-比例調(diào)節(jié)器輸出,KP

3、-比例系數(shù),ki-積分系數(shù)e(t)-調(diào)節(jié)器的輸入,一般為偏差值。系統(tǒng)采用了比例積分調(diào)節(jié)器,簡稱 PI調(diào)節(jié)器,使系統(tǒng)在擾動的作用下,通過 PI 調(diào)節(jié)器的調(diào)節(jié)器作用使電動機的轉(zhuǎn)速達到靜態(tài)無差,從而實現(xiàn)了靜態(tài)無差。無靜 差調(diào)速系統(tǒng)中,比例積分調(diào)節(jié)器的比例部分使動態(tài)響應(yīng)比較快(無滯后) ,積分 部分使系統(tǒng)消除靜差。1.4 轉(zhuǎn)速測量電路原理轉(zhuǎn)速是工程上一個常用的參數(shù),旋轉(zhuǎn)體的轉(zhuǎn)速常以每分鐘的轉(zhuǎn)數(shù)來表示。其單位為r/min。轉(zhuǎn)速的測量方法很多,由于轉(zhuǎn)速是以單位時間內(nèi)的轉(zhuǎn)數(shù)來衡量的,因 此采用霍爾元器件測量轉(zhuǎn)速是較為常用的一種測量方法?;魻柶骷怯邪雽?dǎo)體材料制成的一種薄片,器件的長、寬、高分別為1、b、d。

4、若在垂直于薄片平面(沿厚度 d)方向施加外加磁場B,在沿1方向的兩個端面 加以外電場,則有一定的電流經(jīng)過。由于電子在磁場中運動,所以將受到一個洛 侖磁力,其大小為:fl =qVB式中:fl 洛侖磁力,q載流子電荷,V載流子運動速度,B 磁感 應(yīng)強度。.這樣使電子的運動軌跡發(fā)生偏移,在霍爾元器件薄片的兩個側(cè)面分別產(chǎn)生電U稱為霍形成霍爾電場,子積聚或電荷過剩,霍爾元器件兩個側(cè)面間的電位差h爾電壓。URxi霍爾電壓大小為:x =B/d(mV)hhR-霍爾常數(shù),d-兀件厚度,B-磁感應(yīng)強度,式中:I-控制電流HUKKR 乂1=設(shè)=x/d,則 B (mV)hhhhK為霍爾器件的靈敏系數(shù)(mV/mA/T)

5、,它表示該霍爾元件在單位磁感應(yīng)h強度和單位控制電流下輸出霍爾電動勢的大小。應(yīng)注意,當(dāng)電磁感應(yīng)強度B反向時,霍爾電動勢也反向。若控制電流保持不變,則霍爾感應(yīng)電壓將隨外界磁場強度而 變化,根據(jù)這一原理,可以將一塊永久磁鋼固定在電動機的轉(zhuǎn)軸上轉(zhuǎn)盤的邊沿,轉(zhuǎn)盤隨被測軸旋轉(zhuǎn),磁鋼也將跟著同步旋轉(zhuǎn),在轉(zhuǎn)盤附近安裝一個霍爾元件,轉(zhuǎn) 盤隨軸旋轉(zhuǎn)時,霍爾元件受到磁鋼所產(chǎn)生的磁場影響, 故輸出脈沖信號,其頻率 和轉(zhuǎn)速成正比,測出脈沖的周期或頻率即可計算出轉(zhuǎn)速。二系統(tǒng)設(shè)計2.1 硬件設(shè)計通過自制5V電源來確保工作電壓正常,由霍爾元件及外圍器件組成的測速電路將電動機轉(zhuǎn)速轉(zhuǎn)換成脈沖信號,送至單片機的計數(shù)器T1,由T1測

6、出電動機的實際轉(zhuǎn)速,并與設(shè)定值比較形成偏差。根據(jù)比較結(jié)果,使DAC0832俞出控制電壓增 大或減小。功放電路將DAC0832俞出的模擬電壓轉(zhuǎn)換成具有一定輸出功率的電動 機控制電壓。2.1.2 電機測速及驅(qū)動部分測速在這里選用美國史普拉格公司(SPRAGU曲產(chǎn)的3000系列霍爾開關(guān)傳感器 3013,它是一種硅單片集成電路,器件的內(nèi)部含有穩(wěn)壓電路、霍爾電勢發(fā)生器、 放大器、史密特觸發(fā)器和集電極開路輸出電路,具有工作電壓范圍寬、可靠性高、 外電路簡單、輸出電平可與各種數(shù)字電路兼容等特點。LM324它價格便宜,帶有真差動輸入的四運算放大器。因為DAC0832俞出的為電流,所以需要接一個運放,將信號轉(zhuǎn)化

7、為電壓輸出。電路如圖2.1.2所示。直流電機驅(qū)動電路圖2.1.2電機測速及驅(qū)動部分2.1.3 數(shù)模轉(zhuǎn)換DAC0832是采用CMOS工藝制成的單片電流輸出型8位D/A轉(zhuǎn)換器,其內(nèi)部 結(jié)構(gòu)如圖圖2.1.3a所示:芯片內(nèi)有兩級輸入寄存器,使DAC0832具備雙緩沖、 單緩沖和直通三種輸入方式,以便適于各種電路的需要(如要求多路D/A異步輸 入、同步轉(zhuǎn)換等)。D/A轉(zhuǎn)換結(jié)果采用電流形式輸出。要是需要相應(yīng)的模擬信號, 可通過一個高輸入阻抗的線性運算放大器實現(xiàn)這個供功能。運放的反饋電阻可通 過RFB端引用片內(nèi)固有電阻,還可以外接。電路或微機電路相接。TTL可直接與電壓電平范圍,TTL該片邏輯輸入滿 足.圖

8、2.1.3a DAC0832內(nèi)部結(jié)構(gòu)圖Vcc:芯片電源電壓,為:+5V+15V;VREF參考電壓,為:-10V+10V ; RFB反饋電阻引出端,此端可接運算放大 器輸出端;AGND模擬信號地;DGND數(shù)字信號地;DI7 DI0:數(shù)字量輸入信號,其中:DI0為最低位,DI7為最高位;ILE :輸入鎖 存允許信號,高電平有效;CS:片選信號,低電平有效;WR1寫信號1,低電平有效;當(dāng)ILE、CS WR伺時有效時,LE=1,輸入寄存器 的輸出隨輸入而變化;WR1E上升沿時,LE=0,將輸入數(shù)據(jù)鎖存到輸入寄存器; XFER轉(zhuǎn)移控制信號,低電平有效;WR2寫信號2,低電平有效;當(dāng) XFER WR洞時有

9、效時,LE2=1 , DACJ存器輸 出隨輸入而變化; WR1在上升沿時,LE=0,將輸入數(shù)據(jù)鎖存到DACJ存器,數(shù)據(jù)進入D/A轉(zhuǎn)換器,開始D/A轉(zhuǎn)換;IOUT1:模擬電流輸出端1,當(dāng)輸入數(shù)字為:全" 1"時,輸出電流最大,約RV 全“ 0”時,輸出電流為0; IOUT2為:255/256:模擬電流輸出端2 , fbreFOUTI + I OUT2 =數(shù)模轉(zhuǎn)換如圖2.5.3b所示。其中DAC0832的DI0 DI7 8個數(shù)字量輸入端所以得到接89C51單片機的P0.0P0.7 端。由于DAC0832采用了直通的方式, 可以直接往其數(shù)據(jù)端口加上數(shù)值,就能從 DAC0832后面

10、的運放的輸出端 所需的模擬電壓。由于其輸出電壓可根據(jù)公式:P0端計算得來,因而在需要輸出某個電壓值時,按該式求出對應(yīng)的數(shù)值,通過DVV2 X/= inoutREF圖213b數(shù)模轉(zhuǎn)換2.1.4 8421BCD編碼鍵盤一手動控制轉(zhuǎn)速部分采用8421編碼的鍵盤,“0”表示“0000”,“1”表示“0001”,“1001”。如圖2.1.4所示“9”表示MCS 51圖2.1.4 8421BCD 編碼鍵盤2.1.5顯示部分采用74LS164串入并出的移位寄存器給出用行口擴展的3位L ED顯示接口電路,如圖2.1.5所示64H 9 0田Q。由MU 9Hg Q U 由,-4L5J74LS0814U?74LSH

11、 0 k 0 R M <y<yoa(y<y<yo/cc工I31.3SUs In j |o g 儲p-H i-HT" LEDLEDLEDu i"液晶顯示模塊圖2.1.5顯示部分2.1.6系統(tǒng)心臟AT89C51單片機提干單片總的京藐電收網(wǎng)逑拄鴦這麻蜃國VCC供電電壓。GND接地。位漏級開口為一個8 口: P0 P0門8TTL口,每腳可吸收路雙向I/O 時,1當(dāng)P1 口的管腳第一次寫電流。能夠用于外 P0被定義為高阻輸入。它可以 被定義為部程序數(shù)據(jù)存儲器,編程 FIASH數(shù)據(jù)/地址的第八位。在FIASH當(dāng)時, P0 口作為原碼輸入口, P0輸出原碼,此時進

12、行校驗時,P0外部必須被拉高。 口是一個內(nèi)部提供上 P1P1 口: 口緩P1I/O 口,拉電阻的8位雙向口 P14TTL門電 流。沖器能接收輸出可被內(nèi)部上拉為高,1后,管腳寫入口被外部下拉為低電 P1 用作輸入,這是由于內(nèi)部上將輸出電流,平時, FLASH拉的緣故。在 口作為第八位地址接收。編程和校驗時, P1 口緩沖器可接收, 口,P2 口為一個內(nèi)部上拉電阻的8位雙向I/OP2 口: P2'時,其管腳被內(nèi)部上 拉電阻拉高,且作口被寫“1個TTL門電流,當(dāng)P2輸出4 口的管腳被外部拉低, 將輸出電流。這是由于為輸入。并因此作為輸入時,P2位地址外部數(shù)據(jù)存儲器進行口當(dāng)用于外部程序存儲器或

13、16內(nèi)部上拉的緣故。P2'時,它利用內(nèi)部上拉 優(yōu)勢,口輸出地址的高八位。在給出地址“ 1存取時,P2 口輸出其特殊功能寄存 器的內(nèi)容。P2當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,編程和校驗時接收高八位地址信號和控制信號。P2 口在FLASHt 4I/O 口,可接收輸出個帶內(nèi)部上拉 電阻的雙向口: P3 口管腳是8 P3”后,它們被內(nèi)部上拉為高電平,并用作輸入。作1P3 口寫入“TTL門電流。當(dāng))這是由于上拉的緣故。ILL由于外部下拉為低 電平,P3 口將輸出電流(為輸入,AT89C51的一些特殊功能口,如下表所示:P3 口也可作為口管腳備選功能P3.0 RXD (串行輸入口)P3.1 T

14、XD (用行輸出口)P3.2 /INTO (外部中斷0) P3.3 /INT1 (外部中斷1) P3.4 T0 (記時器0 外部輸入)P3.5 T1 (記時器1外部輸入)P3.6 /WR (外部數(shù)據(jù)存儲器寫選 通)P3.7 /RD (外部數(shù)據(jù)存儲器讀選通)P3 口同時為閃爍編程和編程校驗接收一些控制信號RST復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持 RST腳兩個機器周期的高電平時 IALE/PROG當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位 字節(jié)。在FLASHg程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作

15、對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳 過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EK址上置0。此時,ALE只 有在執(zhí)行MOVX MOV蠟令是ALE才起作用。另外,該引腳被略微拉高。如果微 處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器 周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的 /PSEN信號將 不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH, 不管是否有內(nèi)部程序存儲器。注意加密方式 1時,/EA將內(nèi)部鎖定為R

16、ESET當(dāng) /EA端保持高電平時,此間內(nèi)部程序存儲器。在 FLASHS程期間,此引腳也用于 施加12V編程電源(VPP。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器 可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動 器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此 對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除:整個PERO阱列和三個鎖定位的電擦除可通過正確的控制信號組合, 并保持ALE管腳處于低

17、電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1” 且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C5破有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種 軟件可選的掉電模式。在閑置模式下,CPU亭止工作。但RAM定時器,計數(shù)器, 串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM勺內(nèi)容并且凍結(jié)振蕩器,禁 止所用其他芯片功能,直到下一個硬件復(fù)位為止。串口通訊:單片機的結(jié)構(gòu)和特殊寄存器,這是你編寫軟件的關(guān)鍵。至于串口通信 需要用到那些特殊功能寄存器呢,它們是 SCON TCON TMOD SCOW,各代表 什么含義呢?SBUF數(shù)據(jù)緩沖寄存器這是一個可以直接尋址的用行

18、口專用寄存器。有朋友這樣 問起過“為何在用行口收發(fā)中,都只是使用到同一個寄存器SBUF而不是收發(fā)各用一個寄存器。”實際上SBUF包含了兩個獨立的寄存器,一個是發(fā)送寄存, 另一個是接收寄存器,但它們都共同使用同一個尋址地址-99A CPU在讀時會 指到接收寄存器,在寫時會指到發(fā)送寄存器,而且接收寄存器是雙緩SBUF沖寄存器,這樣可以避免接收中斷沒有及時的被響應(yīng),數(shù)據(jù)沒有被取走,下一幀數(shù)據(jù)已到來,而造成的數(shù)據(jù)重疊問題。發(fā)送器則不需要用到雙緩沖,一般情況下 我們在寫發(fā)送程序時也不必用到發(fā)送中斷去外理發(fā)送數(shù)據(jù)。操作SBUFW存器的方法則很簡單,只要把這個99H地址用關(guān)鍵字sfr定義為一個變量就可以對其

19、 進行讀寫操作了,如sfr SBUF = 0x99;當(dāng)然你也可以用其它的名稱。通常在標(biāo) 準(zhǔn)的reg51.h或at89x51.h 等頭文件中已對其做了定義,只要用#include 引用 就可以了。SCON用行口控制寄存器通常在芯片或設(shè)備中為了監(jiān)視或控制接口狀態(tài),都會引 用到接口控制寄存器。SCONB是51芯片的用行口控制寄存器。它的尋址地址 是98H,是一個可以位尋址的寄存器,作用就是監(jiān)視和控制51芯片用行口的工作狀態(tài)。51芯片的用口可以工作在幾個不同的工作模式下,其工作模式的設(shè)置 就是使用SCONJ存器。它的各個位的具體定義如下:SM0 SM1 SM2 REN TB8 RB8 TI RISM0

20、 SM1為用行口工作模式設(shè)置位,這樣兩位可以對應(yīng)進行四種模式的設(shè)置。 用行口工作模式設(shè)置。SM0SM1功能波特率000同步移位寄存器fosc/12011UART8 位口艾1029 位 UARTfosc/32 或 fosc/641139 位 UART口艾在這里只說明最常用的模式1,其它的模式也就一一略過,有興趣的朋友可以找 相關(guān)的硬件資料查看。表中的fosc代表振蕩器的頻率,也就是晶振的頻率。UART 為(Universal Asynchronous Receiver ) 的英文縮寫。SM2在模式2、模式3中為多處理機通信使能位。在模式 0中要求該位為00 REM為允許接收位,REM置1時串口允

21、許接收,置0時禁止接收。REM是由軟 件置位或清零。如果在一個電路中接收和發(fā)送引腳 P3.0,P3.1都和上位機相連, 在軟件上有用口中斷處理程序,當(dāng)要求在處理某個子程序時不允許串口被上位機 來的控制字符產(chǎn)生中斷,那么可以在這個子程序的開始處加入REM=C*禁止接收,在子程序結(jié)束處加入 REM=1再次打開用口接收。大家也可以用上面的實際源碼加入REM=CFfe進行實驗。TB8 發(fā)送數(shù)據(jù)位8,在模式2 和 3 是要發(fā)送的第9 位。該位可以用軟件根據(jù)需要置位或清除,通常這位在通信協(xié)議中做奇偶位,在多處理機通信中這一位則用于表示是地址幀還是數(shù)據(jù)幀。RB8 接收數(shù)據(jù)位8, 在模式 2 和 3 是已接收

22、數(shù)據(jù)的第9 位。 該位可能是奇偶位,地址/數(shù)據(jù)標(biāo)識位。在模式0中,RB8為保留位沒有被使用。在模式1中,當(dāng)SM2=0 RB8是已接收數(shù)據(jù)的停止位。TI 發(fā)送中斷標(biāo)識位。在模式0,發(fā)送完第8 位數(shù)據(jù)時,由硬件置位。其它模式中則是在發(fā)送停止位之初,由硬件置位。TI置位后,申請中斷,CPU響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何模式下,TI 都必須由軟件來清除,也就是說在數(shù)據(jù)寫入到SBUF后,硬件發(fā)送數(shù)據(jù),中斷響應(yīng)(如中斷打開),這時TI=1 ,表明發(fā)送已完成,TI 不會由硬件清除,所以這時必須用軟件對其清零。RI 接收中斷標(biāo)識位。在模式0,接收第8 位結(jié)束時,由硬件置位。其它模式中則是在接收停止位的半中

23、間,由硬件置位。 RI=1,申請中斷,要求CPU取走數(shù) 據(jù)。但在模式1中,SM2=1時,當(dāng)未收到有效的彳¥止位,則不會對 RI置位。同樣 RI 也必須要靠軟件清除。常用的串口模式1 是傳輸 10 個位的, 1 位起始位為 0,8 位數(shù)據(jù)位,低位在先,1 位停止位為1。它的波特率是可變的,其速率是取決于定時器1 或定時器2 的定時值(溢出速率)。 AT89C51 和 AT89C2051 等51 系列芯片只有兩個定時器,定時器0 和定時器1,而定時器2是 89C52 系列芯片才有的。波特率在使用串口做通訊時,一個很重要的參數(shù)就是波特率,只有上下位機的波特率一樣時才可以進行正常通訊。波特率

24、是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。有一些初學(xué)的朋友認(rèn)為波特率是指每秒傳輸?shù)淖止?jié)數(shù),如標(biāo)準(zhǔn)9600 會被誤認(rèn)為每秒種可以傳送9600 個字節(jié),而實際上它是指每秒可以傳送9600 個二進位,而一個字節(jié)要8 個二進位,如用串口模式1 來傳輸那么加上起始位和停止位,每個數(shù)據(jù)字節(jié)就要占用10 個二進位,9600 波特率用模式1 傳輸時,每秒傳輸?shù)淖止?jié)數(shù)是9600+ 10= 960字節(jié)。51芯片的串口工作模式0的波特率是固定的,為fosc/12 ,以一個12M 的晶振來計算,那么它的波特率可以達到1M。模式 2 的波特率是固定在fosc/64 或 fosc/32 ,具體用那一種就取決于PCON寄存器中

25、的SMO應(yīng),如SMOM 0,波特率為focs/64,SMOD為1,波特率為focs/32 。 模式 1 和模式 3 的波特率是可變的,取決于定時器1 或 2( 52 芯片)的溢出速率。那么我們怎么去計算這兩個模式的波特率設(shè)置時相關(guān)的寄存器的值呢?可以用以下的公式去計算。波特率=(2SMOD32) X定時器1溢出速率上式中如設(shè)置了 PCONJ存器中的SMOg為1時就可以把波特率提升2倍。通常會使用定時器1 工作在定時器工作模式2 下,這時定時值中的TL1 做的值會 TH1 ,這個定時模式下,定時器溢出后,做為自動重裝值TH1 為計數(shù),自動裝載到TL1,再次開始計數(shù),這樣可以不用軟件去干預(yù),使得定

26、時更準(zhǔn)確。在這個定時模式2 下定時器1 溢出速率的計算公式如下:溢出速率=(計數(shù)速率)/(256 TH1)上式中的“計數(shù)速率”與所使用的晶體振蕩器頻率有關(guān),在 51 芯片中定時器啟動后會在每一個機器周期使定時寄存器TH 的值增加一,一個機器周期等于十二個振蕩周期,所以可以得知51 芯片的計數(shù)速率為晶體振蕩器頻率的1/12 , 一個12M的晶振用在51芯片上,那么51的計數(shù)速率就為1M通常用11.0592M 晶體是為了得到標(biāo)準(zhǔn)的無誤差的波特率, 那么為何呢?計算一下就知道了。如我 們要得到9600的波特率,晶振為11.0592M和12M定時器1為模式2, SMODS 為1,分別看看那所要求的TH

27、1為何值。代入公式:11.0592M9600 = (2 + 32) X (11.0592M/12)/(256-TH1) TH1 =25012M9600 = (2+32)義(12M/12)/(256-TH1) TH1 =249.49上面的計算可以看出使用12M晶體的時候計算出來的TH1不為整數(shù),而TH1 的值只能取整數(shù),這樣它就會有一定的誤差存在不能產(chǎn)生精確的9600波特率。當(dāng)然一定的誤差是可以在使用中被接受的,就算使用11.0592M的晶體振蕩器也會因晶體本身所存在的誤差使波特率產(chǎn)生誤差,但晶體本身的誤差對波特率的影 響是十分之小的,可以忽略不計。a2.2 軟件設(shè)計1、編程思路:控制系統(tǒng)程序的

28、功能是用 89C51單片機的T0、T1測出電動芯片的輸出控DAC0832fg根據(jù)比較結(jié)果,并與給定值進行比較。機的實際轉(zhuǎn)速,制電壓增大或減小。30H單元存放實際轉(zhuǎn)速與設(shè)定值是否相等的標(biāo)志?!?”表示 相等,“0”表示不相等。40H單元存放送入DAC0832E5片的數(shù)字才S制電壓。7FFFH 為DAC083地址。2、系統(tǒng)流程圖如圖2.2所示:主程序中斷既能程序喙豆TO初值(50H) 一。4陽)-7FH聯(lián)T1情,/處孰際轉(zhuǎn)述C7FFFH1 740H)(4 帕) 0H)-9TO為方式1, TO定時' 】Q &JTLET1為外部計敕方發(fā)速之定(4 0H) *- (4 0H1 4 1(3

29、0H) 7拓講TQ中®i啟斯TO. T1一十C30H1 =1 ?T1-0工延時C7FFFH) (40H)圖2.2直流電動機轉(zhuǎn)速控制系統(tǒng)流程圖2.3 PWM初始化、占空比設(shè)置、頻率計算rrvoid pim) 11. (voiai 卜一CHuD-iizBi.- /iioaii lcio p jl工作慢匕定存羈事,附鐘/ia訃數(shù)明患出中XAPCn -ICCAPL - EX: ;"FG比我百存磊槨立 127 百低鹵CGLPB0叩cS才火力口 口口1露允許比較裙 > 無仰脈寬調(diào)制輸出/rnion rnoo fca控剌寄存居 cf-i盲動p:jl引城哥用列4數(shù)C7AFH1 - 口

30、誑二;。16位情朕桎式,二片沿觸打F抻莪中雷匚匚FL CE*P 1L, - YDC : CCAFiH - 口工QJ ZA = If X麗 n T。:*功 能士設(shè)置P510的占空比void! SetPxmiO (unsigned int j0 J/占空比設(shè)置誦數(shù)CCAPDLv"CCAPOE-x;/設(shè)置比較值十功能:捕獲中斷話數(shù)土方區(qū)市古於雷云青雷擊青吉雷 帝前左方才去上才擊去肅生 才雷不#方才中青才肅左畬上才才古青才雷龍區(qū)彌才立青土米雷擊卡於雷雷*t去W /畬力前 卡雷左右土卡1/ raid PCA_Interrupt- (void) interrupt 7i£ (CCF1)

31、FCA模塊1中斷標(biāo)志(CCF1 = 0;if (shang - 0) /上升沿中1斷 <shang CCAP1H; /獲得捕捉數(shù)據(jù)的高口化高3粒R 3+低白位溝成16位整數(shù)shang - (shang « 8) + CCAP1L;CCAPltl = Oxll;/下降沿捕扶)e£e”下降沿中斷(CCF1 = 0; 清CCF中斷林志xia = CCAP1H;獲得捕捉數(shù)據(jù)的高號位“高B位1日+低呼位構(gòu)成16位整數(shù)xia = (xia « 曰+ CCAP1L;gao = xia - shang; /高電平期間計數(shù)次數(shù) huansti = (lonu> 4562

32、20/ 日后口: / 得到周期顆型 CC1PM1 = ClxiLCi: 停止捕獲中斷eCFI產(chǎn)生 3hancr=i:; 為下一次捕捉設(shè)定初始條件 CCAP1L = UxCIQ; 清零CCAP1H = 0x010;cl = oxoo;清pen計數(shù)器CH - 0x00;CCAPM1 = 0x21;Catch_over = 力分摘獲完成標(biāo)志位if (CF = 1)"PS濡出中斷CF = ;清PCJI溢出中斷標(biāo)志CCAPM1 = 0x21;shang-D; /為下一次捕捉設(shè)定初始條件CCAP1L = 口配口口;清零CCAP1H = 0x00;(3)調(diào)速#include <STC12CS

33、A60S2,H> include <main.h>extern int xdata l_speed;-extern unsigned, int xdata pwm;void pid (unslgrTLed int she speed f unsigned int shi speed)Int sdl=n, sd2=0, out;int xp-1xi«8yxd-O;sdl»shi_speed-she_speed;/計算:積分偏差sd2=sdl-l_3peed;計算比,例偏愛l_speed=sdl;,/更新ut-pwm+3(il/xi+sd2*Xp;/計算P控制

34、值if(3dl=0) output;計算不靈敏區(qū)的運算補償e1零e if(3dl<4i£3dl>-4) if(sdl>0)(aut=out+l;LEri=l; ) /LEDR 為觀察標(biāo)志 else "ut=out-l; LED=O; / LED亮)else if(sdl<16|adl>-16>if(3dl>0)(ut=cur+2;else(ut=cuc-2;relse(if(3til>0)0ut=out+-4; else0Ut=OUtT; !pum=out;更新 out(4)通信模塊的設(shè)計void send(unsigned

35、int n) 發(fā)送/SBUF=n;while(!TI);TI=0;void Receive。接收速度設(shè)定值if(RI=1)/接收二位十六進制數(shù)并進入PID調(diào)速speed_t=SBUF;RI=0;(5)中斷服務(wù)模塊PCA 測速void PCA_interrupt (void) interrupt 7TR0=0;/關(guān)定時器T0if(CCF1=1)/PCA ??繅K 1 中斷CCF1=0;/清PCA 模塊 1 中斷標(biāo)志catch_speed+=1;catch=256*CCAP1H+CCAP1L;catch=catch/1000.0;speed=1000*0.9216/catch;CH=CL=0x00;

36、catch=0;TR0=1;/開定時器T0(6)鍵盤修改轉(zhuǎn)速void key_xiugai(void)if(KEY3=0) while(!KEY3) /消除抖動 ;switch(k2)case 1: gewei+;if(gewei>9) gewei=0; break;case 2: shiwei+;if(shiwei>9) shiwei=0; break;case 3:shiwei+;if(baiwei>9) baiwei=0; break; default:break; if(KEY4=0) while(!KEY4) /防止掉顯 ;switch(k2)case 1: gew

溫馨提示

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

評論

0/150

提交評論