第13章 應(yīng)用設(shè)計_第1頁
第13章 應(yīng)用設(shè)計_第2頁
第13章 應(yīng)用設(shè)計_第3頁
第13章 應(yīng)用設(shè)計_第4頁
第13章 應(yīng)用設(shè)計_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第1313章章 AT89S51AT89S51單片機的應(yīng)用單片機的應(yīng)用 設(shè)計與調(diào)試設(shè)計與調(diào)試1內(nèi)容概要內(nèi)容概要介紹介紹AT89S51單片機應(yīng)用系統(tǒng)的設(shè)計。單片機應(yīng)用系統(tǒng)的設(shè)計。主要包括:應(yīng)用系統(tǒng)的設(shè)計步驟和方法以及應(yīng)用系統(tǒng)設(shè)計主要包括:應(yīng)用系統(tǒng)的設(shè)計步驟和方法以及應(yīng)用系統(tǒng)設(shè)計舉例。此外,還介紹了目前流行的單片機應(yīng)用系統(tǒng)的仿真開舉例。此外,還介紹了目前流行的單片機應(yīng)用系統(tǒng)的仿真開發(fā)工具以及如何利用仿真開發(fā)工具對單片機應(yīng)用系統(tǒng)進行開發(fā)工具以及如何利用仿真開發(fā)工具對單片機應(yīng)用系統(tǒng)進行開發(fā)調(diào)試。發(fā)調(diào)試。對單片機應(yīng)用系統(tǒng)的抗干擾和可靠性設(shè)計作以介紹。對單片機應(yīng)用系統(tǒng)的抗干擾和可靠性設(shè)計作以介紹。 213

2、.1 單片機應(yīng)用系統(tǒng)的設(shè)計步驟單片機應(yīng)用系統(tǒng)的設(shè)計步驟 應(yīng)用系統(tǒng)指以單片機為核心,配以一定的外圍電路和軟應(yīng)用系統(tǒng)指以單片機為核心,配以一定的外圍電路和軟件、能實現(xiàn)用戶所要求的測控功能。件、能實現(xiàn)用戶所要求的測控功能。 系統(tǒng)的設(shè)計,首先需深入細致的需求分析,周密而科學(xué)的系統(tǒng)的設(shè)計,首先需深入細致的需求分析,周密而科學(xué)的方案論證。應(yīng)用系統(tǒng)設(shè)計,一般可分為方案論證。應(yīng)用系統(tǒng)設(shè)計,一般可分為4階段。階段。(1)明確任務(wù)和需求分析以及擬定設(shè)計方案階段)明確任務(wù)和需求分析以及擬定設(shè)計方案階段 明確系統(tǒng)所要完成的任務(wù),是系統(tǒng)設(shè)計工作的基礎(chǔ),系統(tǒng)明確系統(tǒng)所要完成的任務(wù),是系統(tǒng)設(shè)計工作的基礎(chǔ),系統(tǒng)設(shè)計方案正確性

3、保證。設(shè)計方案正確性保證。3 需求分析主要包括:需求分析主要包括:被測控參數(shù)的形式(電量、非電量、被測控參數(shù)的形式(電量、非電量、模擬量、數(shù)字量等)、范圍、性能指標(biāo)、系統(tǒng)功能、工作環(huán)模擬量、數(shù)字量等)、范圍、性能指標(biāo)、系統(tǒng)功能、工作環(huán)境、顯示、報警、打印要求等。境、顯示、報警、打印要求等。 擬定設(shè)計方案是需求分析,先確定大致方向和準(zhǔn)備采用的擬定設(shè)計方案是需求分析,先確定大致方向和準(zhǔn)備采用的手段。注意,在進行設(shè)計方案確定的時候,簡單的方法往往手段。注意,在進行設(shè)計方案確定的時候,簡單的方法往往可以解決大問題,切忌可以解決大問題,切忌“將簡單的問題復(fù)雜化將簡單的問題復(fù)雜化”(2)硬件和軟件設(shè)計階段

4、)硬件和軟件設(shè)計階段 根據(jù)擬定的設(shè)計方案,設(shè)計出相應(yīng)的系統(tǒng)硬件電路。硬件根據(jù)擬定的設(shè)計方案,設(shè)計出相應(yīng)的系統(tǒng)硬件電路。硬件設(shè)計的前提是必須能夠完成系統(tǒng)的要求和保證可靠性。在硬設(shè)計的前提是必須能夠完成系統(tǒng)的要求和保證可靠性。在硬件設(shè)計時,如果能夠?qū)⒂布娐吩O(shè)計與軟件設(shè)計結(jié)合起來考件設(shè)計時,如果能夠?qū)⒂布娐吩O(shè)計與軟件設(shè)計結(jié)合起來考慮效果會更好。因為當(dāng)有些問題在硬件電路中無法完成時,慮效果會更好。因為當(dāng)有些問題在硬件電路中無法完成時,4可直接由軟件來完成(如某些軟件濾波、校準(zhǔn)功能等);當(dāng)可直接由軟件來完成(如某些軟件濾波、校準(zhǔn)功能等);當(dāng)軟件編寫程序很麻煩的時候,通過稍稍改動硬件電路(或盡軟件編寫

5、程序很麻煩的時候,通過稍稍改動硬件電路(或盡可能不改動)可能會使軟件變得十分簡單。另外在另一些要可能不改動)可能會使軟件變得十分簡單。另外在另一些要求系統(tǒng)實時性強、響應(yīng)速度快的場合,則往往必須用硬件代求系統(tǒng)實時性強、響應(yīng)速度快的場合,則往往必須用硬件代替軟件來完成某些功能。所以在硬件設(shè)計時,最好能與軟件替軟件來完成某些功能。所以在硬件設(shè)計時,最好能與軟件的設(shè)計結(jié)合起來,統(tǒng)一考慮,合理安排軟、硬件的比例,使的設(shè)計結(jié)合起來,統(tǒng)一考慮,合理安排軟、硬件的比例,使系統(tǒng)具有最佳的性系統(tǒng)具有最佳的性/價比。當(dāng)硬件電路設(shè)計完成后,就可以進價比。當(dāng)硬件電路設(shè)計完成后,就可以進行硬件電路板的繪制和焊接工作了。行

6、硬件電路板的繪制和焊接工作了。 接下來就是軟件設(shè)計。正確的編程就是根據(jù)需求分析,先接下來就是軟件設(shè)計。正確的編程就是根據(jù)需求分析,先繪制出軟件的流程圖,十分重要。繪制往往不能一次成功,繪制出軟件的流程圖,十分重要。繪制往往不能一次成功,通常需進行多次修改。通常需進行多次修改。 5 流程圖的繪制可按照由簡到繁的方式再逐步細化,先繪制流程圖的繪制可按照由簡到繁的方式再逐步細化,先繪制系統(tǒng)大體上需要執(zhí)行的程序模塊,然后將這些模塊按照要求系統(tǒng)大體上需要執(zhí)行的程序模塊,然后將這些模塊按照要求組合在一起(如主程序、子程序以及中斷服務(wù)子程序等)。組合在一起(如主程序、子程序以及中斷服務(wù)子程序等)。 在大方向

