畢業(yè)設(shè)計---溫度計led顯示儀_第1頁
已閱讀1頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  一 引言 …………………………………………………………………………(1)</p><p>  二 智能溫度計的基本組成方框……………………………………………… (1)</p><p>  三 系統(tǒng)硬件組成…………………… …………………………………………(2)</p>

2、<p>  溫度傳感器AD590及其應(yīng)用 ………………………………………(2)</p><p>  放大器…………………………………………………………………(3)</p><p>  A/D轉(zhuǎn)換器MC1443 …………………………………………………(3)</p><p>  LED顯示器……………………………………………………………(4)</p&

3、gt;<p>  系統(tǒng)核心單片機部分閃電存儲器型器件AT89C51…………………(5)</p><p>  其它……………………………………………………………………(10)</p><p>  四 智能溫度計的流程圖 ………………………………………………………(10)</p><p>  五 系統(tǒng)主程序 ………………………………………………………………

4、…(12)</p><p>  六 總結(jié)和體會……………………………………………………………………(22)</p><p>  七 參考文獻 ……………………………………………………………………(23)</p><p><b>  智能溫度計設(shè)計</b></p><p>  [摘要] 本論文敘述了應(yīng)用單片機AT89C5

5、1構(gòu)成的智能溫度計主要的功能、硬件的組成和軟件的設(shè)計。該系統(tǒng)的功能是通過溫度傳感器對溫度進行采集,然后通過A/D轉(zhuǎn)換器MC14433進行模數(shù)轉(zhuǎn)換,傳給單片機進行處理,從而實現(xiàn)溫度的實時顯示。整個系統(tǒng)結(jié)構(gòu)緊湊、簡單可靠、操作靈活、功能強、性能價格比高,較好地滿足了現(xiàn)代農(nóng)業(yè)生產(chǎn)和科研的需要。</p><p>  [關(guān)鍵詞] 單片機 溫度傳感器 A/D轉(zhuǎn)換器 實時顯示</p><p&g

6、t;<b>  一、引言</b></p><p>  單片機自問世以來,性能不斷提高和完善,其資源又能滿足很多應(yīng)用場合的需要,加之單片機具有集成度高、功能強、速度快、體積小、功耗低、使用方便、價格低廉等特點,因此,在工業(yè)控制、智能儀器儀表、數(shù)據(jù)采集和處理、通信系統(tǒng)、高級計算器、家用電器等領(lǐng)域的應(yīng)用日益廣泛,并且正在逐步取代現(xiàn)有的多片微機應(yīng)用系統(tǒng)。單片機的潛力越來越被人們所重視。特別是當(dāng)前用C

7、MOS工藝制成的各種單片機,由于功耗低,使用的溫度范圍大,抗干擾能力強、能滿足一些特殊要求的應(yīng)用場合,更加擴大了單片機的應(yīng)用范圍,也進一步促使單片機性能的發(fā)展。而現(xiàn)在單片機在農(nóng)業(yè)上也有了很多的應(yīng)用。</p><p>  溫度是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護、化工、石油等領(lǐng)域最常遇到的一個物理量。測量溫度的基本方法是使用溫度計直接讀取溫度。最常見到的測量溫度的工具是各種各樣的溫度計,例如,水銀玻璃溫度計,酒精溫度計

8、,熱電偶或熱電阻溫度計等。它們常常以刻度的形式表示溫度的高低,人們必須通過讀取刻度值的多少來測量溫度。利用單片機和溫度傳感器構(gòu)成的電子式智能溫度計就可以直接測量溫度,得到溫度的數(shù)字值,既簡單方便,又直觀準確。</p><p>  二、智能溫度計的基本組成方框</p><p>  圖1—1是智能溫度計的基本組成方框。主要由溫度傳感器,放大器,A/D轉(zhuǎn)換器,單片機控制,LED顯示器,電源等組成

9、。溫度傳感器是把溫度轉(zhuǎn)換成電壓(或電流)的器件,溫度傳感器輸出電壓的大小隨溫度的高低變化而變化,電壓值的變化范圍從幾個微伏到幾個毫伏。不同的溫度傳感器,輸出電壓的范圍也差別很大。放大器的主要功能是把微弱的溫度電壓信號放大到(0—2)伏或(0—5)伏的范圍內(nèi),以便進行A/D轉(zhuǎn)換。A/D轉(zhuǎn)換器把放大后的模擬溫度電壓信號轉(zhuǎn)換成對應(yīng)的數(shù)字溫度電壓信號。單片機8051是智能溫度計的控制核心,一方面控制A/D轉(zhuǎn)換器實現(xiàn)模擬信號到數(shù)字信號的轉(zhuǎn)換,另一

10、方面將采集到的數(shù)字溫度電壓值,經(jīng)過計算處理,得到相應(yīng)的溫度值,送到LED顯示器以數(shù)字形式顯示測量的溫度。LED顯示器用于顯示測量溫度的結(jié)果。</p><p>  圖1—1 智能溫度計方框圖</p><p><b>  三、系統(tǒng)硬件組成</b></p><p>  圖1—2 測量攝氏(℃)溫度的電路原理。</p><p&g

11、t;  假定 :溫度測量范圍:0——150℃。攝氏(℃)</p><p>  溫度數(shù)字顯示: 000.0 或112.8等,十進制小數(shù)點后一位。</p><p>  (一)、溫度傳感器AD590及其應(yīng)用</p><p>  AD590是美國模擬器件公司生產(chǎn)的單片集成兩端感溫電流源。它的主要特性如下:</p><p>  (1) 流過器件電流的微

