2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩38頁(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、<p><b>  單片機(jī)課程設(shè)計(jì)</b></p><p>  題目: 水溫控制器設(shè)計(jì)</p><p>  院系: 電氣信息工程學(xué)院</p><p>  專(zhuān)業(yè): 電子信息工程</p><p>  班級(jí): </p><p>  姓名: xx<

2、;/p><p>  學(xué)號(hào): xxxxx</p><p>  指導(dǎo)老師: xxxxx</p><p>  日期: 2013年12月15日-12月29日</p><p><b>  xx</b></p><p>  課 程 設(shè) 計(jì) 任 務(wù) 書(shū)</p><p>  題目

3、 : 水溫控制器設(shè)計(jì) </p><p>  專(zhuān)業(yè)、班級(jí) 電信10-2班 學(xué)號(hào) 5xxxxx 姓名 :xxxx </p><p>  主要內(nèi)容、基本要求、主要參考資料等:</p><p><b>  一、主要內(nèi)容:</b></p><p> ?、?熟悉單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法和

4、規(guī)范,達(dá)到綜合的目的。</p><p> ?、?學(xué)習(xí)文件檢索和查找數(shù)據(jù)手冊(cè)的能力。</p><p>  ③ 學(xué)習(xí)protel軟件的使用。</p><p>  ④ 學(xué)會(huì)整理和總結(jié)設(shè)計(jì)文檔報(bào)告。</p><p><b>  二、基本要求:</b></p><p> ?、?以MCS-51系列單片機(jī)為核心

5、,組成一個(gè)水溫自動(dòng)控制系統(tǒng)。</p><p>  ② 系統(tǒng)顯示由6位數(shù)碼管顯示組成,分別顯示設(shè)定溫度和實(shí)時(shí)溫度。</p><p> ?、?溫度設(shè)定范圍40℃~90℃。最小區(qū)分度為0.2℃</p><p>  ④ 能夠隨時(shí)對(duì)設(shè)定溫度進(jìn)行調(diào)整。</p><p> ?、?到達(dá)設(shè)定溫度時(shí),給出提醒信號(hào)。</p><p> ?、?/p>

6、 加熱器用1KW的電爐。</p><p><b>  三、主要參考資料:</b></p><p>  ① 張毅坤等 單片微型計(jì)算機(jī)原理及應(yīng)用 西安 西安電子科技大學(xué)出版社</p><p> ?、?李建忠編著 單片機(jī)原理及應(yīng)用 西安 西安電子科技大學(xué)出版社</p><p>  完 成 期 限:

7、 </p><p>  指導(dǎo)教師簽名: </p><p>  課程負(fù)責(zé)人簽名: </p><p>  2013年 12月 29 日</p><p><b>  水溫控制器設(shè)計(jì)</b></p><p><b>

8、;  摘 要</b></p><p>  隨著國(guó)民經(jīng)濟(jì)和國(guó)內(nèi)工業(yè)的發(fā)展,人們需要對(duì)各種家用電器和工業(yè)設(shè)備的溫度控制,采用單片機(jī)來(lái)對(duì)它們進(jìn)行控制不僅具有控制簡(jiǎn)單、方便和靈活性大優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。目前的水溫控制系統(tǒng)多采用由模擬溫度傳感器,多路模擬開(kāi)關(guān),A/D轉(zhuǎn)換器及單片機(jī)等組成的傳輸系統(tǒng)。水溫控制在工業(yè)及日常生活中應(yīng)用廣泛,分類(lèi)較多,不同水溫控

9、制系統(tǒng)的控制方法也不盡相同。</p><p>  本設(shè)計(jì)采用單片機(jī)作為水溫控制系統(tǒng)的控制核心,實(shí)現(xiàn)人工設(shè)定溫度,自動(dòng)控制溫度,顯示水的實(shí)時(shí)溫度等功能。水溫測(cè)試方式采用集成模擬溫度傳感器感知器皿中水的溫度,并用運(yùn)算放大器將傳感器輸出的微弱模擬電壓信號(hào)進(jìn)行放大。它以單片機(jī)ST89C51為核心,使用溫度傳感器DS1820采集實(shí)時(shí)溫度并通過(guò)數(shù)碼管顯示,提供各種運(yùn)行指示燈來(lái)指示系統(tǒng)現(xiàn)在所處狀態(tài),該軟件和系統(tǒng)硬件已經(jīng)完成,在

10、軟件PROTEL中,系統(tǒng)進(jìn)行了仿真,并且系統(tǒng)的設(shè)計(jì)進(jìn)行了驗(yàn)證也是合理的。最后根據(jù)電路的設(shè)計(jì),用面包板來(lái)焊接電路板及進(jìn)行實(shí)際調(diào)試。試驗(yàn)表明,人工設(shè)定溫度、溫度自動(dòng)控制、實(shí)時(shí)顯示水溫等功能都可以實(shí)現(xiàn)。</p><p>  關(guān)鍵詞 單片機(jī) 模數(shù)轉(zhuǎn)換器 溫度控制 數(shù)碼管 溫度傳感器都是DS1820</p><p><b>  1 緒論</b></p><

11、p>  1.1 水溫控制系統(tǒng)介紹</p><p>  本系統(tǒng)的設(shè)計(jì)可以用于水溫控制系統(tǒng)和電飯煲等各種電器電路中。它以單片機(jī)AT89S52為核心,通過(guò)數(shù)碼管顯示溫度和語(yǔ)音提示實(shí)現(xiàn)人機(jī)對(duì)話,使用溫度轉(zhuǎn)換芯片DS18B20實(shí)時(shí)采集溫度并通過(guò)數(shù)碼管顯示,并提供各種運(yùn)行指示燈用來(lái)指示系統(tǒng)現(xiàn)在所處狀態(tài),如:溫度設(shè)置、加熱、停止加熱等,整個(gè)系統(tǒng)通過(guò)四個(gè)按鍵來(lái)設(shè)置加熱溫度和控制運(yùn)行模式。</p><p&

12、gt;  溫度控制系統(tǒng)可以說(shuō)是無(wú)所不在,熱水器系統(tǒng)、空調(diào)系統(tǒng)、冰箱、電飯煲、電風(fēng)扇等家電產(chǎn)品以至手持式高速高效的計(jì)算機(jī)和電子設(shè)備,均需要提供溫度控制功能。以計(jì)算機(jī)為例,當(dāng)中的中央處理器的運(yùn)行速度愈快,所耗散的熱量便愈多,為免計(jì)算機(jī)系統(tǒng)過(guò)熱而受損,有關(guān)系統(tǒng)必須加強(qiáng)溫度過(guò)高保護(hù)功能。</p><p>  傳統(tǒng)的溫度采集電路相當(dāng)復(fù)雜,需要經(jīng)過(guò)溫度采集、信號(hào)放大、濾波、AD轉(zhuǎn)換等一系列工作才能得到溫度的數(shù)字量,并且這種方

13、式不僅電路復(fù)雜,元器件個(gè)數(shù)多,而且線性度和準(zhǔn)確度都不理想,抗干擾能力弱?,F(xiàn)在常用的溫度傳感器芯片不但功率消耗低、準(zhǔn)確率高,而且比傳統(tǒng)的溫度傳感器有更好的線性表現(xiàn),最重要的一點(diǎn)是使用起來(lái)方便。</p><p>  自動(dòng)控制儀器儀表總的發(fā)展趨勢(shì)是高性能、數(shù)字化、集成化、智能化和網(wǎng)絡(luò)化。智能溫度控制系統(tǒng)的設(shè)計(jì)是為了滿(mǎn)足市場(chǎng)對(duì)成本低、性能穩(wěn)定、可遠(yuǎn)程監(jiān)測(cè)、控制現(xiàn)場(chǎng)溫度的需求而做的課題,具有較為廣闊的市場(chǎng)前景。</p

14、><p>  本系統(tǒng)的核心控制芯片選用的是AT89C51D單片機(jī),單片機(jī)在各個(gè)技術(shù)領(lǐng)域中的迅猛發(fā)展,與單片機(jī)所構(gòu)成的計(jì)算機(jī)應(yīng)用系統(tǒng)的特點(diǎn)有關(guān):</p><p>  · 單片機(jī)構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。</p><p>  · 系統(tǒng)構(gòu)建簡(jiǎn)潔、易行,能方便的實(shí)現(xiàn)系統(tǒng)功能。</p><p>  · 由于構(gòu)成的系統(tǒng)

15、是一個(gè)計(jì)算機(jī)系統(tǒng),相當(dāng)多的功能由軟件實(shí)現(xiàn),故具有柔性特點(diǎn)。</p><p>  · 有優(yōu)異的性能價(jià)格比。</p><p><b>  1.2單片機(jī)概述</b></p><p>  單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),單片機(jī)芯片常用英文字母的縮寫(xiě)MCU表示單片機(jī),單片機(jī)又稱(chēng)單片

