智能脈沖寬度測(cè)量?jī)x_第1頁(yè)
智能脈沖寬度測(cè)量?jī)x_第2頁(yè)
智能脈沖寬度測(cè)量?jī)x_第3頁(yè)
智能脈沖寬度測(cè)量?jī)x_第4頁(yè)
智能脈沖寬度測(cè)量?jī)x_第5頁(yè)
已閱讀5頁(yè),還剩33頁(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、摘 要近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,人們已越來(lái)越多地將單片機(jī)技術(shù)應(yīng)用于一些工業(yè)控制系統(tǒng)。如溫度、流量和壓力等參數(shù)進(jìn)行檢測(cè)和控制。PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有快速及靈活的控制特點(diǎn),因此在實(shí)時(shí)檢測(cè)和自動(dòng)控制的應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用。本系統(tǒng)采用單片機(jī)AT89C52為中心器件來(lái)設(shè)計(jì)智能脈沖寬度測(cè)量?jī)x,本系統(tǒng)是由一個(gè)555定時(shí)器來(lái)產(chǎn)生脈沖信號(hào),將信號(hào)輸入單片機(jī)中,然后運(yùn)行程序,最后通過(guò)譯碼在LED數(shù)碼管動(dòng)態(tài)顯示。本系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展性強(qiáng)。在現(xiàn)有的單片機(jī)仿真系統(tǒng)上掌握相關(guān)軟硬件設(shè)計(jì)與調(diào)試知識(shí),根據(jù)所選的題目,焊接好硬件電路,正

2、確進(jìn)行元器件的測(cè)試與調(diào)試,并在計(jì)算機(jī)上編寫(xiě)匯編程序調(diào)試運(yùn)行,并實(shí)現(xiàn)參考選題中要求的設(shè)計(jì)。關(guān)鍵詞:脈沖寬度測(cè)量Title:Intelligent Pulse Width Measuring InstrumentApplicant:Zhang XinSpecialty:Electrical engineering and automationABSTRACTIn recent years, with the rapid development of science and technology, the application of SCM is developing continuously.

3、It has been increasingly used the technology of SCM to the industrial control system. Such as temperature, flow and pressure and so on. Though PC machines have powerful monitoring and management functions, in detection and automatic control application system, SCM is often used as a core component w

4、hich is rapid and flexible. This system uses the AT89C52 as the core component to design intelligent pulse width measuring instrument, This system generates the pulse signal which will be input the single chip microcomputer throught a 555 timer 。 Then I run and decode the program .Finally,the result

5、 will show dynamicly on the LED screen.this system is practical, simple operation and extensible. In the existing microcomputer simulation system hardware and software design and commissioning to master relevant knowledge, according to the selected topic, welding good hardware circuit and the correc

6、t components, and the testing and debugging assembly program on the computer test and operation, written and realize the design requirements of the reference topics.Keywords:Pulse Width Measurement目 錄1 前言11.1 課題研究背景1 單片機(jī)技術(shù)的發(fā)展?fàn)顩r1 本文的研究?jī)?nèi)容22 設(shè)計(jì)內(nèi)容及具體要求32.1 設(shè)計(jì)的主要任務(wù)32.2 設(shè)計(jì)的具體要求33 設(shè)計(jì)方案及總框架53.1 設(shè)計(jì)不同方案對(duì)比5 程控

7、脈沖測(cè)量5 等精度脈沖測(cè)量5 確定方案總框架圖6 各部分框圖簡(jiǎn)介6 原理圖83.1.6 PCB板圖104 硬件部分原理及設(shè)計(jì)114.1 單片機(jī)部分11 功能特性描述11 引腳功能114.1.3 AT89C52的存儲(chǔ)器結(jié)構(gòu)13 定時(shí)器14 單片機(jī)內(nèi)部的中斷154.2 脈沖產(chǎn)生電路164.3 數(shù)碼管顯示電路205 軟件部分設(shè)計(jì)215.1 Keil C軟件的使用介紹215.2 Keil C軟件的基本操作步驟215.3 主程序設(shè)計(jì)23 主程序流程圖23 程序源代碼245.3.3 Kiel51源程序調(diào)試306 系統(tǒng)調(diào)試及誤差分析336.1 系統(tǒng)調(diào)試測(cè)驗(yàn)336.2 實(shí)驗(yàn)結(jié)果336.3 誤差分析33 算法誤

8、差:33 硬件誤差:337 總結(jié)與展望35致謝37參考文獻(xiàn)391 前 言1.1 課題研究背景近年來(lái)單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此越來(lái)越廣泛地應(yīng)用于智能化儀器,儀表,數(shù)據(jù)采集等各個(gè)領(lǐng)域,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合, 通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用一些純硬件來(lái)搞定的話,電路一定是一塊大PCB板!但是如果要是用一些系列單片機(jī),結(jié)果就會(huì)有天壤之

9、別!只因?yàn)閱纹瑱C(jī)可以通過(guò)你編寫(xiě)的程序?qū)崿F(xiàn)高智能,高效率,以及高可靠性!隨著社會(huì)的發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。單片機(jī)的應(yīng)用已經(jīng)越來(lái)越貼近生活,用單片機(jī)來(lái)實(shí)現(xiàn)一些電子設(shè)計(jì)也變得容易起來(lái)。計(jì)算機(jī)在人們的日常中是比較的常見(jiàn)的電子產(chǎn)品之一。目前對(duì)各種物理量的檢測(cè)和控制都可得以實(shí)現(xiàn)。微機(jī)檢測(cè)控制系統(tǒng)不僅運(yùn)用到航天航空、機(jī)器人技術(shù)、紡織機(jī)械、食品加工等工業(yè)過(guò)程控制,而且已經(jīng)成為日常各種家用電器當(dāng)中的主要組成部分。而其中單片機(jī)技術(shù)以其實(shí)現(xiàn)簡(jiǎn)單、使用靈活及數(shù)據(jù)傳輸可靠等有優(yōu)點(diǎn)被廣泛的應(yīng)用于中小型實(shí)時(shí)控制系統(tǒng)中,其實(shí)時(shí)數(shù)據(jù)處理和控制功能可使測(cè)控系統(tǒng)始

