第9章 單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù)_第1頁(yè)
第9章 單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù)_第2頁(yè)
第9章 單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù)_第3頁(yè)
第9章 單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù)_第4頁(yè)
第9章 單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第9章單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)技術(shù)總體要求:●了解單片機(jī)的開(kāi)發(fā)系統(tǒng)及開(kāi)發(fā)工具●掌握單片機(jī)應(yīng)用系統(tǒng)軟、硬件設(shè)計(jì)的基本方法●了解單片機(jī)應(yīng)用系統(tǒng)抗干擾設(shè)計(jì)的基本方法●理解單片機(jī)應(yīng)用系統(tǒng)調(diào)試的基本方法●了解應(yīng)用實(shí)例軟、硬件設(shè)計(jì)過(guò)程2學(xué)習(xí)重點(diǎn):●單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)原則與過(guò)程目前,MCS-51系列單片機(jī)以其獨(dú)特優(yōu)越的性能和低廉的價(jià)格,在工業(yè)實(shí)時(shí)控制、智能化儀表、數(shù)據(jù)采集、計(jì)算機(jī)通信等各個(gè)領(lǐng)域得到了極為廣泛的應(yīng)用。本章將結(jié)合單片機(jī)的特點(diǎn),從應(yīng)用角度出發(fā),對(duì)單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)工具和應(yīng)用實(shí)例作進(jìn)一步的分析和討論。9.1單片機(jī)的開(kāi)發(fā)系統(tǒng)及開(kāi)發(fā)工具9.2單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)原則與過(guò)程9.3單片機(jī)應(yīng)用系統(tǒng)的抗干擾設(shè)計(jì)9.4單片機(jī)應(yīng)用系統(tǒng)實(shí)例349.1單片機(jī)的開(kāi)發(fā)系統(tǒng)及開(kāi)發(fā)工具9.1.1單片機(jī)的開(kāi)發(fā)系統(tǒng)

1.概述單片機(jī)應(yīng)用系統(tǒng)建立以后,電路正確與否,程序是否有誤,怎樣將程序裝入機(jī)器等,這都必須借助單片機(jī)開(kāi)發(fā)系統(tǒng)裝置來(lái)完成。單片機(jī)開(kāi)發(fā)系統(tǒng)是單片機(jī)編程調(diào)試的必需工具。單片機(jī)開(kāi)發(fā)系統(tǒng)和一般通用計(jì)算機(jī)系統(tǒng)相比,在硬件上增加了目標(biāo)系統(tǒng)的在線仿真器、編程器等部件,所提供的軟件除有類(lèi)似一般計(jì)算機(jī)系統(tǒng)的簡(jiǎn)單的操作系統(tǒng)之外,還增加了目標(biāo)系統(tǒng)的匯編和調(diào)試程序等。5

⑴在線仿真功能在線仿真器簡(jiǎn)稱(chēng)ICE(InCircuitEmulator),是由一系列硬件組成的單片機(jī)開(kāi)發(fā)裝置。①仿真功能在線仿真時(shí),開(kāi)發(fā)系統(tǒng)應(yīng)能將在線仿真器中的單片機(jī)完整地出借給目標(biāo)系統(tǒng),不占用目標(biāo)系統(tǒng)單片機(jī)的任何資源。②模擬功能在開(kāi)發(fā)目標(biāo)系統(tǒng)的過(guò)程中,單片機(jī)的開(kāi)發(fā)系統(tǒng)允許用戶使用它內(nèi)部的RAM存儲(chǔ)器和I/O來(lái)替代目標(biāo)系統(tǒng)中的ROM程序存儲(chǔ)器、RAM數(shù)據(jù)存儲(chǔ)器和I/O,使用戶在目標(biāo)系統(tǒng)樣機(jī)還未完全配置好以前,便可以借用開(kāi)發(fā)系統(tǒng)提供的資源進(jìn)行軟件的開(kāi)發(fā)。

2.單片機(jī)開(kāi)發(fā)系統(tǒng)的功能6⑵調(diào)試功能開(kāi)發(fā)系統(tǒng)的調(diào)試功能應(yīng)包含以下幾個(gè)方面:①運(yùn)行控制功能開(kāi)發(fā)系統(tǒng)應(yīng)能使用戶有效地控制目標(biāo)程序的運(yùn)行,以便檢查程序運(yùn)行的結(jié)果,對(duì)存在的硬件故障和軟件錯(cuò)誤進(jìn)行修改。至少應(yīng)具有下列運(yùn)行模式:

a)單步運(yùn)行:從任意的程序地址開(kāi)始執(zhí)行一條指令后停止運(yùn)行。

