片機(jī)原理及其接口技術(shù)_第1頁(yè)
片機(jī)原理及其接口技術(shù)_第2頁(yè)
片機(jī)原理及其接口技術(shù)_第3頁(yè)
片機(jī)原理及其接口技術(shù)_第4頁(yè)
片機(jī)原理及其接口技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章 MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 主要內(nèi)容: 從總體設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、可靠性設(shè)計(jì)、系統(tǒng)調(diào)試與測(cè)試等幾個(gè)方面介紹了單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的方法及基本過(guò)程,并給出了典型設(shè)計(jì)實(shí)例,同時(shí)還簡(jiǎn)單介紹了C51編程方法和Keil C51開(kāi)發(fā)系統(tǒng)。重點(diǎn)在于單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的方法與實(shí)際應(yīng)用,難點(diǎn)在于將單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的方法應(yīng)用于實(shí)際工程中,設(shè)計(jì)出最優(yōu)的單片機(jī)應(yīng)用系統(tǒng)。 片機(jī)原理及其接口技術(shù)7.1 概述 由于單片機(jī)具有體積小、功耗低、功能強(qiáng)、可靠性高、實(shí)時(shí)性強(qiáng)、簡(jiǎn)單易學(xué)、使用方便靈巧、易于維護(hù)和操作、性能價(jià)格比高、易于推廣應(yīng)用、可實(shí)現(xiàn)網(wǎng)絡(luò)通信等技術(shù)特點(diǎn)。因此,單片機(jī)在自動(dòng)化裝置、智能儀表、家用電器,

2、乃至數(shù)據(jù)采集、工業(yè)控制、計(jì)算機(jī)通信、汽車(chē)電子、機(jī)器人等領(lǐng)域得到了日益廣泛的應(yīng)用。 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)應(yīng)當(dāng)考慮其主要技術(shù)性能(速度 精度 功耗 可靠性 驅(qū)動(dòng)能力等),還應(yīng)當(dāng)考慮功能需求,應(yīng)用需求,開(kāi)發(fā)條件,市場(chǎng)情況,可靠性需求,成本需求,盡量以軟件代替硬件等。下頁(yè)圖描述了單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的一般過(guò)程。 片機(jī)原理及其接口技術(shù)片機(jī)原理及其接口技術(shù)7.2 MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 7.2.1 總體設(shè)計(jì)1明確設(shè)計(jì)任務(wù) 認(rèn)真進(jìn)行目標(biāo)分析,根據(jù)應(yīng)用場(chǎng)合、工作環(huán)境、具體用途,考慮系統(tǒng)的可靠性、通用性、可維護(hù)性、先進(jìn)性,以及成本等,提出合理的、詳盡的功能技術(shù)指標(biāo)。 2器件選擇(1)單片機(jī)選擇 主要從性能指

3、標(biāo)如字長(zhǎng)、主頻、尋址能力、指令系統(tǒng)、內(nèi)部寄存器狀況、存儲(chǔ)器容量、有無(wú)A/D、D/A通道、功耗、價(jià)能比等方面進(jìn)行選擇。對(duì)于一般的測(cè)控系統(tǒng),選擇8位機(jī)即能滿足要求。片機(jī)原理及其接口技術(shù)(2)外圍器件的選擇 外圍器件應(yīng)符合系統(tǒng)的精度、速度和可靠性、功耗、抗干擾等方面的要求。應(yīng)考慮功耗、電壓、溫度、價(jià)格、封裝形式等其他方面的指標(biāo),應(yīng)盡可能選擇標(biāo)準(zhǔn)化、模塊化、功能強(qiáng)、集成度高的典型電路。3總體設(shè)計(jì) 總體設(shè)計(jì)就是根據(jù)設(shè)計(jì)任務(wù)、指標(biāo)要求和給定條件,設(shè)計(jì)出符合現(xiàn)場(chǎng)條件的軟、硬件方案。并進(jìn)行方案優(yōu)化。應(yīng)劃分硬件、軟件任務(wù),畫(huà)出系統(tǒng)結(jié)構(gòu)框圖。要合理分配系統(tǒng)內(nèi)部的硬件、軟件資源。包括以下幾個(gè)方面: (1)從系統(tǒng)功能

4、需求出發(fā)設(shè)計(jì)功能模塊。包括顯示器、鍵盤(pán)、數(shù)據(jù)采集、檢測(cè)、通信、控制、驅(qū)動(dòng)、供電方式等 (2)從系統(tǒng)應(yīng)用需求分配元器件資源。包括定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、串行口、I/O接口、A/D、D/A、信號(hào)調(diào)理、時(shí)鐘發(fā)生器等。 (3)從開(kāi)發(fā)條件與市場(chǎng)情況出發(fā)選擇元器件。包括仿真器、編程器、元器件、語(yǔ)言、程序設(shè)計(jì)的簡(jiǎn)易等。 (4)從系統(tǒng)可靠性需求確定系統(tǒng)設(shè)計(jì)工藝。包括去耦、光隔、屏蔽、印制板、低功耗、散熱、傳輸距離/速度、節(jié)電方式、掉電保護(hù)、軟件措施等。片機(jī)原理及其接口技術(shù)7.2.2 硬件設(shè)計(jì) 由總體設(shè)計(jì)所給出的硬件框圖所規(guī)定的硬件功能,在確定單片機(jī)類(lèi)型的基礎(chǔ)上進(jìn)行硬件設(shè)計(jì)、實(shí)驗(yàn)。進(jìn)行必要的工藝結(jié)構(gòu)設(shè)計(jì),制作

5、出印刷電路板,組裝后即完成了硬件設(shè)計(jì)。 一個(gè)單片機(jī)應(yīng)用系統(tǒng)的硬件設(shè)計(jì)包含系統(tǒng)擴(kuò)展和系統(tǒng)的配置(按照系統(tǒng)功能要求配置外圍設(shè)備)兩部分。1硬件電路設(shè)計(jì)的一般原則 (1)采用新技術(shù),注意通用性,選擇典型電路。 (2)向片上系統(tǒng)(SOC)方向發(fā)展。擴(kuò)展接口盡可能采用PSD等器件。 (3)注重標(biāo)準(zhǔn)化、模塊化。 (4)滿足應(yīng)用系統(tǒng)的功能要求,并留有適當(dāng)余地,以便進(jìn)行二次開(kāi)發(fā)。 (5)工藝設(shè)計(jì)時(shí)要考慮安裝、調(diào)試、維修的方便。片機(jī)原理及其接口技術(shù)2硬件電路各模塊設(shè)計(jì)的原則 單片機(jī)應(yīng)用系統(tǒng)的一般結(jié)構(gòu) 如下圖所示。各模塊電路設(shè)計(jì)時(shí)應(yīng)考慮以下幾個(gè)方面: (1)存儲(chǔ)器擴(kuò)展:類(lèi)型、容量、速度和接口,盡量減少芯片的數(shù)量。

6、 (2)I/O接口的擴(kuò)展:體積、價(jià)格、負(fù)載能力、功能,合適的地址譯碼方法。片機(jī)原理及其接口技術(shù) (3)輸入通道的設(shè)計(jì):開(kāi)關(guān)量(接口形式、電壓等級(jí)、隔離方式、擴(kuò)展接口等),模擬輸入通道(信號(hào)檢測(cè)、信號(hào)傳輸、隔離、信號(hào)處理、 A/D、擴(kuò)展接口、速度、精度和價(jià)格等)。 (4)輸出通道的設(shè)計(jì):開(kāi)關(guān)量(功率、控制方式等),模擬量輸出通道(輸出信號(hào)的形式、 D/A 、隔離方式、擴(kuò)展接口等) (5)人機(jī)界面的設(shè)計(jì):鍵盤(pán)、開(kāi)關(guān)、撥碼盤(pán)、啟/停操作、復(fù)位、顯示器、打印、指示、報(bào)警、擴(kuò)展接口等。 (6)通信電路的設(shè)計(jì):根據(jù)需要選擇RS-232C、RS-485、紅外收發(fā)等通信標(biāo)準(zhǔn)。 (7)印刷電路板的設(shè)計(jì)與制作:專(zhuān)

