2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩38頁(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、<p>  學(xué)士學(xué)位論文(設(shè)計(jì))</p><p> 論文題目基于霍爾傳感器的轉(zhuǎn)速測(cè)量研究</p><p><b>  目錄</b></p><p>  學(xué)位論文(設(shè)計(jì))誠(chéng)信承諾書I</p><p><b>  1 緒論1</b></p><p>  1.1 課題

2、研究目的及意義1</p><p>  1.2 應(yīng)用與發(fā)展前景2</p><p>  1.3 設(shè)計(jì)任務(wù)與要求2</p><p>  2 課題方案設(shè)計(jì)3</p><p>  2.1 系統(tǒng)總體設(shè)計(jì)要求3</p><p>  2.2 系統(tǒng)模塊結(jié)構(gòu)論證3</p><p>  2.3 轉(zhuǎn)速測(cè)量方

3、案論證5</p><p>  3 基于霍爾傳感器的轉(zhuǎn)速測(cè)量系統(tǒng)硬件設(shè)計(jì)7</p><p>  3.1 轉(zhuǎn)速測(cè)量系統(tǒng)的硬件電路設(shè)計(jì)7</p><p>  3.2 霍爾傳感器測(cè)量電路設(shè)計(jì)9</p><p>  3.3 單片機(jī)AT89C5113</p><p>  3.4顯示電路設(shè)計(jì)15</p>&

4、lt;p>  4系統(tǒng)軟件設(shè)計(jì)18</p><p>  4.1程序設(shè)計(jì)步驟18</p><p>  4.2程序流程圖18</p><p>  4.3軟件程序設(shè)計(jì)22</p><p><b>  5軟件調(diào)試27</b></p><p>  5.1 Proteus及Keil軟件簡(jiǎn)介27

5、</p><p>  5.2 應(yīng)用Keil軟件進(jìn)行程序調(diào)試29</p><p>  5.3 Proteus軟件仿真29</p><p>  5.4 硬件軟件聯(lián)合調(diào)試33</p><p><b>  6 結(jié)論34</b></p><p><b>  致 謝36</b>

6、</p><p>  學(xué)位論文(設(shè)計(jì))評(píng)審表38</p><p>  基于霍爾傳感器的轉(zhuǎn)速測(cè)量研究</p><p>  摘 要:本文設(shè)計(jì)了基于單片機(jī)AT89C51的直流電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)。測(cè)量轉(zhuǎn)速的霍爾傳感器和機(jī)軸同軸連接,機(jī)軸每轉(zhuǎn)一周,產(chǎn)生一定量的脈沖個(gè)數(shù),由霍爾器件電路部分輸出幅度為12V的脈沖。經(jīng)光電隔離后輸出幅度為5V的轉(zhuǎn)數(shù)計(jì)數(shù)器的計(jì)數(shù)脈沖??刂贫〞r(shí)器計(jì)數(shù)

7、時(shí)間,即可實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的測(cè)量。在顯示電路設(shè)計(jì)中,通過(guò)1602實(shí)現(xiàn)在LCD上直觀地顯示電機(jī)的轉(zhuǎn)速值。</p><p>  關(guān)鍵詞:轉(zhuǎn)速測(cè)量 霍爾傳感器 AT89C51 單片機(jī) LCD </p><p>  中圖分類號(hào):TN219</p><p>  Rotate Speed Measurement System Based on Hall Sensor</p&

8、gt;<p>  Abstract: This article is design the system about DC motor speed measurement which is based on hall sensor and AT89C51.Every revolution of the crankshaft will generate a certain amount of pulses whose am

9、plitude is 12v.The opto-coupler turns these certain amount of pulses into 5-amplitude count impulse. The motor speed can be measured by controlling the time. In the design of display circuit, the number of motor speed is

10、 displayed in LCD directly through 1602.</p><p>  Key words: Speed measurement; Hall sensor;AT89C51; opto-coupler; LCD</p><p>  基于霍爾傳感器的轉(zhuǎn)速測(cè)量研究</p><p><b>  1 緒論</b></p

11、><p>  1.1 課題研究目的及意義</p><p>  在實(shí)踐中,經(jīng)常會(huì)遇到各種需要測(cè)量轉(zhuǎn)速的場(chǎng)合。例如在發(fā)動(dòng)機(jī)、電動(dòng)機(jī)、卷?yè)P(yáng)機(jī)、機(jī)床主軸等旋轉(zhuǎn)設(shè)備的試驗(yàn)、運(yùn)轉(zhuǎn)和控制中,常需要測(cè)量和顯示其轉(zhuǎn)速。測(cè)量轉(zhuǎn)速的方法分為模擬式和數(shù)字式兩種。模擬式采用測(cè)速發(fā)電機(jī)為檢測(cè)元件,得到的信號(hào)是模擬量。數(shù)字式通常采用光電編碼器、圓光柵、霍爾元件等為檢測(cè)元件,得到的信號(hào)是脈沖信號(hào)。隨著微型計(jì)算機(jī)的廣泛應(yīng)用,特

12、別是高性能價(jià)格比的單片機(jī)的出現(xiàn),轉(zhuǎn)速測(cè)量普遍采用以單片機(jī)為核心的數(shù)字式測(cè)量方法,智能化微電腦代替了一般機(jī)械式或模擬式結(jié)構(gòu)。</p><p>  霍爾傳感器是利用霍爾效應(yīng)實(shí)現(xiàn)磁電轉(zhuǎn)換的一種傳感器,它具有靈敏度高、線性度好、穩(wěn)定性高、體積小和耐高溫等特點(diǎn),在機(jī)車控制系統(tǒng)中占有非常重要的地位[1]。</p><p>  測(cè)速裝置在控制系統(tǒng)中占有非常重要的地位,對(duì)測(cè)速裝置的要求是分辨能力強(qiáng)、高精度

13、和盡可能短的檢測(cè)時(shí)間。在此主要介紹應(yīng)用霍爾傳感器通過(guò)測(cè)量磁場(chǎng)強(qiáng)度,來(lái)得到穩(wěn)定的脈沖方波信號(hào),實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的測(cè)量轉(zhuǎn)速是電動(dòng)機(jī)極為重要的一個(gè)狀態(tài)參數(shù),在很多運(yùn)動(dòng)系統(tǒng)的測(cè)控中,都需要對(duì)電機(jī)的轉(zhuǎn)速進(jìn)行測(cè)量,速度測(cè)量的精度直接影響系統(tǒng)的控制情況,它是關(guān)系測(cè)控效果的一個(gè)重要因素。不論是直流調(diào)速系統(tǒng)還是交流調(diào)速系統(tǒng),只有轉(zhuǎn)速的高精度檢測(cè)才能得到高精度的控制系統(tǒng)。</p><p>  1.2 應(yīng)用與發(fā)展前景</p>

14、<p>  隨著微型計(jì)算機(jī)可靠性提高和價(jià)格的下降,用單片機(jī)測(cè)量電機(jī)轉(zhuǎn)速已日趨普遍。我們知道,欲提高測(cè)量精度,必須先測(cè)出準(zhǔn)確的轉(zhuǎn)速,而原先在可控硅調(diào)速電路中采用的測(cè)速發(fā)電機(jī)方式已不能滿足要求,必須采用數(shù)字測(cè)速的方法[2]。轉(zhuǎn)速的測(cè)量方法很多,根據(jù)脈沖計(jì)數(shù)來(lái)實(shí)現(xiàn)轉(zhuǎn)速測(cè)量的方法主要有M法(測(cè)頻法)、T法(測(cè)周期法)和MPT法(頻率周期法),該系統(tǒng)采用了M法(測(cè)頻法)。本文采用頻率法,檢測(cè)的是輸入脈沖數(shù),這種方式又稱頻率法。它測(cè)出一