b)斷點(diǎn)運(yùn)行:允許用戶任意設(shè)置斷點(diǎn),從規(guī)定地址開(kāi)始運(yùn)行后,遇到符合條件的斷點(diǎn)后停止運(yùn)行。

c)連續(xù)運(yùn)行:從指定地址開(kāi)始,連續(xù)地、全速地運(yùn)行目標(biāo)程序。

d)起??刂疲涸试S用戶根據(jù)需要啟動(dòng)或停止運(yùn)行目標(biāo)程序。7②對(duì)目標(biāo)系統(tǒng)狀態(tài)的讀出、修改功能當(dāng)CPU停止執(zhí)行目標(biāo)系統(tǒng)的程序后,允許用戶方便地讀出或修改目標(biāo)系統(tǒng)所有資源的狀態(tài),以便檢查程序運(yùn)行的結(jié)果??晒┯脩糇x出、修改的目標(biāo)系統(tǒng)資源應(yīng)包括:

a)程序存儲(chǔ)器(開(kāi)發(fā)系統(tǒng)中的仿真ROM或目標(biāo)機(jī)中的ROM);

b)單片機(jī)片內(nèi)資源(工作寄存器、特殊功能寄存器、I/O

口、RAM及位存儲(chǔ)單元);

c)系統(tǒng)中擴(kuò)展的RAM和I/O口。③跟蹤功能8⑶輔助設(shè)計(jì)功能單片機(jī)開(kāi)發(fā)系統(tǒng)的輔助設(shè)計(jì)功能體現(xiàn)在以下幾個(gè)方面:①程序編輯②程序設(shè)計(jì)語(yǔ)言③其他軟件功能⑷程序固化功能當(dāng)單片機(jī)應(yīng)用系統(tǒng)程序調(diào)試完成后,需要把目標(biāo)程序?qū)懭肽繕?biāo)機(jī)的ROM中,這個(gè)過(guò)程稱(chēng)為程序固化。固化時(shí)需要有適當(dāng)?shù)木幊屉妷汉陀曹浖l件,開(kāi)發(fā)系統(tǒng)應(yīng)具有這種功能。9

3.開(kāi)發(fā)系統(tǒng)的分類(lèi)目前國(guó)內(nèi)用于MCS-51系列單片機(jī)的開(kāi)發(fā)系統(tǒng)很多,大致可分為以下四種:(1)通用型單片機(jī)開(kāi)發(fā)系統(tǒng)(2)實(shí)用型開(kāi)發(fā)系統(tǒng)(3)通用機(jī)開(kāi)發(fā)系統(tǒng)(4)模擬開(kāi)發(fā)系統(tǒng)

109.1.2單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具

1.開(kāi)發(fā)工具概述一個(gè)單片機(jī)應(yīng)用系統(tǒng)經(jīng)過(guò)預(yù)研,總體設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、制版、元器件安裝后,在系統(tǒng)程序存儲(chǔ)器中寫(xiě)入編制好的應(yīng)用程序,系統(tǒng)即可運(yùn)行。但一次性成功幾乎是不可能的,多少會(huì)出現(xiàn)一些硬件或軟件上的錯(cuò)誤,需通過(guò)調(diào)試來(lái)發(fā)現(xiàn)和改正錯(cuò)誤。然而單片機(jī)應(yīng)用系統(tǒng)本身并無(wú)自開(kāi)發(fā)能力,僅靠萬(wàn)用表、示波器等常規(guī)工具顯然是不夠的,通常要借助于一個(gè)特殊的計(jì)算機(jī)系統(tǒng)來(lái)完成,這個(gè)特殊的計(jì)算機(jī)系統(tǒng)稱(chēng)為單片機(jī)開(kāi)發(fā)系統(tǒng)或單片機(jī)開(kāi)發(fā)機(jī)(仿真器)。11

2.開(kāi)發(fā)工具的主要作用單片機(jī)開(kāi)發(fā)系統(tǒng)與一般的通用計(jì)算機(jī)系統(tǒng)相比,在硬件上增加了目標(biāo)系統(tǒng)在線仿真器、編程器,所提供的軟件除計(jì)算機(jī)系統(tǒng)一般的操作系統(tǒng)外,還增加了匯編、反匯編和調(diào)試程序等。其主要作用是:①對(duì)系統(tǒng)硬件電路診斷、檢查;②應(yīng)用程序的輸入和修改;③程序調(diào)試、單步運(yùn)行、設(shè)置斷點(diǎn)運(yùn)行,各寄存器狀態(tài)查詢;④將程序固化到ROM中去。129.2單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)原則與過(guò)程9.2.1單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)原則通常我們要求單片機(jī)系統(tǒng)應(yīng)具有可靠性高、性價(jià)比高、操作維護(hù)方便和設(shè)計(jì)周期短等特點(diǎn),下面我們將對(duì)這幾點(diǎn)作詳細(xì)討論。13