16、微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。單片機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出設(shè)備構(gòu)成,相當(dāng)于一個(gè)微型的計(jì)算機(jī)(最小系統(tǒng)),和計(jì)算機(jī)相比,單片機(jī)缺少了外圍設(shè)備等。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。它最早是被用在工業(yè)控制領(lǐng)域。</p><p>  由于單片

17、機(jī)在工業(yè)控制領(lǐng)域的廣泛應(yīng)用,單片機(jī)由僅有CPU的專(zhuān)用處理器芯片發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成于復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的8080是最早按照這種思想設(shè)計(jì)出的處理器,當(dāng)時(shí)的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)。因?yàn)楹?jiǎn)單可靠而性能不錯(cuò)獲得了很大的好評(píng)。盡管2000年以后ARM已經(jīng)發(fā)

18、展出了32位的主頻超過(guò)300M的高端單片機(jī),直到現(xiàn)在基于8051的單片機(jī)還在廣泛的使用。在很多方面單片機(jī)比專(zhuān)用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了廣泛的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多處理器,隨著單片機(jī)家族的發(fā)展壯大,單片機(jī)和專(zhuān)用處理器的發(fā)展便分道揚(yáng)鑣。</p><p>  現(xiàn)代人類(lèi)生活中所用的幾乎每件有電子器件的產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電子產(chǎn)品中

19、都含有單片機(jī)。 汽車(chē)上一般配備40多片單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百片單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量遠(yuǎn)遠(yuǎn)超過(guò)PC機(jī)和其他計(jì)算機(jī)的總和。</p><p>  1.3 單片機(jī)的發(fā)展及趨勢(shì)</p><p>  早期階段:SCM即單片微型計(jì)算機(jī)(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)?!皠?chuàng)新模式”獲得成功,奠定了SCM

20、與通用計(jì)算機(jī)完全不同的發(fā)展道路。在開(kāi)創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,Intel公司功不可沒(méi)。</p><p>  中期發(fā)展:MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時(shí),對(duì)象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對(duì)象的智能化控制能力。它所涉及的領(lǐng)域都與對(duì)象系統(tǒng)相關(guān),因此,發(fā)展MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來(lái)看,Intel

21、逐漸淡出MCU的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。</p><p>  Philips公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢(shì),將MCS-51從單片微型計(jì)算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時(shí),不要忘記Intel和Philips的歷史功績(jī)。</p><p>  當(dāng)前趨勢(shì):SOC嵌入式系統(tǒng)(System on Chip)式的獨(dú)立發(fā)展之路

22、,向MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決,因此,專(zhuān)用單片機(jī)的發(fā)展自然形成了SOC化趨勢(shì)。隨著微電子技術(shù)、IC設(shè)計(jì)、EDA工具的發(fā)展,基于SOC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會(huì)有較大的發(fā)展。因此,對(duì)單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。</p><p><b>  2 系統(tǒng)總體設(shè)計(jì)</b></p><p><b> 

23、 2.1硬件總體設(shè)計(jì)</b></p><p>  本次設(shè)計(jì)主要思路是通過(guò)對(duì)單片機(jī)編程將由溫度傳感器DS18B20采集的溫度外加驅(qū)動(dòng)電路顯示出來(lái),包括對(duì)繼電器的控制,進(jìn)行升溫,當(dāng)溫度達(dá)到上下限蜂鳴器進(jìn)行報(bào)警。P1.7開(kāi)關(guān)按鈕是用于確認(rèn)設(shè)定溫度的,初始按下表示開(kāi)始進(jìn)入溫度設(shè)定狀態(tài),然后通過(guò)P1.5和P1.6設(shè)置溫度的升降,再次按下P1.7時(shí),表示確認(rèn)所設(shè)定的溫度,然后轉(zhuǎn)入升溫或降溫。P2.3所接的發(fā)光二極

