基于5單片機(jī)的電子萬歷的設(shè)計(jì)_第1頁
基于5單片機(jī)的電子萬歷的設(shè)計(jì)_第2頁
基于5單片機(jī)的電子萬歷的設(shè)計(jì)_第3頁
基于5單片機(jī)的電子萬歷的設(shè)計(jì)_第4頁
基于5單片機(jī)的電子萬歷的設(shè)計(jì)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 基于 51 單片機(jī)的電子萬年歷的設(shè)計(jì)1設(shè)計(jì)說明書基于基于 5151 單片機(jī)的電子萬年歷的設(shè)計(jì)單片機(jī)的電子萬年歷的設(shè)計(jì)系系 部部 電子信息與控制工程系電子信息與控制工程系 專專 業(yè)業(yè) 名名 稱稱 電子信息工程技術(shù)電子信息工程技術(shù) 班班 級級 電子電子 1120111201 班班 姓姓 名名 學(xué)學(xué) 號號 指指 導(dǎo)導(dǎo) 教教 師師 20142014 年年 0606 月月 2323 日日 基于 51 單片機(jī)的電子萬年歷的設(shè)計(jì)2基于基于 5151 單片機(jī)的電子萬年歷的設(shè)計(jì)單片機(jī)的電子萬年歷的設(shè)計(jì)摘要摘要電子萬年歷是單片機(jī)系統(tǒng)的一個應(yīng)用,由硬件和軟件相配合使用。硬件由主控器、時鐘電路、溫度檢測電路、顯示電

2、路、鍵盤接口 5 個模塊組成。主控模塊用 AT89C52、時鐘電路用時鐘芯片 DS1302、顯示模塊用 LED 數(shù)碼管、溫度檢測采用 DS18B20 溫度傳感器、鍵盤接口電路用普通按鍵接上拉電阻完成;軟件利用 C 語言編程實(shí)現(xiàn)單片機(jī)程序控制。單片機(jī)通過時鐘芯片 DS1302 獲取時間數(shù)據(jù),DS18B20 采集溫度信號送該給單片機(jī)處理,單片機(jī)再把時間數(shù)據(jù)和溫度數(shù)據(jù)送給 74LS154 譯碼,然后通過三極管 C9015放大驅(qū)動 LED 數(shù)碼管顯示陽歷年、月、日、時、秒、鬧鐘、星期、溫度。關(guān)鍵詞:關(guān)鍵詞:電子萬年歷;單片機(jī);溫度傳感器;時鐘;數(shù)碼顯示。 基于 51 單片機(jī)的電子萬年歷的設(shè)計(jì)3目目 錄

3、錄1 1 引言引言 .4 42 2 功能要求功能要求 .5 53 3 方案論證與設(shè)計(jì)方案論證與設(shè)計(jì) .6 63.1 控制部分的方案選擇 .63.2 測溫部分的方案選擇 .63.3 顯示部分的方案選擇 .74 4 系統(tǒng)硬件電路設(shè)計(jì)系統(tǒng)硬件電路設(shè)計(jì) .8 84.1 主控器 AT89S52.84.2 時鐘電路 DS1302.84.2.1. DS1302 的性能特性 .84.2.2 DS1302 數(shù)據(jù)操作原理 .94.3 測溫電路的設(shè)計(jì) .114.3.1 溫度傳感器工作原理.114.3.2 DS18B20 與單片機(jī)的接口電路 .154.4 鍵盤接口的設(shè)計(jì).155 5 系統(tǒng)程序的設(shè)計(jì)系統(tǒng)程序的設(shè)計(jì) .1

4、6165.1 陽歷程序設(shè)計(jì) .165.2 時間調(diào)整程序設(shè)計(jì) .165.3 溫度程序設(shè)計(jì) .165.3.1 主程序.175.3.2 讀出溫度子程序.175.3.3 溫度轉(zhuǎn)換命令子程序.175.3.4 計(jì)算溫度子程序.185.3.5 顯示數(shù)據(jù)刷新子程序 .18 調(diào)試及性能分析調(diào)試及性能分析 .19196.1 調(diào)試步驟 .196.2 性能分析 .19 總結(jié)總結(jié) .2020致致 謝謝 .2121參考文獻(xiàn)參考文獻(xiàn) .2222附附 1 1 實(shí)物圖實(shí)物圖.2323宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)41 1 引言引言隨著微電子技術(shù)和超大規(guī)模集成電路技術(shù)的不斷發(fā)展,家用電子產(chǎn)品不