12、安數(shù)等于器件所處環(huán)境溫度的熱力學(xué)溫度(開爾文)度數(shù)。即</p><p>  IT/T=1µA/K</p><p>  式中的IT為流過器件(AD590)的電流,單位µA,T為溫度,單位為K。</p><p> ?。?)AD590的測溫范圍為-55 ℃ -+150 ℃。</p><p>  (3) AD590的電源電壓范圍為

13、4V~30V。電源電壓從4V到6V變化,電流IT變化1µA,相當(dāng)于溫度變化1K。AD590可以承受44V正相電壓和20 V反相電壓。因而器件反接也不會損壞器件。</p><p>  (4) 輸出電阻為710MΩ。</p><p><b>  (5) 精度高。</b></p><p>  AD590在出廠以前已經(jīng)校對,精度高。因為流過A

14、D590的電流于熱力學(xué)溫度成正比,如兩個電阻之和為1K,溫度變化1°C,那么輸出電壓Vo變化為1mV/K。但由于AD590</p><p>  的增益有偏差,電阻也有誤差,調(diào)整的方法與對P-N結(jié)溫度傳感器調(diào)整的方法相同。即,把AD590放于冰水混合物中,調(diào)整電位器,使Vo=273.2mV。或在室溫下,例如25℃條件下調(diào)整電位器使Vo=273.2+25=298.2(mV)。但這樣調(diào)整只可以保證0 ℃或25

15、 ℃附近有較高精度。</p><p>  圖中用電位器R1調(diào)零點,用R2調(diào)增益,方法如下:在0 oC時調(diào)整W1使輸出Vo=273.2mV。然后在100 ℃時調(diào)W2使Vo=373.2mV。然后反復(fù)多次,直至0 ℃時Vo=273.2mV,100 ℃時Vo=373.2mV為止。最后在室溫下進行校驗。例如,若室溫為25℃,那么Vo應(yīng)為298.2mV。0 ℃和100 ℃環(huán)境的產(chǎn)生方法:冰水混合物是0 ℃的環(huán)境,沸水為100

16、 ℃環(huán)境。</p><p><b>  (二)、 放大器</b></p><p>  放大器由運算放大器A組成,常用的芯片有:LF335,LF336,CA3140等,主要功能是把模擬的溫度電壓信號放大到A/D轉(zhuǎn)換器要求的輸入電壓范圍。A/D轉(zhuǎn)換器MC14433要求,模擬輸入電壓的范圍為:0——2V。W3的作用是抵消溫度傳感器AD590在攝氏0℃時產(chǎn)生的溫度電壓Vo=2

17、73.2mV,使放大器A的輸出電壓為0.0V。放大器A的放大倍數(shù)選擇為10,保證溫度在0—150℃范圍內(nèi)變化,而放大器的輸出電壓在0—1。50V的范圍內(nèi)。電位器W2用于調(diào)整放大器的放大倍數(shù)。</p><p> ?。ㄈ?、 A/D轉(zhuǎn)換器MC14433</p><p>  A/D轉(zhuǎn)換器由雙積分型3又1/2位A/D轉(zhuǎn)換器MC14433來完成。因為溫度的變化具有慣性,變化緩慢,MC14433的轉(zhuǎn)換

18、速度完全可以滿足溫度測量的要求。</p><p>  MC14433的方框圖和引腳如圖3所示,它是單片CMOSA/D轉(zhuǎn)換器,它采用雙積分原理實現(xiàn)A/D轉(zhuǎn)換。因為轉(zhuǎn)換后的數(shù)字量有三位十進制數(shù),而最高位只能輸出0或1,故稱為3又1/2位A/D轉(zhuǎn)換器.該電路需要外接積分電阻R和電容C,外接失調(diào)補償電容C。該電路具有自動調(diào)零、自動極性轉(zhuǎn)換功能,它精度高、功耗低、使用方便并能與微機或其他數(shù)字電路兼容。它廣泛用于數(shù)字面板表、

19、數(shù)字萬用表、數(shù)字量具和遙控遙測系統(tǒng)。</p><p>  圖1—3 MC14433的方框圖和引腳</p><p><b>  引腳引線功能如下:</b></p><p>  G 被測電壓VX和參考電壓VR的模擬接地端</p><p>  VR 外接參考電壓端(+2V或+200Mv)</p><

20、p>  VX 被測電壓輸入端</p><p>  R1,R1/C1,C1 外接積分電阻R1和積分電容C1元件端。外接元件典型值:當(dāng)量程為2V時,C = 0.1μF,R = 470kΩ;當(dāng)量程為200mV時,C1 = 0.1μF, R1 = 27kΩ</p><p>  C01,C02 外接失調(diào)電容C0端。C0典型值為0.1μF</p><p>  D

21、U 數(shù)據(jù)顯示控制端。當(dāng)DU和EOC(引腳14)連接時,每次A/D轉(zhuǎn)換都輸出</p><p>  CLKI,CLKO 時鐘振蕩器外接電阻RC端, RC的典型值為470kΩ,時鐘頻率隨RC增加而下降</p><p>  VEE 模擬負輸入端。典型值為-5V</p><p>  VSS 數(shù)字地,除CLKO端外所有輸出端的低電平基準。當(dāng)VSS與VAG相連(即數(shù)字地和

22、模擬地相連)時,輸出電壓幅度為VAG~VDD(0V~+5V);當(dāng)VSS與VEE(-5V)相連,輸出電壓幅度為VEE~VDD(-5V~+10V)。實際應(yīng)用時一般是VSS與VAG相連</p><p>  EOC 轉(zhuǎn)換結(jié)束控制端(輸出)。每當(dāng)一個A/D轉(zhuǎn)換周期結(jié)束,EOC端輸出一個寬度為時鐘周期1/2寬度的正脈沖</p><p>  過量程標(biāo)志輸出端。平時為高電平。當(dāng)|VX|﹥VR時(被測電壓

23、輸入絕對值大于參考電壓),端輸出低電平</p><p>  DS1~DS4 多路選通脈沖輸出端,對應(yīng)DS1千位,對應(yīng)DS4個位。每個選通脈沖寬度為18個時鐘脈沖,兩個相鄰脈沖之間間隔為2個時鐘周期</p><p>  Q0~Q3 BCD碼數(shù)據(jù)輸出線。其中為Q0最低位,Q3為最高位。當(dāng)DS2 、DS3和 DS4選通期間,Q0~Q3除了表示千位的0或1外,還表示了轉(zhuǎn)換值的正負極性和欠量程還