15、定時(shí)間內(nèi)輸入的脈沖的個(gè)數(shù)。</p><p>  它在控制系統(tǒng)中占有非常重要的地位。對(duì)測(cè)速裝置的要求是分辨能力強(qiáng)、高精度和盡可能短的檢測(cè)時(shí)間。所設(shè)計(jì)的基于霍爾元件的脈沖發(fā)生器要求成本低,構(gòu)造簡(jiǎn)單,性能好。在電氣控制系統(tǒng)中存在著較為惡劣的電磁環(huán)境,因此要求產(chǎn)品本身要具有較強(qiáng)的抗干擾能力。</p><p>  由于需要采用霍爾傳感器的應(yīng)用領(lǐng)域,如汽車、電機(jī)、手機(jī)和電腦都已經(jīng)采用了該器件,而且這些

16、市場(chǎng)在未來(lái)幾年的增長(zhǎng)較為穩(wěn)定,而其他一些新的應(yīng)用市場(chǎng)又不足以與上述幾個(gè)市場(chǎng)相比,因此霍爾傳感器在全球總的市場(chǎng)容量是較為穩(wěn)定的,每年的增長(zhǎng)率保持在5%到10%之間。因?yàn)楦鞣N應(yīng)用電機(jī)的部件、節(jié)氣門位置的檢測(cè)、各種閥體位置的檢測(cè)都會(huì)用到霍爾傳感器。而且,在中國(guó)市場(chǎng)中,國(guó)外廠商為了降低成本,陸續(xù)將零部件拿到中國(guó)進(jìn)行設(shè)計(jì)和生產(chǎn),這也進(jìn)一步提升了中國(guó)市場(chǎng)霍爾傳感器的應(yīng)用量。</p><p>  隨著它在消費(fèi)電子市場(chǎng)上的應(yīng)用越

17、來(lái)越廣,如何控制功耗和成本將是廠商面臨的挑戰(zhàn)。而且,它還面臨生產(chǎn)測(cè)試技術(shù)方面的挑戰(zhàn)[3]。</p><p>  1.3 設(shè)計(jì)任務(wù)與要求</p><p>  1.3.1 設(shè)計(jì)任務(wù)</p><p>  根據(jù)學(xué)校畢業(yè)設(shè)計(jì)的要求,設(shè)計(jì)一個(gè)功能滿足設(shè)計(jì)要求、工作穩(wěn)定、以單片機(jī)為核心的基于霍爾傳感器的電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng),能夠?qū)崿F(xiàn)在電機(jī)工作時(shí)轉(zhuǎn)速的測(cè)量,并在發(fā)生故障時(shí)能及時(shí)的發(fā)出報(bào)

18、警信號(hào)。本設(shè)計(jì)包括完整的硬件設(shè)計(jì)和相應(yīng)的軟件設(shè)計(jì)。</p><p>  1.3.2 設(shè)計(jì)要求</p><p>  首先選定傳感器,霍爾傳感器具有靈敏、可靠、體積小巧、無(wú)觸點(diǎn)、無(wú)磨損、使用壽命長(zhǎng)、功耗低等優(yōu)點(diǎn),綜合了電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng)的要求。</p><p>  其次設(shè)計(jì)一個(gè)單片機(jī)小系統(tǒng),掌握單片機(jī)接口電路的設(shè)計(jì)技巧,學(xué)會(huì)利用單片機(jī)的定時(shí)器和中斷系統(tǒng)對(duì)脈沖信號(hào)進(jìn)行測(cè)量或

19、計(jì)數(shù)。</p><p>  再次實(shí)時(shí)測(cè)量顯示并有報(bào)警功能,實(shí)時(shí)測(cè)量根據(jù)脈沖計(jì)數(shù)來(lái)實(shí)現(xiàn)轉(zhuǎn)速測(cè)量的方法。要求霍爾傳感器轉(zhuǎn)速為0~5000r/min。</p><p><b>  2 課題方案設(shè)計(jì)</b></p><p>  2.1 系統(tǒng)總體設(shè)計(jì)要求</p><p>  如果把霍爾傳感器按預(yù)定位置有規(guī)律地布置在軌道上,當(dāng)永磁體

20、經(jīng)過(guò)它時(shí),可以從測(cè)量電路上測(cè)得脈沖信號(hào)。根據(jù)脈沖信號(hào)的分布可以測(cè)出電機(jī)速度。</p><p>  2.2 系統(tǒng)模塊結(jié)構(gòu)論證</p><p>  2.2.1 霍爾測(cè)速模塊論證與選擇</p><p>  方案一:采用霍爾元件傳感器即霍爾片;霍爾片可分為貼片型和直插型。由于貼片型不常用,因此選擇直插型。選型號(hào)為A3144的霍爾片作為霍爾測(cè)速模塊的核心,該霍爾片體積小,安裝

21、靈活,可用于測(cè)速,且與普通的磁鋼片配套使用,價(jià)格一般為2.5~3元。</p><p>  方案二:采用霍爾傳感器;選型號(hào)為CHV-25P/10的霍爾傳感器,其額定電壓為10v,輸出信號(hào)5v/25mA,電源為12~15v。體積大,價(jià)格一般為40~120元之間不等。</p><p>  從性價(jià)比方面綜合考慮因此選擇方案一。</p><p>  2.2.2 計(jì)數(shù)器模塊論證

22、與選擇</p><p>  方案一:片外計(jì)數(shù)器;此方案是指采用8253等片外的專用計(jì)數(shù)芯片進(jìn)行脈沖計(jì)數(shù),單片機(jī)控制8253的技術(shù)過(guò)程,并在技術(shù)完畢后讀取計(jì)數(shù)值。</p><p>  方案二:片外計(jì)數(shù)器;此方案是指采用單片機(jī)的內(nèi)部計(jì)數(shù)器完成對(duì)脈沖的計(jì)數(shù)過(guò)程。用片內(nèi)的計(jì)數(shù)器的優(yōu)點(diǎn)在于降低單片機(jī)系統(tǒng)的成本。每到一個(gè)脈沖將會(huì)產(chǎn)生一個(gè)T1的計(jì)數(shù),在T0產(chǎn)生的100ms中斷完成后,T1的中斷溢出次數(shù)就

23、是所需要計(jì)的脈沖數(shù)。特點(diǎn)在于:使用了內(nèi)部的T1作為外部脈沖的計(jì)數(shù)器,并且,為了避免計(jì)數(shù)器的溢出,將T1的初值設(shè)為0。 </p><p>  2.2.3 顯示模塊論證與選擇</p><p>  方案一:采用8段LED數(shù)碼管作為顯示模塊核心。數(shù)碼管顯示器件相對(duì)便宜,但是耗能大、編寫程序相對(duì)麻煩,工作量大。</p><p>  方案二:采用LCD液晶顯示器作為顯示模塊核心

24、。LCD顯示器工作原理簡(jiǎn)單,編程方便,節(jié)能環(huán)保。</p><p><b>  因此選擇方案二。</b></p><p>  2.2.4 報(bào)警模塊論證與選擇</p><p>  方案一:采用蜂鳴器與發(fā)光二極管作為聲光報(bào)警主要器件。該方案不論在硬件和焊接方面還是在編寫軟件方面都簡(jiǎn)單方便,而且成本低廉。</p><p>  方

25、案二:采用語(yǔ)音播報(bào)系統(tǒng)作為聲光報(bào)警的核心。該方案更具人性化、智能化,但是就該設(shè)計(jì)要求而言,方案過(guò)于復(fù)雜,相對(duì)成本過(guò)高,工作量偏大。</p><p><b>  因此選擇方案一。</b></p><p>  2.2.5 電源模塊論證與選擇</p><p>  方案一:采用交流220V/50Hz電源轉(zhuǎn)換為直流5V電源作為電源模塊。</p>

26、;<p>  該方案實(shí)施簡(jiǎn)單,電路搭建方便,可作為單片機(jī)開發(fā)常備電源使用。</p><p>  方案二:采用干電池串并聯(lián)達(dá)到5V作為電源模塊。該方案實(shí)施簡(jiǎn)單,無(wú)需搭建電路,但相對(duì)該方案不夠穩(wěn)定,電池耗電快,帶負(fù)載后壓降過(guò)高,可能無(wú)法使系統(tǒng)穩(wěn)定持續(xù)運(yùn)行。</p><p>  方案三:采用可充電鋰電池結(jié)合穩(wěn)壓模塊作為電源模塊。該方案簡(jiǎn)單易行,而且相對(duì)穩(wěn)定、誤差小,但該方案相對(duì)價(jià)格

