第13章AT89S51單片機的應(yīng)用設(shè)計與調(diào)試課件_第1頁
第13章AT89S51單片機的應(yīng)用設(shè)計與調(diào)試課件_第2頁
第13章AT89S51單片機的應(yīng)用設(shè)計與調(diào)試課件_第3頁
第13章AT89S51單片機的應(yīng)用設(shè)計與調(diào)試課件_第4頁
第13章AT89S51單片機的應(yīng)用設(shè)計與調(diào)試課件_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第章單片機應(yīng)用系統(tǒng)的設(shè)計與調(diào)試111第章單片機應(yīng)用系統(tǒng)的設(shè)計11第章單片機應(yīng)用系統(tǒng)的設(shè)計與調(diào)試單片機應(yīng)用系統(tǒng)的設(shè)計步驟單片機應(yīng)用系統(tǒng)設(shè)計硬件設(shè)計應(yīng)考慮的問題典型的單片機應(yīng)用系統(tǒng)系統(tǒng)設(shè)計中的總線驅(qū)動軟件設(shè)計考慮的問題軟件的總體框架設(shè)計單片機應(yīng)用系統(tǒng)的仿真開發(fā)與調(diào)試22第章單片機應(yīng)用系統(tǒng)的設(shè)計與調(diào)試22【內(nèi)容概要】本章介紹單片機應(yīng)用系統(tǒng)的設(shè)計,內(nèi)容主要包括:應(yīng)用系統(tǒng)的設(shè)計步驟和方法,應(yīng)用系統(tǒng)的硬件設(shè)計以及應(yīng)用程序的總體框架設(shè)計。此外,還介紹了目前流行的單片機應(yīng)用系統(tǒng)的仿真開發(fā)工具以及如何利用仿真開發(fā)工具對單片機應(yīng)用系統(tǒng)進行開發(fā)調(diào)試。3【內(nèi)容概要】3單片機應(yīng)用系統(tǒng)的設(shè)計步驟單片機應(yīng)用系統(tǒng)的設(shè)計工作,首先要經(jīng)過深入細致的需求分析,周密而科學的方案論證才能使系統(tǒng)設(shè)計工作順利完成。一個單片機應(yīng)用系統(tǒng)設(shè)計,一般可分為個階段。()明確任務(wù)和需求分析以及擬定設(shè)計方案階段明確系統(tǒng)所要完成的任務(wù)十分重要,它是設(shè)計工作的基礎(chǔ),設(shè)計方案正確性的保證。需求分析的內(nèi)容主要包括:被測控參數(shù)的形式(電量、非電量、模擬量、數(shù)字量等)、被測控參數(shù)的范圍、性能指標、系統(tǒng)功能、工作環(huán)境、顯示、報警、打印要求等。4單片機應(yīng)用系統(tǒng)的設(shè)計步驟4擬定設(shè)計方案是根據(jù)任務(wù)的需求分析,先確定大致方向和準備采用的手段。注意,在進行設(shè)計方案確定的時候,簡單的方法往往可以解決大問題,切忌“將簡單的問題復(fù)雜化”()硬件和軟件設(shè)計階段根據(jù)擬定的設(shè)計方案,設(shè)計出相應(yīng)的系統(tǒng)硬件電路。硬件設(shè)計的前提是必須能夠完成系統(tǒng)的要求和保證可靠性。在硬件設(shè)計時,如果能夠?qū)⒂布娐吩O(shè)計與軟件設(shè)計結(jié)合起來考慮效果會更好。因為當有些問題在硬件電路中無法完成時,可直接由軟件來完成(如某些軟件濾波、校準功能等);當軟件編寫程序很麻煩的時候,通過稍稍改動硬件電路(或盡可能不改動)可能會使軟件變得十分簡單。另外在一些要求55擬定設(shè)計方案是根據(jù)任務(wù)的需求分析,先確定大致方向和準系統(tǒng)實時性強、響應(yīng)速度快的場合,則往往必須用硬件代替軟件來完成某些功能。所以在硬件電路設(shè)計時,最好能夠與軟件的設(shè)計結(jié)合起來,統(tǒng)一考慮,合理地安排軟、硬件的比例,使系統(tǒng)具有最佳的性價比。當硬件電路設(shè)計完成后,就可進行硬件電路板的繪制和焊接工作了。接下來的工作就是軟件設(shè)計。正確的編程方法就是根據(jù)需求分析,先繪制出軟件的流程圖,該環(huán)節(jié)十分重要。流程圖的繪制往往不能一次成功,通常需要進行多次的修改。流程圖的繪制可按照由簡到繁的方式再逐步細化,先繪制系統(tǒng)大體上需要執(zhí)行的程序模塊,然后將這些模塊按照要求組合在一起,在大方向沒有問題后,再將每個模塊進行細化,最后形成軟件流程66系統(tǒng)實時性強、響應(yīng)速度快的場合,則往往必須用硬件代替軟件來完圖,這樣程序的編寫速度就會很快,同時程序流程圖還會為后面的調(diào)試工作帶來很多方便,如程序調(diào)試中某個模塊不正常,就可以通過流程圖來查找問題的原因。軟件編寫者一定要克服不繪制流程圖直接在計算機上編寫程序的習慣。設(shè)計者也可以先使用虛擬仿真開發(fā)工具來進行單片機系統(tǒng)的仿真設(shè)計。使用完成的單片機系統(tǒng)設(shè)計與用戶樣機在硬件上無任何聯(lián)系,這是一種完全用軟件手段來對單片機硬件電路和軟件來進行設(shè)計、開發(fā)與仿真調(diào)試的開發(fā)工具。如果一個單片機的軟硬件系統(tǒng),先使用軟件虛擬仿真工具進行系統(tǒng)設(shè)計并仿真調(diào)試通過,雖然還不能完全說77圖,這樣程序的編寫速度就會很快,同時程序流程圖還會為后面的調(diào)明實際系統(tǒng)就完全通過,但至少在邏輯上是行得通的。系統(tǒng)虛擬仿真通過后,再進行實際的軟硬件設(shè)計與實現(xiàn),可大大減少設(shè)計上所走的彎路,軟件編寫調(diào)試可與硬件設(shè)計同步進行,可大大提高設(shè)計效率,這也是目前世界上廣泛流行的一種開發(fā)設(shè)計方法。()硬件與軟件聯(lián)合調(diào)試階段上述的軟硬件系統(tǒng)虛擬設(shè)計仿真調(diào)試通過后,再使用硬件仿真開發(fā)工具(在線仿真器)與用戶樣機來進行實際調(diào)試,具體的調(diào)試方法和過程,將在本章的后面進行介紹。所有的軟件和硬件電路全部調(diào)試通過,并不意味著單片機系統(tǒng)的設(shè)計成功,還需要通過實際運行來調(diào)整系統(tǒng)的運行狀88明實際系統(tǒng)就完全通過,但至少在邏輯上是行得通的。系統(tǒng)虛擬仿真態(tài),例如系統(tǒng)中的轉(zhuǎn)換結(jié)果是否正確,如果不正確,是否要調(diào)零和調(diào)整基準電壓等。()資料與文件整理編制階段當系統(tǒng)全部調(diào)試通過后,就進入資料與文件整理編制階段。資料與文件包括:任務(wù)描述、設(shè)計的指導思想及設(shè)計方案論證、性能測定及現(xiàn)場試用報告與說明、使用指南、軟件資料(流程圖、子程序使用說明、地址分配、程序清單)、硬件資料(電原理圖、元件布置圖及接線圖、接插件引腳圖、線路板圖、注意事項)。文件不僅是設(shè)計工作的結(jié)果,而且是以后使用、維修以及進一步再設(shè)計的依據(jù)。因此,一定要精心編寫,描述清楚,使數(shù)據(jù)及資料齊全。99態(tài),例如系統(tǒng)中的轉(zhuǎn)換結(jié)果是否正確,如果不正確,是否要調(diào)零和調(diào)單片機應(yīng)用系統(tǒng)設(shè)計本節(jié)介紹如何進行單片機應(yīng)用系統(tǒng)的設(shè)計。主要從硬件設(shè)計和軟件設(shè)計兩個方面考慮。硬件設(shè)計應(yīng)考慮的問題在硬件設(shè)計時,應(yīng)重點首先考慮以下幾個問題。.盡可能采用高集成度功能強的芯片()單片機的選型。隨著集成電路技術(shù)的飛速發(fā)展,單片機的集成度越來越高,許多外圍部件都已集成在芯片內(nèi),有許多單片機本身就是一個系統(tǒng),這樣可以省去許多外圍部件的擴展工作,使設(shè)計工作大大簡化。在第章中,已經(jīng)介紹1010單片機應(yīng)用系統(tǒng)設(shè)計1010了目前較為流行的各種單片機機型,用戶可根據(jù)任務(wù)的需求,選擇合適的機型。例如,目前市場上較為流行的美國公司的位單片機,片內(nèi)集成有通道、兩路、兩路電壓比較器,內(nèi)置溫度傳感器、定時器、可編程數(shù)字交叉開關(guān)和個通用口、電源監(jiān)測、看門狗、多種類型的串行總線(兩個、)等。使用片位單片機,就構(gòu)成了一個應(yīng)用系統(tǒng)。再如,如果系統(tǒng)需要較大的驅(qū)動能力和較強的抗干擾能力,可考慮選用單片機或單片機。()優(yōu)先選用片內(nèi)帶有較大容量存儲器的產(chǎn)品。例如,使用公司的1111了目前較為流行的各種單片機機型,用戶可根據(jù)任務(wù)的需求,選擇合系列產(chǎn)品,公司的(內(nèi)有的存儲器)等,可省去擴展片外程序存儲器的工作,減少芯片數(shù)量,縮小系統(tǒng)的體積。()容量的考慮。大多數(shù)單片機片內(nèi)的單元有限,當需增強軟件數(shù)據(jù)處理功能時,往往覺得不足,這時可選用片內(nèi)具有較大容量的單片機,例如。()對端口留有余地。在用戶樣機研制出來進行現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題是不能單靠軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在1212系列產(chǎn)品,公司的(內(nèi)有的存儲器)等,可省去擴展片外程序存儲硬件設(shè)計之初就多設(shè)計留有一些端口,這些問題就會迎刃而解了。()預(yù)留和通道。與上述的端口同樣的原因,留出一些和通道將來可能會解決大問題。.以軟代硬原則上,只要軟件能做到且能滿足性能要求,就不用硬件。硬件多了不但增加成本,而且系統(tǒng)故障率也會提高。以軟件代硬件的實質(zhì),就是以時間換空間,軟件執(zhí)行過程需要消耗時間,因此這種替代帶來的問題是實時性下降。在實時性滿足要求的場合,以軟代硬是合算的。1313硬件設(shè)計之初就多設(shè)計留有一些端口,這些問題就會迎刃而解了。1.工藝設(shè)計工藝設(shè)計包括機箱、面板、配線、接插件等。必須考慮到安裝、調(diào)試、維修的方便。另外,硬件抗干擾措施(將在本章的后面介紹)也必須在硬件設(shè)計時一并考慮進去。典型的單片機應(yīng)用系統(tǒng)典型的單片機應(yīng)用系統(tǒng)框圖如圖所示。典型的單片機應(yīng)用系統(tǒng)主要由單片機基本部分、輸入部分和輸出部分組成。()單片機基本部分基本部分由單片機及其擴展的外設(shè)及芯片,如鍵盤、顯示器、打印機、數(shù)據(jù)存儲器、程序存儲器以及數(shù)字等組成。1414.工藝設(shè)計1414圖單片機典型應(yīng)用系統(tǒng)框圖15圖單片機典型應(yīng)用系統(tǒng)框圖15()輸入部分這是“測”的部分,被“測”的信號類型有:數(shù)字量、模擬量和開關(guān)量。模擬量輸入檢測的主要包括信號調(diào)理電路以及轉(zhuǎn)換器。轉(zhuǎn)換器中都集成了包括多路切換、采樣保持、轉(zhuǎn)換等電路,轉(zhuǎn)換器或者直接集成在單片機片內(nèi)。連接傳感器與轉(zhuǎn)換器之間的橋梁是信號調(diào)理電路,傳感器輸出的模擬信號要經(jīng)過信號調(diào)理電路對信號進行放大、濾波、隔離、量程調(diào)整等,變換成適合轉(zhuǎn)換的電壓信號。信號放大通常由單片式儀表放大器承擔。儀表放大器對信號進行放大比普通運算放大器具有更優(yōu)異的性能。如何根據(jù)不同的傳感器1616()輸入部分1616正確地選擇儀表放大器來進行信號調(diào)理電路的設(shè)計,請讀者參閱有關(guān)資料和文獻。()輸出部分這部分是應(yīng)用系統(tǒng)“控”的部分,包括數(shù)字量、開關(guān)量控制信號的輸出和模擬量控制信號(常用于伺服控制)的輸出。系統(tǒng)設(shè)計中的總線驅(qū)動一個單片機應(yīng)用系統(tǒng)有時往往是多芯片系統(tǒng),如何實現(xiàn)單片機對多片芯片的驅(qū)動的問題。1717正確地選擇儀表放大器來進行信號調(diào)理電路的設(shè)計,請讀者參閱有關(guān)在單片機擴展多片芯片時,要注意單片機個并行雙向口的~口的驅(qū)動能力。下面首先討論這個問題。的、口通常作為總線端口,當系統(tǒng)擴展的芯片較多時,可能造成負載過重,致使驅(qū)動能力不夠,系統(tǒng)不能可靠地工作,所以通常要附加總線驅(qū)動器或其他驅(qū)動電路。因此在多芯片應(yīng)用系統(tǒng)設(shè)計中首先要估計總線的負載情況,以確定是否需要對總線的驅(qū)動能力進行擴展。圖為單片機總線驅(qū)動擴展原理圖??谛枰獑蜗蝌?qū)動,常見的單向總線驅(qū)動器為。1818在單片機擴展多片芯片時,要注意單片機個并行雙向口的~圖單片機總線驅(qū)動擴展原理圖19圖單片機總線驅(qū)動擴展原理圖19圖為引腳圖和邏輯圖。個三態(tài)驅(qū)動器分成兩組,分別由*和*控制??谧鳛閿?shù)據(jù)總線,是雙向傳輸,驅(qū)動器應(yīng)為雙向驅(qū)動、三態(tài)輸出,并由兩個控制端來控制數(shù)據(jù)傳送方向。如圖所示,數(shù)據(jù)輸出允許控制端有效時,數(shù)據(jù)總線輸入為高阻態(tài),輸出為開通狀態(tài);數(shù)據(jù)輸入允許控制端有效時,則狀態(tài)與上相反。常見的雙向驅(qū)動器為,圖為其引腳和邏輯圖。個三態(tài)門中每兩個三態(tài)門組成一路雙向驅(qū)動。驅(qū)動方向由*、兩個控制端控制驅(qū)動器有效或高阻態(tài),在控制端有效(*)時,控制端控制驅(qū)動器的驅(qū)動方向,時驅(qū)動方向為從至,時則相反。2020圖為引腳圖和邏輯圖。個三態(tài)驅(qū)動器分成兩組,分別由*和21圖單向驅(qū)動器引腳圖和邏輯圖2121圖單向驅(qū)動器引腳圖和邏輯圖21圖的引腳圖和邏輯圖22圖的引腳圖和邏輯圖22圖所示為單片機應(yīng)用系統(tǒng)總線驅(qū)動擴展電路圖??诘碾p向驅(qū)動采用,如圖()所示;口的單向驅(qū)動器采用,如圖()所示??诘碾p向驅(qū)動器的*接地,保證芯片一直處于工作狀態(tài),而輸入輸出的方向控制由單片機的數(shù)據(jù)存儲器的“讀”控制引腳(*)和程序存儲器的取指控制引腳(*)通過與門控制引腳實現(xiàn)。這種連接方法無論是“讀”數(shù)據(jù)存儲器中數(shù)據(jù)(*有效)還是從程序存儲器中取指令(*有效),都能保證對口的輸入驅(qū)動;除此以外的時間(*及*均無效),保證對口的輸出驅(qū)動。對于口,因為只用作單向的地址輸出,故的驅(qū)動門控制端*、*接地。2323圖所示為單片機應(yīng)用系統(tǒng)總線驅(qū)動擴展電路圖??诘碾p向驅(qū)24圖單片機應(yīng)用系統(tǒng)中的總線驅(qū)動擴展電路圖2424圖單片機應(yīng)用系統(tǒng)中的總線驅(qū)動擴展電路圖24軟件設(shè)計考慮的問題在進行應(yīng)用系統(tǒng)的總體設(shè)計時,軟件設(shè)計和硬件設(shè)計應(yīng)統(tǒng)一考慮,相互結(jié)合進行。當系統(tǒng)的硬件電路設(shè)計定型后,軟件的任務(wù)也就明確了。一般來說,軟件的功能分為兩大類。一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量、計算、顯示、打印、輸出控制等;另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當組織調(diào)度的角色。設(shè)計人員在進行程序設(shè)計時應(yīng)從以下幾個方面加以考慮。()根據(jù)軟件功能要求,將系統(tǒng)軟件分成若干相對獨立的部分,設(shè)計出合理的軟件總體結(jié)構(gòu),使其清晰、簡潔、流程合理。2525軟件設(shè)計考慮的問題2525()各功能程序?qū)嵭心K化、子程序化。既便于調(diào)試、鏈接,又便于移植、修改。()在編寫應(yīng)用軟件之前,應(yīng)繪制出程序流程圖。多花一些時間來設(shè)計程序流程圖,就可以節(jié)約幾倍于源程序的編輯和調(diào)試時間。()要合理分配系統(tǒng)資源,包括、、定時器計數(shù)器、中斷源等。其中最關(guān)鍵的是片內(nèi)分配。對單片機來講,片內(nèi)指~單元,這個字節(jié)的功能不完全相同,分配時應(yīng)充分發(fā)揮其特長,做到物盡其用。例如,在工作寄存器的個單元中,和具有指針功能,是編程的重要角色,避免作為它用;~這個字節(jié)2626()各功能程序?qū)嵭心K化、子程序化。既便于調(diào)試、鏈接,又便于具有位尋址功能,用來存放各種標志位、邏輯變量、狀態(tài)變量等;設(shè)置堆棧區(qū)時應(yīng)事先估算出子程序和中斷嵌套深度及程序中堆棧操作指令使用情況,其大小應(yīng)留有余量。若系統(tǒng)中擴展了存儲器,應(yīng)把使用頻率最高的數(shù)據(jù)緩沖器安排在片內(nèi)中,以提高處理速度。當資源規(guī)劃好后,應(yīng)列出一張詳細的資源分配表,以備編程時查用方便。軟件的總體框架設(shè)計設(shè)計者在軟件設(shè)計時,感覺比較困難的是如何進行系統(tǒng)軟件的總體框架設(shè)計。下面給出一個典型的例子,供讀者在軟件設(shè)計時參考。2727具有位尋址功能,用來存放各種標志位、邏輯變量、狀態(tài)變量等;設(shè)【例】有一個單片機的應(yīng)用系統(tǒng),假設(shè)個中斷源都已用到,應(yīng)用系統(tǒng)的程序框架如下:2828【例】有一個單片機的應(yīng)用系統(tǒng),假設(shè)個中斷源都已用到,應(yīng)用系29292929303031上述程序框架僅供參考,當然在實際設(shè)計中,個中斷源也未必全用。3131上述程序框架僅供參考,當然在實際設(shè)計中,個中單片機應(yīng)用系統(tǒng)的仿真開發(fā)與調(diào)試當一個單片機應(yīng)用系統(tǒng)(用戶樣機)完成了硬件和軟件設(shè)計,全部元器件安裝完畢后,在用戶樣機的程序存儲器中放入編寫好的應(yīng)用程序,系統(tǒng)即可運行。但應(yīng)用程序運行一次性成功幾乎是不可能的,多少會存在一些軟件、硬件上的錯誤,這就需要借助單片機的仿真開發(fā)工具(在線仿真器)進行調(diào)試,發(fā)現(xiàn)錯誤并加以改正。單片機只是一個芯片,既沒有鍵盤,又沒有、顯示器,也無法進行軟件的開發(fā)(如編輯、匯編、調(diào)試程序等),因此,必須借助仿真開發(fā)工具所提供的開發(fā)手段來進行。一般來說,仿真開發(fā)工具應(yīng)具有如下最基本的功能。3232單片機應(yīng)用系統(tǒng)的仿真開發(fā)與調(diào)試3232()用戶樣機程序的輸入與修改。()程序的運行、調(diào)試(單步運行、設(shè)置斷點運行)、排錯、狀態(tài)查詢等功能。()用戶樣機硬件電路的診斷與檢查。()有較全的開發(fā)軟件。用戶可用匯編語言或語言編制應(yīng)用程序;由開發(fā)系統(tǒng)編譯連接生成目標文件、可執(zhí)行文件。配有反匯編軟件,能將目標程序轉(zhuǎn)換成匯編語言程序;有豐富的子程序可供用戶選擇調(diào)用。()將調(diào)試正確的程序?qū)懭氲匠绦虼鎯ζ髦?。下面介紹常用的仿真開發(fā)工具。3333()用戶樣機程序的輸入與修改。3333.仿真開發(fā)系統(tǒng)簡介通用機仿真開發(fā)系統(tǒng)是目前設(shè)計者使用最多的一類開發(fā)裝置,由在線仿真器與機上運行的仿真開發(fā)軟件兩部分組成。這是一種通過機的口,外加在線仿真器的在線仿真開發(fā)系統(tǒng),如圖所示。在調(diào)試用戶程序時,在線仿真器一側(cè)與機的口相連,另一側(cè)的仿真插頭插入到用戶樣機的單片機插座上,來對樣機上的單片機進行“仿真”。從仿真插頭向在線仿真器看去,看到的就是一個“單片機”。這個“單片機”是“出借”給用戶樣機的,暫時代替用戶樣機上的單片機。仿真開發(fā)系統(tǒng)除了“出借”34.仿真開發(fā)系統(tǒng)簡介34圖通用機仿真開發(fā)系統(tǒng)35圖通用機仿真開發(fā)系統(tǒng)35單片機外,還“出借”仿真用的,來暫收代替用戶樣機上的程序存儲器,存放待調(diào)試的用戶程序。但是這個“單片機”片內(nèi)程序的運行是可以跟蹤、修改和調(diào)試的。由于有機上強大的仿真開發(fā)軟件支持,可在機的其屏幕上觀察用戶程序的運行情況,當按照圖將仿真開發(fā)系統(tǒng)與機聯(lián)機后,用戶可利用機上的仿真開發(fā)軟件,在機上編輯、修改源程序,然后通過翻譯軟件(匯編語言編程翻譯軟件為匯編程序,語言編程翻譯軟件為相應(yīng)的編譯程序)將其匯編成機器代碼,傳送到在線仿真器中的“仿真”中,這時用戶可使用在線仿真器,采用單步、斷點、跟蹤、全速等手段3636單片機外,還“出借”仿真用的,來暫收代替用戶樣機上的程序存儲調(diào)試用戶程序,并進行修改和查找軟、硬件故障,將系統(tǒng)狀態(tài)實時地顯示在屏幕上。待程序調(diào)試通過后,再使用仿真開發(fā)系統(tǒng)提供的編程器或?qū)S镁幊唐?,把調(diào)試完畢的程序?qū)懭氲絾纹瑱C片內(nèi)的程序存儲器中。此類仿真開發(fā)系統(tǒng)配置不同的在線仿真器,可仿真開發(fā)各種單片機。但是隨著技術(shù)的普及,對于單片機也可不使用在線仿真器以及編程器,用戶只需要在機上修改程序,然后將修改的程序直接寫入用戶樣機的單片機的存儲器中,運行程序觀察運行結(jié)果,如有問題可在機上修改程序,重新在線寫入,直至運行結(jié)果滿意為止。這樣可省去在線仿真器和編程器,但不足的是,不能對用戶程序進行硬件單步、斷點、跟蹤、全速等手段來調(diào)試。3737調(diào)試用戶程序,并進行修改和查找軟、硬件故障,將系統(tǒng)狀態(tài)實時地在工業(yè)現(xiàn)場,往往沒有機的支持,此時可使用獨立型仿真器。該類仿真器采用模塊化結(jié)構(gòu),配有不同外設(shè),如外存板、打印機、鍵盤顯示器等,用戶可根據(jù)需要選用。由于沒有機,這時使用獨立型仿真器來進行的仿真調(diào)試工作,要輸入機器碼,稍顯麻煩一些。.軟件仿真開發(fā)工具使用軟件虛擬仿真開發(fā)工具進行單片機系統(tǒng)的設(shè)計與仿真,不需要在線仿真器,也不需要用戶樣機,直接就可以在機上進行。調(diào)試完畢的軟件可將其機器代碼寫入到片內(nèi)程序存儲器中,一般能直接投入運行。但是軟件模擬器是使用純軟件來對用戶系統(tǒng)仿真,3838在工業(yè)現(xiàn)場,往往沒有機的支持,此時可使用獨立型仿真器不能進行用戶樣機硬件部分的診斷與實時在線仿真。因此在系統(tǒng)的開發(fā)中,一般是先用仿真軟件設(shè)計出系統(tǒng)的虛擬的硬件原理電路,編寫程序,在環(huán)境下仿真調(diào)試通過。然后再依照仿真的結(jié)果,完成實際的硬件設(shè)計,再將仿真調(diào)試通過的程序?qū)懭氲接脩魳訖C的存儲器中,觀察運行結(jié)果,如果有問題,再連接硬件仿真器去分析、調(diào)試。.用戶樣機的源程序調(diào)試下面介紹如何使用仿真開發(fā)工具進行匯編語言源程序編寫、調(diào)試以及與用戶樣機硬件聯(lián)調(diào)工作。用戶源程序調(diào)試過程如圖所示,可分為以下個步驟。3939不能進行用戶樣機硬件部分的診斷與實時在線仿真。因此在3939圖用戶樣機軟件設(shè)計、調(diào)試的過程40圖用戶樣機軟件設(shè)計、調(diào)試的過程4041()輸入用戶源程序。用戶使用編輯軟件,按照匯編語言源程序要求的格式、語法規(guī)定,把源程序輸入到機中,并保存在磁盤上。()在機上,利用匯編程序?qū)τ脩粼闯绦蜻M行匯編,直至語法錯誤全部糾正為止。如無語法錯誤,則進入下一個步驟。()動態(tài)在線調(diào)試。這一步對用戶的源程序進行調(diào)試。上述的步驟()、步驟()是一個純粹的軟件運行過程,而在這一步,必須要有在線仿真器配合,才能對用戶源程序進行調(diào)試。用戶程序中分為與用戶樣機硬件無關(guān)以及與用戶樣機緊密相關(guān)的程序。4141()輸入用戶源程序。用戶使用編輯軟件,按照匯編語言源程序42對于與用戶樣機硬件無關(guān)的程序,如計算程序,雖然已經(jīng)沒有語法錯誤,但可能存在邏輯錯誤,使計算結(jié)果不正確,此時必須借助于在線仿真器的動態(tài)在線調(diào)試手段,如單步運行、設(shè)置斷點等,發(fā)現(xiàn)邏輯錯誤,然后返回到步驟()修改,直至邏輯錯誤糾正為止。對于與用戶樣機硬件緊密相關(guān)的程序段(如接口驅(qū)動程序),一定要先把在線仿真器的仿真插頭插入用戶樣機的單片機插座中(見圖),進行在線仿真調(diào)試,利用仿真開發(fā)系統(tǒng)提供單步、設(shè)置斷點等調(diào)試手段,來進行系統(tǒng)的調(diào)試。有關(guān)部分程序段運行有可能不正常,可能是軟件邏輯上有問題,也可能是硬件有故障,必須先通過在線仿真調(diào)試程序提4242對于與用戶樣機硬件無關(guān)的程序,如計算程序,雖然已43供的調(diào)試手段,把硬件故障排除以后,再與硬件配合,對用戶程序進行動態(tài)在線調(diào)試。對于軟件的邏輯錯誤,則返回到第一步進行修改,直至邏輯錯誤消除為止。在調(diào)試這類程序時,硬件調(diào)試與軟件調(diào)試是不能完全分開的。許多硬件錯誤是通過軟件的調(diào)試而發(fā)現(xiàn)和糾正的。()將調(diào)試完畢的用戶程序通過編程器或?qū)懭?,固化在程序存儲器中。.用戶樣機的硬件調(diào)試當用戶樣機全部焊接完畢,就可對用戶樣機的硬件進行調(diào)試。首先進行靜態(tài)調(diào)試,靜態(tài)調(diào)試的目的是排除明顯的硬件故障。4343供的調(diào)試手段,把硬件故障排除以后,再與硬件配合,對用戶程44()用戶樣機的靜態(tài)調(diào)試靜態(tài)調(diào)試工作分為兩步。第一步是在樣機加電之前,根據(jù)硬件邏輯設(shè)計圖,先用萬用表等工具,仔細檢查樣機線路是否連接正確,并核對元器件的型號、規(guī)格和安裝是否符合要求,應(yīng)特別注意電源系統(tǒng)的檢查,以防止電源的短路和極性錯誤,并重點檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線、控制總線)是否存在相互之間短路或與其他信號線的短路。第二步是加電后檢查各芯片插座上有關(guān)引腳的電位,仔細測量各點電平是否正常,尤其應(yīng)注意插座的各點電位,若有高壓,與在線仿真器聯(lián)機調(diào)試時,將會損壞在線仿真器。4444()用戶樣機的靜態(tài)調(diào)試4445具體步驟如下。電源檢查。當用戶樣機板連接或焊接完成之后,先不插主要元器件,通上電源。通常用直流電源(這是電源),用萬用表電壓檔測試各元器件插座上相應(yīng)電源引腳電壓數(shù)值是否正確,極性是否符合。如有錯誤,要及時檢查、排除,以使每個電源引腳的數(shù)值都符合要求。各元器件電源檢查。斷開電源,按正確的元器件方向插上元器件。最好是分別插入,分別通電,并逐一檢查每個元器件上的電源是否正確,直到最后全部插上元器件。通電后,每個元器件上電源值應(yīng)正確無誤。4545具體步驟如下。45檢查相應(yīng)芯片的邏輯關(guān)系。檢查相應(yīng)芯片邏輯關(guān)系通常采用靜態(tài)電平檢查法,即在一個芯片信號的輸入端加入一個相應(yīng)電平,檢查輸出電平是否正確。單片機系統(tǒng)大都是數(shù)字邏輯電路,使用電平檢查法可首先檢查出邏輯設(shè)計是否正確,選用的元器件是否符合要求,邏輯關(guān)系是否匹配,元器件連接關(guān)系是否符合要求等。()用戶樣機的在線仿真調(diào)試在靜態(tài)調(diào)試中,對用戶樣機硬件進行初步調(diào)試,只能排除一些明顯的靜態(tài)故障。用戶樣機中的硬件故障(如各個部件內(nèi)部存在的故障和部件之間連接的邏輯錯誤)主要是靠聯(lián)機在線仿真來排除的。4646檢查相應(yīng)芯片的邏輯關(guān)系。檢查相應(yīng)芯片邏輯關(guān)系通常采用靜態(tài)電47在斷電情況下,除單片機外,插上所有的元器件,并把在線仿真器的仿真插頭插入樣機上單片機的插座(見圖),然后分別打開用戶樣機和仿真器電源后便可開始聯(lián)機在線仿真調(diào)試。前面已經(jīng)介紹,硬件調(diào)試和軟件調(diào)試是不能完全分開的,許多硬件錯誤是在軟件調(diào)試中發(fā)現(xiàn)和被糾正的。所以,在之前介紹的有關(guān)用戶樣機軟件調(diào)試的第()步的動態(tài)在線調(diào)試中,即包括聯(lián)機仿真、硬件在線動態(tài)調(diào)試以及硬件故障的排除。下面介紹在仿真開發(fā)機上如何利用簡單調(diào)試程序檢查用戶樣機。4747在斷電情況下,除單片機外,插上所有的元器件,并把利用仿真開發(fā)系統(tǒng)對用戶樣機進行硬件檢查,常常按其功能及通道分別編寫相應(yīng)簡短的實驗程序,來檢查各部分功能及邏輯是否正確,下面做簡單介紹。①檢查各地址譯碼輸出通常,地址譯碼輸出是一個低電平有效信號。因此在選到某一個芯片時(無論是內(nèi)存還是外設(shè)),其片選信號用示波器檢查應(yīng)該是一個負脈沖信號。下面討論如何檢查地址譯碼器輸出。例如,一片存儲芯片地址為~,則在開發(fā)系統(tǒng)上執(zhí)行如下程序:: , ,