24、是過量程</p><p>  VDD 正電源端。典型值為+5V</p><p>  MC14433的外部連接電路</p><p>  盡管MC14433外部連接元件很少,為使其工作于最佳狀態(tài),也必須注意外部電路的連接和外接元件的選擇,其實際連接電路如圖11—18所示。為了提高電源抗干擾的能力,正、負電源分別通過去耦電容0.047μF、0.02μF與VSS(VAG)

25、相連。</p><p>  MC14433和單片機8051采用查詢方式連接。MC14433的多路選通脈沖輸出端和BCD碼數(shù)據(jù)輸出端Q0--Q7和單片機的P0口連接。EOC端和8051的/INT0連接,單片機8051通過不斷查詢/INT0端的狀態(tài),了解MC14433的每次A/D轉(zhuǎn)換是否結(jié)束,在A/D轉(zhuǎn)換結(jié)束后,經(jīng)P0口讀取A/D轉(zhuǎn)換的結(jié)果,存入CPU內(nèi)部的輸入數(shù)據(jù)緩沖區(qū)。MC1403是高精度的基準源(2.5V),它

26、的輸出經(jīng)10K可調(diào)電位器,調(diào)整到2.0V提供MC14433的基準電壓。</p><p>  (四)、LED顯示器</p><p>  LED顯示器由4位共陰極LED顯示器組成,采用動態(tài)分時掃描方式。采用4位共陰極LED示器使為了保證溫度超過100℃時,測量結(jié)果仍能保持在小數(shù)點后一位顯示,例如:110.4℃,提高測量顯示精度。</p><p>  共陰極LED顯示器的

27、陽極和單片機CPU的P1口連接,顯示段碼由CPU通過P1口傳送到LED顯示器的陽極。位掃描碼由單片機8051的P2口低四位輸出,經(jīng)同相驅(qū)動器傳送到LED顯示器的陰極,選通LED顯示器的數(shù)位,P2.3,P2.2,P2.1,P2.0輸出電平為‘0111’時,選通左邊的第一位數(shù)字,P2.3,P2.2,P2.1,P2.0輸出電平為‘1011’時,選通左邊的第二位數(shù)字,P2.3,P2.2,P2.1,P2.0輸出電平為‘1101’時,選通左邊的第三

28、位數(shù)字,P2.3,P2.2,P2.1,P2.0輸出電平為‘1110’時,選通左邊的第四位數(shù)字。</p><p> ?。ㄎ澹?、系統(tǒng)核心單片機部分---閃電存儲器型器件AT89C51</p><p>  單片機AT89C51有內(nèi)部RAM,可以作為各種數(shù)據(jù)區(qū)使用,內(nèi)部閃電存儲器存放智能溫度計的控制程序。它的主要功能是控制MC14433,實現(xiàn)溫度的數(shù)字值采集,完成溫度的數(shù)字采集值到對應(yīng)數(shù)字溫度的轉(zhuǎn)

29、換計算,并把計算的數(shù)字溫度轉(zhuǎn)換相應(yīng)的顯示段碼,控制LED顯示器以動態(tài)掃描方式進行溫度顯示。</p><p>  AT89系列單片機是ATMEL公司生產(chǎn)的。這是當(dāng)前最新的一種電擦寫8位單片機,與MCS-51系列完全兼容,有超強的加密功能,可完全替代87C51/52和8751/52。它物美價廉,深受用戶歡迎。</p><p>  與87C51相比,AT89系列的優(yōu)越性在于,其片內(nèi)閃電存儲器的編

30、程與擦除完全用電實現(xiàn);數(shù)據(jù)不易揮發(fā),可保存10年;編程/擦除速度快,全4K字節(jié)編程只需時3s,擦除時間約用10ms;AT89系列了實現(xiàn)在線編程;也可借助電話線進行遠距離編程。</p><p>  AT89C51是一種低功耗、高性能內(nèi)含4K字節(jié)閃電存儲器(Flash Memory)的8位CMOS微控制器。這種器件系以ATMEL高密度不揮發(fā)存儲技術(shù)制造,與工業(yè)標(biāo)準MCS-51指令系統(tǒng)和引腳完全兼容。片內(nèi)閃電存儲器的程

31、序代碼或數(shù)據(jù)可在線寫入,亦可通過常規(guī)的編程器編程。例如,MP-100這樣一種經(jīng)濟型的編程器,它支持通用EPROM等各種存儲器、PAL、GAL以及INTEL、ATMEL和PHILIPS等各公司的全系列51單片機的編程。ME5103和ME5105仿真器支持AT89系列所有器件的調(diào)試、仿真和編程。</p><p>  AT89C51具有下列主要性能:</p><p>  . 4KB可改編程序Fl

32、ash存儲器</p><p> ?。山?jīng)受1,000次的寫入/擦除周期)</p><p>  .全靜態(tài)工作:0Hz~24MHz</p><p>  .三級程序存儲器保密</p><p>  .128 X 8字節(jié)內(nèi)部RAM</p><p>  .32條可編程I/O線</p><p>  .2個16