24、管用于表示加熱狀態(tài),P2.5所接的發(fā)光二極管用于表示保溫狀態(tài)。P2.3接繼電器。P3.1是溫度信號(hào)線。整個(gè)電路都是通過(guò)軟件控制實(shí)現(xiàn)設(shè)計(jì)要求。設(shè)計(jì)并制作一個(gè)基于單片機(jī)的熱水器溫度控制系統(tǒng)的電路,其結(jié)構(gòu)框圖如圖2-1:</p><p>  圖 2-1 系統(tǒng)結(jié)構(gòu)框圖</p><p>  2.2 硬件系統(tǒng)子模塊</p><p>  (1) 單片機(jī)最小系統(tǒng)電路部分</p

25、><p>  (2) 鍵盤(pán)掃描電路部分</p><p>  (3) 數(shù)碼管溫度顯示和運(yùn)行指示燈電路部分</p><p>  (4) 溫度采集電路部分</p><p>  (5) 繼電器控制部分</p><p><b>  (6) 報(bào)警部分</b></p><p>  2.3 軟

26、件總體設(shè)計(jì)</p><p>  良好的設(shè)計(jì)方案可以減少軟件設(shè)計(jì)的工作量,提高軟件的通用性,擴(kuò)展性和可讀性。</p><p>  本系統(tǒng)的設(shè)計(jì)方案和步驟如下:</p><p>  (1) 根據(jù)需求按照系統(tǒng)的功能要求,逐級(jí)劃分模塊。</p><p>  (2) 明確各模塊之間的數(shù)據(jù)流傳遞關(guān)系,力求數(shù)據(jù)傳遞少,以增強(qiáng)各模塊的獨(dú)立性,便于軟件編制和調(diào)

27、試。</p><p>  (3) 確定軟件開(kāi)發(fā)環(huán)境,選擇設(shè)計(jì)語(yǔ)言,完成模塊功能設(shè)計(jì),并分別調(diào)試通過(guò)。</p><p>  (4) 按照開(kāi)發(fā)式軟件設(shè)計(jì)結(jié)構(gòu),將各模塊有機(jī)的結(jié)合起來(lái),即成一個(gè)較完善的系統(tǒng)。</p><p>  首先接通電源系統(tǒng)開(kāi)始工作,系統(tǒng)開(kāi)始工作后,通過(guò)按鍵設(shè)定溫度值的上限值和下限值,確定按鍵將設(shè)定的溫度值存儲(chǔ)到指定的地址空間,溫度傳感器開(kāi)始實(shí)時(shí)檢測(cè),

28、調(diào)用顯示子程序顯示檢測(cè)結(jié)果,調(diào)用比較當(dāng)前顯示溫度值與開(kāi)始設(shè)定的溫度值比較,如果當(dāng)前顯示值低于設(shè)定值就通過(guò)繼電器起動(dòng)加熱裝置,直到達(dá)到設(shè)定值停止加熱,之后進(jìn)行保溫,如果溫度高于上限進(jìn)行報(bào)警。</p><p><b>  3 系統(tǒng)硬件設(shè)計(jì)</b></p><p>  3.1 AT89C51系列單片機(jī)介紹</p><p>  3.1.1 AT89C5

29、1系列基本組成及特性</p><p>  AT89C51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱(chēng)單片機(jī)。而在眾多的51系列單片機(jī)中,要算ATMEL 公司的AT89C51更實(shí)用,也是一種高效微控制器,因?yàn)樗坏?051指令、管腳完全兼容,而且其片內(nèi)的4K程序

30、存儲(chǔ)器是FLASH工藝的,這種工藝的存儲(chǔ)器,用戶(hù)可以用電的方式達(dá)到瞬間擦除、改寫(xiě)。而這種單片機(jī)對(duì)開(kāi)發(fā)設(shè)備的要求很低,開(kāi)發(fā)時(shí)間也大大縮短。</p><p>  AT89C51基本功能描述如下:AT89C51是一種低損耗、高性能、CMOS八位微處理器,而且在其片種還有4k字節(jié)的在線可重復(fù)編程快擦快寫(xiě)程序存儲(chǔ)器,能重復(fù)寫(xiě)入/擦除1000次,數(shù)據(jù)保存時(shí)間為十年。它與MCS-51系列單片機(jī)在指令系統(tǒng)和引腳上完全兼容,不僅可

31、完全代替MCS-51系列單片機(jī),而且能使系統(tǒng)具有許多MCS-51系列產(chǎn)品沒(méi)有的功能。AT89C51可構(gòu)成真正的單片機(jī)最小應(yīng)用系統(tǒng),縮小系統(tǒng)體積,增加系統(tǒng)的可靠性,降低了系統(tǒng)成本。只要程序長(zhǎng)度小于4k, 四個(gè)I/O口全部提供給用戶(hù)??捎?V電壓編程,而且寫(xiě)入時(shí)間僅10毫秒, 僅為8751/87C51 的擦除時(shí)間的百分之一,與8751/87C51的12V電壓擦寫(xiě)相比, 不易損壞器件, 沒(méi)有兩種電源的要求,改寫(xiě)時(shí)不拔下芯片,適合許多嵌入式控制

32、領(lǐng)域。AT89C51 芯片提供三級(jí)程序存儲(chǔ)器鎖定加密,提供了方便靈活而可靠的硬加密手段, 能完全保證程序或系統(tǒng)不被仿制。另外,AT89C51 還具有MCS-51系列單片機(jī)的所有優(yōu)點(diǎn)。128×8 位內(nèi)部RAM, 32 位雙向輸入輸出線, 兩個(gè)十六位定時(shí)器/計(jì)時(shí)器, 5個(gè)中斷源, 兩級(jí)中斷優(yōu)先級(jí), 一個(gè)全</p><p>  3.1.2 AT89C51系列引腳功能</p><p> 

33、 AT89C51有40引腳雙列直插(DIP)形式。其與80C51引腳結(jié)構(gòu)基本相同,其邏輯引腳圖如圖3-1。</p><p>  圖3-1 AT89C51邏輯引腳圖</p><p>  各引腳功能敘述如下:</p><p><b>  電源和晶振</b></p><p>  VCC——運(yùn)行和程序校驗(yàn)時(shí)加+5V </