7、沒有問題后,再將每個模塊進行細化,最后形成在大方向沒有問題后,再將每個模塊進行細化,最后形成軟件流程圖,這樣程序的編寫速度就會很快,同時程序流程軟件流程圖,這樣程序的編寫速度就會很快,同時程序流程圖還會為后面的調(diào)試工作帶來很多方便,如程序調(diào)試中某個圖還會為后面的調(diào)試工作帶來很多方便,如程序調(diào)試中某個模塊不正常,就可以通過流程圖來查找問題的原因。模塊不正常,就可以通過流程圖來查找問題的原因。軟件編軟件編寫者一定要克服不繪制流程圖直接在計算機上編寫程序的習(xí)寫者一定要克服不繪制流程圖直接在計算機上編寫程序的習(xí)慣。慣。 設(shè)計者也可在上述軟硬件設(shè)計完成后,先使用單片機的EDA軟件仿真開發(fā)工具Proteu

8、s,來進行仿真設(shè)計。 用Proteus設(shè)計的系統(tǒng)與用戶樣機在硬件上無任何聯(lián)系,是一種完全用軟件手段完全用軟件手段來對單片機硬件電路和軟件來進行設(shè)計、開發(fā)與仿真調(diào)試的開發(fā)工具。如果先在軟件仿真工具的環(huán)境下進行設(shè)計并調(diào)試通過,雖然還不能完全說明實際系統(tǒng)就完全通過,至少在邏輯上是行得通的。 軟件仿真通過后,再進行軟硬件設(shè)計與實現(xiàn),可大大減少可大大減少設(shè)計上所走的彎路設(shè)計上所走的彎路。也是目前世界上流行的一種開發(fā)方法。7(3)硬件與軟件聯(lián)合調(diào)試階段)硬件與軟件聯(lián)合調(diào)試階段下一步就是軟硬件的聯(lián)合調(diào)試。需通過硬件仿真開發(fā)工具來進行,具體的調(diào)試方法和過程,在本章后面介紹。所有軟件和硬件電路全部調(diào)試通過,并不

9、意味系統(tǒng)設(shè)計成功,還需通過運行來調(diào)整系統(tǒng)的運行狀態(tài),例如例如系統(tǒng)中的A/D轉(zhuǎn)換結(jié)果是否正確,如果不正確,是否要調(diào)零和調(diào)整基準(zhǔn)電壓等。(4)資料與文件整理編制階段)資料與文件整理編制階段系統(tǒng)調(diào)試通過,就進入資料與文件資料與文件整理編制階段。8資料與文件包括:資料與文件包括:任務(wù)描述、設(shè)計的指導(dǎo)思想及設(shè)計方案論證、性能測定及現(xiàn)場試用報告與說明、使用指南、軟件資料(流程圖、子程序使用說明、地址分配、程序清單)、硬件資料(電原理圖、元件布置圖及接線圖、接插件引腳圖、線路板圖、注意事項)。文件不僅是設(shè)計工作的結(jié)果,而且是以后使用、維修以及文件不僅是設(shè)計工作的結(jié)果,而且是以后使用、維修以及進一步再設(shè)計的依

10、據(jù)。進一步再設(shè)計的依據(jù)。因此,要精心編寫,描述清楚,使數(shù)據(jù)及資料齊全。913.2 單片機應(yīng)用系統(tǒng)設(shè)計單片機應(yīng)用系統(tǒng)設(shè)計 系統(tǒng)的設(shè)計。主要從硬件設(shè)計硬件設(shè)計和軟件設(shè)計軟件設(shè)計兩方面考慮。13.2.1 硬件設(shè)計應(yīng)考慮的問題硬件設(shè)計應(yīng)考慮的問題 硬件設(shè)計硬件設(shè)計時,應(yīng)重點考慮以下問題。1盡可能采用功能強的芯片盡可能采用功能強的芯片(1)單片機選型)單片機選型。單片機的集成度越來越高,許多外圍部件都已集成在芯片內(nèi),有的單片機本身就是一個系統(tǒng),這可省去許多外圍部件的擴展工作,使設(shè)計工作簡化。10 第1章已介紹較為流行的各種單片機,根據(jù)需求,選擇合適機型。 例如,例如,目前市場上較為流行的美國美國Cygn

11、al公司公司的C8051F020 8位單片機,片內(nèi)集成有8通道A/D、兩路D/A、兩路電壓比較器,內(nèi)置溫度傳感器、定時器、可編程數(shù)字交叉開關(guān)和64個通用I/O口、電源監(jiān)測、看門狗、多種類型的串行總線(兩個UART、SPI)等。用1片C8051F020 單片機,就構(gòu)成一個應(yīng)用系統(tǒng)。再如,如系統(tǒng)需要較大的I/O驅(qū)動能力和較強的抗干擾能力,可考慮選用可考慮選用AVR單片機單片機。11(2)優(yōu)先選片內(nèi)有閃存的產(chǎn)品)優(yōu)先選片內(nèi)有閃存的產(chǎn)品。例如,例如,使用ATMEL公司的AT89S5x系列產(chǎn)品,PHILIPS公司的89C58(內(nèi)有32KB的閃爍存儲器)等,可省去片外擴展程序存儲器的工作,減少芯片數(shù)量,縮

12、小系統(tǒng)體積。(3)RAM容量的考慮。容量的考慮。多數(shù)單片機片內(nèi)的RAM單元有限,當(dāng)需增強數(shù)據(jù)處理功能時,往往覺得不足,這就要求系統(tǒng)配置外部RAM,如6264、62256芯片等。如處理的數(shù)據(jù)量大,需更大的數(shù)據(jù)存儲器空間,可采用數(shù)據(jù)存儲器芯片DS12887,其容量為256KB,內(nèi)有鋰電池保護,保存數(shù)據(jù)可達10年以上。12(4)對)對I/O端口留有余地端口留有余地。在樣機研制出來現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題是不能單靠軟件措施來解決的。如有新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件設(shè)計之初就多設(shè)計留有一些多設(shè)計留有一些I/O端口端口,

13、這些問題就會迎刃而解。(5)預(yù)留)預(yù)留A/D和和D/A通道通道。與上述I/O端口同樣原因,留出一些A/D和D/A通道將來可能會解決大問題。132以軟代硬以軟代硬原則上,只要軟件能做到且能滿足性能要求,就不用硬件。硬件多不但增加成本,而且系統(tǒng)故障率也會提高硬件多不但增加成本,而且系統(tǒng)故障率也會提高。以軟帶硬的實質(zhì),是以時間換空間,軟件執(zhí)行過程需要消耗時間,因此帶來的問題就是實時性下降。問題就是實時性下降。在實時性要求不高的場合,以軟代硬是很合算的。3工藝設(shè)計工藝設(shè)計包括機箱、面板、配線、接插件等。須考慮到安裝、調(diào)試、維修方便。另外,硬件抗干擾措施(將在本章后面介紹)也須在硬件設(shè)計時一并考慮進去。

14、1413.2.2 典型的單片機應(yīng)用系統(tǒng)典型的單片機應(yīng)用系統(tǒng) 典型單片機應(yīng)用系統(tǒng)框圖如圖圖13-1所示。圖圖13-1 單片機典型應(yīng)用系統(tǒng)框圖15主要由單片機基本部分、輸入部分單片機基本部分、輸入部分和輸出部分組成。(1)單片機基本部分)單片機基本部分由單片機及其擴展的外設(shè)及芯片,如鍵盤、顯示器、打印機、數(shù)據(jù)存儲器、程序存儲器、數(shù)字I/O等組成。(2)輸入部分)輸入部分“測”的部分,被被“測測”的信號類型有的信號類型有:數(shù)字量、模擬量和開關(guān)量。模擬量輸入檢測的主要包括信號調(diào)理電路以及A/D轉(zhuǎn)換器。A/D轉(zhuǎn)換器中又包括多路切換、采樣保持、A/D轉(zhuǎn)換電路,目前都集成在A/D轉(zhuǎn)換器芯片中,或直接集成在單

