基于C51單片機(jī)的煙霧報(bào)警器設(shè)計(jì)_第1頁(yè)
基于C51單片機(jī)的煙霧報(bào)警器設(shè)計(jì)_第2頁(yè)
基于C51單片機(jī)的煙霧報(bào)警器設(shè)計(jì)_第3頁(yè)
基于C51單片機(jī)的煙霧報(bào)警器設(shè)計(jì)_第4頁(yè)
基于C51單片機(jī)的煙霧報(bào)警器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(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、課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)報(bào)告課程名稱: 智能儀器課程設(shè)計(jì) 題 目: 基于 51 單片機(jī)家居火災(zāi)報(bào)警系統(tǒng) 學(xué) 院: 信息工程學(xué)院 系: 電氣工程及其自動(dòng)化 專 業(yè): 測(cè)控技術(shù)與儀器 班 級(jí): 測(cè)儀 121 學(xué) 號(hào): 007 學(xué)生姓名: 羅小黑 起訖日期: 2015-06-262015-07-06 指導(dǎo)教師: 熊劍、楊俊清、楊大勇 I基于 C51 單片機(jī)的聲光報(bào)警器設(shè)計(jì)【摘要】目前,隨著電子產(chǎn)品在人類生活中的使用越來(lái)越廣泛,由此引起的火災(zāi)也越來(lái)越多,在我們生活得四周到處潛伏著火災(zāi)隱患。為了避免火災(zāi)以及減少火災(zāi)造成的損失,我們必須按照“隱患險(xiǎn)于明火,防患勝于救災(zāi),責(zé)任重于泰山”的概念設(shè)計(jì)和完善火災(zāi)自動(dòng)報(bào)

2、警系統(tǒng),將火災(zāi)消滅在萌芽狀態(tài),最大限度地減少社會(huì)財(cái)富的損失。聲光報(bào)警器聲光報(bào)警器是一種用在危險(xiǎn)場(chǎng)所,通過(guò)聲音和各種光來(lái)向人們發(fā)出示警信號(hào)的一種不會(huì)引燃易燃易爆性氣體的報(bào)警信號(hào)裝置。防爆聲光報(bào)警器適用于安裝在含有C 級(jí) T6 溫 度組別的爆炸性氣體環(huán)境場(chǎng)所,還可使用于石油、化工等行業(yè)具有防爆要求的 1 區(qū)及 2 區(qū)防爆場(chǎng)所,也可以露天、室外使用??梢院蛧?guó)內(nèi)外任 何廠家的火災(zāi)報(bào)警控制器配套使用。當(dāng)生產(chǎn)現(xiàn)場(chǎng)發(fā)生事故或火災(zāi)等緊急情況時(shí),火災(zāi)報(bào)警控制器 送來(lái)的控制信號(hào)啟動(dòng)聲光報(bào)警電路,發(fā)出聲和光 報(bào)警信號(hào),完成報(bào)警目的。本產(chǎn)品也可同手動(dòng)報(bào) 警按鈕配合使用,達(dá)到簡(jiǎn)單的聲,光報(bào)警目的。 本設(shè)計(jì)是利用單片機(jī)結(jié)

3、合傳感器技術(shù)而開(kāi)發(fā)設(shè)計(jì)了這一聲光報(bào)警系統(tǒng)。論文中主要針對(duì)聲光報(bào)警系統(tǒng)中的各個(gè)組成部件進(jìn)行了介紹,對(duì)它的主控電路和外圍設(shè)備電路之間的接口技術(shù),還有軟件方面進(jìn)行了重點(diǎn)介紹。關(guān)鍵詞:報(bào)警器、80C51、聲光傳感器AbstractAbstract: Now, with electronic products used in human life more and more widely, the resulting fire, more and more, we live in fire hazards lurking around everywhere. To avoid fires and red

4、uce fire losses, we must follow the hidden dangers fire in prevention is better than disaster relief, the responsibility is extremely heavy, the concept design and improvement of automatic fire alarm system, fire nipped in the bud, the maximum reduce the loss of social wealth.Sound and light alarms

5、for use in hazardous locations is to send out a warning signal alarm signaling device does not ignite flammable gases to the people through a variety of sound and light. Explosion sound and light alarm for installation in explosive gas atmospheres sites containing C level T6 temperature class, and u

6、se the Zone 1 and Zone 2 explosion sites in petroleum, chemical and other industries with explosion-proof requirements to be open-air, outdoor use. And domestic and foreign manufacturers of any possible fire alarm controller supporting the use. When the production site of an accident or emergency si

7、tuations such as a fire, a fire alarm control signals IIsent by the control circuit start sound and light alarm, audible and visual alarm signals, complete alarm purposes. The product can also be used in conjunction with manual alarm button, to a simple sound, light alarm purposes. This design is th

8、e use of single-chip combined with sensor technology designed and developed this sound and light alarm systems. Thesis focused on sound and light alarm systems were introduced various components, interface technology of its control circuit and peripheral circuits, as well as software were highlighte

9、d.KeywordsKeywords: 80C51, smoke sensor alarmIII目 錄1 緒論.31.1 聲光報(bào)警器的發(fā)展及現(xiàn)狀 .31.1.1 火災(zāi)探測(cè)技術(shù).31.1.2 火災(zāi)探測(cè)器的發(fā)展趨勢(shì).31.2 論文研究的目的及意義.41.3 論文內(nèi)容 .42 基于 C51 單片機(jī)的聲光報(bào)警的設(shè)計(jì)方案.62.1 任務(wù)分析.62.2 設(shè)計(jì)方案 .62.2.1 方案設(shè)計(jì)思想.62.2.2 總體框圖.73.1 主控電路設(shè)計(jì) .83.1.1 80C51 系列.83.1.2 80C51 的基本結(jié)構(gòu).83.1.3 80C51 單片機(jī)的的封裝和引腳.93.1.4 80C51 單片機(jī)的時(shí)鐘.103.

10、1.580C51 單片機(jī)的復(fù)位.113.2 外圍接口電路設(shè)計(jì) .123.2.1 NIS-09 聲光傳感器簡(jiǎn)介.133.2.2 AD574A 簡(jiǎn)介.143.2.3 AD574A 與 80C51 單片機(jī)接口電路.173.2.4 聲光報(bào)警電路.173.3 總電路設(shè)計(jì) .184 軟件實(shí)現(xiàn).214.1 編程 KEIL 環(huán)境介紹.214.2 程序流程.214.3 程序.225 調(diào)試.255.1 調(diào)試的步驟.255.2 調(diào)試過(guò)程中遇到的問(wèn)題及解決方法 .26結(jié)束語(yǔ).28謝 辭.29參考文獻(xiàn).300第 1 章 緒論1.1 聲光報(bào)警器的發(fā)展及現(xiàn)狀1.1.1 火災(zāi)探測(cè)技術(shù) 火災(zāi)作術(shù)為一種在時(shí)空上失去控制的燃燒所引

