機電一體化畢業(yè)設(shè)計(論文)_基于單片機的智能搖頭風扇控制系統(tǒng)的設(shè)計_第1頁
機電一體化畢業(yè)設(shè)計(論文)_基于單片機的智能搖頭風扇控制系統(tǒng)的設(shè)計_第2頁
機電一體化畢業(yè)設(shè)計(論文)_基于單片機的智能搖頭風扇控制系統(tǒng)的設(shè)計_第3頁
機電一體化畢業(yè)設(shè)計(論文)_基于單片機的智能搖頭風扇控制系統(tǒng)的設(shè)計_第4頁
機電一體化畢業(yè)設(shè)計(論文)_基于單片機的智能搖頭風扇控制系統(tǒng)的設(shè)計_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計報告課題:基于單片機的智能搖頭風扇控制系統(tǒng)的設(shè)計系 部:機電工程系專 業(yè):機電一體化班 級:機電062姓 名:學 號:指導老師: 2021424目 錄摘要 1Abstract2第一章 序言 31.1 分析現(xiàn)狀31.2 智能搖頭風扇系統(tǒng)的簡介31.3 本章小結(jié)3第二章 系統(tǒng)硬件設(shè)計 42.1 系統(tǒng)總框圖42.2 單片機的選型4 STC89C52RC單片機內(nèi)部構(gòu)4 STC89C52RC的引腳明6 STC89C52原理圖82.3 AD芯片的選型8 ADC0804簡介 8 ADC0804原理圖 102.4 E2PROM芯片的選型112.4.1 AT24C02簡介 11 I2C總線工作理11 E

2、2PROM原理圖 132.5 液晶顯示器的選型13 管腳功能13 操作控制 13 字符集14 指令集 14 控制器時序說明152.6 步進電機驅(qū)動芯片的選型 16 TA8435簡介 16 TA8435細分工作原理 18 TA8435原理圖 182.7 步進電機簡介 192.8 本章小結(jié) 20第三章 系統(tǒng)軟件設(shè)計213.1 系統(tǒng)總體的軟件流程圖 213.2 AD芯片程序 213.3 1602液晶程序 223.4 TA8435芯片程序 243.5 EEPROM芯片程序 243.6 本章小結(jié) 27第四章 系統(tǒng)的安裝與調(diào)試284.1 系統(tǒng)硬件的安裝與調(diào)試28系統(tǒng)硬件的安裝28 系統(tǒng)硬件的調(diào)試294.2

3、 系統(tǒng)軟件的調(diào)試29 編譯軟件keil uvision簡介294.2.2 系統(tǒng)軟件程序的調(diào)試304.3 本章小結(jié) 30結(jié)束語31謝辭32參考文獻33附錄1 原理圖34附錄2 PCB圖35基于單片機的智能搖頭控制系統(tǒng)風扇設(shè)計摘要:現(xiàn)在市場上的許多風扇都有搖頭功能,但是搖頭的角度是90度固定不變的,而有時候人們希望風扇搖頭的角度可以調(diào)節(jié),搖頭的速度可以調(diào)節(jié),這時候原來固定搖頭角度的風扇就不能滿足人們的需要。本次畢業(yè)設(shè)計針對這個問題,提出了設(shè)計一個可以調(diào)節(jié)電風扇搖頭角度,并且可以調(diào)節(jié)電風扇的搖頭速度的智能搖頭風扇。這個裝置做好之后還可以應(yīng)用到比方太陽能采光板的跟蹤采光系統(tǒng)、園林的智能灌溉系統(tǒng)等其他應(yīng)

4、用領(lǐng)域中。本課題設(shè)計的思路是:先用AD芯片采集電位器的模擬量,通過AD芯片把模擬量轉(zhuǎn)換為對應(yīng)的數(shù)字量,即設(shè)定的風扇搖頭角度,并在液晶上顯示出來。然后STC89C52RC單片機通過這些數(shù)字量來控制步進電機驅(qū)動芯片TA8435,最后由TA8435來控制步進電機旋轉(zhuǎn)角度,使風扇能夠在設(shè)定的角度范圍0度到360度內(nèi)搖頭,同時通過控制電機的頻率,從而控制電機搖頭的速度。本設(shè)計還使用了E2 PROM對預設(shè)角度值,搖頭速度的斷電保存。關(guān)鍵詞:單片機 風扇 搖頭 步進電機The design of fans intelligent control system based on MCUAbstract:Man

5、y fans on the market have a function of shaking heads,but the angle of shaking heads is fixed at 90 degrees.Sometimes,people hope that a fan can be ajusted its revolving angle range and revolving speed freely, now many fans on the market will not be able to meet the needs of the people. Addressed th

6、is issue, an intelligent fan which can be ajusted its revolving angle range and revovling speed is proposed.And this equipment also can be applied to lighting such as solar panels to track lighting systems,garden irrigation systems and other intelligent applications.The idea of the design issues are

7、 : first,the analog signals from potentiometer input to AD chip, and then through AD chip, analog signal is converted to digital signal,and this digital signal is also the perspective revolving angle displayed on the LCD. Second, STC89C52RC controles stepping motor driver IC TA8435 through digital s