7、業(yè)設(shè)計(jì)軟件( Protel,OrCAD等)、設(shè)計(jì)、專(zhuān)業(yè)化制作廠家、安裝元件、調(diào)試等。片機(jī)原理及其接口技術(shù) (8)負(fù)載容限:總線驅(qū)動(dòng)。 (9)信號(hào)邏輯電平兼容性:電平兼容和轉(zhuǎn)換。 (10)電源系統(tǒng)的配置:電源的組數(shù)、輸出功率、抗干擾。 (11)抗干擾的實(shí)施:芯片、器件選擇、去耦濾波、印刷電路板布線、通道隔離等。 7.2.3 軟件設(shè)計(jì) 軟件設(shè)計(jì)流程圖如右圖所示??煞譃橐韵聨讉€(gè)方面。片機(jī)原理及其接口技術(shù)1總體規(guī)劃 結(jié)合硬件結(jié)構(gòu),明確軟件任務(wù),確定具體實(shí)施的方法,合理分配資源。定義輸入/輸出、確定信息交換的方式(數(shù)據(jù)速率、數(shù)據(jù)格式、校驗(yàn)方法、狀態(tài)信號(hào)等)、時(shí)間要求,檢查與糾正錯(cuò)誤。2程序設(shè)計(jì)技術(shù) 軟件

8、結(jié)構(gòu)實(shí)現(xiàn)結(jié)構(gòu)化,各功能程序?qū)嵭心K化、子程序化。一般有以下兩種設(shè)計(jì)方法: (1)模塊程序設(shè)計(jì):優(yōu)點(diǎn)是單個(gè)功能明確的程序模塊的設(shè)計(jì)和調(diào)試比較方便,容易完成,一個(gè)模塊可以為多個(gè)程序所共享。其缺點(diǎn)是各個(gè)模塊的連接有時(shí)有一定難度。 (2)自頂向下的程序設(shè)計(jì):優(yōu)點(diǎn)是比較符合于人們的日常思維,設(shè)計(jì)、調(diào)試和連接同時(shí)按一個(gè)線索進(jìn)行,程序錯(cuò)誤可以較早的發(fā)現(xiàn)。缺點(diǎn)是上一級(jí)的程序錯(cuò)誤將對(duì)整個(gè)程序產(chǎn)生影響,一處修改可能引起對(duì)整個(gè)程序的全面修改。片機(jī)原理及其接口技術(shù)3程序設(shè)計(jì) (1)建立數(shù)學(xué)模型:描述出各輸入變量和各輸出變量之間的數(shù)學(xué)關(guān)系。 (2)繪制程序流程圖:以簡(jiǎn)明直觀的方式對(duì)任務(wù)進(jìn)行描述。 (3)程序的編制:選擇

9、語(yǔ)數(shù)據(jù)結(jié)構(gòu)、控制算法、存儲(chǔ)空間分配,系統(tǒng)硬件資源的合理分配與使用,子程序的入/出口參數(shù)的設(shè)置與傳遞。 4軟件裝配 各程序模塊編輯之后,需進(jìn)行匯編或編譯、調(diào)試,當(dāng)滿足設(shè)計(jì)要求后,將各程序模塊按照軟件結(jié)構(gòu)設(shè)計(jì)的要求連接起來(lái),即為軟件裝配。在軟件裝配時(shí),應(yīng)注意軟件接口。片機(jī)原理及其接口技術(shù)7.2.4 可靠性設(shè)計(jì) 可靠性:通常是指在規(guī)定的條件(環(huán)境條件如溫度、濕度、振動(dòng),供電條件等)下,在規(guī)定的時(shí)間內(nèi)(平均無(wú)故障時(shí)間)完成規(guī)定功能的能力。 提高單片機(jī)本身的可靠性措施:降低外時(shí)鐘頻率,采用時(shí)鐘監(jiān)測(cè)電路與看門(mén)狗技術(shù)、低電壓復(fù)位、EFT抗干擾技術(shù)、指令設(shè)計(jì)上的軟件抗干擾等幾方面。 單片機(jī)應(yīng)用系統(tǒng)的主要干擾渠

10、道:空間干擾、過(guò)程通道干擾、供電系統(tǒng)干擾。應(yīng)用于工業(yè)生產(chǎn)過(guò)程中的單片機(jī)應(yīng)用系統(tǒng)中,應(yīng)重點(diǎn)防止供電系統(tǒng)與過(guò)程通道的干擾。 片機(jī)原理及其接口技術(shù)1供電系統(tǒng)干擾與抑制 干擾源:電源及輸電線路的內(nèi)阻、分布電容和電感等。 抗干擾措施:采用交流穩(wěn)壓器、電源低通濾波器、帶屏蔽層的隔離變壓器、獨(dú)立的(或?qū)I(yè)的)直流穩(wěn)壓模塊,交流引線應(yīng)盡量短,主要集成芯片的電源采用去耦電路,增大輸入/輸出濾波電容等措施 。 2過(guò)程通道的干擾與抑制 干擾源:長(zhǎng)線傳輸。單片機(jī)應(yīng)用系統(tǒng)中,從現(xiàn)場(chǎng)信號(hào)輸出的開(kāi)關(guān)信號(hào)或從傳感器輸出的微弱模擬信號(hào),經(jīng)傳輸線送入單片機(jī),信號(hào)在傳輸線上傳輸時(shí),會(huì)產(chǎn)生延時(shí)、畸變、衰減及通道干擾。 抗干擾措施:

11、(1)采用隔離技術(shù):光電隔離、變壓器隔離、繼電器隔離和布線隔離等。典型的信號(hào)隔離是光電隔離。其優(yōu)點(diǎn)是能有效地抑制尖峰脈沖及各種噪聲干擾,從而使過(guò)程通道上的信噪比大大提高。片機(jī)原理及其接口技術(shù) (2)采用屏蔽措施:金屬盒罩、金屬網(wǎng)狀屏蔽線。但金屬屏蔽本身必須接真正的地(保護(hù)地)。 (3)采用雙絞線傳輸:雙絞線能使各個(gè)小環(huán)路的電磁感應(yīng)干抗相互抵消。其特點(diǎn)是波阻抗高、抗共模噪聲能力強(qiáng),但頻帶較差。 (4)采用長(zhǎng)線傳輸?shù)淖杩蛊ヅ洌河兴姆N形式,如下圖所示。片機(jī)原理及其接口技術(shù) 終端并聯(lián)阻抗匹配:如上頁(yè)圖(a)所示, RP= R1/R2 ,其特點(diǎn)是終端阻值低,降低了高電平的抗干擾能力。 始端串聯(lián)匹配:如上

12、頁(yè)圖(b)所示,匹配電阻R的取值為RP與A門(mén)輸出低電平的輸出阻抗ROUT(約20)之差值,其特點(diǎn)是終端的低電平抬高,降低了低電平的抗干擾能力。 終端并聯(lián)隔直流匹配:如圖上頁(yè)(c)所示,R=Rp,其特點(diǎn)是增加了對(duì)高電平的抗干擾能力。 終端接鉗位二極管匹配:如圖上頁(yè)(d)所示,利用二極管D把B門(mén)輸入端低電平鉗位在0.3V以下。其特點(diǎn)是減少波的反射和振蕩,提高動(dòng)態(tài)抗干擾能力。注意:長(zhǎng)線傳輸時(shí),用電流傳輸代替電壓傳輸,可獲得較好的抗干擾能力。片機(jī)原理及其接口技術(shù)3其他硬件抗干擾措施 (1)對(duì)信號(hào)整形 可采用斯密特電路整形。 (2)組件空閑輸入端的處理 組件空閑輸入端的處理方法如下圖所示。其中,圖(a)

13、所示的方法最簡(jiǎn)單,但增加了前級(jí)門(mén)的負(fù)擔(dān)。圖(b)所示的方法適用于慢速、多干擾的場(chǎng)合。圖(c)利用印刷電路板上多余的反相器,讓其輸入端接地,使其輸出去控制工作門(mén)不用的輸入端。片機(jī)原理及其接口技術(shù) (3)機(jī)械觸點(diǎn),接觸器、可控硅的噪聲抑制 開(kāi)關(guān)、按鈕、繼電器觸點(diǎn)等在操作時(shí)應(yīng)采取去抖處理。 在輸入/輸出通道中使用接觸器、繼電器時(shí),應(yīng)在線圈兩端并接噪聲抑制器,繼電器線圈處要加裝放電二極管。 可控硅兩端并接RC抑制電路,可減小可控硅產(chǎn)生的噪聲。 (4)印刷電路板(PCB)設(shè)計(jì)中的抗干擾問(wèn)題 合理選擇PCB板的層數(shù),大小要適中,布局、分區(qū)應(yīng)合理,把相互有關(guān)的元件盡量放得靠近一些。印刷導(dǎo)線的布設(shè)應(yīng)盡量短而寬