15、片機片內(nèi)。16連接傳感器傳感器與A/D轉(zhuǎn)換器轉(zhuǎn)換器之間的橋梁是信號調(diào)理電路信號調(diào)理電路,傳感器輸出的模擬信號要經(jīng)信號調(diào)理電路對信號進行放大、濾對信號進行放大、濾波、隔離、量程調(diào)整波、隔離、量程調(diào)整等,變換成適合A/D轉(zhuǎn)換的電壓信號。 信號放大通常由單片式儀表放大器承擔(dān)。儀表放大器對信號進行放大比普通運算放大器具有更優(yōu)異的性能。如何根據(jù)不同的傳感器正確地選擇儀表放大器來進行信號調(diào)理電路的設(shè)計,請參閱有關(guān)資料和文獻。(3)輸出部分)輸出部分是應(yīng)用系統(tǒng)“控控”的部分的部分,包括包括數(shù)字量、開關(guān)量控制信號的輸出和模擬量控制信號(常用于伺服控制)的輸出。1713.2.3 系統(tǒng)設(shè)計中的地址空間分配與總線驅(qū)

16、動系統(tǒng)設(shè)計中的地址空間分配與總線驅(qū)動 應(yīng)用系統(tǒng)有時往往是多芯片系統(tǒng),這時會遇到兩個問題兩個問題: 一是如何把如何把64KB程序存儲器和程序存儲器和64KB數(shù)據(jù)存儲器的空間分?jǐn)?shù)據(jù)存儲器的空間分配給各個芯片配給各個芯片; 二是如何實現(xiàn)如何實現(xiàn)AT89S51單片機對多片芯片的驅(qū)動單片機對多片芯片的驅(qū)動。 本小節(jié)介紹單片機應(yīng)用系統(tǒng)設(shè)計時經(jīng)常遇到的地址空間分地址空間分配和總線驅(qū)動問題配和總線驅(qū)動問題,供設(shè)計參考。181地址空間分配地址空間分配 擴展多片芯片擴展多片芯片的應(yīng)用系統(tǒng),首先應(yīng)考慮如何把首先應(yīng)考慮如何把64KB程序程序存儲器和存儲器和64KB數(shù)據(jù)存儲器的空間分配給各個芯片數(shù)據(jù)存儲器的空間分配給各

17、個芯片。 第8章已介紹地址空間分配的兩種方法兩種方法:線選法線選法和譯碼法譯碼法。下面通過一個例子來說明如何解決這個問題。 圖圖13-2所示為一個全地址譯碼的系統(tǒng)實例。圖中所示的AT89S51單片機擴展的各器件芯片所對應(yīng)的地址如表表13-1。19 圖圖13-2 全地址譯碼的系統(tǒng)實例2021因6264、2764都是8KB,故需要13條條低位地址線(A12A0)進行片內(nèi)尋址,低8位地址線A7A0經(jīng)8D鎖存器74LS373輸出(圖中沒有畫出),其他3條高位地址線條高位地址線A15A13經(jīng)3-8譯碼器74LS138譯碼后作為外圍芯片的片選線。圖中尚剩余3條地址選擇線Y7* Y5* ,還可擴展3片存儲器

18、芯片或外圍I/O接口芯片。2總線驅(qū)動總線驅(qū)動擴展多片芯片時,注意單片機4個并行雙向口的個并行雙向口的P0P3口口的驅(qū)動能力的驅(qū)動能力。下面討論這個問題。22 AT89S51的P0、P2口口通常作為總線端口作為總線端口,當(dāng)擴展芯片較多,可造成負載過重,致使驅(qū)動能力不夠驅(qū)動能力不夠,通常要附加總線驅(qū)動器或其他驅(qū)動電路。因此在多芯片應(yīng)用系統(tǒng)設(shè)計中首先要估計總線負載情況,以確定是否需對總線驅(qū)動能力進行擴展。 圖圖13-3為AT89S51單片機總線驅(qū)動擴展原理圖。P2口需單口需單向驅(qū)動向驅(qū)動,常見的單向總線驅(qū)動器為單向總線驅(qū)動器為74LS244。 圖圖13-4為74LS244引腳圖引腳圖和邏輯圖邏輯圖。

19、8個三態(tài)驅(qū)動器分成兩組,分別由1G* 和2G*控制。2324圖13-3 AT89S51單片機總線驅(qū)動擴展原理圖P0口口作為數(shù)據(jù)總線,雙向傳輸,其驅(qū)動器應(yīng)為雙向驅(qū)動、作為數(shù)據(jù)總線,雙向傳輸,其驅(qū)動器應(yīng)為雙向驅(qū)動、三態(tài)輸出三態(tài)輸出,由兩個控制端兩個控制端來控制數(shù)傳方向。如圖圖13-3所示,數(shù)據(jù)輸出允許控制端DBEO有效時,數(shù)據(jù)總線輸入為高阻狀態(tài),輸出為開通狀態(tài);數(shù)據(jù)輸入允許控制端DBEI有效時,則狀態(tài)與上相反。常見雙向驅(qū)動器為常見雙向驅(qū)動器為74LS245,圖圖13-5為引腳圖和邏輯圖。驅(qū)動方向由 G*、DIR兩個控制端控制, G*控制端控制驅(qū)動器有效或高阻態(tài), G*在 控制端有效(G* =0)時

20、,DIR控制端控制驅(qū)動器的驅(qū)動方向,DIR=0時驅(qū)動方向為從B至A,DIR=1時則相反。25圖圖13-4 單向驅(qū)動器74LS244引腳圖和邏輯圖圖圖13-5 74LS245的引腳圖和邏輯圖圖圖13-6所示為AT89S51系統(tǒng)總線驅(qū)動擴展電路圖總線驅(qū)動擴展電路圖。P0口口的雙向驅(qū)動采用的雙向驅(qū)動采用74LS245,如圖圖13-6(a)所示;P2口的單口的單向驅(qū)動器采用向驅(qū)動器采用74LS244,如圖圖13-6(b)所示。 28圖圖13-6 AT89S51單片機應(yīng)用系統(tǒng)中的總線驅(qū)動擴展電路圖 P0口口雙向驅(qū)動器74LS245的的G*接地接地,保證芯片一直處于工作狀態(tài),而輸入輸入/輸出的方向控制輸出