33、位定時器/計數(shù)器</p><p><b>  .6個中斷源</b></p><p><b>  .可編程串行通道</b></p><p><b>  .片內(nèi)時鐘振蕩器</b></p><p>  另外,AT89C51是用靜態(tài)邏輯來設(shè)計的,其工作頻率可下降到0 Hz,并提供兩種可

34、用軟件來選擇的省電方式——空閑方式(Idle Mode)和掉電方式(Power Down Mode)。在空閑方式中,CPU停止工作,而RAM、定時器/計數(shù)器、串行口和中斷系統(tǒng)都繼續(xù)工作。在掉電方式中,片內(nèi)振蕩器停止工作,由于時鐘被“凍結(jié)”,使一切功能都暫停,只保存片內(nèi)RAM中的內(nèi)容,直到下一次硬件復(fù)位為止。</p><p><b> ?。?)主電源引腳</b></p>&

35、lt;p>  (a).Vcc 電源端</p><p>  (b).GND 接地端</p><p> ?。?)外接晶體引腳XTAL1和XTAL2</p><p>  (a).XTAL1 接外部晶體的一個引腳。在單片機內(nèi)部,它是構(gòu)成片內(nèi)振蕩器的反相放大器的輸入端。當(dāng)采用外部振蕩器時,該引腳接收振蕩器的信號,既把此信號直接接到內(nèi)部時鐘發(fā)生器的輸入端。</

36、p><p>  (b).XTAL2 接外部晶體的另一個引腳。在單片機內(nèi)部,它是上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,此引腳應(yīng)懸浮不連接。</p><p>  (3).控制或與其它電源復(fù)用引腳RST、ALE//PROG、/PSEN和/EA/Vpp</p><p>  (a).RES 復(fù)位輸入端。 當(dāng)振蕩器運行時,在該引腳上出現(xiàn)兩個機器周期的高電平將使單片機

37、復(fù)位。</p><p>  (b).ALE//PROG 當(dāng)訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率(此頻率為振蕩器頻率的1/6)周期性地出現(xiàn)正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。在對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(/PROG)。<

38、/p><p>  如果需要的話,通過對專用寄存器(SFR)區(qū)中8EH單元的D0位置數(shù),可禁止ALE操作。該位置數(shù)后,只有在執(zhí)行一條MOVX或MOVC指令期間,ALE才會被激活。另外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,該設(shè)定禁止ALE位無效。</p><p>  (c). /PSEN 程序存儲允許(/PSEN)輸出是外部程序存儲器的讀選通信號。當(dāng)AT89C51/LV51由外部程序存儲器

39、取指令(或常數(shù))時,每個機器周期兩次/PSEN有效(既輸出2個脈沖)。但在此期間內(nèi),每當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p>  (d)./EA/Vpp 外部訪問允許端。要使CPU只訪問外部程序存儲器(地址為0000H~FFFFH),則/EA端必須保持低電平(接到GND端)。然而要注意的是,如果保密位LB1被編程,復(fù)位時在內(nèi)部會鎖存/EA端的狀態(tài)。</p>

40、<p>  當(dāng)/EA端保持高電平(接Vcc端)時,CPU則執(zhí)行內(nèi)部程序存儲器中的程序。</p><p>  在Flash存儲器編程期間,該引腳也用于施加12V的編程允許電源Vpp(如果選用12V編程)。</p><p>  (4)輸入/輸出引腳 P0.0~ P0.7、P10.~P1.7、P2.0~ P2.7 和P3.0~P3.7</p><p>  (a

41、).P0端口(P0.0~ P0.7) P0是一個8位漏極開路型雙向I/O端口。作為輸出口用時,每位能以吸收電流的方式驅(qū)動8個TTL輸入,對端口寫1時,又可作高阻抗輸入端用。</p><p>  在訪問外部程序和數(shù)據(jù)存儲器時,它是分時多路轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,在訪問期間激活了內(nèi)部的上拉電阻。</p><p>  在Flash編程時,P0端口接收指令字節(jié);而在驗證程序時,則輸出指令字

42、節(jié)。驗證時,要求外接上拉電阻。</p><p>  (b).P1端口(P1.0~ P1.7) P1是一個帶有內(nèi)部上拉電阻的8位雙向I/O端口。P1的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。作輸入口時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p><p>  在對Flash編程和程序驗

43、證時,P1接收低8位地址。</p><p>  (c).P2端口 (P2.0~P2.7) P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P2作輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p><p>  在訪問外部程序存儲器和

44、16位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX @DPIR指令)時,P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX @RI指令)時,P2口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個訪問期間不會改變。</p><p>  在對Flash編程和程序驗證期間,P2也接收高位地址和一些控制信號。</p><p>  (d).P3端口(P3.0~P3.7)

45、 P3 是一個帶有內(nèi)部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3作輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p><p>  在AT89C51中,P3端口還用于一些專門功能,這些兼用功能見表1</p><p><b>  

46、表 1—1</b></p><p>  在對Flash編程和程序驗證時,P3還接收一些控制信號。</p><p> ?。?)Flash存儲器的編程和程序校驗:</p><p>  AT89C51單片機內(nèi)部有一個4K字節(jié)的Flash PEROM。這個Flash存儲陣列通常是處于已擦除狀態(tài)(既存儲單元的內(nèi)容為FFH),隨時可對它進行編程。編程接口可接收高電壓

47、(12V)或低電壓(Vcc)的允許編程信號。低電壓編程方式可很方便地對AT89C51內(nèi)的用戶系統(tǒng)進行編程;而高電壓編程方式則可與通用的EPROM編程器兼容。</p><p>  AT89C51的程序存儲器陣列是采用字節(jié)寫入方式編程的,既每次寫入一個字節(jié)。要對片內(nèi)的PEROM程序存儲器寫入任何一個非空字節(jié),都必須用片擦除方式將整個存儲器的內(nèi)容清除。(6) 對Flash存儲器編程</p><p&