11、發(fā)的災(zāi)害,對(duì)人類生命財(cái)產(chǎn)和社會(huì)安全構(gòu)成了極大的威脅。由此引發(fā)的重大安全事故比皆是,所以人類一直也未停止過(guò)對(duì)它的研究?;馂?zāi)的發(fā)生和發(fā)展是一個(gè)非常復(fù)雜的非平穩(wěn)過(guò)程,它除了自身的物理化學(xué)變化以外還會(huì)受到許多外界的千擾,火災(zāi)一旦產(chǎn)生便以接觸式(物質(zhì)流)和非接觸式能量流)的形式向外釋放能量。接觸式形式包括可燃?xì)怏w、燃燒氣體和煙霧、氣溶膠等。非接觸式如聲音、輻射等?;馂?zāi)探測(cè)技術(shù)就是利用敏感元件將火災(zāi)中出現(xiàn)的物理化學(xué)特征轉(zhuǎn)換為另外一種易于處理的物理量。各種探測(cè)器對(duì)應(yīng)的火災(zāi)物理參量及探測(cè)器如圖1-1所示。圖 1-1 各種探測(cè)器對(duì)應(yīng)的火災(zāi)物理參量及探測(cè)器1.1.2 火災(zāi)探測(cè)器的發(fā)展趨勢(shì)探測(cè)器朝新探測(cè)技術(shù)的發(fā)展進(jìn)

12、一步拓展了火災(zāi)探測(cè)的應(yīng)用領(lǐng)域,為一些傳統(tǒng)探測(cè)器無(wú)法勝任的環(huán)境提供了有效的手段。相關(guān)技術(shù)的發(fā)展,如傅立葉近紅外光譜技術(shù)弱信號(hào)處理技術(shù)、低功耗MCU技術(shù)進(jìn)一步促進(jìn)了傳統(tǒng)探測(cè)技術(shù)的改進(jìn),使得傳統(tǒng)探測(cè)器在技術(shù)和性能上有了顯著的提高?;馂?zāi)著極早期探測(cè)、多傳感器復(fù)合探測(cè)和探測(cè)器小型化、智能化的方向發(fā)展邁出了更快的步伐。 近幾年來(lái),單片機(jī)已逐步深入應(yīng)用到工農(nóng)業(yè)生產(chǎn)各部門(mén)及人們生活的各個(gè)方面。各種類型的單片機(jī)也根據(jù)社會(huì)的需求而開(kāi)發(fā)出來(lái)。單片機(jī)是器件級(jí)計(jì)算機(jī)系統(tǒng),實(shí)際上它是一個(gè)微控制器或微處理器。由于它功能齊全,體積小,成本低,因此它可以應(yīng)用到任何電子系統(tǒng)中去,同樣,它也可以廣泛應(yīng)用于報(bào)警1技術(shù)領(lǐng)域,使各類報(bào)警

13、裝置的功能更加完善,可靠性大大提高,以滿足社會(huì)發(fā)展的需要。1.2 論文研究的目的及意義 目的:隨著現(xiàn)代家庭用火、用電量的增加,家庭火災(zāi)發(fā)生的頻率越來(lái)越高。家庭火災(zāi)一旦發(fā)生,很容易出現(xiàn)撲救不及時(shí)、滅火器材缺乏及在場(chǎng)人驚慌失措、逃生遲緩等不利因素,最終導(dǎo)致重大生命財(cái)產(chǎn)損失。消防部門(mén)的統(tǒng)計(jì)顯示,在所有的火災(zāi)比例中,家庭火災(zāi)已經(jīng)占到了全國(guó)火災(zāi)的30%左右。家庭起火的原因林林種種,可能在我們注意得到的地方,也可能就隱藏在我們根本就注意不到的地方。在現(xiàn)代城市家庭里,許多人因不懂家庭安全常識(shí)引起火災(zāi)事故,使好端端的幸福家庭眼間毀于一旦,有的導(dǎo)致家破人亡,而且一旦發(fā)生居民家庭火災(zāi),處置不當(dāng)、報(bào)警遲緩,是造成人

14、員傷亡的重要因素。所以說(shuō),人們應(yīng)該積極了解家庭火災(zāi)的主要起因,還有預(yù)防火災(zāi)的發(fā)生。這就是我們研究聲光報(bào)警器的目的。意義:在我國(guó)的一些大中城市,幾乎每天都發(fā)生家庭火災(zāi),所以防火是每個(gè)家庭必須時(shí)刻注意的問(wèn)題。假如能根據(jù)您家的實(shí)際情況預(yù)先采取簡(jiǎn)單的防火措施,一些悲劇是完全可以避免的。聲光報(bào)警器對(duì)防家庭火災(zāi),減少火災(zāi)損失具有現(xiàn)實(shí)意義。一系列火災(zāi)造成的慘痛損失也使全國(guó)各界意識(shí)到了聲光報(bào)警器的必要性。據(jù)調(diào)查,在最近發(fā)生火災(zāi)的大多數(shù)房屋都沒(méi)有安裝報(bào)警器。所以,聲光報(bào)警器在預(yù)防火災(zāi)發(fā)生上有著非常重大的意義。2第 2 章 基于 C51 單片機(jī)的聲光報(bào)警的設(shè)計(jì)方案2.1 任務(wù)分析單片機(jī)應(yīng)用系統(tǒng)可以分為只能儀器表和

15、工業(yè)測(cè)控系統(tǒng)兩大類,無(wú)論哪儀類,都必須以市場(chǎng)需求為前提。所以,在系統(tǒng)設(shè)計(jì)前,首先要進(jìn)行廣泛的市場(chǎng)調(diào)查,了解該系統(tǒng)的時(shí)常應(yīng)用概況,以分析系統(tǒng)當(dāng)前存在的問(wèn)題,研究系統(tǒng)的時(shí)市場(chǎng)前景,確定市場(chǎng)開(kāi)發(fā)設(shè)計(jì)的目的和目標(biāo)。簡(jiǎn)單地說(shuō),就是通過(guò)調(diào)研克服舊缺點(diǎn),開(kāi)發(fā)新功能。 根據(jù)論文的設(shè)計(jì)要求:(1)、熟悉 Keil 編程環(huán)境;(2) 、熟悉有關(guān)探測(cè)器的理論知識(shí);(3) 、給出設(shè)計(jì)方案;此次的設(shè)計(jì)先從硬件設(shè)計(jì)上著手。先要整理出聲光報(bào)警系統(tǒng)的整體思路。確定出方案設(shè)計(jì)中需要的硬件設(shè)備。我們?cè)诖_定了大的方向基礎(chǔ)上,就應(yīng)該對(duì)系統(tǒng)實(shí)現(xiàn)進(jìn)行規(guī)劃。包括應(yīng)該采集的信號(hào)種種類、數(shù)量、范圍,輸出信號(hào)的匹配和轉(zhuǎn)換,傳感器的選擇,技術(shù)指標(biāo)