1.高可靠性①使用可靠性高的元器件,以防止器件的損壞影響系統(tǒng)的可靠運(yùn)行。②對(duì)供電電源采用抗干擾措施。③采用雙機(jī)系統(tǒng)。④設(shè)計(jì)電路板時(shí)布線和接地要合理,嚴(yán)格安裝硬件設(shè)備及電路。⑤輸入輸出通道抗干擾措施。⑥進(jìn)行軟硬件濾波。⑦采用必要的冗余設(shè)計(jì)或增加系統(tǒng)自診斷功能。142.高性能價(jià)格比

單片機(jī)除體積小、功耗低等特點(diǎn)外,最大的優(yōu)勢(shì)在于高性能價(jià)格比。一個(gè)單片機(jī)應(yīng)用系統(tǒng)能否被廣泛使用,性價(jià)比是其中一個(gè)關(guān)鍵因素。因此,在設(shè)計(jì)時(shí),除了保持高性能外,簡(jiǎn)化外圍硬件電路,在系統(tǒng)性能和速度許可的范圍內(nèi),盡可能用軟件程序取代硬件功能電路,以降低系統(tǒng)的制造成本。

3.操作維護(hù)方便

操作方便表現(xiàn)在操作簡(jiǎn)單、直觀形象和便于操作,應(yīng)從普通人的角度考慮操作和維護(hù)方便,盡量減少對(duì)操作人員專(zhuān)用知識(shí)的要求,以利用系統(tǒng)的推廣。154.設(shè)計(jì)周期短系統(tǒng)設(shè)計(jì)周期是衡量一個(gè)產(chǎn)品有無(wú)效益的一個(gè)主要依據(jù),只有縮短設(shè)計(jì)周期,才能有效地降低設(shè)計(jì)成本,充分發(fā)揮新系統(tǒng)的技術(shù)優(yōu)勢(shì),及早地占領(lǐng)市場(chǎng)并具有一定的競(jìng)爭(zhēng)力。9.2.2單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)過(guò)程

1.系統(tǒng)總體設(shè)計(jì)

