基于單片機(jī)的數(shù)字電子鐘溫度計(jì)的設(shè)計(jì)(共78頁(yè))_第1頁(yè)
基于單片機(jī)的數(shù)字電子鐘溫度計(jì)的設(shè)計(jì)(共78頁(yè))_第2頁(yè)
基于單片機(jī)的數(shù)字電子鐘溫度計(jì)的設(shè)計(jì)(共78頁(yè))_第3頁(yè)
基于單片機(jī)的數(shù)字電子鐘溫度計(jì)的設(shè)計(jì)(共78頁(yè))_第4頁(yè)
基于單片機(jī)的數(shù)字電子鐘溫度計(jì)的設(shè)計(jì)(共78頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩85頁(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、桂林航天工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)第 頁(yè)第 頁(yè) NO: 桂林航天工業(yè)學(xué)院(xuyun)畢業(yè)論文(b y ln wn) 題目(tm): 專(zhuān)業(yè): 姓名: 學(xué)號(hào): 指導(dǎo)教師: 20 年 月 日 桂林航天工業(yè)學(xué)院(xuyun)自動(dòng)化系畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書(shū)專(zhuān)業(yè)(zhuny):年級(jí): 姓名學(xué)號(hào)指導(dǎo)教師(簽名)畢業(yè)設(shè)計(jì)題目任務(wù)下達(dá)日期20 年1月10日 設(shè)計(jì)提交期限20 年6 月10 日設(shè)計(jì)主要內(nèi)容能夠使用Protel 99 SE繪制電路原理圖和印刷電路板PBC;能夠應(yīng)用Keil uVision源代碼編輯、調(diào)試;最后進(jìn)行軟件和硬件總調(diào)試,將HEX文件下載到單片機(jī)內(nèi)。完成論文的寫(xiě)作。有條件的情況下,做成產(chǎn)

2、品。主要技術(shù)參數(shù)指標(biāo)本產(chǎn)品硬件主要由單片機(jī)89S51、液晶顯示器LCD1602、萬(wàn)年歷芯片DS1302和溫度傳感器DS18B20等組成。軟件要求實(shí)現(xiàn)以下功能正常的走時(shí)和年月日時(shí)分秒顯示、用一開(kāi)關(guān)可控制不顯示測(cè)量溫度并顯示用戶(hù)可設(shè)置初始時(shí)間和日期??稍O(shè)置多個(gè)鬧鐘和整點(diǎn)報(bào)時(shí)各芯片的硬件連接和軟件編程調(diào)試。成果提交形式設(shè)計(jì)進(jìn)度安排第12周 審題、調(diào)研,收集資料,了解系統(tǒng)開(kāi)發(fā)的意義及需求第3周 開(kāi)題報(bào)告、英文資料的翻譯第4周 配置開(kāi)發(fā)環(huán)境并熟悉該環(huán)境下的編程語(yǔ)言(匯編語(yǔ)言或C語(yǔ)言)第510周 硬件設(shè)計(jì)(原理圖和印刷電路板)、編寫(xiě)程序代碼第12周 調(diào)試、修改程序第1314周 撰寫(xiě)論文初稿第15周 整理論

3、文初稿,排版并打印初稿第16周 修改論文,定終稿,并準(zhǔn)備論文答辨 教研室意見(jiàn) 簽名: 20 年 月 日 系主任意見(jiàn)簽名: 20 年 月 日桂林航天工業(yè)學(xué)院(xuyun)自動(dòng)化系畢 業(yè) 設(shè) 計(jì) 開(kāi) 題 報(bào) 告姓名學(xué)號(hào)指導(dǎo)教師畢業(yè)設(shè)計(jì)題目同組設(shè)計(jì)目的意義時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是重要事情,一時(shí)的耽誤可能釀成大禍。這類(lèi)因忘記時(shí)間而引起的災(zāi)禍不勝枚舉,導(dǎo)致的經(jīng)濟(jì)損失數(shù)不勝數(shù),且有的事故直接威脅人們的人身安全。所以,一個(gè)定時(shí)、報(bào)時(shí)系統(tǒng)是人們?nèi)粘I顦O其必要的。20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展

4、,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。鐘表的數(shù)字化給人們的生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、自動(dòng)時(shí)間程序控制、定時(shí)廣播、定時(shí)啟閉電路、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。另一方面,傳感器的被測(cè)信號(hào)來(lái)自于各個(gè)應(yīng)用領(lǐng)域,每個(gè)領(lǐng)域都為了提高生產(chǎn)力、提高功效和時(shí)效,各自在開(kāi)發(fā)研制適合應(yīng)用的傳感器,于是種類(lèi)繁

5、多的新型傳感器及傳感系統(tǒng)不斷涌現(xiàn)。溫度傳感器是其中重要的一類(lèi)傳感器。其發(fā)展速度之快,以及其應(yīng)用之廣,并且還有很大潛力。為了提高對(duì)傳感器的認(rèn)識(shí)和了解,尤其是對(duì)溫度傳感器的深入研究以及其用法與用途,基于實(shí)用、廣泛和典型的原則而設(shè)計(jì)了本系統(tǒng)。本系統(tǒng)旨在為人們的日常生活提供時(shí)間和溫度信息,為人們的學(xué)習(xí)、工作和生活提供便利。隨著社會(huì)的發(fā)展,科技的進(jìn)步,以及傳感器在各個(gè)領(lǐng)域的應(yīng)用,智能化已成為社會(huì)發(fā)展勢(shì)不可擋的趨勢(shì)。單片機(jī)作為微電控制的基礎(chǔ),對(duì)于國(guó)家未來(lái)的發(fā)展有著深遠(yuǎn)意義。單片機(jī)的應(yīng)用很廣泛,使用也比較靈活,尤其是在對(duì)成本要求較為苛刻的地方,可以說(shuō)在中國(guó)的社會(huì)主義初級(jí)階段,單片機(jī)是能夠占有一席之地的。單片