48、gt;  編程前,必須按照表2和圖5建立好地址、數(shù)據(jù)和相應(yīng)的控制信號。編程單元的地址加在P1端口和P2端口的P2.0~P2.3(11位地址為0000H~0FFFH),數(shù)據(jù)從P0端口輸入。引腳P2.6、P2.7和P3.6、P3.7的電平選擇見表2。/PSEN應(yīng)保持低電平,而RST應(yīng)保持高電平。/EA/VPP是編程電源的輸入端,按要求加入編程電壓。ALE//PROG端輸入編程脈沖(應(yīng)為負脈沖信號)。編程時,采用4~20 MHz的振蕩器。對A

49、T89C51編程的步驟如下:</p><p>  (a)在地址線上輸入要編程單元的地址。</p><p>  (b)在數(shù)據(jù)線上輸入要寫入的數(shù)據(jù)字節(jié)。</p><p>  (c)激活相應(yīng)的控制信號。</p><p>  (d)在采用高電壓編程方式時,將/EA/VPP端的電壓加到12V。</p><p>  (e)每對Fl

50、ash存儲陣列寫入一個字節(jié)或每寫入一個程序加密位,加一個ALE//PROG編程脈沖。</p><p>  改變編程單元的地址和要寫入的數(shù)據(jù),重復(fù)步驟a~e,直到全部文件編程完畢。</p><p>  每個字節(jié)寫入周期是自動定時的,通常不大于1.5ms。</p><p>  表 1—2 Flash編程方式</p><p><b>

51、  (7)數(shù)據(jù)查詢方式</b></p><p>  AT89C51單片機用數(shù)據(jù)查詢方式來檢測一個寫周期是否結(jié)束。在一個寫周期期間,如果想讀出最后寫入的哪個字,則讀出數(shù)據(jù)的最高位(P0.7)是原來寫入字節(jié)最高位的反碼。寫周期一旦完成后,有效的數(shù)據(jù)就會出現(xiàn)在所有輸出端上,這時可開始下一個寫周期。一個寫周期開始后,可在任何時間開始進行數(shù)據(jù)查詢。 </p><p>  圖1—5 Fla

52、sh編程 圖 1—6 程序的校驗</p><p>  圖1—7 Flash編程和校驗的波形(高電平編程方式)</p><p> ?。?)準備就緒/忙信號</p><p>  字節(jié)編程的過程也可通過RDY//BSY輸出信號來監(jiān)視。在編程期間,當(dāng)ALE變?yōu)楦唠娖胶?,P3.4(RDY//BSY)端的電平被拉低,表示忙(正在編程)

53、狀態(tài)。編程完畢后,P3.4的電平變高表示就緒狀態(tài)。</p><p><b>  (9)程序的校驗</b></p><p>  如果加密位LB1和LB2沒有被編程,那么就可以對AT89C51內(nèi)部已編好的程序進行校驗。這時采用圖6所示的引腳接法。程序存儲器的地址仍由P1端口和P2端口的P2.0~P2.3輸入,數(shù)據(jù)由P0端口輸入。P2.6、P2.7和P3.6、P3.7的電平

54、見表1-4。/PSEN保持低電平,而ALE、/EA和RST保持高電平。校驗時,在P0端口上要求外接約10KΩ左右的上拉電阻。</p><p>  程序加密位不能直接校驗。加密位的校驗可通過觀察它們的功能是否被允許來進行。</p><p>  Flash存儲器編程和程序校驗時的時序圖見圖1—7(高電平編程)和圖1—8(低電壓編程)。</p><p>  圖 1—8

55、Flash編程和校驗的波形(低電壓編程方式)</p><p><b> ?。⑵渌?lt;/b></p><p>  為增強系統(tǒng)在工作現(xiàn)場的抗干擾能力,在硬件設(shè)計方面采取了一系列措施,例如,信號的輸入/輸出采用電平轉(zhuǎn)換、光電隔離;正確配置接地系統(tǒng),處理好共地信號;強電信號和弱電信號分開走線,傳輸線盡可能使用雙絞線和屏蔽電纜;設(shè)置WDT時鐘監(jiān)視電路,自動監(jiān)視CPU運行狀態(tài)

56、,出現(xiàn)故障自動處理,同時具有硬件自診斷功能,避免“死機”現(xiàn)象發(fā)生等等。</p><p><b>  智能溫度計的流程圖</b></p><p>  在軟件設(shè)計上,采用了良好的人機交互環(huán)境,可通過選擇功能熱鍵執(zhí)行特定的程序,如任意設(shè)定檢測參數(shù)值,選擇顯示方式和控制模式等,還可設(shè)置優(yōu)先權(quán)直接進行人為干預(yù)以便達到靈活控制的目的,如果某一檢測通道被鍵設(shè)置成關(guān)閉,那么不管此通道

57、外部情況如何,系統(tǒng)均不作任何反應(yīng)。</p><p>  為了提高系統(tǒng)的抗干擾能力,除硬件上采取了相應(yīng)的措施外,在軟件設(shè)計中也采取了若干措施,如在數(shù)據(jù)采集時采用數(shù)字濾波;采取指令冗余設(shè)計,在程序中適當(dāng)?shù)夭迦肟詹僮髦噶睿瑢σ恍┲匾闹噶钪貙懙鹊?。從而有效地提高了系統(tǒng)運行的可靠性,使其檢測控制工作及時準確、安全穩(wěn)定,達到良好的環(huán)境模擬控制性能要求。</p><p>  圖9是智能溫度計的流程圖。