系統(tǒng)總體設(shè)計(jì)是單片機(jī)系統(tǒng)設(shè)計(jì)的前提,合理的總體設(shè)計(jì)是系統(tǒng)成敗的關(guān)鍵。總體設(shè)計(jì)關(guān)鍵在于對(duì)系統(tǒng)功能和性能的認(rèn)識(shí)和合理分析,系統(tǒng)單片機(jī)及關(guān)鍵芯片的選型,系統(tǒng)基本結(jié)構(gòu)的確立和軟、硬件功能的劃分。16圖9-1單片機(jī)系統(tǒng)研制過(guò)程框圖172.硬件設(shè)計(jì)硬件和軟件是單片機(jī)控制系統(tǒng)的兩個(gè)重要方面,硬件是基礎(chǔ),軟件是關(guān)鍵,但兩者又是可以相互轉(zhuǎn)化的。硬件設(shè)計(jì)時(shí),應(yīng)考慮留有充分余量,電路設(shè)計(jì)力求正確無(wú)誤,因?yàn)樵谙到y(tǒng)調(diào)試中不易修改硬件結(jié)構(gòu)。⑴設(shè)計(jì)硬件原理圖⑵程序存儲(chǔ)器⑶數(shù)據(jù)存儲(chǔ)器和I/O接口數(shù)據(jù)存儲(chǔ)器的設(shè)計(jì)原則是:在存儲(chǔ)容量滿足的前提下,盡可能減少存儲(chǔ)芯片的數(shù)量。建議使用大容量的RAM芯片,以減少存儲(chǔ)器芯片數(shù)目,使譯碼電路簡(jiǎn)單,但應(yīng)避免盲目地?cái)U(kuò)大存儲(chǔ)容量。18⑷地址譯碼電路⑸總線驅(qū)動(dòng)能力⑹系統(tǒng)速度匹配⑺抗干擾措施另外,可以采用隔離放大器、光電耦合器件抗除輸入/輸出設(shè)備與系統(tǒng)之間的地線干擾;采用差分放大器抗除共模干擾;采用平滑濾波器抗除噪聲干擾;采用屏蔽手段抗除輻射干擾等。最后,應(yīng)注意在系統(tǒng)硬件設(shè)計(jì)時(shí),要盡可能充分地利用單片機(jī)的片內(nèi)資源,使自己設(shè)計(jì)的電路向標(biāo)準(zhǔn)化、模塊化方向靠攏。193.軟件設(shè)計(jì)軟件是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要組成部,圖9-2給出了軟件設(shè)計(jì)的流程圖。單片機(jī)應(yīng)用系統(tǒng)的軟件設(shè)計(jì)是研制過(guò)程中任務(wù)最繁重的一項(xiàng)工作,難度也比較大。對(duì)于某些較復(fù)雜的應(yīng)用系統(tǒng),不僅要使用匯編語(yǔ)言來(lái)編程,有時(shí)還要使用高級(jí)語(yǔ)言。⑴軟件方案設(shè)計(jì)⑵建立數(shù)學(xué)模型⑶軟件程序流程圖設(shè)計(jì)⑷編制程序⑸軟件檢查20圖9-2軟件設(shè)計(jì)流程圖214.系統(tǒng)調(diào)試單片機(jī)應(yīng)用系統(tǒng)的總體調(diào)試是系統(tǒng)開(kāi)發(fā)的重要環(huán)節(jié)。當(dāng)完成了單片機(jī)應(yīng)用系統(tǒng)的硬件、軟件設(shè)計(jì)和硬件組裝后,便可進(jìn)入單片機(jī)應(yīng)用系統(tǒng)調(diào)試階段。系統(tǒng)調(diào)試的目的是要查出用戶系統(tǒng)中硬件設(shè)計(jì)與軟件設(shè)計(jì)中存在的錯(cuò)誤及可能出現(xiàn)的不協(xié)調(diào)問(wèn)題,以便修改設(shè)計(jì),最終使用戶系統(tǒng)能正確可靠地工作。系統(tǒng)調(diào)試包括硬件調(diào)試、軟件調(diào)試和軟、硬件聯(lián)調(diào)。根據(jù)調(diào)試環(huán)境不同,系統(tǒng)調(diào)試又分為模擬調(diào)試與現(xiàn)場(chǎng)調(diào)試。系統(tǒng)調(diào)試的一般過(guò)程如圖9-3。各種調(diào)試所起的作用是不同的,它們所處的時(shí)間段也不一樣,不過(guò)它們的目的都是為了查出用戶系統(tǒng)中存在的錯(cuò)誤或缺陷。在調(diào)試過(guò)程中要不斷調(diào)整、修改系統(tǒng)的硬件和軟件,直到其正確為止。22圖9-3系統(tǒng)調(diào)試的一般過(guò)程23⑴單片機(jī)應(yīng)用系統(tǒng)調(diào)試工具在單片機(jī)應(yīng)用系統(tǒng)的調(diào)試過(guò)程中,常用的調(diào)試工具有以下幾種。①單片機(jī)開(kāi)發(fā)系統(tǒng)②萬(wàn)用表③邏輯筆④邏輯脈沖發(fā)生器與模擬信號(hào)發(fā)生器⑤示波器⑥邏輯分析儀⑵單片機(jī)應(yīng)用系統(tǒng)的一般調(diào)試方法單片機(jī)應(yīng)用系統(tǒng)的一般調(diào)試方法有。①硬件調(diào)試:a)靜態(tài)調(diào)試

b)動(dòng)態(tài)調(diào)試24②軟件調(diào)試:a)先獨(dú)立后聯(lián)機(jī)b)先分塊后組合

c)先單步后連續(xù)③系統(tǒng)聯(lián)調(diào):a)軟、硬件能否按預(yù)定要求配合工作

b)系統(tǒng)運(yùn)行中是否有潛在的設(shè)計(jì)時(shí)難以預(yù)料的錯(cuò)誤

c)系統(tǒng)的動(dòng)態(tài)性能指標(biāo)(包括精度、速度參數(shù))是否滿足設(shè)計(jì)要求。④現(xiàn)場(chǎng)調(diào)試現(xiàn)場(chǎng)調(diào)試對(duì)用戶系統(tǒng)的調(diào)試來(lái)說(shuō)是最后必需的一個(gè)過(guò)程,只有經(jīng)過(guò)現(xiàn)場(chǎng)調(diào)試的用戶系統(tǒng)才能保證其可靠地工作?,F(xiàn)場(chǎng)調(diào)試仍需利用開(kāi)發(fā)系統(tǒng)來(lái)完成,其調(diào)試方法與前述類(lèi)似。259.3單片機(jī)應(yīng)用系統(tǒng)的抗干擾設(shè)計(jì)9.3.1硬件抗干擾設(shè)計(jì)由于各應(yīng)用系統(tǒng)所處的環(huán)境不同,面臨的干擾源也不同,相應(yīng)采取的抗干擾措施也不盡相同。在單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)中,硬件抗干擾措施主要從下面幾個(gè)方面考慮。