5、但種類日益豐富,而且變得更加經(jīng)濟(jì)實(shí)用,單片微型計(jì)算機(jī)體積小、性價(jià)比高、功能強(qiáng)、可靠性高等獨(dú)有的特點(diǎn),在各個領(lǐng)域得到了廣泛的應(yīng)用。電子萬年歷是一種應(yīng)用非常廣泛的日常計(jì)時工具,數(shù)字顯示的日歷鐘已經(jīng)越來越流行,特別是適合在家庭居室、辦公室、大廳、會議室、車站和廣場等使用。LED 數(shù)字顯示的日歷鐘顯示清晰直觀、走時準(zhǔn)確、可以進(jìn)行夜視,并且還可以擴(kuò)展出多種功能。功能也越來越齊全,除了公歷年月日、時分秒、星期顯示及鬧鈴。但通過我們對各種電子鐘表、歷的不斷觀察總結(jié)發(fā)現(xiàn)目前市場的鐘、歷都存在一些不足之處,比如:時鐘不精確、產(chǎn)品成本太高、無環(huán)境溫度顯示等,這都給人們的使用帶來了某些不便。為此設(shè)計(jì)了一種功能全面、

6、計(jì)時準(zhǔn)確、成本低廉的基于 51 單片機(jī)的萬年歷。宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)52 2 功能要求功能要求2.1 萬年歷能用數(shù)碼管顯示陽歷年、月、日、星期、小時、分、秒并設(shè)置指定時間的鬧鈴。2.2 數(shù)字式溫度計(jì)要求測溫范圍-50100C, LED 數(shù)碼管直讀顯示。宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)63 3 方案論證與設(shè)計(jì)方案論證與設(shè)計(jì)3.13.1 控制部分的方案選擇控制部分的方案選擇3.1.1 用可編程邏輯器件設(shè)計(jì)。可采用 ALTERA 公司的 FLEX10K 系列 PLD 器件。設(shè)計(jì)起來結(jié)構(gòu)清晰,各個模塊,從硬件上設(shè)計(jì)起來相對

7、簡單,控制與顯示的模塊間的連接也會比較方便。但是考慮到本設(shè)計(jì)的特點(diǎn),EDA 在功能擴(kuò)展上比較受局限,而且 EDA 占用的資源也相對多一些。從成本上來講,用可編程邏輯器件來設(shè)計(jì)也沒有什么優(yōu)勢。3.1.2 用凌陽 16 位單片機(jī)設(shè)計(jì)。凌陽 16 位單片機(jī)有豐富的中斷源和時基,方便本實(shí)驗(yàn)的設(shè)計(jì)。它的準(zhǔn)確度相當(dāng)高,并且 C 語言和匯編兼容的編程環(huán)境也很方便來實(shí)現(xiàn)一些遞歸調(diào)用。I/O 口功能也比較強(qiáng)大,方便使用。用凌陽 16 位單片機(jī)做控制器最有特色的就是它的可編程音頻處理,可完成語音的錄制播放和識別。這些都方便對設(shè)計(jì)進(jìn)行擴(kuò)展,使設(shè)計(jì)更加完善。成本也相對低一些。但是,在控制與顯示的結(jié)合上有些復(fù)雜,顯示模

8、組資源相對有限,而且單片機(jī)的穩(wěn)定性不是很高。3.1.3 主控芯片使用 51 系列 AT89C52 單片機(jī),時鐘芯片用美國 DALLAS 公司推出的一種高性能、低功耗、帶 RAM 的時鐘 DS1302。采用 DS1302 作為主要計(jì)時芯片,可以做到計(jì)時準(zhǔn)確。更重要的是,DS1302 可以在很小電流的后備電源(2.55V 電源,在 2.5V 時耗電小于 300nA)下繼續(xù)計(jì)時,停電后時鐘無需重新調(diào)整,并可編程選擇多種充電電流來對后備電源進(jìn)行慢速充電,可以保證后備電源基本不耗電,還可自設(shè)鬧鈴,陽歷、星期與年月日自動對應(yīng)。本系統(tǒng)采用了此方案。3.23.2 測溫部分的方案選擇測溫部分的方案選擇3.2.1