21、的方向控制由單片機的數(shù)據(jù)存儲器的“讀讀”控制引腳(控制引腳(RD*)和程序存儲器的取指控制引腳取指控制引腳(PSEN*)通過與門控制DIR引腳實現(xiàn)。無論是“讀”數(shù)據(jù)存儲器中數(shù)據(jù)( 有效)還是從程序存儲器中取指令(PSEN*有效),都能保證對P0口的輸入驅(qū)動; 除此以外的時間(RD*及PSEN*均無效),保證對P0口的輸出驅(qū)動。對于P2口,因為只用作單向的地址輸出,故74LS244的驅(qū)動門控制端1G* 、2G*接地。2913.2.4 應(yīng)用設(shè)計例應(yīng)用設(shè)計例1最小應(yīng)用系統(tǒng)設(shè)計最小應(yīng)用系統(tǒng)設(shè)計 AT89S51有4KB閃爍存儲器閃爍存儲器,本身就是一個數(shù)字量輸入/輸出的最小應(yīng)用系統(tǒng)。 在構(gòu)建AT89S5

22、1最小應(yīng)用系統(tǒng)時,AT89S51需要外接需要外接時鐘電時鐘電路路和復(fù)位電路復(fù)位電路即可,如圖圖13-7。 注意,本最小應(yīng)用系統(tǒng)只能作為小型的數(shù)字量的測控單元。30圖圖13-7 AT89S51單片機構(gòu)成的最小應(yīng)用系統(tǒng)13.2.5 應(yīng)用設(shè)計例應(yīng)用設(shè)計例2數(shù)字電壓表的設(shè)計數(shù)字電壓表的設(shè)計 設(shè)計一個數(shù)字電壓表。測量設(shè)計一個數(shù)字電壓表。測量05V的模擬電壓,并把電壓的的模擬電壓,并把電壓的測量值顯示在測量值顯示在LED數(shù)碼顯示器上。數(shù)碼顯示器上。1. 硬件接口電路設(shè)計硬件接口電路設(shè)計 數(shù)字電壓表接口電路如數(shù)字電壓表接口電路如圖圖13-8。A/D轉(zhuǎn)換器采用轉(zhuǎn)換器采用ADC0809,把加到把加到IN0腳的模

23、擬輸入電壓轉(zhuǎn)換為數(shù)字量,送至單片機內(nèi)進腳的模擬輸入電壓轉(zhuǎn)換為數(shù)字量,送至單片機內(nèi)進行處理,電壓值顯示在行處理,電壓值顯示在LED數(shù)碼顯示器上。時鐘由定時器定時數(shù)碼顯示器上。時鐘由定時器定時中斷提供,在定時器中斷服務(wù)程序中,對時鐘輸出引腳中斷提供,在定時器中斷服務(wù)程序中,對時鐘輸出引腳P1.3取取反。本數(shù)字電壓表的分辨率為反。本數(shù)字電壓表的分辨率為5V/256=1LSB=0.0196V,測量,測量誤差為誤差為1LSB。3233圖13-8 數(shù)字電壓表接口電路2. 2. 軟件設(shè)計軟件設(shè)計參考程序如下:參考程序如下:#include #include #define #define ucharucha

24、r unsigned char unsigned char #define #define uintuint unsigned unsigned intint ucharuchar code table16=0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x07, code table16=0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x07, 0 x7f, 0 x6f ; 0 x7f, 0 x6f ; / /* *共陰極數(shù)碼管段碼表共陰極數(shù)碼管段碼表* */ /sbitsbit OE=P10; OE=P10;

25、/ /* *ADCADC各引腳定義各引腳定義* */ /sbitsbit EOC=P11; EOC=P11;sbitsbit START=P12; START=P12;sbitsbit CLK=P13; CLK=P13;/ /* *延時子程序延時子程序* */ /void void DelayMS(uintDelayMS(uint ms) ms)34uchar i;while( ms-)for(i=0;i150;i+);/*顯示轉(zhuǎn)換結(jié)果*/void Dislay(uchar d)P2=0 xf7; /*右邊數(shù)碼管顯示個位數(shù)*/P0=LEDdatad%10;DelayMS(uint ms);P2

26、=0 xfb;P0=LEDdatad%100/10; /*中間數(shù)碼管顯示十位數(shù)*/DelayMS(uint ms);P2=0 xfd;P0=LEDdatad%100; /*左邊數(shù)碼管顯示十位數(shù)*/DelayMS(uint ms);unsigned char i35/*主程序主程序*/void main( );TMOD=0 x02;/*設(shè)置定時器設(shè)置定時器T0為定時器方式為定時器方式2*/TH0=0 x14;/*給給T0裝入初值裝入初值*/TL0=0 x00; IE=0 x82;/*總中斷允許,定時器總中斷允許,定時器T0中斷允許中斷允許*/TR0=1;/*接通接通T0 計數(shù)計數(shù)* /P1=0

27、x07;/*CLK、START、EOC、OE為低、高、高、高為低、高、高、高* /while(1)START=0; START=1; START=0; /* START腳加正脈沖,啟動轉(zhuǎn)換腳加正脈沖,啟動轉(zhuǎn)換* /while(EOC=0);/*是否轉(zhuǎn)換結(jié)束是否轉(zhuǎn)換結(jié)束* /OE=1;/*允許讀轉(zhuǎn)換結(jié)果允許讀轉(zhuǎn)換結(jié)果* /36Dislay(P3);/*顯示轉(zhuǎn)換結(jié)果顯示轉(zhuǎn)換結(jié)果* /OE=0;/*關(guān)閉轉(zhuǎn)換結(jié)果輸出關(guān)閉轉(zhuǎn)換結(jié)果輸出* /*定時器定時器T0中斷服務(wù)程序中斷服務(wù)程序*/void T0INT( ) interrupt 1 CLK=! CLK;/*轉(zhuǎn)換器時鐘轉(zhuǎn)換器時鐘CLK 取反取反* /3

28、713.2.6 應(yīng)用設(shè)計例應(yīng)用設(shè)計例3帶有報警功能的溫度測量儀的設(shè)計帶有報警功能的溫度測量儀的設(shè)計 設(shè)計一個帶有報警功能的溫度測量儀。被測溫度經(jīng)溫度傳設(shè)計一個帶有報警功能的溫度測量儀。被測溫度經(jīng)溫度傳感器及信號調(diào)理電路,變?yōu)楦衅骷靶盘栒{(diào)理電路,變?yōu)?5V的模擬電壓信號,經(jīng)的模擬電壓信號,經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換器ADC0809轉(zhuǎn)換為數(shù)字量,送至單片機內(nèi)進行處理。轉(zhuǎn)換為數(shù)字量,送至單片機內(nèi)進行處理。測量的溫度值顯示在數(shù)碼顯示器上。測得溫度值與設(shè)定值進測量的溫度值顯示在數(shù)碼顯示器上。測得溫度值與設(shè)定值進行比較,當(dāng)溫度大于上限值和小于下限值時分別發(fā)出報警信行比較,當(dāng)溫度大于上限值和小于下限值時分別發(fā)出報警

29、信號。號。1. 硬件電路設(shè)計硬件電路設(shè)計 溫度測量儀的硬件功能結(jié)構(gòu)框圖如溫度測量儀的硬件功能結(jié)構(gòu)框圖如圖圖13-9所示。所示。3839圖圖13-9 硬件功能結(jié)構(gòu)框圖硬件功能結(jié)構(gòu)框圖 硬件電路從功能模塊上來劃分有兩部分:數(shù)據(jù)采集電路和硬件電路從功能模塊上來劃分有兩部分:數(shù)據(jù)采集電路和溫度顯示與超限報警電路。溫度顯示與超限報警電路。(1)數(shù)據(jù)采集電路的設(shè)計)數(shù)據(jù)采集電路的設(shè)計 數(shù)據(jù)采集電路電路如數(shù)據(jù)采集電路電路如圖圖13-10所示,主要由溫度傳感器、信所示,主要由溫度傳感器、信號調(diào)理、號調(diào)理、A/D轉(zhuǎn)換器等組成。轉(zhuǎn)換器等組成。 溫度傳感器采用常見的二端式電流型集成溫度傳感器溫度傳感器采用常見的二端

30、式電流型集成溫度傳感器AD590。溫度變化。溫度變化1,其輸出電流變化,其輸出電流變化1A,在,在25時,其時,其輸出電流為輸出電流為298.2A。AD590具有較高精度和重復(fù)性,測溫范具有較高精度和重復(fù)性,測溫范圍為圍為55+150,重復(fù)性優(yōu)于,重復(fù)性優(yōu)于0.1,通過激光平衡調(diào)整,通過激光平衡調(diào)整,校準(zhǔn)精度可達校準(zhǔn)精度可達 0.5。由于。由于AD590的上述特點,使其在溫度的上述特點,使其在溫度測量中得到了廣泛應(yīng)用。測量中得到了廣泛應(yīng)用。 圖圖13-1013-10 數(shù)據(jù)采集電路圖數(shù)據(jù)采集電路圖放大電路采用低溫穩(wěn)定、高精度的普通運算放大器放大電路采用低溫穩(wěn)定、高精度的普通運算放大器OP07,它

31、將溫度傳感器的電壓信號放大它將溫度傳感器的電壓信號放大05V,加到,加到A/D轉(zhuǎn)換器轉(zhuǎn)換器0809的模擬輸入端,以便的模擬輸入端,以便A/D轉(zhuǎn)換器進行轉(zhuǎn)換。轉(zhuǎn)換器進行轉(zhuǎn)換。A/D轉(zhuǎn)換器采用轉(zhuǎn)換器采用AD0809,假設(shè)被采集的溫度信號為緩變,假設(shè)被采集的溫度信號為緩變信號,足以滿足轉(zhuǎn)換速度的要求。信號,足以滿足轉(zhuǎn)換速度的要求。42(2)溫度顯示與超限報警電路的設(shè)計)溫度顯示與超限報警電路的設(shè)計 溫度顯示與超限報警電路如溫度顯示與超限報警電路如圖圖13-11所示。所示。 測得的溫度值利用測得的溫度值利用LED數(shù)碼管進行顯示。數(shù)碼管的數(shù)碼管進行顯示。數(shù)碼管的adp段的段碼由單片機的段的段碼由單片機的

32、P0口控制,口控制,a段對應(yīng)段對應(yīng)P0口的最低位。數(shù)口的最低位。數(shù)碼管的顯示位由碼管的顯示位由P2.0P2.3分別控制,本例中用到了分別控制,本例中用到了P2.0P2.2對應(yīng)的數(shù)碼管。對應(yīng)的數(shù)碼管。 超限報警電路部分,由超限報警電路部分,由P3.0和和P3.1分別控制兩個發(fā)光二極分別控制兩個發(fā)光二極管管LED1和和LED2的亮與滅。當(dāng)溫度低于下限值時黃色發(fā)光二的亮與滅。當(dāng)溫度低于下限值時黃色發(fā)光二極管亮,當(dāng)溫度高于上限值時,紅色發(fā)光二極管亮。極管亮,當(dāng)溫度高于上限值時,紅色發(fā)光二極管亮。圖圖13-11 溫度顯示與超限報警電路溫度顯示與超限報警電路 2軟件設(shè)計軟件設(shè)計參考程序如下:參考程序如下:

33、#include #include #define #define ucharuchar unsigned char unsigned char #define #define uintuint unsigned unsigned intint ucharuchar code code segcodesegcode =0 x3f, =0 x3f, 0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f ; /0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f ; /* *顯示段碼表顯示段

34、碼表* */ /ucharuchar Temperature =0,0,0; Temperature =0,0,0;/ /* *3 3個個顯示位的溫度值顯示位的溫度值* */ /sbitsbit OE=P27; OE=P27;/ /* *ADC0809ADC0809各引腳定義各引腳定義* */ /sbitsbit EOC=P26; EOC=P26;sbitsbit START=P25; START=P25;sbitsbit CLK=P24; CLK=P24;sbitsbit H_LED=P30; H_LED=P30;/ /* *報警指示燈報警指示燈/ /sbitsbit L_LED=P31;

35、L_LED=P31;sbitsbit BEEP=P37; BEEP=P37;/ /* *蜂鳴器蜂鳴器* */ /45uchar t=0;void Deley_ms(uint x) /*延時函數(shù)延時函數(shù)*/uchar i;while(x-) for(i=0;i120;i+);void Display( )/*溫度溫度顯示函數(shù)顯示函數(shù)*/uchar i, bitcode = 0 xf7, 0 xfb, 0 xfd /*顯示位的位控值顯示位的位控值*/for(i=0;i3;i+); /*循環(huán)循環(huán)顯示顯示3位的控制位的控制*/P0= segcodeTemperaturei ;P2&= bitcode

36、i ;Deley_ms(5);P2|=0 x0f;46void main( );uchar dIE=0 x8a;/*允許T1、T0中斷*/TMOD=0 x18;/*設(shè)置T1、T0的工作模式與方式*/TH0=245;TL0=0;TH1=(65536-1000)/256;TL1=(65536-1000)%256;TR0=1;H_LED=L_LED=1;while(1) START=0; START=1; START=0; /*啟動轉(zhuǎn)換*/while(1) if(EOC=1)47OE=1;d=P1;/*讀取讀取A/D轉(zhuǎn)換結(jié)果轉(zhuǎn)換結(jié)果*/OE=0;Temperature2=d/100;Temperat

37、ure1=d%100/10;Temperature0=d%10;Display( )if(d130) /*判溫度是否高于上限判溫度是否高于上限*/TR1=1; H_LED =! L_LED;elseTR1=0; H_LED=L_LED=1;48break;void T0_INT( ) interupt 1/*定時器定時器T0中斷函數(shù)中斷函數(shù), T0為為ADC0809提供時提供時鐘鐘*/clk=clkvoid T1_INT( ) interupt 3/*定時器定時器T1中斷函數(shù)中斷函數(shù)*/TH1=(65536-1000)/256;TL1=(65536-1000)%256;TL1=(65536-1

38、000)%256;BEEP=BEEP;if(L_LED=0)/*根據(jù)上限還是下限報警來設(shè)定不同的延時間隔根據(jù)上限還是下限報警來設(shè)定不同的延時間隔*/if(+t !=150)return;49elseif(+t !=60)return;t=0;Deley_ms(20)5013.3 單片機應(yīng)用系統(tǒng)的仿真開發(fā)與調(diào)試單片機應(yīng)用系統(tǒng)的仿真開發(fā)與調(diào)試 “仿真仿真”就是利用仿真開發(fā)工具提供的可控手段來模仿單就是利用仿真開發(fā)工具提供的可控手段來模仿單片機系統(tǒng)真實運行的情況。在單片機系統(tǒng)調(diào)試中,仿真應(yīng)用的片機系統(tǒng)真實運行的情況。在單片機系統(tǒng)調(diào)試中,仿真應(yīng)用的范圍主要集中在對程序的仿真上。例如,在單片機的開發(fā)過程

39、范圍主要集中在對程序的仿真上。例如,在單片機的開發(fā)過程中,程序的設(shè)計是最為重要的但也是難度最大的。一種最簡單中,程序的設(shè)計是最為重要的但也是難度最大的。一種最簡單和原始的開發(fā)流程是:編寫程序和原始的開發(fā)流程是:編寫程序燒寫芯片燒寫芯片驗證功能,這種驗證功能,這種方法對于簡單的小系統(tǒng)是可行的,但在較大的程序中使用這種方法對于簡單的小系統(tǒng)是可行的,但在較大的程序中使用這種方法則是行不通的。方法則是行不通的。 仿真的種類主要分為兩大類:軟件仿真和硬件仿真。仿真的種類主要分為兩大類:軟件仿真和硬件仿真。 51(1)軟件仿真)軟件仿真 主要是使用軟件來模擬單片機運行,因此仿真與硬件無關(guān)主要是使用軟件來模