8、ignal from AD,and then the fan shaking its head rotates at setted angle( 0 degree to 360 degree) under the control of TA8435 stepper motor driver,at the same time it rotates at setted speed under the control of frequency. At last, the design can preserve the revolving angle range and the revolving s

9、peed by E2 PROM if the power is off.Key words: MCU fan Shaking head Stepping Motor第一章 序 言1.1 分析現(xiàn)狀隨著社會的開展,人們的生活水平也逐漸提高。電扇是人們最常用的家電之一,雖然科技在日益開展,但是電扇的開展速度卻顯得十分的緩慢。雖然家電廠商們都推出了許多所謂的數(shù)字電扇,但是那些電扇也只參加了自然風和定時這一些功能,沒有去改變搖頭的功能。其實搖頭對于風扇是十分重要的,單人扇風扇和多人扇風扇的角度需要改變,這樣能更好的利用資源。1.2 智能搖頭風扇系統(tǒng)的簡介本系統(tǒng)使用步進電機作為傳動的主要部件,然后使用51

10、單片機作為控制核心,從而來控制步進電機的旋轉(zhuǎn)角度。在輸入方面,本系統(tǒng)使用了一個8位的AD芯片,用于采集旋阻上面的電壓變換值。在顯示方面,本系統(tǒng)采用1602液晶,從而能更直接的看出旋轉(zhuǎn)的角度和旋轉(zhuǎn)頻率。在步進電機的控制方面,本系統(tǒng)使用了東芝公司的TA8435步進電機驅(qū)動芯片,他是一款大功率驅(qū)動芯片,目前主要應(yīng)用在雕刻機上面,因此能夠足以提供步進電機所需要的功率。步進電機采用57型步進電機,它的步進角度是1.8度,能夠精確的提供旋轉(zhuǎn)角度。1.3 本章小結(jié)本章主要介紹了智能搖頭風扇的工作原理以及搖頭風扇的根本結(jié)構(gòu),并且對所使用的元器件也進了一些簡單的說明。第二章 系統(tǒng)硬件設(shè)計21 系統(tǒng)總框圖AD芯片

11、用于輸入角度以及頻率的數(shù)值E2PROM芯片用于斷電后保存輸入的角度和頻率數(shù)值1602液晶用于顯示角度值以及頻率值TA8435步進電機芯片用于控制步進電機的旋轉(zhuǎn)角度以及旋轉(zhuǎn)頻率圖2-1 系統(tǒng)框架圖本系統(tǒng)先用AD芯片采集電位器的模擬量作為輸入角度值,然后使用STC89C52單片機處理AD芯片轉(zhuǎn)換的數(shù)字量,最后來控制步進電機旋轉(zhuǎn)角度,使風扇能夠進行任意角度的搖頭。1602液晶能顯示兩行共16個字符,用于顯示輸入角度以及頻率的數(shù)值。EEPROM用于保存斷電后的角度以及旋轉(zhuǎn)頻率的數(shù)值。1x4鍵盤用于切換各種運行狀態(tài)。另外系統(tǒng)的原理圖見附錄1。22 單片機的選型 STC89C52RC單片機內(nèi)部結(jié)構(gòu)STC8

12、9C52RC是MCS-51系列單片機的加強版,我們以這一代表性的機型進行系統(tǒng)的講解。8051單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:中央處理器中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。數(shù)據(jù)存儲器(RAM)8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用存放器單元,它們是統(tǒng)一編址的,專用存放器只能用于存放控制指令

13、數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。圖2-2 8051內(nèi)部結(jié)構(gòu)程序存儲器(ROM):8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。定時/計數(shù)器(ROM):8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。全雙工串行口:8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器

14、使用。中斷系統(tǒng):8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。時鐘電路:8051內(nèi)置最高頻率達12MHz的時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。單片機的結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計算機廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機那么采用普林斯頓結(jié)構(gòu)。下列圖是51系

15、列單片機的內(nèi)部結(jié)構(gòu)示意圖圖2-3 51單片機結(jié)構(gòu)框圖 STC98C52的引腳說明STC98C52系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用?,F(xiàn)在我們對這些引腳的功能加以說明:如圖2-4圖2-4 引腳功能圖Pin9:RESET/Vpd復位信號復用腳,當8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復位。初始化后,程序計數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫

16、入07H,其它專用存放器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復位不改變RAM包括工作存放器R0-R7的狀態(tài),8051的初始態(tài)。8051的復位方式可以是自動復位,也可以是手動復位,見下列圖2-5。此外,RESET/Vpd還是一復用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機內(nèi)部RAM的數(shù)據(jù)不喪失。 圖2-5 復位電路圖Pin30:ALE/當訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當作一個時鐘向外輸出

17、。更有一個特點,當訪問外部程序存儲器,ALE會跳過一個脈沖。如果單片機是EEPROM,在編程其間,將用于輸入編程脈沖。Pin29:當訪問外部程序存儲器時,此腳輸出負脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器那么把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機,內(nèi)置有4kB的程序存儲器,當EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址那么讀取外部指令數(shù)據(jù)。如EA為低電平,那么不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須