27、過(guò)高,針對(duì)該設(shè)計(jì)要求性價(jià)比低。</p><p><b>  因此選擇方案一。</b></p><p>  2.2.6 單片機(jī)模塊論證與選擇</p><p>  方案一:選用 P89C51的單片機(jī)速度極快、功耗低、體積小、資源豐富,有各種不同的規(guī)格,最快的達(dá)100MPS ,引腳還可編程確定功能。</p><p>  方案二

28、:Philips P89C51RD2有4個(gè)PDA,屬于兼容版。</p><p>  方案比較:因?yàn)轫?xiàng)目的目標(biāo)是測(cè)速系統(tǒng)的應(yīng)用,所以我還是選用了方案一中51系列的單片機(jī),因?yàn)?1的架構(gòu)十分典型。選擇方案一中51系列單片機(jī)我認(rèn)為主要考慮以下方面:1.價(jià)格便宜;2.開發(fā)手段便宜;3.自己動(dòng)手焊接相對(duì)容易。</p><p>  2.3 轉(zhuǎn)速測(cè)量方案論證</p><p>  

29、轉(zhuǎn)速的測(cè)量方法很多,根據(jù)脈沖計(jì)數(shù)來(lái)實(shí)現(xiàn)轉(zhuǎn)速測(cè)量的方法主要有M法(測(cè)頻法)、T法(測(cè)周期法)和MPT法(頻率周期法),該系統(tǒng)采用了M法(測(cè)頻法)。由于轉(zhuǎn)速是以單位時(shí)間內(nèi)轉(zhuǎn)數(shù)來(lái)衡量,在變換過(guò)程中多數(shù)是有規(guī)律的重復(fù)運(yùn)動(dòng)[4]。</p><p>  2.3.1 方案一:電機(jī)軸一側(cè)貼磁片</p><p>  使用霍爾傳感器獲得脈沖信號(hào),其機(jī)械結(jié)構(gòu)也可以做得較為簡(jiǎn)單,只要在轉(zhuǎn)軸的圓周上粘上一粒磁鋼,讓

30、霍爾開關(guān)靠近磁鋼,就有信號(hào)輸出,轉(zhuǎn)軸旋轉(zhuǎn)時(shí),就會(huì)不斷地產(chǎn)生脈沖信號(hào)輸出。如果在圓周上粘上多粒磁鋼,可以實(shí)現(xiàn)旋轉(zhuǎn)一周,獲得多個(gè)脈沖輸出。在粘磁鋼時(shí)要注意,霍爾傳感器對(duì)磁場(chǎng)方向敏感,粘之前可以先手動(dòng)接近一下傳感器,如果沒有信號(hào)輸出,可以換一個(gè)方向再試[5]。</p><p>  2.3.2 方案二:電機(jī)轉(zhuǎn)軸加測(cè)速轉(zhuǎn)盤</p><p>  傳感器采用霍爾器件將電機(jī)的轉(zhuǎn)速轉(zhuǎn)化為脈沖信號(hào),處理器采用

31、89C205l單片機(jī).計(jì)數(shù)器采用單片機(jī)片內(nèi)汁數(shù)器完成對(duì)脈沖的計(jì)數(shù),顯示器采用字符型液晶顯示器1602進(jìn)行顯示。系統(tǒng)原理框圖如圖2所示。系統(tǒng)工作過(guò)程:測(cè)量轉(zhuǎn)速的霍爾傳感器與機(jī)軸相連接,機(jī)軸每轉(zhuǎn)一周,產(chǎn)生一定的脈沖個(gè)數(shù),霍爾器件電路部分輸出,成為轉(zhuǎn)速計(jì)數(shù)器的計(jì)數(shù)脈沖。控制計(jì)數(shù)時(shí)間,即可實(shí)現(xiàn)計(jì)數(shù)器的計(jì)數(shù)值對(duì)應(yīng)機(jī)軸的轉(zhuǎn)速值。單片機(jī)CPU將數(shù)據(jù)處理后,通過(guò)LCD顯示出來(lái)。轉(zhuǎn)速的測(cè)量轉(zhuǎn)速傳感器由磁鋼、霍爾元件組成。將一非磁性圓盤固定裝在電機(jī)轉(zhuǎn)軸上,

32、圓盤邊緣等距離用環(huán)氧樹脂粘貼塊狀磁鋼,磁鋼采用永久磁[6]。</p><p>  圖1霍爾傳感器檢測(cè)信號(hào)圖</p><p>  2.3.3 方案對(duì)比</p><p>  方案一與方案二綜合進(jìn)行對(duì)比,發(fā)現(xiàn)方案一最少只需一粒磁片即可達(dá)到所需要求,簡(jiǎn)單方便,經(jīng)濟(jì)實(shí)惠,并易于操作。因此經(jīng)比較選擇方案一。</p><p>  3 基于霍爾傳感器的轉(zhuǎn)速測(cè)

33、量系統(tǒng)硬件設(shè)計(jì)</p><p>  3.1 轉(zhuǎn)速測(cè)量系統(tǒng)的硬件電路設(shè)計(jì)</p><p>  3.1.1 總體硬件設(shè)計(jì)</p><p>  使用單片機(jī)測(cè)量電機(jī)轉(zhuǎn)速的基本結(jié)構(gòu)如圖2所示。該系統(tǒng)包括霍爾傳感器、隔離整形電路、CPU、顯示電路、報(bào)警電路等部分。</p><p>  圖2 系統(tǒng)總體結(jié)構(gòu)圖</p><p>  基于

34、霍爾傳感器的速度測(cè)量系統(tǒng)工作過(guò)程是:測(cè)量轉(zhuǎn)速的霍爾傳感器和機(jī)軸同軸連接,機(jī)軸每轉(zhuǎn)一周,產(chǎn)生一定量的脈沖個(gè)數(shù),由霍爾器件電路部分輸出。經(jīng)光電耦合后,成為轉(zhuǎn)速計(jì)數(shù)器的計(jì)數(shù)脈沖。同時(shí)傳感器電路輸出幅度為12v的脈沖經(jīng)光電耦合后降為5v,保持同89C51邏輯電平相一致??刂朴?jì)數(shù)時(shí)間,即可實(shí)現(xiàn)計(jì)數(shù)器的計(jì)數(shù)值對(duì)應(yīng)機(jī)軸的轉(zhuǎn)速值。CPU將該值數(shù)據(jù)處理后,在LCD上顯示出來(lái)。一旦超速,CPU通過(guò)蜂鳴器發(fā)出報(bào)警信號(hào)[7]。</p><p

35、><b>  1、傳感器部分</b></p><p>  主要分為兩個(gè)部分。第一部分是利用霍爾器件將電機(jī)轉(zhuǎn)速轉(zhuǎn)化為脈沖信號(hào);第二個(gè)部分是使用光耦,將傳感器輸出的信號(hào)和單片機(jī)的計(jì)數(shù)電路兩個(gè)部分隔開,減少計(jì)數(shù)的干擾。</p><p>  用于測(cè)量的A44E集成霍爾開關(guān),磁鋼用直徑D=6.004mm,長(zhǎng)度為L(zhǎng)=3.032mm的釹鐵硼磁鋼。電源用直流,霍爾開關(guān)輸出由四位

36、半直流數(shù)字電壓表測(cè)量,磁感應(yīng)強(qiáng)度B用95A型集成霍爾元件測(cè)量[8]。</p><p>  圖3 霍爾片管腳 管腳接線</p><p><b>  2、計(jì)數(shù)器部分</b></p><p>  片內(nèi)計(jì)數(shù)方案是指采用單片機(jī)的內(nèi)部計(jì)數(shù)器完成對(duì)脈沖的計(jì)數(shù)過(guò)程。</p><p><b>  3、 處理器部分&