40、擬單片機運行,因此仿真與硬件無關(guān)的系統(tǒng)具有優(yōu)點。不需搭建硬件電路就可以對程序進行驗證,的系統(tǒng)具有優(yōu)點。不需搭建硬件電路就可以對程序進行驗證,特別適合于偏重算法的程序。缺點是無法完全仿真與硬件相特別適合于偏重算法的程序。缺點是無法完全仿真與硬件相關(guān)的部分,最終還要通過硬件仿真來完成最終的設(shè)計。關(guān)的部分,最終還要通過硬件仿真來完成最終的設(shè)計。(2)硬件仿真)硬件仿真 使用附加的硬件來替代用戶系統(tǒng)的單片機并完成單片機全使用附加的硬件來替代用戶系統(tǒng)的單片機并完成單片機全部或大部分的功能,就可對程序的運行進行控制。例如單步,部或大部分的功能,就可對程序的運行進行控制。例如單步,全速,斷點等。例如在程序的

41、運行中,在設(shè)置斷點處查看某全速,斷點等。例如在程序的運行中,在設(shè)置斷點處查看某寄存器、存儲器單元內(nèi)容。硬件仿真是開發(fā)過程中所必寄存器、存儲器單元內(nèi)容。硬件仿真是開發(fā)過程中所必 52須的,人們把實現(xiàn)硬件仿真功能的開發(fā)工具稱為仿真器。須的,人們把實現(xiàn)硬件仿真功能的開發(fā)工具稱為仿真器。 仿真開發(fā)工具應(yīng)具有如下最基本的功能。仿真開發(fā)工具應(yīng)具有如下最基本的功能。(1 1)用戶程序的輸入與修改。)用戶程序的輸入與修改。(2 2)程序運行、調(diào)試(單步運行、設(shè)置斷點運行)、排錯、)程序運行、調(diào)試(單步運行、設(shè)置斷點運行)、排錯、狀態(tài)查詢等功能。狀態(tài)查詢等功能。(3 3)用戶樣機硬件電路的診斷與檢查。)用戶樣機