14、,盡量減少回路環(huán)的面積,以降低感應(yīng)噪聲。導(dǎo)線的布局應(yīng)當(dāng)是均勻的、分開(kāi)的平行直線,以得到一條具有均勻波阻抗的傳輸通路。應(yīng)盡可能地減少過(guò)孔的數(shù)量。在PCB板的各個(gè)關(guān)鍵部位應(yīng)配置去耦電容。要將強(qiáng)、弱電路嚴(yán)格分開(kāi),盡量不要把它們?cè)O(shè)計(jì)在一塊印刷電路板上。電源線的走向應(yīng)盡量與數(shù)據(jù)傳遞方向一致,電源線、地線應(yīng)盡量加粗,以減小阻抗。片機(jī)原理及其接口技術(shù)(5)地線設(shè)計(jì) 地線結(jié)構(gòu)大致有保護(hù)地、系統(tǒng)地、機(jī)殼地(屏蔽地)、數(shù)字地、模擬地等。 在設(shè)計(jì)時(shí),數(shù)字地和模擬地要分開(kāi),分別與電源端地線相連;屏蔽線根據(jù)工作頻率可采用單點(diǎn)接地或多點(diǎn)接地;保護(hù)地的接地是指接大地。不能把接地線與動(dòng)力線的零線混淆。 此外,應(yīng)提高元器件的可

15、靠性,注意各電路之間的電平匹配,總線驅(qū)動(dòng)能力要符合要求,單片機(jī)的空閑端要接地或接電源,或者定義成輸出。室外使用的單片機(jī)系統(tǒng)或從室外架空引入室內(nèi)的電源線、信號(hào)線,要防止雷擊,常用的防雷擊器件有:氣體放電管,TVS(瞬態(tài)電壓抑制器)等。片機(jī)原理及其接口技術(shù)4軟件的抗干擾設(shè)計(jì) 常用的軟件抗干擾技術(shù)有軟件陷阱、時(shí)間冗余、指令冗余、空間冗余、容錯(cuò)技術(shù)、設(shè)置特征標(biāo)志和軟件數(shù)字濾波等 (1)實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的軟件抗干擾 采用軟件數(shù)字濾波。常用的方法有以下幾種: 算術(shù)平均值法:對(duì)一點(diǎn)數(shù)據(jù)連續(xù)采樣多次(可取35次),以平均值作為該點(diǎn)的采樣結(jié)果。這種方法可以減少系統(tǒng)的隨機(jī)干擾對(duì)采集結(jié)果的影響。 比較舍取法:對(duì)每個(gè)

16、采樣點(diǎn)連續(xù)采樣幾次,根據(jù)所采樣數(shù)據(jù)的變化規(guī)律,確定取舍辦法來(lái)剔除偏差數(shù)據(jù)。例如,“采三取二”,即對(duì)每個(gè)采樣點(diǎn)連續(xù)采樣三次,取兩次相同數(shù)據(jù)作為采樣結(jié)果。 中值法:對(duì)一個(gè)采樣點(diǎn)連續(xù)采集多個(gè)信號(hào),并對(duì)這些采樣值進(jìn)行比較,取中值作為該點(diǎn)的采樣結(jié)果。 片機(jī)原理及其接口技術(shù) 一階遞推數(shù)字濾波法:利用軟件完成RC低通濾波器的算法。 其公式為:Yn=QXn+(1Q)Yn1 其中:Q 數(shù)字濾波器時(shí)間常數(shù); Xn第n次采樣時(shí)的濾波器的輸入; Yn1第n1次采樣時(shí)的濾波器的輸出。 Yn第n次采樣時(shí)的濾波器的輸出。 注意:選取何種方法必須根據(jù)信號(hào)的變化規(guī)律予以確定。(2)開(kāi)關(guān)量控制系統(tǒng)的軟件抗干擾 可采取軟件冗余、設(shè)

17、置當(dāng)前輸出狀態(tài)寄存單元、設(shè)置自檢程序等軟件抗干擾措施。片機(jī)原理及其接口技術(shù)5程序運(yùn)行失常的軟件對(duì)策 程序運(yùn)行失常:當(dāng)系統(tǒng)受到干擾侵害,致使程序計(jì)數(shù)器PC值改變,造成程序的無(wú)序運(yùn)行,甚至進(jìn)入死循環(huán)。 程序運(yùn)行失常的軟件對(duì)策:發(fā)現(xiàn)失常狀態(tài)后,及時(shí)引導(dǎo)系統(tǒng)恢復(fù)原始狀態(tài)。可采用以下方法: (1)程序監(jiān)視定時(shí)器(Watchdag,WDT)技術(shù) 程序監(jiān)視定時(shí)器(也稱(chēng)為“看門(mén)狗” )的作用:通過(guò)不斷監(jiān)視程序每周期的運(yùn)行事件是否超過(guò)正常狀態(tài)下所需要的時(shí)間,從而判斷程序是否進(jìn)入了“死循環(huán)”,并對(duì)進(jìn)入“死循環(huán)”的程序作出系統(tǒng)復(fù)位處理。 “看門(mén)狗”技術(shù):可由硬件、軟件或軟硬結(jié)合實(shí)現(xiàn)。 硬件“看門(mén)狗”可以很好地解決主

18、程序陷入死循環(huán)的故障,但是,嚴(yán)重的干擾有時(shí)會(huì)出現(xiàn)中斷關(guān)閉故障使系統(tǒng)無(wú)法定時(shí)“喂狗”,無(wú)法探測(cè)到這種故障,硬件“看門(mén)狗”電路失效。 片機(jī)原理及其接口技術(shù)表2-5 工作寄存器組選擇控制表 軟件“看門(mén)狗” 可以保證對(duì)中斷關(guān)閉故障的發(fā)現(xiàn)和處理,但若單片機(jī)的死循環(huán)發(fā)生在某個(gè)高優(yōu)先級(jí)的中斷服務(wù)程序中,軟件“看門(mén)狗”也無(wú)法完成其作用。 利用軟硬結(jié)合的“看門(mén)狗”組合可以克服單一“看門(mén)狗”功能的缺陷,從而實(shí)現(xiàn)對(duì)故障的全方位監(jiān)控。 (2)設(shè)置軟件陷阱 軟件陷阱:指將捕獲的“跑飛”程序引向復(fù)位入口地址0000H的指令。 設(shè)置方法: 在EPROM中,非程序區(qū)設(shè)置軟件陷阱,軟件陷阱一般1KB空間有23個(gè)就可以進(jìn)行有效攔

19、截。指令如下: NOP NOP LJMP 0000H 片機(jī)原理及其接口技術(shù) 在未使用的中斷服務(wù)程序中設(shè)置軟件陷阱,能及時(shí)捕獲錯(cuò)誤的中斷。指令如下: NOP NOP RETI(3)指令冗余技術(shù)指令冗余:在程序的關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫(xiě),稱(chēng)為指令冗余。作用:可將“跑飛”程序納入正軌。 設(shè)置方法:通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP。這樣即使程序“跑飛”到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當(dāng)做操作數(shù)執(zhí)行,程序自動(dòng)納入正軌。此外,對(duì)系統(tǒng)流向起重要作用的指令(如RET,RETI,LCALL,LJMP,JC等指令)之前也可插入兩條NO

20、P指令,確保這些重要指令的執(zhí)行。 片機(jī)原理及其接口技術(shù) 單片機(jī)應(yīng)用系統(tǒng)的軟、硬件制作完成后,必須反復(fù)進(jìn)行調(diào)試、修改,直至完全正常工作,經(jīng)過(guò)測(cè)試,功能完全符合系統(tǒng)性能指標(biāo)要求,應(yīng)用系統(tǒng)設(shè)計(jì)才算完成。 1硬件調(diào)試 (1)靜態(tài)檢查 根據(jù)硬件電路圖核對(duì)元器件的型號(hào)、極性、安裝是否正確,檢查硬件電路連線是否與電路圖一致,有無(wú)短路、虛焊等現(xiàn)象。 (2)通電檢查 通電檢查時(shí),可以模擬各種輸入信號(hào)分別送入電路的各有關(guān)部分,觀察I/O口的動(dòng)作情況,查看電路板上有無(wú)元件過(guò)熱、冒煙、異味等現(xiàn)象,各相關(guān)設(shè)備的動(dòng)作是否符合要求,整個(gè)系統(tǒng)的功能是否符合要求。7.2.5 單片機(jī)應(yīng)用系統(tǒng)的調(diào)試、測(cè)試 片機(jī)原理及其接口技術(shù)2軟