37、lt;/b></p><p>  處理器是單片機(jī),采用的是AT89C51單片機(jī)。</p><p><b>  4 、顯示部分</b></p><p>  顯示部分有兩個(gè)功能,在正常的情況下,通過(guò)LCD顯示當(dāng)前的頻率數(shù)值,當(dāng)電機(jī)的轉(zhuǎn)速超出一定的范圍后,蜂鳴器進(jìn)行報(bào)警。</p><p>  3.1.2 系統(tǒng)電路設(shè)計(jì)&l

38、t;/p><p>  實(shí)際測(cè)量時(shí),要把霍爾傳感器固定在直流測(cè)速電機(jī)的底板上,與霍爾探頭相對(duì)的電機(jī)軸上固定著一片磁鋼塊,電機(jī)每轉(zhuǎn)一周,霍爾傳感器便發(fā)出一個(gè)脈沖信號(hào),將此脈沖信號(hào)接到開發(fā)的多功能實(shí)驗(yàn)板上的P3.2上,設(shè)定T0定時(shí),每分鐘所計(jì)的進(jìn)入P3.2的脈沖個(gè)數(shù)即為直流電機(jī)的轉(zhuǎn)速。</p><p>  由于在虛擬仿真電路圖中,沒有電機(jī)及傳感器,所以就直接用一個(gè)脈沖信號(hào)代替,電路圖如圖4所示。&l

39、t;/p><p>  圖4 總體電路設(shè)計(jì)圖</p><p>  3.2 霍爾傳感器測(cè)量電路設(shè)計(jì)</p><p>  3.2.1 霍爾元件</p><p>  霍爾元件是一種基于霍爾效應(yīng)的磁傳感器。用它們可以檢測(cè)磁場(chǎng)及其變化,可在各種與磁場(chǎng)有關(guān)的場(chǎng)合中使用?;魻栐哂性S多優(yōu)點(diǎn),它們的結(jié)構(gòu)牢固,體積小,重量輕,壽命長(zhǎng),安裝方便,功耗小,頻率高(可達(dá)

40、1MHz),耐震動(dòng),不怕灰塵、油污、水汽及鹽霧等的污染或腐蝕[9]。</p><p>  A3144E系列單機(jī)高溫霍爾效應(yīng)集成傳感器是由穩(wěn)壓電源,霍爾電壓發(fā)生器,差分放大器,施密特觸發(fā)器和輸出放大器組成的磁敏傳感電路,其輸入為磁感應(yīng)強(qiáng)度,輸出是一個(gè)數(shù)字電壓信號(hào)。它是一種單磁極工作的磁敏電路,適用于矩形或者柱形磁體下工作。可用于汽車工業(yè)和軍事工程中。</p><p>  霍爾傳感器的外形圖和

41、管腳圖如圖5所示。磁場(chǎng)由磁鋼提供,所以霍爾傳感器和磁鋼需要配對(duì)使用。</p><p>  霍爾元件和磁鋼 管腳圖</p><p>  圖5 霍爾傳感器的外形圖</p><p>  3.2.2 霍爾傳感器測(cè)速原理</p><p>  測(cè)量電機(jī)轉(zhuǎn)速的第一步就是要將電機(jī)的轉(zhuǎn)速表示為單片機(jī)可以識(shí)別的脈沖

42、信號(hào),從而進(jìn)行脈沖計(jì)數(shù)。當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),帶動(dòng)傳感器運(yùn)動(dòng),產(chǎn)生對(duì)應(yīng)頻率的脈沖信號(hào),經(jīng)過(guò)信號(hào)處理后輸出到計(jì)數(shù)器或其他脈沖計(jì)數(shù)裝置,進(jìn)行轉(zhuǎn)速的測(cè)量。</p><p>  3.2.3 反相器74LS14</p><p>  74LS14是一個(gè)6反向器,引腳定義如圖6所示:A端為輸入端,Y端為輸出端,一片芯片一共6路,即1,3,5,9,11,13為輸入端,2,4,6,8,10,12為輸出端,輸出結(jié)果與

43、輸入結(jié)果反向。即如果輸入端為高電平,那么輸出為低電平。如果輸入低電平,輸出為高電平。</p><p><b>  圖6 反相器引腳圖</b></p><p>  3.2.4 光電耦合器</p><p>  光電耦合器是以光為媒介傳輸電信號(hào)的一種電一光一電轉(zhuǎn)換器件。它由發(fā)光源和受光器兩部分組成。把發(fā)光源和受光器組裝在同一密閉的殼體內(nèi),彼此間用透明

44、絕緣體隔離。發(fā)光源的引腳為輸入端,受光器的引腳為輸出端,常見的發(fā)光源為發(fā)光二極管,受光器為光敏二極管、光敏三極管等等。光電耦合器的種類較多,常見有光電二極管型、光電三極管型、光敏電阻型、光控金閘管型、光電達(dá)林頓型、集成電路型等。</p><p>  光電偶合器件(簡(jiǎn)稱光耦)是把發(fā)光器件(如發(fā)光二極體)和光敏器件(如光敏三極管)組裝在一起,通過(guò)光線實(shí)現(xiàn)耦合構(gòu)成電—光和光—電的轉(zhuǎn)換器件。在光電耦合器輸入端加電信號(hào)使發(fā)

45、光源發(fā)光,光的強(qiáng)度取決于激勵(lì)電流的大小,此光照射到封裝在一起的受光器上后,因光電效應(yīng)而產(chǎn)生了光電流,由受光器輸出端引出,這樣就實(shí)現(xiàn)了電一光一電的轉(zhuǎn)換[10]。</p><p>  光電耦合器分為很多種類,圖7所示為常用的三極管型光電耦合器原理圖。</p><p>  當(dāng)電信號(hào)送入光電耦合器的輸入端時(shí),發(fā)光二極體通過(guò)電流而發(fā)光,光敏元件受到光照后產(chǎn)生電流,CE導(dǎo)通;當(dāng)輸入端無(wú)信號(hào),發(fā)光二極體

46、不亮,光敏三極管截止,CE不通。對(duì)于數(shù)位量,當(dāng)輸入為低電平“0”時(shí),光敏三極管截止,輸出為高電平“1”;當(dāng)輸入為高電平“1”時(shí),光敏三極管飽和導(dǎo)通,輸出為低電平“ 0”。若基極有引出線則可滿足溫度補(bǔ)償、檢測(cè)調(diào)制要求。這種光耦合器性能較好,價(jià)格便宜,因而應(yīng)用廣泛。</p><p>  圖7 常用的光電耦合器內(nèi)部結(jié)構(gòu)圖</p><p>  光電耦合器的接線原理如圖8所示。</p>

47、<p>  圖8 光電耦合器接線原理</p><p><b>  3.2.5 蜂鳴器</b></p><p>  蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。</p><p>  在單片機(jī)應(yīng)用的設(shè)計(jì)上,很多方案都會(huì)用到蜂

48、鳴器,大部分都是使用蜂鳴器來(lái)做提示或報(bào)警。用I/O定時(shí)翻轉(zhuǎn)電平來(lái)產(chǎn)生驅(qū)動(dòng)波形的方式會(huì)比較麻煩一點(diǎn),必須利用定時(shí)器來(lái)做定時(shí),通過(guò)定時(shí)翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個(gè)波形就可以用來(lái)驅(qū)動(dòng)蜂鳴器了。比如為2500Hz的蜂鳴器的驅(qū)動(dòng),可以知道周期為400μs,這樣只需要驅(qū)動(dòng)蜂鳴器的I/O口每200μs翻轉(zhuǎn)一次電平就可以產(chǎn)生一個(gè)頻率為2500Hz,占空比為1/2duty的方波,再通過(guò)三極管放大就可以驅(qū)動(dòng)這個(gè)蜂鳴器了。由于蜂鳴器的工作電流

49、一般比較大,以致于單片機(jī)的I/O口是無(wú)法直接驅(qū)動(dòng)的,所以要利用放大電路來(lái)驅(qū)動(dòng),一般使用三極管來(lái)大放電流就可以了[11]。</p><p>  本設(shè)計(jì)中選用電磁式蜂鳴器作為報(bào)警器,如圖9所示。</p><p><b>  圖9 電磁式蜂鳴器</b></p><p>  3.3 單片機(jī)AT89C51</p><p>  單片