42、硬件電路的診斷與檢查。(4 4)有較全的開發(fā)軟件。用戶可用匯編語言或)有較全的開發(fā)軟件。用戶可用匯編語言或C C語言編制應(yīng)語言編制應(yīng)用程序;由開發(fā)系統(tǒng)編譯連接生成目標(biāo)文件、可執(zhí)行文件。用程序;由開發(fā)系統(tǒng)編譯連接生成目標(biāo)文件、可執(zhí)行文件。配有反匯編軟件,能將目標(biāo)程序轉(zhuǎn)換成匯編語言程序;有豐配有反匯編軟件,能將目標(biāo)程序轉(zhuǎn)換成匯編語言程序;有豐富的子程序或庫函數(shù)可供用戶選擇調(diào)用。富的子程序或庫函數(shù)可供用戶選擇調(diào)用。(5)將調(diào)試正確的程序?qū)懭氲匠绦虼鎯ζ髦小#⒄{(diào)試正確的程序?qū)懭氲匠绦虼鎯ζ髦?。下面介紹常用的仿真開發(fā)工具。下面介紹常用的仿真開發(fā)工具。13.3.1 仿真開發(fā)系統(tǒng)簡介仿真開發(fā)系統(tǒng)簡介 目前

43、使用較多的仿真開發(fā)系統(tǒng)目前使用較多的仿真開發(fā)系統(tǒng)大致分為如下大致分為如下兩類兩類。1通用機仿真開發(fā)系統(tǒng)通用機仿真開發(fā)系統(tǒng) 目前目前使用最多的一類開發(fā)裝置使用最多的一類開發(fā)裝置。通過。通過PC機的并行口、串機的并行口、串行口或行口或USB口,外加在線仿真器,如口,外加在線仿真器,如圖圖13-12所示。所示。 圖圖13-13為在線仿真器與為在線仿真器與PC機以及用戶樣機的實際連接圖。機以及用戶樣機的實際連接圖。在線仿真器一側(cè)與在線仿真器一側(cè)與PC機的機的USB口(或并行口、串行口)相口(或并行口、串行口)相連。在調(diào)試程序時,在線仿真器另一側(cè)的仿真插頭插入到用連。在調(diào)試程序時,在線仿真器另一側(cè)的仿真

44、插頭插入到用5455圖圖13-12 通用機仿真開發(fā)系統(tǒng)圖圖13-13 在線仿真器與在線仿真器與P C機以及用戶樣機的連接機以及用戶樣機的連接戶樣機空出的的單片機插座上,來對樣機上的單片機進行戶樣機空出的的單片機插座上,來對樣機上的單片機進行“仿真仿真”。從仿真插頭向在線仿真器看去,看到的就是一個。從仿真插頭向在線仿真器看去,看到的就是一個“單片機單片機”。 這個這個“單片機單片機”是用來是用來“代替代替”用戶樣機上的用戶樣機上的單片機。但是這個單片機。但是這個“單片機單片機”片內(nèi)程序的運行是由片內(nèi)程序的運行是由PC機軟機軟件控制的。件控制的。 由于在線仿真器有由于在線仿真器有PC機及其仿真開發(fā)

45、軟件的強大支持,機及其仿真開發(fā)軟件的強大支持,可在可在PC機的屏幕上觀察用戶程序的運行情況,可采用單步、機的屏幕上觀察用戶程序的運行情況,可采用單步、設(shè)斷點等手段逐條跟蹤用戶程序并進行修改和調(diào)試,查找軟、設(shè)斷點等手段逐條跟蹤用戶程序并進行修改和調(diào)試,查找軟、硬件故障。硬件故障。 在線仿真器除了在線仿真器除了“出借出借” 單片機外,還單片機外,還“出借出借”存儲器,存儲器,即仿真即仿真RAM。也就是說,在用戶樣機調(diào)試期間,仿真器把開。也就是說,在用戶樣機調(diào)試期間,仿真器把開發(fā)系統(tǒng)的一部分存儲器發(fā)系統(tǒng)的一部分存儲器“變換變換”成為用戶樣機的存儲器。成為用戶樣機的存儲器。 57 這部分存儲器與用戶樣

46、機的程序存儲器具有相同的存儲這部分存儲器與用戶樣機的程序存儲器具有相同的存儲空間,用來存放待調(diào)試的用戶程序??臻g,用來存放待調(diào)試的用戶程序。 當(dāng)仿真器與當(dāng)仿真器與PC機聯(lián)機后,用戶可利用機聯(lián)機后,用戶可利用PC機上的仿真開發(fā)機上的仿真開發(fā)軟件,在軟件,在PC機上編輯、修改源程序,然后通過交叉匯編軟機上編輯、修改源程序,然后通過交叉匯編軟件將其匯編成機器代碼,傳送到在線仿真器中的仿真件將其匯編成機器代碼,傳送到在線仿真器中的仿真RAM中。中。這時用戶可用單步、斷點、跟蹤、全速等方式運行用戶程序,這時用戶可用單步、斷點、跟蹤、全速等方式運行用戶程序,系統(tǒng)狀態(tài)實時地顯示在屏幕上。待程序調(diào)試通過后,再