10、終保持在最佳的工作狀態(tài),提高系統(tǒng)的工作效率。1.1.1 單片機(jī)技術(shù)的發(fā)展?fàn)顩r單片機(jī)自20世紀(jì)70年代問(wèn)世以來(lái)得到了廣泛的應(yīng)用,主要應(yīng)用于測(cè)試和控制領(lǐng)域。由于單片機(jī)在使用時(shí),通常是處于測(cè)控系統(tǒng)的核心地位并嵌入其中,所以國(guó)際上通常把單片機(jī)稱(chēng)為嵌入式控制器(Embedded MicroController Unit,EMCU)或微控制器(MicroController Unit,MCU)。而在我國(guó),大部分工程技術(shù)人員則比較習(xí)慣使用“單片機(jī)”這一名稱(chēng)。,單片機(jī)的出現(xiàn)是微型計(jì)算機(jī)技術(shù)高速發(fā)展的產(chǎn)物。單片機(jī)體積小、價(jià)格低、應(yīng)用方便、穩(wěn)定可靠,因此,單片機(jī)的發(fā)展和普及給工業(yè)自動(dòng)化等領(lǐng)域帶來(lái)了一場(chǎng)重大革命和技

11、術(shù)進(jìn)步。僅從體積小方面來(lái)說(shuō),單片機(jī)幾乎可以在任何設(shè)施或任意裝置上做成非常小的、功能比較完善的單片機(jī)嵌入系統(tǒng)置于其中,以實(shí)現(xiàn)各種方式的檢測(cè)、計(jì)算或控制,在這一點(diǎn)上,一般的微型計(jì)算機(jī)根本做不到。由于單片機(jī)本身就事一個(gè)計(jì)算機(jī)系統(tǒng),因此只要在單片機(jī)外部適當(dāng)增加一些必要的外圍擴(kuò)展接口電路,就可以靈活的構(gòu)成各種應(yīng)用系統(tǒng),如工業(yè)自動(dòng)檢測(cè)監(jiān)視系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動(dòng)控制系統(tǒng)、智能儀器儀表等。本設(shè)計(jì)是采用Intel公司生產(chǎn)的MCS-52系列的單片機(jī),這類(lèi)單片機(jī)的性能價(jià)格比高,所以被廣泛應(yīng)用,是目前應(yīng)用數(shù)量較多的單片機(jī)。1.1.2 本文的研究?jī)?nèi)容本設(shè)計(jì)的題目是智能脈沖寬度測(cè)量?jī)x,脈沖寬度的測(cè)量,實(shí)質(zhì)是時(shí)間的測(cè)量,

12、在生產(chǎn)和科學(xué)研究中,經(jīng)常要測(cè)量時(shí)間,例如,完成第一生產(chǎn)工序所需要的時(shí)間、周期性信號(hào)的周期、激光測(cè)距和雷達(dá)測(cè)量目標(biāo)距離、運(yùn)動(dòng)體行程的時(shí)間等等都說(shuō)明時(shí)間測(cè)量的重要性。本論文主要是采用單片機(jī)AT89C51為中心器件來(lái)設(shè)計(jì)脈沖寬度測(cè)量?jī)x,在現(xiàn)有的單片機(jī)仿真機(jī)系統(tǒng)上掌握相關(guān)軟硬件設(shè)計(jì)與調(diào)試知識(shí),根據(jù)所設(shè)計(jì)好的電路,焊接好硬件電路,正確進(jìn)行元器件的測(cè)試與調(diào)試,并在計(jì)算機(jī)上編寫(xiě)程序調(diào)試運(yùn)行,并實(shí)現(xiàn)脈沖寬度的測(cè)量。具體包括以下幾方面的內(nèi)容:第一章,對(duì)單片機(jī)的應(yīng)用背景進(jìn)行了說(shuō)明,并介紹了本次設(shè)計(jì)的實(shí)際意義。第二章,簡(jiǎn)單概述了本次設(shè)計(jì)的內(nèi)容和具體要求。第三章,簡(jiǎn)單介紹兩種不同的設(shè)計(jì)方案,通過(guò)對(duì)比先擇較合理的程控式

13、測(cè)量方案。第四章,介紹了硬件部分的原理及設(shè)計(jì)。 第五章,介紹了軟件部分的程序。第六章,進(jìn)行系統(tǒng)測(cè)試檢驗(yàn),并做了誤差分析。第七章,對(duì)全文進(jìn)行了總結(jié)。2 設(shè)計(jì)內(nèi)容及具體要求2.1 設(shè)計(jì)的主要任務(wù)(1)通過(guò)查閱相關(guān)資料,深入了解脈沖寬度測(cè)量?jī)x的原理;(2)復(fù)習(xí)“MCS-51單片機(jī)原理及C語(yǔ)言程序設(shè)計(jì)”;(3)掌握其接口擴(kuò)展包括:顯示、鍵盤(pán)等;(4)設(shè)計(jì)基于單片機(jī)的程控脈沖寬度測(cè)量?jī)x的原理圖,構(gòu)建硬件平臺(tái);(5)采用C語(yǔ)言編寫(xiě)應(yīng)用程序并調(diào)試通過(guò);(6)制作出樣機(jī)并測(cè)試達(dá)到功能和技術(shù)指標(biāo)要求;(7)寫(xiě)出畢業(yè)設(shè)計(jì)論文。2.2 設(shè)計(jì)的具體要求(1)原始數(shù)據(jù)1被測(cè)信號(hào)為數(shù)字信號(hào);2測(cè)量范圍:100微秒-100