50、機(jī),全稱單片微型計(jì)算機(jī)(Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲(chǔ)器、定時(shí)/計(jì)數(shù)器(Timer/Counter)、各種輸入輸出接口等都集成在一塊集成電路芯片上的微型計(jì)算機(jī)。</p><p>  3.3.1 AT89C51芯片</p><p>  AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Fl

51、ash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。其引腳排列如圖10所示。</p>

52、<p>  圖10 AT89C51引腳圖</p><p><b>  3.3.2 定時(shí)器</b></p><p>  8051單片機(jī)內(nèi)部有兩個(gè)16位可編程定時(shí)器/計(jì)數(shù)器,記為T0和T1。他的工作方式可以通過(guò)指令對(duì)相應(yīng)的特殊功能寄存器編程來(lái)設(shè)定,或做定時(shí)器用,或作外部事件計(jì)時(shí)器用。定時(shí)器/計(jì)數(shù)器在硬件上有雙字節(jié)加法計(jì)數(shù)器TH和TL組成。做定時(shí)器使用時(shí),計(jì)數(shù)

53、脈沖由單片機(jī)內(nèi)部振蕩器提供,計(jì)數(shù)頻率位fosc/12,每個(gè)機(jī)器周期加1。</p><p>  8051單片機(jī)定時(shí)器/計(jì)數(shù)器的工作方式由特殊功能寄存器TMOD編程決定,定時(shí)器/計(jì)數(shù)器的啟動(dòng)運(yùn)行由特殊功能寄存器TCON編程控制。不論作定時(shí)器還是計(jì)數(shù)器,每當(dāng)產(chǎn)生溢出時(shí),都會(huì)向CPU發(fā)出中斷請(qǐng)求。單片機(jī)的定時(shí)器的工作原理是利用了寄存器的溢出來(lái)觸發(fā)中斷的,所以在定時(shí)器編程時(shí)要去算計(jì)數(shù)的增量,再根據(jù)單片機(jī)的晶振頻率,就可算出

54、確定的時(shí)間了。定時(shí)器主要用到兩個(gè)寄存器,一個(gè)為TCON,另一個(gè)為TMOD。TCON是用來(lái)控制定時(shí)器的啟動(dòng)與停止的。TMOD是用來(lái)設(shè)置定時(shí)器的模式的。</p><p>  8051單片機(jī)的定時(shí)器/計(jì)數(shù)器是可編程的,在進(jìn)行定時(shí)或技術(shù)操作前要進(jìn)行初始化編程。通常8051單片機(jī)定時(shí)器/計(jì)數(shù)器的初始化編程包括如下幾個(gè)步驟:1、確定工作方式,寄給方式控制寄存器TMOD寫入控制字。2、計(jì)算定時(shí)器/計(jì)數(shù)器初值,并將初值寫入TH和

55、TL。3、根據(jù)需要對(duì)中斷控制寄存器IE設(shè)置初值,決定是否開放定時(shí)器中斷。4、使運(yùn)行控制寄存器TCON中的TR0或TR1置“1”,啟動(dòng)定時(shí)器/計(jì)數(shù)器。</p><p>  在初始化過(guò)程中,要設(shè)置定時(shí)或計(jì)數(shù)的初始值,這時(shí)需要進(jìn)行一點(diǎn)運(yùn)算。由于計(jì)數(shù)器是加法計(jì)數(shù),并在溢出時(shí)產(chǎn)生中斷,因此初始值不能是所需要的計(jì)數(shù)模值,而是要從最大計(jì)數(shù)值減去計(jì)數(shù)模值所得才是應(yīng)當(dāng)設(shè)置的計(jì)數(shù)初始值。假設(shè)計(jì)數(shù)器的最大計(jì)數(shù)值為M,則計(jì)算初值X的公式

56、如下:</p><p>  計(jì)數(shù)方式: (3-1) </p><p>  定時(shí)方式: (3-2)</p><p>  3.3.3 外部中斷</p><p>  外部中斷:對(duì)某個(gè)中央處理機(jī)而言,它的外部非通道式裝置所引起的中斷稱為外部中斷。</p><p&

57、gt;  51單片機(jī)的外部中斷有兩種觸發(fā)方式可選:電平觸發(fā)和邊沿觸發(fā)。選擇電平觸發(fā)時(shí),單片機(jī)在每個(gè)機(jī)器周期檢查中斷源口線,檢測(cè)到低電平,即置位中斷請(qǐng)求標(biāo)志,向CPU請(qǐng)求中斷。選擇邊沿觸發(fā)方式時(shí),單片機(jī)在上一個(gè)機(jī)器周期檢測(cè)到中斷源口線為高電平,下一個(gè)機(jī)器周期檢測(cè)到低電平,即置位中斷標(biāo)志,請(qǐng)求中斷。</p><p>  應(yīng)用時(shí)需要特別注意的幾點(diǎn):</p><p>  電平觸發(fā)方式時(shí),中斷標(biāo)志寄

58、存器不鎖存中斷請(qǐng)求信號(hào)。要使電平觸發(fā)的中斷被CPU響應(yīng)并執(zhí)行,必須保證外部中斷源口線的低電平維持到中斷被執(zhí)行為止。因此當(dāng)CPU正在執(zhí)行同級(jí)中斷或更高級(jí)中斷期間,產(chǎn)生的外部中斷源(產(chǎn)生低電平)如果在該中斷執(zhí)行完畢之前撤銷(變?yōu)楦唠娖剑┝耍敲磳⒌貌坏巾憫?yīng),就如同沒發(fā)生一樣。同樣,當(dāng)CPU在執(zhí)行不可被中斷的指令(如RETI)時(shí),產(chǎn)生的電平觸發(fā)中斷如果時(shí)間太短,也得不到執(zhí)行。</p><p>  邊沿觸發(fā)方式時(shí),中斷標(biāo)

59、志寄存器鎖存了中斷請(qǐng)求。中斷口線上一個(gè)從高到低的跳變將記錄在標(biāo)志寄存器中,直到CPU響應(yīng)并轉(zhuǎn)向該中斷服務(wù)程序時(shí),由硬件自動(dòng)清除。因此當(dāng)CPU正在執(zhí)行同級(jí)中斷(甚至是外部中斷本身)或高級(jí)中斷時(shí),產(chǎn)生的外部中斷(負(fù)跳變)同樣將被記錄在中斷標(biāo)志寄存器中。在該中斷退出后,將被響應(yīng)執(zhí)行。如果你不希望這樣,必須在中斷退出之前,手工清除外部中斷標(biāo)志。</p><p>  中斷標(biāo)志可以手工清除。一個(gè)中斷如果在沒有得到響應(yīng)之前就已

60、經(jīng)被手工清除,則該中斷將被CPU忽略。就如同沒有發(fā)生一樣。</p><p><b>  3.4顯示電路設(shè)計(jì)</b></p><p>  3.4.1 1602字符型LCD簡(jiǎn)介</p><p>  字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。一般1602字符型液晶顯示

61、器實(shí)物如圖11所示:</p><p>  圖11 1602實(shí)物圖</p><p>  3.4.2 1602LCD的基本參數(shù)及引腳功能</p><p>  1、1602LCD類型</p><p>  1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖12

62、所示:</p><p>  圖12 1602LCD尺寸圖</p><p>  2、1602LCD主要技術(shù)參數(shù):</p><p>  顯示容量:16×2個(gè)字符</p><p>  芯片工作電壓:4.5—5.5V</p><p>  工作電流:2.0mA(5.0V)</p><p>  模

63、塊最佳工作電壓:5.0V</p><p>  字符尺寸:2.95×4.35(W×H)mm</p><p><b>  引腳功能說(shuō)明</b></p><p>  1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如下:</p><p>  第1腳:VSS為地電源。</p

64、><p>  第2腳:VDD接5V正電源。</p><p>  第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p>  第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p>  第5腳:R/W為