18、接地。在編程時,EA/Vpp腳還需加上21V的編程電壓。 STC89C52原理圖圖2-6 STC89C52原理圖P0口內(nèi)部由于沒有上拉電阻,因此要在P0口加上10K的上拉電阻。使用12MHZ的晶振,外加2個30P的陶瓷電容協(xié)振。2.3 AD芯片的選型 ADC0804簡介ADC0804是用CMOS集成工藝制成的逐次比擬型摸數(shù)轉(zhuǎn)換芯片。分辨率8位,轉(zhuǎn)換時間100s,輸入電壓范圍為05V,增加某些外部電路后,輸入模擬電壓可為 5V。該芯片內(nèi)有輸出數(shù)據(jù)鎖存器,當與計算機連接時,轉(zhuǎn)換電路的輸出可以直接連接在CPU數(shù)據(jù)總線上,無須附加邏輯接口電路。ADC0804芯片外引腳圖如圖2-7所示。引腳名稱及意義如

19、下: 圖2-7 ADC0804芯片外引腳圖ADC0804的兩模擬信號輸出端,用以接受單極性、雙極性和差摸輸入信號。 A/D轉(zhuǎn)換器數(shù)據(jù)輸出端,該輸出端具有三態(tài)特性,能與微機總線相接。 AGND:模擬信號地DGND:數(shù)字信號地CLKIN:外電路提供時鐘脈沖輸入端。 CLKR:內(nèi)部時鐘發(fā)生器外接電阻端,與CLKIN端配合可由芯片自身產(chǎn)生時鐘脈沖,其頻率為1/1.1RC。 CS:片選信號輸入端,低電平有效,一旦CS有效,說明A/D轉(zhuǎn)換器被選中,可啟開工作。WR:寫信號輸入,接受微機系統(tǒng)或其它數(shù)字系統(tǒng)控制芯片的啟動輸入端,低電平有效,當CS、WR同時為低電平時,啟動轉(zhuǎn)換。 RD:讀信號輸入,低電平有效,

20、當CS、RD同時為低電平時,可讀取轉(zhuǎn)換輸出數(shù)據(jù)。 INTR:轉(zhuǎn)換結(jié)束輸出信號,低電平有效。輸出低電平表示本次轉(zhuǎn)換已完成。該信號常作為向微機系統(tǒng)發(fā)出的中斷請求信號。 在使用時應(yīng)注意以下幾點: 1轉(zhuǎn)換時序 CSWR內(nèi)部轉(zhuǎn)換狀態(tài)INTR上次資料已被讀取上次資料未被讀取轉(zhuǎn)換完成準備轉(zhuǎn)換TW=100nSTWI8/F內(nèi)部轉(zhuǎn)換時間TCLK/2300nS450nSCSWRINTRTW=100nSTWI8/FTCLK/2300nS450nSADC0804控制信號的時序圖如圖2-8所示,由圖可見各控制信號時序關(guān)系為:當CS與WR同時為低電平A/D轉(zhuǎn)換器被啟動切在WR上升沿后100 模數(shù)完成轉(zhuǎn)換,轉(zhuǎn)換結(jié)果存入數(shù)據(jù)鎖

21、存器,同時,INTR自動變?yōu)榈碗娖?,表示本次轉(zhuǎn)換已結(jié)束。如CS、RD同時來低電平,那么數(shù)據(jù)鎖存器三態(tài)門翻開,數(shù)字信號送出,而在RD高電平到來后三態(tài)門處于高阻狀態(tài)。INTRCSRDDB7DB0TRI=300nS450nSTACC135nS200nSTIH,TOH=125nS200nS三態(tài)注INTRCSRDDB7DB0TRI=300nS450nSTACC135nS200nSTIH,TOH=125nS200nS SHAPE * MERGEFORMAT 圖2-8 轉(zhuǎn)換時序2零點和滿刻度調(diào)節(jié)ADC0804的零點無須調(diào)整。滿刻度調(diào)整時,先給輸入端參加電壓 ,使?jié)M刻度所對應(yīng)的電壓值是,其中是輸入電壓的最大值

22、,是輸入電壓的最小值。當輸入電壓與值相當時,調(diào)整端電壓值使輸出碼為FEH或FFH。 3參考電壓的調(diào)節(jié) 在使用A/D轉(zhuǎn)換器時,為保證其轉(zhuǎn)換精度,要求輸入電壓滿量程使用。如輸入電壓動態(tài)范圍較小,那么可調(diào)節(jié)參考電壓 ,以保證小信號輸入時ADC0804芯片8位的轉(zhuǎn)換精度。4接地 模數(shù)、數(shù)模轉(zhuǎn)換電路中要特別注意到地線的正確連接,否那么干擾很嚴重,以至影響轉(zhuǎn)換結(jié)果的準確性。A/D、D/A及取樣保持芯片上都提供了獨立的模擬地AGND和數(shù)字地DGND的引腳。在線路設(shè)計中,必須將所有的器件的模擬地和數(shù)字地分別連接,然后將模擬地與數(shù)字地僅在一點上相連。 ADC0804原理圖圖2-9 ADC0804原理圖C1與R7