58、因為智能溫度計的控制和計算相對簡單,由該流程方框圖可見,該主程序是循環(huán)線性結(jié)構(gòu)。在初始化時,清除內(nèi)部RAM,設(shè)定標(biāo)志位和標(biāo)志單元,設(shè)置堆棧指針,檢測LED顯示器工作是否正常等。</p><p>  它主要包括了下述一些子程序:</p><p> ?。?)從A/D轉(zhuǎn)換器MC14433讀取溫度數(shù)字電壓子程序:查詢A/D轉(zhuǎn)換狀態(tài),一旦本次A/D轉(zhuǎn)換結(jié)束,CPU將溫度電壓的BCD碼數(shù)字值送到RAM

59、中的輸入緩沖區(qū)存放。</p><p>  (2)溫度電壓數(shù)字值到溫度數(shù)字轉(zhuǎn)換子程序;將緩沖區(qū)中的溫度電壓數(shù)字BCD碼轉(zhuǎn)換為實際的溫度十進制數(shù)字。</p><p>  (3)溫度數(shù)字到LED顯示段碼轉(zhuǎn)換子程序:把溫度十進制數(shù)字轉(zhuǎn)換成相應(yīng)的LED顯示段碼,存放在顯示段碼緩沖區(qū)供LED顯示器顯示傳送子程序</p><p>  LED顯示段碼到LED顯示器顯示傳送和動態(tài)掃描

60、子程序</p><p>  BCD碼加,減,乘,除子程序;</p><p>  BCD碼在緩沖器間傳送子程序;</p><p> ?。?) 其它專用子程序;</p><p>  圖 9 智能溫度計的流程圖</p><p><b>  系統(tǒng)主程序</b></p><p>&l

61、t;b>  系統(tǒng)主程序:</b></p><p><b>  ORG 0000H</b></p><p><b>  LJMP MAIN</b></p><p><b>  ORG 0013H</b></p><p><b>  LJMP SUB&l

62、t;/b></p><p><b>  ORG 0100H</b></p><p>  MAIN: MOV SP,#40H</p><p>  MOV A,#78H</p><p>  MOV R7,#09H</p><p>  MOVX A,@DPTR </p><

63、p><b>  MOV R0,A</b></p><p><b>  CLR C </b></p><p>  SUBB A,#34H</p><p>  JNC LOOP1 </p><p><b>  CLR C </b></p><p>&l

64、t;b>  MOV A,R0 </b></p><p>  SUBB A,#3AH</p><p><b>  JC LOOP</b></p><p><b>  MOV A,R0</b></p><p>  ACALL TEMP</p><p>  LOO

65、P:MOV DPTR,#EF00H</p><p>  MOV R1,#0F8H</p><p>  MOV A,#33H</p><p>  MOVX @R1,A</p><p><b>  MOV A,R0</b></p><p>  MOVC A,@A+DPTR</p><

66、;p><b>  DEC R1</b></p><p>  MOVX @R1,A</p><p><b>  MOV A,R2</b></p><p><b>  INC R1</b></p><p>  MOVX @R1,A</p><p>&l

67、t;b>  INC R0</b></p><p><b>  MOV A,R2</b></p><p><b>  CLR C</b></p><p><b>  RRC A</b></p><p><b>  MOV R2,A</b>&

68、lt;/p><p>  MOV A,#00H</p><p>  MOV DPTR,#00F8H</p><p>  MOVX @DPTR,A</p><p><b>  AJMP GO </b></p><p>  LOOP1: MOV P1,#8FH</p><p>&l

69、t;b>  AJMP GO</b></p><p>  LOOP2: MOV P1,#0BFH </p><p>  GO : POP DPH</p><p><b>  POP DPL</b></p><p><b>  POP ACC</b></p>&

70、lt;p><b>  POP PSW</b></p><p><b>  RETI</b></p><p><b>  END</b></p><p>  TEMP: MOV DPTR,TABLE </p><p><b>  MOV A,R0</b&

71、gt;</p><p>  MOV B,#04H</p><p><b>  CLR C</b></p><p><b>  MUL AB</b></p><p><b>  JNC NOO</b></p><p><b>  INC DPH&

72、lt;/b></p><p>  NOO: MOVC A,@A+DPTR</p><p><b>  MOV 80H,A</b></p><p><b>  INC DPTR</b></p><p>  MOVC A,@DPTR</p><p><b>  

73、MOV 81H,A</b></p><p><b>  AJMP LOOP</b></p><p><b>  ORG 0300H</b></p><p>  TAB: DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 83H</p><p>

74、  MAIN:MOV 20H,#0</p><p>  MOV 21H,#0</p><p>  MOV R0,#3CH</p><p>  MOV R1,#12</p><p>  LCALL CLEAR</p><p><b>  SETB PT0</b></p><p&g

75、t;<b>  ML2: NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  MOV A,P1</b></p><p>  CJNE A,#0FBH,ML3</p>

76、<p>  AJMP MAIN </p><p>  ML3: MOV A,PIN1</p><p><b>  INC A</b></p><p>  SUBB A,PIN3</p><p>  CJNE A,#0,ML4</p><p>  AJMP TEST0 &l

77、t;/p><p>  ML4: JC TEST0</p><p>  JNB E1,TEST0 </p><p>  AJMP COMPP</p><p>  TEST0:MOV PIN3,#0</p><p><b>  MOV A,P1</b></p><p> 

78、 CJNE A,#0FDH,TEST </p><p>  AJMP EXIT </p><p>  TEST:MOV A,P1</p><p>  CJNE A,#0FFH,TEST1 </p><p>  EXIT:MOV R0,#79H </p><p>  MOV R1,#50H &

79、lt;/p><p>  HEX: ACALL HEXASC</p><p><b>  MOV R2,#6</b></p><p>  MOV R0,#5AH</p><p>  ACALL INI </p><p><b>  CLR FLAG3</b></p>

