【精品】單片機(jī)考證論文_第1頁
【精品】單片機(jī)考證論文_第2頁
【精品】單片機(jī)考證論文_第3頁
【精品】單片機(jī)考證論文_第4頁
【精品】單片機(jī)考證論文_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于ds18b20的溫度控制系統(tǒng)(軟件)序言在工業(yè)生產(chǎn)的很多領(lǐng)域中,人們都需要對各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中 的溫度進(jìn)行檢測和控制。釆用單片機(jī)對溫度進(jìn)行控制不僅具有控制方便、簡單和靈活性 大等優(yōu)點,而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大的提高產(chǎn)品的質(zhì)量 和數(shù)量。因此,單片機(jī)對溫度的控制問題是一個工業(yè)生產(chǎn)中經(jīng)常會遇到的控制問題。該 溫度控制系統(tǒng)與普通的溫度控制系統(tǒng)相比有效的提高了溫度控制系統(tǒng)測量溫度的精度 和可靠性,并且結(jié)構(gòu)也不是很復(fù)雜。該系統(tǒng)可以通過與于設(shè)定的溫度相比較來輸岀控制 加熱信號從而達(dá)到溫度控制的目的。本說明書描述了本次畢業(yè)設(shè)計的整個過程,以及本次畢業(yè)設(shè)計用到的相

2、關(guān)知識。主 要介紹了:溫度控制系統(tǒng)是如何通過ds18b20溫度傳感器采集溫度和如何通過at89c51 單片機(jī)來實時控制溫度。第1章主要介紹了溫度控制系統(tǒng)的總體設(shè)計思路以及各壞節(jié)功 能是如何實現(xiàn)的。第2章主要介紹了 at89c51單片機(jī)的結(jié)構(gòu)和原理。第3章主要介紹了 木次設(shè)計中用到的一些芯片。第4章主要介紹了溫度控制系統(tǒng)的軟件設(shè)計流程圖。第5 章主要介紹了軟件硬件調(diào)試過程。最后附錄了木次設(shè)計的原理圖、程序清單、英文翻譯、 參考文獻(xiàn)。由于對有些軟件不是很熟悉,加上時間比較緊張,在實際設(shè)計制作過程中有一定 的難度。所以,我們只能盡我們的所能把它做好,在制作過程中,肯定有一些疏漏和 不足之處,懇請老師

3、指正。在畢業(yè)設(shè)計制作過程中,始終得到我的指導(dǎo)老師劉老師的 指導(dǎo)和幫助,在此謹(jǐn)向他表示感謝!第1頁共44頁1.1控制技術(shù)的發(fā)展概況在日常生活生產(chǎn)中,人們需要對溫度進(jìn)行檢測和控制,而目前推廣應(yīng)用的許多溫度 控制系統(tǒng)主要由測量電路和控制電路組成,所具備的功能較少,也比較弱。多采用電阻 式溫度傳感器,測量精度低,需要a /d轉(zhuǎn)換,電路復(fù)雜,離散性大,溫度反應(yīng)緩慢,而且 結(jié)構(gòu)很復(fù)雜。計算機(jī)技術(shù)的迅速發(fā)展,使得傳統(tǒng)的控制系統(tǒng)發(fā)生了根本性的變革,即采用微機(jī)作 為控制系統(tǒng)的核心,代替?zhèn)鹘y(tǒng)的控制系統(tǒng)的傳統(tǒng)的電子線路,從而成為新一代的微機(jī)化 控制系統(tǒng)。將微機(jī)技術(shù)引入控制系統(tǒng)中,不僅可以解決傳統(tǒng)控制系統(tǒng)不能解決的問

4、題, 而且還能簡化電路、增加或增強功能、提高控制精度和可靠性,顯著增強測控系統(tǒng)的自 動化、智能化程度,而且可以縮短系統(tǒng)研制周期、降低成本、易于升級和維護(hù)。因此, 現(xiàn)代控制系統(tǒng)設(shè)計,特別是高精度、高性能的控制系統(tǒng),目前已很少不采用計算機(jī)技術(shù) 的了。計算機(jī)技術(shù)的引入,可以為控制系統(tǒng)帶來以下一些新特點和新功能。(1)自動調(diào)零功能在毎次采樣前對傳感器的輸出值自動清零,從而大大降低因控 制系統(tǒng)漂移變化造成的謀差。(2)數(shù)字濾波功能利用已算機(jī)軟件對測量數(shù)據(jù)進(jìn)行處理,可以抑制各種干擾和脈 沖信號。(3)數(shù)據(jù)處理功能利用計算機(jī)技術(shù)可以實現(xiàn)傳統(tǒng)儀器無法實現(xiàn)的各種復(fù)雜的處理 和運算功能。(4)復(fù)雜控制規(guī)律利用計算

5、機(jī)技術(shù)不僅可以實現(xiàn)經(jīng)典的pid控制,還可以實現(xiàn)各種 復(fù)雜的控制規(guī)律,例如,自適應(yīng)控制、模糊控制等。(5)自我診斷功能采用計算機(jī)技術(shù)后,可對控制系統(tǒng)進(jìn)行監(jiān)測,一旦發(fā)現(xiàn)故障則 立即進(jìn)行報警,并可顯示故障部位或可能的故障原因,對排除故障的方法進(jìn)行提示。微機(jī)化的控制系統(tǒng)是以微機(jī)為核心、測量控制一體化的系統(tǒng),這種系統(tǒng)對被控對象 的控制是依據(jù)對被控對象的測量結(jié)果決定的。因此,它實質(zhì)上是一種閉環(huán)控制系統(tǒng)。溫度控制系統(tǒng)在工業(yè)過程控制中有著廣泛的應(yīng)用。用單片機(jī)來代替模擬調(diào)節(jié)器,就 構(gòu)成了微機(jī)過程控制系統(tǒng)??刂葡到y(tǒng)中引入單片機(jī),可以充分利用單片機(jī)在對采集數(shù)據(jù) 加以分析并根據(jù)所得結(jié)果做出邏輯判斷等方面的能力,編制岀