23、組成RC震蕩電路,給芯片提供動力。R8用于第六管腳的限流。R3與R4組成分壓系統(tǒng),為第九管腳提供內(nèi)部比照電壓。2.4 E2PROM芯片的選型 AT24C02簡介AT24C02是由ATMEL公司提供的,I2C總線串行E2PROM,其容量為1KB,工作電壓在1.8V5.5V之間,生產(chǎn) 工藝是CMOS工藝,其引腳如圖2-10所示。圖2-10 AT24C02引腳圖各引腳功能如下:A2A0:這3個引腳是器件地址選擇引腳。將這3個引腳配置成不同的編碼值,在同一串行總線上最多可擴充8片同一容量或不同容量的24系列串行E2PROM芯片。SDA:串行數(shù)據(jù)輸入輸出口,是一個雙向的漏極開路結(jié)構(gòu)的引腳,容量擴展時可以

24、將多片24系列的SDA引腳直接相連,實際使用時該引腳必須接一個5.1k的上拉電阻。SCL:串行移位時鐘控制端。寫入時上升沿起作用,讀出時下降沿起作用。TEST:硬件寫保護控制引腳。當其為低電平時,正常寫操作,高電平時,對E2PROM局部存儲區(qū)域提供硬件寫保護功能,即對被保護區(qū)域只能讀不能寫。GND:接地VCC:接+5V電壓 I2C總線工作原理I2C總線進行數(shù)據(jù)傳送時,時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。圖2-11 時序圖起始和終止信號 :SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號;SC

25、L線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。數(shù)據(jù)傳送格式1字節(jié)傳送與應(yīng)答。圖2-12 字傳送與應(yīng)答圖每一個字節(jié)必須保證是8位長度。數(shù)據(jù)傳送時,先傳送最高位MSB,每一個被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位即一幀共有9位。如果一段時間內(nèi)沒有收到從機的應(yīng)答信號,那么自動認為從機已正確接收到數(shù)據(jù)。 AT24C02的芯片地址如下列圖,1010為固定,A0,A1,A2正好與芯片的1,2,3引角對應(yīng),為當前電路中的地址選擇線,三根線可選擇8個芯片同時連接在電路中,當要與哪個芯片通信時傳送相應(yīng)的地址即可與該芯片建立連接,。最后一位R/W為告訴從機下一字節(jié)數(shù)據(jù)是要讀還是寫,0為寫入,1為讀出

26、。圖2-10 AT24C02的芯片地址0 xa0為寫,0 xa1為讀E2PROM原理圖圖2-13 E2PROM原理圖圖2-13 為E2PROM原理圖,R1與R2為上拉電阻。2.5 液晶顯示器的選型1602液晶介紹工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。16列2行 管腳功能1602采用標準的16腳接口,其中:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器比照度調(diào)整端,接正電源時比照度最弱,接地電源時比照度最高比照度過高時會產(chǎn)生“鬼影,使用時可以通過一個10K的電位器調(diào)整比照度。第4腳:RS為存放器選擇,高電平1時選擇數(shù)據(jù)存放器、低電平0時選擇指令存放器。第

27、5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負極。 操作控制表2-1 操作控制表操作讀狀態(tài)寫指令讀數(shù)據(jù)寫數(shù)據(jù)輸入RS=0,RW=1,E=1RS=0,RW=0,D07=指令碼,E=H脈沖RS=1,RW=1,E=1RS=1,RW=0,D07=數(shù)據(jù),E=H脈沖 液晶顯示芯片的操作控制表如表2-1所示。 字符集1602液晶模塊內(nèi)部的字符發(fā)生存儲器CGROM已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小

28、寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比方大寫的英文字母“A的代碼是01000001B41H,顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A。因為1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如“A。 指令集1602通過D0D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置:(初始化)00110000 0 x38 設(shè)置162顯示,57點陣,8位數(shù)據(jù)接口;顯示開關(guān)及光標設(shè)置:(初始化)00001DCBD顯示(1有效)、C光標顯示(1有效)、B光標閃爍(1有效)000001NSN=1(讀或?qū)懸粋€字符后

29、地址指針加1 &光標加1),N=0(讀或?qū)懸粋€字符后地址指針減1 &光標減1),S=1且N=1(當寫一個字符后,整屏顯示左移)s=0當寫一個字符后,整屏顯示不移動表2-2 16進制ASCII碼表地址讀的時候,先讀左邊那列,再讀上面那行,如:感慨號!的ASCII為0 x21,字母B的ASCII為0 x42前面加0 x表示十六進制。 數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H)。其他設(shè)置:01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)??刂破鲿r序說明1讀操作時序圖2-14 讀操作時序圖2寫操作時序圖2-15 寫操作時序

30、圖3時序參數(shù)表2-3 時序參數(shù)表時序參數(shù)符號極限值單位測試條件最小值典型值最大值E信號周期tc400ns引腳EE脈沖寬度tpw150nsE上升沿/下降沿時間tR,tF25ns地址建立時間tSP130ns引腳E、RS、R/W地址保持時間tHD110ns數(shù)據(jù)建立時間(讀操作)tD100ns引腳DB0DB7數(shù)據(jù)保持時間(讀操作)tHD220ns數(shù)據(jù)建立時間(寫操作)tSP240ns數(shù)據(jù)保持時間(謝操作)tHD210ns2.6 步進電機驅(qū)動芯片的選型 TA8435簡介 TA8435是東芝公司生產(chǎn)的單片正弦細分二相步進電機驅(qū)動專用芯片,該芯片具有以下特點:圖2-16 TA8435內(nèi)部結(jié)構(gòu)圖1、主要特點