261.電源的干擾及抗干擾措施對(duì)于單片機(jī)應(yīng)用系統(tǒng)來(lái)說(shuō),最嚴(yán)重的干擾來(lái)源于電源。由于任何電源及輔電線都存在內(nèi)阻、分布電容和電感等,正是這些因素引發(fā)了電源的噪聲干擾。一般解決的方法是:

(1)采用交流穩(wěn)壓電源保證供電的穩(wěn)定性,防止電源的過(guò)電壓和欠電壓。

(2)利用低通濾波器濾除高次諧波,改善電源波形。

(3)采用隔離變壓器,并使其一次側(cè)、二次側(cè)之間均采用屏蔽層隔離,以減少其分布電容,提高抗共模干擾能力。

(4)采用分散獨(dú)立功能塊供電,以減少公共阻抗的相互耦合以及公共電源的相互耦合。272.輸入輸出通道干擾及抗干擾措施

(1)輸入輸出通道是單片機(jī)與外設(shè)、被控對(duì)象進(jìn)行信息交換的渠道。由輸入輸出通道引起的干擾主要由公共地線引發(fā),其次是受到靜電噪聲和電磁波干擾。常用的方法有:

(2)摸擬電路通過(guò)隔離放大器隔離,數(shù)字電路通過(guò)光電耦合器隔離。模擬接地和數(shù)字接地嚴(yán)格分開(kāi),隔離器輸入回路和輸出回路的電源分別供電。

(3)用雙絞線作長(zhǎng)線傳輸線能有效地抑制共模噪聲及電磁場(chǎng)干擾,并應(yīng)對(duì)傳輸線進(jìn)行阻抗匹配,以免產(chǎn)生反射,使信號(hào)失真。

(4)傳感器后級(jí)的變送器應(yīng)盡量采用電流型傳輸方式,因電流型比電壓型抗干擾能力要高。283.電磁場(chǎng)干擾及抗干擾措施

(1)對(duì)干擾源進(jìn)行電磁屏蔽(如變壓器、繼電器等)。

(2)對(duì)整個(gè)系統(tǒng)進(jìn)行電磁屏蔽,傳輸線采用屏蔽線。

4.印制電路板及電路的抗干擾措施

(1)將強(qiáng)、弱電路嚴(yán)格分開(kāi),盡量不要把它們?cè)O(shè)計(jì)在一塊印制電路扳上。

(2)電源線的走向應(yīng)盡量與數(shù)據(jù)傳輸方向一致。

(3)電源的地線應(yīng)盡量加粗。

(4)在大規(guī)模集成電路芯片的供電端都應(yīng)加高頻濾波電容,在各個(gè)供電接點(diǎn)上還應(yīng)加足夠容量的退耦電容。299.3.2軟件抗干擾設(shè)計(jì)軟件抗干擾設(shè)計(jì)是單片機(jī)應(yīng)用系統(tǒng)的一個(gè)重要組成部分。干擾對(duì)單片機(jī)系統(tǒng)可能造成下列后果:數(shù)據(jù)采集誤差增大,程序“飛走”失控或陷入死循環(huán)。盡管在硬件方面采取種種抗干擾措施,但仍不能完全消除這些干擾,必須同時(shí)從軟件方面采取適當(dāng)?shù)拇胧?,才能取得良好的抗干擾效果。如能正確地采用軟件抗干擾措施,與硬件抗干擾措施構(gòu)成雙重抑制,將大大地提高系統(tǒng)的可靠性。而且采用軟件抗干擾設(shè)計(jì),通常成本低、見(jiàn)效快,能起到事半功倍的效果。軟件方面抗干擾措施通常有以下幾種方法:301.?dāng)?shù)據(jù)采集誤差對(duì)于實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)來(lái)說(shuō),為了消除傳感器通道中的干擾信號(hào),在早期常采用硬件電路措施,如有源或無(wú)源濾波網(wǎng)絡(luò)、過(guò)程模擬濾波器對(duì)信號(hào)實(shí)現(xiàn)濾波。同樣,隨著計(jì)算機(jī)運(yùn)算速度的提高,可以利用軟件技術(shù)對(duì)信號(hào)實(shí)現(xiàn)數(shù)字濾波。下面介紹幾種常用的方法。

(1)算術(shù)平均值法

(2)比較舍取法

(3)中位值法

(4)一階遞推數(shù)字濾波法312.開(kāi)關(guān)量的抗干擾措施

(1)對(duì)于開(kāi)關(guān)量輸入,為了確保信息的正確性,可以采取多次讀入進(jìn)行比較,取多數(shù)情況的狀態(tài)。