6、機(jī)的學(xué)習(xí)和應(yīng)用對(duì)于我們當(dāng)代青年人就顯得尤為重要。方案論證 時(shí)間安排第12周 審題、調(diào)研,收集資料,了解系統(tǒng)開(kāi)發(fā)的意義及需求第3周 開(kāi)題報(bào)告、英文資料的翻譯第4周 配置開(kāi)發(fā)環(huán)境并熟悉該環(huán)境下的編程語(yǔ)言(匯編語(yǔ)言或C語(yǔ)言)第510周 硬件設(shè)計(jì)(原理圖和印刷電路板)、編寫(xiě)程序代碼第12周 調(diào)試、修改程序第1314周 撰寫(xiě)論文初稿第15周 整理論文初稿,排版并打印初稿第16周 修改論文,定終稿,并準(zhǔn)備論文答辨 指導(dǎo)教師意見(jiàn) 簽字: 20 年 月 日 審核小組意見(jiàn) 組長(zhǎng)簽字: 20 年 月 日基于單片機(jī)的數(shù)字(shz)電子鐘溫度計(jì)的設(shè)計(jì)摘要(zhiyo)隨著社會(huì)的發(fā)展,科技的進(jìn)步,以及(yj)傳感器在各

7、個(gè)領(lǐng)域的應(yīng)用,智能化已成為社會(huì)發(fā)展勢(shì)不可擋的趨勢(shì)。單片機(jī)作為微電控制的基礎(chǔ),對(duì)于國(guó)家未來(lái)的發(fā)展有著深遠(yuǎn)意義。單片機(jī)的應(yīng)用很廣泛,使用也比較靈活,尤其是在對(duì)成本要求較為苛刻的地方,可以說(shuō)在中國(guó)的社會(huì)主義初級(jí)階段,單片機(jī)是能夠占有一席之地的。單片機(jī)的學(xué)習(xí)和應(yīng)用對(duì)于我們當(dāng)代青年人就顯得尤為重要。如今數(shù)字化電子鐘技術(shù)已經(jīng)很廣泛的應(yīng)用在人們生活的各個(gè)領(lǐng)域,這要?dú)w功與單片機(jī)技術(shù)的迅速發(fā)展及廣泛普及。本論文主要概述由單片機(jī)89S51、液晶顯示器LCD1602、萬(wàn)年歷芯片DS1302和溫度傳感器DS18B20等組成的時(shí)鐘和溫度測(cè)量電路。軟件要求實(shí)現(xiàn)以下功能:正常的走時(shí)和年月日時(shí)分秒顯示,用一開(kāi)關(guān)可控制不顯示;

8、測(cè)量溫度并顯示;用戶(hù)可設(shè)置初始時(shí)間和日期;可設(shè)置多個(gè)鬧鐘和整點(diǎn)報(bào)時(shí)。本設(shè)計(jì)是基于AT89S51單片機(jī)數(shù)字鐘和數(shù)字溫度計(jì)設(shè)計(jì),采用模塊化的設(shè)計(jì)思想。軟硬件都分為溫度的感應(yīng)模塊、時(shí)鐘模塊、控制模塊、顯示模塊、鬧鈴模塊。并使用Protel99SE繪制電路原理圖,PCB電路板;采用Keil uVision源代碼編輯、調(diào)試程序。綜上所述此數(shù)字電子鐘溫度計(jì)具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣泛的市場(chǎng)前景。關(guān)鍵詞:數(shù)字電子鐘溫度計(jì);單片機(jī)AT89S51;萬(wàn)年歷DS1302;溫度傳感器DS18B02;液晶顯示器LCD1602桂林航天工業(yè)學(xué)院畢業(yè)設(shè)計(jì)

9、(論文)桂林航天工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)第 頁(yè)第 頁(yè)Abstract With the development of society,advances in technology, and sensor applications in various fields , intelligence has become the irresistible trend of social development . MCU as the basis for the micro- electric control of the countrys future development has far-re

10、aching significance . Microcontroller applications , the use of more flexible, especially where the more stringent requirements on cost , it can be said at the time of the primary stage of socialism,the MCU is able to place the Learning and applicationof the SCM is particularly important for our con

11、temporary young people . Today , digital electronic clock technology has very broad applications in various fields of peoples lives , which should be attributed to the microcontroller technology rapid development and wide spread . In this thesis, an overview of the microcontroller 89S51, LCD display

12、 the LCD1602 , calendar chip DS1302 and temperature sensor DS18B20 IOch as the composition of the clock and temperature meaIOrement circuit . The software requires the normal travel time and the date , hour , with a switch to control the following functions: meaIOre temperature and display; user can

13、 set the initial time and date ; can set multiple alarms and the whole point of time .The design is based on AT89S51 microcontroller digital clock and digital thermometer designed using a modular design concept . Hardware and software is divided into a temperature sensor module , clock module, contr

14、ol module, display module , the alarm module .Draw circuit schematics , PCB board and use Protel99SE ; the Keil uVision source code editor and debugger.To sum up this digital electronic clock thermometer reads convenient, intuitive, versatile, simple circuit , low cost and many other advantages , in

15、 line with the trend of development of electronic instrumentation , and has broad market prospect .Key Words: Digital electronic clock thermometer; AT89S51 ; DS1302 ; DS18B02;LCD1602緒論(xln)1.1設(shè)計(jì)(shj)的意義時(shí)間對(duì)人們(rn men)來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是重要事情,一時(shí)的耽誤可能釀成大禍。這類(lèi)因忘記

16、時(shí)間而引起的災(zāi)禍不勝枚舉,導(dǎo)致的經(jīng)濟(jì)損失數(shù)不勝數(shù),且有的事故直接威脅人們的人身安全。所以,一個(gè)定時(shí)、報(bào)時(shí)系統(tǒng)是人們?nèi)粘I顦O其必要的。20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。鐘表的數(shù)字化給人們的生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、定時(shí)啟閉電路、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究

17、數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。另一方面,傳感器的被測(cè)信號(hào)來(lái)自于各個(gè)應(yīng)用領(lǐng)域,每個(gè)領(lǐng)域都為了提高生產(chǎn)力、提高功效和時(shí)效,各自在開(kāi)發(fā)研制適合應(yīng)用的傳感器,于是種類(lèi)繁多的新型傳感器及傳感系統(tǒng)不斷涌現(xiàn)。溫度傳感器是其中重要的一類(lèi)傳感器。其發(fā)展速度之快,以及其應(yīng)用之廣,并且還有很大潛力。1.2設(shè)計(jì)的目的為了提高對(duì)傳感器的認(rèn)識(shí)和了解,尤其是對(duì)溫度傳感器的深入研究及其用法與用途,基于實(shí)用、廣泛和典型的原則而設(shè)計(jì)了本系統(tǒng)。本系統(tǒng)旨在為人們的日常生活提供時(shí)間和溫度信息,為人們的學(xué)習(xí)、工作和生活提供便利。隨著社會(huì)的發(fā)展,科技的進(jìn)步,以及傳感器在各個(gè)領(lǐng)域的應(yīng)用,智能化已成為社會(huì)發(fā)展勢(shì)不可擋的趨勢(shì)。單片機(jī)作