31、TA8435是東芝公司生產(chǎn)的單片正弦細分二相步進電機驅(qū)動專用芯片,它可以驅(qū)動二相步進電機,且電路簡單,工作可靠。該芯片還具有以下特點:工作電壓范圍寬10V40V;輸出電流可達平均和峰值;具有整步、半步、1/4細分、1/8細分運行方式可供選擇;采用脈寬調(diào)制式斬波驅(qū)動方式;具有正/反轉(zhuǎn)控制功能;帶有復位和使能引腳;可選擇使用單時鐘輸入或雙時鐘輸入。 從圖2-16中可以看出,TA8435主要由1個解碼器,2個橋式驅(qū)動電路、2個輸出電流控制電路、2個最大電流限制電路、1個斬波器等功能模塊組成。2、引腳功能 TA8435采用ZIP25封裝形式,圖2-17為其引腳排列圖。各引腳功能如下: 腳1S-GND:

32、信號地; 腳2RESET:復位端,低電平有效,當該端有效時,電路復位到起始狀態(tài),此時在任何鼓勵方式下,輸出各相都置于它們的原點; 引腳3ENABLE:使能端,低電平有效;當該端為高電平時電路處于維持狀態(tài),此時各相輸出被強制關(guān)閉; COSC 式中,COSC的單位為F FOSC的單位為KHZ。 腳5CW/CCW:正、反轉(zhuǎn)控制引腳; 腳6、7CK2、CK1:時鐘輸入端,可選擇單時鐘輸入;或雙時鐘輸入,最大時鐘輸入頻率為5KHZ; 腳8、9M1 M2:選擇鼓勵方式,00表示步進電機工作在整步方式,10為半步方式,01為1/4細分方式,11為1/8細分方式; 腳10REF IN:VNF輸入控制,接高電平

33、時VNF為0.8V,接低電平時VNF為0.5V; 腳11MO:輸出監(jiān)視,用于監(jiān)視輸出電流峰值位置; 腳13VCC:邏輯電路供電引腳,一般為5V; 圖2-17 引腳排列圖腳15、24VMB、VMA:B相和A相負載電源端; 腳16、19 B、B-:B相輸出引腳; 腳17、22PG-B、PG-A:B相和A相負載地; 腳18、21NFB、NFA:相和相電流檢測端,由該引腳外接電阻和REF-IN引腳控制的輸出電流為:IOVNF/RNF; 腳20、23(A、A-:A相輸出引腳。 TA8435細分工作原理 在圖2-18中,第一個CK時鐘周期時,解碼器翻開橋式驅(qū)動電路,電流從VMA流經(jīng)電機的線圈后經(jīng)RNFA后

34、與地構(gòu)成回路,由于線圈電感的作用,電流是逐漸增大的,所以RNFB上的電壓也隨之上升。當RNFB上的電壓大于比擬器正端的電壓時,比擬器使橋式驅(qū)動電路關(guān)閉,電機線圈上的電流開始衰減,RNFB上的電壓也相應(yīng)減??;當電壓值小于比擬器正向電壓時,橋式驅(qū)動電路又重新導通,如此循環(huán),電流不斷的上升和下降形成鋸齒波,其波形如圖3中IA波形的第1段,另外由于斬波器頻率很高,一般在幾十KHz,其頻率大小與所選用電容有關(guān),在OSC作用下,電流鋸齒波紋是非常小的,可以近似認為輸出電流是直流。在第2個時鐘周期開始時,輸出電流控制電路輸出電壓Ua到達第2階段,比擬器正向電壓也相應(yīng)為第2階段的電壓,因此,流經(jīng)步進電機線圈的

35、電流從第1階段也升至第二階段2,電流波形如圖IA第2局部,第3時鐘周期,第4時鐘周期TA8435的工作原理與第1、2是一樣的,只有又升高比擬器正向電壓而已,輸出電流波形如圖IA中第3、4局部。如此最終形成階梯電流,加在線圈B上的電流,如圖2-18中IB。在CK一個時鐘周期內(nèi),流經(jīng)線圈A和線圈B的電流共同作用下,步進電機運轉(zhuǎn)一個細分步。圖2-18 細分工作原理圖 TA8435原理圖圖2-19 TA8435驅(qū)動步進電機原理圖圖2-19為TA8435驅(qū)動步進電機原理圖,R16與R17為2W大功率電阻。2.7 步進電機簡介步進電動機是純粹的數(shù)字控制電動機,它將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰?即給一個脈沖,步進

36、電機就轉(zhuǎn)一個角度,因此非常適宜單片機控制,在非超載的情況下,電機的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負載變化的影響,電機那么轉(zhuǎn)過一個步距角,同時步進電機只有周期性的無累積誤差,精度高。 步進電動機有如下特點: 1步進電動機的角位移與輸入脈沖數(shù)嚴格成正比。因此,當它轉(zhuǎn)一圈后,沒有累計誤差,具有良好的跟隨性。 2由步進電動機與驅(qū)動電路組成的開環(huán)數(shù)控系統(tǒng),既簡單、廉價,又非??煽?同時,它也可以與角度反應(yīng)環(huán)節(jié)組成高性能的閉環(huán)數(shù)控系統(tǒng)。 3步進電動機的動態(tài)響應(yīng)快,易于啟停、正反轉(zhuǎn)及變速。 4速度可在相當寬的范圍內(nèi)平穩(wěn)調(diào)整,低速下仍能獲得較大轉(zhuǎn)距,因此一般可以不用減速器而直接驅(qū)動負載

37、。 5步進電機只能通過脈沖電源供電才能運行,不能直接使用交流電源和直流電源。 6步進電機存在振蕩和失步現(xiàn)象,必須對控制系統(tǒng)和機械負載采取相應(yīng)措施。 步進電機具有和機械結(jié)構(gòu)簡單的優(yōu)點, 圖2-20是四相六線制步進電機原理圖,這類步進電機既可作為四相電機使用,也可以做為兩相電機使用,使用靈活,因此應(yīng)用廣泛。 圖2-20 步進電機原理圖表2-4 表2-5時序ABAB1000120011300104011050100611007100081001時序AAAB11001200113011041100 步進電機有兩種工作方式:整步方式和半步方式。以步進角1.8度四相混合式步進電機為例,在整步方式下,步進電

38、機每接收一個脈沖,旋轉(zhuǎn)1.8度,旋轉(zhuǎn)一周,那么需要200個脈沖,在半步方式下,步進電機每接收一個脈沖,旋轉(zhuǎn)0.9度,旋轉(zhuǎn)一周,那么需要400個脈沖??刂撇竭M電機旋轉(zhuǎn)必須按一定時序?qū)Σ竭M電機引線輸入脈沖,以上述四相六線制步進電機為例,其半步工作方式和整步工作方式的控制時序如表2-4和表2-5所列。步進電機在低頻工作時,會有振動大、噪聲大的缺點。如果使用細分方式,就能很好的解決這個問題,步進電機的細分控制,從本質(zhì)上講是通過對步進電機勵磁繞組中電流的控制,使步進電機內(nèi)部的合成磁場為均勻的圓形旋轉(zhuǎn)磁場,從而實現(xiàn)步進電機步距角的細分,一般情況下,合成磁場矢量的幅值決定了步進電機旋轉(zhuǎn)力矩的大小,相鄰兩合成

