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

下載本文檔

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

文檔簡介

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

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

溫馨提示

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

評論

0/150

提交評論