16、的確定等。2.2 設(shè)計(jì)方案2.2.1 方案設(shè)計(jì)思想此次設(shè)計(jì)是針對(duì)于單片機(jī)原理及其應(yīng)用展開(kāi)的。其中包含了我們大學(xué)三年中所學(xué)到的相關(guān)知識(shí),運(yùn)用我們所學(xué)的電工技術(shù),傳感器技術(shù),單片機(jī)技術(shù)去設(shè)計(jì)基于單片機(jī)的聲光報(bào)警系統(tǒng)。80C51 單片機(jī)好比一個(gè)橋梁,聯(lián)系著傳感器和報(bào)警電路設(shè)備。當(dāng)周?chē)沫h(huán)境達(dá)到我們?cè)O(shè)定的數(shù)值時(shí),聲光傳感器把被測(cè)的物理量作為輸入?yún)?shù),轉(zhuǎn)換為電量(電流、電壓、電阻等等)輸出。物理量和測(cè)量范圍的不同,傳感器的工作機(jī)理和結(jié)構(gòu)就不同。通常傳感器輸出的電信號(hào)是模擬信號(hào)(已有許多新型傳感器采用數(shù)字量輸出)。當(dāng)信號(hào)的數(shù)值符合 A/D轉(zhuǎn)換器的輸入等級(jí)時(shí),可以不用放大器放大;當(dāng)信號(hào)的數(shù)值不符合 A/D

17、轉(zhuǎn)換器的輸入等級(jí)時(shí),就需要放大器放大。而我們選擇前者,不需要用放大器,選擇數(shù)值符合 A/D 轉(zhuǎn)換器的輸入等級(jí),這樣就可以簡(jiǎn)化整個(gè)系統(tǒng)的設(shè)置。傳感器將物理信號(hào)經(jīng)過(guò) A/D 轉(zhuǎn)換器轉(zhuǎn)化為可以利用識(shí)別的電信號(hào)給單片機(jī),這里我們選擇單片機(jī)的 P1.0 為輸入方式,接收到信號(hào)的單片機(jī)經(jīng)過(guò)程序的設(shè)定會(huì)由 P2.0作為單片機(jī)的輸出直接啟動(dòng)報(bào)警電路。此時(shí),揚(yáng)聲器將發(fā)出高、低交替的 2 種3叫聲,同時(shí)二極管發(fā)光,這就達(dá)到了聲光報(bào)警的效果。2.2.2 總體框圖根據(jù)方案的設(shè)計(jì)思想,我們從中就可以得到了聲光報(bào)警系統(tǒng)的總體框圖如圖2-1 所示下:圖 2-1 聲光報(bào)警系統(tǒng)的總體框圖使用 80C51 單片機(jī),選用聲光傳感器

18、作為敏感元件,利用 AD574A 轉(zhuǎn)換器和聲光報(bào)警電路,開(kāi)發(fā)了可用于家庭或小型單位火災(zāi)報(bào)警的聲光報(bào)警器。整個(gè)設(shè)計(jì)由 4 大部分構(gòu)成:聲光傳感器、A/D 轉(zhuǎn)換電路、80C51 單片機(jī)、聲光報(bào)警電路。其中,聲光傳感器是將現(xiàn)場(chǎng)溫度、聲光等非電信號(hào)轉(zhuǎn)化為電信號(hào);轉(zhuǎn)換電路是將完成將聲光傳感器輸出的模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換。聲光報(bào)警模塊由單片機(jī)和報(bào)警電路組成,由單片機(jī)控制實(shí)現(xiàn)不同的聲光報(bào)警功能。綜合考慮各因素,本文選擇 NIS-09 聲光傳感器用作采集系統(tǒng)的敏感元件。它靈敏度高,穩(wěn)定性好,適合于火災(zāi)中氣體的探測(cè)。A/D 轉(zhuǎn)換器選用 AD574A 轉(zhuǎn)換器。4 第 3 章 系統(tǒng)硬件實(shí)現(xiàn)3.1 主控電路設(shè)計(jì)硬件

19、設(shè)計(jì)中最核心的器件是單片機(jī) 80C51,它一方面控制 A/D 轉(zhuǎn)換器實(shí)現(xiàn)模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換,另一方面,將采集到的數(shù)字電壓值經(jīng)計(jì)算機(jī)處理得到相應(yīng)的二進(jìn)制代碼,與設(shè)定的值作比較。整個(gè)系統(tǒng)的軟件編程就是通過(guò)匯編語(yǔ)言對(duì)單片機(jī) 80C51 實(shí)現(xiàn)其控制功能。3.1.1 80C51 系列 80C51 系列單片機(jī)產(chǎn)品繁多,主流地位已經(jīng)形成。多年來(lái)的應(yīng)用實(shí)踐已經(jīng)證明,80C51 的系統(tǒng)結(jié)構(gòu)合理,技術(shù)成熟,許多單片機(jī)芯片傾力于提高 80C51系列產(chǎn)品的綜合功能,從而形成了 80C51 的主流產(chǎn)品的地位,近年來(lái)推出的與80C51 兼容的主要產(chǎn)品有:ATMEL 公司融入 Flash 存儲(chǔ)器技術(shù)推出的 AT89

20、系列單片機(jī);Philips 公司推出的 80C51、80C552 系列高性能單片機(jī);華邦公司提出的 W78C51、W77C51 系列高速低價(jià)單片機(jī);ADI 公司推出的 AdC8系列高精度 ADC 單片機(jī);LG 公司推出的 GMS90/97 系列低壓高速單片機(jī);Maxim 公司推出的 DS89420 高速(50MIPS)單片機(jī);Cygnal 公司推出的 C8051F 系列高速單片機(jī)。由此可見(jiàn),80C51 已經(jīng)成為事實(shí)上的單片機(jī)主流系列,所以,本次設(shè)計(jì)選擇 80C51 單片機(jī)。3.1.2 80C51 的基本結(jié)構(gòu)80C51 的基本結(jié)構(gòu)如圖所示圖 3-1 80C51 的基本結(jié)構(gòu)5由圖可見(jiàn),80C51

21、單片機(jī)主要由以下部分組成:(1)CPU 系統(tǒng) 8 位 CPU,含布爾處理器;時(shí)鐘電路;總線控制邏輯。(2)存儲(chǔ)器系統(tǒng) 4KB 的程序存儲(chǔ)器(ROM/EPROM/Flash,可擴(kuò)至 64KB);128KB 數(shù)據(jù)存儲(chǔ)器(RAM,可再擴(kuò) 64KB);特殊功能寄存器 SFR。(3)I/O 口和其他動(dòng)能單元4 個(gè)并行 I/O 口;2 個(gè) 16 位定時(shí)/計(jì)數(shù)器;1 個(gè)全雙工異步串行口;中斷系統(tǒng)(5 個(gè)中斷源,2 個(gè)優(yōu)先級(jí)) 3.1.3 80C51 單片機(jī)的的封裝和引腳80C51 系列單片機(jī)采用雙列直插式(DIP).QFP44(Quad Flat Pack)和LCC(Leaded Chip Caiier)形