9、 在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要乃至溫度的檢測及控制,傳統(tǒng)的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試復(fù)雜,制作成本高。3.2.2 與前面相比,采用美國 DALLAS 半導(dǎo)體公司繼 DS1820 之后推出的一種改進(jìn)型智能溫度傳感器 DS18B20 作為檢測元件,測溫范圍為-55125,宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)7最大分辨率可達(dá) 0.0625。DS18B20 可以直接讀出被測溫度值,而且采用 3線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。3.33.3

10、顯示部分的方案選擇顯示部分的方案選擇3.3.1 液晶顯示方式。液晶顯示效果出眾,可以運(yùn)用菜單項(xiàng)來方便操作,但是在顯示時,特別是使用秒表功能時掃描速度跟不上,屏幕會有明顯的閃爍。而且由于 61 板的存儲空間有限,液晶顯示就不能與語音播抱程序同時實(shí)現(xiàn)。這些大大影響了電子萬年歷的性能。3.3.2 相比液晶顯示,8 段數(shù)碼管雖然操作比液晶顯示略顯繁瑣,但可視范圍十分寬,而且經(jīng)濟(jì)實(shí)惠,也不需要復(fù)雜的驅(qū)動程序。所以最后選擇 LED 數(shù)碼管顯示方案。綜上所述,按照系統(tǒng)設(shè)計(jì)功能的要求,確定硬件系統(tǒng)由主控制器、時鐘模塊、測溫電路、顯示模塊、鍵盤接口共 5 個模塊組成,總體系統(tǒng)構(gòu)成框圖如圖3.1 所示。圖 3.1

11、 電子萬年歷系統(tǒng)構(gòu)成框圖DS1302 時鐘模塊AT89S52主控制器DS18B2 溫度探測鍵盤掃描電路數(shù)碼顯示電路宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)84 4 系統(tǒng)硬件電路設(shè)計(jì)系統(tǒng)硬件電路設(shè)計(jì)電子萬年歷電路原理圖見附件一,系統(tǒng)由主控制器 AT89C52、時鐘芯片DS1302、溫度傳感器 DS18B20 傳感器、顯示電路及鍵盤掃描電路組成。4.14.1 主控器主控器 AT89S52AT89S52ATMEL 公司生產(chǎn)的 AT89S52 單片機(jī)采用高性能的靜態(tài) 80C51 設(shè)計(jì),由先進(jìn)工藝制造,并帶有非易失性 Flsah 程序存儲器。它是一種高性能、低功耗的 8位 CM

12、OS 微處理芯片,市場應(yīng)用最多。主要性能特點(diǎn)有:8KB Flash ROM,可以檫寫 1000 次以上,數(shù)據(jù)保存 10 年。256 字節(jié)內(nèi)部 RAM。電源控制模式:時鐘可停止和恢復(fù);空閑模式;掉電模式。 6 個中斷源。4 個中斷優(yōu)先級。4 個 8 位 I/O 口。全雙工增強(qiáng)型 UART。3 個 16 位定時/計(jì)數(shù)器,T0、T1(標(biāo)準(zhǔn) 80C51)和增加的 T2(捕獲和比較) 。全靜態(tài)工作方式:024MHz。4 4.2.2 時鐘電路時鐘電路 DS1302DS13024 4.2.1.2.1 DS1302DS1302 的性能特性的性能特性實(shí)時時鐘,可對秒、分、時、日、周、月以及帶閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù)

13、;用于高速數(shù)據(jù)暫存的 318 位 RAM;最少引腳的串行 I/O;2.55.5V 電壓工作范圍;2.5V 時耗電小于 300nA;用于時鐘或 RAM 數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;簡單的 3 線接口;宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)9可選的慢速充電(至 Vcc1)的能力。DS1302 時鐘芯片包括實(shí)時時鐘/日歷和 31 字節(jié)的靜態(tài) RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實(shí)時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于 31 天的月和月末的日期自動調(diào)整,還包括閏年校正的功能。時鐘的運(yùn)行可以采用 24h 或帶 AM(上午

14、)/PM(下午)的 12h 格式。采用三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM 數(shù)據(jù)。DS1302 有主電源/后備電源雙電源引腳:Vcc1 在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池備份;Vcc2 在雙電源系統(tǒng)中提供主電源,在這種運(yùn)用方式中,Vcc1 連接到備份電,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302 由 Vcc1 或 Vcc2 中較大者供電。當(dāng) Vcc2 大于Vcc1+0.2V 時,Vcc2 給 DS1302 供電;當(dāng) Vcc2 小于 Vcc 時, DS13026 由 Vcc1供電。4.2.24.2.2 DS1