39、磁場矢量之間的夾角大小決定了步距角的大小,步進電機半步工作方式就蘊涵了細分的工作原理。實現(xiàn)細分方式有多種方法,最常用的是脈寬調(diào)制式斬波驅(qū)動方式,大多數(shù)專用的步進電機驅(qū)動芯片都采用這種驅(qū)動方式,TA8435就是其中一種芯片。 2.8 本章小結(jié)本章介紹系統(tǒng)的硬件設(shè)計,其中硬件主要由AD芯片、E2PROM、STC89C52RC單片機、TA8435芯片、1602液晶等組成。本系統(tǒng)的工作原理是:先用AD芯片采集電位器的模擬量作為輸入角度值,然后使用STC89C52RC單片機處理AD芯片轉(zhuǎn)換的數(shù)字量,接著用這些數(shù)字量來控制步進電機驅(qū)動芯片TA8435,最后由TA8435來控制步進電機旋轉(zhuǎn)角度。第三章 系統(tǒng)

40、軟件設(shè)計3.1 系統(tǒng)總體的軟件流程圖如圖3-1所示,本軟件根本流程為:先執(zhí)行初始化,然后進入按鍵選擇區(qū)域,如果按下角度輸入按鈕就進行角度值的輸入,如果按下頻率輸入按鈕那么進行頻率值的輸入,接著按下確認按鈕就翻開單片機定時器,隨后把定時器初值裝入那么定時器開始工作,步進電機也隨之運作,最后如果按下關(guān)閉按鈕那么系統(tǒng)停止工作。圖3-1 軟件流程圖3.2 AD芯片程序AD程序用于旋轉(zhuǎn)角度的模擬量輸入,首先AD片選信號鎖存器的鎖存端再向AD寫入端寫入數(shù)據(jù)啟動AD轉(zhuǎn)換,然后關(guān)閉AD片選信號鎖存器的鎖存端等待一段時間,接著再翻開AD片選信號鎖存器的鎖存端來讀取串口數(shù)據(jù)其,最后讀完數(shù)據(jù)之后關(guān)閉AD片選信號鎖存

41、器的鎖存端。主要程序局部如下所示:void main()/主程序 uchar a; init(); while(1) csad=0; /選通ADCSadwr=1;adwr=0; /AD寫入啟動AD轉(zhuǎn)換adwr=1; csad=1; /關(guān)閉ADCSdelay(20); /關(guān)閉有AD片選信號鎖存器的鎖存端以防止在操作數(shù)碼管時使AD的片選發(fā)生變化for(a=20;a0;a-) /需要注意的是ADC0804在寫和讀之間的時間間隔要足夠長否那么無法讀出數(shù)據(jù) /這里把顯示局部放這里的原因也是為了增加寫讀之間的時間間隔 display(); /送去顯示各位。 /重新翻開有AD片選信號鎖存器的鎖存端P1=0

