版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1第14章單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)
與調(diào)試
12【內(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)的仿真開(kāi)發(fā)工具以及如何利用仿真開(kāi)發(fā)工具對(duì)單片機(jī)應(yīng)用系統(tǒng)進(jìn)行開(kāi)發(fā)調(diào)試。3單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)工作,首先要經(jīng)過(guò)深入細(xì)致的需求分析,周密而科學(xué)的方案論證才能使系統(tǒng)設(shè)計(jì)工作順利完成。
14.1單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)步驟一個(gè)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì),一般可分為4個(gè)階段。(1)明確任務(wù)和需求分析以及擬定設(shè)計(jì)方案階段明確系統(tǒng)所要完成的任務(wù)十分重要,它是設(shè)計(jì)工作的基礎(chǔ),設(shè)計(jì)方案正確性的保證。需求分析的內(nèi)容主要包括:被測(cè)控參數(shù)的形式(電量、非電量、模擬量、數(shù)字量等)、被測(cè)控參數(shù)的范圍、性能指標(biāo)、系統(tǒng)功能、工作環(huán)境、顯示、報(bào)警、打印要求等。4擬定設(shè)計(jì)方案是根據(jù)任務(wù)的需求分析,先確定大致方向和準(zhǔn)備采用的手段。注意,在進(jìn)行設(shè)計(jì)方案確定的時(shí)候,簡(jiǎn)單的方法往往可以解決大問(wèn)題,切忌“將簡(jiǎn)單的問(wèn)題復(fù)雜化”(2)硬件和軟件設(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é)合起來(lái)考慮效果會(huì)更好。因?yàn)楫?dāng)有些問(wèn)題在硬件電路中無(wú)法完成時(shí),可直接由軟件來(lái)完成(如某些軟件濾波、校準(zhǔn)功能等);當(dāng)軟件編寫(xiě)程序很麻煩的時(shí)候,通過(guò)稍稍改動(dòng)硬件電路(或盡可能不改動(dòng))可能會(huì)使軟件變得十分簡(jiǎn)單。另外在一些要求系統(tǒng)實(shí)時(shí)性強(qiáng)、響應(yīng)速度快45的場(chǎng)合,則往往必須用硬件代替軟件來(lái)完成某些功能。所以在硬件電路設(shè)計(jì)時(shí),最好能夠與軟件的設(shè)計(jì)結(jié)合起來(lái),統(tǒng)一考慮,合理地安排軟、硬件的比例,使系統(tǒng)具有最佳的性/價(jià)比。當(dāng)硬件電路設(shè)計(jì)完成后,就可進(jìn)行硬件電路板的繪制和焊接工作了。接下來(lái)的工作就是軟件設(shè)計(jì)。正確的編程方法就是根據(jù)需求分析,先繪制出軟件的流程圖,該環(huán)節(jié)十分重要。流程圖的繪制往往不能一次成功,通常需要進(jìn)行多次的修改。流程圖的繪制可按照由簡(jiǎn)到繁的方式再逐步細(xì)化,先繪制系統(tǒng)大體上需要執(zhí)行的程序模塊,然后將這些模塊按照要求組合在一起,在大方向沒(méi)有問(wèn)題后,再將每個(gè)模塊進(jìn)行細(xì)化,最后形成軟件流程圖,這樣56程序的編寫(xiě)速度就會(huì)很快,同時(shí)程序流程圖還會(huì)為后面的調(diào)試工作帶來(lái)很多方便,如程序調(diào)試中某個(gè)模塊不正常,就可以通過(guò)流程圖來(lái)查找問(wèn)題的原因。軟件編寫(xiě)者一定要克服不繪制流程圖直接在計(jì)算機(jī)上編寫(xiě)程序的習(xí)慣。設(shè)計(jì)者也可以先使用虛擬仿真開(kāi)發(fā)工具Proteus來(lái)進(jìn)行單片機(jī)系統(tǒng)的仿真設(shè)計(jì)。使用Proteus完成的單片機(jī)系統(tǒng)設(shè)計(jì)與用戶樣機(jī)在硬件上無(wú)任何聯(lián)系,這是一種完全用軟件手段來(lái)對(duì)單片機(jī)硬件電路和軟件來(lái)進(jìn)行設(shè)計(jì)、開(kāi)發(fā)與仿真調(diào)試的開(kāi)發(fā)工具。如果一個(gè)單片機(jī)的軟硬件系統(tǒng),先使用軟件虛擬仿真工具進(jìn)行系統(tǒng)設(shè)計(jì)并仿真調(diào)試通過(guò),雖然還不能完全說(shuō)明實(shí)際系67統(tǒng)就完全通過(guò),但至少在邏輯上是行得通的。系統(tǒng)虛擬仿真通過(guò)后,再進(jìn)行實(shí)際的軟硬件設(shè)計(jì)與實(shí)現(xiàn),可大大減少設(shè)計(jì)上所走的彎路,軟件編寫(xiě)調(diào)試可與硬件設(shè)計(jì)同步進(jìn)行,可大大提高設(shè)計(jì)效率,這也是目前世界上廣泛流行的一種開(kāi)發(fā)設(shè)計(jì)方法。(3)硬件與軟件聯(lián)合調(diào)試階段上述的軟硬件系統(tǒng)虛擬設(shè)計(jì)仿真調(diào)試通過(guò)后,再使用硬件仿真開(kāi)發(fā)工具(在線仿真器)與用戶樣機(jī)來(lái)進(jìn)行實(shí)際調(diào)試,具體的調(diào)試方法和過(guò)程,將在本章的后面進(jìn)行介紹。所有的軟件和硬件電路全部調(diào)試通過(guò),并不意味著單片機(jī)系統(tǒng)的設(shè)計(jì)成功,還需要通過(guò)實(shí)際運(yùn)行來(lái)調(diào)整系統(tǒng)的運(yùn)行狀態(tài),例如系統(tǒng)中的A/D轉(zhuǎn)換78結(jié)果是否正確,如果不正確,是否要調(diào)零和調(diào)整基準(zhǔn)電壓等。(4)資料與文件整理編制階段當(dāng)系統(tǒng)全部調(diào)試通過(guò)后,就進(jìn)入資料與文件整理編制階段。資料與文件包括:任務(wù)描述、設(shè)計(jì)的指導(dǎo)思想及設(shè)計(jì)方案論證、性能測(cè)定及現(xiàn)場(chǎng)試用報(bào)告與說(shuō)明、使用指南、軟件資料(流程圖、子程序使用說(shuō)明、地址分配、程序清單)、硬件資料(電原理圖、元件布置圖及接線圖、接插件引腳圖、線路板圖、注意事項(xiàng))。文件不僅是設(shè)計(jì)工作的結(jié)果,而且是以后使用、維修以及進(jìn)一步再設(shè)計(jì)的依據(jù)。因此,一定要精心編寫(xiě),描述清楚,使數(shù)據(jù)及資料齊全。8914.2單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)本節(jié)介紹如何進(jìn)行單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)。主要從硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)方面考慮。
14.2.1硬件設(shè)計(jì)應(yīng)考慮的問(wèn)題在硬件設(shè)計(jì)時(shí),應(yīng)重點(diǎn)首先考慮以下幾個(gè)問(wèn)題。1.盡可能采用高集成度功能強(qiáng)的芯片(1)單片機(jī)的選型。隨著集成電路技術(shù)的飛速發(fā)展,單片機(jī)的集成度越來(lái)越高,許多外圍部件都已集成在芯片內(nèi),有許多單片機(jī)本身就是一個(gè)系統(tǒng),這樣可以省去許多外圍部件的擴(kuò)展工作,使設(shè)計(jì)工作大大簡(jiǎn)化。910在第1章中,已經(jīng)介紹了目前較為流行的各種單片機(jī)機(jī)型,用戶可根據(jù)任務(wù)的需求,選擇合適的機(jī)型。
例如,目前市場(chǎng)上較為流行的美國(guó)Cygnal公司的C8051F0208位單片機(jī),片內(nèi)集成有8通道A/D、兩路D/A、兩路電壓比較器,內(nèi)置溫度傳感器、定時(shí)器、可編程數(shù)字交叉開(kāi)關(guān)和64個(gè)通用I/O口、電源監(jiān)測(cè)、看門狗、多種類型的串行總線(兩個(gè)UART、SPI)等。使用1片C8051F0208位單片機(jī),就構(gòu)成了一個(gè)應(yīng)用系統(tǒng)。再如,如果系統(tǒng)需要較大的I/O驅(qū)動(dòng)能力和較強(qiáng)的抗干擾能力,可考慮選用PIC單片機(jī)或AVR單片機(jī)。(2)優(yōu)先選用片內(nèi)帶有較大容量Flash存儲(chǔ)器的產(chǎn)品。例如,使用ATMEL公司的AT89S52/AT89S53/AT89S54/
AT89S55系列產(chǎn)品,1011PHILIPS公司的89C58(內(nèi)有32KB的Flash存儲(chǔ)器)等,可省去擴(kuò)展片外程序存儲(chǔ)器的工作,減少芯片數(shù)量,縮小系統(tǒng)的體積。(3)RAM容量的考慮。大多數(shù)單片機(jī)片內(nèi)的RAM單元有限,當(dāng)需增強(qiáng)軟件數(shù)據(jù)處理功能時(shí),往往覺(jué)得不足,這時(shí)可選用片內(nèi)具有較大RAM容量的單片機(jī),例如PIC18F452。(4)對(duì)I/O端口留有余地。在用戶樣機(jī)研制出來(lái)進(jìn)行現(xiàn)場(chǎng)試用時(shí),往往會(huì)發(fā)現(xiàn)一些被忽視的問(wèn)題,而這些問(wèn)題是不能單靠軟件措施來(lái)解決的。如有些新的信號(hào)需要采集,就必須增加輸入檢測(cè)端;有些物理量需要控制,就必須增加輸出端。如果在硬件設(shè)計(jì)之初就多設(shè)計(jì)留有一些I/O端口,這些問(wèn)1112題就會(huì)迎刃而解了。(5)預(yù)留A/D和D/A通道。與上述的I/O端口同樣的原因,留出一些A/D和D/A通道將來(lái)可能會(huì)解決大問(wèn)題。2.以軟代硬原則上,只要軟件能做到且能滿足性能要求,就不用硬件。硬件多了不但增加成本,而且系統(tǒng)故障率也會(huì)提高。以軟件代硬件的實(shí)質(zhì),就是以時(shí)間換空間,軟件執(zhí)行過(guò)程需要消耗時(shí)間,因此這種替代帶來(lái)的問(wèn)題是實(shí)時(shí)性下降。在實(shí)時(shí)性滿足要求的場(chǎng)合,以軟代硬是合算的。12133.工藝設(shè)計(jì)工藝設(shè)計(jì)包括機(jī)箱、面板、配線、接插件等。必須考慮到安裝、調(diào)試、維修的方便。另外,硬件抗干擾措施(將在本章的后面介紹)也必須在硬件設(shè)計(jì)時(shí)一并考慮進(jìn)去。14.2.2典型的單片機(jī)應(yīng)用系統(tǒng)典型的單片機(jī)應(yīng)用系統(tǒng)框圖如圖14-1所示。典型的單片機(jī)應(yīng)用系統(tǒng)主要由單片機(jī)基本部分、輸入部分和輸出部分組成。(1)單片機(jī)基本部分基本部分由單片機(jī)及其擴(kuò)展的外設(shè)及芯片,如鍵盤、顯示器、打印機(jī)、數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器以及數(shù)字I/O等組成。1314圖14-1
單片機(jī)典型應(yīng)用系統(tǒng)框圖15(2)輸入部分這是“測(cè)”的部分,被“測(cè)”的信號(hào)類型有:數(shù)字量、模擬量和開(kāi)關(guān)量。模擬量輸入檢測(cè)的主要包括信號(hào)調(diào)理電路以及A/D轉(zhuǎn)換器。A/D轉(zhuǎn)換器中都集成了包括多路切換、采樣保持、A/D轉(zhuǎn)換等電路,A/D轉(zhuǎn)換器或者直接集成在單片機(jī)片內(nèi)。連接傳感器與A/D轉(zhuǎn)換器之間的橋梁是信號(hào)調(diào)理電路,傳感器輸出的模擬信號(hào)要經(jīng)過(guò)信號(hào)調(diào)理電路對(duì)信號(hào)進(jìn)行放大、濾波、隔離、量程調(diào)整等,變換成適合A/D轉(zhuǎn)換的電壓信號(hào)。信號(hào)放大通常由單片式儀表放大器承擔(dān)。儀表放大器對(duì)信號(hào)進(jìn)行放大比普通運(yùn)算放大器具有更優(yōu)異的性能。如何根據(jù)不同的傳感器1516正確地選擇儀表放大器來(lái)進(jìn)行信號(hào)調(diào)理電路的設(shè)計(jì),請(qǐng)讀者參閱有關(guān)資料和文獻(xiàn)。(3)輸出部分這部分是應(yīng)用系統(tǒng)“控”的部分,包括數(shù)字量、開(kāi)關(guān)量控制信號(hào)的輸出和模擬量控制信號(hào)(常用于伺服控制)的輸出。14.2.3系統(tǒng)設(shè)計(jì)中的總線驅(qū)動(dòng)一個(gè)AT89S51單片機(jī)應(yīng)用系統(tǒng)有時(shí)往往是多芯片系統(tǒng),如何實(shí)現(xiàn)AT89S51單片機(jī)對(duì)多片芯片的驅(qū)動(dòng)的問(wèn)題。1617在AT89S51單片機(jī)擴(kuò)展多片芯片時(shí),要注意AT89S51單片機(jī)4個(gè)并行雙向口的P0~P3口的驅(qū)動(dòng)能力。下面首先討論這個(gè)問(wèn)題。AT89S51的P0、P2口通常作為總線端口,當(dāng)系統(tǒng)擴(kuò)展的芯片較多時(shí),可能造成負(fù)載過(guò)重,致使驅(qū)動(dòng)能力不夠,系統(tǒng)不能可靠地工作,所以通常要附加總線驅(qū)動(dòng)器或其他驅(qū)動(dòng)電路。因此在多芯片應(yīng)用系統(tǒng)設(shè)計(jì)中首先要估計(jì)總線的負(fù)載情況,以確定是否需要對(duì)總線的驅(qū)動(dòng)能力進(jìn)行擴(kuò)展。
圖14-2為AT89S51單片機(jī)總線驅(qū)動(dòng)擴(kuò)展原理圖。P2口需要單向驅(qū)動(dòng),常見(jiàn)的單向總線驅(qū)動(dòng)器為74LS244。
1718圖14-2AT89S51單片機(jī)總線驅(qū)動(dòng)擴(kuò)展原理圖19
圖14-3為74LS244引腳圖和邏輯圖。8個(gè)三態(tài)驅(qū)動(dòng)器分成兩組,分別由1G*和2G*控制。P0口作為數(shù)據(jù)總線,是雙向傳輸,驅(qū)動(dòng)器應(yīng)為雙向驅(qū)動(dòng)、三態(tài)輸出,并由兩個(gè)控制端來(lái)控制數(shù)據(jù)傳送方向。如圖14-2所示,數(shù)據(jù)輸出允許控制端DBEO有效時(shí),數(shù)據(jù)總線輸入為高阻態(tài),輸出為開(kāi)通狀態(tài);數(shù)據(jù)輸入允許控制端DBEI有效時(shí),則狀態(tài)與上相反。
常見(jiàn)的雙向驅(qū)動(dòng)器為74LS245,圖14-4為其引腳和邏輯圖。16個(gè)三態(tài)門中每?jī)蓚€(gè)三態(tài)門組成一路雙向驅(qū)動(dòng)。驅(qū)動(dòng)方向由G*、DIR兩個(gè)控制端控制驅(qū)動(dòng)器有效或高阻態(tài),在控制端有效(G*=0)時(shí),DIR控制端控制驅(qū)動(dòng)器的驅(qū)動(dòng)方向,DIR=0時(shí)驅(qū)動(dòng)方向?yàn)閺腂至A,DIR=1時(shí)則相反。
192020圖14-3
單向驅(qū)動(dòng)器74LS244引腳圖和邏輯圖21圖14-474LS245的引腳圖和邏輯圖22
圖14-5所示為AT89S51單片機(jī)應(yīng)用系統(tǒng)總線驅(qū)動(dòng)擴(kuò)展電路圖。P0口的雙向驅(qū)動(dòng)采用74LS245,如圖14-5(a)所示;P2口的單向驅(qū)動(dòng)器采用74LS244,如圖14-5(b)所示。
P0口的雙向驅(qū)動(dòng)器74LS245的G*接地,保證芯片一直處于工作狀態(tài),而輸入/輸出的方向控制由單片機(jī)的數(shù)據(jù)存儲(chǔ)器的“讀”控制引腳(RD*)和程序存儲(chǔ)器的取指控制引腳(PSEN*)通過(guò)與門控制DIR引腳實(shí)現(xiàn)。這種連接方法無(wú)論是“讀”數(shù)據(jù)存儲(chǔ)器中數(shù)據(jù)(RD*有效)還是從程序存儲(chǔ)器中取指令(PSEN*有效),都能保證對(duì)P0口的輸入驅(qū)動(dòng);除此以外的時(shí)間(RD*及PSEN*均無(wú)效),保證對(duì)P0口的輸出驅(qū)動(dòng)。
對(duì)于P2口,因?yàn)橹挥米鲉蜗虻牡刂份敵?,?4LS244的驅(qū)動(dòng)門控制端1G*、2G*接地。
222323圖14-5AT89S51單片機(jī)應(yīng)用系統(tǒng)中的總線驅(qū)動(dòng)擴(kuò)展電路圖2414.2.4軟件設(shè)計(jì)考慮的問(wèn)題在進(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ù)也就明確了。一般來(lái)說(shuō),軟件的功能分為兩大類。一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測(cè)量、計(jì)算、顯示、打印、輸出控制等;另一類是監(jiān)控軟件,它是專門用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度的角色。設(shè)計(jì)人員在進(jìn)行程序設(shè)計(jì)時(shí)應(yīng)從以下幾個(gè)方面加以考慮。(1)根據(jù)軟件功能要求,將系統(tǒng)軟件分成若干相對(duì)獨(dú)立的部分,設(shè)計(jì)出合理的軟件總體結(jié)構(gòu),使其清晰、簡(jiǎn)潔、流程合理。2425(2)各功能程序?qū)嵭心K化、子程序化。既便于調(diào)試、鏈接,又便于移植、修改。(3)在編寫(xiě)應(yīng)用軟件之前,應(yīng)繪制出程序流程圖。多花一些時(shí)間來(lái)設(shè)計(jì)程序流程圖,就可以節(jié)約幾倍于源程序的編輯和調(diào)試時(shí)間。(4)要合理分配系統(tǒng)資源,包括ROM、RAM、定時(shí)器/計(jì)數(shù)器、中斷源等。其中最關(guān)鍵的是片內(nèi)RAM分配。對(duì)AT89S52單片機(jī)來(lái)講,片內(nèi)RAM指00H~FFH單元,這256個(gè)字節(jié)的功能不完全相同,分配時(shí)應(yīng)充分發(fā)揮其特長(zhǎng),做到物盡其用。例如,在工作寄存器的8個(gè)單元中,R0和R1具有指針功能,是編程的重要角色,避免作為它用;20H~2FH這16個(gè)字節(jié)2526具有位尋址功能,用來(lái)存放各種標(biāo)志位、邏輯變量、狀態(tài)變量等;設(shè)置堆棧區(qū)時(shí)應(yīng)事先估算出子程序和中斷嵌套深度及程序中堆棧操作指令使用情況,其大小應(yīng)留有余量。
若系統(tǒng)中擴(kuò)展了RAM存儲(chǔ)器,應(yīng)把使用頻率最高的數(shù)據(jù)緩沖器安排在片內(nèi)RAM中,以提高處理速度。當(dāng)RAM資源規(guī)劃好后,應(yīng)列出一張?jiān)敿?xì)的RAM資源分配表,以備編程時(shí)查用方便。262714.3單片機(jī)應(yīng)用系統(tǒng)的仿真開(kāi)發(fā)與調(diào)試當(dāng)一個(gè)單片機(jī)應(yīng)用系統(tǒng)(用戶樣機(jī))完成了硬件和軟件設(shè)計(jì),全部元器件安裝完畢后,在用戶樣機(jī)的程序存儲(chǔ)器中放入編寫(xiě)好的應(yīng)用程序,系統(tǒng)即可運(yùn)行。但應(yīng)用程序運(yùn)行一次性成功幾乎是不可能的,多少會(huì)存在一些軟件、硬件上的錯(cuò)誤,這就需要借助單片機(jī)的仿真開(kāi)發(fā)工具(在線仿真器)進(jìn)行調(diào)試,發(fā)現(xiàn)錯(cuò)誤并加以改正。AT89S51單片機(jī)只是一個(gè)芯片,既沒(méi)有鍵盤,又沒(méi)有CRT、LED顯示器,也無(wú)法進(jìn)行軟件的開(kāi)發(fā)(如編輯、匯編、調(diào)試程序等),因此,必須借助仿真開(kāi)發(fā)工具所提供的開(kāi)發(fā)手段來(lái)進(jìn)行。一般來(lái)說(shuō),仿真開(kāi)發(fā)工具應(yīng)具有如下最基本的功能。2728(1)用戶樣機(jī)程序的輸入與修改。(2)程序的運(yùn)行、調(diào)試(單步運(yùn)行、設(shè)置斷點(diǎn)運(yùn)行)、排錯(cuò)、狀態(tài)查詢等功能。(3)用戶樣機(jī)硬件電路的診斷與檢查。(4)有較全的開(kāi)發(fā)軟件。用戶可用匯編語(yǔ)言或C語(yǔ)言編制應(yīng)用程序;由開(kāi)發(fā)系統(tǒng)編譯連接生成目標(biāo)文件、可執(zhí)行文件。配有反匯編軟件,能將目標(biāo)程序轉(zhuǎn)換成匯編語(yǔ)言程序;有豐富的子程序可供用戶選擇調(diào)用。(5)將調(diào)試正確的程序?qū)懭氲匠绦虼鎯?chǔ)器中。下面介紹常用的仿真開(kāi)發(fā)工具。2829仿真開(kāi)發(fā)系統(tǒng)簡(jiǎn)介通用機(jī)仿真開(kāi)發(fā)系統(tǒng)是目前設(shè)計(jì)者使用最多的一類開(kāi)發(fā)裝置,由在線仿真器與PC機(jī)上運(yùn)行的仿真開(kāi)發(fā)軟件兩部分組成。這是一種通過(guò)PC機(jī)的USB口,外加在線仿真器的在線仿真開(kāi)發(fā)系統(tǒng),如圖14-6所示。在調(diào)試用戶程序時(shí),在線仿真器一側(cè)與PC機(jī)的USB口相連,另一側(cè)的仿真插頭插入到用戶樣機(jī)的單片機(jī)插座上,來(lái)對(duì)樣機(jī)上的單片機(jī)進(jìn)行“仿真”。從仿真插頭向在線仿真器看去,看到的就是一個(gè)“單片機(jī)”。這個(gè)“單片機(jī)”是“出借”給用戶樣機(jī)的,暫時(shí)代替用戶樣機(jī)上的單片機(jī)。仿真開(kāi)發(fā)系統(tǒng)除了“出借”單片機(jī)外,還“出借”仿真用的RAM,來(lái)暫收30圖14-6
通用機(jī)仿真開(kāi)發(fā)系統(tǒng)31代替用戶樣機(jī)上的程序存儲(chǔ)器,存放待調(diào)試的用戶程序。
但是這個(gè)“單片機(jī)”片內(nèi)程序的運(yùn)行是可以跟蹤、修改和調(diào)試的。由于有PC機(jī)上強(qiáng)大的仿真開(kāi)發(fā)軟件支持,可在PC機(jī)的其屏幕上觀察用戶程序的運(yùn)行情況,當(dāng)按照?qǐng)D14-6將仿真開(kāi)發(fā)系統(tǒng)與PC機(jī)聯(lián)機(jī)后,用戶可利用PC機(jī)上的仿真開(kāi)發(fā)軟件,在PC機(jī)上編輯、修改源程序,然后通過(guò)翻譯軟件(匯編語(yǔ)言編程翻譯軟件為匯編程序,C51語(yǔ)言編程翻譯軟件為相應(yīng)的編譯程序)將其翻譯成機(jī)器代碼,傳送到在線仿真器中的“仿真RAM”中,這時(shí)用戶可使用在線仿真器,采用單步、斷點(diǎn)、跟蹤、全速等手段調(diào)試用戶程序,并進(jìn)3132行修改和查找軟、硬件故障,將系統(tǒng)狀態(tài)實(shí)時(shí)地顯示在屏幕上。待程序調(diào)試通過(guò)后,再使用仿真開(kāi)發(fā)系統(tǒng)提供的編程器或?qū)S镁幊唐?,把調(diào)試完畢的程序?qū)懭氲絾纹瑱C(jī)片內(nèi)的Flash程序存儲(chǔ)器中。此類仿真開(kāi)發(fā)系統(tǒng)配置不同的在線仿真器,可仿真開(kāi)發(fā)各種單片機(jī)。
但是隨著ISP技術(shù)的普及,對(duì)于AT89S5x單片機(jī)也可不使用在線仿真器以及編程器,用戶只需要在PC機(jī)上修改程序,然后將修改的程序直接寫(xiě)入用戶樣機(jī)的單片機(jī)的Flash存儲(chǔ)器中,運(yùn)行程序觀察運(yùn)行結(jié)果,如有問(wèn)題可在PC機(jī)上修改程序,重新在線寫(xiě)入,直至運(yùn)行結(jié)果滿意為止。這樣可省去在線仿真器和編程器,但不足的是,不能對(duì)用戶程序進(jìn)行硬件單步、斷點(diǎn)、跟蹤、全速等手段來(lái)調(diào)試。
3233在工業(yè)現(xiàn)場(chǎng),往往沒(méi)有PC機(jī)的支持,此時(shí)可使用獨(dú)立型仿真器。該類仿真器采用模塊化結(jié)構(gòu),配有不同外設(shè),如外存板、打印機(jī)、鍵盤/顯示器等,用戶可根據(jù)需要選用。由于沒(méi)有PC機(jī),這時(shí)使用獨(dú)立型仿真器來(lái)進(jìn)行的仿真調(diào)試工作,要輸入機(jī)器碼,稍顯麻煩一些。2.軟件仿真開(kāi)發(fā)工具Proteus
使用軟件虛擬仿真開(kāi)發(fā)工具Proteus進(jìn)行單片機(jī)系統(tǒng)的設(shè)計(jì)與仿真,不需要在線仿真器,也不需要用戶樣機(jī),直接就可以在PC機(jī)上進(jìn)行。調(diào)試完畢的軟件可將其機(jī)器代碼寫(xiě)入到片內(nèi)Flash程序存儲(chǔ)器中,一般能直接投入運(yùn)行。但Proteus是軟件模擬器是使用純軟件來(lái)對(duì)用戶系統(tǒng)仿真,3334不能進(jìn)行用戶樣機(jī)硬件部分的診斷與實(shí)時(shí)在線仿真。因此在系統(tǒng)的開(kāi)發(fā)中,一般是先用Proteus仿真軟件設(shè)計(jì)出系統(tǒng)的虛擬的硬件原理電路,編寫(xiě)程序,在Proteus環(huán)境下仿真調(diào)試通過(guò)。然后再依照仿真的結(jié)果,完成實(shí)際的硬件設(shè)計(jì),再將仿真調(diào)試通過(guò)的程序?qū)懭氲接脩魳訖C(jī)的Flash存儲(chǔ)器中,觀察運(yùn)行結(jié)果,如果有問(wèn)題,再連接硬件仿真器去分析、調(diào)試。3.用戶樣機(jī)的源程序調(diào)試下面介紹如何使用仿真開(kāi)發(fā)工具進(jìn)行匯編語(yǔ)言源程序編寫(xiě)、調(diào)試以及與用戶樣機(jī)硬件聯(lián)調(diào)工作。
用戶源程序調(diào)試過(guò)程如圖14-7所示,可分為以下4個(gè)步驟。3435圖14-7
用戶樣機(jī)軟件設(shè)計(jì)、調(diào)試的過(guò)程3636(1)輸入用戶源程序。用戶使用編輯軟件,按照匯編語(yǔ)言源程序要求的格式、語(yǔ)法規(guī)定,把源程序輸入到PC機(jī)中,并保存在磁盤上。(2)在PC機(jī)上,利用匯編程序?qū)τ脩粼闯绦蜻M(jìn)行匯編,直至語(yǔ)法錯(cuò)誤全部糾正為止。如無(wú)語(yǔ)法錯(cuò)誤,則進(jìn)入下一個(gè)步驟。(3)動(dòng)態(tài)在線調(diào)試。這一步對(duì)用戶的源程序進(jìn)行調(diào)試。上述的步驟(1)、步驟(2)是一個(gè)純粹的軟件運(yùn)行過(guò)程,而在這一步,必須要有在線仿真器配合,才能對(duì)用戶源程序進(jìn)行調(diào)試。用戶程序中分為與用戶樣機(jī)硬件無(wú)關(guān)以及與用戶樣機(jī)緊密相關(guān)的程序。3737對(duì)于與用戶樣機(jī)硬件無(wú)關(guān)的程序,如計(jì)算程序,雖然已經(jīng)沒(méi)有語(yǔ)法錯(cuò)誤,但可能存在邏輯錯(cuò)誤,使計(jì)算結(jié)果不正確,此時(shí)必須借助于在線仿真器的動(dòng)態(tài)在線調(diào)試手段,如單步運(yùn)行、設(shè)置斷點(diǎn)等,發(fā)現(xiàn)邏輯錯(cuò)誤,然后返回到步驟(1)修改,直至邏輯錯(cuò)誤糾正為止。對(duì)于與用戶樣機(jī)硬件緊密相關(guān)的程序段(如接口驅(qū)動(dòng)程序),一定要先把在線仿真器的仿真插頭插入用戶樣機(jī)的單片機(jī)插座中(見(jiàn)圖14-6),進(jìn)行在線仿真調(diào)試,利用仿真開(kāi)發(fā)系統(tǒng)提供單步、設(shè)置斷點(diǎn)等調(diào)試手段,來(lái)進(jìn)行系統(tǒng)的調(diào)試。有關(guān)部分程序段運(yùn)行有可能不正常,可能是軟件邏輯上有問(wèn)題,也可能是硬件有故障,必須先通過(guò)在線仿真調(diào)試程序提供的調(diào)試手段,把硬件3838故障排除以后,再與硬件配合,對(duì)用戶程序進(jìn)行動(dòng)態(tài)在線調(diào)試。對(duì)于軟件的邏輯錯(cuò)誤,則返回到第一步進(jìn)行修改,直至邏輯錯(cuò)誤消除為止。在調(diào)試這類程序時(shí),硬件調(diào)試與軟件調(diào)試是不能完全分開(kāi)的。許多硬件錯(cuò)誤是通過(guò)軟件的調(diào)試而發(fā)現(xiàn)和糾正的。(4)將調(diào)試完畢的用戶程序通過(guò)編程器或ISP寫(xiě)入,固化在程序存儲(chǔ)器中。4.用戶樣機(jī)的硬件調(diào)試當(dāng)用戶樣機(jī)全部焊接完畢,就可對(duì)用戶樣機(jī)的硬件進(jìn)行調(diào)試。首先進(jìn)行靜態(tài)調(diào)試,靜態(tài)調(diào)試的目的是排除明顯的硬件故障。3939(1)用戶樣機(jī)的靜態(tài)調(diào)試靜態(tài)調(diào)試工作分為兩步。第一步是在樣機(jī)加電之前,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024技術(shù)咨詢合同標(biāo)的和技術(shù)要求
- 2024版場(chǎng)地短期租賃合同協(xié)議
- 2025年外賣配送行業(yè)消費(fèi)者滿意度調(diào)查外包合同3篇
- 2024年股權(quán)轉(zhuǎn)讓與項(xiàng)目承接詳細(xì)協(xié)議
- 二零二五年度公益組織兼職志愿者聘用合同模板3篇
- 2025個(gè)人房產(chǎn)抵押貸款合同范本二零二五年度2篇
- 網(wǎng)上購(gòu)物網(wǎng)站課程設(shè)計(jì)
- 二零二五年度辦公用品耗材租賃與維護(hù)服務(wù)合同2篇
- 電子課程設(shè)計(jì)課件
- 2025版建筑工程勞務(wù)分包單價(jià)合同示范2篇
- 幼兒園后勤主任年終總結(jié)
- 除顫儀使用護(hù)理查房
- 初級(jí)消防設(shè)施操作員實(shí)操題庫(kù) (一)
- 2024版《糖尿病健康宣教》課件
- CURTIS1232-1234-1236-SE-SERIES交流控制器手冊(cè)
- 2024年郵政系統(tǒng)招聘考試-郵政營(yíng)業(yè)員考試近5年真題集錦(頻考類試題)帶答案
- 交接試驗(yàn)合同模板
- 醫(yī)學(xué)教案SPZ-200型雙向道床配碴整形車操作保養(yǎng)維修手冊(cè)
- 期末 (試題) -2024-2025學(xué)年人教PEP版英語(yǔ)四年級(jí)上冊(cè)
- 小流域水土保持綜合治理項(xiàng)目工程施工設(shè)計(jì)方案
- 2024年四川省宜賓市敘州區(qū)六年級(jí)數(shù)學(xué)第一學(xué)期期末監(jiān)測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論