15、302DS1302 數(shù)據(jù)操作原理數(shù)據(jù)操作原理DS1302 在任何數(shù)據(jù)傳送時必須先初始化,把 RST 腳置為高電平,然后把 8位地址和命令字裝入移位寄存器,數(shù)據(jù)在 SCLK 的上升沿被輸入。無論是讀周期還是寫周期,開始 8 位指定 40 個寄存器中哪個將被訪問到。在開始 8 個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作是寫入時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為 8 加 8,在多字節(jié)方式下為 8 加字節(jié)數(shù),最大可達(dá) 248 字節(jié)數(shù)。如果在傳送過程中置 RST 腳為低電平,則會終止本次數(shù)據(jù)傳送,并且 I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時,在 Vcc 大于等于

16、 2.5V 之前,RST 腳必須保持低電平。只有在 SCLK 為低電平時,才能將 RST 置為高電平。DS1302 的引腳及內(nèi)部結(jié)構(gòu)圖如圖 4.1 所示,表 4.1 為各引腳的功能。DS1302 的控制字如圖 4.2 所示??刂谱止?jié)的最高位(位 7)必須是邏輯1;如果它為 0,則不能把數(shù)據(jù)寫入到 DS1302 中。位 6 如果為 0,則表示存取日歷時鐘數(shù)據(jù);為 1 表示存取 RAM 數(shù)據(jù)。位 51(A4A0)指示操作單元的地址。最低有效位(位 0)如為 0,表示要進(jìn)行寫操作;為 1 表示進(jìn)行讀操作??刂谱止?jié)總是從最低位開始輸入/輸出。為了提高對 32 個地址的尋址能力(地址/命令位 15=邏輯

17、 1) ,可以把時宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)10鐘/日歷或 RAM 寄存器規(guī)定為多字節(jié)(burst)方式。位 6 規(guī)定時鐘或 RAM,而位 0 規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址 931 或 RAM 寄存器中的地址31 不能寄存數(shù)據(jù)。在多字節(jié)方式中,讀或?qū)憦牡刂?0 的位 0 開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?8 個寄存器。但是,當(dāng)以多字節(jié)方式寫 RAM 時,為了傳送數(shù)據(jù)不必寫所有 31 字節(jié)。不管是否寫了全部 31 字節(jié),所寫的每一字節(jié)都將傳送至 RAM。12345678Vcc1SCLKI/ORSTVcc2X1X2GND電源控制Vcc1Vcc2G

18、ND輸入移位寄存器I/OSCLK實(shí)時時鐘命令與控制邏輯振蕩器與分頻器318RAMRSTX2X132.768kHzDATA BUS 圖 4.1 DS1302 引腳及內(nèi)部結(jié)構(gòu)表 4.1 DS1302 引腳功能引腳號引腳名稱功 能1Vcc2主電源2,3X1,X2振蕩源,外界 32.768kHz 晶振4GND地線5RST復(fù)位/片選線6I/O串行數(shù)據(jù)輸入/輸出端(雙向)7SCLK串行數(shù)據(jù)輸入端8Vcc1后備電池7 6 5 4 3 2 1 0宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)111RAMCKA4A3A2A1A0RAMK圖 4.2 DS1302 的控制字DS1302 共有 1

19、2 個寄存器,其中有 7 個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式。其日歷、時間寄存器及其控制字見表 3.2,其中奇數(shù)為讀操作,偶數(shù)為寫操作。時鐘暫停:秒寄存器的位 7 定義位時鐘暫停位。當(dāng)它為 1 時,DS1302 停止震蕩,進(jìn)入低功耗的備份方式。通常在對 DS1302 進(jìn)行寫操作時(如進(jìn)入時鐘調(diào)整程序) ,停止震蕩。當(dāng)它為 0 時,時鐘將開始啟動。AMPM/1224小時方式:小時寄存器的位 7 定義為 12 或 24小時方式選擇位。它為高電平時,選擇 12小時方式。在此方式下,位 5 是 AM/PM 位,此位是高電平時表示 PM 低電平表示 AM。在 24小時方式下,位 5