47、使用系統(tǒng)狀態(tài)實時地顯示在屏幕上。待程序調(diào)試通過后,再使用仿真開發(fā)系統(tǒng)提供的編程器或?qū)S镁幊唐?,把調(diào)試完畢的程仿真開發(fā)系統(tǒng)提供的編程器或?qū)S镁幊唐?,把調(diào)試完畢的程序?qū)懭氲絾纹瑱C的序?qū)懭氲絾纹瑱C的Flash存儲器中或外擴的存儲器中或外擴的EPROM中。中。 目前國內(nèi)生產(chǎn)的在線仿真器部分產(chǎn)品多采用目前國內(nèi)生產(chǎn)的在線仿真器部分產(chǎn)品多采用Bondout和和58HOOKS 技術(shù)。技術(shù)。 隨著集成電路芯片技術(shù)的發(fā)展,很多單片機生產(chǎn)廠商在芯隨著集成電路芯片技術(shù)的發(fā)展,很多單片機生產(chǎn)廠商在芯片內(nèi)部增加了仿真功能,即內(nèi)嵌仿真功能的單片機芯片,仿片內(nèi)部增加了仿真功能,即內(nèi)嵌仿真功能的單片機芯片,仿真調(diào)試一般通過真調(diào)

48、試一般通過JTAG 接口進行控制。為了降低成本和增加接口進行控制。為了降低成本和增加可靠性,內(nèi)嵌的仿真部分一般功能比較簡單??煽啃?,內(nèi)嵌的仿真部分一般功能比較簡單。 為滿足工業(yè)現(xiàn)場調(diào)試的需要,還有一種獨立型仿真器。該為滿足工業(yè)現(xiàn)場調(diào)試的需要,還有一種獨立型仿真器。該類仿真器采用模塊化結(jié)構(gòu),配有不同外設(shè),如外存板、打印類仿真器采用模塊化結(jié)構(gòu),配有不同外設(shè),如外存板、打印機、鍵盤機、鍵盤/顯示器等,用戶可根據(jù)需要選用。在工業(yè)現(xiàn)場,往顯示器等,用戶可根據(jù)需要選用。在工業(yè)現(xiàn)場,往往沒有往沒有PC機的支持,這時使用獨立型仿真器也可進行仿真調(diào)機的支持,這時使用獨立型仿真器也可進行仿真調(diào)試工作,只不過要輸入

49、機器碼,稍顯麻煩一些。試工作,只不過要輸入機器碼,稍顯麻煩一些。592. 單片機系統(tǒng)虛擬仿真開發(fā)工具單片機系統(tǒng)虛擬仿真開發(fā)工具Proteus 單片機虛擬仿真開發(fā)工具是一種完全用軟件手段對單片機單片機虛擬仿真開發(fā)工具是一種完全用軟件手段對單片機應(yīng)用系統(tǒng)進行仿真開發(fā),它與用戶樣機在硬件上無任何聯(lián)系,應(yīng)用系統(tǒng)進行仿真開發(fā),它與用戶樣機在硬件上無任何聯(lián)系,通常這種系統(tǒng)是由通常這種系統(tǒng)是由PC機上安裝仿真開發(fā)工具軟件構(gòu)成,可機上安裝仿真開發(fā)工具軟件構(gòu)成,可進行系統(tǒng)的虛擬設(shè)計與仿真調(diào)試。進行系統(tǒng)的虛擬設(shè)計與仿真調(diào)試。 Proteus軟件是英國軟件是英國Lab Center electronics 開發(fā)的虛

50、擬開發(fā)的虛擬仿真軟件,為各種實際的單片機系統(tǒng)開發(fā)提供了功能強大的仿真軟件,為各種實際的單片機系統(tǒng)開發(fā)提供了功能強大的EDA工具,已有近工具,已有近20年的歷史。年的歷史。 除了具有和其他除了具有和其他EDA工具一樣的原理編輯、印刷電路板自工具一樣的原理編輯、印刷電路板自動或人工布線及電路仿真功能外,最大特色是用戶可對單片動或人工布線及電路仿真功能外,最大特色是用戶可對單片機連同所有外圍接口、電子器件以及外部的測試儀器一起機連同所有外圍接口、電子器件以及外部的測試儀器一起60仿真。仿真。 可直接在基于單片機原理圖的虛擬模型上進行編程,并實可直接在基于單片機原理圖的虛擬模型上進行編程,并實現(xiàn)源代碼

51、級的實時調(diào)試?,F(xiàn)源代碼級的實時調(diào)試。Proteus軟件的特點。軟件的特點。(1)能夠?qū)δM電路、數(shù)字電路進行仿真。)能夠?qū)δM電路、數(shù)字電路進行仿真。(2) 除了仿真除了仿真51系列單片機外,系列單片機外,Proteus軟件還可仿真軟件還可仿真68000系列、系列、AVR系列、系列、PIC12-18系列、系列、Z80系列、系列、HC11等其他各系列單片機。等其他各系列單片機。(3)具有硬件仿真開發(fā)系統(tǒng)中的全速、單步、設(shè)置斷點等具有硬件仿真開發(fā)系統(tǒng)中的全速、單步、設(shè)置斷點等調(diào)試功能調(diào)試功能,同時可觀察各個變量、寄存器等的當(dāng)前狀態(tài)。61(4)該軟件提供各種單片機與豐富的外圍接口芯片提供各種單片機與

52、豐富的外圍接口芯片、存儲器芯片組成的系統(tǒng)仿真、RS-232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能。(5)提供豐富的虛擬儀器,如示波器、邏輯分析儀、信號豐富的虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。發(fā)生器等。利用虛擬儀器在仿真過程中可以測量系統(tǒng)外圍電路的特性,設(shè)計者可充分利用Proteus軟件提供的虛擬儀器,來進行系統(tǒng)的軟件仿真測試與調(diào)試。 總之,是一款功能強大的單片機軟件仿真開發(fā)工具。62 在使用Proteus進行仿真開發(fā)時,編譯調(diào)試環(huán)境可選用編譯調(diào)試環(huán)境可選用Keil C51 Vision 3軟件軟件。該軟件支持眾多不同公司的MCS-51架構(gòu)的芯片,集編輯、編

53、譯和程序仿真等于一體,同時還支持匯編和C語言的程序設(shè)計,界面友好易學(xué),在調(diào)試程序、軟件仿真方面有強大的功能。 用用Proteus調(diào)試不需任何硬件在線仿真器,也不需要用戶不需任何硬件在線仿真器,也不需要用戶硬件樣機,直接就可以在硬件樣機,直接就可以在PC機上開發(fā)和調(diào)試單片機軟件。機上開發(fā)和調(diào)試單片機軟件。調(diào)試完畢的軟件可以將機器代碼固化,一般能直接投入運行。63 盡管Proteus具有開發(fā)效率高,不需附加的硬件開發(fā)裝置成本。但是軟件模擬器是使用純軟件來仿真,對實時性還不對實時性還不能完全準(zhǔn)確地模擬能完全準(zhǔn)確地模擬,不能進行用戶樣機硬件部分的診斷與實不能進行用戶樣機硬件部分的診斷與實時在線仿真時在