(2)對(duì)于開(kāi)關(guān)量輸出,通常是用來(lái)控制電感性的執(zhí)行機(jī)構(gòu),如控制電磁閥。為了防止電磁閥因干擾產(chǎn)生誤動(dòng)作,可以在應(yīng)用程序中每隔一段時(shí)間(比如幾個(gè)毫秒)發(fā)出一次命令,不斷地關(guān)閉閥門(mén)或打開(kāi)閥門(mén)。這樣就可以較好地消除由于擾動(dòng)而引起的誤動(dòng)作。

(3)對(duì)于輸入開(kāi)關(guān)量的機(jī)械抖動(dòng)干擾,軟件程序可以通過(guò)延時(shí)來(lái)進(jìn)行消除。323.程序“飛走”失控或進(jìn)入死循環(huán)系統(tǒng)受到干擾導(dǎo)致PC值改變后,PC值不是指向指令的首字節(jié)地址而可能指向指令中的中間字節(jié)單元即操作數(shù),將操作數(shù)作為指令碼執(zhí)行;或使PC值超出程序區(qū),將非程序區(qū)的隨機(jī)數(shù)作為指令碼運(yùn)行,從而使程序失控“飛走”,或由于偶然巧合進(jìn)入死循環(huán)。這里所說(shuō)的死循環(huán)并非程序編制中出現(xiàn)的死循環(huán)錯(cuò)誤,而是指正常運(yùn)行時(shí)程序正確,只是因?yàn)楦蓴_而產(chǎn)生的死循環(huán)。解決方法有:

(1)設(shè)置軟件陷阱

(2)設(shè)置“看門(mén)狗”(1)設(shè)置軟件陷阱即在非程序區(qū)安排指令強(qiáng)迫復(fù)位。如用LJMP0000H的機(jī)器碼填滿非程序區(qū)。這樣不論P(yáng)C失控后飛到非程序區(qū)的哪個(gè)字節(jié),都能復(fù)位。也可在程序區(qū)每隔一段(如幾十條指令)連續(xù)安排三條NOP指令。因?yàn)?051指令字節(jié)最長(zhǎng)為三字節(jié)。當(dāng)程序失控時(shí),只要不跳轉(zhuǎn),指令連續(xù)執(zhí)行,就會(huì)運(yùn)行NOP指令,就能使程序恢復(fù)正常。(2)設(shè)置“看門(mén)狗”設(shè)置軟件陷阱能解決一部分程序失控問(wèn)題,但當(dāng)程序失控“飛走”進(jìn)入某種死循環(huán)時(shí),軟件陷阱可能不起作用。使程序從死循環(huán)中恢復(fù)到正常狀態(tài)的有效方法是設(shè)置時(shí)間監(jiān)視器,時(shí)間監(jiān)視器又稱(chēng)“看門(mén)狗”。33時(shí)間監(jiān)視器有兩種:一種是硬時(shí)鐘,一種是軟時(shí)鐘。硬時(shí)鐘是在CPU芯片外用硬件構(gòu)成一個(gè)定時(shí)器,軟時(shí)鐘是利用片內(nèi)定時(shí)/計(jì)數(shù)器,定時(shí)時(shí)間比正常執(zhí)行一次程序循環(huán)所需時(shí)間要大。正常運(yùn)行未受干擾時(shí),CPU每隔一段時(shí)間“喂狗”一次,即對(duì)硬時(shí)鐘輸出復(fù)位脈沖使其復(fù)位;對(duì)軟時(shí)鐘重置時(shí)間常數(shù)復(fù)位?!拔构贰睍r(shí)間應(yīng)比設(shè)定的定時(shí)時(shí)間要短,即在狗“未餓未叫”時(shí)“喂狗”(復(fù)位),使其始終不“叫”(不中斷、不溢出)。當(dāng)受到干擾,程序不能正常運(yùn)行,陷入死循環(huán)時(shí),因不能及時(shí)“喂狗”,硬時(shí)鐘或軟時(shí)鐘運(yùn)行至既定的定時(shí)時(shí)間,硬時(shí)鐘輸出一個(gè)復(fù)位脈沖至CPU的RESET端使單片機(jī)復(fù)位。軟時(shí)鐘可產(chǎn)生中斷,在中斷服務(wù)子程序中修正或復(fù)位。上述硬、軟時(shí)鐘只需設(shè)置其中一種,各有利弊。軟時(shí)鐘不需增加硬件電路但要占用一個(gè)寶貴的定時(shí)/計(jì)數(shù)器資源;硬時(shí)鐘不占資源,但要增加硬件電路和材料成本。34359.4單片機(jī)應(yīng)用系統(tǒng)實(shí)例9.4.1數(shù)碼管時(shí)鐘電路的設(shè)計(jì)

1.系統(tǒng)設(shè)計(jì)引言