20、 為第二個10小時位(2023h) 。表 4.2 內(nèi)部寄存器地址和內(nèi)容命令字節(jié)積存器內(nèi)容積存器名寫讀取值范圍76543210秒積存器80H81H0059CH10SSEC分積存器82H83H0059010 minMIN小時積存器84H85H0023 或 011212/24010A/PHRHR日積存器85H87H0128,29,30,310010DATEDATE月積存器88H89H011200010MMONTH周積存器8AH8BH010700000DAY年積存器8CHD3H009910YEARYEARDS1302 的晶震選用 32.768kHz,電容推薦值為 33pF,因?yàn)檎鹗庮l率較低,也可以不接

21、電容,對計(jì)時精度影響不大。4.34.3 測溫電路的設(shè)計(jì)測溫電路的設(shè)計(jì)測溫電路主要使用溫度傳感器 DS18B20,由于精度要求不高所以采用 2 位共陽 LED 數(shù)碼管以動態(tài)掃描法實(shí)現(xiàn)溫度顯示。其設(shè)計(jì)原理圖如附件一所示。宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)124.3.14.3.1 溫度傳感器工作原理溫度傳感器工作原理DS18B20 溫度傳感器是美國 DALLAS 半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要示通過簡單的編程實(shí)現(xiàn) 912 位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:獨(dú)特的單線接

22、口僅需要一個端口引腳進(jìn)行通信;多個 DS18B20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為 3.03.5V;零待機(jī)功耗;溫度以 9 或 12 數(shù)字量讀出;用戶可定義的非易失性溫度報(bào)警設(shè)置;報(bào)警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時,溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作。DS18B20 采用 3 腳 PR35 封裝或腳 SOIC 封裝,其內(nèi)部結(jié)構(gòu)框圖如圖 4.3所示。64 位 ROM 的位結(jié)構(gòu)如圖 4.4 所示。開始 8 位是產(chǎn)品類型的編號,接著是每個器件的唯一的序號,共有 48 位,最后 8 位是前面

23、 56 位的 CRC 檢驗(yàn)碼,這也是多個 DS18B20 可以采用一線進(jìn)行通信的原因。非易失性溫度報(bào)警觸發(fā)器 TH和 TL,可通過軟件寫入戶報(bào)警上下限。DS18B20 溫度傳感器的內(nèi)部存儲器還包括一個調(diào)整暫存 RAM 和一個易失性的可電擦除的 EERAM。高速暫存 RAM 的結(jié)構(gòu)為 8 字節(jié)存儲器,結(jié)構(gòu)如圖 4.5 所示。頭 2 個字節(jié)包含測得的溫度信息,第 3 和第 4 節(jié)是 TH 和 TL 的拷貝,是易失的,每次上電復(fù)位時被刷新。第 5 個字節(jié)為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20 工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于

24、 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)13 64 位 ROM 和單線接口圖 4.3 DS18B20 內(nèi)部結(jié)構(gòu)圖存儲器與控制邏輯高速緩存溫度傳感器高溫觸發(fā)器 TH低溫觸發(fā)器 TL配置寄存器8 位 CRC 發(fā)生器 I/OCVDD精度的數(shù)值。低 5 位一直 1,M 是測試模式位,用于設(shè)置 DS18B20 在工作模式還是在測試模式。在 DS18B20 出廠時該位被設(shè)置為 0,用戶不要去改動,R1 和 R0決定溫度轉(zhuǎn)換的精度位數(shù),即用來設(shè)置分辨率,定義方法見表 4.3。由表 4.3 可見,DS18B20 溫度轉(zhuǎn)換的時間比較長,而且設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間就越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)

25、換時間權(quán)衡考慮。高速暫存 RAM 的第 6、7、8 字節(jié)保留未用,表現(xiàn)為全邏輯 1。第 9 字節(jié)讀出前面所有 8 字節(jié)的 CRC 碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng) DS18B20 接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以 16 位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫存存儲器的第 1、2 字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以 0.0625C/LSB 形式表示。表 4.3 DS18B20 分辨率的定義規(guī)定R1R0分辨率/位測量最大轉(zhuǎn)換時間/ms00993.750110187.510113751112750表 4.4 DS