18、為微電控制的基礎(chǔ),對(duì)于國(guó)家未來(lái)的發(fā)展有著深遠(yuǎn)意義。單片機(jī)的應(yīng)用很廣泛,使用也比較靈活,尤其是在對(duì)成本要求較為苛刻的地方,可以說(shuō)在中國(guó)的社會(huì)主義初級(jí)階段時(shí)間里,單片機(jī)是能夠占有一席之地的。單片機(jī)的學(xué)習(xí)和應(yīng)用對(duì)于我們當(dāng)代青年人就顯得尤為重要。1.3本設(shè)計(jì)的研究(ynji)范圍及技術(shù)要求硬件(yn jin)主要(zhyo)由單片機(jī)89S51、液晶顯示器LCD1602、萬(wàn)年歷芯片DS1302和溫度傳感器DS18B20等組成;使用Protel 99 SE繪制電路原理圖和印刷電路板PBC;應(yīng)用Keil uVision源代碼編輯、調(diào)試;進(jìn)行軟件和硬件總調(diào)試,將HEX文件下載到單片機(jī)內(nèi)。實(shí)現(xiàn)正常的走時(shí)和年月日

19、時(shí)分秒顯示,用一開(kāi)關(guān)可控制不顯示;測(cè)量溫度并顯示;用戶(hù)可設(shè)置初始時(shí)間和日期;可設(shè)置多個(gè)鬧鐘和整點(diǎn)報(bào)時(shí)。第二章 單片機(jī)AT89S512.1 AT89S51的介紹AT89S51向下完全兼容51 全部字系列產(chǎn)品,比如8051、89C51 等等早期MCS-51 兼容產(chǎn)品。也就是說(shuō)所有教科書(shū)、網(wǎng)絡(luò)教程上的程序(不論教科書(shū)上采用的單片機(jī)是8051 還是89C51 還是MCS-51系列 等等),在89S51上一樣可以照常運(yùn)行,這就是所謂的向下兼容。,它功能強(qiáng)大、使用靈活是具有較高性能性?xún)r(jià)比的微控制器。1對(duì)它的新功能本文不予敘述,只用它作為MSC-51系列所共有的基本功能。相對(duì)于89C51,89S51新增加很

20、多功能,性能有了較大提升,價(jià)格基本不變,甚至比89C51 更低! ISP 在線編程功能,可直接把生成的機(jī)器碼(HEX文件)下載到片內(nèi)ROM中,無(wú)需編程器,是一個(gè)強(qiáng)大易用的功能。 最高工作頻率為33MHz,大家都知道89C51 的極限工作頻率是24M,就是說(shuō)S51 具有更高工作頻率,從而具有了更快的計(jì)算速度。 雙數(shù)據(jù)指示器,電源關(guān)閉(gunb)標(biāo)識(shí)。 全新的加密算法,這使得(sh de)對(duì)于89S51 的解密(ji m)變?yōu)椴豢赡埽绦虻谋C苄源蟠蠹訌?qiáng),這樣就可以有效的保護(hù)知識(shí)產(chǎn)權(quán)不被侵犯。2.2 AT89S51的特性89S51 在工藝上進(jìn)行了改進(jìn),89S51 采用 0.35 新工藝,成本降低,

21、而且將功能提升,增 加了競(jìng)爭(zhēng)力。89SXX 可以像下兼容89CXX 等51 系列芯片。市場(chǎng)上見(jiàn)到的89C51 實(shí)際都是Atmel 前期生產(chǎn)的巨量庫(kù)存而以。如果市場(chǎng)需要,Atmel當(dāng)然也可以再恢復(fù)生產(chǎn)AT89C51。 AT89S51/LS51單片機(jī)是低功耗的、具有4KB在線編程Flash存儲(chǔ)器的單片機(jī)。它與通用80C51系列單片機(jī)的指令系統(tǒng)和引腳兼容。片內(nèi)的Flash可允許在線重新編程,也可使用非易失性存儲(chǔ)器編程。他將通用CPU和在線可編程Flash集成在一個(gè)芯片上,形成了功能強(qiáng)大、使用靈活和具有較高性能性?xún)r(jià)比的微控制器。 片內(nèi)程序存儲(chǔ)器含有4KB的Flash存儲(chǔ)器,允許在線編程,擦寫(xiě)周期可達(dá)1

22、000次;片內(nèi)數(shù)據(jù)存儲(chǔ)器內(nèi)含128字節(jié)的RAM;I/O口具有32根可編程I/O線;具有兩個(gè)16位I/O線;中斷系統(tǒng)具有6個(gè)中斷源、5個(gè)終端矢量、2個(gè)中斷優(yōu)先級(jí)的中斷結(jié)構(gòu);串行口是一個(gè)全雙工的串行通信口;具有兩個(gè)數(shù)據(jù)指針DPTR0和DPTR1;低功耗節(jié)電模式有節(jié)電模式和掉電模式;包含3級(jí)程序鎖定位;AT89S51的電源電壓為4.0-5.5V,AT89LS51的電源電壓為2.7-4.0V;振蕩器頻率0-33MHz(AT89S51),0-16MHz(A-T89LS51);具有片內(nèi)看門(mén)狗定時(shí)器;靈活的在線片內(nèi)編程模式(字節(jié)和頁(yè)編程模式);具有斷電標(biāo)志模式POF。22.3 AT89S51的引腳排列(1)