21、件調(diào)試 程序模塊編寫(xiě)完成后,通過(guò)匯編或編譯后,在開(kāi)發(fā)系統(tǒng)上進(jìn)行調(diào)試。調(diào)試時(shí)應(yīng)先分別調(diào)試各模塊子程序,調(diào)試通過(guò)后,再調(diào)試中斷服務(wù)子程序,最后調(diào)試主程序,并將各部分進(jìn)行聯(lián)調(diào)。3系統(tǒng)調(diào)試 當(dāng)硬件和軟件調(diào)試完成之后,就可以進(jìn)行全系統(tǒng)軟、硬件調(diào)試,對(duì)于有電氣控制負(fù)載的系統(tǒng),應(yīng)先試驗(yàn)空載,空載正常后再試驗(yàn)負(fù)載情況。系統(tǒng)調(diào)試的任務(wù)是排除軟、硬件中的殘留錯(cuò)誤,使整個(gè)系統(tǒng)能夠完成預(yù)定的工作任務(wù),達(dá)到要求的性能指標(biāo)。4程序固化 系統(tǒng)調(diào)試成功之后,就可以將程序通過(guò)專(zhuān)用程序固化器固化到ROM中。片機(jī)原理及其接口技術(shù)5脫機(jī)運(yùn)行調(diào)試 將固化好程序的ROM插回到應(yīng)用系統(tǒng)電路板的相應(yīng)位置,即可脫機(jī)運(yùn)行。系統(tǒng)試運(yùn)行要連續(xù)運(yùn)行相

22、當(dāng)長(zhǎng)的時(shí)間(也稱(chēng)為考機(jī)),以考驗(yàn)其穩(wěn)定性。并要進(jìn)一步進(jìn)行修改和完善處理。6測(cè)試單片機(jī)系統(tǒng)的可靠性 單片機(jī)系統(tǒng)設(shè)計(jì)完成時(shí),一般需進(jìn)行單片機(jī)軟件功能的測(cè)試,上電、掉電測(cè)試,老化測(cè)試,靜電放電(ElectroStatic Discharge,ESD)抗擾度和電快進(jìn)瞬變脈沖群(Electrical Fast Transient,EFT)抗擾度等測(cè)試??梢允褂酶鞣N干擾模擬器來(lái)測(cè)試單片機(jī)系統(tǒng)的可靠性,還可以模擬人為使用中可能發(fā)生的破壞情況。 經(jīng)過(guò)調(diào)試、測(cè)試后,若系統(tǒng)完全正常工作,功能完全符合系統(tǒng)性能指標(biāo)要求,則一個(gè)單片機(jī)應(yīng)用系統(tǒng)的研制過(guò)程全部結(jié)束。 片機(jī)原理及其接口技術(shù)7.3 C51編程簡(jiǎn)介 MCS-51

23、的編程語(yǔ)言常用的有兩種,一種是匯編語(yǔ)言,一種是C語(yǔ)言(C51)。 匯編語(yǔ)言的特點(diǎn):機(jī)器代碼生成效率很高,可讀性差,編程難度大。 C51的特點(diǎn):C語(yǔ)言程序本身不依賴(lài)于機(jī)器硬件系統(tǒng),基本上不作修改就可將程序從不同的單片機(jī)中移植過(guò)來(lái)。 C51提供了很多數(shù)學(xué)函數(shù)并支持浮點(diǎn)運(yùn)算,開(kāi)發(fā)效率高,程序的可讀性和可維護(hù)性較好。而且C51還可以嵌入?yún)R編語(yǔ)言來(lái)解決高時(shí)效性的代碼編寫(xiě)問(wèn)題。片機(jī)原理及其接口技術(shù)7.3.1 MCS-51單片機(jī)C51語(yǔ)言簡(jiǎn)介1. C51的優(yōu)點(diǎn) C51與ASM-51(匯編語(yǔ)言)相比,有如下優(yōu)點(diǎn): 對(duì)單片機(jī)的指令系統(tǒng)、硬件不要求了解,僅要求對(duì)MCS-51的存儲(chǔ)器結(jié)構(gòu)有初步了解,就能夠編程。 程

24、序有規(guī)范的結(jié)構(gòu),易于結(jié)構(gòu)化、模塊化和移植,已編好的程序可以很容易地植入新程序。 寄存器分配、存儲(chǔ)器的尋址及數(shù)據(jù)類(lèi)型,中斷服務(wù)程序的現(xiàn)場(chǎng)保護(hù)和恢復(fù),中斷向量表的填寫(xiě)都由C51編譯器處理。 提供豐富的庫(kù)函數(shù)供用戶(hù)直接調(diào)用,不同函數(shù)的數(shù)據(jù)實(shí)行覆蓋,有效地利用了片上有限的RAM空間。具有較強(qiáng)的數(shù)據(jù)處理能力。片機(jī)原理及其接口技術(shù) C51提供了復(fù)雜的數(shù)據(jù)類(lèi)型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強(qiáng)了程序處理能力和靈活性;提供auto,extern,static,const等存儲(chǔ)類(lèi)型和專(zhuān)門(mén)針對(duì)MCS-51單片機(jī)的data,bdata,idata,pdata,xdata,code等存儲(chǔ)類(lèi)型,自動(dòng)為變量合

25、理地分配地址;提供small,compact,large等編譯模式,以適應(yīng)片上存儲(chǔ)器的大??;完整的編譯控制指令為程序調(diào)試提供必要的符號(hào)信息。 頭文件中允許定義宏、說(shuō)明復(fù)雜數(shù)據(jù)類(lèi)型和函數(shù)原型,有利于程序的移植和支持單片機(jī)的系列化產(chǎn)品的開(kāi)發(fā)。 可方便地接受多種實(shí)用程序的服務(wù),有專(zhuān)門(mén)的實(shí)用程序自動(dòng)生成;有實(shí)時(shí)多任務(wù)操作系統(tǒng),可調(diào)度多道任務(wù),簡(jiǎn)化用戶(hù)編程,提高運(yùn)行的安全性等。 2. 單片機(jī)C51語(yǔ)言與C語(yǔ)言的異同 單片機(jī)的C51是繼承了標(biāo)準(zhǔn)C的絕大部分的特性,基本語(yǔ)法相同,但其本身在特定的硬件結(jié)構(gòu)上又有所擴(kuò)展(如專(zhuān)門(mén)針對(duì)MCS-51單片機(jī)的存儲(chǔ)類(lèi)型等 ),需要在C51的實(shí)際編程應(yīng)用過(guò)程中逐步體會(huì)。片機(jī)

26、原理及其接口技術(shù)7.3.2 C51的基本語(yǔ)法 1. C51的程序結(jié)構(gòu) 與一般C語(yǔ)言的結(jié)構(gòu)相同,以main()函數(shù)為程序入口,程序體中包含若干語(yǔ)句,還可以包含若干函數(shù)。2. C51的數(shù)據(jù)類(lèi)型 常用的數(shù)據(jù)類(lèi)型有:位型(bit,1位)、字符型(char,1字節(jié))、整型(int,2字節(jié))、長(zhǎng)整型(long int,4字節(jié))、浮點(diǎn)型(float,4字節(jié))、數(shù)組型、指針型等。3. C51數(shù)據(jù)的存儲(chǔ)類(lèi)型 C51數(shù)據(jù)的存儲(chǔ)類(lèi)型如下表所示。 片機(jī)原理及其接口技術(shù) 4. C51包含的頭文件 C51包含的頭文件通常有reg51.h,math.h,ctype.h,stdio.h,stdlib.h,absacc.h。其

27、中,常用的有reg51.h(定義特殊功能寄存器和位寄存器)和math.h(定義常用數(shù)學(xué)運(yùn)算)。 5.C51的運(yùn)算符 C51的運(yùn)算符與C語(yǔ)言基本相同:+(加)、-(減)、*(乘)、/(除)、(大于)、=(大于等于)、(小于)、(位右移)、(位左移)、&(按位與)、|(按位或)、(按位異或)、(按位取反)。 6.C51的基本語(yǔ)句 C51的基本語(yǔ)句與標(biāo)準(zhǔn)C語(yǔ)言基本相同:if(選擇語(yǔ)句)、switch/case(多分支選擇語(yǔ)句)、while(循環(huán)語(yǔ)句)、for(循環(huán)語(yǔ)句)、do-while(循環(huán)語(yǔ)句)等。片機(jī)原理及其接口技術(shù)7.3.3 C51編譯器 Franklin C51交叉編譯器是專(zhuān)為80C51系