22、式封裝。這里僅介紹常用的總線型 DIP40 封裝。如圖 3-2 所示。40 個(gè)引腳按引腳功能大致可分為 4 個(gè)種類:電源、時(shí)鐘、控制和 I/O 引腳(1) 電源: VCC - 芯片電源,接+5V; VSS - 接地端;圖 3-2 80C51 單片機(jī)的的封裝和引腳(2)時(shí)鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 (3) 控制線:控制線共有 4 根,ALE/PROG:地址鎖存允許/片內(nèi) EPROM 編程脈沖 ALE 功能:用來(lái)鎖存 P0 口送出的低 8 位地址6 PROG 功能:片內(nèi)有 EPROM 的芯片,在 EPROM 編程期間,此引腳輸入編程脈沖。 PSEN:外 ROM

23、 讀選通信號(hào)。 RST/VPD:復(fù)位/備用電源。 RST(Reset)功能:復(fù)位信號(hào)輸入端。 VPD 功能:在 Vcc 掉電情況下,接備用電源。 EA/Vpp:內(nèi)外 ROM 選擇/片內(nèi) EPROM 編程電源。 EA 功能:內(nèi)外 ROM 選擇端。 Vpp 功能:片內(nèi) EPROM 的芯片,在 EPROM 編程期間,施加編程電源Vpp。 (4) I/O 線 80C51 共有 4 個(gè) 8 位并行 I/O 端口:P0、P1、P2、P3 口,共 32 個(gè)引腳。P3 口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。3.1.4 80C51 單片機(jī)的時(shí)鐘(1)振蕩器和時(shí)鐘電路80C51 內(nèi)部有一

24、個(gè)高增益反相放大器,用于構(gòu)成振蕩器,但要形成時(shí)鐘脈沖,外部還需附加電路。80C51 的時(shí)鐘產(chǎn)生方法有以下兩種。a 內(nèi)部時(shí)鐘方式利用芯片內(nèi)部的振蕩器,然后在引腳 XTALl 和 XTAL2 兩端跨接晶體振蕩器(簡(jiǎn)稱晶振),就構(gòu)成了穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘電路。外接晶振時(shí),Cl和 C2的值通常選擇為 30pF 左右;Cl、C2對(duì)頻率有微調(diào)作用,晶振或陶瓷諧振器的頻率范圍可在 1.2MHz12MHz 之間選擇。為了減小寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)引腳 XTALl 和 XTAL2 靠近。圖 3-3 80C51 時(shí)鐘電路接線方法b 外

25、部時(shí)鐘方式7此方式是利用外部振蕩脈沖接入 XTALl 或 XTAL2。HMOS 和 CHMOS 單片機(jī)外時(shí)鐘信號(hào)接入方式不同。表 3-1 80C51 單片機(jī)外部時(shí)鐘接入方法接線方法芯片類型XTAL1XTAL2HMOS接地接片外時(shí)鐘脈輸入端(引腳需接上拉電阻)CHMOS接片外時(shí)鐘脈沖輸入端懸空3.1.5 80C51 單片機(jī)的復(fù)位 在整個(gè)聲光報(bào)警系統(tǒng)中,要進(jìn)行實(shí)驗(yàn),必須對(duì)整個(gè)系統(tǒng)先復(fù)位。復(fù)位是單片機(jī)的初始化操作。單片機(jī)系統(tǒng)在上電啟動(dòng)運(yùn)行時(shí),都需要先復(fù)位。其作用是使 CPU 和系統(tǒng)中其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作,因而,復(fù)位是一個(gè)很重要的操作方式。但單片機(jī)本身是不能自動(dòng)進(jìn)行復(fù)

26、位的,必須配合相應(yīng)的外部復(fù)位電路才能實(shí)現(xiàn)。復(fù)位電路設(shè)計(jì)單片機(jī)的外部復(fù)位電路有上電復(fù)位和上電和按鍵均有效的復(fù)位兩種。我們?cè)谠O(shè)計(jì)單片機(jī)復(fù)位時(shí),選用上電復(fù)位。上電復(fù)位上電復(fù)位利用電容器的充電實(shí)現(xiàn)。圖 3-4 是 80C51 單片機(jī)的上電復(fù)位電路。圖中給出了復(fù)位電路參數(shù)。圖 3-5 是 80C51 單片機(jī)的上電+按鍵復(fù)位電路。上電要求接通電源后,單片機(jī)實(shí)現(xiàn)自動(dòng)復(fù)位操作。上電瞬間 RST 引腳獲得高電平,隨著電容的充電,RST 引腳的高電平將逐漸下降。RST 引腳的高電平只要能保持足夠的時(shí)間(2 個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。該電路典型的電阻值和我電容參數(shù)為:晶振為 12MHZ,電容值為 10

27、uF,電阻值為8.2K。圖 3-4 上電復(fù)位電路 圖 3-5 上電+按鍵復(fù)位電路8復(fù)位狀態(tài):初始復(fù)位不改變 RAM(包括工作寄存器 R0R7)的狀態(tài),復(fù)位后 80C51 片內(nèi)各特殊功能寄存器的狀態(tài)如表所示,表中“x”為不定數(shù)。 表 3-2 復(fù)位后的內(nèi)部特殊功能寄存器狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTMOD00HACC00HTCON00HB00HTH000HBSW00HTL000HSP07HTH100HDPTR0000HTL000HP0P3FFHSCON00HIPxx000000BSBUFxxxxxxxxBIE0 x000000BPCON0 xxx0000B復(fù)位時(shí),ALE 和成輸入

28、狀態(tài),即 ALE= 1,片內(nèi) RAM 不受復(fù)位影響。復(fù)位后,P0P3 口輸出高電平且使這些雙向口皆處于輸入狀態(tài),并將 07H寫(xiě)入堆棧指針 SP,同時(shí)將 PC 和其余專用寄存器清 0。此時(shí),單片機(jī)從起始地址0000H 開(kāi)始重新執(zhí)行程序。所以,單片機(jī)運(yùn)行出錯(cuò)或進(jìn)入死循環(huán)時(shí),可使其復(fù)位后重新運(yùn)行。3.2 外圍接口電路設(shè)計(jì)3.2.1 NIS-09 聲光傳感器簡(jiǎn)介在設(shè)計(jì)中我們之所以選用 NIS-09 聲光傳感器,是因?yàn)樗妮敵瞿M量與我們所用的 A/D 轉(zhuǎn)換器輸入等級(jí)相符合。 (NIS-09 聲光傳感輸出電壓是5.6+0.4v,A/D 轉(zhuǎn)換器的輸入量程是 0+10V)聲光傳感器主要有以下兩種:(1)散射