23、P0口8位、開(kāi)漏極、雙向I/O口。P0口可作為通用I/O口,但必須外接上拉電阻;作為輸出口,每個(gè)引腳可吸收8個(gè)TTL的灌電流。作為輸入時(shí),首先應(yīng)將引腳置1。 P0口也可用作外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是的低八位地址/數(shù)據(jù)總線的復(fù)用線。在該模式下,P0口含有內(nèi)部上拉電阻。 在Flash編程時(shí),P0口接受代碼,輸出代碼字節(jié)數(shù)據(jù)(需要外接上拉電阻)。(2)P1口8位、雙向I/O口、內(nèi)部含有行拉電阻。P1可作為普通I/O口。輸出緩沖器可驅(qū)動(dòng)4個(gè)TTL負(fù)載;用作輸入時(shí),先交引腳置1,有片內(nèi)上拉電阻將其抬到高電平。P1口的引腳可由外部(wib)負(fù)載拉倒低電平,通過(guò)上拉電阻提供拉電流。在Flash并行 編程和

24、校驗(yàn)時(shí),P1口可輸入低字節(jié)地址。在串行編程和校驗(yàn)時(shí),P1.0/MOSI,P1.6/OSI和P1.7/SCK分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。I/O具有內(nèi)部拉電阻的8位雙向I/O。 (2)P2口用作輸出口時(shí),可驅(qū)動(dòng)四個(gè)TTL負(fù)載;用作輸入口時(shí),先將引腳置1,由內(nèi)部上拉電阻將其提高到高電平。若負(fù)載為低電平,則通過(guò)內(nèi)部上拉電阻向外輸出電流。 CPU訪問(wèn)外部16位地址的存儲(chǔ)器時(shí),P2口提供高8位的地址。當(dāng)CPU用8位地址尋址外部存儲(chǔ)器時(shí),P2口為P2特殊功能(gngnng)寄存器內(nèi)容。在FLASH并行編程和校檢時(shí),P2口可輸入高字節(jié)地址和某些控制信號(hào)。(3)P3口局有內(nèi)部(nib)上拉電阻8位雙

25、向口。P3口做輸出口時(shí),輸出緩沖器可吸收4個(gè)TTL的灌電流;用作輸入口時(shí),首先將引腳置1,有內(nèi)部上拉電阻抬為高電平。若外部負(fù)載是低電平,則通過(guò)內(nèi)部上拉電阻向外輸出電流。 在與FLASH并行編程和校檢時(shí),P3口可輸入某些控制信號(hào)。3第三章 單片機(jī)外圍擴(kuò)展芯片3.1 DS1302萬(wàn)年歷時(shí)鐘芯片低功耗時(shí)鐘芯片DS1302可以對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。DS1302用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)數(shù)據(jù)的時(shí)間同時(shí)記錄。采用DS1302 作為記錄測(cè)控系統(tǒng)中的數(shù)據(jù)記錄,其硬件設(shè)計(jì)簡(jiǎn)單,時(shí)間記錄準(zhǔn)確,既避免了連續(xù)記錄的大工作量,又避免了定

26、時(shí)記錄的盲目性。若采用單片機(jī)計(jì)時(shí),一方面需要采用計(jì)數(shù)器,另一方面需要設(shè)置中斷、查詢(xún)等,都要耗費(fèi)單片機(jī)資源,而且某些測(cè)控系統(tǒng)可能不允許。而在系統(tǒng)中采用DS1302則能很好地解決這個(gè)問(wèn)題。實(shí)時(shí)時(shí)鐘,可對(duì)秒、分、時(shí)、日、周、月以及閏年補(bǔ)償(bchng)的年進(jìn)行計(jì)數(shù);用于高速數(shù)據(jù)暫存的318位RAM;最少引腳的串行I/O;2.55.5V電壓工作范圍,2.5V時(shí)耗電小于300nA;用于時(shí)鐘或RAM數(shù)據(jù)讀/寫(xiě)的單字節(jié)(z ji)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;簡(jiǎn)單的3線接口;可選的慢速充電(至Vcc1) 圖3-1 DS1302管腳圖的能力(nngl);當(dāng)Vcc2大于Vcc10.2V時(shí),給DS1302供電

27、,當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。 下面是 DS1302 的內(nèi)部寄存器和RAM:圖3-2左邊為寄存器和RAM的地址,右邊為具體內(nèi)容。各個(gè)寄存器的最高位都是1,最低位都是“RD/W” ,比如要讀時(shí)寄存器則命令為 10000101,反之寫(xiě)為10000100 ,要注意其含義。SEC:秒寄存器,注意具體右邊內(nèi)容:低四位為 SEC(個(gè)位),高的次三位為10SEC(十位),最高位CH為DS1302 的運(yùn)行標(biāo)志,當(dāng) CH=0時(shí),DS1302內(nèi)部時(shí)鐘運(yùn)行,反之 CH=1時(shí)停止。MIN:分寄存器。HR:時(shí)寄存器,最高位為 12/24 小時(shí)的格式選擇位,該位為1時(shí)表示 12 小時(shí)格式 ; 當(dāng)

28、設(shè)置為12小時(shí)顯示格式時(shí),第5位的高電平表示下午(PM);而當(dāng)設(shè)置為 24 小時(shí)格式時(shí),第5位為具體的時(shí)間數(shù)據(jù)。DATE:日寄存器。MONTH:月寄存器。DAY:周寄存器,注意一周只有7天,所以該寄存器只有低三位有效。YEAR :年寄存器。CONTROL:寫(xiě)保護(hù)寄存器,當(dāng)該寄存器最高位WP為 1時(shí),DS1302只讀不寫(xiě),所以要在往DS1302寫(xiě)數(shù)據(jù)之前確保WP為0。 圖3-2 DS1302的內(nèi)部(nib)寄存器TRICKLE CHARGE REGISTER:涓細(xì)電流充電(chng din)設(shè)置寄存器,我們知道,當(dāng)DS1302掉電時(shí),可以馬上調(diào)用外部電源保護(hù)時(shí)間數(shù)據(jù)。該寄存器就是配置備用電源的充