65、讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。</p><p>  第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p>

66、  第15腳:背光源正極。</p><p>  第16腳:背光源負(fù)極。</p><p><b>  4系統(tǒng)軟件設(shè)計(jì)</b></p><p><b>  4.1程序設(shè)計(jì)步驟</b></p><p>  第一步分析問(wèn)題,明確任務(wù)要求,對(duì)于復(fù)雜的問(wèn)題,還要講要解決的問(wèn)題抽象成數(shù)學(xué)模型,即用數(shù)學(xué)表達(dá)式來(lái)描述

67、。</p><p>  第二步確定算法,即根據(jù)實(shí)際問(wèn)題和指令系統(tǒng)的特點(diǎn)確定完成這一任務(wù)須經(jīng)歷的步驟。</p><p>  第三步根據(jù)所選擇的算法,確定內(nèi)存單元的分配:使用那些寄存器:程序運(yùn)行中的中間數(shù)據(jù)及結(jié)果存放在那些單元,以利于提高程序的效率和運(yùn)行速度:然后制定出解決問(wèn)題的步驟和順序,畫出程序的流程圖。</p><p>  第四步根據(jù)流程圖,編寫源程序。</

68、p><p>  第五步上機(jī)對(duì)原程序進(jìn)行編譯、調(diào)試。</p><p><b>  4.2程序流程圖</b></p><p>  電機(jī)轉(zhuǎn)速測(cè)量需要經(jīng)過(guò)的4個(gè)基本步驟:一是控制方式;二是確定計(jì)數(shù)方式;三是信號(hào)輸入方式;四是計(jì)數(shù)值的讀取;通過(guò)AT89C51,單片機(jī)完成對(duì)電機(jī)轉(zhuǎn)速脈沖計(jì)數(shù)的控制,讀取寄存器完成轉(zhuǎn)速頻率的確定。 而SGN電機(jī)脈沖信號(hào)連到引腳。計(jì)

69、數(shù)次數(shù)為3次,將3次結(jié)果取平均,從而提高計(jì)數(shù)的穩(wěn)定性和精確性。</p><p>  其測(cè)量過(guò)程是測(cè)量轉(zhuǎn)速的霍爾傳感器和電機(jī)機(jī)軸同軸連接,機(jī)軸每轉(zhuǎn)一周,產(chǎn)生一定量的脈沖個(gè)數(shù),由霍爾器件電路輸出。經(jīng)過(guò)電耦合器后,即經(jīng)過(guò)隔離整形電路后,成為轉(zhuǎn)數(shù)計(jì)數(shù)器的計(jì)數(shù)脈沖。同時(shí)霍爾傳感器電路輸出幅度為12V的脈沖經(jīng)光電耦合后降為5V,保持同單片機(jī)AT89C51邏輯電平相一致,控制計(jì)數(shù)時(shí)間,即可實(shí)現(xiàn)計(jì)數(shù)器的計(jì)數(shù)值對(duì)應(yīng)機(jī)軸的轉(zhuǎn)速值。

70、主CPU將該值數(shù)據(jù)處理后,在LCD液晶顯示器上顯示出來(lái)[12]。</p><p>  本系統(tǒng)采用AT89C51中的中斷對(duì)轉(zhuǎn)速脈沖計(jì)數(shù)。定時(shí)器T0工作于定時(shí)方式,工作于方式1。每到1s讀一次外部中斷計(jì)數(shù)值,此值即為脈沖信號(hào)的頻率,根據(jù)式(4-1)可計(jì)算出電機(jī)的轉(zhuǎn)速。</p><p>  當(dāng)直流電機(jī)通過(guò)傳動(dòng)部分帶圓盤旋轉(zhuǎn)時(shí),霍爾傳感器根據(jù)圓盤上得磁片獲得一系列脈沖信號(hào)。這些脈沖信號(hào)通過(guò)單片機(jī)系

71、統(tǒng)定時(shí)/計(jì)數(shù)器計(jì)數(shù),定時(shí)器T0定時(shí)。定時(shí)器T0完成100次溢出中斷的時(shí)間T除以測(cè)得的脈沖數(shù)m,經(jīng)過(guò)單位換算,就可以算得直流電機(jī)旋轉(zhuǎn)的速度。</p><p>  直流電機(jī)轉(zhuǎn)速計(jì)算公式:n=60·m/(N1·T·N)(rpm) (4-1)</p><p>  其中:n為直流電機(jī)轉(zhuǎn)速,N為柵格數(shù),N1為T0中斷次數(shù),m為在規(guī)定時(shí)間內(nèi)測(cè)得的脈

72、沖數(shù),T為定時(shí)器T0定時(shí)溢出時(shí)間[13]。</p><p>  4.2.1主程序流程圖</p><p>  主程序工作過(guò)程如下:</p><p>  先進(jìn)行初始化設(shè)置各定時(shí)器初值,然后判斷是否啟動(dòng)系統(tǒng)進(jìn)行測(cè)量。如果是,就啟動(dòng)系統(tǒng)運(yùn)行。如果不是就等待啟動(dòng)。啟動(dòng)系統(tǒng)后,霍爾傳感器檢測(cè)脈沖到來(lái)后,啟動(dòng)外部中斷,每來(lái)一個(gè)脈沖中斷一次,記錄脈沖個(gè)數(shù)。同時(shí)啟動(dòng)T0定時(shí)器工作,每

73、1秒定時(shí)中斷一次,讀取記錄的脈沖個(gè)數(shù),即電機(jī)轉(zhuǎn)速。連續(xù)采樣三次,取平均值記為一次轉(zhuǎn)速值。再進(jìn)行數(shù)值的判斷,若數(shù)值高于5000rpm則報(bào)警并返回初始化階段,否則就進(jìn)行正常速度液晶顯示。</p><p><b>  圖13主流程圖</b></p><p>  4.2.2中斷服務(wù)流程圖 </p><p>  在處于中斷服務(wù)程序階段,首先進(jìn)行關(guān)中斷設(shè)置

74、。其次進(jìn)行對(duì)位進(jìn)行的脈沖個(gè)數(shù)計(jì)數(shù)的數(shù)值讀取。再次對(duì)、T0進(jìn)行賦初值并且進(jìn)行關(guān)中斷設(shè)置。最后進(jìn)行中斷返回。</p><p><b>  1、外部計(jì)數(shù)中斷</b></p><p>  圖14 外部中斷流程圖 </p><p><b>  2、定時(shí)器中斷</b></p><p&

75、gt;  圖15 T0中斷流程圖</p><p><b>  4.3軟件程序設(shè)計(jì)</b></p><p>  4.3.1主程序設(shè)計(jì)</p><p>  主程序在對(duì)定時(shí)器、計(jì)數(shù)器、堆棧等進(jìn)行初始化后即判斷標(biāo)志位是否為1,如果為1,說(shuō)明要求對(duì)數(shù)據(jù)進(jìn)行計(jì)算處理,首先將標(biāo)志位清零,以保證下次能正常判斷,然后進(jìn)入數(shù)據(jù)處理程序,由于這里的閘門時(shí)間為1s,而

76、顯示要求為轉(zhuǎn)/分,因此,要將測(cè)到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換的方法是將測(cè)得的數(shù)據(jù)乘以60,但由于轉(zhuǎn)軸上安裝有4只磁鋼,每旋轉(zhuǎn)一周可以得到4個(gè)脈沖,因此,要將測(cè)得的數(shù)據(jù)除以4,所以綜合起來(lái),將測(cè)得的數(shù)據(jù)乘以60/4=15即可得到每分鐘的轉(zhuǎn)速。計(jì)算得到的結(jié)果是二進(jìn)制的整數(shù),要將數(shù)據(jù)送往顯示緩沖區(qū)需要將該數(shù)轉(zhuǎn)化為BCD碼。運(yùn)算得到的是壓縮BCD碼,需要將其轉(zhuǎn)換為非壓縮BCD碼,從標(biāo)號(hào)CBCD開始的一段程序即作了這樣的處理[14]。</p>