29、式 在發(fā)光管和光敏電阻之間設(shè)置遮光屏,無(wú)聲光時(shí)光敏元件接收不到信號(hào),有聲光時(shí)使光敏元件發(fā)出信號(hào)。(2)離子式用放射性同位素镅 Am241 放射出微量的 a 射線,使附近空氣電離,當(dāng)平行平板電極間有直流電壓時(shí),產(chǎn)生離子電流 Ik。有聲光時(shí),微粒將離子吸附,而且離子本身也吸收 a 射線,其結(jié)果是離子 Ik 減小。9若有一個(gè)密封裝有純凈空氣的離子室作為參比元件,將兩者的離子電流比較,就可以排除外界干擾,得到可靠的檢測(cè)結(jié)果。 在本次設(shè)計(jì)中,我們選用 NIS-09 聲光傳感器。它是離子式煙霧傳感器,是日本 NEMOTO 公司專為檢測(cè)延誤而精心設(shè)計(jì)的新型傳感器。檢測(cè)方式:離子型,一源兩室。放射參數(shù):電源電

30、壓是 DC 9v,輸出電壓是 5.6+0.4v 電流損耗是 27+3pA ,靈敏度是 0.6+0.1v。特性參數(shù)如下表所示:a 靈敏度特性 (根據(jù) UL217 標(biāo)準(zhǔn)風(fēng)速 0.1M/秒)b 電源電壓特性(25 60RH)c 溫濕度特性 溫度特性(溫度 60)d 溫度特性(溫度 25)源: 放射元素是媚 241,放射量是平均 33.3KBq.=0.9uCi(29K37KBq) 。工作環(huán)境: 電源電壓是 DC6.0-18.0V,最大 24V;溫度是 0-50,最大-10-60,溫度 95。保存溫度-25-80,溫度 95。典型特性:表 3-3 特性參數(shù) (a) 靈敏度特性 (b)電源電壓特性 (C)

31、 溫度特性 (d)溫度特性聲光強(qiáng)度 (%英尺)輸出電壓(V)誤差(V)05.60.4015.30.50.30.125.00.50.60.134.70.50.90.244.40.51.20.254.20.51.40.2電源電壓輸出電壓(V)63.30.395.60.4128.00.71510.00.851813.01.0溫度()輸出(V)05.150.4255.60.4505.850.4濕度(%C)輸出(V)305.750.5605.60.4905.450.410 長(zhǎng)期穩(wěn)定性測(cè)驗(yàn)如下表所示:表 3-4 長(zhǎng)期穩(wěn)定性測(cè)驗(yàn)3.2.2 AD574A 簡(jiǎn)介AD574A 型快速 12 位逐次比較式 AD 轉(zhuǎn)

32、換器為美國(guó)模擬器件公司產(chǎn)品。一次轉(zhuǎn)換時(shí)間為 25s,轉(zhuǎn)換速率為 40MSPS,分辨率 12 位,非線性誤差小于1/2LSB。采用 28 腳雙立直插式封裝,各引腳功能如圖 3-6 所示,圖 3-7 是其管腳圖。圖 3-6 D574A 引腳功能名稱方法標(biāo)準(zhǔn)高溫儲(chǔ)存特性高溫 805 不通電的情況下儲(chǔ)存 72 小時(shí)保持特性參數(shù)不變,不變形、不變色、不產(chǎn)生裂紋低溫儲(chǔ)存特性低溫-3005 不通電的情況儲(chǔ)存 72 小時(shí)保持特性參數(shù)不變,不變形、不變色、不產(chǎn)生裂紋高溫儲(chǔ)存特性在 405,855RH 不通電的情況儲(chǔ)存72 小時(shí)保持特性參數(shù)不變,不變形、不變色、不產(chǎn)生裂紋震動(dòng)實(shí)驗(yàn)共振頻率 10-35HZ,振幅 5

33、HZ0.25,如果不產(chǎn)生共振,則用頻率 35HZ 震蕩 4 小時(shí)保持特性參數(shù)不變,不變形、不變色、不產(chǎn)生裂紋跌落實(shí)驗(yàn)三個(gè)不同方向把器件從 1M 高度自由落體跌落到木板上保持特性參數(shù)不變,不變形、不變色、不產(chǎn)生裂紋11圖 3-7 管腳圖 AD574A 引腳功能:DB11DB0:12 位數(shù)據(jù)輸出線。DB11 為最高,DB0 為最低,它們可由控制邏輯決定是輸出數(shù)據(jù)還是對(duì)外成高阻狀態(tài)。12/8:數(shù)據(jù)模式選擇。當(dāng)此引腳輸入為高電平時(shí),12 為數(shù)據(jù)并行輸出;當(dāng)此引腳為低電平時(shí),與引腳 A0 配合,把 12 位數(shù)據(jù)分兩次輸入。應(yīng)該注意,此引腳不與 TTL 兼容,若要此引腳為高電平,應(yīng)直接按腳 1;若要此引腳

34、為低電平,應(yīng)接引腳 15.A0:字節(jié)選擇控制。此引腳有兩個(gè)功能,一個(gè)功能是決定方式是 12 位是 8位。若 A0=0,進(jìn)行全 12 位轉(zhuǎn)換,轉(zhuǎn)換時(shí)間為 25us;若 A0=1,僅進(jìn)行 8 位轉(zhuǎn)換,轉(zhuǎn)換時(shí)間為 16us,另一個(gè)功能是決定輸出數(shù)據(jù)是高 8 位還是低 4 位。若 A0=0,高 8 位數(shù)據(jù)有效;若 A0=1,低 4 位有效,中間 4 位為“0” ,高 4 位為高阻狀態(tài)。因此,低 4 位數(shù)據(jù)讀出時(shí),應(yīng)遵循左對(duì)齊原則(即:高 8 位+低 4 位+中間 4 位的0000 ) 。CS:芯片選擇。當(dāng) CS=0 時(shí),AD574A 被選中;否則 AD574A 不進(jìn)行任何操作。R/C:讀/轉(zhuǎn)換選擇。當(dāng)

35、 R/C=1 時(shí),允許讀取結(jié)果;當(dāng) R/C=0,允許 A/D 轉(zhuǎn)換。CE:芯片啟動(dòng)信號(hào)。CE=1 時(shí),允許讀取結(jié)果,到底是轉(zhuǎn)換還是讀取結(jié)果與R/C 有關(guān)。STS:狀態(tài)信號(hào)。STS=1 表示正在進(jìn)行 A/D 轉(zhuǎn)換,STS=0 表示轉(zhuǎn)換已完成。REFOUT:+10V 基準(zhǔn)電壓輸出。REIN 準(zhǔn)電壓輸入。只有此腳把從“REFOUT”腳輸出的基準(zhǔn)電壓引入到AD574A 內(nèi)部的 12 位 DAC(AD565),才能進(jìn)行正常的 A/D 轉(zhuǎn)換。BIPOFF:雙極性補(bǔ)償。此引腳適當(dāng)連接,可實(shí)現(xiàn)單極性或雙極性輸入。1210VIN:10V 量程模擬信號(hào)輸入端。對(duì)單極性信號(hào)為 10V 量程的模擬信號(hào)輸入端,對(duì)雙極性