26、18B20 溫度與測得值對應(yīng)表溫度/C二進(jìn)制表示十六進(jìn)制表示宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)14+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.0

27、6251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H預(yù)置計(jì)數(shù)器 1減法計(jì)數(shù)器1低溫度系數(shù)振蕩器減到 0減法計(jì)數(shù)器 2預(yù)置溫度寄存器減到 0高溫度系數(shù)振蕩器斜率累加器計(jì)數(shù)比較器增加圖 4.8 DS18B20 測溫原理圖停止當(dāng)符號位 S=0 時,表現(xiàn)測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制,當(dāng)符號位 S=1 時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼再計(jì)算十進(jìn)制值。表 4.4 是一部分溫度值對應(yīng)的二進(jìn)制溫度數(shù)據(jù)。DS18B20 完成溫度轉(zhuǎn)換后,把測得的溫度值與 RAM 中的 TH、TL 字節(jié)內(nèi)容作比較。若 TTH 或 TTL,則

28、將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只 DS18B20 同時測量溫度并進(jìn)行報(bào)警搜索。宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)15在 64 位 ROM 的最高有效字節(jié)中存儲有循環(huán)冗余檢驗(yàn)碼(CRC) 。主機(jī)根據(jù)ROM 的前 56 位來計(jì)算 CRC 值,并和存入 DS18B20 的 CRC 作比較,以判斷主機(jī)收到的 ROM 數(shù)據(jù)是否正確。DS18B20 的測溫原理如圖 4.8 所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器 1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為

29、減法計(jì)數(shù)器 2 的脈沖輸入。圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)算門打開時,DS18B20 就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55C 所對應(yīng)的一個基數(shù)分別置入減法計(jì)數(shù)器 1、溫度寄存器中,減法計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在-55C 所對應(yīng)的一個基數(shù)值。減法計(jì)數(shù)器 1 對低溫系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器 1 的預(yù)置值減到 0 時,溫度寄存的值將加 1,減法計(jì)數(shù)器 1 的預(yù)置值將重新被裝入,減法計(jì)數(shù)器 1 重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器 2 計(jì)數(shù)到 0 時,停

30、止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。圖 4.8 中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值達(dá)到被測溫度值。另外,由于 DS18B20 單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對 DS18B20 的各種操作必須按協(xié)議進(jìn)行。4.3.24.3.2 DS18B20DS18B20 與單片機(jī)的接口電路與單片機(jī)的接口電路DS18B20 可以采用兩種方式供電,一種是采用電源供電方式,此時 DS18B20的 1 腳接地,2 腳作為引線,3 腳接電源。另一種是寄生電源供電方

31、式。單片機(jī)端口接單線總線,為保證在有效的 DS18B20 時鐘周期內(nèi)提供足夠的電流,可用一個 MOSFET 管來完成對總線的上拉。當(dāng) DS18B20 處于寫存儲器操作和溫度 A/D 轉(zhuǎn)換操作時,總線上必須有強(qiáng)的上拉,上拉開啟時間最大為 10us。采用寄生電源供電方式時 VDD和 GND 端均接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)16表 4.5 74LS164 特性表操作模式輸 入輸 出復(fù) 位MRABQ0Q1Q7LLQ0Q6HLLLQ0Q6HLHLQ0Q6HHLLQ0Q6移 位HHHHQ0Q674LS164 內(nèi)部為

32、 8 個 D 觸發(fā)器,用以實(shí)現(xiàn)數(shù)據(jù)的串行移位,74LS164 特性見表 4.5。4.44.4 鍵盤接口的設(shè)計(jì)鍵盤接口的設(shè)計(jì)由于按鍵只有 5 個,用普通按鈕接 10K 上拉電阻,用查詢法完成讀鍵功能。5 5 系統(tǒng)程序的設(shè)計(jì)系統(tǒng)程序的設(shè)計(jì)5.15.1 陽歷程序設(shè)計(jì)陽歷程序設(shè)計(jì)因?yàn)槭褂昧藭r鐘芯片 DS1302,陽歷程序只需從 DS1302 各寄存器中讀出年、周、月、日、小時、分、秒等數(shù)據(jù),再處理即可。在首次對 DS1302 進(jìn)行操作之前,必須對它進(jìn)行初始化,然后從 DS1302 中讀出數(shù)據(jù),再經(jīng)過處理后,送給顯示緩沖單元。陽歷程序流程圖見圖 5.1 所示。宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51