29、電選項(xiàng)的。其中高四位(4個(gè)TCS)只有在1010的情況下才能使用充電選項(xiàng);低四位的情況,與 DS1302 內(nèi)部電路有關(guān),本文電路該寄存器內(nèi)容為10100000。CLOCK BURST:批量讀寫(xiě)操作設(shè)置寄存器,設(shè)置該寄存器后,可以(ky)對(duì)DS1302的各個(gè)寄存器進(jìn)行連續(xù)寫(xiě)入。DS1302有31個(gè)字節(jié)的存儲(chǔ)空間,但這31個(gè)存儲(chǔ)空間,最后一個(gè)是 RAM BURST 的寄存器,設(shè)置該寄存器可以達(dá)到對(duì) RAM 連續(xù)讀寫(xiě)的作用。所以 DS1302 的可用存儲(chǔ)空間實(shí)際上為30個(gè)字節(jié)6。3.2 LCD1602液晶顯示芯片(xn pin)(1)LCD1602的結(jié)構(gòu)(jigu)與基本參數(shù)LCD1602字符型液晶

30、顯示模塊是一種專(zhuān)門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式 LCD。分為帶背光和不帶背光兩種,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖3-3。圖3-3 LCD1602的結(jié)構(gòu)參數(shù)表3-1 LCD1602引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫(xiě)選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15D8背光源正極8D1數(shù)據(jù)16D9背光源負(fù)極表3-1引腳接口(ji ku)說(shuō)明表 第 1 腳:VSS 為地電源(dinyun); 第 2 腳:VDD 接 5V

31、 正電源(dinyun); 第 3 腳:VL 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè) 10K 的電位器調(diào)整對(duì)比度; 第 4 腳:RS 為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器; 第 5 腳:R/W 為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng) RS和 R/W 共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng) RS 為低電平 R/W 為高電平時(shí)可以讀忙信號(hào),當(dāng) RS 為高電平 R/W 為低電平時(shí)可以寫(xiě)入數(shù)據(jù); 第 6 腳:E 端為使能端,讀操作時(shí),高電平有效,寫(xiě)操作時(shí)下降沿有效; 第 714 腳:

32、D0D7 為 8 位雙向數(shù)據(jù)線; 第 15 腳:背光源正極; 第 16 腳:背光源負(fù)極。(2)LCD1602內(nèi)部寄存器指令LCD1602液晶模塊內(nèi)部的控制器共有11 條控制指令,如下表3-2所示表3-2 LCD1602寄存器指令序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存儲(chǔ)器地址0001字符發(fā)生存儲(chǔ)器地址8置數(shù)據(jù)存儲(chǔ)器地址001顯示數(shù)據(jù)存儲(chǔ)器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地

33、址10寫(xiě)數(shù)據(jù)到CGRAM或DDRAM10要寫(xiě)的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11要讀的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫(xiě)操作,屏幕和光標(biāo)(un bio)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明 1 為高電平,0 為低電平) 指令(zhlng) 1:清顯示(xinsh),指令碼 01H,光標(biāo)復(fù)位到地址 00H 位置 ;指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00H ;指令 3:光標(biāo)和顯示位置設(shè)置 I/D,光標(biāo)移動(dòng)方向,高電平右移,低電平左移,S:屏幕上所有文字是否左移或右移,高電平表示有效,低電平表示無(wú)效; 指令 4:顯示開(kāi)關(guān)控制。D:控制整體的顯示開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示。C

34、:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍; 指令 5:光標(biāo)或顯示移位 S/C :高電平時(shí)顯示移動(dòng)的文字,低電平時(shí)移動(dòng)光標(biāo) ;S/LR/L說(shuō) 明00光標(biāo)向左移動(dòng),AC自動(dòng)減101光標(biāo)向右移動(dòng),AC自動(dòng)加110光標(biāo)和顯示一起向左移動(dòng)11光標(biāo)和顯示一起向右移動(dòng)指令 6:功能設(shè)置命令 DL:高電平時(shí)為 8位總線,低電平時(shí)為 4位總線, N:低電平時(shí)為單行顯示,高電平時(shí)為雙行顯示,F(xiàn):低電平時(shí)顯示 5X7 的點(diǎn)陣字符,高電平時(shí)顯示 5X10 的顯示字符;指令 7:字符發(fā)生器 RAM地址設(shè)置; 指令 8:DDRAM 地址設(shè)置; 指令(zhlng

35、) 9:讀忙信號(hào)(xnho)和光標(biāo)地址 BF:忙標(biāo)志位,高電平表示忙,此時(shí)模塊(m kui)不能接收命令或數(shù)據(jù),如果為低電平表示不忙7。(3)LCD1602的RAM地址映射及標(biāo)準(zhǔn)字庫(kù)表液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖3-4是1602的內(nèi)部顯示地址。圖3-4 LCD1602內(nèi)部顯示地址例如第二行第一個(gè)字符的地址是 40H,那么是否直接寫(xiě)入 40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位 D7 恒定為高電平1所以實(shí)

36、際寫(xiě)入的數(shù)據(jù)應(yīng)該是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。 在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無(wú)需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602 液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了 160 個(gè)不同的點(diǎn)陣字符圖形,如表3-3所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A” 的代碼是 01000001B(41H),顯示時(shí)模塊把地址 41H 中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A

37、”。圖3-5 CGROM和CGRAM中字符代碼與字符圖形(txng)對(duì)應(yīng)關(guān)系3.3 DS18B20溫度傳感器DS18B20數(shù)字溫度傳感器接線(ji xin)方便,封裝成后可應(yīng)用于多種場(chǎng)合,主要根據(jù)應(yīng)用場(chǎng)合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測(cè)溫,高爐水循環(huán)測(cè)溫,鍋爐測(cè)溫,機(jī)房測(cè)溫,農(nóng)業(yè)大棚測(cè)溫,潔凈室測(cè)溫,彈藥庫(kù)測(cè)溫等各種非極限溫度場(chǎng)合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用(shyng)于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。圖3-6 DS18B20內(nèi)部結(jié)構(gòu)(1)DS18B20技術(shù)性能獨(dú)特(dt)的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要(xyo)一條口線

38、即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊(tngxn)。測(cè)溫范圍55+125,固有測(cè)溫分辨率0.5。支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測(cè)溫,如果數(shù)量過(guò)多,會(huì)使供電電源電壓過(guò)低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定。工作電源: 35V,在使用中不需要任何外圍元件。測(cè)量結(jié)果以912位數(shù)字量方式串行傳送,溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒。(2) DS18B20有4個(gè)主要的數(shù)據(jù)部件 1)光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開(kāi)始8位(28H)是產(chǎn)品類(lèi)型標(biāo)號(hào),接著的48位是該D