34、p><p><b>  GND——接地</b></p><p>  XTAL1——輸入到振蕩器的反向放大器</p><p>  XTAL2——反向放大器的輸出,輸入到內(nèi)部時(shí)鐘發(fā)生器(當(dāng)使用外部振蕩器時(shí),XTAL1接地,XTAL2接收振蕩器信號(hào))</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器

35、周期的高電平時(shí)間。</p><p>  ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只

36、有在執(zhí)行MOVX,MOVC指令時(shí)ALE才起作用。另外,該引腳被略微拉高。</p><p>  2. I/O(4個(gè)口,32根) </p><p>  P0口——8位、漏極開(kāi)路的雙向I/O口。當(dāng)使用片外存儲(chǔ)器(ROM、RAM)時(shí),作地址和數(shù)據(jù)分時(shí)復(fù)用。在程序校驗(yàn)期間,輸出指令字節(jié)(需加外部上拉電路)。P0口(作為總線時(shí))能驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。 </p><p>  

37、P1口——8位、準(zhǔn)雙向I/O口。在編程/校驗(yàn)期間,用于輸入低位字節(jié)地址。P1口可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。對(duì)于80C51,P1.0——T2,是定時(shí)器的計(jì)數(shù)端且位輸入;P1.1——T2EX,是定時(shí)器的外部輸入端。這時(shí),讀兩個(gè)特殊輸入引腳的輸出鎖存器應(yīng)由程序置。</p><p>  P2口——8位、準(zhǔn)雙向I/O口。當(dāng)使用片外存儲(chǔ)器(ROM及RAM)時(shí),輸出高8位地址。在編程/校驗(yàn)期間,接收高位字節(jié)地址。P2口可以驅(qū)動(dòng)4

38、個(gè)LSTTL負(fù)載。</p><p>  P3口——8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電路。P3口提供各種替代功能。在提供這些功能時(shí),其輸出鎖存器應(yīng)由程序置1。P3口可以輸入/輸出4個(gè)LSTTL負(fù)載。</p><p><b>  3 .串行口</b></p><p>  P3.0——RXD(串行輸入口),輸入。</p><p&

39、gt;  P3.1——TXD(串行輸出口),輸出。</p><p><b>  4.中斷</b></p><p>  P3.2——INT0外部中斷0,輸入。 </p><p>  P3.3——INT1外部中斷1,輸入。 </p><p>  5.定時(shí)器/計(jì)數(shù)器 </p><p>  P3.4——T

40、0定時(shí)器/計(jì)數(shù)器0的外部輸入,輸入。 </p><p>  P3.5——T1定時(shí)器/計(jì)數(shù)器1的外部輸入,輸入。 </p><p><b>  6.?dāng)?shù)據(jù)存儲(chǔ)器選通</b></p><p>  P3.6——WR低電平有效,輸出,片外存儲(chǔ)器寫(xiě)選通。 </p><p>  P3.7——RD低電平有效,輸出,片外存儲(chǔ)器讀選通。&l

41、t;/p><p>  7.控制線(共4根) 輸入:</p><p>  RST——RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  EA/Vpp——片外程序存儲(chǔ)器訪問(wèn)允許信號(hào),低電平有效。在編程時(shí),其上施加21V的編程電壓。注意:在加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電

42、源(VPP)。</p><p>  輸入、輸出:ALE/PROG——地址鎖存允許信號(hào),輸出。ALE以1/6的振蕩頻率穩(wěn)定速率輸出,可用作對(duì)外輸出的時(shí)鐘或用于定時(shí)。在EPROM編程期間,作輸入,輸入編程脈沖(PROG)。ALE可以驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻

43、率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。</p><p>  3.1.3單片機(jī)最小系統(tǒng)</p><p>  因?yàn)?9C51單片機(jī)內(nèi)部自帶8K的ROM和256字節(jié)的RAM,因此不必構(gòu)建單片機(jī)系統(tǒng)的擴(kuò)展電路。如圖3-1,單片機(jī)最小系統(tǒng)有復(fù)位電路和振蕩器電路。值得注意的一點(diǎn)是單片機(jī)的31腳必須接高電平,否則系統(tǒng)將不能運(yùn)行。因?yàn)樵撃_不接時(shí)為低電平,單片機(jī)將直接讀取外部程

44、序存儲(chǔ)器,而系統(tǒng)沒(méi)有外部程序存儲(chǔ)器,所以必須接VCC。在按鍵兩端并聯(lián)一個(gè)電解電容,濾除交流干擾,增加系統(tǒng)抗干擾能力。</p><p>  圖3-2 單片機(jī)最小系統(tǒng)圖</p><p>  時(shí)鐘電路對(duì)于單片機(jī)系統(tǒng)而言是必須的由于單片機(jī)內(nèi)部是由各種各樣的數(shù)字邏輯器件構(gòu)成,而這些器件又必須按時(shí)間順序完成。所以在管腳的XTAL1和XTAL2引腳外接石英晶體和倆個(gè)諧振電容,電容采用2個(gè)30pF電容,采

45、用12M的石英晶體。這樣就可以構(gòu)成89C51的基本時(shí)鐘電路,時(shí)鐘頻率為12M。</p><p>  復(fù)位電路是對(duì)單片機(jī)進(jìn)行初始化操作,使單片機(jī)處于一個(gè)確定的初始狀態(tài)。而要89c51復(fù)位得在RESETY引腳上加5ms的高電平信號(hào)就可以了。當(dāng)石英晶體頻率為12M Hz,復(fù)位電路參數(shù)為10UF的電解電容和10kΩ的電阻。</p><p>  3.2 溫度采集電路</p><p

46、>  3.2.1 DS18B20介紹</p><p>  DS18B20是DALLAS公司的最新單線數(shù)字溫度傳感器,它的體積更小、適用電壓更寬、更經(jīng)濟(jì),DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器,一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶(hù)可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念,它的測(cè)量溫度范圍為-55~+125℃,在-10~+85℃范圍內(nèi),精度為±0.5℃,現(xiàn)場(chǎng)溫度直接以“

47、一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類(lèi)消費(fèi)電子產(chǎn)品等,與前一代產(chǎn)品不同,新的產(chǎn)品支持3~5.5V的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便,而且新一代產(chǎn)品更便宜,體積更小,DS18B20可以程序設(shè)定9~12位的分辨率,精度為±0.5℃??梢赃x擇更小的封裝方式,更寬的電壓適用范圍,分辨率設(shè)定及用戶(hù)設(shè)定的報(bào)警溫度存儲(chǔ)在E2PROM中,掉電后依然保存,DS18B