14、毫秒;3數(shù)碼管顯示動(dòng)態(tài)顯示。(2)技術(shù)要求:1用4位數(shù)碼管顯示測(cè)量值。用發(fā)光二極管分別指示所測(cè)元件的類(lèi)別和單位。2測(cè)量精度5%。3電感測(cè)量試用瞬態(tài)響應(yīng)法測(cè)量。(3)工作要求:1組建智能脈沖寬度測(cè)量?jī)x的總體結(jié)構(gòu)框圖;2根據(jù)設(shè)計(jì)詳細(xì)的原理圖,選取只要元器件,通過(guò)理論分析和計(jì)算選擇電路參數(shù);3根據(jù)操作功能要求,確定操作按鍵的功能;4按設(shè)計(jì)要求確定顯示方式及信息量;5采用C語(yǔ)言編寫(xiě)應(yīng)用程序并調(diào)試通過(guò);6對(duì)系統(tǒng)進(jìn)行測(cè)試和結(jié)果分析;3 設(shè)計(jì)方案及總框架3.1 設(shè)計(jì)不同方案對(duì)比3.1.1 程控脈沖測(cè)量1.實(shí)驗(yàn)脈沖由555定時(shí)器產(chǎn)生,只要改變外接電阻電容就能獲得不同寬度的脈沖,供測(cè)量使用。 2.采用MCS-5

15、2單片機(jī)和外設(shè)電路測(cè)量脈沖寬度。MCS-51子系列單片機(jī)有3個(gè)定時(shí)器(計(jì)數(shù)器),當(dāng)他們工作于定時(shí)器方式時(shí),計(jì)數(shù)的輸入為內(nèi)部的時(shí)鐘信號(hào),頻率為固定的11.0592Hz。只要令GATE=1,TR0=1,TR1=1,將輸入脈沖接到“INT1(非)”口,即可測(cè)量輸入脈沖寬度。 3.采用動(dòng)態(tài)數(shù)碼管顯示測(cè)量結(jié)果,兩片74LS573和位碼驅(qū)動(dòng)鎖存器作為驅(qū)動(dòng)電路。 4.為了使測(cè)量范圍更大,在程序中進(jìn)行單位轉(zhuǎn)換,使用發(fā)光二極管指示單位。3.1.2 等精度脈沖測(cè)量對(duì)于脈沖寬度的測(cè)量,我們可以運(yùn)用計(jì)數(shù)法的思想,即在一個(gè)脈沖的高電平期間填入給定的基準(zhǔn)脈沖,通過(guò)填充的數(shù)量來(lái)計(jì)算需測(cè)量的脈沖寬度。為了提高其精度,減小誤差

16、,可以采用頻率較高的基準(zhǔn)脈沖。根據(jù)題目要求,可將設(shè)計(jì)分為四部分:一為硬件方面的設(shè)計(jì),由于同一類(lèi)型的原理圖已給出,我們只需按照電路圖根據(jù)實(shí)際需要焊接好即可,并根據(jù)電路圖繪制相應(yīng)的PCB板圖。二為主程序的設(shè)計(jì),通過(guò)C52的有關(guān)功能包括計(jì)數(shù)/定時(shí)、中斷等編寫(xiě)計(jì)數(shù)法的主程序。三為MFC-G12864點(diǎn)陣液晶屏輸出的設(shè)計(jì),通過(guò)編程對(duì)其五個(gè)控制位進(jìn)行操作,而有關(guān)數(shù)字文字以及符號(hào)的字??赏ㄟ^(guò)字模生成軟件得到。四為五個(gè)功能按鍵的設(shè)計(jì),其主要是通過(guò)與單片機(jī)的五個(gè)端口進(jìn)行操作,其中每個(gè)按鍵可看做是對(duì)相應(yīng)的子函數(shù)的調(diào)用。根據(jù)總體設(shè)計(jì)要求,系統(tǒng)總框圖如圖31所示圖31 等精度設(shè)計(jì)的系統(tǒng)總框圖3.1.3 確定方案總框架

17、圖由以上兩種方案都可以測(cè)量脈沖寬度,等精度測(cè)量方法要比程控式的精度更高,但程控式是用數(shù)碼管來(lái)顯示的,受自然環(huán)境的影響小,而等精度是用的液晶顯示屏受環(huán)境影響大,比如光線,由于實(shí)驗(yàn)要求我選擇了程控脈沖測(cè)量法,下面具體論述這種方法的可行性。圖32為設(shè)計(jì)硬件的總體連接圖。圖32程控式測(cè)量總體框圖3.1.4 各部分框圖簡(jiǎn)介(1).按鍵控制:這個(gè)設(shè)計(jì)共有五個(gè)發(fā)光二極管和三個(gè)按鍵,作用如下:發(fā)光二極管1::顯示脈沖寬度時(shí)間的單位。(燈亮為ms,燈滅為s) 發(fā)光二極管2:顯示555定時(shí)器外圍電阻的單位。(燈亮為k,燈滅為M)發(fā)光二極管3:顯示555定時(shí)器外圍電容的單位。(燈亮為pf,燈滅為uf)發(fā)光二極管4:

18、顯示555定時(shí)器外圍有無(wú)電容。(燈亮為無(wú),燈滅為有)發(fā)光二極管5:顯示555定時(shí)器外圍有無(wú)電阻。(燈亮為無(wú),燈滅為有)按鍵1:控制脈沖寬度時(shí)間刷新。按鍵2:控制555定時(shí)器外圍電阻刷新。按鍵3:控制555定時(shí)器外圍電容刷新。圖 33 555信號(hào)發(fā)生器(2)信號(hào)源發(fā)生電路:信號(hào)源由555定時(shí)器構(gòu)成脈沖發(fā)生器(如圖3-3)。在測(cè)量的時(shí)候,會(huì)在R2和C1的兩端并聯(lián)電阻或者電容,本實(shí)驗(yàn)將會(huì)測(cè)量脈沖的高電平的寬度,R2并聯(lián)的電阻值,以及C1并聯(lián)的電容值。由555脈沖發(fā)生器的基本原理可得以下結(jié)論:設(shè):高電平的脈寬時(shí)間為T(mén)H,低電平的脈寬時(shí)間為T(mén)L.則R2=Tl*R1/(Th-Tl) (31)C1=(Th-

19、Tl)/(ln2*R1) (32)根據(jù)這個(gè)公式,通過(guò)單片機(jī)測(cè)出高電平,低電平的寬度,我們就可以計(jì)算出R2,C1的值。并且可以得到外圍點(diǎn)電路的R,C的值。(3).晶振電路:晶振是為電路提供頻率基準(zhǔn)的元器件,通常分成有源晶振和無(wú)源晶振兩個(gè)大類(lèi),有源晶振不需要芯片的內(nèi)部振蕩器,可以提供高精度的頻率基準(zhǔn),信號(hào)質(zhì)量也較無(wú)源晶振要好。本實(shí)驗(yàn)用f=11.0592MHz的晶振電路。晶振和C4、C5組成振蕩器,使單片機(jī)內(nèi)部產(chǎn)生周期為1us的脈沖信號(hào)。圖34 晶振電路(4).驅(qū)動(dòng)及LED顯示電路本實(shí)驗(yàn)用了兩片74LS573,一片用于輸出段碼,一片用于輸出位碼。一片2803,用于LED數(shù)碼管驅(qū)動(dòng)。四個(gè)LED數(shù)碼管。

20、采用共陰極接法,用掃描的方式顯示,每一個(gè)時(shí)刻只選通一個(gè)數(shù)碼管。用動(dòng)態(tài)顯示的方式來(lái)顯示555定時(shí)器外圍總電阻值,總電容值以及脈沖高電平時(shí)間值。(5).單片機(jī)采用89C52單片機(jī),共用到了三個(gè)定時(shí)器中斷。1.LED顯示:定時(shí)器中斷0,每2500us刷新一次,動(dòng)態(tài)顯示形式。2.脈寬高電平測(cè)量:定時(shí)器中斷1,由信號(hào)的上升沿觸發(fā),開(kāi)始計(jì)數(shù),記錄的是信號(hào)的高電平的脈寬時(shí)間。3.周期測(cè)量:定時(shí)器中斷2,下降沿觸發(fā),采用捕捉模式,手動(dòng)清零。定時(shí)器自動(dòng)將周期時(shí)間存入固定的寄存器中。從而得到低電平的脈寬時(shí)間。這里簡(jiǎn)單介紹一下這部分硬件,在下一章詳細(xì)的分析。3.1.5 原理圖通過(guò)Protel99繪圖及PCB制版,使

21、電路系統(tǒng)完整。根據(jù)我們以前所掌握的電路設(shè)計(jì)所用的軟件來(lái)講,能進(jìn)行電路圖的設(shè)計(jì)以及針對(duì)我們?cè)O(shè)計(jì)要求,需做成PCB板,最終要根據(jù)PCB板進(jìn)行實(shí)物的焊接和調(diào)試,因此,選取用protel99軟件進(jìn)行電路的設(shè)計(jì),進(jìn)而對(duì)電路各個(gè)元件進(jìn)行封裝,完成對(duì)PCB電路的生成,最終制成PCB板。圖35、圖36分別為整體電路原理圖和PCB電路圖。圖35 電路原理圖3.1.6 PCB板圖圖36 PCB板圖PCB板是兩層板,用protel99軟件生成的。4 硬件部分原理及設(shè)計(jì)4.1 單片機(jī)部分4.1.1 功能特性描述AT89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atme

22、l公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89c52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89c52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門(mén)狗定時(shí)器,兩個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)

23、數(shù)器、串口、中斷繼續(xù)工作17。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。4.1.2 引腳功能89C52單片機(jī)有44個(gè)引腳PLCC和TQFP方形封裝形式,40個(gè)引腳的雙列直插式封裝形式,最常用的40個(gè)引腳封裝形式及其配置如圖4.1所示,各個(gè)引腳功能說(shuō)明如圖41: 圖4189C52單片機(jī)的引腳VCC:電源,接+5VGND:接地P0口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有

24、內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P1 輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P1 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX)17,具體如表41所示。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。表41 89S52單片機(jī)P1口第

25、二功能引腳號(hào)第二功能P1.0T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出P1.1T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P2 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR)時(shí),P2 口送出高八位地址。在

26、這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P3 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如表42所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。表42 89S52單片機(jī)P3口第二功能引

27、腳號(hào)第二功能P3.0RXD(串行輸入線)P3.1TXD(串行輸出線)P3.2(外部中斷0輸入線)P3.3 (外部中斷0輸入線)P3.4T0(定時(shí)器0外部計(jì)數(shù)脈沖輸入)P3.5T1(定時(shí)器1外部計(jì)數(shù)脈沖輸入)P3.6(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出)P3.7(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出)RST:復(fù)位輸入。晶振工作時(shí),RST腳將持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T(mén)狗計(jì)時(shí)完成后,RST 腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地

28、址的輸出脈沖。在flash編程時(shí),此引腳()也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可以用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置 “1”,ALE操作將無(wú)效。這一位置 “1”,ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。:外部程序存儲(chǔ)器選通信號(hào)()是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩

29、次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將不被激活。/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在flash編程期間,也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。4.1.3 AT89C52的存儲(chǔ)器結(jié)構(gòu)AT89S52器件有單獨(dú)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器都可以64KB尋址。程序存儲(chǔ)器:如果引腳接地,程序讀取只從外部存儲(chǔ)器開(kāi)始。對(duì)于89S52,如果接VCC,讀寫(xiě)程序先從內(nèi)部存儲(chǔ)器(地址為0000H1FFFH)開(kāi)