39、S18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。但本設(shè)計(jì)只用到一個(gè)DS18B20,所以不必讀取ROM中的64位序列號(hào)。2)DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB形式表達(dá),其中S為符號(hào)位。 圖3-7 DS18B20溫度值格式表這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這

40、5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度,如表3-3。表3-3 DS18B20溫度數(shù)據(jù)表TEMPERATUREDIGITAL OUTPUT(Binary)DIGITAL OUTPUT(Hex)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000

41、0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H3)DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括(boku)一個(gè)高速暫存RAM和一個(gè)(y )非易失性的可電擦除的EEPRAM,后者存放(cnfng)高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。4)配置寄存器,該字節(jié)各位的意義如下: 表3-4 配置寄存器結(jié)構(gòu)TMR1R011111低五位一直都是1 ,TM是測(cè)試模式位,用于設(shè)置DS1

42、8B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶(hù)不要去改動(dòng)。R1和R0用來(lái)設(shè)置分辨率,如表3-5所示:(DS18B20出廠時(shí)被設(shè)置為12位)分辨率設(shè)置表:表3-5溫度值分辨率設(shè)置表R1R0分辨率溫度最大轉(zhuǎn)換時(shí)間009位93.75ms0110位187.5ms1011位375ms1112位750ms(3)高速暫存存儲(chǔ)器 高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表3-7所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表3-4所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位

43、S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。 表3-6 DS18B20暫存寄存器分布(fnb)寄存器內(nèi)容字節(jié)地址溫度值低位0溫度值高位1高溫限值TH2低溫限值TL3配置寄存器4保留5保留6保留7CRC檢驗(yàn)8根據(jù)(gnj)DS18B20的通訊協(xié)議,主機(jī)(zhj)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待1660微秒左

44、右,后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功8。表3-7 ROM指令表指 令約定代碼功 能讀ROM33H讀DS18B20 ROM中的編碼(即64位地址)符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問(wèn)單總線上與該編碼相對(duì)應(yīng)的DS18B20使之作出響應(yīng),為下一步對(duì)該DS18B20的讀寫(xiě)作準(zhǔn)備。搜索ROM0F0H用于確定掛接在同一總線上DS18B20的個(gè)數(shù)和識(shí)別64位ROM地址。為操作各器件作好準(zhǔn)備。跳過(guò)ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令。適用于單片工作。告警搜索命令0ECH執(zhí)行后只有溫度超過(guò)設(shè)定值上限或下限的片子才做出響應(yīng)

45、。表3-8 RAM指令表指 令約定代碼功 能溫度變換44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)最長(zhǎng)為500ms(典型為200ms)。結(jié)果存入內(nèi)部9字節(jié)RAM中。讀暫存器0BEH內(nèi)部RAM中9字節(jié)的內(nèi)容寫(xiě)暫存器4EH發(fā)出向內(nèi)部RAM的3、4字節(jié)寫(xiě)上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。復(fù)制暫存器48H將RAM中第3、4字節(jié)的內(nèi)容復(fù)制到EEPROM中。重調(diào)EEPROM0B8H將EEPROM中內(nèi)容恢復(fù)到RAM中的第3、4字節(jié)。讀供電方式0B4H讀DS18B20的供電模式。寄生供電時(shí)DS18B20發(fā)送“0”,外接電源供電DS18B20發(fā)送“1”。第四章 總體(zngt)軟硬件設(shè)計(jì)4

46、.1硬件(yn jin)及功能要求(1) 硬件要求(yoqi)使用AT89S51單片機(jī),DS18B02溫度傳感器,DS1302萬(wàn)年歷芯片,LCD1602液晶顯示器等;(2)功能:實(shí)現(xiàn)正常的走時(shí)和年月日時(shí)分秒顯示,用一開(kāi)關(guān)可控制不顯示;測(cè)量溫度并顯示;用戶(hù)可設(shè)置初始時(shí)間和日期;可設(shè)置多個(gè)鬧鐘和整點(diǎn)報(bào)時(shí)。4.2設(shè)計(jì)方案AT89S51作為硬件(yn jin)核心,采用模塊化的設(shè)計(jì)思想,硬件模塊分為溫度的感應(yīng)模塊、時(shí)鐘模塊、控制模塊、顯示模塊、鬧鈴模塊;軟件(run jin)同樣采用模塊化設(shè)計(jì),分為中斷模塊、溫度轉(zhuǎn)化模塊、時(shí)間調(diào)整模塊,LCD顯示(xinsh)模塊。(1)液晶顯示模塊:LCD1602顯

47、示的原理是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有點(diǎn)就顯示,這樣不僅可以顯示數(shù)字也可以顯示出圖形。它分為帶背光和不帶背光兩種,兩者管腳分別為16根和14根,應(yīng)用并無(wú)差別。它與89S51可以直接連接,可用P0口做LCD1602的數(shù)據(jù)口,P2口的低三位做讀寫(xiě)控制口和使能信號(hào)。(2)萬(wàn)年歷芯片時(shí)鐘模塊:DS1302的封裝為DIP8,與CPU的連接需要三條線,即SSCLK(7)、I/O(6)、RST(5)。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。上電運(yùn)行時(shí),在Vcc2.0V之前,RST必須保持低電平。只有在SS