48、20的性能是新一代產(chǎn)品中最好的,性能價(jià)格比也非常出色,繼“一線總線”的早期產(chǎn)品后,DS18B20開(kāi)辟了溫度傳感器技術(shù)的新概念,DS18B20和DS18B22使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng)。</p><p>  圖3-3 DS18B20封裝</p><p><b>  引腳定義: </b></p><p>

49、  ① DQ為數(shù)字信號(hào)輸入/輸出端; </p><p> ?、?GND為電源地; </p><p>  ③ VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 </p><p>  3.2.2 DS18B20的單線(1-wire bus)系統(tǒng)</p><p>  單線總線結(jié)構(gòu)是DS18B20的突出特點(diǎn),也是理解和編程的難點(diǎn)。從兩個(gè)角度來(lái)

50、理解單線總線:第一,單線總線只定義了一個(gè)信號(hào)線,而且DS18B20智能程度較低(這點(diǎn)可以與微控制器和SPI器件間的通信做一個(gè)比較),所以DS18B20和處理器之間的通信必然要通過(guò)嚴(yán)格的時(shí)序控制來(lái)完成。第二,DS18B20的輸出口是漏級(jí)開(kāi)路輸出,這里給出一個(gè)微控制器和DS18B20連接原理圖。這種設(shè)計(jì)使總線上的器件在合適的時(shí)間驅(qū)動(dòng)它。顯然,總線上的器件與(wired AND)關(guān)系。這就決定:(1)微控制器不能單方面控制總線狀態(tài)。之所以提

51、出這點(diǎn),是因?yàn)橄喈?dāng)多的文獻(xiàn)資料上認(rèn)為,微控制器在讀取總線上數(shù)據(jù)之前的I/O口的置1操作是為了給DS18B20發(fā)送一個(gè)數(shù)據(jù)的信號(hào)。這是一個(gè)錯(cuò)誤的觀點(diǎn)。如果當(dāng)前DS18b20發(fā)送0,即使微控制器I/O口置1,總線狀態(tài)還是0;置1操作是為了是I/O口截止(cut off),以確保微控制器正確讀取數(shù)據(jù)。(2)除了DS18B20發(fā)送0的時(shí)間段,其他時(shí)間其輸出口自動(dòng)截止。自動(dòng)截止是為確保:1時(shí),在總線操作的間隙總線處于空閑狀態(tài),即高態(tài)。2時(shí),確保微

52、控制器在寫(xiě)1的時(shí)候DS18B20可以正確讀入。</p><p>  由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S52單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。</p><p> ?、?DS18B20的復(fù)位時(shí)序,如圖3-5</p><p&

53、gt;  圖3-4 DS18B20的復(fù)位時(shí)序圖</p><p> ?、?DS18B20的讀時(shí)序</p><p>  對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。</p><p>  對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60u

54、s才能完成。DS18B20的讀時(shí)序圖如圖3-6所示。</p><p>  圖3-5 DS18B20的讀時(shí)序</p><p>  ③ DS18B20的寫(xiě)時(shí)序</p><p>  對(duì)于DS18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。</p><p>  對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少6

55、0us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。如圖3-7所示。</p><p>  圖3-6 DS18B20的寫(xiě)時(shí)序圖</p><p>  3.2.3 DS18B20控制方法 </p><p>  在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是Vc

56、c接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無(wú)論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻。 </p><p>  DS18B20有六條控制命令,如表所示: </p><p>  表3-1 DS18B20控制指令</p><p>  CPU對(duì)DS18B20的訪問(wèn)流程

57、是:先對(duì)DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器操作,數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過(guò)程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。</p><p>  3.2.4 DS18B20的

58、測(cè)溫原理</p><p>  DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-

59、55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置

60、值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。 </p><p>  3.2.6 DS18B20溫度傳感器與單片機(jī)的接口電路</p><p>  DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖4 所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提

61、供足夠的電流,可用一個(gè)MOSFET管來(lái)完成對(duì)總線的上拉。當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p>  3.2.7 DS18B20設(shè)計(jì)中應(yīng)注意的幾個(gè)問(wèn)題</p><p>  DS18B20具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、

62、占用接口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20 與微處理器間采用串行數(shù)據(jù)傳送。因此, 在對(duì)DS18B20 進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在DS18B20 有關(guān)資料中均未提及1Wire上所掛DS18B20數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)1Wire上所掛DS18B20超過(guò)8個(gè)時(shí),就需要考慮

63、微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。連接DS18B20的總線電纜是有長(zhǎng)度限制的。實(shí)際應(yīng)用中,測(cè)溫電纜線建議采用屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接VCC 和地線,屏蔽層在源端單點(diǎn)接地。</p><p>  圖3-7 DS18B20與單片機(jī)連接圖</p><p>  本文以廣泛應(yīng)用的數(shù)字溫度傳感器DS18B20為例,說(shuō)明了1Wire總線的操作過(guò)程和

64、基本原理。事實(shí)上,基于1Wire總線的產(chǎn)品還有很多種,如1Wire總線的E2PROM、實(shí)時(shí)時(shí)鐘、電子標(biāo)簽等。他們都具有節(jié)省I/O資源、結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)快捷、成本低廉、便于總線擴(kuò)展等優(yōu)點(diǎn),因此有廣闊的應(yīng)用空間,具有較大的推廣價(jià)值。</p><p>  本設(shè)計(jì)將溫度傳感器DS18B20與單片機(jī)TXD引腳相連,讀取溫度傳感器的數(shù)值。DS18B20與單片機(jī)連接圖如圖所示3-7所示。</p><p>

65、<b>  3.3電源電路</b></p><p>  采用L7805穩(wěn)壓塊,輸出為5V。電子組件要正常運(yùn)作都需要電源電壓供電,一般常用的電源電壓為+5V或+12V,因?yàn)閿?shù)字IC (Ingegrated Circuit:集成電路)所供給的電壓為+5V,而CMOS IC所供給的電壓為+12V,7805是一個(gè)穩(wěn)壓塊。7805穩(wěn)壓管把高電壓轉(zhuǎn)換到低電壓,7805穩(wěn)壓管具有保護(hù)單片機(jī)的作用。L780

