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

下載本文檔

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

文檔簡(jiǎn)介

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

2、2PROM原理圖 132.5 液晶顯示器的選型13 管腳功能13 操作控制 13 字符集14 指令集 14 控制器時(shí)序說(shuō)明152.6 步進(jìn)電機(jī)驅(qū)動(dòng)芯片的選型 16 TA8435簡(jiǎn)介 16 TA8435細(xì)分工作原理 18 TA8435原理圖 182.7 步進(jìn)電機(jī)簡(jiǎn)介 192.8 本章小結(jié) 20第三章 系統(tǒng)軟件設(shè)計(jì)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簡(jiǎn)介294.2.2 系統(tǒng)軟件程序的調(diào)試304.3 本章小結(jié) 30結(jié)束語(yǔ)31謝辭32參考文獻(xiàn)33附錄1 原理圖34附錄2 PCB圖35基于單片機(jī)的智能搖頭控制系統(tǒng)風(fēng)扇設(shè)計(jì)摘要:現(xiàn)在市場(chǎng)上的許多風(fēng)扇都有搖頭功能,但是搖頭的角度是90度固定不變的,而有時(shí)候人們希望風(fēng)扇搖頭的角度可以調(diào)節(jié),搖頭的速度可以調(diào)節(jié),這時(shí)候原來(lái)固定搖頭角度的風(fēng)扇就不能滿足人們的需要。本次畢業(yè)設(shè)計(jì)針對(duì)這個(gè)問(wèn)題,提出了設(shè)計(jì)一個(gè)可以調(diào)節(jié)電風(fēng)扇搖頭角度,并且可以調(diào)節(jié)電風(fēng)扇的搖頭速度的智能搖頭風(fēng)扇。這個(gè)裝置做好之后還可以應(yīng)用到比方太陽(yáng)能采光板的跟蹤采光系統(tǒng)、園林的智能灌溉系統(tǒng)等其他應(yīng)

4、用領(lǐng)域中。本課題設(shè)計(jì)的思路是:先用AD芯片采集電位器的模擬量,通過(guò)AD芯片把模擬量轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字量,即設(shè)定的風(fēng)扇搖頭角度,并在液晶上顯示出來(lái)。然后STC89C52RC單片機(jī)通過(guò)這些數(shù)字量來(lái)控制步進(jìn)電機(jī)驅(qū)動(dòng)芯片TA8435,最后由TA8435來(lái)控制步進(jìn)電機(jī)旋轉(zhuǎn)角度,使風(fēng)扇能夠在設(shè)定的角度范圍0度到360度內(nèi)搖頭,同時(shí)通過(guò)控制電機(jī)的頻率,從而控制電機(jī)搖頭的速度。本設(shè)計(jì)還使用了E2 PROM對(duì)預(yù)設(shè)角度值,搖頭速度的斷電保存。關(guān)鍵詞:?jiǎn)纹瑱C(jī) 風(fēng)扇 搖頭 步進(jìn)電機(jī)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)狀隨著社會(huì)的開展,人們的生活水平也逐漸提高。電扇是人們最常用的家電之一,雖然科技在日益開展,但是電扇的開展速度卻顯得十分的緩慢。雖然家電廠商們都推出了許多所謂的數(shù)字電扇,但是那些電扇也只參加了自然風(fēng)和定時(shí)這一些功能,沒(méi)有去改變搖頭的功能。其實(shí)搖頭對(duì)于風(fēng)扇是十分重要的,單人扇風(fēng)扇和多人扇風(fēng)扇的角度需要改變,這樣能更好的利用資源。1.2 智能搖頭風(fēng)扇系統(tǒng)的簡(jiǎn)介本系統(tǒng)使用步進(jìn)電機(jī)作為傳動(dòng)的主要部件,然后使用51

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25、L線為高電平期間,SDA線由低電平向高電平的變化表示終止信號(hào)。數(shù)據(jù)傳送格式1字節(jié)傳送與應(yīng)答。圖2-12 字傳送與應(yīng)答圖每一個(gè)字節(jié)必須保證是8位長(zhǎng)度。數(shù)據(jù)傳送時(shí),先傳送最高位MSB,每一個(gè)被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位即一幀共有9位。如果一段時(shí)間內(nèi)沒(méi)有收到從機(jī)的應(yīng)答信號(hào),那么自動(dòng)認(rèn)為從機(jī)已正確接收到數(shù)據(jù)。 AT24C02的芯片地址如下列圖,1010為固定,A0,A1,A2正好與芯片的1,2,3引角對(duì)應(yīng),為當(dāng)前電路中的地址選擇線,三根線可選擇8個(gè)芯片同時(shí)連接在電路中,當(dāng)要與哪個(gè)芯片通信時(shí)傳送相應(yīng)的地址即可與該芯片建立連接,。最后一位R/W為告訴從機(jī)下一字節(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è)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。16列2行 管腳功能1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器比照度調(diào)整端,接正電源時(shí)比照度最弱,接地電源時(shí)比照度最高比照度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整比照度。第4腳:RS為存放器選擇,高電平1時(shí)選擇數(shù)據(jù)存放器、低電平0時(shí)選擇指令存放器。第

