2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  學士學位論文(設(shè)計)</p><p> 論文題目基于霍爾傳感器的轉(zhuǎn)速測量研究</p><p><b>  目錄</b></p><p>  學位論文(設(shè)計)誠信承諾書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è)計任務(wù)與要求2</p><p>  2 課題方案設(shè)計3</p><p>  2.1 系統(tǒng)總體設(shè)計要求3</p><p>  2.2 系統(tǒng)模塊結(jié)構(gòu)論證3</p><p>  2.3 轉(zhuǎn)速測量方

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

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

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

7、時間,即可實現(xiàn)對電機轉(zhuǎn)速的測量。在顯示電路設(shè)計中,通過1602實現(xiàn)在LCD上直觀地顯示電機的轉(zhuǎn)速值。</p><p>  關(guān)鍵詞:轉(zhuǎn)速測量 霍爾傳感器 AT89C51 單片機 LCD </p><p>  中圖分類號: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)速測量研究</p><p><b>  1 緒論</b></p

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

42、信號,從而進行脈沖計數(shù)。當電機轉(zhuǎn)動時,帶動傳感器運動,產(chǎn)生對應(yīng)頻率的脈沖信號,經(jīng)過信號處理后輸出到計數(shù)器或其他脈沖計數(shù)裝置,進行轉(zhuǎn)速的測量。</p><p>  3.2.3 反相器74LS14</p><p>  74LS14是一個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>  光電耦合器是以光為媒介傳輸電信號的一種電一光一電轉(zhuǎn)換器件。它由發(fā)光源和受光器兩部分組成。把發(fā)光源和受光器組裝在同一密閉的殼體內(nèi),彼此間用透明

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

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

46、不亮,光敏三極管截止,CE不通。對于數(shù)位量,當輸入為低電平“0”時,光敏三極管截止,輸出為高電平“1”;當輸入為高電平“1”時,光敏三極管飽和導通,輸出為低電平“ 0”。若基極有引出線則可滿足溫度補償、檢測調(diào)制要求。這種光耦合器性能較好,價格便宜,因而應(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)用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。</p><p>  在單片機應(yīng)用的設(shè)計上,很多方案都會用到蜂

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

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

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

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

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

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

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

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

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

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

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

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

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

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

62、所示:</p><p>  圖12 1602LCD尺寸圖</p><p>  2、1602LCD主要技術(shù)參數(shù):</p><p>  顯示容量:16×2個字符</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>  引腳功能說明</b></p><p>  1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下:</p><p>  第1腳:VSS為地電源。</p

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

87、------------*/</p><p>  void Time0(void) interrupt 2 using 0</p><p><b>  {</b></p><p>  TH0=0x4c; //50ms定時</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è)計</p><p>  液晶顯示模

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

91、是數(shù)據(jù)。指令是負責初始化LCD與LCD顯示字符是什么位置。數(shù)據(jù)是告訴該顯示什么。命令與數(shù)據(jù)是RS端的高低電平來確定。數(shù)據(jù)開始的時候是由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;//信號使能端高電平</

93、p><p>  lcdcs=0; //信號使能端低電平</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; //信號使能端高電平</p><p>  lcdcs=0;//信號使能端低電平</p><p><b>  }</b></p><p>  4.3.4 報警程序設(shè)計</p><p>  蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的,因此需要一定的電流才能驅(qū)動它,單片機IO引腳輸出的電

96、流較小,單片機輸出的TTL電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。</p><p>  蜂鳴器程序設(shè)計思路:本程序通過在輸出一個音頻范圍的方波,驅(qū)動實驗板上的蜂鳴器發(fā)出蜂鳴聲,其中Delay延時子程序的作用是使輸出的方波頻率在人耳朵聽覺能力之內(nèi)的20kHz以下,如果沒有這個延時程序的話,輸出的頻率將大大超出人耳朵的聽覺能力,我們將不能聽到聲音。更改延時常數(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è)計</p><p>  測速的方法決定了測速信號的硬件連接,測速實際上就是測頻,因此,頻率測量的一些原則同樣適用于測速。 通常,

99、可以用計數(shù)法、測脈寬法和等精度法來進行測試。</p><p>  所謂計數(shù)法,就是給定一個閘門時間,在閘門時間內(nèi)計數(shù)輸入的脈沖個數(shù);測脈寬法是利用待測信號的脈寬來控制計數(shù)門,對一個高精度的高頻計數(shù)信號進行計數(shù)。由于閘門與被測信號不能同步,因此,這兩種方法都存在±1誤差的問題,第一種方法適用于信號頻率高時使用,第二種方法則在信號頻率低時使用。等精度法則對高、低頻信號都有很好的適應(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軟件簡介</p><p>  5.1.1 Proteus軟件</p><p>  Proteus軟件是一種低投資的電子設(shè)計自動化軟件,提供可仿

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

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

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

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

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

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

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

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

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

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

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

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

115、p><p>  當轉(zhuǎn)速為0~5000r/min時,1206顯示正常轉(zhuǎn)速,蜂鳴器不工作,如圖22所示:</p><p><b>  圖22 顯示圖</b></p><p>  當轉(zhuǎn)速超過5000r/min時,蜂鳴器報警,如圖所示:</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文件復制到Keil安裝目錄的C51BIN目錄中;</p><p>  第三步修改Keil安裝目錄下Tools.ini文件,在C

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論