42、xff; /讀取P1口之前先給其寫全1csad=0; /選通ADCSadrd=0; /AD讀使能adval=P1; /AD數(shù)據(jù)讀取賦給P1口adrd=1;csad=1; /關(guān)閉ADCSd1=0;d2=0;d3=0; 3.3 1602液晶程序液晶主要用于輸入旋轉(zhuǎn)角度的顯示,根據(jù)寫命令時序圖與寫數(shù)據(jù)時序圖寫出寫命令函數(shù)和寫數(shù)據(jù)函數(shù),然后寫初始化程序,根據(jù)液晶的說明書寫出自己所需要的初始化設(shè)置。其主要程序局部如下所示:void write_com(uchar com) /寫命令函數(shù) P0=com;rs=0;lcden=0;delay(10);lcden=1;delay(10);lcden=0;voi

43、d write_date(uchar date) /寫數(shù)據(jù)函數(shù) P0=date;rs=1;lcden=0;delay(10);lcden=1;delay(10);lcden=0;void init() /程序初始化 write_com(0 x38); /顯示模式設(shè)置delay(20);write_com(0 x0f); /顯示光標設(shè)計delay(20);write_com(0 x06); /數(shù)據(jù)控制delay(20); write_com(0 x01); /數(shù)據(jù)指針設(shè)置delay(20); void main() /主程序 uchar a;init();write_com(0 x80+17);

44、 /顯示字符位置delay(20);for(a=0;a9;a+) write_date(table1a);delay(20); write_com(0 xc0+17); /顯示字符位置delay(50);for(a=0;a13;a+) write_date(table2a);delay(40); for(a=0;a16;a+) write_com(0 x18); /顯示字符位置delay1(200); while(1); 3.4 TA8435芯片程序TA8435芯片主要用于步進電機的旋轉(zhuǎn)角度控制,TA8435芯片的控制其實就是一個定時器中斷的程序,計算出自己所需要的旋轉(zhuǎn)頻率,然后設(shè)置相應(yīng)的定時

45、器中斷,進入定時器中斷之后對CK端進行取反,步進電機就會按照當初所設(shè)定的頻率進行轉(zhuǎn)動。其主要程序局部如下所示:sbit en=P22;sbit cw=P21;sbit ck=P20;unsigned int j;void timer0() interrupt 1 /定時器中斷0 TH0=(65536-50000)/256;TL0=(65536-50000)%256;ck=!ck;j+; void main() ck=0; /時鐘輸入端賦值cw=0; /設(shè)置為正傳en=0; /翻開使能j=0;TMOD=0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%2

46、56;EA=1;ET0=1;TR0=1;while(1); 3.5 E2PROM芯片程序E2PROM主要用于輸入角度值的斷電保存,AT24C02是一款I(lǐng)2C總線的E2PROM。I2C總線是PHLIPS公司推出的一種串行總線,是具備多主機系統(tǒng)所需的包括總線裁決和上下速器件同步功能的高性能串行總線。它只有兩根雙向信號線。一根是數(shù)據(jù)線SDA,另一根是時鐘線SCL。其主要程序局部如下所示:void delay1(unsigned char x) unsigned int i; for(i=0;ix;i+); ;void flash() ; ; void x24c08_init() /24c08初始化子

47、程序 scl=1; flash(); sda=1; flash();void start() /啟動I2C總線sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();void stop() /停止I2C總線sda=0; flash(); scl=1; flash(); sda=1; flash();void writex(unsigned char j) /寫一個字節(jié) unsigned char i,temp; temp=j; for (i=0;i8;i+) temp=temp1; scl=0; flash(); sda=C

48、Y; flash(); scl=1; flash(); scl=0; flash(); sda=1; flash();unsigned char readx() /讀一個字節(jié) unsigned char i,j,k=0; scl=0; flash(); sda=1; for (i=0;i8;i+) flash(); scl=1; flash(); if (sda=1) j=1; else j=0; k=(k1)|j; scl=0; flash(); return(k);void clock() /I2C總線時鐘 unsigned char i=0; scl=1; flash(); while

49、(sda=1)&(i255)i+; scl=0; flash();/從24c02的地址address中讀取一個字節(jié)數(shù)據(jù)/unsigned char x24c08_read(unsigned char address) unsigned char i; start(); writex(0 xa0); clock(); writex(address); clock(); start(); writex(0 xa1); clock(); i=readx(); stop(); delay1(10); return(i);/向24c02的address地址中寫入一字節(jié)數(shù)據(jù)info/void x24c08