80、<p><b>  SJMP HERE</b></p><p>  COMPP:AJMP COMP</p><p>  SECOO:JNB P1.5,SSECO</p><p><b>  AJMP SECO</b></p><p>  SSECO:AJMP SEC</p>

81、<p>  MINII:JNB P1.5,MMINI</p><p><b>  AJMP MINI</b></p><p>  MMINI:AJMP MIN</p><p>  HOURR:JNB P1.5,HHOUR</p><p><b>  AJMP HOUR</b></p&

82、gt;<p>  HHOUR:AJMP HOU</p><p>  TEST1:JNB P1.0,SETT</p><p>  TEST2:SETB EA</p><p>  JNB P1.4,EXIT</p><p>  JNB P1.5,DEAL</p><p><b>  AJMP TES

83、T</b></p><p>  SETT:CLR EA</p><p>  MOV C,P1.4</p><p><b>  MOV F0,C</b></p><p>  JNB P1.1,SECOO</p><p>  JNB P1.2,MINII</p><p&

84、gt;  JNB P1.3,HOURR</p><p>  AJMP TEST2 </p><p>  DEAL:SETB E1</p><p>  JNB P1.4,OVER</p><p>  MOV R0,#49H</p><p><b>  MOV R1,#6</b></p>

85、<p>  ACALL CLEAR</p><p><b>  MOV B,#3</b></p><p>  MOV A,PIN1</p><p><b>  MUL AB</b></p><p><b>  ADD A,R4</b></p><

86、p><b>  MOV PIN,A</b></p><p>  MOV A,PIN1</p><p>  CJNE A,#4,AAA</p><p>  MOV PIN1,#0</p><p>  MOV PIN2,#3EH</p><p>  MOV PIN,#3CH </p

87、><p>  AAA: JNB P1.4,OVER</p><p>  JNB P1.1,SECOO</p><p>  JNB P1.2,MINII</p><p>  JNB P1.3,HOURR</p><p><b>  AJMP AAA</b></p><p>  O

88、VER:SETB E2</p><p><b>  INC PIN1</b></p><p><b>  MOV R2,#6</b></p><p>  MOV R0,#3AH</p><p>  MOV R1,PIN1</p><p>  ACALL INI

89、 </p><p>  MOV R0,#49H</p><p><b>  MOV R2,#3</b></p><p>  MOV R1,PIN</p><p>  ZIP: MOV A,@R0</p><p><b>  MOV @R1,A</b></p>

90、<p><b>  INC R0</b></p><p><b>  MOV A,@R0</b></p><p><b>  SWAP A</b></p><p><b>  ORL A,@R1</b></p><p><b>  MO

91、V @R1,A</b></p><p><b>  INC PIN </b></p><p><b>  INC R0</b></p><p><b>  INC R1</b></p><p>  DJNZ R2,ZIP </p><

92、p><b>  AJMP EXIT</b></p><p>  COMP:MOV A,PIN2</p><p>  CJNE A,#4AH,J</p><p><b>  AJMP OVR</b></p><p>  J: MOV R0,PIN2</p><p> 

93、 MOV R1,#7EH</p><p><b>  MOV R2,#3</b></p><p>  JJJ:MOV A,@R0</p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p><b>  XRL A,@

94、R1</b></p><p><b>  JNZ ENDD</b></p><p><b>  DEC R1</b></p><p><b>  MOV A,@R0</b></p><p>  ANL A,#0FH</p><p><b

95、>  XRL A,@R1</b></p><p><b>  JNZ ENDD</b></p><p><b>  DEC R1</b></p><p><b>  DEC R0</b></p><p>  DJNZ R2,JJJ</p><

96、;p>  SETB FLAG2</p><p><b>  INC PIN3</b></p><p><b>  AJMP TEST</b></p><p>  ENDD:MOV A,PIN2</p><p><b>  ADD A,#3</b></p>&

97、lt;p>  MOV PIN2,A</p><p><b>  AJMP COMP</b></p><p>  OVR: MOV PIN2,#3EH</p><p><b>  AJMP TEST</b></p><p>  HOUR:ACALL DELY</p><p&g

98、t;  MOV R0,#7EH</p><p>  JNB F0,SUB1</p><p>  ACALL DAAD1</p><p><b>  MOV A,R2</b></p><p>  XRL A,#24H</p><p><b>  JNZ ML0</b></

99、p><p>  ACALL CLR0</p><p>  AJMP ML0 </p><p>  MINI:ACALL DELY</p><p>  MOV R0,#7CH</p><p>  JNB F0,SUB1</p><p>  ACALL DAAD1</p><

100、;p><b>  MOV A,R2</b></p><p>  XRL A,#60H</p><p><b>  JNZ ML0</b></p><p>  ACALL CLR0</p><p>  AJMP ML0 </p><p>  SECO:ACALL

101、 DELY</p><p>  MOV R0,#7AH</p><p>  JNB F0,SUB1</p><p>  ACALL DAAD1</p><p><b>  MOV A,R2</b></p><p>  XRL A,#60H</p><p><b>

102、  JNZ ML0</b></p><p>  ACALL CLR0 </p><p>  ML0: MOV R0,#79H </p><p>  MOV R1,#50H </p><p>  ACALL HEXASC</p><p><b>  MO

103、V R2,#6</b></p><p>  MOV R0,#5AH</p><p>  ACALL INI </p><p><b>  AJMP SETT</b></p><p>  SUB1:SETB F0</p><p><b>  ACALL SUB

104、</b></p><p>  AJMP ML0 </p><p>  CLEAR:MOV @R0,#0</p><p><b>  INC R0</b></p><p>  DJNZ R1,CLEAR</p><p><b>  RET</b></

105、p><p>  HOU: ACALL DELY</p><p><b>  SETB E0</b></p><p>  MOV R0,#4EH </p><p>  ACALL DAAD1</p><p><b>  MOV A,R2</b></p><