30、始,接著從外部尋址,尋址地址為:2000HFFFFH。數(shù)據(jù)存儲(chǔ)器:AT89S52 有256 字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高128 字節(jié)與特殊功能寄存器重疊。也就是說(shuō)高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開(kāi)的。當(dāng)一條指令訪問(wèn)高于7FH 的地址時(shí),尋址方式?jīng)Q定CPU 訪問(wèn)高128 字節(jié)RAM 還是特殊功能寄存器空間。直接尋址方式訪問(wèn)特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問(wèn)0A0H(P2口)存儲(chǔ)單元MOV 0A0H, #data 使用間接尋址方式訪問(wèn)高128 字節(jié)RAM。例如,下面的間接尋址方式中,R0 內(nèi)容為0A0H,訪問(wèn)的是地址0A0H的寄存器,而不是P2口(它的地址也是0

31、A0H)。MOV R0, #data堆棧操作也是間接尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆棧空間。4.1.4 定時(shí)器1MCS-51系列中51子系列有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器:定時(shí)/計(jì)數(shù)器T0和定時(shí)/計(jì)數(shù)器T1,52子系列有三個(gè),還有一個(gè)定時(shí)/計(jì)數(shù)器T2。2每個(gè)定時(shí)/計(jì)數(shù)器既可以對(duì)系統(tǒng)時(shí)鐘計(jì)數(shù)實(shí)現(xiàn)定時(shí),也可以對(duì)外部信號(hào)計(jì)數(shù)實(shí)現(xiàn)計(jì)數(shù)功能,通過(guò)編程設(shè)定來(lái)實(shí)現(xiàn)。3每個(gè)定時(shí)/計(jì)數(shù)器都有多種工作方式,其中T0有四種工作方式;T1有三種工作方式,T2有三種工作方式。通過(guò)編程設(shè)置其方式寄存器TMOD可設(shè)定定時(shí)器工作于某種方式,方式寄存器TMOD格式見(jiàn)表43。表43 定時(shí)/計(jì)數(shù)器的方式寄存器TM

32、ODGATEC/M1M2GATEC/M1M2門(mén) 控開(kāi)/關(guān)計(jì)數(shù)/定時(shí)方式選擇門(mén) 控開(kāi)/關(guān)計(jì)數(shù)/定時(shí)方式選擇T1 T0GATE:門(mén)控信號(hào)。GATE=0,TRx=1時(shí)即可啟動(dòng)定時(shí)器/計(jì)數(shù)器工作,是一種自啟動(dòng)的方式;GATE=1,TRx=1, =1時(shí)才可啟動(dòng)定時(shí)器/計(jì)數(shù)器工作。即是引腳加高電平啟動(dòng),是一種外啟動(dòng)方式。C/:定時(shí)或計(jì)數(shù)方式選擇位,當(dāng)C/=1時(shí)工作于計(jì)數(shù)方式;當(dāng)C/=0時(shí)工作于定時(shí)方式。M1、M0:為工作方式選擇位,定時(shí)器/計(jì)數(shù)器的四種工作方式由M1M0設(shè)定,設(shè)定情況見(jiàn)表44。表44 M1M0的設(shè)定M1M0工作方式方式說(shuō)明00013位定時(shí)/計(jì)數(shù)器01116位定時(shí)/計(jì)數(shù)器1028位自動(dòng)重置定

33、時(shí)/計(jì)數(shù)器113T0為兩個(gè)8位定時(shí)/計(jì)數(shù)器4每一個(gè)定時(shí)/計(jì)數(shù)器定時(shí)計(jì)數(shù)時(shí)間到時(shí)產(chǎn)生溢出,使控制寄存器TCON中相應(yīng)的溢出位置位,溢出可通過(guò)查詢(xún)或中斷方式處理,控制寄存器格式見(jiàn)表45。表45 定時(shí)/計(jì)數(shù)器的控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT0T1請(qǐng)求 有/無(wú)T1工作啟/停T0請(qǐng)求有/無(wú)T0工作啟/停INT1請(qǐng)求有/無(wú)INT1方式下沿/低電平INT0請(qǐng)求有/無(wú)INT0方式下沿/低電平其中:TF1:定時(shí)/計(jì)數(shù)器T1的溢出標(biāo)志位,當(dāng)定時(shí)/計(jì)數(shù)器T1計(jì)滿(mǎn)時(shí),由硬件使它置位,如中斷允許則觸發(fā)T1中斷。進(jìn)入中斷處理后由內(nèi)部硬件電路自動(dòng)清除。TR1:定時(shí)/計(jì)數(shù)器T1的啟動(dòng)位,可由

34、軟件置位或清零,當(dāng)TR1=1時(shí)啟動(dòng);TR1=0時(shí)停止。TF0:定時(shí)/計(jì)數(shù)器T0的溢出標(biāo)志位,當(dāng)定時(shí)/計(jì)數(shù)器T0計(jì)滿(mǎn)時(shí),由硬件使它置位,如中斷允許則觸發(fā)T0中斷。進(jìn)入中斷處理后由內(nèi)部硬件電路自動(dòng)清除。TR0:定時(shí)/計(jì)數(shù)器T0的啟動(dòng)位,可由軟件置位或清零,當(dāng)TR0=1時(shí)啟動(dòng);TR0=0時(shí)停止。4.1.5 單片機(jī)內(nèi)部的中斷AT89S52 有6個(gè)中斷源:兩個(gè)外部中斷( 和),三個(gè)定時(shí)中斷(定時(shí)器0、1、2)和一個(gè)串行中斷。每個(gè)中斷源都可以通過(guò)置位或清除特殊寄存器IE中的相關(guān)中斷允許控制位分別使得中斷源有效或無(wú)效10。IE還包括一個(gè)中斷允許總控制位EA,它能一次禁止所有中斷。如表4.6所示,IE.6位是