36、信號(hào)為5V 模擬信號(hào)輸入腳。20VIN:20V 量程輸入端。單極性信號(hào)為 20V 量程模擬信號(hào)輸入端,對(duì)雙極性信號(hào)為10V 量程模擬信號(hào)輸入腳。DG:數(shù)字地。各字電路(譯碼器、門(mén)電路、觸發(fā)器等)及“+5V”的電源地。AG:模擬地。各模擬器件(放大器、比較器、多路開(kāi)關(guān)、取樣保持器等)地及“+15V”和“-15V”電源地。VLOG:邏輯電路供電輸入端, +5V.VCC:正電源端,VCC=+12+15V。VEE:負(fù)電源端,VEE=-15-12V。AD574A 的單極性和雙極性輸入如圖 3-8 所示 圖 3-8 (a)單極性輸入 (b) 雙極性輸入單極性輸入電路:如圖 3-8(a)所示是 AD574A

37、 系列的模擬量單極性輸入電路。當(dāng)輸入電壓為 VIN=0+10V 時(shí),應(yīng)從引腳 10VIN 輸入,當(dāng) VIN=020V,應(yīng)從 20VIN 輸入。數(shù)字量 D 為無(wú)符號(hào)二進(jìn)制碼,計(jì)算公式為 D=4096VIN/VFS。圖中電位器 RP1 用于調(diào)零,即保證在 VIN=0 時(shí),輸出數(shù)字量 D 為零。雙極性輸入電路:電路圖如圖(b)所示。圖中 RP2 用于調(diào)整增益,其作用與圖(a)中 RP2 的作用相同。圖中 RP1 用于調(diào)整雙極性電路輸入零點(diǎn)。如果輸入信號(hào) VIN 在-5=5V 之間,應(yīng)從 10VIN 引腳輸入;當(dāng) VIN 在-10=10V 之間,應(yīng)從 20VIN 引腳輸入。根據(jù)聲光傳感器所輸出的電壓量

38、,故選用單極性輸入。 3.2.3 AD574A 與 80C51 單片機(jī)接口電路AD574A 系列的所有型號(hào)和功能因腳和排列都相同,因而它們與單片機(jī)借口也相同。AD574A 所有型號(hào)都有內(nèi)部始終電路,不需要任何外接器件和連線。圖 3-913為 AD574A 與 80C51 單片機(jī)的接口電路。該電路采用雙極性輸入方式。根據(jù)聲光傳感器輸出電壓是 5.6+0.4v,在設(shè)計(jì)時(shí)我們選用單極性輸入方式。 圖 3-9 AD574A 與 80C51 單片機(jī)的接口電路當(dāng) AD574A 與 80C51 單片機(jī)配置時(shí),由于 AD574A 輸出 12 位數(shù)據(jù),所以當(dāng)單片機(jī)讀取轉(zhuǎn)換結(jié)果時(shí),應(yīng)分兩次進(jìn)行:當(dāng) A0=0 時(shí),

39、讀取高 8 位;當(dāng) A0=1 時(shí),讀取低 4 位。圖中 AD574A 的 STS 與 80C51 的 P1.0 線相連,故采用查詢方式讀取轉(zhuǎn)換結(jié)果。3.2.4 聲光報(bào)警電路聲光報(bào)警電路由單片機(jī) P2.0 口控制,輸出報(bào)警信號(hào)(高低電平間隔 1 s 的脈沖信號(hào)),驅(qū)動(dòng)聲光報(bào)警電路,直至按復(fù)位鍵 RESET 和開(kāi)關(guān)鍵。聲光報(bào)警電路由 555 定時(shí)器、揚(yáng)聲器和普通發(fā)光二極管組成,電路圖如圖3-10 所示。其中 555 定時(shí)器接成了一個(gè)低頻多諧振蕩器,其控制電壓出入端 5 腳與單片機(jī) 80C51 的 P2.0 端相連,受 P2.0 腳輸出的脈沖信號(hào)控制。由電容 C4 的充沖放電作用,當(dāng) P2.01 時(shí)

40、,555 輸出脈沖的振蕩頻率較低,當(dāng) P2.00 時(shí),555輸出脈沖的振蕩頻率較高。該脈沖信號(hào)經(jīng)隔置電容 C2 加到揚(yáng)聲器上,揚(yáng)聲器將發(fā)出高、低交替的 2 種叫聲,同時(shí) P2.0 腳輸出的高低電平間隔 1 s 的脈沖信號(hào)經(jīng)電阻 R1 加到發(fā)光二極管 LED 上,LED 將閃爍發(fā)光,達(dá)到聲光同時(shí)報(bào)警的效果。14圖 3-10 聲光報(bào)警電路3.3 總電路設(shè)計(jì)根據(jù)要求,設(shè)計(jì)中我們選用 80C51 單片機(jī)。80C51 單片機(jī)的主控電路包括時(shí)鐘電路、復(fù)位電路。兩電路的接法在 3.1.4 和 3.1.5 中分別做了詳細(xì)的介紹,這里不再贅述。而傳感器是將非電量需要轉(zhuǎn)換成與非電量有一定關(guān)系的電量。當(dāng)今信息時(shí)代,

41、隨著電子計(jì)算機(jī)技術(shù)的非速發(fā)展,自動(dòng)檢測(cè),自動(dòng)控制技術(shù)顯露非凡的能力,而大多數(shù)設(shè)備只能處理電信號(hào),也就需要把被測(cè),被控非電量的信息通過(guò)傳感器轉(zhuǎn)換成電信號(hào)??梢?jiàn),傳感器是實(shí)現(xiàn)自動(dòng)檢測(cè)和自動(dòng)控制的首要環(huán)節(jié)。沒(méi)有傳感器對(duì)原始信息進(jìn)行精確可靠的捕捉和轉(zhuǎn)換,就沒(méi)有現(xiàn)代自動(dòng)檢測(cè)和自動(dòng)控制系統(tǒng)。沒(méi)有傳感器就沒(méi)有現(xiàn)代科學(xué)技術(shù)的迅速發(fā)展。設(shè)計(jì)中,傳感器我們選擇的是NIS-09聲光傳感器。必須利用微粒的特點(diǎn)檢測(cè)。而NIS-09聲光傳感器它的性能參數(shù)是我們選擇它理由。聲光傳感器連接在A/D轉(zhuǎn)換器的輸入接口。我們將主控電路和外圍接口電路(80C51與A/D轉(zhuǎn)換器的接口電路、80C51與聲光報(bào)警電路)連接起來(lái),就得到了基