6、符合某種技術(shù)要求的控制 程序、管理程序,實現(xiàn)對被控參數(shù)的控制與管理。在單片機(jī)控制系統(tǒng)中,控制規(guī)律是通 過軟件來完成的。改變控制規(guī)律,只要改變相應(yīng)的程序即可。本次設(shè)計采用ds18b20型數(shù)字式溫度傳感器作為溫度采集單元和at89c51單片機(jī)來 對它們進(jìn)行控制,不僅具有控制方便、簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控 溫度的指標(biāo)。本文設(shè)計了一種以at89c51和ds18b20為核心的溫度控制系統(tǒng)、1 2設(shè)計思路及技術(shù)指標(biāo)為了能夠?qū)崟r地控制溫度,該電路采用通過溫度傳感器測得當(dāng)前溫度送到單片機(jī)處 理與設(shè)定溫度比較從而控制電熱器的啟停去控制外部溫度。當(dāng)外部溫度低于設(shè)定溫度下 限時電熱器加熱,當(dāng)外部

7、溫度高于設(shè)定溫度上限時電熱器停止加熱,當(dāng)溫度在上下限之 間時保持前一狀態(tài)。當(dāng)溫度越限5°c吋進(jìn)行聲光報警,系統(tǒng)停止工作。而且在低于溫度 五度內(nèi)隨溫度上升加熱交流電壓不斷減小使溫度平穩(wěn)上升。測溫電路可以選用電阻式溫度傳感器也可以直接采用ds18b20型數(shù)字式溫度傳感 器。由于電阻式溫度傳感器,測量精度低,需要a/d轉(zhuǎn)換,電路復(fù)雜,離散性大,溫度反 應(yīng)緩慢,而且結(jié)構(gòu)很復(fù)雜。為了提高測量精度、簡化電路所以選用測量精度高,電路簡 單的ds18b20型數(shù)字式溫度傳感器。顯示可以分為靜態(tài)顯示和動態(tài)顯示,,在顯示電路中采用74ls47譯碼器可以節(jié)省單 片機(jī)端口。所以顯示電路通過p0.0p0. 4控

8、制數(shù)碼管的亮滅,p0.4p0. 7送岀四位編 碼通過74ls47譯碼器譯碼輸出09十個數(shù)據(jù)。一、技術(shù)指標(biāo)1、顯示上限值為99.5°c,下限值為0°c2、采用4位數(shù)碼管進(jìn)行溫度顯示,2位整數(shù),1位小數(shù),1位符號位3、實時顯示溫度,系統(tǒng)的精度為0.5°c4、溫度超過上下限溫度5°c時進(jìn)行聲光報警5、可以利用內(nèi)置eeprom保存溫度上下限值6、能夠自動控制加熱電壓值二、系統(tǒng)功能當(dāng)該系統(tǒng)得電后,系統(tǒng)自檢,所有發(fā)光二極管都亮,數(shù)碼管顯示888. 8o三秒之后 所有發(fā)光二極管熄滅,數(shù)碼管顯示由ds18b20溫度傳感器測得的當(dāng)前溫度。按下設(shè)定建, 數(shù)碼管顯示設(shè)定溫度,

9、設(shè)定指示燈亮(綠);按一下“”或“-”鍵,設(shè)定值加0. 5或減0.5;當(dāng)按下設(shè)定確定鍵后,保存溫度設(shè)定值,恢復(fù)顯示當(dāng)前實測值。按下啟動按鈕,啟停指示燈亮(綠)溫控系統(tǒng)啟動。當(dāng)實測溫度低于設(shè)定溫度下限 值時電熱器得電發(fā)熱,同時加熱指示燈亮(紅),當(dāng)實測溫度高于設(shè)定溫度上限限值時, 電熱器停止加熱傳為保溫狀態(tài),保溫指示燈亮(黃)。按下停止按鈕,系統(tǒng)停止工作, 啟停指示燈滅(綠)。當(dāng)實測溫度高于設(shè)定溫度上限值5°c或低于設(shè)定溫度下限值5°c時,報警器報警, 系統(tǒng)停止工作,只有數(shù)碼管顯示實測溫度。三、系統(tǒng)原理方框圖溫度控制系統(tǒng)硬件電路由傳感器電路、執(zhí)行電路、報警電路、單片機(jī)電路、按

10、鍵電 路和顯示屯路六部分組成。該電路采用at89c51單片機(jī)最小化應(yīng)用設(shè)計,p0口輸出段碼數(shù)據(jù),p1 口接按鍵開關(guān), p2口接發(fā)光二極管、報警器,p3.0口接傳感器電路,p3.5口接驅(qū)動執(zhí)行電路。圖1-1系統(tǒng)原理方框圖四、各個環(huán)節(jié)的功能測量環(huán)節(jié)(溫度傳感器):測量環(huán)節(jié)的功能是測量外部實際溫度比較環(huán)節(jié)(單片機(jī)):比較環(huán)節(jié)把實測溫度與設(shè)定溫度比較從而控制執(zhí)行機(jī)構(gòu) 執(zhí)行環(huán)節(jié)(加熱器):執(zhí)行環(huán)節(jié)調(diào)節(jié)外部溫度顯示環(huán)節(jié)(顯示):顯示實測或設(shè)定溫度設(shè)定環(huán)節(jié)(鍵盤人設(shè)定、調(diào)整設(shè)定溫度報警環(huán)節(jié)(報警):當(dāng)溫度越限吋,報警環(huán)節(jié)發(fā)生報警五、各個環(huán)節(jié)的實現(xiàn)測量環(huán)節(jié):通過對數(shù)字式溫度傳感器編程從而實現(xiàn)測量環(huán)節(jié)功能的實現(xiàn)

11、比較環(huán)節(jié):比較環(huán)節(jié)把實測溫度與設(shè)定溫度比較從而控制執(zhí)行機(jī)構(gòu)執(zhí)行環(huán)節(jié):執(zhí)行環(huán)節(jié)控制單片機(jī)連接加熱電路的端口輸出高低點電平調(diào)節(jié)外部溫度顯示環(huán)節(jié):單片機(jī)把要顯示的數(shù)據(jù)通過譯碼器送到數(shù)碼管顯示設(shè)定環(huán)節(jié):設(shè)定環(huán)節(jié)主要通過按鈕去實現(xiàn)其功能報警環(huán)節(jié):當(dāng)系統(tǒng)要報警時通過給報警環(huán)節(jié)低電平使蜂鳴器發(fā)聲報警第2章at89c51單片機(jī)系統(tǒng)結(jié)構(gòu)和原理2. 1 at89c51單片機(jī)的簡介at89c51單片機(jī)是美國atmel公司的產(chǎn)品,它與intel公司生產(chǎn)的mcs-51系列單片機(jī) 兼容。at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable r

12、ead only memory)的低電壓,高性能cmos8位微處理器, 俗稱單片機(jī)。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51 指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel 的at89c51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的 方案。它與以前的程序存儲器相比具有以下優(yōu)點:用戶可自己寫入,并根據(jù)需要靈活修改程序;用電擦除而不是用紫外線擦除,不需要特殊的擦除設(shè)備;寫入與擦除的速度非??臁K械膍cs-51系列單片機(jī)擁有一個相同的8位微處理器cpu,它由算術(shù)邏輯運算 部件alu、布爾處理器、控制