35、不可以用的。它們?yōu)锳T89系列新產(chǎn)品預(yù)留。定時(shí)器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進(jìn)入中斷服務(wù)后,這些標(biāo)志位都可以由硬件清0。實(shí)際上,中斷服務(wù)程序必須判定是否是TF2 或EXF2激活中斷,標(biāo)志位也必須由軟件清0。定時(shí)器0和定時(shí)器1標(biāo)志位TF0 和TF1在計(jì)數(shù)溢出的那個(gè)周期的S5P2被置位。它們的值一直到下一個(gè)周期被電路捕捉下來(lái)。然而,定時(shí)器2的標(biāo)志位TF2在計(jì)數(shù)溢出的那個(gè)周期的S2P2被置位,在同一個(gè)周期被電路捕捉下來(lái)。表46 中斷允許控制寄存器(IE)EA -ET2 ES ET1 EX1 ET0 EX0EA:中斷允許總控位。EA=0,屏蔽所有的中斷請(qǐng)求;EA=1,

36、開(kāi)放中斷。 ET2:定時(shí)器/計(jì)數(shù)器T2的溢出中斷允許位 ES:串行口中斷允許位。 ET1:定時(shí)器/計(jì)數(shù)器T1的溢出中斷允許位。 EX1:外部中斷 INT1的中斷允許位。 ET0:定時(shí)器/計(jì)數(shù)器T0的溢出中斷允許位。 EX0:外部中斷 INT0的中斷允許位。4.2 脈沖產(chǎn)生電路555定時(shí)器構(gòu)成的多諧振蕩器:555外接定時(shí)電阻R1、R2和電容C構(gòu)成的多諧振蕩器電路如圖4.2(a)所示,由圖可見(jiàn),它將高電平觸發(fā)端TH和低電平觸發(fā)端TR相連,且放電回路中串接了一個(gè)定時(shí)電阻R2集成555定時(shí)器有雙極性型和CMOS型兩種產(chǎn)品。一般雙極性型產(chǎn)品型號(hào)的最后三位數(shù)都是555,CMOS型產(chǎn)品型號(hào)的最后四位數(shù)都是7

37、555.它們的邏輯功能和外部引線排列完全相同。器件電源電壓推薦為4512V,最大輸出電流200mA以?xún)?nèi),并能與TTL、CMOS邏輯電平相兼容。其主要參數(shù)見(jiàn)表47。表47兩種555定時(shí)器的器件特性 (a)雙極性型5G555的主要性能參數(shù)參數(shù)名稱(chēng)符號(hào)單位參數(shù)電源電壓VCCV516電源電流ICCmA10閾值電壓VTHVVCC觸發(fā)電壓VTRVVCC輸出低電平VOLV1輸出高電平VOHV13.3最大輸出電流IOMAXmA200最高振蕩頻率fMAXKHz300時(shí)間誤差tnS5 (b) CMOS型7555的主要性能參數(shù)參數(shù)名稱(chēng)符號(hào)單位參數(shù)電源電壓VCCV318電源電流ICCA60閾值電壓VTHVVDD觸發(fā)電

38、壓VTRVVDD輸出低電平VV0.1輸出高電平VV14.8最大輸出電流IOMAXmA200最高振蕩頻率fMAXKHz500時(shí)間誤差tnS555定時(shí)器的內(nèi)部電路框圖及邏輯符號(hào)和管腳排列分別如圖42和圖43所示。圖4.2 555定時(shí)器邏輯符號(hào)和和引腳圖4.3 555定時(shí)器內(nèi)部結(jié)構(gòu)引腳功能:Vi1(TH):高電平觸發(fā)端,簡(jiǎn)稱(chēng)高觸發(fā)端,又稱(chēng)閾值端,標(biāo)志為T(mén)H。Vi2():低電平觸發(fā)端,簡(jiǎn)稱(chēng)低觸發(fā)端,標(biāo)志為。VCO:控制電壓端。VO:輸出端。Dis:放電端。:復(fù)位端。555定時(shí)器原理:555定時(shí)器內(nèi)含一個(gè)由三個(gè)阻值相同的電阻R組成的分壓網(wǎng)絡(luò),產(chǎn)生和兩個(gè)基準(zhǔn)電壓;兩個(gè)電壓比較器C1、C2;一個(gè)由與非門(mén)G1

39、、G2組成的基本RS觸發(fā)器(低電平觸發(fā));放電三極管T和輸出反相緩沖器G3。是復(fù)位端,低電平有效。復(fù)位后, 基本RS觸發(fā)器的端為1(高電平),經(jīng)反相緩沖器后,輸出為0(低電平)。分析圖42的電路:在555定時(shí)器的VCC端和地之間加上電壓,并讓VCO懸空,則比較器C1的同相輸入端接參考電壓,比較器C2反相輸入端接參考電壓,為了學(xué)習(xí)方便,我們規(guī)定:當(dāng)TH端的電壓時(shí),寫(xiě)為VTH=1,當(dāng)TH端的電壓時(shí),寫(xiě)為VTR=1,當(dāng)端的電壓時(shí),寫(xiě)為VTR=0。低觸發(fā):當(dāng)輸入電壓Vi2且Vi1且Vi1,則VTH=1,比較器C1輸出為低電平,無(wú)論C2輸出何種電平,基本RS觸發(fā)器因=0,使Q1,經(jīng)輸出反相緩沖器后,V0

40、0;T導(dǎo)通。這時(shí)稱(chēng)555定時(shí)器“高觸發(fā)”。555定時(shí)器的“低觸發(fā)”、“高觸發(fā)”和“保持”三種基本狀態(tài)和進(jìn)入狀態(tài)的條件(即VTH、VTR的“0”、“1”)必須牢牢掌握。表48 555定時(shí)器控制功能表輸 入輸 出THVODis VCC VCC VCCLHHHLH不變L導(dǎo)通截止不變導(dǎo)通VCO為控制電壓端,在VCO端加入電壓,可改變兩比較器C1、C2的參考電壓。正常工作時(shí),要在VCO和地之間接001F(電容量標(biāo)記為103)電容。放電管Tl的輸出端Dis為集電極開(kāi)路輸出。根據(jù)555定時(shí)器的控制功能,可以制成各種不同的脈沖信號(hào)產(chǎn)生與處理電路電路,例如,史密特觸發(fā)器、單穩(wěn)態(tài)觸發(fā)器、自激多諧振蕩器等。圖44所