33、單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)17初始化 13021302 開始振蕩從 1302 中讀出年、周、月、日、小時、分、秒開 始讀出的數(shù)據(jù)都為 BCD碼,將其高低位分離送顯示緩沖單元圖 5.1 陽歷程序流程圖5.25.2 時間調(diào)整程序設(shè)計(jì)時間調(diào)整程序設(shè)計(jì)調(diào)整時間用 5 個調(diào)整按鈕,1 個作為移位、控制用,2 個作為加和減用,還有 2 個作為鬧鐘調(diào)整使用,分別定義為控制按鈕、加按鈕、減按鈕、鬧鐘加按紐、鬧鐘減按紐。在調(diào)整時間過程中,要調(diào)整的位與別的位應(yīng)該有區(qū)別。所以增加了閃爍功能,即調(diào)整的位一直在閃爍,直到調(diào)整下一位。閃爍原理就是,讓要調(diào)整的一位每隔一定時間熄滅一次,比如說 50ms。利用定時器計(jì)時,當(dāng)達(dá)到

34、50ms 溢出時,就送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調(diào)整該位結(jié)束。此時送正常顯示值給該位,再進(jìn)入下一位調(diào)整閃爍程序。5.35.3 溫度程序設(shè)計(jì)溫度程序設(shè)計(jì)系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序、顯示數(shù)據(jù)刷新子程序等等。5.3.15.3.1 主程序主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示、讀出并處理 DS18B20 的測量溫度值,溫度測量每 1s 進(jìn)行一次。其程序流程圖見 5.2。5.3.5.3.2 2 讀出溫度子程序讀出溫度子程序主要功能是讀出 RAM 中的 9 字節(jié),在讀出時需進(jìn)行 CRC 校驗(yàn),校驗(yàn)有錯時宜賓職業(yè)技術(shù)學(xué)院

35、電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)18不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖 5.3 所示。5.3.35.3.3 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用 12 位分辨率時轉(zhuǎn)換時間約為 750ms,在本程序設(shè)計(jì)中采用 1s 顯示程序延時法等待轉(zhuǎn)換的完成。圖 5.2 DS18B20 溫度計(jì)主程序流程圖 圖 5.3 讀出溫度子程序流程圖5.3.45.3.4 計(jì)算溫度子程序計(jì)算溫度子程序計(jì)算溫度子程序?qū)?RAM 中讀取值進(jìn)行 BCD 碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定。5.3.55.3.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子

36、程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為 0 時將符號顯示位移入下一位。初始化調(diào)用顯示子程序1S 到?初次上電?讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令NYYN發(fā) DS18B20 復(fù)位命令發(fā)跳過 ROM 命令發(fā)讀取溫度命令讀取操作,CRC 校驗(yàn)9 字節(jié)完?CRC 校驗(yàn)正確?移入溫度暫存器結(jié)束NYYN宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)19 調(diào)試及性能分析調(diào)試及性能分析6.16.1 調(diào)試步驟調(diào)試步驟系統(tǒng)的調(diào)試分為硬件調(diào)試和軟件調(diào)試。其中硬件調(diào)試主要是檢測硬件電路是否有短路、斷路、虛焊現(xiàn)象。時鐘和測溫部分的硬件電路很簡單,DS1302 通過 3 根線、DS18B20 只通過 1 根線與單片機(jī)相連接,很容易檢測,主要是檢測宜賓職業(yè)技術(shù)學(xué)院電子信息工程系 基于 51 單片機(jī)實(shí)現(xiàn)萬年歷的設(shè)計(jì)20引腳晶振和電源是否接好。另外可以通過軟件來調(diào)試硬件,如編寫一個簡單的顯示程序來測試顯示電路連接是否正確。接下來可進(jìn)行軟件調(diào)試,可以編寫只含 DS1302 的計(jì)時和讀寫程序、顯示程序,測試 DS1302 是否正常工作。最后調(diào)試日歷、時間、鬧鐘、報(bào)警和溫度程序。6.26.2性能分析性能分析計(jì)時器最關(guān)鍵的是計(jì)時的精度。電子萬年歷中 DS1302 上最好使用專用的晶振。

溫馨提示

  • 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

提交評論