AT89C2051是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含2kbytes的可反復(fù)擦寫(xiě)的只讀Flash程序存儲(chǔ)器和128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元。

AT89C2051是一個(gè)功能強(qiáng)大的單片機(jī),但它只有20個(gè)引腳,15個(gè)雙向輸入/輸出(I/O)端口,其中P1是一個(gè)完整的8位雙向I/O口,兩個(gè)外中斷口,兩個(gè)16位可編程定時(shí)計(jì)數(shù)器,兩個(gè)全雙向串行通信口,一個(gè)模擬比較放大器。其引腳如圖9-4所示。36圖9-4AT89C2051引腳圖372.系統(tǒng)設(shè)計(jì)原理

以AT89C2051單片機(jī)來(lái)實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)顯示有如下幾個(gè)要點(diǎn):⑴計(jì)算計(jì)數(shù)初值

時(shí)鐘計(jì)時(shí)的關(guān)鍵問(wèn)題是秒的產(chǎn)生,因?yàn)槊胧亲钚r(shí)鐘單位,但使用MCS-51的定時(shí)器/計(jì)數(shù)器進(jìn)行定時(shí),即使按工作方式1,其最大定時(shí)時(shí)間也只能達(dá)到131ms,離1s還差很遠(yuǎn)。為此,我們把秒計(jì)時(shí)用硬件定時(shí)和軟件計(jì)數(shù)相結(jié)合的方法實(shí)現(xiàn),即:把定時(shí)器的定時(shí)時(shí)間定為125ms,這樣計(jì)數(shù)溢出8次就可得到1s,而8次計(jì)數(shù)可用軟件方法實(shí)現(xiàn)。為得到125ms定時(shí),我們可使用定時(shí)器/計(jì)數(shù)器0,以工作方式1進(jìn)行,假定單片機(jī)為6MHz晶振,設(shè)計(jì)數(shù)初值為X,則有如下等式:(216-X)×2=125000計(jì)算得計(jì)數(shù)初值X=3036,二進(jìn)制表示為110011011100B,十六進(jìn)制表示為0CDCH。

⑵設(shè)定定時(shí)器定時(shí)方式定時(shí)器采用中斷定時(shí)方式完成,以便于通過(guò)中斷服務(wù)程序進(jìn)行溢出次數(shù)(每次125ms)的累計(jì),計(jì)滿8次即得到秒計(jì)時(shí)。

⑶實(shí)現(xiàn)方法

通過(guò)在程序中的數(shù)值累加和數(shù)值比較來(lái)實(shí)現(xiàn)從秒到分和從分到時(shí)的計(jì)時(shí)。3839⑷設(shè)置時(shí)鐘顯示及顯示緩沖區(qū)

假定時(shí)鐘時(shí)間在6位LED數(shù)碼管上進(jìn)行顯示(時(shí)、分、秒各占兩位)。為此,要在內(nèi)部RAM中設(shè)置顯示緩沖區(qū),共6個(gè)單元,與數(shù)碼管對(duì)應(yīng)關(guān)系見(jiàn)表9-1。顯示緩沖區(qū)從左向右依次存放時(shí)、分、秒的數(shù)值。表9-1LED顯示器的緩沖單位LED5LED4LED3LED2LED1LED07EH7DH7CH7BH7AH79H403.系統(tǒng)硬件設(shè)計(jì)

數(shù)碼管時(shí)鐘電路如圖9-5所示,其采用AT89C2051單片機(jī)最小化應(yīng)用設(shè)計(jì),LED顯示用動(dòng)態(tài)掃描方式實(shí)現(xiàn),P1口輸出段碼數(shù)據(jù),P3.0~P3.5口作掃描輸出,P3.7接按鈕開(kāi)關(guān)。為了提供LED數(shù)碼管的驅(qū)動(dòng)電流,用三極管9012作電源驅(qū)動(dòng)輸出。為了提高秒計(jì)時(shí)的精確中。本設(shè)計(jì)中的計(jì)時(shí)采用定時(shí)器T0中斷完成,其余狀態(tài)循環(huán)調(diào)用顯示子程序,當(dāng)P3.7端口開(kāi)關(guān)按下時(shí),轉(zhuǎn)入調(diào)時(shí)功能程序。41圖9-5采用AT89C2051的六位時(shí)鐘電路424.系統(tǒng)軟件設(shè)計(jì)⑴主程序(MAIN)主程序的主要功能是進(jìn)行定時(shí)器/計(jì)數(shù)器的初始化編程,然后通過(guò)反復(fù)調(diào)用顯示子程序的方法,等待125ms定時(shí)中斷的到來(lái)。系統(tǒng)主程序流程圖如圖9-6所示。