28、列單片機(jī)設(shè)計(jì)的一種高效的C語(yǔ)言編譯器,使用它可以縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本,而且開(kāi)發(fā)出的系統(tǒng)易于維護(hù),可靠性高,可移植性好,代碼的使用效率高。 1. C51語(yǔ)言程序設(shè)計(jì)的基本技巧 (1)采用結(jié)構(gòu)化程序設(shè)計(jì) (2)采用模塊化程序設(shè)計(jì),分別指定個(gè)功能模塊相應(yīng)的入口參數(shù)和出口參數(shù),而經(jīng)常使用的一些程序最好編成函數(shù)。 (3)充分利用C51語(yǔ)言的預(yù)處理命令。 (4)采用宏定義“define”(或集中起來(lái))將一些常用的常數(shù)、各種特殊功能寄存器或程序中一些重要的、依據(jù)外界條件可變的常量放在一個(gè)頭文件中進(jìn)行定義,然后采用文件包含命令“#include”將其加入到程序中去,便于修改,有利于文件的維護(hù)和更新。片機(jī)

29、原理及其接口技術(shù)2. C51語(yǔ)言與匯編語(yǔ)言程序的混合編程 有時(shí)為了編程直觀或某些特殊地址的處理, C51程序中還須采用一些匯編語(yǔ)言編程。而在另一些場(chǎng)合,出于某種目的,匯編語(yǔ)言也可調(diào)用C語(yǔ)言。在這種混合編程中,關(guān)鍵是參數(shù)的傳遞和函數(shù)的返回值。它們必須有完整的約定,否則數(shù)據(jù)的交換就可能出錯(cuò)。3. C51中斷處理過(guò)程 C51編譯器支持在C源程序中直接開(kāi)發(fā)中斷,中斷服務(wù)函數(shù)的完整語(yǔ)法如下: void函數(shù)名(void)模式 再入interrupt n using r 其中:n(031)-代表中斷號(hào); r(03)-代表第r組寄存器; 再入-說(shuō)明中斷處理函數(shù)有無(wú)“再入”能力。片機(jī)原理及其接口技術(shù)7.3.4

30、Keil C51開(kāi)發(fā)系統(tǒng)簡(jiǎn)介1. 系統(tǒng)概述 Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng)。其特點(diǎn)是提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面;生成的目標(biāo)代碼效率非常高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。2. Keil C51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)的功能 Keil C51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用集成開(kāi)發(fā)環(huán)境IDE本身或其他編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由L51

31、創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起,經(jīng)L51連接定位,生成絕對(duì)目標(biāo)文件(.ABS)。片機(jī)原理及其接口技術(shù) Keil C51工具包各部分功能如下: (1)C51是C語(yǔ)言編譯器,其使用方法為: C51 sourcefile 編譯控制指令 或者 C51 commandfile其中:sourcefile-C源文件(.C)。大量的編譯控制指令完成C51編譯器的全部功能。包括C51輸出文件C.LST,.OBJ,.I和.SRC文件及源文件(.C)的控制等。 Commandfile-一個(gè)連接控制文件,其內(nèi)容包括:.C源文件及各編譯控制指令,它沒(méi)有固定的名字,開(kāi)發(fā)人員可根據(jù)自己的習(xí)慣指定,它適用于控制指令較多的

32、場(chǎng)合。 (2)A51是匯編語(yǔ)言編譯器,使用方法為: A51 sourcefile 編譯控制指令 或者 A51 commandfile其中:sourcefile-匯編源文件(.asm或.a51),而編譯控制指令的使用與其他匯編(如ASM)語(yǔ)言類(lèi)似。 Commandfile-C51中的Commandfile類(lèi)似,它使A51的使用和修改比較方便。片機(jī)原理及其接口技術(shù)(3)L51是Keil C51軟件包提供的連接器/定位器,其功能是將編譯生成的.OBJ文件與庫(kù)文件連接定位,生成絕對(duì)目標(biāo)文件(.ABS),其使用方法為: L51 目標(biāo)文件列表 庫(kù)文件列表 to outputfile 連接控制指令 或者 L

33、51 Commandfile 源程序的多個(gè)模塊分別經(jīng)C51與A51編譯后生成多個(gè).OBJ文件,連接時(shí),這些文件全列于目標(biāo)文件列表中,作為輸入文件,如果還需與庫(kù)文件(.LIB)相連接,則庫(kù)文件也必須列在其后。 其中:outputfile-輸出文件名,默認(rèn)為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時(shí)的所有控制功能。 Commandfile-連接控制文件,其具體內(nèi)容包括了目標(biāo)文件列表、庫(kù)文件列表及輸出文件、連接控制命令。第2種方法簡(jiǎn)單,在設(shè)計(jì)時(shí)較多見(jiàn)。 (4)BL51也是C51軟件包的代碼連接器/定位器,除具有L51的所有功能外,它還可以連接定位大于64KB的程序,具有代碼域及域切換功

34、能,可用于RTX51操作系統(tǒng)等功能。片機(jī)原理及其接口技術(shù)(5)RTX51是一個(gè)實(shí)時(shí)多任務(wù)操作系統(tǒng),可以不用main()函數(shù),是單片機(jī)系統(tǒng)軟件向RTOS發(fā)展是一種趨勢(shì)。(6)dScope51是一個(gè)源級(jí)調(diào)試器和模擬器,它可以調(diào)試由C51編譯器、A51匯編器、PL/M-51編譯器及ASM51匯編器產(chǎn)生的程序。它不需目標(biāo)板,只能進(jìn)行軟件模擬,但其功能強(qiáng)大,可模擬CPU及其外圍器件,能對(duì)嵌入式軟件功能進(jìn)行有效測(cè)試。(7)Initfile為一個(gè)初始化文件,它在啟動(dòng)dScope51后,在debugfile之前裝入,裝有一些dScope的初始化參數(shù)及常用調(diào)試函數(shù)等。(8)tScope51也為一個(gè)初始化文件,與

35、dScope51不同的是,tScope51必須帶目標(biāo)板,目前它可以通過(guò)兩種方式訪問(wèn)目標(biāo)板。 通過(guò)EMul51在線仿真器,tScope51為該仿真器準(zhǔn)備了一個(gè)動(dòng)態(tài)連接文件EMUL51.IOT,但該方法必須配合該仿真器。 通過(guò)Monitov51監(jiān)控程序。tScope51為訪問(wèn)Monitor51,專(zhuān)門(mén)帶有MON51.IOT連接程序,使用時(shí)可通過(guò)串口及監(jiān)控程序來(lái)調(diào)試目標(biāo)板。片機(jī)原理及其接口技術(shù)(9)Monitor 51是一個(gè)監(jiān)控程序,通過(guò)PC的串口與目標(biāo)板進(jìn)行通信,Monitor操作需要MON51或dScope51 for Windows。(10)Ishell for DOS是一個(gè)DOS環(huán)境下的IDE

36、,直接在命令行輸入Ishell,則進(jìn)入該環(huán)境。它使用簡(jiǎn)單方便,其命令行與DOS命令行具有同樣的功能。(11)uVision for Windows是一個(gè)標(biāo)準(zhǔn)的Windows應(yīng)用程序,它是C51的一個(gè)集成軟件開(kāi)發(fā)平臺(tái),具有源代碼編輯、Project管理、集成的Make等功能,它的人機(jī)界面友好,操作方便,是開(kāi)發(fā)者的首選。3. Keil C51與標(biāo)準(zhǔn)C 對(duì)標(biāo)準(zhǔn)C的擴(kuò)展是學(xué)習(xí)C51的關(guān)鍵之一。 C51直接針對(duì)8051系列CPU對(duì)標(biāo)準(zhǔn)C的擴(kuò)展包括8051存儲(chǔ)類(lèi)型及存儲(chǔ)區(qū)域、存儲(chǔ)模式、存儲(chǔ)器類(lèi)型聲明、變量類(lèi)型聲明、位變量與位尋址、特殊功能寄存器(SFR)、C51指針、函數(shù)屬性等8類(lèi)。片機(jī)原理及其接口技術(shù)(

37、1)Keil C51擴(kuò)展關(guān)鍵字 C51 V4.0的擴(kuò)展關(guān)鍵字如下(共19個(gè)): at idata sfr16 alien interrupt small bdata large task code bit pdata using reentrant xdata compact sbit data sfr(2)內(nèi)存區(qū)域(Memory Areas) 由code說(shuō)明可有多達(dá)64KB的程序存儲(chǔ)器。 內(nèi)部數(shù)據(jù)存儲(chǔ)器可用以下關(guān)鍵字說(shuō)明: data:直接尋址區(qū),為內(nèi)部RAM的低128字節(jié) 00H7FH; idata:間接尋址區(qū),包括整個(gè)內(nèi)部RAM區(qū) 00HFFH; bdata:可位尋址區(qū),20H2FH。片機(jī)