41、示為自激多諧振蕩器電路和波形圖。自激多諧振蕩器用于產(chǎn)生連續(xù)的脈沖信號(hào)。電路采用電阻、電容組成RC定時(shí)電路,用于設(shè)定脈沖的周期和寬度。調(diào)節(jié)RW或電容C,可得到不同的時(shí)間常數(shù);還可產(chǎn)生周期和脈寬可變的方波輸出。脈沖寬度計(jì)算公式:Tw0.7 (R1+RW+R2) C圖44自激多諧振蕩器電路和波形圖振蕩周期計(jì)算公式:T0.7 (R1+RW+2R2) C電路的工作原理可對(duì)照?qǐng)D所示工作波形圖來(lái)分析。當(dāng)接通電源VCC時(shí),如電容C上的初始電壓為0,則u0處于高電平,放電管T截止,電源通過(guò)R1、R2向C充電,經(jīng)過(guò)t1時(shí)間后,uc達(dá)到高觸發(fā)電平(2Vcc/3),U0由1變?yōu)?,這時(shí)放電管T導(dǎo)通,電容C通過(guò)電阻R2

42、放電,到t=t2時(shí),u2下降到低觸發(fā)電平(Vcc/3),u0又翻回到1狀態(tài),隨即T又截止,電容C又開(kāi)始充電。如此周而復(fù)始,重復(fù)上述的過(guò)程。就可以在輸出端(3端)得到矩形波電壓?,F(xiàn)在計(jì)算此電路的振蕩周期。為了簡(jiǎn)單起見(jiàn),設(shè)組件內(nèi)運(yùn)放A、A的輸入電阻為無(wú)窮大,并近似地認(rèn)為放電管T截止時(shí),DIS端對(duì)地的等效電阻為無(wú)窮大,而放電管T導(dǎo)通時(shí),管壓降為零。現(xiàn)以t=t2為起始點(diǎn),可得充電時(shí)間T為:若以t3為起始點(diǎn),可得電容C的放電時(shí)間為:由此可得方波的周期為T(mén)=T1+T2,頻率為:振蕩頻率主要取決于時(shí)間常數(shù)R和C,改變R和C參數(shù)可改變振蕩頻率,幅度則由電源電壓VCC來(lái)決定。但是輸出的矩形波是不對(duì)稱(chēng)的,占空比為

43、:如果R1R2,則占空比接近于1。由此可知,若將被測(cè)電阻Rx或電容Cx接到555定時(shí)器的合適位置,則只需測(cè)出555定時(shí)器所產(chǎn)生的信號(hào)頻率,即可根據(jù)以上分析計(jì)算得到Rx、Cx的數(shù)值。4.3 數(shù)碼管顯示電路數(shù)碼管顯示器,是用來(lái)顯示測(cè)量脈沖的結(jié)果的,分動(dòng)態(tài)顯示和靜態(tài)顯示。但靜態(tài)顯示功耗很大,本實(shí)驗(yàn)不予采用,而選用數(shù)碼管靜態(tài)顯示,可大幅降低硬件成本和功耗發(fā)熱,因?yàn)槟硶r(shí)刻只有一個(gè)數(shù)碼管處于工作狀態(tài),也就是分時(shí)顯示。我們使用兩片74LS373作為7段碼和位碼驅(qū)動(dòng)鎖存器,8個(gè)數(shù)碼管是共陰極數(shù)碼管,一片ULN2803作為位增強(qiáng)驅(qū)動(dòng)器。單片機(jī)的定時(shí)器/計(jì)數(shù)器1來(lái)定時(shí),用來(lái)控制每個(gè)數(shù)碼管顯示的時(shí)間(本題中定時(shí)時(shí)間

44、常數(shù)為2.5mS),則利用人眼的視覺(jué)暫留作用即可實(shí)現(xiàn)動(dòng)數(shù)據(jù)的動(dòng)態(tài)顯示。電路如圖45:圖45 數(shù)碼管顯示電路5 軟件部分設(shè)計(jì)5.1 Keil C軟件的使用介紹Keil C51集成開(kāi)發(fā)環(huán)境是Keil Software,Inc/Keil Elektronik GmbH開(kāi)發(fā)的基于80C51內(nèi)核的微處理器軟件開(kāi)發(fā)平臺(tái),內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開(kāi)發(fā)工具,可以完成從工程建立到管理、編譯、鏈接、目標(biāo)代碼的生成、軟件仿真、硬件仿真等完整的開(kāi)發(fā)流程尤其是C編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高的水平,而且可以附加靈活的控制選項(xiàng),在開(kāi)發(fā)大型項(xiàng)目時(shí)非常理想。5.2 Keil C軟件的基本操作步驟第一步: 啟

45、動(dòng)Keil集成開(kāi)發(fā)軟件。第二步: 新建文本編輯窗。點(diǎn)擊工具欄上的新建文件快捷按鍵,即可在項(xiàng)目窗口的右側(cè)打開(kāi)一個(gè)新的文本編輯窗,第三步:輸入源程序。在新的文本編輯窗中輸入源程序,可以輸入C語(yǔ)言程序,也可以輸入?yún)R編語(yǔ)言程序。在本設(shè)計(jì)輸入C語(yǔ)言程序。第四步:保存源程序。保存文件時(shí)必須加上文件的擴(kuò)展名,如果你使用匯編語(yǔ)言編程,那么保存時(shí)文件的擴(kuò)展名為“.ASM”,如果是C語(yǔ)言程序,文件的擴(kuò)展名使用“*.C ”。第五步:新建立Keil工程。點(diǎn)擊 工程 新建工程 命令,將出現(xiàn)保存對(duì)話框。在保存工程對(duì)話框中輸入你的工程的文件名,Keil工程默認(rèn)擴(kuò)展名為.uv2,工程名稱(chēng)不用輸入擴(kuò)展名,一般情況下使工程文件名