48、CLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說(shuō)明。SCLK為時(shí)鐘輸入端。(3)溫度感應(yīng)模塊:DS18B20的外形大小或封裝和三極管一樣是TO-92。管腳排列如下:GND為電源地;I/O為數(shù)字信號(hào)輸入/輸出端;VDD為外接供電電源輸入端。測(cè)量溫度范圍為-55 +125,DS18B20可以程序設(shè)定9-12位的分辨率。它只需要一條口線通信可實(shí)現(xiàn)與89S51的雙向通訊,具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn)。(4)鬧鈴模塊:可采用蜂鳴器,只需要占用CPU一個(gè)口線,另一端接地。采用蜂鳴器來(lái)當(dāng)做鬧鈴,因?yàn)槠潆娐方Y(jié)構(gòu)簡(jiǎn)單,一端接CPU的I/O(采

49、用P1.7)口,另一端接地,只要I/O口發(fā)出脈沖信號(hào),蜂鳴器就會(huì)鳴叫。電路簡(jiǎn)單,容易控制。(5)控制模塊:為了簡(jiǎn)化電路,且CPU有多余的口線,決定采用獨(dú)立鍵的控制方式,這樣也簡(jiǎn)化了控制程序。因?yàn)镮/O口線較富余,且為了簡(jiǎn)化軟件程序的編寫(xiě),采用獨(dú)立鍵的模式來(lái)控制CPU。用CPU的P3口的高4位做鍵盤(pán)I/O接口。別外,再采用兩個(gè)獨(dú)立鍵來(lái)設(shè)置一個(gè)外部中斷,用來(lái)完成任務(wù)要求的關(guān)閉LCD顯示器和開(kāi)啟LCD顯示器要求,其各鍵功能如表4-1。表4-1 各鍵功能表代號(hào)位地址功能S5P3.7時(shí)間設(shè)置切換S4P3.6鬧鈴設(shè)置切換/關(guān)閉響鈴S3P3.5設(shè)置值加一S2P3.4設(shè)置值減一S6P3.3開(kāi)啟/關(guān)閉顯示( 注

50、:S2、S3只在S5或S6鍵按下后有效(yuxio) )4.3總電路圖及說(shuō)明(shumng) 總電路圖如圖4-1所示,本論文將圍繞AT89S51對(duì)各器件的連接一一說(shuō)明。P0口接LCD1602的8位數(shù)據(jù)線,另接8個(gè)10k的電阻做P0口的上拉電阻;P2.1、P2.2、P2.3分別接RS、R/W、E。溫度傳感器DS18B20的QD口接CPU的P2.7。CPU的P1.0、P1.1、P1.2分別接DS1302的SSCLK、I/O、RST。CPU的P1.7口接鬧鈴;復(fù)位電路采用上電復(fù)位和按鍵復(fù)位;晶振采用12Mhz,即機(jī)器(j q)周期為1us。圖4-1 總電路圖4.4主程序設(shè)計(jì)(chn x sh j)軟

51、件的設(shè)計(jì)是設(shè)計(jì)控制系統(tǒng)的應(yīng)用程序。其任務(wù)是在整體設(shè)計(jì)和硬件設(shè)計(jì)的基礎(chǔ)上,確定程序結(jié)構(gòu),分配內(nèi)部RAM資源,劃分功能模塊,然后進(jìn)行程序和各模塊程序的設(shè)計(jì),最后(zuhu)連接起來(lái)成為一個(gè)完整應(yīng)用程序,與硬件相結(jié)合完成相應(yīng)功能。本論文將采用匯編語(yǔ)言來(lái)設(shè)計(jì)程序。主程序采用模塊化設(shè)計(jì),流程圖如圖4-2所示。開(kāi)始初始化開(kāi)機(jī)時(shí)間、鬧鈴時(shí)間、LCD1602、DS1302、外部中斷0按鍵子程序初始化DS18B20讀DS18B20數(shù)據(jù)溫度轉(zhuǎn)換溫度顯示調(diào)鬧鈴子程序結(jié)束圖4-2 主程序流程圖 4.5各子程序的設(shè)計(jì)(shj)(1)DS1302子程序RST:復(fù)位(f wi)時(shí)序,即在RST引腳產(chǎn)生一個(gè)(y )正脈沖,在

52、整個(gè)讀寫(xiě)器件,RST要保持(boch)高電平,一次字節(jié)讀寫(xiě)完畢之后,要注意把 RST 返回低電平準(zhǔn)備下次讀寫(xiě)周期;要記得在操作 DS1302 之前關(guān)閉寫(xiě)保護(hù);注意用延時(shí)來(lái)降低單片機(jī)的速度以配合器件時(shí)序;DS1302 讀出來(lái)的數(shù)據(jù)是 BCD 碼形式,要轉(zhuǎn)換成我們習(xí)慣的10 進(jìn)制。圖4-3 DS1302讀寫(xiě)程序流程圖(2)LCD1602子程序液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址(dzh),也就是告訴模塊在哪里顯示字符。開(kāi)始初始化設(shè)置CGRAM地址字模數(shù)據(jù)寫(xiě)入CGRAM循環(huán)設(shè)置DDRAM地址寫(xiě)顯

53、示數(shù)據(jù)入DDRAM結(jié)束圖4-4 顯示(xinsh)程序流程圖(3)DS18B20子程序由于(yuy)DS18B20采用的是1Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟

54、動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 QD置1QD置0延時(shí)500微秒QD置1延時(shí),等待DS18B20響應(yīng)QD=0初始化不成功初始化成功返回圖4-5 DS18B20初始化子程序(4)判鍵子程序(chngx) 判鍵子程序(chngx)流程圖非常復(fù)雜,本文只論述調(diào)節(jié)時(shí)鐘分的流程圖。判鍵子程序按一次模式鍵后就一直(yzh)判斷下一次按鍵是P3.5(加1)還是(hi shi)P3.4(減1) ,判斷進(jìn)入下一模式還是按下模式鍵。開(kāi)顯示開(kāi)光標(biāo)開(kāi)光標(biāo)閃爍,光標(biāo)指向分的個(gè)位 開(kāi)始模式鍵按下嗎NY返回判是加1、減1、模式?數(shù)據(jù)加1數(shù)據(jù)減1進(jìn)入時(shí)數(shù)據(jù)調(diào)節(jié)模式加1減1顯示顯示圖4-6 分?jǐn)?shù)據(jù)調(diào)節(jié)判鍵子

55、程序4.6程序說(shuō)明正常時(shí)間和鬧鐘時(shí)間都可以用鍵盤(pán)設(shè)置;該程序是使用LCD1602顯示年月日,格式為年-月-日(換行)溫度C 時(shí).分.秒 ;由六個(gè)按鍵控制,S1復(fù)位,S5調(diào)時(shí)間,調(diào)年月日時(shí)分,除分可以加減調(diào)節(jié)之外其余的調(diào)節(jié)都是只能加不能減(如果增加減的功能會(huì)使程序很復(fù)雜,本文在次略作簡(jiǎn)化), 另外正常顯示時(shí)間的秒是無(wú)法調(diào)整的,S4 是用來(lái)調(diào)節(jié)鬧鐘的時(shí)分秒的,和S1按鍵不同的是時(shí)分秒都能加減調(diào)節(jié),當(dāng)鬧鐘設(shè)置的時(shí)間和正常顯示時(shí)間的時(shí)分秒相同時(shí),鬧鈴響鈴十秒鐘,期間可以按S4鍵終止響鈴,S3和S2 分別是用來(lái)加減時(shí)間,S6用來(lái)關(guān)閉LCD的顯示及開(kāi)啟顯示。程序缺陷:只能設(shè)置一個(gè)鬧鈴時(shí)間(shjin);按