66、5輸出端要并聯(lián)上一個(gè)電解電容,濾除交流電干擾,防止損壞單片機(jī)系統(tǒng)。本設(shè)計(jì)采用兩種供電方式,一種為DC7~18V直流穩(wěn)壓電源變換成5V的直流電;另一種為四節(jié)干電池共6V經(jīng)二極管加壓后得到將近5V的直流電源,電源配以開(kāi)關(guān)和指示燈,以方便使用。黃色發(fā)光二極管表示保溫,紅色的表示加熱狀態(tài)。</p><p>  圖3-8 系統(tǒng)電源設(shè)計(jì)圖</p><p><b>  3.4報(bào)警電路設(shè)計(jì)<

67、;/b></p><p>  同時(shí)可以在系統(tǒng)里設(shè)定溫度上限值,由于加熱停止后,加熱管還有余熱當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時(shí),程序就會(huì)進(jìn)入報(bào)警子程序,觸發(fā)蜂鳴器進(jìn)行報(bào)警。報(bào)警電路原理圖如圖所示。</p><p>  圖3-9 報(bào)警電路圖</p><p>  圖中的三極管8550的作用是增加驅(qū)動(dòng)能力,比9012的驅(qū)動(dòng)電流還大些,因此選用8550。當(dāng)程

68、序進(jìn)入報(bào)警子程序時(shí),把P2.7置0,就會(huì)觸發(fā)蜂鳴器,為了使報(bào)警聲音效果更好,對(duì)P2.7取反,發(fā)出報(bào)警嘟嚕聲音。</p><p>  3.5加熱管控制電路設(shè)計(jì)</p><p>  繼電器是常用的輸出控制接口,可以做交直流信號(hào)的輸出切換。它具有控制系統(tǒng)(又稱(chēng)輸入回路)和被控制系統(tǒng)(又稱(chēng)輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開(kāi)關(guān)”。故在電路中起著自

69、動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。</p><p>  圖3-10加熱管控制電路</p><p>  繼電器控制接點(diǎn)操作說(shuō)明如下:</p><p>  COM:Common,共同點(diǎn)。輸出控制接點(diǎn)的共同接點(diǎn)。</p><p>  NC:Normal Close常閉點(diǎn)。以Com為共同點(diǎn),NC與COM在平時(shí)是呈導(dǎo)通狀態(tài)的。</p>&

70、lt;p>  NO:Normal Open常開(kāi)點(diǎn)。NO與COM在平時(shí)是呈開(kāi)路狀態(tài)的,當(dāng)繼電器動(dòng)作時(shí),NO與COM導(dǎo)通,NC與COM則呈開(kāi)路狀態(tài)。</p><p>  當(dāng)89S52的P2.5輸出高電平時(shí),繼電器不導(dǎo)通,反之當(dāng)輸出低電平時(shí),繼電器導(dǎo)通,這樣就激活了連接回路。</p><p><b>  4 系統(tǒng)軟件設(shè)計(jì)</b></p><p>

71、;  本系統(tǒng)采用的是循環(huán)查詢(xún)方式,來(lái)顯示和控制溫度的。主要包括四段程序的設(shè)計(jì):DS18B20讀溫度程序,數(shù)碼管的驅(qū)動(dòng)程序,鍵盤(pán)掃描程序,以及抱經(jīng)處理程序。</p><p>  4.1 主程序流程圖</p><p>  圖4-1 主程序流程圖</p><p>  4.2各個(gè)模塊的流程圖</p><p>  4.2.1讀取溫度DS18B20模塊的

72、流程</p><p>  由于DS18B20采用的是一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S52單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。</p><p>  DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念。因此系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)

73、位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)DS18B20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn), </p><p>  DS18B20必須首先調(diào)用啟動(dòng)溫度轉(zhuǎn)換函數(shù),根據(jù)數(shù)據(jù)手冊(cè)上對(duì)應(yīng)轉(zhuǎn)換時(shí)間來(lái)超作,如為12位轉(zhuǎn)換,則應(yīng)該是最大750mS,另外在對(duì)DS18B20超作時(shí),時(shí)序要求非常嚴(yán)格,因此最好禁止系統(tǒng)中斷。</p><p>  由于DS18B20是在一根I

74、/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。</p><p>  DS18B20的讀時(shí)序:&

75、lt;/p><p>  (1)對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。 </p><p> ?。?)對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。</p><p>  DS18B20的寫(xiě)時(shí)序:</p>&

76、lt;p> ?。?)對(duì)于DS18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。 </p><p> ?。?)對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。</p><p>  系統(tǒng)程序設(shè)計(jì)

77、主要包括三部分:讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、顯示溫度子程序。</p><p>  圖4-2讀取溫度DS18B20模塊的流程圖</p><p><b>  程序代碼為:</b></p><p>  GET_TEMPER:SETBDQ;讀出轉(zhuǎn)換后的溫度值</p><p>  LCALLINIT_1820;先復(fù)

78、位DS18B20</p><p>  JBFLAG1,TSS2</p><p>  RET;判斷DS1820是否存在?若DS18B20不存在則返回</p><p>  TSS2:MOV A,#0CCH;DS18B20已經(jīng)被檢測(cè)到!!!!!!!!!!!!!!!跳過(guò)ROM匹配</p><p>  LCALLWRITE_1820</p&

79、gt;<p>  MOVA,#44H;發(fā)出溫度轉(zhuǎn)換命令</p><p>  LCALLWRITE_1820</p><p>  LCALL DISPLAY;這里通過(guò)調(diào)用顯示子程序?qū)崿F(xiàn)延時(shí)一段時(shí)間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒</p><p>  LCALLINIT_1820;準(zhǔn)備讀溫度前先復(fù)位</p><p&

80、gt;  MOVA,#0CCH;跳過(guò)ROM匹配</p><p>  LCALLWRITE_1820</p><p>  MOVA,#0BEH;發(fā)出讀溫度命令</p><p>  LCALLWRITE_1820</p><p>  LCALLREAD_18200;將讀出的溫度數(shù)據(jù)保存到35H/36H</p><

81、;p><b>  RET</b></p><p>  4.2.2鍵盤(pán)掃描處理流程</p><p>  此流程為鍵盤(pán)掃描處理,CPU通過(guò)檢測(cè)各數(shù)據(jù)線的狀態(tài)(0或1)就能知道是否有按鍵閉合以及哪個(gè)按鍵閉合。鍵盤(pán)管理程序的功能是檢測(cè)是否有按鍵閉合,如果有按鍵閉合,消除抖動(dòng),根據(jù)鍵號(hào)轉(zhuǎn)到相應(yīng)的鍵處理程序,按鍵流程圖如圖4-3所示。</p><p>