48利用仿真開發(fā)系統(tǒng)對用戶樣機進行硬件檢查,常常按其功能程序執(zhí)行后,應(yīng)該從存儲器芯片的片選端看到等間隔的一串負脈沖,說明該芯片片選信號連接是正確的,即使不插入該存儲器芯片,只測量插座相應(yīng)片選引腳也會有上述結(jié)果。用同樣方法,可將各內(nèi)存及外設(shè)接口芯片的片選信號逐一進行檢查。如出現(xiàn)不正確的現(xiàn)象,就要檢查片選線連線是否正確,有無接觸不良或錯線、斷線問題。②檢查存儲器檢查存儲器時可編寫程序,對存儲器進行寫入,然后再讀出,將寫入和讀出的數(shù)據(jù)進行比較,發(fā)現(xiàn)錯誤,立即停止。將存儲器芯片插上,執(zhí)行如下程序:49程序執(zhí)行后,應(yīng)該從存儲器芯片的片選端看到等間隔的一串負脈沖,5050505051如一片芯片的每個單元都出現(xiàn)問題,則有可能是某些控制信號連接不正確;如一片芯片中一個或幾個單元出現(xiàn)問題,則有可能是這一芯片本身是不好的,可換一片再測試一下。③檢查擴展接口對可編程接口芯片,如,首先要對該接口芯片進行初始化,再對其端口進行操作。初始化要按系統(tǒng)設(shè)計要求進行,這個初始化程序調(diào)試好后就可作為正式編程的相應(yīng)內(nèi)容。程序初始化后,可對其端口進行讀寫。對開關(guān)量來講,在用戶樣機板上可利用鈕子開關(guān)和發(fā)光二極管進行模擬,也可直接接上驅(qū)動板進行檢查。一般情況下,5151如一片芯片的每個單元都出現(xiàn)問題,則有可能是某些52用戶樣機板先調(diào)試,驅(qū)動板單獨進行調(diào)試,這樣故障排除更方便些。如用自動程序檢查端口狀態(tài)不易觀察時,可用開發(fā)系統(tǒng)的單步功能,單步執(zhí)行程序,檢查內(nèi)部寄存器的有關(guān)內(nèi)容或外部相應(yīng)信號的狀態(tài),并確定開關(guān)量輸入輸出通道連接是否正確。若外擴一片芯片,端口地址為~,口為方式輸入,口、口都為方式輸出,則可用下述程序進行檢查:5252用戶樣機板先調(diào)試,驅(qū)動板單獨進行調(diào)試,這樣故障排除更方便5353535354對于鎖存器和緩沖器,可直接對其端口進行讀/寫,不存在初始化的問題。通過上面介紹的調(diào)試用戶樣機過程,讀者可以體會到離開仿真開發(fā)系統(tǒng)就根本不可能進行用戶樣機的軟硬件的聯(lián)調(diào),而調(diào)試的關(guān)鍵步驟—動態(tài)在線仿真調(diào)試,又完全依賴于開發(fā)系統(tǒng)中的在線仿真器。所以,開發(fā)系統(tǒng)的性能優(yōu)劣,主要取決于在線仿真器的性能優(yōu)劣,在線仿真器所能提供的仿真開發(fā)手段,直接影響設(shè)計者的設(shè)計、調(diào)試工作的效率。所以,對于設(shè)計者來說,在了解目前的開發(fā)系統(tǒng)的種類和性能之后,選擇一個性/價比高的仿真開發(fā)系統(tǒng),并能夠熟練地使用它來調(diào)試用戶樣機是十分重要的。5454對于鎖存器和緩沖器,可直接對其端口進行讀/寫,不第章單片機應(yīng)用系統(tǒng)的設(shè)計與調(diào)試555555第章單片機應(yīng)用系統(tǒng)的設(shè)計11第章單片機應(yīng)用系統(tǒng)的設(shè)計與調(diào)試單片機應(yīng)用系統(tǒng)的設(shè)計步驟單片機應(yīng)用系統(tǒng)設(shè)計硬件設(shè)計應(yīng)考慮的問題典型的單片機應(yīng)用系統(tǒng)系統(tǒng)設(shè)計中的總線驅(qū)動軟件設(shè)計考慮的問題軟件的總體框架設(shè)計單片機應(yīng)用系統(tǒng)的仿真開發(fā)與調(diào)試5656第章單片機應(yīng)用系統(tǒng)的設(shè)計與調(diào)試22【內(nèi)容概要】本章介紹單片機應(yīng)用系統(tǒng)的設(shè)計,內(nèi)容主要包括:應(yīng)用系統(tǒng)的設(shè)計步驟和方法,應(yīng)用系統(tǒng)的硬件設(shè)計以及應(yīng)用程序的總體框架設(shè)計。此外,還介紹了目前流行的單片機應(yīng)用系統(tǒng)的仿真開發(fā)工具以及如何利用仿真開發(fā)工具對單片機應(yīng)用系統(tǒng)進行開發(fā)調(diào)試。57【內(nèi)容概要】3單片機應(yīng)用系統(tǒng)的設(shè)計步驟單片機應(yīng)用系統(tǒng)的設(shè)計工作,首先要經(jīng)過深入細致的需求分析,周密而科學的方案論證才能使系統(tǒng)設(shè)計工作順利完成。一個單片機應(yīng)用系統(tǒng)設(shè)計,一般可分為個階段。()明確任務(wù)和需求分析以及擬定設(shè)計方案階段明確系統(tǒng)所要完成的任務(wù)十分重要,它是設(shè)計工作的基礎(chǔ),設(shè)計方案正確性的保證。需求分析的內(nèi)容主要包括:被測控參數(shù)的形式(電量、非電量、模擬量、數(shù)字量等)、被測控參數(shù)的范圍、性能指標、系統(tǒng)功能、工作環(huán)境、顯示、報警、打印要求等。58單片機應(yīng)用系統(tǒng)的設(shè)計步驟4擬定設(shè)計方案是根據(jù)任務(wù)的需求分析,先確定大致方向和準備采用的手段。注意,在進行設(shè)計方案確定的時候,簡單的方法往往可以解決大問題,切忌“將簡單的問題復(fù)雜化”()硬件和軟件設(shè)計階段根據(jù)擬定的設(shè)計方案,設(shè)計出相應(yīng)的系統(tǒng)硬件電路。硬件設(shè)計的前提是必須能夠完成系統(tǒng)的要求和保證可靠性。在硬件設(shè)計時,如果能夠?qū)⒂布娐吩O(shè)計與軟件設(shè)計結(jié)合起來考慮效果會更好。因為當有些問題在硬件電路中無法完成時,可直接由軟件來完成(如某些軟件濾波、校準功能等);當軟件編寫程序很麻煩的時候,通過稍稍改動硬件電路(或盡可能不改動)可能會使軟件變得十分簡單。另外在一些要求5959擬定設(shè)計方案是根據(jù)任務(wù)的需求分析,先確定大致方向和準系統(tǒng)實時性強、響應(yīng)速度快的場合,則往往必須用硬件代替軟件來完成某些功能。所以在硬件電路設(shè)計時,最好能夠與軟件的設(shè)計結(jié)合起來,統(tǒng)一考慮,合理地安排軟、硬件的比例,使系統(tǒng)具有最佳的性價比。當硬件電路設(shè)計完成后,就可進行硬件電路板的繪制和焊接工作了。接下來的工作就是軟件設(shè)計。正確的編程方法就是根據(jù)需求分析,先繪制出軟件的流程圖,該環(huán)節(jié)十分重要。流程圖的繪制往往不能一次成功,通常需要進行多次的修改。流程圖的繪制可按照由簡到繁的方式再逐步細化,先繪制系統(tǒng)大體上需要執(zhí)行的程序模塊,然后將這些模塊按照要求組合在一起,在大方向沒有問題后,再將每個模塊進行細化,最后形成軟件流程6060系統(tǒng)實時性強、響應(yīng)速度快的場合,則往往必須用硬件代替軟件來完圖,這樣程序的編寫速度就會很快,同時程序流程圖還會為后面的調(diào)試工作帶來很多方便,如程序調(diào)試中某個模塊不正常,就可以通過流程圖來查找問題的原因。軟件編寫者一定要克服不繪制流程圖直接在計算機上編寫程序的習慣。設(shè)計者也可以先使用虛擬仿真開發(fā)工具來進行單片機系統(tǒng)的仿真設(shè)計。使用完成的單片機系統(tǒng)設(shè)計與用戶樣機在硬件上無任何聯(lián)系,這是一種完全用軟件手段來對單片機硬件電路和軟件來進行設(shè)計、開發(fā)與仿真調(diào)試的開發(fā)工具。如果一個單片機的軟硬件系統(tǒng),先使用軟件虛擬仿真工具進行系統(tǒng)設(shè)計并仿真調(diào)試通過,雖然還不能完全說6161圖,這樣程序的編寫速度就會很快,同時程序流程圖還會為后面的調(diào)明實際系統(tǒng)就完全通過,但至少在邏輯上是行得通的。系統(tǒng)虛擬仿真通過后,再進行實際的軟硬件設(shè)計與實現(xiàn),可大大減少設(shè)計上所走的彎路,軟件編寫調(diào)試可與硬件設(shè)計同步進行,可大大提高設(shè)計效率,這也是目前世界上廣泛流行的一種開發(fā)設(shè)計方法。()硬件與軟件聯(lián)合調(diào)試階段上述的軟硬件系統(tǒng)虛擬設(shè)計仿真調(diào)試通過后,再使用硬件仿真開發(fā)工具(在線仿真器)與用戶樣機來進行實際調(diào)試,具體的調(diào)試方法和過程,將在本章的后面進行介紹。所有的軟件和硬件電路全部調(diào)試通過,并不意味著單片機系統(tǒng)的設(shè)計成功,還需要通過實際運行來調(diào)整系統(tǒng)的運行狀6262明實際系統(tǒng)就完全通過,但至少在邏輯上是行得通的。系統(tǒng)虛擬仿真態(tài),例如系統(tǒng)中的轉(zhuǎn)換結(jié)果是否正確,如果不正確,是否要調(diào)零和調(diào)整基準電壓等。()資料與文件整理編制階段當系統(tǒng)全部調(diào)試通過后,就進入資料與文件整理編制階段。資料與文件包括:任務(wù)描述、設(shè)計的指導思想及設(shè)計方案論證、性能測定及現(xiàn)場試用報告與說明、使用指南、軟件資料(流程圖、子程序使用說明、地址分配、程序清單)、硬件資料(電原理圖、元件布置圖及接線圖、接插件引腳圖、線路板圖、注意事項)。文件不僅是設(shè)計工作的結(jié)果,而且是以后使用、維修以及進一步再設(shè)計的依據(jù)。因此,一定要精心編寫,描述清楚,使數(shù)據(jù)及資料齊全。6363態(tài),例如系統(tǒng)中的轉(zhuǎn)換結(jié)果是否正確,如果不正確,是否要調(diào)零和調(diào)單片機應(yīng)用系統(tǒng)設(shè)計本節(jié)介紹如何進行單片機應(yīng)用系統(tǒng)的設(shè)計。主要從硬件設(shè)計和軟件設(shè)計兩個方面考慮。硬件設(shè)計應(yīng)考慮的問題在硬件設(shè)計時,應(yīng)重點首先考慮以下幾個問題。.盡可能采用高集成度功能強的芯片()單片機的選型。隨著集成電路技術(shù)的飛速發(fā)展,單片機的集成度越來越高,許多外圍部件都已集成在芯片內(nèi),有許多單片機本身就是一個系統(tǒng),這樣可以省去許多外圍部件的擴展工作,使設(shè)計工作大大簡化。在第章中,已經(jīng)介紹6464單片機應(yīng)用系統(tǒng)設(shè)計1010了目前較為流行的各種單片機機型,用戶可根據(jù)任務(wù)的需求,選擇合適的機型。例如,目前市場上較為流行的美國公司的位單片機,片內(nèi)集成有通道、兩路、兩路電壓比較器,內(nèi)置溫度傳感器、定時器、可編程數(shù)字交叉開關(guān)和個通用口、電源監(jiān)測、看門狗、多種類型的串行總線(兩個、)等。使用片位單片機,就構(gòu)成了一個應(yīng)用系統(tǒng)。再如,如果系統(tǒng)需要較大的驅(qū)動能力和較強的抗干擾能力,可考慮選用單片機或單片機。()優(yōu)先選用片內(nèi)帶有較大容量存儲器的產(chǎn)品。例如,使用公司的6565了目前較為流行的各種單片機機型,用戶可根據(jù)任務(wù)的需求,選擇合系列產(chǎn)品,公司的(內(nèi)有的存儲器)等,可省去擴展片外程序存儲器的工作,減少芯片數(shù)量,縮小系統(tǒng)的體積。()容量的考慮。大多數(shù)單片機片內(nèi)的單元有限,當需增強軟件數(shù)據(jù)處理功能時,往往覺得不足,這時可選用片內(nèi)具有較大容量的單片機,例如。()對端口留有余地。在用戶樣機研制出來進行現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題是不能單靠軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在6666系列產(chǎn)品,公司的(內(nèi)有的存儲器)等,可省去擴展片外程序存儲硬件設(shè)計之初就多設(shè)計留有一些端口,這些問題就會迎刃而解了。()預(yù)留和通道。與上述的端口同樣的原因,留出一些和通道將來可能會解決大問題。.以軟代硬原則上,只要軟件能做到且能滿足性能要求,就不用硬件。硬件多了不但增加成本,而且系統(tǒng)故障率也會提高。以軟件代硬件的實質(zhì),就是以時間換空間,軟件執(zhí)行過程需要消耗時間,因此這種替代帶來的問題是實時性下降。在實時性滿足要求的場合,以軟代硬是合算的。6767硬件設(shè)計之初就多設(shè)計留有一些端口,這些問題就會迎刃而解了。1.工藝設(shè)計工藝設(shè)計包括機箱、面板、配線、接插件等。必須考慮到安裝、調(diào)試、維修的方便。另外,硬件抗干擾措施(將在本章的后面介紹)也必須在硬件設(shè)計時一并考慮進去。典型的單片機應(yīng)用系統(tǒng)典型的單片機應(yīng)用系統(tǒng)框圖如圖所示。典型的單片機應(yīng)用系統(tǒng)主要由單片機基本部分、輸入部分和輸出部分組成。()單片機基本部分基本部分由單片機及其擴展的外設(shè)及芯片,如鍵盤、顯示器、打印機、數(shù)據(jù)存儲器、程序存儲器以及數(shù)字等組成。6868.工藝設(shè)計1414圖單片機典型應(yīng)用系統(tǒng)框圖69圖單片機典型應(yīng)用系統(tǒng)框圖15()輸入部分這是“測”的部分,被“測”的信號類型有:數(shù)字量、模擬量和開關(guān)量。模擬量輸入檢測的主要包括信號調(diào)理電路以及轉(zhuǎn)換器。轉(zhuǎn)換器中都集成了包括多路切換、采樣保持、轉(zhuǎn)換等電路,轉(zhuǎn)換器或者直接集成在單片機片內(nèi)。連接傳感器與轉(zhuǎn)換器之間的橋梁是信號調(diào)理電路,傳感器輸出的模擬信號要經(jīng)過信號調(diào)理電路對信號進行放大、濾波、隔離、量程調(diào)整等,變換成適合轉(zhuǎn)換的電壓信號。信號放大通常由單片式儀表放大器承擔。儀表放大器對信號進行放大比普通運算放大器具有更優(yōu)異的性能。如何根據(jù)不同的傳感器7070()輸入部分1616正確地選擇儀表放大器來進行信號調(diào)理電路的設(shè)計,請讀者參閱有關(guān)資料和文獻。()輸出部分這部分是應(yīng)用系統(tǒng)“控”的部分,包括數(shù)字量、開關(guān)量控制信號的輸出和模擬量控制信號(常用于伺服控制)的輸出。系統(tǒng)設(shè)計中的總線驅(qū)動一個單片機應(yīng)用系統(tǒng)有時往往是多芯片系統(tǒng),如何實現(xiàn)單片機對多片芯片的驅(qū)動的問題。7171正確地選擇儀表放大器來進行信號調(diào)理電路的設(shè)計,請讀者參閱有關(guān)在單片機擴展多片芯片時,要注意單片機個并行雙向口的~口的驅(qū)動能力。下面首先討論這個問題。的、口通常作為總線端口,當系統(tǒng)擴展的芯片較多時,可能造成負載過重,致使驅(qū)動能力不夠,系統(tǒng)不能可靠地工作,所以通常要附加總線驅(qū)動器或其他驅(qū)動電路。因此在多芯片應(yīng)用系統(tǒng)設(shè)計中首先要估計總線的負載情況,以確定是否需要對總線的驅(qū)動能力進行擴展。圖為單片機總線驅(qū)動擴展原理圖??谛枰獑蜗蝌?qū)動,常見的單向總線驅(qū)動器為。7272在單片機擴展多片芯片時,要注意單片機個并行雙向口的~圖單片機總線驅(qū)動擴展原理圖73圖單片機總線驅(qū)動擴展原理圖19圖為引腳圖和邏輯圖。個三態(tài)驅(qū)動器分成兩組,分別由*和*控制??谧鳛閿?shù)據(jù)總線,是雙向傳輸,驅(qū)動器應(yīng)為雙向驅(qū)動、三態(tài)輸出,并由兩個控制端來控制數(shù)據(jù)傳送方向。如圖所示,數(shù)據(jù)輸出允許控制端有效時,數(shù)據(jù)總線輸入為高阻態(tài),輸出為開通狀態(tài);數(shù)據(jù)輸入允許控制端有效時,則狀態(tài)與上相反。常見的雙向驅(qū)動器為,圖為其引腳和邏輯圖。個三態(tài)門中每兩個三態(tài)門組成一路雙向驅(qū)動。驅(qū)動方向由*、兩個控制端控制驅(qū)動器有效或高阻態(tài),在控制端有效(*)時,控制端控制驅(qū)動器的驅(qū)動方向,時驅(qū)動方向為從至,時則相反。7474圖為引腳圖和邏輯圖。個三態(tài)驅(qū)動器分成兩組,分別由*和75圖單向驅(qū)動器引腳圖和邏輯圖7521圖單向驅(qū)動器引腳圖和邏輯圖21圖的引腳圖和邏輯圖76圖的引腳圖和邏輯圖22圖所示為單片機應(yīng)用系統(tǒng)總線驅(qū)動擴展電路圖??诘碾p向驅(qū)動采用,如圖()所示;口的單向驅(qū)動器采用,如圖()所示??诘碾p向驅(qū)動器的*接地,保證芯片一直處于工作狀態(tài),而輸入輸出的方向控制由單片機的數(shù)據(jù)存儲器的“讀”控制引腳(*)和程序存儲器的取指控制引腳(*)通過與門控制引腳實現(xiàn)。這種連接方法無論是“讀”數(shù)據(jù)存儲器中數(shù)據(jù)(*有效)還是從程序存儲器中取指令(*有效),都能保證對口的輸入驅(qū)動;除此以外的時間(*及*均無效),保證對口的輸出驅(qū)動。對于口,因為只用作單向的地址輸出,故的驅(qū)動門控制端*、*接地。7777圖所示為單片機應(yīng)用系統(tǒng)總線驅(qū)動擴展電路圖??诘碾p向驅(qū)78圖單片機應(yīng)用系統(tǒng)中的總線驅(qū)動擴展電路圖7824圖單片機應(yīng)用系統(tǒng)中的總線驅(qū)動擴展電路圖24軟件設(shè)計考慮的問題在進行應(yīng)用系統(tǒng)的總體設(shè)計時,軟件設(shè)計和硬件設(shè)計應(yīng)統(tǒng)一考慮,相互結(jié)合進行。當系統(tǒng)的硬件電路設(shè)計定型后,軟件的任務(wù)也就明確了。一般來說,軟件的功能分為兩大類。一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量、計算、顯示、打印、輸出控制等;另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當組織調(diào)度的角色。設(shè)計人員在進行程序設(shè)計時應(yīng)從以下幾個方面加以考慮。()根據(jù)軟件功能要求,將系統(tǒng)軟件分成若干相對獨立的部分,設(shè)計出合理的軟件總體結(jié)構(gòu),使其清晰、簡潔、流程合理。7979軟件設(shè)計考慮的問題2525()各功能程序?qū)嵭心K化、子程序化。既便于調(diào)試、鏈接,又便于移植、修改。()在編寫應(yīng)用軟件之前,應(yīng)繪制出程序流程圖。多花一些時間來設(shè)計程序流程圖,就可以節(jié)約幾倍于源程序的編輯和調(diào)試時間。()要合理分配系統(tǒng)資源,包括、、定時器計數(shù)器、中斷源等。其中最關(guān)鍵的是片內(nèi)分配。對單片機來講,片內(nèi)指~單元,這個字節(jié)的功能不完全相同,分配時應(yīng)充分發(fā)揮其特長,做到物盡其用。例如,在工作寄存器的個單元中,和具有指針功能,是編程的重要角色,避免作為它用;~這個字節(jié)8080()各功能程序?qū)嵭心K化、子程序化。既便于調(diào)試、鏈接,又便于具有位尋址功能,用來存放各種標志位、邏輯變量、狀態(tài)變量等;設(shè)置堆棧區(qū)時應(yīng)事先估算出子程序和中斷嵌套深度及程序中堆棧操作指令使用情況,其大小應(yīng)留有余量。若系統(tǒng)中擴展了存儲器,應(yīng)把使用頻率最高的數(shù)據(jù)緩沖器安排在片內(nèi)中,以提高處理速度。當資源規(guī)劃好后,應(yīng)列出一張詳細的資源分配表,以備編程時查用方便。軟件的總體框架設(shè)計設(shè)計者在軟件設(shè)計時,感覺比較困難的是如何進行系統(tǒng)軟件的總體框架設(shè)計。下面給出一個典型的例子,供讀者在軟件設(shè)計時參考。8181具有位尋址功能,用來存放各種標志位、邏輯變量、狀態(tài)變量等;設(shè)【例】有一個單片機的應(yīng)用系統(tǒng),假設(shè)個中斷源都已用到,應(yīng)用系統(tǒng)的程序框架如下:8282【例】有一個單片機的應(yīng)用系統(tǒng),假設(shè)個中斷源都已用到,應(yīng)用系83832929843085上述程序框架僅供參考,當然在實際設(shè)計中,個中斷源也未必全用。8531上述程序框架僅供參考,當然在實際設(shè)計中,個中單片機應(yīng)用系統(tǒng)的仿真開發(fā)與調(diào)試當一個單片機應(yīng)用系統(tǒng)(用戶樣機)完成了硬件和軟件設(shè)計,全部元器件安裝完畢后,在用戶樣機的程序存儲器中放入編寫好的應(yīng)用程序,系統(tǒng)即可運行。但應(yīng)用程序運行一次性成功幾乎是不可能的,多少會存在一些軟件、硬件上的錯誤,這就需要借助單片機的仿真開發(fā)工具(在線仿真器)進行調(diào)試,發(fā)現(xiàn)錯誤并加以改正。單片機只是一個芯片,既沒有鍵盤,又沒有、顯示器,也無法進行軟件的開發(fā)(如編輯、匯編、調(diào)試程序等),因此,必須借助仿真開發(fā)工具所提供的開發(fā)手段來進行。一般來說,仿真開發(fā)工具應(yīng)具有如下最基本的功能。8686單片機應(yīng)用系統(tǒng)的仿真開發(fā)與調(diào)試3232()用戶樣機程序的輸入與修改。()程序的運行、調(diào)試(單步運行、設(shè)置斷點運行)、排錯、狀態(tài)查詢等功能。()用戶樣機硬件電路的診斷與檢查。()有較全的開發(fā)軟件。用戶可用匯編語言或語言編制應(yīng)用程序;由開發(fā)系統(tǒng)編譯連接生成目標文件、可執(zhí)行文件。配有反匯編軟件,能將目標程序轉(zhuǎn)換成匯編語言程序;有豐富的子程序可供用戶選擇調(diào)用。()將調(diào)試正確的程序?qū)懭氲匠绦虼鎯ζ髦?。下面介紹常用的仿真開發(fā)工具。8787()用戶樣機程序的輸入與修改。3333.仿真開發(fā)系統(tǒng)簡介通用機仿真開發(fā)系統(tǒng)是目前設(shè)計者使用最多的一類開發(fā)裝置,由在線仿真器與機上運行的仿真開發(fā)軟件兩部分組成。這是一種通過機的口,外加在線仿真器的在線仿真開發(fā)系統(tǒng),如圖所示。在調(diào)試用戶程序時,在線仿真器一側(cè)與機的口相連,另一側(cè)的仿真插頭插入到用戶樣機的單片機插座上,來對樣機上的單片機進行“仿真”。從仿真插頭向在線仿真器看去,看到的就是一個“單片機”。這個“單片機”是“出借”給用戶樣機的,暫時代替用戶樣機上的單片機。仿真開發(fā)系統(tǒng)除了“出借”88.仿真開發(fā)系統(tǒng)簡介34圖通用機仿真開發(fā)系統(tǒng)89圖通用機仿真開發(fā)系統(tǒng)35單片機外,還“出借”仿真用的,來暫收代替用戶樣機上的程序存儲器,存放待調(diào)試的用戶程序。但是這個“單片機”片內(nèi)程序的運行是可以跟蹤、修改和調(diào)試的。由于有機上強大的仿真開發(fā)軟件支持,可在機的其屏幕上觀察用戶程序的運行情況,當按照圖將仿真開發(fā)系統(tǒng)與機聯(lián)機后,用戶可利用機上的仿真開發(fā)軟件,在機上編輯、修改源程序,然后通過翻譯軟件(匯編語言編程翻譯軟件為匯編程序,語言編程翻譯軟件為相應(yīng)的編譯程序)將其匯編成機器代碼,傳送到在線仿真器中的“仿真”中,這時用戶可使用在線仿真器,采用單步、斷點、跟蹤、全速等手段9090單片機外,還“出借”仿真用的,來暫收代替用戶樣機上的程序存儲調(diào)試用戶程序,并進行修改和查找軟、硬件故障,將系統(tǒng)狀態(tài)實時地顯示在屏幕上。待程序調(diào)試通過后,再使用仿真開發(fā)系統(tǒng)提供的編程器或?qū)S镁幊唐鳎颜{(diào)試完畢的程序?qū)懭氲絾纹瑱C片內(nèi)的程序存儲器中。此類仿真開發(fā)系統(tǒng)配置不同的在線仿真器,可仿真開發(fā)各種單片機。但是隨著技術(shù)的普及,對于單片機也可不使用在線仿真器以及編程器,用戶只需要在機上修改程序,然后將修改的程序直接寫入用戶樣機的單片機的存儲器中,運行程序觀察運行結(jié)果,如有問題可在機上修改程序,重新在線寫入,直至運行結(jié)果滿意為止。這樣可省去在線仿真器和編程器,但不足的是,不能對用戶程序進行硬件單步、斷點、跟蹤、全速等手段來調(diào)試。9191調(diào)試用戶程序,并進行修改和查找軟、硬件故障,將系統(tǒng)狀態(tài)實時地在工業(yè)現(xiàn)場,往往沒有機的支持,此時可使用獨立型仿真器。該類仿真器采用模塊化結(jié)構(gòu),配有不同外設(shè),如外存板、打印機、鍵盤顯示器等,用戶可根據(jù)需要選用。由于沒有機,這時使用獨立型仿真器來進行的仿真調(diào)試工作,要輸入機器碼,稍顯麻煩一些。.軟件仿真開發(fā)工具使用軟件虛擬仿真開發(fā)工具進行單片機系統(tǒng)的設(shè)計與仿真,不需要在線仿真器,也不需要用戶樣機,直接就可以在機上進行。調(diào)試完畢的軟件可將其機器代碼寫入到片內(nèi)程序存儲器中,一般能直接投入運行。但是軟件模擬器是使用純軟件來對用戶系統(tǒng)仿真,9292在工業(yè)現(xiàn)場,往往沒有機的支持,此時可使用獨立型仿真器不能進行用戶樣機硬件部分的診斷與實時在線仿真。因此在系統(tǒng)的開發(fā)中,一般是先用仿真軟件設(shè)計出系統(tǒng)的虛擬的硬件原理電路,編寫程序,在環(huán)境下仿真調(diào)試通過。然后再依照仿真的結(jié)果,完成實際的硬件設(shè)計,再將仿真調(diào)試通過的程序?qū)懭氲接脩魳訖C的存儲器中,觀察運行結(jié)果,如果有問題,再連接硬件仿真器去分析、調(diào)試。.用戶樣機的源程序調(diào)試下面介紹如何使用仿真開發(fā)工具進行匯編語言源程序編寫、調(diào)試以及與用戶樣機硬件聯(lián)調(diào)工作。用戶源程序調(diào)試過程如圖所示,可分為以下個步驟。9393不能進行用戶樣機硬件部分的診斷與實時在線仿真。因此在3939圖用戶樣機軟件設(shè)計、調(diào)試的過程94圖用戶樣機軟件設(shè)計、調(diào)試的過程4095()輸入用戶源程序。用戶使用編輯軟件,按照匯編語言源程序要求的格式、語法規(guī)定,把源程序輸入到機中,并保存在磁盤上。()在機上,利用匯編程序?qū)τ脩粼闯绦蜻M行匯編,直至語法錯誤全部糾正為止。如無語法錯誤,則進入下一個步驟。()動態(tài)在線調(diào)試。這一步對用戶的源程序進行調(diào)試。上述的步驟()、步驟()是一個純粹的軟件運行過程,而在這一步,必須要有在線仿真器配合,才能對用戶源程序進行調(diào)試。用戶程序中分為與用戶樣機硬件無關(guān)以及與用戶樣機緊密相關(guān)的程序。9541()輸入用戶源程序。用戶使用編輯軟件,按照匯編語言源程序96對于與用戶樣機硬件無關(guān)的程序,如計算程序,雖然已經(jīng)沒有語法錯誤,但可能存在邏輯錯誤,使計算結(jié)果不正確,此時必須借助于在線仿真器的動態(tài)在線調(diào)試手段,如單步運行、設(shè)置斷點等,發(fā)現(xiàn)邏輯錯誤,然后返回到步驟()修改,直至邏輯錯誤糾正為止。對于與用戶樣機硬件緊密相關(guān)的程序段(如接口驅(qū)動程序),一定要先把在線仿真器的仿真插頭插入用戶樣機的單片機插座中(見圖),進行在線仿真調(diào)試,利用仿真開發(fā)系統(tǒng)提供單步、設(shè)置斷點等調(diào)試手段,來進行系統(tǒng)的調(diào)試。有關(guān)部分程序段運行有可能不正常,可能是軟件邏輯上有問題,也可能是硬件有故障,必須先通過在線仿真調(diào)試程序提9642對于與用戶樣機硬件無關(guān)的程序,如計算程序,雖然已97供的調(diào)試手段,把硬件故障排除以后,再與硬件配合,對用戶程序進行動態(tài)在線調(diào)試。對于軟件的邏輯錯誤,則返回到第一步進行修改,直至邏輯錯誤消除為止。在調(diào)試這類程序時,硬件調(diào)試與軟件調(diào)試是不能完全分開的。許多硬件錯誤是通過軟件的調(diào)試而發(fā)現(xiàn)和糾正的。()將調(diào)試完畢的用戶程序通過編程器或?qū)懭?,固化在程序存儲器中。.用戶樣機的硬件調(diào)試當用戶樣機全部焊接完畢,就可對用戶樣機的硬件進行調(diào)試。首先進行靜態(tài)調(diào)試,靜態(tài)調(diào)試的目的是排除明顯的硬件故障。9743供的調(diào)試手段,把硬件故障排除以后,再與硬件配合,對用戶程98()用戶樣機的靜態(tài)調(diào)試靜態(tài)調(diào)試工作分為兩步。第一步是在樣機加電之前,根據(jù)硬件邏輯設(shè)計圖,先用萬用表等工具,仔細檢查樣機線路是否連接正確,并核對元器件的型號、規(guī)格和安裝是否符合要求,應(yīng)特別注意電源系統(tǒng)的檢查,以防止電源的短路和極性錯誤,并重點檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線、控制總線)是否存在相互之間短路或與其他信號線的短路。第二步是加電后檢查各芯片插座上有關(guā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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論