56、鍵消抖程序作的比較粗糙,可能無(wú)法達(dá)到預(yù)期目的。第五章 程序調(diào)試本文(bnwn)采用Protues和Keil uVision聯(lián)合調(diào)試程序。5.1 DS1302的數(shù)據(jù)(shj)操作DS1302在任何數(shù)據(jù)傳送時(shí)必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SSCLK的上升沿被輸入。無(wú)論是讀周期還是寫(xiě)周期,開(kāi)始的8位指定40個(gè)寄存器中哪個(gè)被訪問(wèn)到。在開(kāi)始8個(gè)時(shí)間周期,把命令字節(jié)裝入移位寄存器之后,另外的時(shí)鐘周期在讀操作時(shí)輸入數(shù)據(jù),在寫(xiě)操作時(shí)寫(xiě)入數(shù)據(jù)。操作 DS1302 的大致過(guò)程,就是將各種數(shù)據(jù)寫(xiě)入 DS1302 的寄存器,以設(shè)置它當(dāng)前的時(shí)間以及格式。然后使 DS13

57、02 開(kāi)始運(yùn)作,DS1302時(shí)鐘會(huì)按照設(shè)置情況運(yùn)轉(zhuǎn),再用單片機(jī)將其寄存器內(nèi)的數(shù)據(jù)讀出。再用液晶顯示,就是我們常說(shuō)的簡(jiǎn)易電子鐘。所以總的來(lái)說(shuō) DS1302 的操作分2步(顯示部分屬于液晶顯示的內(nèi)容 ,不屬于DS1302本身的內(nèi)容),但是在講述操作時(shí)序之前,我們要先看看寄存器:表5-1 DS1302寄存器樣式765432101RAM/CKA4A3A2A1A0RD/W表5-1是DS1302的寄存器樣式,我們看到:第7位永遠(yuǎn)都是1;第6位,1表示RAM,尋址內(nèi)部存儲(chǔ)器地址,0 表示 CK,尋址內(nèi)部寄存器;第5到第1位,為RAM 或者寄存器的地址;最低位,高電平表示RD:即下一步操作將要“讀” ;低電平

58、表示W(wǎng):即下一步操作將要“寫(xiě)” 。(1)DS1302的讀寫(xiě)時(shí)序圖5-1 DS1302讀寫(xiě)時(shí)序(sh x)圖5-1就是(jish)DS1302的三個(gè)時(shí)序(sh x):復(fù)位時(shí)序,單字節(jié)寫(xiě)時(shí)序,單字節(jié)讀時(shí)序;RST:復(fù)位時(shí)序,即在RST引腳產(chǎn)生一個(gè)正脈沖,在整個(gè)讀寫(xiě)器件,RST要保持高電平,一次字節(jié)讀寫(xiě)完畢之后,要注意把 RST 返回低電平準(zhǔn)備下次讀寫(xiě)周期;SINGLE BYTE READ :?jiǎn)巫止?jié)讀,注意讀之前還是要先對(duì)寄存器寫(xiě)命令,從最低位開(kāi)始寫(xiě);寫(xiě)數(shù)據(jù)是在SSCLK的上升沿實(shí)現(xiàn),而讀數(shù)據(jù)在SSCLK的下降沿實(shí)現(xiàn),所以,在單字節(jié)讀時(shí)序中,寫(xiě)命令的第八個(gè)上升沿結(jié)束后緊接著的第八個(gè)下降沿就將要讀寄存

59、器的第一位數(shù)據(jù)讀到數(shù)據(jù)線上了。這個(gè)就是DS1302操作中最特別的地方。當(dāng)然讀出來(lái)的數(shù)據(jù)也是最低位開(kāi)始。SINGLE BUTE WRITE :?jiǎn)巫止?jié)寫(xiě),兩個(gè)字節(jié)的數(shù)據(jù)配合16個(gè)上升沿將數(shù)據(jù)寫(xiě)入即可。(2)程序注意事項(xiàng)要記得在操作 DS1302 之前關(guān)閉寫(xiě)保護(hù);注意用延時(shí)來(lái)降低單片機(jī)的速度以配合器件時(shí)序;DS1302 讀出來(lái)的數(shù)據(jù)是 BCD 碼形式,要轉(zhuǎn)換成我們習(xí)慣的10 進(jìn)制 。5.2 LCD1602的讀寫(xiě)時(shí)序圖5-2 LCD1602讀操作(cozu)時(shí)序圖5-3 LCD1602寫(xiě)操作(cozu)時(shí)序注意事項(xiàng):在LCD顯示屏一行(yxng)顯示方式下DDRAM的地址范圍為:00H4FH,兩行顯示

60、方式下DDRAM的地址范圍為:第一行00H27H,第二行40H67H;由于地址計(jì)數(shù)器AC被CGROM、CGRAM和DDRAM的公用指針,因此當(dāng)前AC內(nèi)容所指區(qū)域由前一條指令操作區(qū)域決定,同時(shí)只有BF=0時(shí),送到DB7DB0的數(shù)據(jù)AC6AC0才有效。1602模塊設(shè)有內(nèi)部復(fù)位電路,上電后,當(dāng)電源電壓超過(guò)+4.5v時(shí),自動(dòng)對(duì)模塊進(jìn)行初始化此期間。忙標(biāo)志BF=1,直到初始化結(jié)束后,忙標(biāo)志BF才為0。;* ;LCD1602的寫(xiě)數(shù)據(jù) 讀指令(zhlng) 判忙程序 ;* WR_DATA: MOV P0,A SETBRS ;RS=1選擇(xunz)數(shù)據(jù)寄存器 CLR RW ;RW=0 ,準(zhǔn)備(zhnbi)

溫馨提示

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