82、;  圖 4-3鍵盤(pán)掃描子程序流程圖</p><p>  4.2.3 報(bào)警處理流程</p><p>  運(yùn)行程序后,溫度傳感器DS18B20即可對(duì)環(huán)境進(jìn)行溫度采集,并送LED數(shù)碼管顯示。我們可以在程序里設(shè)定溫度上限值,當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時(shí),程序就會(huì)進(jìn)入報(bào)警子程序,觸發(fā)蜂鳴器進(jìn)行報(bào)警。其程序流程圖如圖4-4所示。</p><p>  圖4-4

83、 報(bào)警子程序流程圖</p><p><b>  總 結(jié)</b></p><p>  通過(guò)本次的設(shè)計(jì),使我們不僅對(duì)單片機(jī)這門(mén)課程有了更深刻的認(rèn)識(shí),懂得了如何運(yùn)用課本知識(shí)結(jié)合實(shí)際來(lái)完成定時(shí)器的顯示和編程方法以及數(shù)碼顯示電路的驅(qū)動(dòng)方法,使我們能夠很快的適應(yīng)現(xiàn)代控制技術(shù)發(fā)展的需求,同時(shí)也提高了我們的思維能力和實(shí)際操作能力,為以后更好的走上工作崗位奠定了堅(jiān)實(shí)的基礎(chǔ)。</

84、p><p>  另外,這次的設(shè)計(jì)還讓我更進(jìn)一步的認(rèn)識(shí)了關(guān)于AT89S52等芯片的引腳功能以及使用方法,使我學(xué)會(huì)了應(yīng)用不同的芯片來(lái)配合完成整個(gè)設(shè)計(jì)的操作。</p><p>  在做硬件電路的這段時(shí)間里,從思考設(shè)計(jì)到對(duì)電路的調(diào)試經(jīng)過(guò)了許多困難。同樣在對(duì)軟件進(jìn)行設(shè)計(jì)時(shí),也可為一路坎坷。但是通過(guò)對(duì)軟硬件不斷撞墻,不斷思考解決問(wèn)題的過(guò)程中,我學(xué)會(huì)了很多東西,同時(shí)對(duì)單片機(jī)也有了更深的認(rèn)識(shí)。在做設(shè)計(jì)的時(shí)候,

85、很需要耐心和對(duì)事物的細(xì)心,很多時(shí)候一個(gè)簡(jiǎn)單問(wèn)題的一個(gè)簡(jiǎn)單的疏忽就會(huì)導(dǎo)致整個(gè)電路的不工作,只有不斷的檢查不斷的調(diào)試,才能真正完成一個(gè)設(shè)計(jì)的制作。只有不斷的發(fā)現(xiàn)問(wèn)題解決問(wèn)題,才能從問(wèn)題中改變自己,提升自己對(duì)單片機(jī)的能力。</p><p>  此設(shè)計(jì)雖然能夠完成溫度的顯示和控制,但功能和精度有待于進(jìn)一步提高。以后可以通過(guò)加入PID算法優(yōu)化控制功能,并通過(guò)液晶顯示屏實(shí)時(shí)顯示溫度。</p><p>

86、<b>  參考文獻(xiàn)</b></p><p>  [l] 樂(lè)建波 編著《溫度控制系統(tǒng)》化學(xué)工業(yè)出版社</p><p>  [2] [美]Ken C.Pohlmann 《數(shù)字音頻原理及應(yīng)用》.蘇菲.第4版.北京:電子工業(yè)出版社,2005,2</p><p>  [3] 謝自美 編著 《電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試(第二版)》 華

87、中科技大學(xué)出版社 2000</p><p>  [4] 陳東光 編著《單片微型計(jì)算機(jī)原理及C語(yǔ)言程序設(shè)計(jì)》華中科技大學(xué)出版社 2004.4</p><p>  [5] 武慶生 仇梅 編著 《單片機(jī)原理與應(yīng)用》 電子科技大學(xué)出版社 1998.2</p><p>  [6] 譚浩強(qiáng) 編著《C程序設(shè)計(jì)》.北京:清華大學(xué)出版社1999年</p><

88、p>  [7] 華中理工大學(xué)電子學(xué)教研室編 《電子技術(shù)基礎(chǔ)模擬部分(第四版)》高等教育出版社 1999.6</p><p>  [8] 華中理工大學(xué)電子學(xué)教研室編 《電子技術(shù)基礎(chǔ)數(shù)字部分(第四版)》高等教育出版社 2000.6</p><p>  [9] 趙晶 編著《電路設(shè)計(jì)與制版——Protel 99se 的高級(jí)應(yīng)用》 人民郵電出版社 2000.1</p>

89、<p>  [10] 《電子制作》2004.10</p><p>  [11] 王彬 任艷穎 編著《Digital IC System Design》 西安電子科技大學(xué)出版社 2005.9</p><p>  [12] 趙麗娟 邵欣編著《基于單片機(jī)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》 機(jī)械制造</p><p>  [13] 郭炳坤 簡(jiǎn)單的恒溫箱溫控電路[J].儀器

90、與未來(lái),1991</p><p>  [14] Guiyun Tian 《Foundation and Application of Microcontraller 》 高等教育出版社 2004.11</p><p>  [15](美)Bjarne Stroustrup 《THE C++ PROGRAMMING LANGUAGE, SPECIAL EDITION》 Addison Wesl

91、ey 1997</p><p><b>  附錄1:元器件清單</b></p><p><b>  附錄2:系統(tǒng)原理圖</b></p><p><b>  附錄3:程序清單</b></p><p>  EMPER_LEQU29H;用于保存讀出溫度的低8位</p>

92、;<p>  TEMPER_HEQU28H;用于保存讀出溫度的高8位</p><p>  FLAG1EQU38H;是否檢測(cè)到DS18B20標(biāo)志位</p><p>  A_BITEQU20H;數(shù)碼管個(gè)位數(shù)存放內(nèi)存位置</p><p>  B_BITEQU21H;數(shù)碼管十位數(shù)存放內(nèi)存位置</p><p>  