42、于80C51的聲光報(bào)警總電路圖。當(dāng)外部環(huán)境達(dá)到一定值時(shí),聲光傳感器就會(huì)產(chǎn)生模擬電壓,將它作為輸出的模擬信號(hào)經(jīng) AD574A 轉(zhuǎn)換器轉(zhuǎn)換為 80C51 單片機(jī)所能識(shí)別的數(shù)字電壓量。通過(guò)P1.0 檢測(cè)信號(hào)。當(dāng)有信號(hào)輸入時(shí),經(jīng)程序設(shè)定就會(huì)驅(qū)動(dòng) 80C51 單片機(jī)的 P2.0。而 P2.0 是與聲光報(bào)警電路相連接的。綜上所述,得出總電路圖如圖 3-11 所示:15圖 3-11 聲光報(bào)警系統(tǒng)總電路圖16第 4 章 軟件實(shí)現(xiàn)4.1 編程 KEIL 環(huán)境介紹Keil C51 是美國(guó) Keil Software 公司出品的 51 系列兼容單片機(jī) C 語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C 語(yǔ)言在功能上、結(jié)構(gòu)性、可讀

43、性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用 C 來(lái)開(kāi)發(fā),體會(huì)更加深刻。 Keil C51 軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows 界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到 Keil C51 生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。KEILC51 標(biāo)準(zhǔn) C 編譯器為 80C51 微控制器的軟件開(kāi)發(fā)提供了 C 語(yǔ)言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。C51 編譯器的功能不斷增強(qiáng),更加貼近 CPU 本身,及其它的衍生產(chǎn)品。C51 已被完全集成到 uVisi

44、on2 的集成開(kāi)發(fā)環(huán)境中,這個(gè)集成開(kāi)發(fā)環(huán)境包含:編譯器,匯編 器,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uVision2 IDE 可為它們提供單一而靈活的開(kāi)發(fā)環(huán)境。 C51 V7 版本是目前最高效、靈活的 8051 開(kāi)發(fā)平臺(tái)。它可以支持所有 8051的衍生產(chǎn)品,也可以支持所有兼容的仿真器,同時(shí)支持其它第三 方開(kāi)發(fā)工具。因此,C51 V7 版本無(wú)疑是 8051 開(kāi)發(fā)用戶的最佳選擇。C51 工具包的整體結(jié)構(gòu), uVision 與 Ishell 分別是 C51 for Windows 和for Dos 的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用 IDE 本

45、身或其它編輯器編輯 C 或匯編源文件。然后分別由 C51 及 A51 編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由 LIB51 創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng) L51 連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS 文件由 OH51 轉(zhuǎn)換成標(biāo)準(zhǔn)的 Hex 文件,以供調(diào)試器 dScope51 或 tScope51 使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如 EPROM 中。4.2 程序流程在整個(gè)程序流程中,經(jīng)常要控制一部分指令重復(fù)執(zhí)行若干次,以便簡(jiǎn)短的程序完成大量的處理任務(wù)。這種按某種控制規(guī)律重復(fù)執(zhí)行的程序稱為循環(huán)程序。循環(huán)程序有先執(zhí)行后判斷何

46、先判斷后執(zhí)行兩種基本結(jié)構(gòu)。而我們要選用的是先判斷后執(zhí)行。因?yàn)槁暪鈧鞲衅鞯妮敵鲭妷毫繛?5.66.0v 之間。根據(jù)單極性輸入的轉(zhuǎn)換17關(guān)系 D=4096VIN/VFS,計(jì)算出它的數(shù)字量最小值:D1=40965.6/10=2294;最大值 D2=40966/10=2458.然后把它們的數(shù)字量轉(zhuǎn)化為二進(jìn)制數(shù)。D1、D2 轉(zhuǎn)換為二進(jìn)制數(shù)分別是100111110110、100110011010。由于 AD574A 輸出 12 位數(shù)據(jù),所以當(dāng)單片機(jī)讀取轉(zhuǎn)換結(jié)果時(shí),應(yīng)分兩次進(jìn)行:當(dāng) A0=0 時(shí),讀取高 8 位;當(dāng) A0=1 時(shí),讀取低 4 位。AD574A 的 STS 與80C51 的 P1.0 線相連,

47、故采用查詢方式讀取轉(zhuǎn)換結(jié)果。我們將 A/D 轉(zhuǎn)換器讀取結(jié)果存入 17H、18H、19H、20H 單元中。其中 17H 存入的是較小數(shù) D1 的高八位 10011111,18H 存入的是較小數(shù) D1 的低四位0110;19H 存入的是較大數(shù)的高八位 10011001,20H 存入的是較大值的低四位1010。將數(shù)值存入單元以后,接下來(lái)就是比較。當(dāng)被測(cè)的數(shù)值經(jīng)計(jì)算機(jī)的轉(zhuǎn)換在比較范圍內(nèi),經(jīng)程序設(shè)定 80C51 單片機(jī)的 P2.0 就會(huì)輸出脈沖啟動(dòng)報(bào)警電路程序。程序流程圖如圖 4-1 所示。圖 4-1 流程圖4.3 程序ORG 0000HSTART: MOV DPTR, # 0FFF8H ;送端口地址入

48、 DPTR MOVX DPTR, A ;啟動(dòng) AD574A18 SET P1.0 ;置 P1.0 為輸入方式LOOP: JB P1.0, LOOP ;檢測(cè) P1.0 口 INC DPTR ;使 R/C 為 1MOVX A, DPTR ;讀取高 8 位數(shù)據(jù)MOV 41H, A ;高 8 位內(nèi)容存入 41H 單元INC DPTR ;使 R/C、A0 均為 1INC DPTR MOVX A, DPTR ;讀取低 4 位MOV 40H, A ;將低 4 位內(nèi)容存入 40H 單元MOV 17H, #10001111B ;將比較的數(shù)值存入單元中MOV 18H, #0110BMOV 19H, #100110

49、11BMOV 20H, #1010BMOV AL, 40H ;將 40H 的內(nèi)容存入 AL 單元中MOV AH, 41H ;將 41H 的內(nèi)容存入 AH 單元中 01: CMP AH, 17H ;比較最小數(shù)值的高八位 JA LP1 JBE LP2 LP1: JMP 03 LP2: JMP 01 02: CMP AL,18H ;比較最小值的低四位 JA LP3 JBE LP4 LP3: JMP 01 LP4: JMP 04 03: CMP AH,19H ;比較最大值的高八位 JA LP5 JBE LP6 LP6: JMP 03 LP5: JMP 01 04 : CMP AH ,20H ;比較最大