50、_write(unsigned char address,unsigned char info) EA=0; start(); writex(0 xa0); clock(); writex(address); clock(); writex(info); clock(); stop(); EA=1; delay1(50);void t0(void) interrupt 1 using 0 /定時中斷效勞函數(shù)TH0=(65536-50000)/256; /對TH0 TL0賦值TL0=(65536-50000)%256; /重裝計數(shù)初值tcnt+; /每過250ust tcnt加一if(tcnt=

51、20) /計滿20次1秒時 tcnt=0; /重新再計 sec+; write=1; /1秒寫一次24C08 if(sec=100) /定時100秒,在從零開始計時 sec=0; void main()unsigned char i;init();TMOD=0 x01; /定時器工作在方式1ET0=1; EA=1;x24c08_init(); /初始化24C08sec=x24c08_read(2);/讀出保存的數(shù)據(jù)賦于secTH0=(65536-50000)/256; /對TH0 TL0賦值TR0=1; /開始計時while(1) i=10; while(i-) display(sec/10,

52、sec%10); if(write=1) /判斷計時器是否計時一秒 write=0; /清零 x24c08_write(2,sec); /在24c08的地址2中寫入數(shù)據(jù)sec 3.6 本章小結(jié)本章主要為系統(tǒng)的軟件局部,由AD采集程序、1602液晶驅(qū)動程序、TA8435驅(qū)動程序、E2PROM程序等局部組成。其程序執(zhí)行過程如下:先進行系統(tǒng)初始化,然后進行進入按鍵選擇局部,接著執(zhí)行各當前按下的按鍵按鍵程序,最后如果按下結(jié)束按鍵那么程序結(jié)束。第四章 系統(tǒng)的安裝與調(diào)試4.1 系統(tǒng)硬件的安裝與調(diào)試系統(tǒng)硬件的安裝和調(diào)試也是一個非常重要的內(nèi)容,下面從兩個方面介紹硬件的安裝和調(diào)試的內(nèi)容。 系統(tǒng)硬件的安裝 圖4-

53、1 硬件實物圖硬件實物圖如圖4-1所示,由控制板控制搖頭風扇搖頭電機的旋轉(zhuǎn),以及風扇的旋轉(zhuǎn)。旋阻用于模擬量的輸入,AD芯片用于模擬量轉(zhuǎn)換為數(shù)字量,MAX232與串口座用于程序的下載,STC單片機用于系統(tǒng)的主控,EEPROM用于數(shù)值的斷電保存。如圖4-1所示,1號按鈕為啟動按鈕,2號按鈕為角度輸入按鈕,3號按鈕為頻率輸入按鈕控制搖頭速度,4號按鈕為停止按鈕。如果想讓風扇按照上次斷電前的搖頭角度和搖頭速度啟動,操作是方法:按下1號啟動按鈕,就可以按照斷電前的搖頭角度和速度參數(shù)旋轉(zhuǎn),想停止的時候按下4號按鈕。如果想重新設(shè)置搖頭角度和速度參數(shù),操作方法是:先按下第2個按鈕,系統(tǒng)進入角度值的輸入狀態(tài),旋

54、動旋阻來進行角度值的輸入,通過液晶顯示觀察輸入角度大小,然后按下第3個按鈕,系統(tǒng)進入頻率值的輸入,旋動旋阻來進行頻率值的輸入,通過液晶顯示觀察輸入頻率搖頭速度大小,接著按下第1個按鈕,步進電機就會按照剛剛輸入的角度和搖頭速度參數(shù)值進行搖頭旋轉(zhuǎn),最后如果要關(guān)閉系統(tǒng)的話就按第4個按鈕就能停止旋轉(zhuǎn)。 系統(tǒng)硬件的調(diào)試1.串口下載局部現(xiàn)象:程序無法進行下載分析:元器件全部換過之后發(fā)現(xiàn)仍然無法下載程序,網(wǎng)上重新查找MAX232芯片資料之后發(fā)現(xiàn)兩份資料的接受與發(fā)送兩管角的接法不一樣。解決方法:按照第二份芯片資料的接法重新連接兩管腳,串口下載程序正常。2.液晶局部現(xiàn)象:1602液晶無字符顯示,背光正常。分析:

55、為節(jié)省元器件,調(diào)節(jié)比照度的10K旋阻沒有接在液晶上面。解決方法:將10K旋阻重新接在液晶上面,然后調(diào)節(jié)旋阻,液晶顯示正常。3.AD局部現(xiàn)象:AD無法有規(guī)律的進行轉(zhuǎn)換,旋阻轉(zhuǎn)過一個單位后液晶顯示的數(shù)據(jù)為128,正常顯示的數(shù)據(jù)應(yīng)為1。分析:128的二進制碼為1000 000,1的二進制碼為0000 0001。由此可見并口數(shù)據(jù)線被接反。解決方法:將AD的并口數(shù)據(jù)全部反接,AD轉(zhuǎn)換后正常顯示。4.2 系統(tǒng)軟件的調(diào)試4. 編譯軟件keil uvision簡介1. 系統(tǒng)概述Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可

56、讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能表達高級語言的優(yōu)勢。下面詳細介紹Keil C51開發(fā)系統(tǒng)各局部功能和使用。2. Keil C51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境

57、(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)立生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如E2PROM中。4. 系統(tǒng)軟件程序的調(diào)試在編好軟件程序進行調(diào)試的時候,我遇到了很多的問題,給我印象最深的是液晶液晶顯示局部和TA8435芯片控制電機的問題。1.1602

溫馨提示

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

最新文檔

評論

0/150

提交評論