13、器和工作寄存器組成。算術(shù)邏輯運算部件主要功能是實現(xiàn)數(shù)據(jù)的傳送、數(shù)據(jù)的算術(shù)邏輯運算和布爾量處 理,它們包括:加、減、乘、除算術(shù)運算;增量(加1)、減量(減1)運算;十進(jìn)制數(shù)調(diào)整;位置“1”、位置“0”和取反;與、或、異或等邏輯操作;數(shù)據(jù)傳送操作。控制器是控制整個單片機(jī)系統(tǒng)各種操作的部件,它包括時鐘發(fā)牛器、定時控制邏輯、 指令寄存器譯碼器、程序存儲器和數(shù)據(jù)存儲器的地址/數(shù)據(jù)傳送控制等。從編程的角度看,mcs-51cpu對用戶開放的寄存器主要有以下幾個:累加器acc、寄存器b、程序計數(shù)器pc、數(shù)據(jù)指針dptr (由dpii和dpl兩個8位寄存器組成),程序狀態(tài)寄存器psw、堆棧指針spo2. 2單片

14、機(jī)的一般結(jié)構(gòu)一、at89c51單片機(jī)內(nèi)部硬件資源有:面向控制的8位cpu;全靜態(tài)設(shè)計,時鐘頻率范圍為024mhz、33mhz;三個程序存儲器保密位; 128字節(jié)內(nèi)部ram數(shù)據(jù)存儲器; 4k字節(jié)的flash存儲器,可反復(fù)編程/擦除1000次; 2個可工作于4種模式的16位定時器/計數(shù)器;5個中斷源、2個中斷優(yōu)先級的中斷控制器;二、at89c51單片機(jī)結(jié)構(gòu)框圖at89c51單片機(jī)采用模塊式的結(jié)構(gòu),有多個存儲空間,每一個存儲空間都留有一定 的余量,這種結(jié)構(gòu)為單片機(jī)的發(fā)展留有充分的余地,其結(jié)構(gòu)框圖如圖2-1。外部計數(shù) 脈沖圖2/ atm89c51結(jié)構(gòu)框圖三、引腳圖和邏輯符號圖at89c51-般為dip

15、40雙列直插封裝形式的器件,其引腳圖和邏輯符號如圖2-2所示。at89c51的引腳p00p07、p10p17、p20p27、p30p37為四個8位并行輸入/輸出口,其屮p3口、p0口和p2口為雙功能口,可以作為普通輸入/輸出口(第一功能),也 可以作為特殊輸入/輸岀口。rst為復(fù)位輸入線,ale、psen、鬲為系統(tǒng)擴(kuò)展控制線,xtal1和xtal2為時鐘電路輸入/輸出線,vcc、gnd為電源輸入線,一般接+5v和地。p1. 0 cp1. 1 cp1. 2 cp1. 3 cpl.4 cp1. 5 cpl.6 cp1. 7 c reset crxd/p3. 0 ctxd/p3. 1 c iht0/

16、p3. 2 c iot1/p3 3 lt0/p3. 4 ct1/p3. 5 wp3. 6 crd/p3. 7 c xtal2 xtal1 l vss c12 4023933843753663573483393210311130122913281427152616251724182313222021j vccj p0 o/adop0 1/ad1po. 2/ad2p0 3/ad3p0.4/ad4j po. 5/ad5j p0 6/ad6po. 7/ad7ea/vppale/progpsenp2 7/ad15p2.6/ad14 p2 5/ad13 p2.4/ad 12 p2 3/ad 11j p2

17、2/ad10p2 1/ad9j p2 0/ad81/ocp1v ccpoat89c51p3p2i/oi/orst alextal1 psenxtal2 _ ea圖22at89c51引腳圖、邏輯符號圖2.3 at89c51存儲器配置at89c51單片機(jī)有五個獨立的存儲空間:-64k字節(jié)程序存儲器空間(0offffh);-256字節(jié)內(nèi)部ram空間(0offh); 128字節(jié)內(nèi)部特殊功能寄存器空間(801offh);位尋址空間(0offh);-64k字節(jié)外部數(shù)據(jù)存儲器(ram/io)空間(0offffh)。一、程序存儲器mcs-51的程序存儲器空間為64k字節(jié),地址范圉為0000hffffh,其地址