77、<p>  定時(shí)器T0用作4ms定時(shí)發(fā)生器,在定時(shí)中斷程序中進(jìn)行數(shù)碼管的動(dòng)態(tài)掃描,同時(shí)產(chǎn)生1s的閘門信號(hào)。1s閘門信號(hào)的產(chǎn)生是通過(guò)一個(gè)計(jì)數(shù)器Count,每次中斷時(shí)間為4ms,每計(jì)250次即為1s,到了1s后,即清除計(jì)數(shù)器Count,然后關(guān)閉作為計(jì)數(shù)器用的INT0,讀出TH0、TL0中的數(shù)值,分別送入SpCount和SpCount+1單元,將T0中的值清空,置標(biāo)志位為1,要求主程序進(jìn)行速度值的計(jì)算。這里還有一個(gè)細(xì)節(jié),用作1s

78、閘門信號(hào)產(chǎn)生的Count每次中斷都會(huì)加1,而INT0卻有一個(gè)周期是被關(guān)閉的,因此,計(jì)數(shù)值是251而不是250。</p><p>  系統(tǒng)采用外部晶振,系統(tǒng)時(shí)鐘SYSCLK等于18432000,T0定時(shí)1ms,初始化時(shí)TL0=-(SYSCLK/1000)。等待1s到,輸出轉(zhuǎn)速脈沖個(gè)數(shù)N,計(jì)算電機(jī)轉(zhuǎn)速值。將1s內(nèi)的轉(zhuǎn)速值換算成1 min內(nèi)的電機(jī)轉(zhuǎn)速值,并在LCD上輸出測(cè)量結(jié)果[15]。</p><