27、5腳:RW為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。 操作控制表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ā)生存儲(chǔ)器CGROM已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小

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

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

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

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

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

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

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

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

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

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

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

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

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

41、器的鎖存端。主要程序局部如下所示:void main()/主程序 uchar a; init(); while(1) csad=0; /選通ADCSadwr=1;adwr=0; /AD寫入啟動(dòng)AD轉(zhuǎn)換adwr=1; csad=1; /關(guān)閉ADCSdelay(20); /關(guān)閉有AD片選信號(hào)鎖存器的鎖存端以防止在操作數(shù)碼管時(shí)使AD的片選發(fā)生變化for(a=20;a0;a-) /需要注意的是ADC0804在寫和讀之間的時(shí)間間隔要足夠長(zhǎng)否那么無(wú)法讀出數(shù)據(jù) /這里把顯示局部放這里的原因也是為了增加寫讀之間的時(shí)間間隔 display(); /送去顯示各位。 /重新翻開有AD片選信號(hào)鎖存器的鎖存端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í)序圖與寫數(shù)據(jù)時(shí)序圖寫出寫命令函數(shù)和寫數(shù)據(jù)函數(shù),然后寫初始化程序,根據(jù)液晶的說(shuō)明書寫出自己所需要的初始化設(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); /顯示光標(biāo)設(shè)計(jì)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芯片主要用于步進(jìn)電機(jī)的旋轉(zhuǎn)角度控制,TA8435芯片的控制其實(shí)就是一個(gè)定時(shí)器中斷的程序,計(jì)算出自己所需要的旋轉(zhuǎn)頻率,然后設(shè)置相應(yīng)的定時(shí)

45、器中斷,進(jìn)入定時(shí)器中斷之后對(duì)CK端進(jìn)行取反,步進(jìn)電機(jī)就會(huì)按照當(dāng)初所設(shè)定的頻率進(jìn)行轉(zhuǎn)動(dòng)。其主要程序局部如下所示:sbit en=P22;sbit cw=P21;sbit ck=P20;unsigned int j;void timer0() interrupt 1 /定時(shí)器中斷0 TH0=(65536-50000)/256;TL0=(65536-50000)%256;ck=!ck;j+; void main() ck=0; /時(shí)鐘輸入端賦值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公司推出的一種串行總線,是具備多主機(jī)系統(tǒng)所需的包括總線裁決和上下速器件同步功能的高性能串行總線。它只有兩根雙向信號(hào)線。一根是數(shù)據(jù)線SDA,另一根是時(shí)鐘線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() /啟動(dòng)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) /寫一個(gè)字節(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() /讀一個(gè)字節(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總線時(shí)鐘 unsigned char i=0; scl=1; flash(); while

49、(sda=1)&(i255)i+; scl=0; flash();/從24c02的地址address中讀取一個(gè)字節(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í)中斷效勞函數(shù)TH0=(65536-50000)/256; /對(duì)TH0 TL0賦值TL0=(65536-50000)%256; /重裝計(jì)數(shù)初值tcnt+; /每過(guò)250ust tcnt加一if(tcnt=

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

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

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

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

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

56、讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能表達(dá)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面詳細(xì)介紹Keil C51開發(fā)系統(tǒng)各局部功能和使用。2. Keil C51單片機(jī)軟件開發(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)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)立生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如E2PROM中。4. 系統(tǒng)軟件程序的調(diào)試在編好軟件程序進(jìn)行調(diào)試的時(shí)候,我遇到了很多的問(wèn)題,給我印象最深的是液晶液晶顯示局部和TA8435芯片控制電機(jī)的問(wèn)題。1.1602

溫馨提示

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

評(píng)論

0/150

提交評(píng)論