18、指針為 16位的程序計數(shù)器pc。0開始的部分程序存儲器(4k, 8k, 16k,)可以在單片機(jī)的 內(nèi)部也可以在單片機(jī)的外部,這取決于單片機(jī)的類型,并由輸入到引腳鬲的電平控制。at89c51內(nèi)部有4kb的程序存儲器,用于存放程序、原始數(shù)據(jù)或表格。若丑接 vcc(+5v),則程序計數(shù)器pc的值在0至offfh之間時,cpu取指令時訪問內(nèi)部的程序存 儲器;pc值大于offfh時,則訪問外部的程序存儲器。如果鬲接vss(地),則內(nèi)部的 程序存儲器被忽略,cpu總是從外部的程序存儲器中取指令。單片機(jī)外部擴(kuò)展的程序存 儲器一般為eprom電路(紫外線可擦除電可編程的只讀存儲器)o.mcs-51的引腳殛萬輸

19、 出外部程序存儲器的讀選通信號,僅當(dāng)cpu訪問外部程序存儲器時,麗?才有效(輸 出負(fù)脈沖)。mcs-51復(fù)位后,程序計數(shù)器pc為0, cpu從地址0開始執(zhí)行程序,即復(fù)位入口地 址為0。另外,mcs-51的中斷入口也是固定的,程序存儲器地址3、obh、13h、1bh、 23h單元為中斷入口,mcs-51的屮斷源數(shù)目是因型號而異的,中斷入口也有多有少, 但總是從地址3開始,每隔8個字節(jié)安排一個中斷入口。表21程序存儲器中的特殊單元單元地址特殊用途0000h啟動地址0003h外部中斷0中斷服務(wù)程序入口地址ooobh定時/計數(shù)器t0溢出中斷服務(wù)程序入口地址0013h外部中斷1中斷服務(wù)程序入口地址001

20、bh定時/計數(shù)器t1溢出中斷服務(wù)程序入口地址0023h串行口接收和發(fā)送屮斷服務(wù)程序入口地址二、數(shù)據(jù)存儲器at89c51芯片共有256個ram單元,其中后128單元被專用寄存器占用,能作為寄 存器供用戶使用的只是前128單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù) 存儲器就是指前128單元,簡稱內(nèi)部ram。地址范圍為00hffh (256b)。是一個多用 多功能數(shù)據(jù)存儲器,有數(shù)據(jù)存儲、通用工作寄存器、堆棧、位地址等空間。2.4引腳功能說明at89c51單片機(jī)采用40個引腳雙列直插式封裝,其中有2個專用于主電源引腳,2 個外接晶振的引腳,4個控制或與其它電源復(fù)位的引腳,以及32條輸入輸出i/