38、原理及其接口技術(shù) 外部RAM視使用情況可由以下關(guān)鍵字標(biāo)志: xdata:可指定多達(dá)64KB的外部直接尋址區(qū),地址范圍 0000H0FFFFH; pdata:能訪問(wèn)1頁(yè)(256字節(jié))的外部RAM,主要用于緊 湊模式(Compact Model)。 8051提供128字節(jié)的SFR尋址區(qū),可由以下幾種關(guān)鍵字說(shuō)明: sfr:字節(jié)尋址,如 sfr P0=0 x80,指出P0口地址為 80H,“=”后為00HFFH之間的常數(shù)。 sfr16:字尋址,如sfr16 T2=0 xCC,指定T2口地址為 TL2=0 xCCH,TH2=0 xCDH。 sbit:位尋址,如sbit EA=0 xAF,指定第0 xAF

39、H位為EA, 即中斷允許。 還可以有如下定義方法: sbit OV=PSW2(定義OV為PSW的第2位) sbit OV=0 xDo2(同上)或bit OV=0 xDo2(同上)。片機(jī)原理及其接口技術(shù)7.3.5 C51應(yīng)用舉例 例題 設(shè)單片機(jī)的fOSC=12MHz,要求用T0的方式編程,在P1.0引腳輸出周期為2ms的方波。解:用C語(yǔ)言編寫(xiě)的中斷服務(wù)程序如下: #include sbit P1_0=P10; void timer0(void)interrupt 1 using 1 /*T0中斷服務(wù)程序入口*/ P1_0=!P1_0; TH0=-(1000/256); /*計(jì)數(shù)初值重裝*/ TL

40、0=-(1000%256); void main(void) TMOD=0 x01; /*T0工作在定時(shí)器方式1*/ P1_0=0; TH0=-(1000/256); /*預(yù)置計(jì)數(shù)初值*/ TL0=-(1000%256); EA=1; /*CPU開(kāi)中斷*/ ET0=1; /*T0開(kāi)中斷*/ TR0=1; /*啟動(dòng)T0*/ dowhile(1); 片機(jī)原理及其接口技術(shù) 注意:在編寫(xiě)中斷服務(wù)程序時(shí)必須注意不能進(jìn)行參數(shù)傳遞,不能有返回值。例題 拆字程序。將2000H的內(nèi)容拆開(kāi),高位送2001H低位,低位送2002H低位。解:匯編語(yǔ)言程序如下:ORG 1000HSE02:MOV DPTR, #2000

41、HMOVX A, DPTRMOV B, A ; (2000H)ABSWAP A ; 交換ANL A, #0FH ; 屏蔽高位 INC DPTR MOVX DPTR, A ; 送2001H INC DPTRMOV A, BANL A, #0FH ; (2000H)內(nèi)容屏蔽高位MOVX DPTR, A ; 送2002HSJMP $ END片機(jī)原理及其接口技術(shù)C51程序如下: #include main( ) unsigned char xdata *p=0 x2000;/*指針指向2000H單元*/ /* 2002H單元高4位清零,低4位裝2000H單元低4位 */ *(p+2)=(*p)&0 x

42、0f; /* 2001H單元高4位清零,低4位裝2000H單元高4位 */ *(p+1)=(*p)4; 片機(jī)原理及其接口技術(shù)7.4 單片機(jī)應(yīng)用系統(tǒng)舉例 7.4.1 單片機(jī)在控制系統(tǒng)中的應(yīng)用 單片機(jī)的一個(gè)廣泛應(yīng)用領(lǐng)域就是控制系統(tǒng)。 1設(shè)計(jì)思想 通過(guò)傳感電路不斷循環(huán)檢測(cè)室內(nèi)溫度、濕度、有害氣體(如煤氣)濃度等環(huán)境參數(shù),然后與由控制鍵盤(pán)預(yù)置的參數(shù)臨界值相比較,從而作出開(kāi)/關(guān)窗、啟/停換氣扇、升/降溫(濕)等判斷,再結(jié)合窗狀態(tài)檢測(cè)電路所檢測(cè)到的窗狀態(tài),發(fā)出一系列的控制命令,完成下雨則自動(dòng)關(guān)窗、室內(nèi)有害氣體超標(biāo)則自動(dòng)開(kāi)窗、開(kāi)/啟換氣扇、恒溫(濕)等自動(dòng)控制功能。用戶(hù)還可通過(guò)控制鍵盤(pán),直接控制窗戶(hù)的開(kāi)/關(guān)

43、、換氣扇的啟/停、溫(濕)度的升/降,選擇所顯示參數(shù)的種類(lèi)等。 2系統(tǒng)組成和部分電路設(shè)計(jì) 控制系統(tǒng)主要由控制器、數(shù)據(jù)檢測(cè)傳感電路、A/D轉(zhuǎn)換器、窗驅(qū)動(dòng)控制接口電路、窗驅(qū)動(dòng)電路等組成。其系統(tǒng)原理圖如下頁(yè)圖所示。 片機(jī)原理及其接口技術(shù)片機(jī)原理及其接口技術(shù) 控制器采用美國(guó)Atmel公司的AT89C51單片機(jī)。利用89C51的P0口采集數(shù)據(jù),完成控制信息的采集和控制功能。利用P1.0P1.3作為窗狀態(tài)檢測(cè)端口,完成對(duì)窗狀態(tài)(即窗是否移到邊框)的檢測(cè)。 數(shù)據(jù)檢測(cè)傳感電路由溫度傳感電路、濕度傳感電路、有害氣體傳感電路、紅外防盜傳感器四個(gè)部分組成。在此只以溫度傳感電路為例進(jìn)行設(shè)計(jì)。 根據(jù)溫度檢測(cè)的要求,溫度

44、的檢測(cè)選用集成溫度傳感器AD590(測(cè)溫范圍為55+150)。測(cè)量電路如圖右所示。 片機(jī)原理及其接口技術(shù) 傳感器的采集信號(hào)經(jīng)過(guò)數(shù)據(jù)處理電路,必須通過(guò)A/D轉(zhuǎn)換器才能與單片機(jī)連接,本系統(tǒng)中有4路模擬輸入, A/D轉(zhuǎn)換器選用了ADC0809,89C51通過(guò)中斷方式讀取A/D轉(zhuǎn)換的數(shù)據(jù)。通過(guò)A/D轉(zhuǎn)換實(shí)現(xiàn)的數(shù)據(jù)采集電路如下圖所示。 A/D轉(zhuǎn)換器的口地址為7FFFH。片機(jī)原理及其接口技術(shù) 根據(jù)驅(qū)動(dòng)信號(hào)與所控對(duì)象的關(guān)系,將系統(tǒng)的驅(qū)動(dòng)電路分解為移窗驅(qū)動(dòng)電路、換窗驅(qū)動(dòng)電路、鎖窗驅(qū)動(dòng)電路、溫度調(diào)節(jié)驅(qū)動(dòng)電路、濕度調(diào)節(jié)驅(qū)動(dòng)電路、換氣扇驅(qū)動(dòng)電路和報(bào)警驅(qū)動(dòng)電路等,分別用它們?nèi)タ刂?個(gè)對(duì)象。 窗狀態(tài)檢測(cè)電路采用4個(gè)開(kāi)關(guān)