79、p>  /*------------------------主函數(shù)-------------------------*/</p><p>  void main()</p><p><b>  {</b></p><p>  int_all();//全局初始化</p><p><b>  while(1)

80、</b></p><p><b>  {</b></p><p>  disp_count();//數(shù)據(jù)處理</p><p>  if(zhuan>5000) //轉(zhuǎn)速警告</p><p><b>  {</b></p><p>  warning=1;&

81、lt;/p><p><b>  }</b></p><p>  if(zhuan<4999)</p><p><b>  {</b></p><p>  warning=0;</p><p><b>  }</b></p><p&g

82、t;  write_command(0x80);</p><p>  for (i=0;i<sizeof(display)-1;i++)</p><p><b>  {</b></p><p>  write_data(display[i]); //LCD顯示</p><p><b>  delay(5)

83、;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.3.2中斷服務(wù)程序設(shè)計(jì)</p><p><b>  1、外部計(jì)數(shù)中斷<

84、/b></p><p>  /*-------------------外部中斷0計(jì)數(shù)程序-------------------*/</p><p>  void counter(void) interrupt 0 </p><p><b>  {</b></p><p>  EX1=0;//關(guān)外部中斷

85、0</p><p>  count++;//計(jì)數(shù)加1</p><p>  if(count==4) //4次循環(huán)為電機(jī)轉(zhuǎn)一圈</p><p><b>  {</b></p><p>  count=1; //初始化計(jì)數(shù)</p><p>  z++;//轉(zhuǎn)圈計(jì)數(shù)加1</p><p

86、><b>  }</b></p><p>  EX1=1;//開外部中斷0</p><p><b>  }</b></p><p><b>  2、定時(shí)器中斷</b></p><p>  /*-----------------內(nèi)部中斷0計(jì)時(shí)計(jì)數(shù)程序-----

87、------------*/</p><p>  void Time0(void) interrupt 2 using 0</p><p><b>  {</b></p><p>  TH0=0x4c; //50ms定時(shí)</p><p><b>  TL0=0x00;</b>&

88、lt;/p><p><b>  msec++;</b></p><p>  if(msec==20) //50*20=1S</p><p><b>  {</b></p><p><b>  msec=0;</b></p><p><

89、b>  zhuan=z;</b></p><p><b>  z=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.3.3 顯示程序設(shè)計(jì)</p><p>  液晶顯示模

90、塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。</p><p>  在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無(wú)需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。</p><p>  向LCD輸入的數(shù)據(jù)有兩種,一種是指令,一種

91、是數(shù)據(jù)。指令是負(fù)責(zé)初始化LCD與LCD顯示字符是什么位置。數(shù)據(jù)是告訴該顯示什么。命令與數(shù)據(jù)是RS端的高低電平來(lái)確定。數(shù)據(jù)開始的時(shí)候是由LCDCS高電平開始,低電平結(jié)束。</p><p><b>  圖16 顯示流程圖</b></p><p>  /*--------------------向LCD1602寫命令--------------------*/</p&

92、gt;<p>  void write_command(uchar command)</p><p><b>  {</b></p><p>  rs=0; //選擇寫命令</p><p>  P0=command; //向LCD寫命令</p><p>  lcdcs=1;//信號(hào)使能端高電平</

93、p><p>  lcdcs=0; //信號(hào)使能端低電平</p><p><b>  }</b></p><p>  /*-------------------------------------------------------*/</p><p>  /*--------------------向LCD1602寫數(shù)據(jù)--

94、------------------*/</p><p>  void write_data(uchar data0)</p><p><b>  {</b></p><p>  rs=1; //選擇寫數(shù)據(jù)</p><p>  P0=data0; //向LCD寫數(shù)據(jù)</p><p>  lcdcs

95、=1; //信號(hào)使能端高電平</p><p>  lcdcs=0;//信號(hào)使能端低電平</p><p><b>  }</b></p><p>  4.3.4 報(bào)警程序設(shè)計(jì)</p><p>  蜂鳴器發(fā)聲原理是電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)來(lái)驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī)IO引腳輸出的電

96、流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,因此需要增加一個(gè)電流放大的電路。</p><p>  蜂鳴器程序設(shè)計(jì)思路:本程序通過(guò)在輸出一個(gè)音頻范圍的方波,驅(qū)動(dòng)實(shí)驗(yàn)板上的蜂鳴器發(fā)出蜂鳴聲,其中Delay延時(shí)子程序的作用是使輸出的方波頻率在人耳朵聽覺能力之內(nèi)的20kHz以下,如果沒有這個(gè)延時(shí)程序的話,輸出的頻率將大大超出人耳朵的聽覺能力,我們將不能聽到聲音。更改延時(shí)常數(shù),可以改變輸出頻率,也就可以調(diào)整蜂鳴器的

97、音調(diào)。代碼為:</p><p>  if(zhuan>5000)</p><p><b>  {</b></p><p>  warning=0;</p><p><b>  }</b></p><p>  if(zhuan<4999)</p>&l

98、t;p><b>  {</b></p><p>  warning=1;</p><p><b>  }</b></p><p>  4.3.5 轉(zhuǎn)速程序的設(shè)計(jì)</p><p>  測(cè)速的方法決定了測(cè)速信號(hào)的硬件連接,測(cè)速實(shí)際上就是測(cè)頻,因此,頻率測(cè)量的一些原則同樣適用于測(cè)速。 通常,

99、可以用計(jì)數(shù)法、測(cè)脈寬法和等精度法來(lái)進(jìn)行測(cè)試。</p><p>  所謂計(jì)數(shù)法,就是給定一個(gè)閘門時(shí)間,在閘門時(shí)間內(nèi)計(jì)數(shù)輸入的脈沖個(gè)數(shù);測(cè)脈寬法是利用待測(cè)信號(hào)的脈寬來(lái)控制計(jì)數(shù)門,對(duì)一個(gè)高精度的高頻計(jì)數(shù)信號(hào)進(jìn)行計(jì)數(shù)。由于閘門與被測(cè)信號(hào)不能同步,因此,這兩種方法都存在±1誤差的問(wèn)題,第一種方法適用于信號(hào)頻率高時(shí)使用,第二種方法則在信號(hào)頻率低時(shí)使用。等精度法則對(duì)高、低頻信號(hào)都有很好的適應(yīng)性[16]。</p&

100、gt;<p>  /*-----------------------數(shù)據(jù)處理------------------------*/</p><p>  void disp_count()</p><p><b>  {</b></p><p>  display[9]=(zhuan/1000+'0'); /轉(zhuǎn)換轉(zhuǎn)速

101、的千位</p><p>  display[10]=(zhuan/100%10+'0'); //轉(zhuǎn)換轉(zhuǎn)速的百位</p><p>  display[11]=(zhuan/10%10+'0'); //轉(zhuǎn)換轉(zhuǎn)速的十位</p><p>  display[12]=(zhuan%10+'0'); //轉(zhuǎn)換轉(zhuǎn)速的十位<

102、/p><p><b>  }</b></p><p><b>  5軟件調(diào)試</b></p><p>  5.1 Proteus及Keil軟件簡(jiǎn)介</p><p>  5.1.1 Proteus軟件</p><p>  Proteus軟件是一種低投資的電子設(shè)計(jì)自動(dòng)化軟件,提供可仿

103、真數(shù)字和模擬、交流和直流等數(shù)千種元器件和多達(dá)30多個(gè)元件庫(kù)。Proteus軟件提供多種現(xiàn)實(shí)存在的虛擬儀器儀表。此外,Proteus還提供圖形顯示功能,可以將線路上變化的信號(hào),以圖形的方式實(shí)時(shí)地顯示出來(lái)。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗,盡可能減少儀器對(duì)測(cè)量結(jié)果的影響,Proteus軟件提供豐富的測(cè)試信號(hào)用于電路的測(cè)試。這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。提供Schematic Drawing、SPI

104、CE仿真與PCB設(shè)計(jì)功能,同時(shí)可以仿真單片機(jī)和周邊設(shè)備,可以仿真51系列、AVR、PIC等常用的MCU,并提供周邊設(shè)備的仿真,例如373、led、示波器等。Proteus提供了大量的元件庫(kù),有RAM、ROM、鍵盤、馬達(dá)、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,編譯方面支持Keil和MPLAB等編譯器。</p><p>  一臺(tái)計(jì)算機(jī)、一套電子仿真軟件,在加上一本虛擬實(shí)驗(yàn)教程,就可相當(dāng)于一個(gè)設(shè)備

105、先進(jìn)的實(shí)驗(yàn)室。以虛代實(shí)、以軟代硬,就建立一個(gè)完善的虛擬實(shí)驗(yàn)室。在計(jì)算機(jī)上學(xué)習(xí)電工基礎(chǔ),模擬電路、數(shù)字電路、單片機(jī)應(yīng)用系統(tǒng)等課程,并進(jìn)行電路設(shè)計(jì)、仿真、調(diào)試等[17]。</p><p>  5.1.2 Keil軟件</p><p>  KeilC51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng)。與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)

106、勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開發(fā),體會(huì)更加深刻。 KeilC51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。</p><p>  C51工具包的整體結(jié)構(gòu)如圖17所示,其中Uvision與

107、Ishell分別是C51 for Windows和For Dos的集成開發(fā)環(huán)境(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或TSco

108、pe51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接 對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。</p><p>  圖17 C51工具包的整體結(jié)構(gòu)圖</p><p>  5.2 應(yīng)用Keil軟件進(jìn)行程序調(diào)試</p><p>  軟件的調(diào)試必須在開發(fā)系統(tǒng)的支持下進(jìn)行。先分別調(diào)試通過(guò)各個(gè)模塊程序,然后調(diào)試中斷服務(wù)程序,最后調(diào)試主程序,將各部分連接進(jìn)行調(diào)試

109、。調(diào)試的范圍可以由小到大,逐步增加,必要的中間信號(hào)可以先做設(shè)定。通常交叉使用單步運(yùn)行,斷點(diǎn)運(yùn)行,連續(xù)運(yùn)行等多種方式,每次執(zhí)行完畢后,檢查CPU執(zhí)行現(xiàn)場(chǎng),RAM的有關(guān)內(nèi)容,I/O接口的狀態(tài)等。發(fā)現(xiàn)一個(gè)問(wèn)題,解決一個(gè)問(wèn)題,直至全部通過(guò)。</p><p>  首先新建一個(gè)工程項(xiàng)目文件;其次為工程選擇目標(biāo)器件;再次為工程項(xiàng)目設(shè)置軟硬件調(diào)試環(huán)境;并創(chuàng)建源程序文件并輸入程序代碼,及保存創(chuàng)建的源程序項(xiàng)目文件;最后把源程序文件添

110、加到項(xiàng)目中[18]。</p><p>  5.3 Proteus軟件仿真</p><p>  在Proteus軟件中畫出原理圖,向單片機(jī)中加入需要調(diào)試的程序的HEX文件,便可以進(jìn)行調(diào)試了。</p><p>  5.3.1 仿真步驟</p><p>  利用Proteus實(shí)現(xiàn)單片機(jī)系統(tǒng)開發(fā)過(guò)程一般分為四步:</p><p&g

111、t;  1、在Proteus平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計(jì)、選擇元器件、接插件、連接電路和電氣檢測(cè)等(簡(jiǎn)稱Proteus電路設(shè)計(jì));</p><p>  2、在Proteus平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)源程序設(shè)計(jì)、編輯、匯編編譯、調(diào)試,最后生成目標(biāo)代碼文件(*.hex)(簡(jiǎn)稱Proteus軟件設(shè)計(jì));</p><p>  再次在Proteus平臺(tái)上將目標(biāo)代碼文件加載到單片機(jī)系統(tǒng)中,并實(shí)現(xiàn)單片機(jī)系統(tǒng)的

112、實(shí)時(shí)交互、協(xié)同仿真(簡(jiǎn)稱Proteus仿真);</p><p>  最后仿真正確后,安裝實(shí)際單片機(jī)系統(tǒng)電路,并將目標(biāo)代碼文件(*.hex)下載到實(shí)際單片機(jī)中運(yùn)行、調(diào)試。若出現(xiàn)問(wèn)題,可與Proteus設(shè)計(jì)與仿真相互配合調(diào)試,直至運(yùn)行成功(簡(jiǎn)稱實(shí)際產(chǎn)品安裝、運(yùn)行與調(diào)試)。筆者的實(shí)踐證明:按照Proteus仿真通過(guò)的設(shè)計(jì)來(lái)安裝的實(shí)際系統(tǒng),只要安裝正確、元器件無(wú)誤,焊接牢靠,基本都能順利通過(guò)[19]。</p>

113、<p>  5.3.2 仿真實(shí)例</p><p>  第一步,進(jìn)行參數(shù)的選定。本系統(tǒng)主芯片采用的是AT89C51,因此選定該型號(hào)。</p><p>  圖18 芯片型號(hào)選擇</p><p>  第二步,在Option For Target Target 1中選擇生成HEX文件。</p><p>  圖19 HEX文件生成<

114、/p><p>  第三步,運(yùn)行的第一步,點(diǎn)擊運(yùn)行程序。確認(rèn)運(yùn)行程序無(wú)誤,即沒有錯(cuò)誤和警告。</p><p>  圖20 確認(rèn)程序無(wú)誤</p><p>  第四步,點(diǎn)擊生成工程文件并生成HEX文件。</p><p>  圖21 已生成HEX文件</p><p>  第五步,將程序加入芯片,在Proteus軟件里仿真</

115、p><p>  當(dāng)轉(zhuǎn)速為0~5000r/min時(shí),1206顯示正常轉(zhuǎn)速,蜂鳴器不工作,如圖22所示:</p><p><b>  圖22 顯示圖</b></p><p>  當(dāng)轉(zhuǎn)速超過(guò)5000r/min時(shí),蜂鳴器報(bào)警,如圖所示:</p><p><b>  圖23 顯示圖</b></p>

116、<p>  5.4 硬件軟件聯(lián)合調(diào)試</p><p>  5.4.1 聯(lián)調(diào)步驟</p><p>  第一步安裝Keil與Proteus;</p><p>  第二步把Proteus安裝目錄下VDM51.dll文件復(fù)制到Keil安裝目錄的C51BIN目錄中;</p><p>  第三步修改Keil安裝目錄下Tools.ini文件,在C

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論