93、B1EQU70H;溫度小數(shù)點(diǎn)位</p><p>  A1EQU71H;設(shè)定溫度值</p><p>  DQEQUP3.1;DQ為DS18B20數(shù)據(jù)位</p><p>  BELLEQUP2.7;//蜂鳴報(bào)警</p><p>  ORG0000H;單片機(jī)內(nèi)存分配申明!</p><p>  AJ

94、MPMAIN0</p><p>  ;///////////////////////////////////前面的都是定義</p><p>  MAIN:MOVR0,#10</p><p>  M1:CPLP2.3</p><p>  ACALLDELAY125</p><p>  DJNZR0,M1;

95、//此段為燈閃5次,無(wú)實(shí)際意義</p><p>  MAIN0: MOVA1,#80;默認(rèn)加熱為80度</p><p>  MAIN1: LCALLD1820;調(diào)用讀溫度子程序</p><p>  LCALLDISPLAY;調(diào)用數(shù)碼管顯示子程序</p><p><b>  MOVA,29H</b>&

96、lt;/p><p><b>  CLRC</b></p><p>  CJNEA,A1,MAIN1_1</p><p>  SETBBELL;//溫度相等,關(guān)閉蜂鳴器</p><p>  AJMPMAIN1_1_A;//下等不用叫蜂鳴器</p><p>  MAIN1_1:JCMAIN1

97、_2;為1轉(zhuǎn)移,表示小于設(shè)定溫度</p><p>  CPLBELL;蜂鳴器斷續(xù)鳴叫</p><p>  MAIN1_1_A:CLRP2.3;//下面是表示沒(méi)達(dá)到溫度</p><p><b>  SETBP2.5</b></p><p>  AJMPMAIN2</p><p>  

98、;/////////////////////////////////////主要是檢測(cè)溫度是否小于設(shè)定的溫度,小于,則開(kāi)發(fā)熱管CLRP2.3</p><p>  MAIN1_2:SETBBELL;//關(guān)閉蜂鳴器</p><p>  CLRP2.5;//開(kāi)發(fā)熱管</p><p><b>  SETBP2.3</b></p>

99、<p>  ;///////////////////////////////上面的是大于,關(guān)發(fā)熱管</p><p>  MAIN2:JBP1.0,MAIN1;//看P1.0有否按下</p><p>  ACALLDELAY125;//延時(shí)防抖動(dòng),常用的手法,網(wǎng)上很多介紹的</p><p>  JBP1.0,MAIN1;//再次查看</

100、p><p><b>  CLRP2.3</b></p><p>  JNBP1.0,$;//等按鍵完全松手才進(jìn)入!</p><p><b>  SETBP2.3</b></p><p><b>  SETBP2.5</b></p><p>  ;/

101、//檢測(cè)到P1.0按鍵后后進(jìn)入設(shè)定溫度</p><p>  MAIN2_1:ACALLDISPLAY1</p><p>  JBP1.2,MAIN2_2</p><p>  ACALLDELAY125</p><p>  JBP1.2,MAIN2_2</p><p>  JNBP1.2,$</p>

102、;<p><b>  MOVA,#5</b></p><p><b>  ADDA,A1</b></p><p><b>  CLRC</b></p><p>  CJNEA,#100,MAIN2_1_1</p><p><b>  MOVA,

103、#99</b></p><p>  AJMPMAIN2_1_3</p><p>  ;////////////////上面這一段是+5度按鍵,按下+5度</p><p>  MAIN2_1_1:JCMAIN2_1_3</p><p>  MAIN2_1_2:CLRC</p><p><b&g

104、t;  MOVA,#99</b></p><p>  MAIN2_1_3:MOVA1,A</p><p>  MAIN2_2:JBP1.4,MAIN2_3</p><p>  ACALLDELAY125</p><p>  JBP1.4,MAIN2_3</p><p>  JNBP1.4,$

105、</p><p><b>  MOVA,A1</b></p><p>  CJNEA,#99,ZY1</p><p><b>  MOVB,#4</b></p><p><b>  AJMPZY2</b></p><p>  ZY1:MOVB

106、,#5</p><p>  ZY2:CLRC</p><p><b>  MOVA,A1</b></p><p><b>  SUBBA,B</b></p><p>  MAIN2_2_1:JNCMAIN2_2_2</p><p><b>  MOVA

107、1,#0</b></p><p>  AJMPMAIN2_3</p><p>  ;////////////////上面這一段是-5度按鍵,按下-5度</p><p>  MAIN2_2_2:MOVA1,A</p><p>  MAIN2_3:JBP1.6,MAIN2_1</p><p>  ACA

108、LLDELAY125</p><p>  JBP1.6,MAIN2_1</p><p><b>  CLRP2.3</b></p><p>  JNBP1.6,$</p><p><b>  SETBP2.3</b></p><p>  AJMPMAIN1<

109、/p><p>  ;/////////////上面這一段是退出的意思的!</p><p>  D1820:LCALLGET_TEMPER;調(diào)用讀溫度子程序</p><p>  MOVB1,29H</p><p><b>  MOVA,29H</b></p><p>  MOVC,40H;

110、將28H中的最低位移入C</p><p><b>  RRCA</b></p><p><b>  MOVC,41H</b></p><p><b>  RRCA</b></p><p><b>  MOVC,42H</b></p>

111、<p><b>  RRCA</b></p><p><b>  MOVC,43H</b></p><p><b>  RRCA</b></p><p><b>  MOV29H,A</b></p><p><b>  MOV

112、A,B1</b></p><p>  MOVB,#10H</p><p><b>  MULAB</b></p><p>  MOVB,#10H</p><p><b>  DIVAB</b></p><p><b>  MOVB,#10<

113、;/b></p><p><b>  MULAB</b></p><p>  MOVB,#10H</p><p><b>  DIVAB</b></p><p><b>  MOVB1,A</b></p><p><b>  RE

114、T</b></p><p>  ;//////////上面這一段是讀取溫度后進(jìn)行轉(zhuǎn)換的意思!</p><p>  INIT_1820:SETBDQ;這是DS18B20復(fù)位初始化子程序</p><p><b>  NOP</b></p><p>  CLRDQ;主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖<

115、;/p><p><b>  MOVR1,#3</b></p><p>  TSR1:MOVR0,#107</p><p><b>  DJNZR0,$</b></p><p>  DJNZR1,TSR1</p><p>  SETBDQ;然后拉高數(shù)據(jù)線</p&

116、gt;<p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOVR0,#25H</p>&

溫馨提示

  • 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ù)僅提供信息存儲(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)論