46、稱(chēng)和源文件名稱(chēng)相同即可,輸入名稱(chēng)后保存,將出現(xiàn)選擇設(shè)備對(duì)話框,在對(duì)話框中選擇CPU的型號(hào)。第六步:選擇CPU型號(hào)。為工程選擇CPU型號(hào),本新建工程選擇了ATMEL公司的AT89C52單片機(jī)。第七步:加入源程序到工程中。在選擇好CPU型號(hào)后,點(diǎn)擊確定按鈕返回主界面,此時(shí)可見(jiàn)到工程管理窗中出現(xiàn)“Target 1”,點(diǎn)擊“Target 1”前面的“”號(hào)展開(kāi)下一層的“Source Group 1”文件夾,此時(shí)的新工程是空的,“Source Group 1”文件夾中什么文件都沒(méi)有,必須把剛才輸入的源程序加入到工程當(dāng)中。右擊工程管理窗中的“Source Group 1”,出現(xiàn)下拉菜單,點(diǎn)擊“增加文件到組S

47、ource Group 1”命令,將出現(xiàn)添加文件對(duì)話框。在添加文件對(duì)話框中,找到要添加到工程中的源程序文件。注意:在對(duì)話框中的文件類(lèi)型默認(rèn)為“C 源文件 (*.c)”,如果你要添加到工程中的是匯編語(yǔ)言程序,則在文件類(lèi)型中必須選中“Asm 源文件 (*.a*; *.src) ”, 以*.asm為擴(kuò)展名的匯編源程序才會(huì)出現(xiàn)在文件列表框中。第八步:工程目標(biāo)Target 1屬性設(shè)置。在工程項(xiàng)目管理窗中的Target 1文件夾上右擊,出現(xiàn)下拉菜單,點(diǎn)擊“目標(biāo)Target 1屬性”命令,就進(jìn)入目標(biāo)屬性設(shè)置界面。第九步:源程序的編譯與目標(biāo)文件的獲得。至此,我們已經(jīng)完成了從源程序輸入、工程建立、工程詳細(xì)設(shè)置的

48、工作,接下來(lái)我們將完成最后的步驟,此時(shí)我們可以在文本編輯窗中繼續(xù)輸入或修改我們的源程序,使程序?qū)崿F(xiàn)我們的目標(biāo),在檢查程序無(wú)誤后保存工程。接著點(diǎn)擊“構(gòu)造目標(biāo)”快捷按鈕,進(jìn)行源程序的編譯連接,源程序編譯相關(guān)的信息會(huì)出現(xiàn)在輸出窗口中的“構(gòu)造”頁(yè)中。編譯結(jié)果為0錯(cuò)誤,0警告,同時(shí)產(chǎn)生了目標(biāo)文件lich1.hex。如果源程序中有錯(cuò)誤,則不能通過(guò)編譯,錯(cuò)誤會(huì)在輸出窗口中報(bào)告出來(lái),雙擊該錯(cuò)誤,就可以定位到源程序的出錯(cuò)行,我們可以對(duì)源程序進(jìn)行反復(fù)修改,再編譯,直到?jīng)]有錯(cuò)誤為止。注意:每次修改源程序后一定要保存。編譯通過(guò)后,我們打開(kāi)工程文件夾,可以看到文件夾中有了“l(fā)ich1.hex”,這就是我們需要的最終目標(biāo)

49、文件,用編程器(也稱(chēng)燒錄器)把該文件寫(xiě)入單片機(jī),單片機(jī)就可以實(shí)現(xiàn)我們程序的功能了,趕快把目標(biāo)文件寫(xiě)入單片機(jī),在此,我們就可以看到良好的設(shè)計(jì)效果。5.3 主程序設(shè)計(jì)5.3.1 主程序流程圖程序初始化結(jié)束進(jìn)入外部中斷1停止計(jì)數(shù)啟動(dòng)定時(shí)器1T1是否溢出?否是計(jì)算技術(shù)次數(shù)以及脈寬點(diǎn)亮單位指示燈代碼轉(zhuǎn)換動(dòng)態(tài)顯示脈寬溢出次數(shù)n=1圖51 程序主體框架 程序初始化后,當(dāng)外部信號(hào)為高電平時(shí)輸入引腳T1,定時(shí)器開(kāi)始工作運(yùn)行程序,當(dāng)?shù)碗娖降絹?lái)進(jìn)入外部中斷1,開(kāi)始計(jì)數(shù),當(dāng)T1不溢出,再次進(jìn)入中段1,停止計(jì)數(shù),運(yùn)行程序計(jì)算脈沖寬度,通過(guò)譯碼在數(shù)碼管上顯示脈寬。P1口置1,TMOD=0x91,TH=TL=1,ET1=1

50、(T1溢出),EX1=1(INT1),IT1=1(下降沿)TR1=1,Delay()掩飾0.4s第一次進(jìn)入外部中斷1,空操作,T1清0T1溢出?再次進(jìn)入外部中斷2,TR1=EX=1。關(guān)閉計(jì)數(shù)和外部中斷計(jì)算計(jì)數(shù)次數(shù)和脈寬,根據(jù)脈寬的范圍點(diǎn)亮相應(yīng)單位指示燈,進(jìn)入代碼轉(zhuǎn)換動(dòng)態(tài)顯示脈寬,利用定時(shí)器T0的溢出中斷來(lái)定時(shí)刷新(2.5ms)T1的溢出中斷3設(shè)置溢出次數(shù)n=1是否圖52 程序詳細(xì)流程5.3.2 程序源代碼#include #include #include #define SEGMENT XBYTE0x7fff /段碼寄存器地址#define BIT_LED XBYTE0xbfff /位碼寄存器地#define fosc 11.0592/晶振頻率#define time02500/定時(shí)2500uSsbit P10=P1

溫馨提示

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