45、型磁敏器件。在外窗、內(nèi)窗的左、右邊上,與磁敏器件相對(duì)應(yīng)的地方,各貼上一小片磁鐵,當(dāng)小磁鐵隨窗戶(hù)的移動(dòng)而移近相對(duì)應(yīng)的磁敏器件時(shí),該磁敏器件的輸出信號(hào)從高電平變?yōu)榈碗娖?,表示窗?hù)已移到相應(yīng)邊上。 鍵盤(pán)輸入及顯示電路采用Intel公司生產(chǎn)的8279通用可編程鍵盤(pán)、顯示器接口芯片??蓪?shí)現(xiàn)對(duì)鍵盤(pán)和顯示器的自動(dòng)掃描,并識(shí)別鍵盤(pán)上閉合鍵的鍵號(hào)。 對(duì)于控制鍵盤(pán),采用微動(dòng)開(kāi)關(guān)制作,并安裝在窗戶(hù)的固定邊框上。通過(guò)控制鍵盤(pán),用戶(hù)可設(shè)置各環(huán)境參數(shù)的臨界值、隨意選擇所顯示參數(shù)的種類(lèi)、直接控制窗戶(hù)的開(kāi)/關(guān)、換氣扇的啟/停、溫(濕)度的升/降等。 片機(jī)原理及其接口技術(shù)3軟件設(shè)計(jì) 控制系統(tǒng)的軟件主要由一個(gè)主程序和兩個(gè)中斷服務(wù)

46、程序等組成。 主程序的主要作用是在系統(tǒng)復(fù)位后對(duì)系統(tǒng)進(jìn)行初始化,設(shè)置8279,ADC0809等的工作方式和初始狀態(tài),設(shè)置各中斷的優(yōu)先級(jí)別并開(kāi)中斷,首次啟動(dòng)A/D轉(zhuǎn)換等,然后向8279循環(huán)送顯示字符,進(jìn)行顯示。程序框圖如右上圖所示。 鍵中斷服務(wù)程序的主要作用是在AT89 C51響應(yīng)中斷(有鍵按下,則產(chǎn)生該中斷)后,讀出鍵值,并根據(jù)鍵值依序發(fā)出相應(yīng)的控制命令字,完成相應(yīng)的控制功能。該中斷應(yīng)設(shè)為高優(yōu)先級(jí)。程序框圖如右下圖所示。片機(jī)原理及其接口技術(shù) 循環(huán)檢測(cè)中斷服務(wù)程序的主要作用是在89C51響應(yīng)中斷后,將A/D轉(zhuǎn)換結(jié)果送相應(yīng)緩沖區(qū),然后判斷該轉(zhuǎn)換結(jié)果是否在上、下限值之間,并根據(jù)判斷結(jié)果按序發(fā)出相應(yīng)的控

47、制命令字,完成相應(yīng)的控制、報(bào)警功能。然后重新選擇被轉(zhuǎn)換量,再次啟動(dòng)A/D轉(zhuǎn)換后,返回主程序。該中斷應(yīng)設(shè)為低優(yōu)先級(jí),并設(shè)為電平觸發(fā)方式。程序流程圖如右圖所示。片機(jī)原理及其接口技術(shù)7.4.2 單片機(jī)在家用電器中的應(yīng)用 單片機(jī)在家電行業(yè)具有廣泛的應(yīng)用。下面以單片機(jī)在電冰箱控制系統(tǒng)中的應(yīng)用為例加以介紹。1總體方案設(shè)計(jì)直冷式電冰箱的控制原理:根據(jù)蒸發(fā)器的溫度控制制冷壓縮機(jī)的啟動(dòng)、停止,使冰箱內(nèi)的溫度保持在設(shè)定溫度范圍內(nèi)。 采用單片機(jī)控制壓縮機(jī)的啟動(dòng)和停止,可以使控制更準(zhǔn)確、更靈活。電冰箱采用單片機(jī)控制的性能指標(biāo)如下: 設(shè)定3個(gè)測(cè)溫點(diǎn),測(cè)量范圍在26+26之間,精度為0.5。 利用功能鍵分別控制溫度設(shè)定、

48、速凍設(shè)定、冷藏室及冷凍室溫度設(shè)定等。片機(jī)原理及其接口技術(shù) 利用數(shù)碼管顯示冷凍室、冷藏室溫度,壓縮機(jī)啟動(dòng)、停止和速凍、報(bào)警狀態(tài)。 制冷壓縮機(jī)停機(jī)后,自動(dòng)延時(shí)3分鐘才能再啟動(dòng)。 電冰箱具有自動(dòng)除霜功能,當(dāng)霜的厚度達(dá)3cm時(shí)自動(dòng)除霜。 開(kāi)門(mén)延時(shí)超過(guò)2分鐘發(fā)出聲音報(bào)警。 連續(xù)速凍時(shí)間設(shè)定范圍為18小時(shí)。 工作電壓在180240V之間,當(dāng)欠壓或過(guò)壓時(shí),禁止啟動(dòng)壓縮機(jī),并用指示燈顯示。 根據(jù)上面所列出的控制系統(tǒng)要求,可估算出所需要的程序存儲(chǔ)器的容量不會(huì)超過(guò)4KB,因此可以采用Philips公司生產(chǎn)的80C51單片機(jī)(片內(nèi)有4KB的ROM, 128字節(jié)的RAM ),不用進(jìn)行外部擴(kuò)展存儲(chǔ)器,可以大大簡(jiǎn)化系統(tǒng)的

49、硬件電路。此外,80C51單片機(jī)在市場(chǎng)上的貨源充足,技術(shù)比較成熟,同時(shí)也具有較好的開(kāi)發(fā)環(huán)境。 片機(jī)原理及其接口技術(shù)2硬件設(shè)計(jì)(1)主電路設(shè)計(jì) 主電路采用80C51單片機(jī),擴(kuò)展一片A/D轉(zhuǎn)換芯片ADC0809,構(gòu)成基本的系統(tǒng)。由于本系統(tǒng)無(wú)通信要求,可以通過(guò)串行口擴(kuò)展四片74LS164作為四位LED顯示器接口和一片74LS164來(lái)實(shí)現(xiàn)鍵盤(pán)功能。本系統(tǒng)還有一些附加的電路,如除霜電路、電壓檢測(cè)電路和開(kāi)關(guān)報(bào)警電路等。電冰箱控制系統(tǒng)的電路原理圖如下頁(yè)圖所示。(2)A/D轉(zhuǎn)換電路 A/D轉(zhuǎn)換電路采用ADC0809。ADC0809共有8路模擬輸入通道(本系統(tǒng)只用到其中的4路IN0IN3 )。其中,IN0作為冷

50、凍室溫度檢測(cè)通道,IN1作為冷藏室溫度檢測(cè)通道,IN2作為除霜檢測(cè)通道,IN3作為電源電壓檢測(cè)通道。ADC0809與單片機(jī)接口電路見(jiàn)電路原理圖如下頁(yè)圖所示。片機(jī)原理及其接口技術(shù)片機(jī)原理及其接口技術(shù) 上頁(yè)圖中,ADC0809的A,B,C三個(gè)引腳直接和80C51單片機(jī)的P0.0P0.2三個(gè)引腳相連,用于選擇不同的模擬通道信號(hào)。P1.6與讀寫(xiě)控制信號(hào)端和經(jīng)過(guò)或非門(mén)連接到ADC0809的START,ALE,OE端,分別控制ADC0809的啟動(dòng)、地址鎖存、讀操作和寫(xiě)操作。ADC0809的EOC端懸空,A/D轉(zhuǎn)換后利用軟件延時(shí)一段時(shí)間來(lái)讀取轉(zhuǎn)換后的數(shù)據(jù)。(3)功能鍵和顯示電路 功能鍵和顯示電路如上頁(yè)圖所示

51、。采用6個(gè)功能鍵控制冷凍室、冷藏室及速凍溫度設(shè)定,4位LED顯示器用于顯示冷凍、冷藏室溫度,以及壓縮機(jī)啟動(dòng)、停止和報(bào)警等狀態(tài)。 LED顯示及功能鍵都是通過(guò)80C51的串行口擴(kuò)展的。顯示輸出通道和鍵盤(pán)輸入通道的選擇由端口線P3.2和與門(mén)完成。當(dāng)P3.2為“1”時(shí),數(shù)據(jù)輸出到顯示器。當(dāng)P3.2為“0”時(shí),80C51王誠(chéng)對(duì)鍵盤(pán)的掃描。片機(jī)原理及其接口技術(shù)(4)除霜電路 選用MF53-1型熱敏電阻作為溫度傳感器(Rt),它具有負(fù)溫度系數(shù),靈敏度較高。把熱敏電阻安裝在距蒸發(fā)器3mm的某個(gè)合適的位置上,當(dāng)霜厚大于3mm時(shí),熱敏電阻Rt接觸到霜從而感受到較低的溫度,其電阻值變大,A點(diǎn)溫度降低,運(yùn)算放大器輸出