50、值的低四位 JA LP7 JBE LP8 LP8: JMP 0119 LP7: JMP 04 05: SET P2.0 ;報(bào)警 DEL: MOV R7,#200 ;延時(shí) 50msDEL1: MOV R6,#123 NOPDEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET ;返回 END ;結(jié)束20第 5 章 調(diào)試5.1 調(diào)試的步驟(1) 源文件的建立:使用菜單 “File-New”或者點(diǎn)擊工具欄的新建文件按鈕,即可在項(xiàng)目窗口的右側(cè)打開(kāi)一個(gè)新的文本編輯窗口,在該窗口中輸入?yún)R編語(yǔ)言源程序(4.2 小節(jié)所示)。保存該文件,加上擴(kuò)展名(.asm 或 a51),這里將文件保存為 ex

51、aml1.asm。(2)建立工程文件:點(diǎn)擊“Project-New Project”菜單,出現(xiàn)以個(gè)對(duì)話框,要求給工程起一個(gè)名字,我們輸入 examl1,不需要擴(kuò)展名,點(diǎn)擊保存按鈕,出現(xiàn)第二個(gè)對(duì)話框。這個(gè)對(duì)話框要求選擇目標(biāo) CPU(即我們所使用的芯片型號(hào)80C51)點(diǎn)擊 ATMEL 前面的“+”號(hào),展開(kāi)該層,點(diǎn)擊其中的 80C51,然后點(diǎn)擊確定按鈕?;氐街鹘缑妫藭r(shí),在工程窗口的文件頁(yè)中,出現(xiàn)了“Targ et1”,前面有 “+”號(hào),點(diǎn)擊“+”展開(kāi),可以看到下一層的“Source Group1”,這時(shí)的工程還是一個(gè)空工程,里面什么文件也沒(méi)有,需要手動(dòng)把剛才編寫(xiě)好的源程序加入,點(diǎn)擊“Souce G

52、roup”使其反白顯示,然后,點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)一個(gè)下拉菜單。選中其中的“Add file to Group”Souce Group1”,對(duì)話框,要求尋找源文件,注意該對(duì)話框下面的“文件類型“默認(rèn)為 C Souce file (*.c),也就是以 C 為擴(kuò)展名的文件,而我們的文件是以 asm 為擴(kuò)展名的,所以在列表框中找不到 examl1.asm,要將文件類型該掉,點(diǎn)擊對(duì)話框中”文件類型后的下拉列表,找到并選中“Asm Souce File(*.asm,*.a51)”,這樣,在列表框中就可以找到 examl1.asm 文文件了。雙 examl1.asm 文件,將文件加入項(xiàng)目,注意,在文件加入項(xiàng)

53、目后,該對(duì)話框并不消失,等待繼續(xù)加入其他文件,但初學(xué)時(shí)常會(huì)認(rèn)為操作沒(méi)有成功而再次雙擊同一文件,這時(shí)會(huì)出現(xiàn)對(duì)話框,提示你所選的文件以在列表中,此時(shí)點(diǎn)擊確定,返回前一對(duì)話框,然后,點(diǎn)擊”Close”即可返回主界面,返回后,點(diǎn)擊“Souce Goup 1”前的加號(hào),會(huì)發(fā)現(xiàn)examl1.asm 文件以在其中。雙擊文件名,即打開(kāi)源程序。(3)工程的詳細(xì)設(shè)置:首先點(diǎn)擊左邊 Project 窗口的 Target 1,然后使用菜單“Proget-Option for target target 1”即出現(xiàn)對(duì)工程設(shè)置的對(duì)話框,對(duì)這個(gè)對(duì)話框可謂非常復(fù)雜,共有 8 個(gè)頁(yè)面,要全部高清可不容易,好在絕大部分設(shè)置項(xiàng)取默

54、認(rèn)值就行了。設(shè)置完成以后安確認(rèn)返回主界面,工程建立、設(shè)置完畢。(4)編譯、連接:在設(shè)置好工程后,既可以進(jìn)行編譯、連接。選擇菜單Project-Build target,對(duì)當(dāng)前工程進(jìn)行連接,如果當(dāng)前文件已修改軟件會(huì)先對(duì)21該文件進(jìn)行比阿尼,然后在連接以產(chǎn)生目標(biāo)代碼。編譯過(guò)程中的信息將出現(xiàn)在輸出窗口中的 Build 頁(yè)中,如果源程序有語(yǔ)法錯(cuò)誤,會(huì)有錯(cuò)誤報(bào)告出現(xiàn),雙擊該行,可以定到出錯(cuò)的位置,對(duì)源程序反復(fù)修改后,最終會(huì)得到如圖 5-1 所示的結(jié)果,提示獲得了名為 examl1.hex 的文件,該文件即可被編程器讀入并寫(xiě)到芯片中,同時(shí)還產(chǎn)生了一些其他相關(guān)文件可被用于 KEIL 的仿真與調(diào)試。 圖 5-

55、1 正確連接、編譯之后的結(jié)果5.2 調(diào)試過(guò)程中遇到的問(wèn)題及解決方法在進(jìn)入環(huán)境以后,遇到了很多問(wèn)題,總結(jié)如下:(1)提示無(wú) asm 文件編譯時(shí)候提示:F:.XX.asmFile has been changed outside the editor, reload ?解決方法:重新生成項(xiàng)目,產(chǎn)生 examl1.asm 即可。(2)在進(jìn)入 Keil 的調(diào)試環(huán)境以后,發(fā)現(xiàn)程序有錯(cuò)解決方法:將光標(biāo)定位于需要修改的程序上,用菜單,DebugInline Assambly即可出現(xiàn)對(duì)話框,Enter New 后面的編輯框內(nèi)直接輸入需要修改的程序語(yǔ)句,輸入完之后鍵入回車(chē)將自動(dòng)指向下一條語(yǔ)句,可以繼續(xù)修改,如果不在需要修改,可以點(diǎn)擊右上角的關(guān)閉按鈕關(guān)閉窗口。(3)程序調(diào)試時(shí),一些程序必須滿足一定的條件才能被執(zhí)行到解決方法:這些條件往往是異步發(fā)生或難以預(yù)先設(shè)定的,這類問(wèn)題使用的單步實(shí)行方法是很難調(diào)試的,這時(shí)就要使用發(fā)哦程序調(diào)試中的另一種非常重要是方法-斷點(diǎn)設(shè)置。斷點(diǎn)設(shè)置的方法有多種,常用的是在某一程序行設(shè)置斷點(diǎn),設(shè)置好斷點(diǎn)后可以全速運(yùn)行程序,一旦執(zhí)行到該程序行即停止,可在此觀察有22關(guān)變量值,以確定問(wèn)題所在。在程序行設(shè)置/移除斷點(diǎn)的方法是將光標(biāo)定位于需要設(shè)置斷點(diǎn)的程序行,使用菜單 Debug/Insert/RemoveBreakPoi

溫馨提示

  • 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)論