106、;p>  XRL A,#24H</p><p><b>  JNZ ML00</b></p><p>  ACALL CLR0</p><p>  AJMP ML00 </p><p>  MIN: ACALL DELY</p><p><b>  SETB E0<

107、/b></p><p>  MOV R0,#4CH</p><p>  ACALL DAAD1</p><p><b>  MOV A,R2</b></p><p>  XRL A,#60H</p><p><b>  JNZ ML00</b></p>&

108、lt;p>  ACALL CLR0</p><p>  AJMP ML00 </p><p>  SEC: ACALL DELY</p><p><b>  SETB E0</b></p><p>  MOV R0,#4AH</p><p>  ACALL DAAD1</p&

109、gt;<p><b>  MOV A,R2</b></p><p>  XRL A,#60H</p><p><b>  JNZ ML00</b></p><p>  ACALL CLR0 </p><p>  ML00:MOV R0,#49H</p><p>

110、  MOV R1,#30H</p><p>  ACALL HEXASC</p><p><b>  MOV R2,#6</b></p><p>  MOV R0,#3AH</p><p>  MOV R1,PIN1</p><p><b>  INC R1</b></

111、p><p>  ACALL INI </p><p><b>  AJMP AAA</b></p><p>  DELY:MOV R1,#0FFH</p><p>  A1: MOV R2,#0FFH</p><p>  LOOP:NOP </p><p

112、><b>  NOP</b></p><p><b>  NOP</b></p><p>  DJNZ R2,LOOP</p><p>  DJNZ R1,A1 </p><p><b>  RET </b></p><p>  PITO:PUSH

113、 PSW</p><p><b>  PUSH 0E0H</b></p><p><b>  PUSH DPH</b></p><p><b>  PUSH DPL</b></p><p>  SETB PSW.3</p><p><b>  

114、MOV A,P1</b></p><p>  MOV TL0,#01H</p><p>  MOV TH0,#1FH</p><p>  CJNE A,#0FDH,SSS</p><p>  MOV TL0,#0EDH</p><p>  MOV TH0,#0FBH </p><

115、p>  SSS: JNB P1.5,GETNUM</p><p>  DDD: MOV A,2FH</p><p><b>  DEC A</b></p><p><b>  MOV 2FH,A</b></p><p><b>  JNZ RET0</b></p&g

116、t;<p>  MOV 2FH,#10H</p><p>  MOV R0,#7AH</p><p>  ACALL DAAD1</p><p><b>  MOV A,R2</b></p><p>  XRL A,#60H</p><p><b>  JNZ RET0&l

117、t;/b></p><p>  ACALL CLR0</p><p>  MOV R0,#7CH</p><p>  ACALL DAAD1</p><p><b>  MOV A,R2</b></p><p>  XRL A,#60H</p><p><b&g

118、t;  JNZ RET0</b></p><p>  ACALL CLR0</p><p>  MOV R0,#7EH</p><p>  ACALL DAAD1</p><p><b>  MOV A,R2</b></p><p>  XRL A,#24H</p>&l

119、t;p><b>  JNZ RET0</b></p><p>  ACALL CLR0</p><p>  RET0:SETB TR0</p><p><b>  POP DPL</b></p><p><b>  POP DPH</b></p><p

120、><b>  POP 0E0H</b></p><p><b>  POP PSW</b></p><p><b>  RETI</b></p><p><b>  GETNUM:</b></p><p>  JB FLAG1,EE</p>

121、;<p>  MOV R1,#49H </p><p><b>  MOV R2,#6</b></p><p>  CO: MOV @R1,#0</p><p><b>  INC R1</b></p><p>  DJNZ R2,CO </p><p>

122、  SETB FLAG1</p><p>  EE: AJMP DDD</p><p>  DAAD1:MOV A,@R0</p><p><b>  DEC R0</b></p><p><b>  SWAP A</b></p><p><b>  ORL A,

123、@R0</b></p><p><b>  ADD A,#1</b></p><p><b>  DA A</b></p><p><b>  MOV R2,A</b></p><p>  ANL A,#0FH</p><p><b&g

124、t;  MOV @R0,A</b></p><p><b>  MOV A,R2</b></p><p><b>  INC R0</b></p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p

125、><b>  MOV @R0,A</b></p><p>  SETB FLAG3</p><p><b>  RET</b></p><p>  SUB: DEC R0</p><p><b>  DEC @R0</b></p><p>  C

126、JNE @R0,#0FFH,RET2</p><p><b>  INC R0</b></p><p>  CJNE @R0,#0,AA</p><p><b>  DEC R0</b></p><p>  MOV @R0,#0</p><p><b>  RET&

127、lt;/b></p><p>  AA: DEC R0</p><p>  MOV @R0,#9</p><p><b>  INC R0</b></p><p><b>  DEC @R0</b></p><p>  CJNE @R0,#0FFH,RET2<

128、/p><p>  MOV @R0,#0</p><p>  SETB FLAG3</p><p><b>  RET2: RET</b></p><p>  SUB0: DEC R0</p><p><b>  DEC @R0</b></p><p>  

129、CJNE @R0,#0FFH,RET2</p><p><b>  INC R0</b></p><p>  CJNE @R0,#0,BB</p><p><b>  DEC R0</b></p><p>  MOV @R0,#0</p><p><b>  RET

130、</b></p><p>  BB: DEC R0</p><p>  MOV @R0,#9</p><p><b>  INC R0</b></p><p><b>  DEC @R0</b></p><p>  CJNE @R0,#0FFH,RET3<

131、;/p><p>  MOV @R0,#0</p><p>  SETB FLAG3</p><p><b>  RET3: RET</b></p><p>  CLR0: CLR A</p><p><b>  MOV @R0,A</b></p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論