52、信號(hào)有變化,經(jīng)A/D轉(zhuǎn)換后送入CPU,經(jīng)單片機(jī)分析、判斷,給出除霜命令。除霜電路如下圖所示。片機(jī)原理及其接口技術(shù)熱敏電阻Rt的阻值和溫度的關(guān)系為:(k)A點(diǎn)電壓與溫度的關(guān)系為:(5)制冷壓縮機(jī)和除霜電熱絲啟動(dòng)、停止控制電路 其電路如下頁(yè)圖所示,加熱絲和壓縮機(jī)的工作原理如下: 80C51單片機(jī)控制信號(hào)經(jīng)P1.3和P1.4端口輸出,并通過(guò)P1.7的控制,將信號(hào)鎖存在74LS273中,74LS273的輸出經(jīng)過(guò)達(dá)林頓驅(qū)動(dòng)器DS2003后,驅(qū)動(dòng)固態(tài)繼電器RELAY1和RELAY2。當(dāng)DS2003的16腳有高電平輸出時(shí),RELAY1的3,4腳接通,使加熱絲接通電源,開(kāi)始除霜。當(dāng)DS2003的15腳輸出高電

53、平時(shí),RELAY2的3,4腳接通,使壓縮機(jī)繞組接通電源而啟動(dòng),開(kāi)始制冷。74LS273的鎖存控制信號(hào),一方面增加輸出功率,另一方面也防止單片機(jī)復(fù)位時(shí)引起控制的誤動(dòng)作。片機(jī)原理及其接口技術(shù)片機(jī)原理及其接口技術(shù) 電冰箱控制程序主要分為三大部分:主程序、定時(shí)器T0中斷服務(wù)程序和定時(shí)器T1中斷服務(wù)程序。(1)主程序 主程序是整個(gè)電冰箱的總控制程序,主要實(shí)現(xiàn)控制各單元初始化、控制中斷、定時(shí)、顯示、鍵盤(pán)程序的啟動(dòng)與重復(fù)等功能。主程序的程序流程圖如右圖所示。3軟件設(shè)計(jì)片機(jī)原理及其接口技術(shù) T0中斷服務(wù)程序主要完成電源欠壓、過(guò)壓處理,開(kāi)門(mén)狀態(tài)檢查,以及處理等功能。其程序流程圖如右圖所示。(2)T0中斷服務(wù)程序

54、片機(jī)原理及其接口技術(shù)(3)Tl中斷服務(wù)程序 Tl工作于計(jì)數(shù)方式,用于制冷壓縮機(jī)停機(jī)后自動(dòng)延時(shí)3分鐘才能再啟動(dòng)的時(shí)間延時(shí)。Tl的中斷服務(wù)程序主要完成3分鐘定時(shí),以及溫度、除霜、速凍等各種檢測(cè),根據(jù)檢測(cè)結(jié)果,比較、分析得出執(zhí)行元器件工作的狀態(tài),并控制對(duì)應(yīng)的元器件工作。Tl中斷服務(wù)程序流程圖如右圖所示。片機(jī)原理及其接口技術(shù)7.4.3 單片機(jī)在里程、速度計(jì)量中的應(yīng)用 設(shè)計(jì)要求:利用單片機(jī)實(shí)現(xiàn)的自行車(chē)?yán)锍?速度計(jì)能自動(dòng)顯示自行車(chē)行駛的總里程數(shù)及自行車(chē)行駛速度,具有超速信號(hào)提醒功能,里程數(shù)據(jù)自動(dòng)記憶。也可應(yīng)用于電動(dòng)自行車(chē)、摩托車(chē)、汽車(chē)等機(jī)動(dòng)車(chē)儀表上。1. 總體設(shè)計(jì) 控制器采用AT89C52單片機(jī),速度及里

55、程傳感器采用霍爾元件,顯示器通過(guò)AT89C52的P0口和P2口擴(kuò)展。外部存儲(chǔ)器采用E2PROM存儲(chǔ)器AT24C01,用于存儲(chǔ)里程和速度等數(shù)據(jù)。并用控制器來(lái)控制里程/速度指示燈,里程指示燈亮?xí)r,顯示里程;速度指示燈亮?xí)r,顯示速度。超速報(bào)警采用揚(yáng)聲器,用一個(gè)發(fā)光二極管來(lái)配合揚(yáng)聲器,揚(yáng)聲器響時(shí),二極管亮,表明超速。 片機(jī)原理及其接口技術(shù)2. 硬件電路設(shè)計(jì) 電路原理圖如下頁(yè)圖所示。P0口和P2口用于七段LED顯示器的段碼及掃描輸出。在顯示里程時(shí),第三位小數(shù)點(diǎn)用P3.7口()控制點(diǎn)亮。P1.0口和P1.1口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2,P1.3,P1.6和P1.7口分別用于設(shè)置輪圈的大小。P

56、3.0口的開(kāi)關(guān)用于確定顯示的方式。當(dāng)開(kāi)關(guān)閉合時(shí),顯示速度;斷開(kāi)時(shí),顯示里程。外中斷用于對(duì)輪子圈數(shù)的計(jì)數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖。外中斷用于控制定時(shí)器T1的啟停,當(dāng)輸入為0時(shí)關(guān)閉定時(shí)器。此控制信號(hào)是將輪子圈數(shù)的計(jì)數(shù)脈沖經(jīng)二分頻后形成,這樣,每次定時(shí)器T1的開(kāi)啟時(shí)間正好為輪子轉(zhuǎn)一圈的時(shí)間,根據(jù)輪子的周長(zhǎng)就可以計(jì)算出自動(dòng)車(chē)的速度。P1.4口和P1.5口用于E2PROM存儲(chǔ)器24C01的存取控制。11腳(TXD)輸出用于速度超速時(shí)的報(bào)警。 片機(jī)原理及其接口技術(shù)片機(jī)原理及其接口技術(shù)3. 軟件設(shè)計(jì)軟件主要包括:主程序、初始化程序、里程計(jì)數(shù)子程序、數(shù)據(jù)處理子程序、計(jì)數(shù)器中斷服務(wù)程序、

57、E2PROM存取程序、顯示子程序。 (1)主程序 根據(jù)P0口的開(kāi)關(guān)狀態(tài)切換顯示狀態(tài),即選擇里程顯示和速度顯示。其流程圖如右圖所示。 片機(jī)原理及其接口技術(shù)程序如下: ORG 0000H LJMP START ; 跳至主程序 ORG 0003H ; 外中斷0中斷程序入口 LJMP INTEX0 ; 跳至INTEX0中斷服務(wù)程序 ORG 000BH ; 定時(shí)器T0中斷程序入口 RETT1 ; 中斷返回 ORG 0013H ; 外中斷1中斷入口 LJMP INTEX1 ; 跳至INTEX1中斷服務(wù)程序 ORG 001BH ; 定時(shí)器T1中斷程序入口 LJMP INTT1 ; 跳至INTT1中斷服務(wù)程序

58、 ORG 0023H ; 串口中斷入口地址 RET1 ; 中斷返回 ORG 002BH ; 定時(shí)器T2中斷入口地址 RET1 ; 中斷返回 ORG 0050H START: LCALL CLEARMEN ; 上電初始化 START1: JB P0.4, DISPLAYS ; P0.4=1,則顯示里程 LCALL DISPLAYV ; P0.4=0,顯示速度 START2: SJMP START ; 轉(zhuǎn)START循環(huán)片機(jī)原理及其接口技術(shù)(2)初始化程序 初始化程序主要功能是將T1設(shè)為外部控制定時(shí)器方式,外中斷 及 設(shè)為邊沿觸發(fā)方式,將部分內(nèi)存單元清0,設(shè)置車(chē)輪周長(zhǎng)值,開(kāi)中斷、啟動(dòng)定時(shí)器,將AT24C01中的數(shù)據(jù)調(diào)入內(nèi)存中,設(shè)置車(chē)輪圈出錯(cuò)處理程序。 程序如下:CLEARMEN:MOV TMOD, #90 ; T1為16位外部控制定時(shí)器 MOV SP, #75H ; 堆棧在75H開(kāi)始 SETB PX0 ; 外中斷0優(yōu)先級(jí)為1 SETB IT0 ; 外中斷0用邊沿觸發(fā) SETB IT1 ; 外中斷1用邊沿觸發(fā) MOV A, #00H ; 清A MOV 20H, A ; 清內(nèi)存中特定單元 MOV 6CH, A MOV 6DH, A MOV 70H, A MOV 71

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論