21、o引腳。下而按引腳功能分為4個部分?jǐn)⑹龈鱾€引腳的功能。一、電源引腳vcc和vss1> vcc (40腳):芯片工作電源輸入端接+5v電源;2、vss (20腳):芯片工作接地端。二、外接晶振引腳xtal1和xtal21、xtal1 (19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個反相放大器 的輸入端,這個放大器構(gòu)成采用外部時鐘時,對于hm0s單片機(jī),該引腳接地;對于chmos 單片機(jī),該引腳作為外部振蕩信號的輸入端。2、xtal2 (18腳):接外部晶體的另一端。在單片機(jī)內(nèi)部,接至片內(nèi)振蕩器的反相 放大器的輸出端。當(dāng)采用外部時鐘時,對于hm0s單片機(jī),該引腳作為外部振蕩信號的 輸

22、入端。對于chmos芯片,該引腳懸空不接。三、控制信號引腳控制信號或與其它電源復(fù)位引腳有rst、ale. psen和丑等4種形式。1、rst (9腳:rst即為reset,為備用電源,所以該引腳為單片機(jī)的上電復(fù)位或 掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機(jī)器周期的高電平,就可 實現(xiàn)復(fù)位操作,使單片機(jī)復(fù)位到初始狀態(tài)。當(dāng)vo:發(fā)生故障,降低到低電平規(guī)定值或掉電時,該引腳可接上備用電源 (+5v) 為內(nèi)部ram供電,以保證ram中的數(shù)據(jù)不丟失。2、ale (30腳):為地址鎖存允許輸出信號/編程脈沖信號輸入端;此信號為外部的 擴(kuò)展大陸低位字節(jié)地址提供一個允許鎖存信號對芯片內(nèi)的epro

23、m/eeprom空間固化程序 時提供一個編程脈沖信號。當(dāng)訪問外部存儲器時,ale信號用來所存地址的低位字節(jié)。 在不訪問外部存儲器時,ale端總是以振蕩頻率的6分頻來周期性地輸出正脈沖信號, 故可作為對外的時鐘輸出。在訪問外部數(shù)據(jù)存儲器時,要跳過一個ale脈沖。在對內(nèi)部具有eprom的8751單片機(jī)進(jìn)行編程時,此引腳用于輸入編程脈沖。3、psen (29腳):片外程序存儲器讀選通輸岀端,低電平有效。在cpu取指令或常 數(shù)時,用于選通外部程序存儲器。當(dāng)從外部程序存儲器讀取指令或常數(shù)期間,每個機(jī)器 周期再麗兩次有效,以通過數(shù)據(jù)總線口讀回指令或常數(shù)。當(dāng)訪問外部數(shù)據(jù)存儲器期間,psen信號將不岀現(xiàn)。4、

24、ea (31腳:ea為訪問外部程序儲器控制信號/編程電壓輸入端,低電平有效。當(dāng)鬲端保持高電平時,片內(nèi)存儲器有效,單片機(jī)訪問片內(nèi)程序存儲器4kb (mcs-52子系列為8kb)0若超出該范圍時,自動轉(zhuǎn)去執(zhí)行外部程序存儲器的程序。當(dāng)丑端保持 低電平時,無論片內(nèi)有無程序存儲器,均只訪問外部程序存儲器。四、輸入/輸出(i/o)引腳1、p0 口(39腳22腳:p0. 0p0. 7統(tǒng)稱為p0 口,p0 口為三態(tài)雙向i/o 口。 當(dāng)不接外部存儲器與不擴(kuò)展i/o接口時,它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有 外部程序存儲器或擴(kuò)展1/0 口時,p0 口為地址/數(shù)據(jù)分時復(fù)用口。它分時提供8位雙向 數(shù)據(jù)總線。對于

25、片內(nèi)含有eprom的單片機(jī),當(dāng)eprom編程時,從p0 口輸入指令字節(jié),而當(dāng)檢 驗程序時,則輸出指令字節(jié),校驗時,要求外接上拉電阻。2、p1 口(1腳8腳:p1.0p1.7統(tǒng)稱為p1 口,可作為準(zhǔn)雙向i/o接口使用。 對于mcs52子系列單片機(jī),p1. 0和pl. 1還有第2功能:p1. 0 口用作定時器/計數(shù)器 2的計數(shù)脈沖輸入端t2; pl. 1用作定時器/計數(shù)器2的外部控制端t2exo對于eprom編 程和進(jìn)行程序校驗時,p1 口接收輸入的低8位地址。3、p2 口(21腳28腳:p2.0p2. 7統(tǒng)稱為p2 口,一般可作為準(zhǔn)雙向i/o接口。 當(dāng)接有外部程序存儲器或擴(kuò)展i/o接口且尋址范圍

26、超過256個字節(jié)時,p2 口用于高8 位地址總線送出高8位地址。對于eprom編程和進(jìn)行程序校驗時,p2 口接收輸入的8 位地址。4、p3 口(10腳17腳:p3.0p3. 7統(tǒng)稱為p3 口。它為雙功能口,可以作為一 般的準(zhǔn)雙向i/o接口,也可以將每1位用于第2功能,而且p3 口的每一條引腳均可獨 立定義為第1功能的輸入輸出或第2功能。p3 口的第2功能見表2-1:表22單片機(jī)p3 口管腳含義腳引第2功能0p3.rxd (串行口輸入端0)1p3.txd (串行口輸出端)2p3.into (外部中斷0請求輸入端,低電平有效)3p3.int1 (外部中斷1請求輸入端,低電平有效)4p3.t0 (時

27、器/計數(shù)器0計數(shù)脈沖輸入端)5p3.t1 (吋器/計數(shù)器1數(shù)脈沖輸入端)6p3.wr (外部數(shù)據(jù)存儲器空間寫通信號輸出端,低電平有效)7p3.rd (外部數(shù)據(jù)存儲器空問讀信號輸出端,低電平有效)綜上所述,at89c51系列單片機(jī)的引腳作用可歸納為以下兩點:1)單片機(jī)功能多,引腳數(shù)少,因而許多引腳具有第2功能;2)單片機(jī)對外呈3總線形式,由po、p2口組成16位地址總線;由p0口分時復(fù)用作為 數(shù)據(jù)總線。第3章 溫度控制系統(tǒng)的器件介紹3. 1 ds18b20溫度傳感器3. 1. 1結(jié)構(gòu)說明ds1820數(shù)字溫度計提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接 口送入ds1820或從ds1

28、820送出,因此從主機(jī)cpu到ds1820僅需一條線(和地線)。ds1820 的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。因為每一個ds1820在出廠時已經(jīng)給定 了唯一的序號,因此任意多個ds1820可以存放在同一條單線總線上。這允許在許多不同 的地方放置溫度墩感器件。ds1820的測量范圍從-55°c到+125°c,增量值為0. 5°c,可在 is (典型值)內(nèi)把溫度變換成數(shù)字。圖3/溫度傳感器實物圖及其內(nèi)部結(jié)構(gòu)圖3.1.2 ds18b20與單片機(jī)之間的通訊命令和時序簡單的硬件接口是以相對復(fù)雜的接口編程為代價的。各器件與單片機(jī)z間的接口協(xié) 議(包括初始化,寫1,

29、寫o,讀1,讀o等協(xié)議)要通過嚴(yán)格的u寸序來保證。一、ds18b20的初始化時序初始化包括主機(jī)發(fā)送的復(fù)位脈沖和器件向主機(jī)返回的存在脈沖。主機(jī)總線在6時刻 發(fā)出一最短為480 us的低電平復(fù)位脈沖,接著在b時刻釋放總線并進(jìn)入接收狀態(tài),器件 在接收到總線的屯平上升沿后,等待1560 p s后在b時刻發(fā)出60240 u s時延的低電 平存在脈沖信號,通知主機(jī)器件以接在總線上。vk i-wire bus gnd60 tx "廣 <120ds18b20 采樣 mm 匕 mili ds18b20采禪min typ max15ws 十珈s 圖3-2 ( a )初始化時序二、單片機(jī)的寫0與寫1

30、時序當(dāng)主機(jī)總線于t3時刻從高電平拉至低電平時,就產(chǎn)生“寫”的時間間隙。從t3時刻 開始15 u s z內(nèi),應(yīng)將所需寫的位送到總線上。器件在t3后的1545 u s期間內(nèi)對總線 采樣。低電平寫入0,高電平寫入1。連續(xù)寫兩位之間的間隙應(yīng)大于lus。vex r發(fā)復(fù)侍m沖liso tx *0m <96<lgs1機(jī)搖枚fr a q u v wij戶一1 sta軸>gnr-圖3-2 ( b )寫時序三、單片機(jī)的讀0與讀1時序主機(jī)在t4時刻將總線從高電平拉至低電平,持續(xù)lus之后將總線釋放,就產(chǎn)生讀 時時限。主機(jī)必須在ti之后的15 us之內(nèi)完成讀總線狀態(tài),并在45 us內(nèi)釋放總線。連 續(xù)

31、讀兩位z間的間隙應(yīng)大于1 u soi £機(jī)嚴(yán).曠 時何卅 t,ims一-i屮lil: “:h同片圖3-2 ( c )讀時序四、ds18b20的rom操作命令主機(jī)在收到器件的存在脈沖后,并可發(fā)出某個rom操作命令。這些命令的名稱,代 碼和功能如表3-1。表3/ rom操作命令指令名稱代碼功能讀rom33h在口線上接一個器件時讀其rom碼匹配rom55h找出某個指定rom碼的器件跳過romcch對口線上所有器件的操作搜索romf0h口線上有多個器件時,找出每個器件rom碼搜索報警ech找出各器件是否超限五、ds18b20的存儲器操作命令主機(jī)通過口線對器件發(fā)出rom命令后,接著便發(fā)岀某一存

32、儲命令,去控制器件的工 作狀態(tài),完成溫度的轉(zhuǎn)換和數(shù)據(jù)的輸出。存儲器命令的名稱、代碼和功能如表3-2。表32存儲器命令指令名稱代碼功能寫存儲器4eii主機(jī)向存儲器中th、tl和配位寄存器中寫數(shù)據(jù)讀存儲器beii主機(jī)連續(xù)讀08存儲器中內(nèi)容復(fù)制存儲器48h復(fù)制幾、和配位寄存器內(nèi)容到eeprom中溫度轉(zhuǎn)換44h啟制動溫度轉(zhuǎn)換重新調(diào)出b8h從eeprom屮調(diào)出幾、11.和配位寄存器數(shù)據(jù)到存儲器中讀電源b4h器件向主機(jī)傳送它的供電方式3. 1. 3溫度分辨率與溫度字節(jié)中的位定義一、溫度分辨率ds18b20的數(shù)字溫度輸出只用9位二進(jìn)制表示,分辨率固定為0.5°co欲提高分辨力, 只能靠軟件計算來實

33、現(xiàn)。而ds18b20的數(shù)字溫度輸出可進(jìn)行912位的編程。在便簽式ram 的第五個字節(jié)是config寄存器,其格式如下:10msblsbmsb代表最高有效位,lsb代表最低有效為。格式中的第04位在寫操作時不予考慮, 讀出時總是“1”;第7位在寫操作時不予考慮,讀出時為“0”。ro、r1是可編程溫度分 辨力位。通過對這兩位進(jìn)行不同的編程,可設(shè)定不同的溫度分辨力及最大轉(zhuǎn)換時間,詳 見表3-3。表33溫度分辨力及最大轉(zhuǎn)換時間r1r0ds18b20的工作模式/位溫度分辨力/°c最大轉(zhuǎn)換時間0090.593. 7501100. 25187.510110. 12537511120. 062575

34、0由表可見,設(shè)定的分辨力越高,所需要的溫度-數(shù)據(jù)轉(zhuǎn)換時間就越長。因此,在實 際應(yīng)用中需要在分辨力與轉(zhuǎn)換時間二者之間權(quán)衡考慮。在芯片出廠時r1和r0均被配置為 “1”,即工作在12位模式下。ds18b20工作在12位模式下溫度字節(jié)中的位定義見表3-4 闔 o表34溫度字節(jié)中的位定義低八位字節(jié)(數(shù)據(jù)位)222222223210-1-2-3-4高八位字節(jié)(符號位和數(shù)據(jù)位)sssss262521表中的第一行表示溫度的低字節(jié),第二行表示溫度的高字節(jié),s表示符號位。當(dāng)ds18b20的工作模式依次選擇11位、10位和9位時,末尾為零的低位數(shù)就分別對應(yīng)于一位、 兩位和三位。舉例說明,當(dāng)工作模式選擇10位時,最

35、低兩位(即曠位和曠位)均為0, 總有效位就變成10位。其中,數(shù)字位占9位,符號位也占一位。3. 2 74ls47譯碼器3.2.1 一般結(jié)構(gòu)一、結(jié)構(gòu)說明74ls47是一個7段碼數(shù)碼管的驅(qū)動芯片,通過它解碼,可以直接把數(shù)字轉(zhuǎn)換為 數(shù)碼管的顯示數(shù)字,從而簡化了程序,節(jié)約了單片機(jī)的10 口開銷。二、引腳排列及說明圖3-3引腳圖74ls47的外引線排列圖如上圖所示,說明鐵(1)lt:試燈輸入,lt = 0時各筆劃段全亮,顯示字型“8”;(2)bi/rbo:作輸入時為滅燈輸入,8/二0時各筆劃段全滅;(3)a、b、c、d (d為最高位)輸入二進(jìn)制碼;(4)bi/rbo:作為輸出端使用口寸為動態(tài)滅燈輸出,當(dāng)

36、動態(tài)滅燈輸入麗二0, 且dcba=0000時,bi/rbo=0,使所有筆劃段全部熄滅。(5)a、b、c、d、e、f、g為各筆劃段控制端,低電平輸出有效,配共陽極數(shù) 碼管。三、74ls47真值表表3-5 74ls47真值表輸入輸出字形ltrbirbo/bcihhhllll0hxhlllp1hxhllhi2hxhllh13hxhlhll4hxhlhl15hxhlhhl6hxh1hhr7hxhlll8hxhi-llr93.2.2內(nèi)部結(jié)構(gòu)本次設(shè)計使用的是共陽極的led數(shù)碼管,共陽就是7段的顯示字碼共用一個電源的正原理示意圖如下圖3-4所示w :數(shù)碼管內(nèi)部結(jié)構(gòu)圖如圖3-5所示:圖34數(shù)碼管原理示意圖vt

37、3.8乙、乙£乙、乙25_| :£erii乙z圖35數(shù)碼管內(nèi)部結(jié)構(gòu)圖3. 2. 3 led數(shù)碼管的驅(qū)動原理從圖3-5可以看出,要是數(shù)碼管顯示數(shù)字,有兩個條件川:1. 是要在vt端(3/8腳)加正電源;2. 要使(a, b, c, d, e, f, g, dp)端接低電平或“0”電平。這樣才能顯示的。 計算方法如下表3-6所示:表36數(shù)碼顯示計算方法dpgfedcba顯示編碼110000000coh111110011f9h101001002a4h101100003boh10011001499h10010010592h10000010682h111110007f8h100000

38、0088oh1001000099oh10001000a88h10001110f8eh第4章智能溫度控制系統(tǒng)的軟件設(shè)計本系統(tǒng)的軟件包括測試子程序、鍵盤子程序、測溫子程序、顯示子程序、控制系統(tǒng) 子程序、主程序(溫度調(diào)節(jié))。本章將分別介紹引腳和存儲單元分配及各個子程序。4.1總體設(shè)計4.1. 1引腳和存儲單元分配表41引腳和存儲單元分配表2011顯示緩沖區(qū)p0. 1 p0.3數(shù)碼管控制xula而21h小數(shù)部分p0. 4 p0. 7數(shù)碼輸出端2211整數(shù)部分p1op15按鍵輸入端23h個位數(shù)p2. 1溫度輸入端24h十位數(shù)p2.2報警輸出端25h符號位p23p26指示信號輸出端3011實測溫度p2.

39、7小數(shù)點輸出xu1a而33h設(shè)定溫度上限值p3. 2 (into)外部中斷輸入端34h設(shè)定溫度下限值p3. 5控制輸出端4. 2測試子程序一、程序功能該子程序主要是檢測該系統(tǒng)各個硬件電路是否可以正常工作。如果系統(tǒng)正常當(dāng)系統(tǒng) 得電吋,數(shù)碼管顯示888.8,狀態(tài)指示燈全亮,報警器報警,檢測3秒后系統(tǒng)轉(zhuǎn)入正常 工作狀態(tài):所有發(fā)光二極管熄滅,蜂鳴器停止聲響,數(shù)碼管顯示由ds18b20溫度傳感器 測得的當(dāng)前溫度。二、流程圖開始圖41測試子程序流程圖4.3顯示子程序一、程序功能本程序?qū)⒁@示的數(shù)據(jù)進(jìn)行十進(jìn)制轉(zhuǎn)換、解壓縮、然后通過p0 口送到數(shù)碼管去顯 示。本系統(tǒng)采用的動態(tài)顯示,動態(tài)顯示可以節(jié)約單片機(jī)的管腳

40、。動態(tài)顯示主要考慮的是 各個數(shù)碼管的顯示延時時間。使數(shù)碼管的顯示亮度正好。顯示采用四位數(shù),其屮兩位整數(shù)、一位小數(shù)、一位符號。本設(shè)計用的是共陽數(shù)碼管,采用動態(tài)顯示方法,由p0 口對其控制。其中:p0. 0、p0.1、p0. 2、p0. 3為顯示器的位選信號。當(dāng)p0. 3為低電平時,顯示符號位,當(dāng)p0.2為低電平時,顯示最高位;當(dāng)p0. 1為低電平時,顯示中間位;當(dāng)p0.0為低電 平時,顯示最低位,最低位總是為零。p2.7為小數(shù)點位的控制信號,當(dāng)p2.7為低電平時,小數(shù)點亮。p0.4p0.7為顯示數(shù)據(jù)輸出端,要數(shù)碼管顯示一個完整的數(shù)字,需要7位數(shù)據(jù),因此要對單片機(jī)輸出的顯示數(shù)據(jù)進(jìn)行譯碼。由74ls

41、47來完成。先根據(jù)要顯示的數(shù)查表找到那個數(shù),再把它經(jīng)過譯碼器譯碼輸出給數(shù)碼管顯示。圖4-2顯示電路二、流程圖圖牛7字形子程序流程圖圖4七十進(jìn)制轉(zhuǎn)換子程序流程圖一、程序功能該子程序主要是調(diào)整溫度設(shè)定值,該程序主要考慮的是防按鍵抖動,在這里可以判 斷兩次按鍵在兩次判斷中間加入延時。按下設(shè)定鍵set,進(jìn)入外部中斷子程序,設(shè)定指 示燈亮,數(shù)碼管顯示設(shè)定值。如果設(shè)定值小于99.5,則按一下“ + ”鍵設(shè)定值加0.5; 如果設(shè)定值等于99.5,則按“ + ”鍵無效。如果設(shè)定值大于0,則按一下“-”鍵設(shè)定值 減0.5;如果設(shè)定值等于0,則按“-”鍵無效。按下確認(rèn)鍵設(shè)定指示燈滅,數(shù)碼管顯示 實測值,跳出中斷。

42、圖4-8按鍵電路二、流程圖圖49鍵盤子程序流程圖一、程序功能溫度傳感器通過測溫子程序,測得外部溫度,進(jìn)行數(shù)據(jù)調(diào)整通過p2.1 口送到單片 機(jī)中與設(shè)定溫度相比較從而控制電熱器去工作。vccp2. 1dqgnd吉 ds18b20圖410溫度采集電路二、流程圖圖4/1測溫子程序流程圖一、程序功能木次控制加熱電壓采取的是控制可控硅的導(dǎo)通角來實現(xiàn)的。想要控制可控硅首先我們應(yīng)該采集到 加熱電壓的正弦波的零點。我采取的辦法是利用外中斷的方法跳入中斷子程序內(nèi)進(jìn)行執(zhí)行調(diào)控工作。 如圖4-14所示在將220v電壓將為9v電壓之后經(jīng)過三極管的作用由于只有大于導(dǎo)通電壓時才會變?yōu)?低電壓,所以會形成圖4-12所示圖形。

43、于是當(dāng)處于下降沿的時候回事外部中斷一進(jìn)入中斷。進(jìn)入中斷子程序內(nèi)后會立即開啟定時器進(jìn)行定時,到定時到圖4-13中to時會進(jìn)入定時器中斷子 程序并在定時器中斷子程序川發(fā)送高電平使可控硅導(dǎo)通。當(dāng)溫度上升時,定時時間也隨z加長使導(dǎo) 通角減小,電壓降低加熱速度降低。圖412信號生成原理圖當(dāng)進(jìn)入定時器中斷子程序時即在to時刻會向p3. 5發(fā)送低電平使其導(dǎo)通使加熱開始。每個周期內(nèi)都 會循環(huán)從而調(diào)控加熱電壓,達(dá)到緩慢加熱的目的。、電路圖圖4-14同步信號采集三、流程圖圖4/5加熱控制流程圖th/用戶宇節(jié)1tu用戶字節(jié)24.7 ds18b20 eeprom內(nèi)將溫度上下限值寫入讀出程序一、內(nèi)部存儲結(jié)構(gòu)圖及其操作指

44、令e2ram指令約定代碼功能溫度變換44h啟動ds1820進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時最長為750ms (9位為93.75ms) e結(jié)果存入內(nèi)部9字節(jié)ram中。讀新存器obiill讀內(nèi)部ram中9字節(jié)的內(nèi)容寫新存器4eh發(fā)出向內(nèi)部ram的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命 令,緊跟該命令z后,是傳送兩字節(jié)的數(shù)據(jù)。復(fù)制暫存器48h將ram中第3、4字節(jié)的內(nèi)容復(fù)制到eeprom中。重調(diào)eeprom0b8h將eeprom中內(nèi)容恢復(fù)到ram中的第3、4字節(jié)。讀供電方式ob4h讀ds1820的供電模式。寄生供電時ds1820發(fā)送 “ 0 ”,外接電源供電ds1820發(fā)送“ 1 ”。圖4-16ds18b20暫存

45、器表4-2 ds 18b20內(nèi)部ram指令表二、讀寫程序結(jié)構(gòu)圖圖4-17寫入eeprom內(nèi)的程序圖4-18從eeprom讀出的程序4. 8主程序一、程序功能主程序功能是判斷當(dāng)前溫度所處范圍,當(dāng)實際溫度低于設(shè)定溫度下限值五度吋,電 熱器加熱提高外部溫度,加熱指示亮;當(dāng)實際溫度低于設(shè)定溫度下限值并在五度之內(nèi)時, 隨著溫度上升加熱電壓不斷減小。當(dāng)實際溫度等于或大于設(shè)定溫度時,電熱器停止加熱, 加熱指示燈滅,保溫指示燈亮;當(dāng)實際溫度在設(shè)定上限值與下限值之間時保持上一狀態(tài)。 當(dāng)實際溫度高于下限溫度5°c時,報警器報警并且會開啟風(fēng)扇。由于加熱器件采用的220v的電源供電,所以用光耦m0c3021

46、對其與單片機(jī)電路進(jìn) 行隔離。由程序產(chǎn)牛的高低電平從p3. 5 口輸出,通過光電耦合器控制可控硅bta12的 導(dǎo)通角,從而達(dá)到控制加熱器加熱電壓的效果。由p2. 2p2. 6輸出高低電平控制發(fā)光二極管的亮滅和蜂鳴器的報警功能。發(fā)光二極管和蜂鳴器的負(fù)極分別接p2 口,正極接+5v,當(dāng)其對應(yīng)的口輸出為低電平圖420散熱電路圖eapseieimdei二、流程圖11<4u1u;>1a*11n1±r7圖421狀態(tài)指示電路保溫顯示實測溫度允許外部中斷0中斷給溫度上下限直初值停止報姿調(diào)甲測試子程序啟動指示燈亮圖牛22主程序流程圖第五章軟件調(diào)試5. 1調(diào)試軟件的介紹偉福仿真器簡介一.仿真頭

47、介紹p0d8x5xp仿真頭為p0d8x5x改進(jìn)型??膳鋏2000系列,e6000系列,k51系列仿真器,用于仿真 mcs51系列及兼容單片機(jī),可仿真cpu種類為8031/32, 8051/52, 875x, 89c5x, 89cx051,華邦的 78e5x, lg的97c51/52/1051/2051o配有40腳dip封裝的轉(zhuǎn)接座,可選配44腳plcc封裝的轉(zhuǎn)接座. 選配2051轉(zhuǎn)接座可仿真20腳dip封裝的圖5-289cx051cpu。當(dāng)用戶板功耗不大時,可以短接5v電源輸岀跳線,由仿真器供電給用戶板,一般 情況下請不要短接此跳線。如果短接復(fù)位信號輸出跳線,當(dāng)用軟件復(fù)位程序時,仿真頭的復(fù)位腳

48、會 輸出一個復(fù)位信號,以復(fù)位用戶板的其它器件。注意:如果用戶板有復(fù)位電路,請不要短接此跳線。 p0dh8x5x / p0dh591 仿真頭p0dh8x5x運用philips授權(quán)的ii00ks技術(shù)用philips芯片作為仿真芯片,來仿真各類與mcs51兼 容的mcu,仿真頭的原有的p87c52可仿真通用的8x5x系列芯片,可以將p87c52換成philips的 p89c51rx+或p89c51rx2來仿真相應(yīng)的mcu,也可以換成philips的p89c66x用于仿真philips的 p89c66x系列mcu。朗 p89c51rd2和p89c66x內(nèi)部帶有擴(kuò)展ram,可以借用p89c51rd2或p

49、89c66x來 仿真帶擴(kuò)展ram的cpu,例如winbond的78e58b、78e516等。20芯電纜34芯電堆三角與三角對接圓與圓對接20 »i »philips 仿真 cpu晶張選擇跳線 科選擇仿貞頭晶孤 d選擇用戶板晶振 ' 1 k 匸i i i i i電源選擇跳線 普通仿真方式匚”5電源輸出外部電源接入遼取a圖5-3p0dh8x5x可以從外部引入仿真電源,來仿真2.7v5.5v用戶電壓,當(dāng)用戶需要仿真低電壓吋, 將“電源選擇跳線”接成“外部電源接入”方式即可。仿真頭的低電壓由用戶板提供。注意:當(dāng)用 戶想仿真低電壓時,仿真頭上的仿真cpu必須能工作于低電壓狀態(tài)。(詳見p0dh8x

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論