圖9-6系統(tǒng)主程序流程圖43⑵加1子程序(DAAD1)加1子程序用于完成對(duì)秒、分和時(shí)的加1操作,中斷服務(wù)程序中在秒、分、時(shí)加1時(shí)共有三處調(diào)用此子程序。加1子程序流程圖如圖9-7所示。圖9-7加1子程序流程

44⑶中斷服務(wù)程序(PITO)中斷服務(wù)程序的主要功能是進(jìn)行計(jì)時(shí)操作。程序開(kāi)始先判斷計(jì)數(shù)溢出是否滿了8次,不滿8次表明還沒(méi)達(dá)到最小計(jì)時(shí)單位秒,中斷返回;如滿8次則表明已達(dá)到最小計(jì)時(shí)單位秒,程序繼續(xù)向下執(zhí)行,進(jìn)行計(jì)時(shí)操作。中斷服務(wù)程序流程如圖9-8所示。45圖9-8中斷服務(wù)程序流程圖46⑸顯示子程序數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元79H~7EH中,其中79H~7AH存放秒數(shù)據(jù),7BH~7CH存放分?jǐn)?shù)據(jù),7DH~7EH存放時(shí)數(shù)據(jù),每一地址單元內(nèi)均為十進(jìn)制BCD碼。由于采用軟件動(dòng)態(tài)掃描實(shí)現(xiàn)數(shù)據(jù)顯示功能,顯示用十進(jìn)制BCD碼數(shù)據(jù)的對(duì)應(yīng)段碼存放在ROM表中。顯示時(shí),先取出79H~7EH某一地址中的數(shù)據(jù),然后查得對(duì)應(yīng)的顯示用段碼從P1口輸出。P3口將對(duì)應(yīng)的數(shù)碼管選中,就能顯示該地址單元的數(shù)據(jù)值。47

9.4.2汽車(chē)倒車(chē)測(cè)距儀應(yīng)用實(shí)例汽車(chē)倒車(chē)測(cè)距儀能測(cè)量并顯示車(chē)輛后部障礙物離車(chē)輛的距離,同時(shí)用間歇嘟嘟聲發(fā)出警報(bào),嘟嘟聲間隙隨障礙物距離縮短而縮短,駕駛員不但可以直接觀察顯示的障礙物距離,還可以憑聽(tīng)覺(jué)判斷車(chē)后障礙物離車(chē)輛距離的遠(yuǎn)近。1.工作原理超聲波在空氣中的傳播速度與聲速相當(dāng),約340m/s。從發(fā)射信號(hào)到遇障礙物反射接收,有幾毫秒到幾十毫秒的時(shí)間間隔,根據(jù)這個(gè)時(shí)間可以計(jì)算出障礙物距離。隨著電子技術(shù)和單片機(jī)應(yīng)用技術(shù)的發(fā)展,能比較精確測(cè)量車(chē)后障礙物距離的汽車(chē)倒車(chē)測(cè)距儀終于問(wèn)世了。482.主要技術(shù)指標(biāo):①最大探測(cè)距離:不小于5m。②測(cè)距相對(duì)誤差:<±5%。③工作環(huán)境:-l0~+55℃。雨、雪、霧、黑夜均不受影響。3.硬件電路圖9-9為汽車(chē)倒車(chē)測(cè)距儀電氣原理圖。49

圖9-9汽車(chē)倒車(chē)測(cè)距儀電原理圖50

圖9-10為40kHz超聲波發(fā)射電路。

401l兩個(gè)與非門(mén)E、F組成多諧振蕩器,調(diào)節(jié)RP1,可調(diào)節(jié)諧振頻率。P3.4控制多諧振蕩器的振蕩。輸出高電平時(shí),電路振蕩,發(fā)射40kHz超聲波;輸出低電平時(shí),停發(fā)射。

圖9-1040kHz超聲波發(fā)射電路51

圖9-11為嘟聲音響電路。

4011另兩個(gè)與非門(mén)G、H組成多諧振蕩器,諧振頻率約800Hz左右,作為嘟聲音頻率,P3.控制多諧振蕩器振蕩,高電平時(shí)發(fā)嘟聲,低電平時(shí)無(wú)聲。CPU可根據(jù)距離遠(yuǎn)近控制P3.5輸出方波的頻率,即控制嘟聲間隙時(shí)間。LM386作為功率放大,驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。圖9-11嘟聲音響電路52

圖9-12為超聲波遇障礙物反射信號(hào)接收電路。前三個(gè)LM324運(yùn)算放大器A、B、C組成三級(jí)回波信號(hào)放大電路。其中L1和C9組成選頻電路,濾除40kHz之外的干擾信號(hào)。VD2、C12

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論