54、線仿真。 因此在系統(tǒng)開發(fā)中,一般是先用Proteus設(shè)計出系統(tǒng)的硬件電路,編寫程序,在Proteus環(huán)境下仿真調(diào)試通過。然后依照仿真的結(jié)果,完成實際硬件設(shè)計。再將仿真通過的程序用燒錄到程序存儲器中,然后安裝到用戶樣機硬件板上去觀察運行結(jié)果,如有問題,再連接硬件仿真器去分析、調(diào)試。6413.3.3 用戶樣機的仿真調(diào)試用戶樣機的仿真調(diào)試 介紹如何使用仿真開發(fā)工具進行匯編語言源程序編寫、調(diào)試以及與用戶樣機硬件聯(lián)調(diào)工作。1用戶樣機的程序調(diào)試用戶樣機的程序調(diào)試 用戶源程序調(diào)試過程如圖圖13-14,分以下4個步驟。(1)輸入用戶源程序)輸入用戶源程序。用戶使用編輯軟件WS,按照匯編語言源程序要求的格式、語

55、法規(guī)定,把源程序輸入到把源程序輸入到PC機中,機中,并保存在磁盤上并保存在磁盤上。65圖圖13-14 用戶樣機軟件設(shè)計、調(diào)試的過程 (2)在)在PC機上,利用匯編程序?qū)τ脩粼闯绦蜻M行匯編,機上,利用匯編程序?qū)τ脩粼闯绦蜻M行匯編,直至語法錯誤全部糾正為止。直至語法錯誤全部糾正為止。如無語法錯誤,則進入下一個步驟。 (3)動態(tài)在線調(diào)試。)動態(tài)在線調(diào)試。這一步對用戶的源程序進行調(diào)試。上述的步驟(1)、步驟(2)是一個純粹的軟件運行過程,這一步,必須要有在線仿真器配合,這一步,必須要有在線仿真器配合,才能對用戶源程序進行調(diào)試。用戶程序中分為與用戶樣機硬件無關(guān)以及與用戶樣機緊密相關(guān)的程序。67 對于與用

56、戶樣機硬件無關(guān)的程序,對于與用戶樣機硬件無關(guān)的程序,如計算程序如計算程序,雖無語法錯誤,但可能存在邏輯錯誤,使計算結(jié)果不正確,此時必須借助于在線仿真器的動態(tài)在線調(diào)試手段,如單步運行、設(shè)置斷點等,發(fā)現(xiàn)邏輯錯誤,然后返回到步驟(1)修改,直至邏輯錯誤糾正為止。 對于與樣機硬件緊密相關(guān)的程序段與樣機硬件緊密相關(guān)的程序段(如接口驅(qū)動程序),一定先把在線仿真器的仿真插頭插入用戶樣機的單片機插座中(見圖圖13-13),進行在線仿真調(diào)試,利用仿真開發(fā)系統(tǒng)提供單步、設(shè)置斷點等調(diào)試手段,來進行系統(tǒng)的調(diào)試。68 部分程序段運行有可能不正常,部分程序段運行有可能不正常,可能是可能是軟件邏輯軟件邏輯上有問題,上有問題

57、,也可能是也可能是硬件硬件有故障有故障,必須通過仿真工具提供的調(diào)試手段,把硬件故障排除后,再與硬件配合,把硬件故障排除后,再與硬件配合,對用戶程序進行動態(tài)在線調(diào)試。對于軟件的邏輯錯誤,則返回到第一步進行修改,直至邏輯錯誤消除為止。在調(diào)試這類程序時,硬件調(diào)試與軟件調(diào)試是不能完全分開的。許多硬件錯誤是通過軟件的調(diào)試而發(fā)現(xiàn)和糾正的。(4)將調(diào)試完畢的用戶程序通過)將調(diào)試完畢的用戶程序通過編程寫入器編程寫入器(也稱燒寫(也稱燒寫器),固化在程序存儲器中。器),固化在程序存儲器中。692用戶樣機的硬件調(diào)試用戶樣機的硬件調(diào)試 用戶樣機全部焊接完畢,就可對樣機的硬件進行調(diào)試。首先進行靜態(tài)調(diào)試靜態(tài)調(diào)試,目的是

58、排除明顯的硬件故障。(1)靜態(tài)調(diào)試)靜態(tài)調(diào)試 分兩步: 第一步第一步在樣機加電前,根據(jù)硬件設(shè)計圖,用萬用表等工具,仔細檢查樣機線路樣機線路是否連接正確是否連接正確,并核對元器件型號、規(guī)格和安裝是否符合要求,應(yīng)特別注意應(yīng)特別注意電源系統(tǒng)電源系統(tǒng)的檢查的檢查,防止電源的短路和極性錯誤,并重點檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線、控制總線)是否存在相互之間短路或與其他信號線短路。70 第二步第二步加電后檢查各芯片插座上有關(guān)引腳的電位有關(guān)引腳的電位,測量各各點電平是否正常點電平是否正常,尤其應(yīng)注意AT89S51插座的各點電位,若若有高壓,與在線仿真器聯(lián)機調(diào)試時,將會損壞在線仿真器有高壓,與在線仿真器聯(lián)機調(diào)

59、試時,將會損壞在線仿真器。 具體步驟如下。具體步驟如下。 電源檢查。電源檢查。當(dāng)用戶樣機板連接或焊接完成之后,先不插主先不插主要元器件,要元器件,通上電源。通常用+5V直流電源(這是TTL電源),用萬用表電壓檔測試各元器件插座上相應(yīng)電源引腳電各元器件插座上相應(yīng)電源引腳電壓數(shù)值是否正確,極性是否符合。壓數(shù)值是否正確,極性是否符合。如有錯誤,要及時檢查、排除,以使每個電源引腳的數(shù)值都符合要求。71各元器件電源檢查。各元器件電源檢查。斷開電源,按正確的元器件方向插上元器件。最好是分別插入,分別通電,最好是分別插入,分別通電,逐一檢查每個元器件逐一檢查每個元器件上的電源是否正確上的電源是否正確,直到最

60、后全部插上元器件。通電后,每個元器件上電源值應(yīng)正確無誤。檢查相應(yīng)芯片的邏輯關(guān)系。檢查相應(yīng)芯片的邏輯關(guān)系。通常采用靜態(tài)電平檢查法,即靜態(tài)電平檢查法,即在一個芯片信號輸入端加入一個相應(yīng)電平,檢查輸出電平是在一個芯片信號輸入端加入一個相應(yīng)電平,檢查輸出電平是否正確。否正確。單片機系統(tǒng)大都是數(shù)字邏輯電路,使用電平檢查法可首先檢查出邏輯設(shè)計是否正確,選用的元器件是否符合要求,邏輯關(guān)系是否匹配,元器件連接關(guān)系是否符合要求等。72(2)在線仿真與動態(tài)調(diào)試)在線仿真與動態(tài)調(diào)試 用戶樣機中的硬件故障硬件故障(如各個部件內(nèi)部存在的故障和部件之間連接的邏輯錯誤)主要靠聯(lián)機在線仿真來排除聯(lián)機在線仿真來排除 在斷電情況

溫馨提示

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

評論

0/150

提交評論