基于51單片機的多功能電子鐘設(shè)計_第1頁
基于51單片機的多功能電子鐘設(shè)計_第2頁
基于51單片機的多功能電子鐘設(shè)計_第3頁
基于51單片機的多功能電子鐘設(shè)計_第4頁
基于51單片機的多功能電子鐘設(shè)計_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于51單片機的多功能電子鐘設(shè)計 畢 業(yè) 設(shè) 計 中文題目 基于51單片機的多功能電子鐘設(shè)計英文題目 Design of Multi-functionClock Based on 51 MCU系 別:電子與電氣工程系年級專業(yè):07級電氣工程及其自動化姓 名:阮志聰學 號:20070621236指導教師:劉 陽職 稱:講 師2011年 5月 24日畢業(yè)設(shè)計(論文)誠信聲明書本人鄭重聲明:在畢業(yè)設(shè)計(論文)工作中嚴格遵守學校有關(guān)規(guī)定,恪守學術(shù)規(guī)范;我所提交的畢業(yè)設(shè)計(論文)是本人在劉陽指導教師的指導下獨立研究、撰寫的成果,設(shè)計(論文)中所引用他人的文字、研究成果,均已在設(shè)計(論文)中加以說明;在本

2、人的畢業(yè)設(shè)計(論文)中未剽竊、抄襲他人的學術(shù)觀點、思想和成果,未篡改實驗數(shù)據(jù)。本設(shè)計(論文)和資料若有不實之處,本人愿承擔一切相關(guān)責任。學生簽名: 年 月 日基于51單片機的多功能電子鐘設(shè)計基于51單片機的多功能電子鐘設(shè)計【摘要】數(shù)字電子時鐘是人們?nèi)粘I钪胁豢苫蛉钡谋匦杵?。本文以STC89C52為核心控制芯片,DS12887為時鐘芯片,DS18B20為溫度傳感器,通過液晶顯示器LCD1602實時顯示時間及溫度,通過按鍵設(shè)置年月日和星期以及定時鬧鐘,定時鬧鐘時間到自動發(fā)出警報。本設(shè)計的+5V電源采用LM1117電壓轉(zhuǎn)換元件,將電源適配器轉(zhuǎn)換得到的12V電壓直接變成5V電壓供系統(tǒng)使用。程序的下載

3、則是通過普中科技公司自制的PZ-ISP軟件完成。經(jīng)過測試,系統(tǒng)可以正常完成預(yù)定的功能。【關(guān)鍵詞】電子時鐘;單片機;DS12887;DS18B20; Design of Multi-function Clock Based on 51 MCU【Abstract】Digital electronic clock is an integral, necessary part of daily life.In this paper, STC89C52 chip is used as the core control chip, DS12887chip is used as

4、 the clock chip, DS18B20 chip is used as the temperature sensor and LCD1602 was used to diaplay time and temperature。 You can set year, month and time alarm clock through the four buttons.When the real time reach to the time clock,the system will warn automatically. The +5V power of the system is su

5、pplied by LM1117 voltage conversion device. The 12V voltage get from power adapter was transformed directly into 5V voltage for the system. The download of the process is accomplished through the PZ-ISP software made by Puzhong technology company. After testing, the system can complete the scheduled

6、 function normally.【key words】electronic clock;MCU;DS12887;DS18B20目 錄第一章 緒論11.1電子時鐘的研究背景11.2電子時鐘的國內(nèi)外研究現(xiàn)狀1第二章 總體方案42.1 系統(tǒng)的設(shè)計思路42.2 系統(tǒng)硬件描述42.3 系統(tǒng)軟件描述42.4 設(shè)計流程和預(yù)期成果5第三章 硬件設(shè)計63.1 硬件芯片介紹63.1.1 單片機STC89C5263.1.2 實時時鐘芯片DS12887103.1.3 溫度傳感器DS18B20143.1.4 液晶顯示屏LCD1602183.2 系統(tǒng)硬件架構(gòu)203.2.1 單片機最小系統(tǒng)213.2.2 時鐘模塊23

7、3.2.3 溫度傳感器模塊243.2.4 液晶顯示模塊253.2.5 按鍵模塊263.2.6 蜂鳴器報警模塊27第四章 軟件設(shè)計294.1 軟件設(shè)計總體說明294.2 主程序軟件實現(xiàn)294.2.1主程序流程圖294.2.2主程序代碼304.3 DS18B20模塊軟件實現(xiàn)324.3.1 DS18B20模塊子程序流程圖324.3.2 DS18B20模塊子程序代碼324.4 LCD1602模塊軟件實現(xiàn)354.4.1 LCD1602液晶顯示模塊子程序流程圖354.4.2 LCD1602液晶顯示模塊子程序代碼364.5 DS12887模塊軟件實現(xiàn)394.5.1 DS12887模塊子程序流程圖394.5.

8、2 DS12887模塊子程序代碼404.6 報警模塊軟件實現(xiàn)514.6.1 報警模塊子程序流程圖514.6.2 報警模塊子程序代碼52第五章 系統(tǒng)調(diào)試565.1 最小系統(tǒng)的調(diào)試565.2 液晶顯示模塊和蜂鳴器報警模塊的調(diào)試565.3 整體調(diào)試565.4 實物圖56第六章 總結(jié)58致 謝59參考文獻60附錄A 電路原理圖61附錄B 程序頭文件62第一章 緒論1.1電子時鐘的研究背景20世紀末,電子技術(shù)得到了極速的發(fā)展,毫無疑問,在其推動下,現(xiàn)代電子產(chǎn)品以及各種高科技產(chǎn)品幾乎滲透到了社會的各個領(lǐng)域,這有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度以及綜合科技水平的提高,但產(chǎn)品更新?lián)Q代的頻率也越來越快

9、。隨著科技的發(fā)展社會的進步和全球化競爭的日益激烈,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能電子鐘不管在性能還是在樣式亦或是用途上都發(fā)生了重大的變化,許多電子鐘都已具備電子鬧鐘、電子秒表、溫度檢測等功能。同時單片機在多功能數(shù)字鐘中的應(yīng)用已是非常普遍的1。多功能電子時鐘除了具有時鐘的功能外還可以包含對環(huán)境溫度檢測的功能。溫度是一種最基本的環(huán)境參數(shù)。在各個行業(yè)生產(chǎn)及日常生活中,對溫度的測量及控制始終占據(jù)著非常重要的地位。目前,典型的溫度檢測控制系統(tǒng)由模擬式溫度傳感器、A/D轉(zhuǎn)換電路和各種單片機組成。由于模擬式溫度傳感器輸出的模擬信號必須經(jīng)過A/D轉(zhuǎn)換環(huán)節(jié)轉(zhuǎn)換為數(shù)字信號后才

10、能與單片機等微處理器接口進行讀寫的操作,所以硬件電路會比較復(fù)雜,成本較高。而以DS18B20為代表的新型單線總線數(shù)字式溫度傳感器集溫度測量和A/D轉(zhuǎn)換于一體,這類傳感器可以直接輸出數(shù)字量,同時與單片機接口電路結(jié)構(gòu)非常簡單,可以廣泛用于距離遠、節(jié)點分布多的場合,具有較強推廣應(yīng)用價值。2 數(shù)字電子時鐘是采用數(shù)字電路實現(xiàn)對時,分,秒數(shù)字顯示的裝置,廣泛用于個人家庭,車站,碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢苫蛉钡谋匦杵罚捎跀?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,數(shù)字時鐘的精度遠遠超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。例如定時自動

11、報警、按時自動打鈴、時間程序自動控制、定時廣播、自動啟閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電器的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字時鐘及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。1.2電子時鐘的國內(nèi)外研究現(xiàn)狀數(shù)字電子時鐘,自從它發(fā)明的那天起,就成為人類的朋友,給人們的生活、學習、工作、娛樂帶來極大的方便。但隨著時間的推移,科學技術(shù)的不斷發(fā)展,生活節(jié)奏越來越快,競爭日益激烈,人們對時間計量的精度要求越來越高,應(yīng)用越來越廣。可以說時間的準確已成為各行各業(yè)安全運行的基礎(chǔ),如果時間出現(xiàn)誤差而不能及時校正,會造成一系列嚴重的后果和經(jīng)濟損失3 。 電子時鐘的設(shè)計方法有多種,可

12、用中小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用對單片機編程來實現(xiàn)電子鐘。其中,利用單片機實現(xiàn)的電子時鐘具有硬件結(jié)構(gòu)簡單、編程靈活、便于功能擴展等特點。由單片機作為數(shù)字鐘的核心控制器,可以通過它的時鐘信號實現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機輸出,利用顯示器顯示出來。通過鍵盤可以進行定時、校時功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)或者數(shù)碼管顯示技術(shù)4。溫度是一種最基本的環(huán)境參數(shù),日常生活和工農(nóng)業(yè)生產(chǎn)中經(jīng)常要檢測溫度。傳統(tǒng)的方式是采用熱電偶或熱電阻,但是由于模擬溫度傳感器輸出為模擬信號,必須經(jīng)過A/D 轉(zhuǎn)換環(huán)節(jié)獲得數(shù)字信號后才能與單片機等

13、微處理器接口,使得硬件電路結(jié)構(gòu)復(fù)雜,制作成本較高。近年來,美國DALLAS 公司生產(chǎn)的DSl8B20 為代表的新型單總線數(shù)字式溫度傳感器以其突出優(yōu)點廣泛使用于倉儲管理、工農(nóng)業(yè)生產(chǎn)制造、氣象觀測、科學研究以及日常生活中。DSl8B20 集溫度測量和A/D 轉(zhuǎn)換于一體,直接輸出數(shù)字量,傳輸距離遠,可以很方便地實現(xiàn)多點測量,硬件電路結(jié)構(gòu)簡單,與單片機接口幾乎不需要外圍元件5。 智能溫度傳感器(亦稱數(shù)字溫度傳感器)是上世紀90年代中期問世的。此類傳感器是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)的結(jié)晶。目前,國際上已開發(fā)出多種智能溫度傳感器。智能溫度傳感器內(nèi)部一般包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存

14、儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器、隨機存取存儲器和只讀存儲器。智能溫度傳感器能實時更新并輸出溫度數(shù)據(jù),適配于各種微控制器也就是通常所說的單片機(MCU),并且可通過軟件來實現(xiàn)顯示功能,其智能化取決于軟件和硬件的綜合開發(fā)水平,二者缺一不可。目前,新型溫度傳感器正從模擬式向數(shù)字式、集成化向智能化及網(wǎng)絡(luò)化的方向發(fā)展6。21世紀后,智能溫度傳感器毫無疑問正朝著高精度、多功能、總線標準化、高可靠性及高安全性等高科技的方向迅速發(fā)展,開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制更先進的單片測溫系統(tǒng)已是刻不容緩7。在日常生活和自動控制系統(tǒng)中,我們時常會遇到對時間和溫度實時監(jiān)控的需求。這就給具

15、有多種功能的時鐘提供了市場,也有了市場開發(fā)的前景。本文給出了一種基于單片機實現(xiàn)帶溫度檢測的電子時鐘的設(shè)計方法和實現(xiàn)過程。第二章 總體方案2.1 系統(tǒng)的設(shè)計思路本次設(shè)計完成電子時鐘年、月、日、時、分、秒的顯示及環(huán)境溫度測量等功能的基礎(chǔ)上完成定時鬧鐘的功能。由于DS12887時鐘芯片內(nèi)含一個鋰電池,所以斷電情況可以運行十年以上不丟失數(shù)據(jù),重新上電后不用校正時鐘。硬件電路包括單片機最小系統(tǒng)電路、DS12887實時時鐘芯片電路模塊、LCD1602液晶顯示模塊、按鍵模塊、DS18B20溫度傳感器模塊、蜂鳴器報警電路模塊;軟件部分主要通過c程序的編程實現(xiàn)對時鐘芯片進行時間數(shù)據(jù)的讀和寫,然后通過液晶顯示程序

16、將時間顯示出來,通過按鍵操作實現(xiàn)功能的轉(zhuǎn)換和屏幕的切換。設(shè)計中結(jié)合硬件、軟件的分步調(diào)試,達到要求的控制效果。2.2 系統(tǒng)硬件描述基于單片機系統(tǒng)的電子時鐘基本結(jié)構(gòu)框圖如圖2-1所示:圖2-1 系統(tǒng)基本結(jié)構(gòu)框圖該系統(tǒng)所需要的器件包括單片機STC89C52芯片一塊,實時時鐘芯片DS12887一塊,溫度傳感器DS18B20一塊,液晶顯示屏LCD1602一塊,雙4輸入與門芯片74LS21一塊,蜂鳴器一個,12mHZ的晶振一個,排針排線若干組,電容電阻若干,導線若干,發(fā)光二級管一個,三極管一個,按鈕5個。2.3 系統(tǒng)軟件描述系統(tǒng)程序?qū)崿F(xiàn)三部分功能:時鐘部分實現(xiàn)年、月、日、時、分、秒、星期顯示和設(shè)置、鬧鐘功

17、能;溫度測量部分實現(xiàn)環(huán)境溫度測量及顯示;鍵盤部分主要為時鐘和鬧鐘設(shè)置;功能整體程序流程框圖如圖2-2所示。圖2-2 功能整體流程框圖2.4 設(shè)計流程和預(yù)期成果該設(shè)計的主要流程如下:首先閱讀大量參考文獻,進行設(shè)計方案的確定,然后在Protel 99SE上進行原理圖的繪制和修改,在電氣檢查無誤的情況下,購買所需要的元器件(元器件應(yīng)考慮裕量)。接著把元器件焊接到各個功能電路的模塊上,并結(jié)合程序進行調(diào)試。最后將各個功能的電路程序組合起來,然后再進行總體調(diào)試直到成功。本設(shè)計能達到以下結(jié)果: 1)顯示年、月、日、星期等日歷相關(guān)信息。通過按鍵設(shè)置年月日和星期,以及定時鬧鐘。 2)掉電后時鐘芯片正常運行,重新

18、上電后不用校正時鐘。 3)定時時間到達時,蜂鳴器報警;手動按任意鍵報警停止;如無人工按鍵,報警在1.5min后停止。 4)實時溫度顯示。第三章 硬件設(shè)計3.1 硬件芯片介紹3.1.1 單片機STC89C52(一)STC89C52功能特點8STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能COMOS8的微處理器,俗稱單片機。該器件采用ATMEL搞密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。表3-1給出了其主要功能。表3-1 STC89C52主要功能主要功能特性兼容MCS51指令系統(tǒng)8K可反復(fù)擦寫Flash ROM32個雙向I/O口256x

19、8bit內(nèi)部RAM3個16位可編程定時/計數(shù)器中斷時鐘頻率0-24MHz2個串行中斷可編程UART串行通道2個外部中斷源共6個中斷源2個讀寫中斷口線3級加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能(二)STC89C52各管腳介紹STC89C52各管腳如圖3-1所示。圖3-1 STC89C52管腳圖(1)主電源引腳(2根)VCC(Pin40):電源輸入,接5V電源GND(Pin20):接地線(2)外接晶振引腳(2根)XTAL0(Pin18):片內(nèi)振蕩電路的輸入端XTAL1(Pin19):片內(nèi)振蕩電路的輸出端(3)控制引腳(4根)RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個機器周期的高

20、電平將使單片機復(fù)位。ALE/PROG(Pin30):地址鎖存允許信號PSEN(Pin29):外部存儲器讀選通信號EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。(4)可編程輸入/輸出引腳(32根)STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。PO口(Pin39Pin32):名稱為P0.0P0.7。P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平(晶體管-晶體管邏輯電平)。P1口(Pin1Pin8):名稱為P1.0P1.

21、7。P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下所示。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。P1引腳第二功能P1.0 :T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出P1.1 :T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)

22、P1.5: MOSI(在線系統(tǒng)編程時用到)P1.6 :MISO(在線系統(tǒng)編程時用到)P1.7 :SCK(在線系統(tǒng)編程時用到)P2口(Pin21Pin28):名稱為P2.0P2.7。P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR)時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用 8位地

23、址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口(Pin10Pin17):8位準雙向I/O口線,名稱為P3.0P3.7。P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為STC89C52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗時,P3口也接收一些控制信號。端口引腳 第二

24、功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INTO(外中斷0)P3.3 INT1(外中斷1)P3.4 TO(定時/計數(shù)器0)P3.5 T1(定時/計數(shù)器1)P3.6 WR(外部數(shù)據(jù)存儲器寫選通)P3.7 RD(外部數(shù)據(jù)存儲器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。RST復(fù)位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位。ALE/PROG當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出

25、時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當STC89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP

26、外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。3.1.2 實時時鐘芯片DS12887 (一)DS12887功能特點9 10DS12887是美國達拉斯半導體公司推出的時鐘芯片,此芯片是基于CMOS技術(shù)的,把時鐘芯片所需的晶振和外部鋰電池相關(guān)電路集于芯片內(nèi)部,這無疑大大簡化了外圍電路,同時它與目前IB

27、M AT計算機常用的時鐘芯片MC146818B和DS1287芯片引腳兼容,可直接進行對等交換。其主要功能如下:    (1)內(nèi)含一個鋰電池,斷電可以運行十年,并且不會丟失數(shù)據(jù),時間功能正常運行。    (2)可計時至2100年前的秒、分、時、星期、日、月、年等日歷信息并帶有閏年補償功能。    (3)可通過編程選擇BCD碼或者二進制數(shù)表示日歷和定時鬧鐘。    (4)可通過編程選擇12小時或24小時制,12小時時鐘模式帶有PM和AM提示,此外還有有夏令時功能。 &#

28、160;  (5)可選擇MOTOROLA和INTEL總線時序。    (6)內(nèi)部共有128個RAM單元,這在常用的實時時鐘中屬于較大的。其中14個字節(jié)作為時鐘和控制寄存器,114字節(jié)為通用RAM,所有ARAM單元數(shù)據(jù)都具有掉電保護功能。    (7)可編程并選擇的方波信號輸出     (8)中斷信號輸出(IRQ)和總線兼容,定時鬧鐘中斷、周期性中斷、時鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進行測試。(9)三種可供選擇的中斷方式 -時間性中斷 -周期性中斷-時鐘更新結(jié)束中斷(二)DS1288

29、7的原理及管腳說明圖3-2顯示了DS12887管腳排列圖。下面說明管腳功能: 圖3-2 DS12887管腳圖GND:電源地VCC:直流電源+5V電壓。若外部提供的VCC電源小于4.25V,讀寫會即刻被禁止,但芯片內(nèi)部的計時仍在繼續(xù),重新通上+5V電源后,通過編程即可顯示當前時間;若外部提供的VCC電源小于3V,電源方式切換為內(nèi)部鋰電池提供,同樣可以保持芯片內(nèi)部計時仍然繼續(xù)。    MOT(模式選擇):接VCC(+5V)時,芯片在MOTOROLA時序下工作,接GND(地)時,芯片在INTEL時序下工作。    SQW(方波信號):通過1

30、5個分頻器抽頭中的13個提供方波輸出。    AD0AD7(雙向地址/數(shù)據(jù)復(fù)用線):數(shù)據(jù)和控制指令都通過此8個引腳來于單片機等控制器傳輸。AS(地址選通輸入):地址鎖存引腳。  DS(數(shù)據(jù)選通或讀輸入):該引腳有兩種操作模式,視該芯片是出于MOTOROLA模式或者INTEL模式,當使用MOTOROLA時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;若為INTEL時序,DS稱作(RD),RD與典型存貯器的允許信號(OE)的定義相同。    R/W(讀/寫輸入):R/W管腳同樣也有兩種操作模式。此引腳的兩種模式與DS

31、相似。    CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。    IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上拉電阻。    RESET(復(fù)位輸出):若要保證DS12887有效復(fù)位,必須讓該腳保持低電平時間大于200ms,。(三)DS12887的內(nèi)部功能(1) 地址分配圖    DS12887的存儲器分配圖如圖3-3所示,其中00H-09H為時鐘信息和鬧鐘信息寄

32、存器,0AH-0DH為四個控制寄存器圖3-3 DS12887存儲器分配圖(2) 控制寄存器    寄存器A 表3-2 DS12887寄存器AUIP:更新位。若UIP為1,實時時鐘的更新轉(zhuǎn)換發(fā)生的很快,而當UIP為0,更新轉(zhuǎn)換至少在244µs內(nèi)不會發(fā)生。    DV0,DV1,DV2:用于晶振和復(fù)位分頻鏈的開啟。表3-3 DS12887周期中斷率和方波頻率    RS3,RS2,RS1,RS0:頻率選擇位,通過這四個位用戶可以:    a 用PIE位允許中斷;

33、0;   b 用SQWE位允許SQAW輸出;    c 二者同時允許并用相同的頻率;    d 二者都不允許寄存器B 表3-4 DS12887寄存器BSET:此位為0,時間更新正常進行,每秒計數(shù)走時一次,當此位為1,時間更新被禁止,程序可對芯片進行初始化的操作和編程。    PIE:周期中斷允許位,PIE為1,則允許以選定的頻率拉低IRQ管腳,PIE為0,則禁止中斷。    AIE:定時鬧鐘中斷允許位,AIE為1,允許中斷,否則禁止中斷。UIE:更新結(jié)束中

34、斷允許位,AIE為1,允許中斷,否則禁止中斷。    SQWE:方波允許位,置1選定頻率方波從SQW腳輸出;為0-時,SQW腳為低。    DM:數(shù)據(jù)模式位,DM為1表明為十進制數(shù)據(jù),而0表明是BCD碼的數(shù)據(jù)。    24/12:小時格式位,1表明24小時制,而0表明12小時制。    DSE:夏令時允許位,當DSE置1時允許兩個特殊的更新,在四月份的第一星期日,時間從1:59:59AM時改變?yōu)?:00:00AM;在十月的最后一個星期日的1:59:59AM時改變?yōu)?:00:0

35、0AM。當DSE位為0,這種特殊修正不發(fā)生。寄存器C 表3-5 DS12887寄存器CIRQF:中斷申請標志位。當下列表達式中一個或多個為真時,置1。    PF=PIE=1;AF=AIE=1;UF=UIE=1;    即:IRQF=PF·PIE+AF·AIE+UF·UIE    只要IRQF為1,IRQ管腳輸出低 ,程序讀寄存器C以后或RESET管腳為低后,所有標志位清零。   AF:定鬧中斷標志位,只讀,AF為1表明現(xiàn)在時間與定鬧時間匹配。 

36、   VF:更新周期結(jié)束標志位。VF為1表明更新周期結(jié)束。    BIT0BIT3:未用狀態(tài)位,讀出總為0,不能寫入。寄存器D 表3-6 DS12887寄存器DVRT:內(nèi)部鋰電池狀態(tài)位,平時應(yīng)總讀出1,如出現(xiàn)0,表明內(nèi)部鋰電池耗盡。    BIT0BIT6:未用狀態(tài)位,讀出總為0,不能寫入。3.1.3 溫度傳感器DS18B20(一)DS18B20功能特點DS18B20具有超小體積和超低硬件開銷,精度高,抗干擾能力強等優(yōu)點。具有全數(shù)字溫度轉(zhuǎn)換及輸出,單總線數(shù)據(jù)通信,最高12 位分辨率,檢測溫度范圍大的特征,是開發(fā)溫度

37、相關(guān)產(chǎn)品的很好的選擇。其主要功能如下:(1)獨特的單線接口僅需一個端口引腳進行通訊(2)簡單的多點分布應(yīng)用(3)無需外部器件(4)可通過數(shù)據(jù)線供電(5)零待機功耗(6)測溫范圍-55+125,以0.5遞增。華氏器件-67+2570F,以0.90F 遞增(7)溫度以9 位數(shù)字量讀出(8)溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值)(9)用戶可定義的非易失性溫度報警設(shè)置(10)報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件(11)應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計或任何熱感測系統(tǒng)(二)DS18B20內(nèi)部工作原理 DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM 、溫度傳感器

38、、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。如圖3-4所示。圖3-4 DS18B20原理圖DS18B20引腳定義: (1) DQ為數(shù)字信號輸入/輸出端(2) GND為電源地(3) VDD為外接供電電源輸入端(在寄生電源接線方式時接地) 圖3-5 DS18B20引腳圖圖3-6給出了DS18B20測溫原理:DS1820用一個高溫度系數(shù)的振蕩器確定一個門周期,內(nèi)部計數(shù)器在這個門周期內(nèi)對一個低溫度系數(shù)的振蕩器的脈沖進行計數(shù)來得到溫度值。計數(shù)器被預(yù)置到對應(yīng)于-55的一個值。如果計數(shù)器在門周期結(jié)束前到達0,則溫度寄存器(同樣被預(yù)置到-55)的值增加,表明所測溫度大于-55。同時,計數(shù)器被復(fù)位

39、到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性。然后計數(shù)器又開始計數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程。斜坡式累加器用來補償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨力。這是通過改變計數(shù)器對溫度每增加一度所需計數(shù)的的值來實現(xiàn)的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數(shù)器的值和每一度的計數(shù)值。DS1820 內(nèi)部對此計算的結(jié)果可提供0.5的分辨力。溫度以16bit 帶符號位擴展的二進制補碼形式讀出。數(shù)據(jù)通過單線接口以串行方式傳輸。DS1820 測溫范圍-55+125,以0.5遞增。如用于華氏溫度,必須要用一個轉(zhuǎn)換因子查找表。圖3

40、-6 DS18B20測溫原理圖 DS18B20與單片機的硬件連接有兩種方法:一是VDD接外部電源,GND接地I/O與單片機的I/O線相接;二是用寄生電源供電,此時VDD和GND接地,I/O接單片機I/O。無論是那種供電方式,I/O線都要接4.7k左右的上拉電阻。圖3-7中,DS18B20采用寄生電源方式,其VDD和GND均接地,而圖3-8中,DS18B20采用外接電源方式,其VDD端用3-5.5v電源供電。本設(shè)計采用3-8所示接線,即外接電源工作方式11。 圖3-7 DS18B20接寄生電源圖 圖3-8 DS18B20外接電源圖3.1.4 液晶顯示屏LCD1602 (一)LCD1602特點說明

41、12 13液晶顯示模塊由于具有低功耗、壽命長、體積小、顯示內(nèi)容豐富、價格低、接口控制方便等優(yōu)點,因此在各類電子產(chǎn)品中被極廣泛地推廣和應(yīng)用。字符型液晶顯示模塊是一類專門用于顯示字母、數(shù)字、符號等點陣式液晶顯示模塊。本系統(tǒng)設(shè)計采用字符型液屏顯示模塊LCD1602 作為顯示器件,這樣不僅簡化了系統(tǒng)的硬件設(shè)計,而且極大地提高了系統(tǒng)的可靠性。字符型液晶顯示模塊LCD1602是單片機應(yīng)用設(shè)計中最常用的信息顯示器件。LCD1602 可以顯示兩行,每行16 個字符,采用5V 電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比14。(二)LCD1602功能介紹 LCD1602各引腳功能如表3-7所示。表3-

42、7 LCD1602管腳功能表(1)基本操作時序:LCD1602 讀寫操作時序總體上來說是比較簡單的,掌握其有兩種方法:一種是直接看時序圖,另外一種方法是直接記憶和總結(jié)讀寫時電平高低和變化。很顯然第二種更簡單、直接,下面就列出典型讀寫的時序要求,以方便編寫程序。讀狀態(tài)-輸入:RS=L,R/W=H,E=H 輸出:D0-D7=狀態(tài)字寫指令-輸入:RS=L,R/W=L,D0-D7=指令碼,E=高脈沖 輸出:無讀數(shù)據(jù)-輸入:RS=H,R/W=H,E=H 輸出:D0-D7=數(shù)據(jù)寫數(shù)據(jù)-輸入:RS=H,R/W=L,D0-D7=數(shù)據(jù),E=高脈沖 輸出:無(2)狀態(tài)字說明: 表3-8 狀態(tài)字表對控制器每次進行讀

43、寫操作之前,都必須進行讀寫檢測,確保STA7為0(3)指令說明: 表3-9 顯示模式設(shè)置表表3-10 顯示開/關(guān)及背光燈設(shè)置表(4)數(shù)據(jù)控制控制器內(nèi)部有一個數(shù)據(jù)地址指針,用戶可通過它們來訪問內(nèi)部的全部80字節(jié)RAM(5)數(shù)據(jù)指針設(shè)置 表3-11 數(shù)據(jù)指針設(shè)置表(6)其他設(shè)置 表3-12 其他設(shè)置指令表(三)LCD1602初始化過程(1)延時15ms(2)寫指令38H(不檢測忙信號)(3)延時5ms(4) 寫指令38H(不檢測忙信號)(5)寫指令5ms(6) 寫指令38H(不檢測忙信號)(7)之后每次寫指令、讀/寫數(shù)據(jù)操作之前均需檢測忙信號(8)寫指令38H:顯示模式設(shè)置(9)寫指令08H:顯示

44、關(guān)閉(10) 寫指令01H:顯示清屏幕(11) 寫指令06H:顯示光標移動設(shè)置(12) 寫指令0CH:顯示及光標設(shè)置3.2 系統(tǒng)硬件架構(gòu)本設(shè)計以模塊化的方式來進行硬件電路的設(shè)計和調(diào)試。單片機的模塊化就是把系統(tǒng)分成各個具有獨立功能又可以互相銜接的簡單模塊,將復(fù)雜難懂的指令、語法、編程及其電路分解,使設(shè)計簡單化15。本設(shè)計的電路模塊可以分為單片機最小系統(tǒng)模塊,時鐘模塊,溫度傳感器模塊,液晶顯示模塊,按鍵模塊,蜂鳴器報警模塊。3.2.1 單片機最小系統(tǒng)本設(shè)計的單片機最小系統(tǒng)主要包括STC89C52芯片,晶振電路和復(fù)位電路。(一)晶振電路 最小系統(tǒng)晶振電路如圖3-9所示。 圖3-9 晶振電路圖STC8

45、9C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL0和XTAL1分別是此放大器的輸入端和輸出端。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時鐘電路如圖3-9所示,在XTAL0和XTAL1引腳上外接定時元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.212MHz之間選擇,電容值在530pF之間選擇,電容值的大小可對頻率起微調(diào)的作用。單片機晶振兩個電容的作用:這兩個電容叫晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,一般在幾十pf。它會影響到晶振的諧振頻率和輸出幅度。晶振的負載電容=(Cd*Cg)/(Cd+Cg)+C

46、ic+C式中Cd,Cg為分別接在晶振的兩個腳上和對地的電容,Cic(集成電路內(nèi)部電容)+C(PCB上電容)經(jīng)驗值為3至5pf。(二)復(fù)位電路 最小系統(tǒng)復(fù)位電路如圖3-10所示。 圖3-10 復(fù)位電路圖無論使用哪種類型的單片機,總要涉及到單片機復(fù)位電路的設(shè)計而單片機復(fù)位電路設(shè)計的好壞,直接影響到整個系統(tǒng)工作的可靠性許多用戶在設(shè)計完單片機系統(tǒng),并在實驗室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機”、“程序走飛”等現(xiàn)象,這主要是單片機的復(fù)位電路設(shè)計不可靠引起的16。復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)過一定的延時才撤銷復(fù)位信號,以防電源開

47、關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位。單片機復(fù)位電路參數(shù)的選定須在振蕩穩(wěn)定后保證復(fù)位高電平持續(xù)時間大于2個機器周期。單片機復(fù)位電路主要有四種類型:微分型復(fù)位電路;積分型復(fù)位電路;比較器型復(fù)位電路;看門狗型復(fù)位電路17。(三)最小系統(tǒng)整體圖最小系統(tǒng)整體電路如圖3-11所示。圖3-11 最小系統(tǒng)電路圖3.2.2 時鐘模塊本設(shè)計中的DS12887芯片AD0-AD7引腳與STC89C52芯片的P2口相連接。MOT引腳接地,為INTEL總線時序方式。因此R/W和DS引腳也為對應(yīng)INTEL的操作模式。時鐘模塊電路如圖3-12所示。 圖3-12 時鐘模塊電路圖3.2.3 溫度傳感器模塊溫度傳感器DS

48、18B20的接法很簡單,它的DQ引腳與STC89C52芯片的P1.7引腳相連接。這里只用到一個溫度傳感器,若要使用多個則只需將所有的DS18B20的I/O口接在一起即可,在具體操作時,通過讀取每個芯片的內(nèi)部序列號來識別18。溫度傳感器模塊電路如圖3-13所示。圖3-13 溫度傳感器模塊3.2.4 液晶顯示模塊液晶LCD1602的D0-D7引腳與STC89C52芯片的P2口相接,而控制引腳RS,R/W,CS則分別接P1.6,P1.5,P1.4。引腳3接一個1K的電位器來調(diào)整對比度,從而達到合適的背光燈對比度。液晶顯示模塊電路如圖3-14所示。圖3-14 液晶顯示模塊3.2.5 按鍵模塊74LS2

49、1芯片為兩組 4 輸入與門(正邏輯)。本設(shè)計中的四個按鍵分別接到74LS21芯片的1A,1B,1C,1D,即4輸入與門的4個輸入。而74LS21的輸出1Y則接到STC89C52芯片的P3.2(INT0)引腳,由于該引腳為低電平有效,當警報發(fā)生時按下四個按鍵中任意一個都會使輸出1Y變?yōu)榈碗娖?,則芯片發(fā)生中斷,報警停止。同時,四個按鍵key1-key4也接到STC89C52芯片的P1.0-P1.3起到調(diào)節(jié)時間日期等功能。四個按鍵中S1為切換鍵,S2為設(shè)定鍵,S3為上調(diào)鍵,S4下調(diào)鍵。按鍵模塊電路如圖3-15所示。 圖3-15 按鍵模塊3.2.6 蜂鳴器報警模塊蜂鳴器報警模塊的作用:當定時鬧鐘時間到

50、時,蜂鳴器發(fā)出預(yù)設(shè)的聲音,而發(fā)光二極管則會隨著音樂閃爍。本模塊采用PNP三極管為蜂鳴器放大電流,基極通過4.7k電阻與單片機STC89C52的閑置引腳P3.5相連接,集電極直接接地,發(fā)射極接發(fā)光二極管和蜂鳴器。 報警模塊電路如圖3-16所示。圖3-16 報警模塊第四章 軟件設(shè)計4.1 軟件設(shè)計總體說明本系統(tǒng)的程序采用C語言編寫,為了便于修改和調(diào)試,系統(tǒng)軟件采用模塊化設(shè)計,程序的編寫編譯在WAVE6000軟件中完成。首先對STC89C52、DS12887、LCD1602、DS18B20進行初始化,日歷和溫度信息通過LCD1602顯示出來,當當前時間與設(shè)定的鬧鐘時間相同后,LCD1602上顯示的時

51、間停止,但,實際上芯片內(nèi)部的時間仍然在走。時鐘芯片向單片機發(fā)出中斷請求,單片機通過報警模塊進行警報,此時,若按下四個按鍵中的任意一個,報警停止,LCD1602顯示的時間繼續(xù)精確顯示。20系統(tǒng)中有四個按鍵,即:設(shè)置鍵S1、切換鍵S2、上調(diào)鍵S3、下調(diào)鍵S4。(1)按下S1鍵,系統(tǒng)進入設(shè)置狀態(tài),再按下S2鍵可在除了溫度外的項目,如年、月、日、時、分、秒、星期、鬧鐘上停留,此時再按下上調(diào)鍵S3即可進行加一操作,按下下調(diào)鍵S4即可進行減一的操作。(2)同時按下S1鍵和S2鍵會將當前的時間恢復(fù)到程序中設(shè)定的默認時間。(3)同時按下S3鍵和S4鍵可對鬧鐘進行開啟和關(guān)閉的操作。4.2 主程序軟件實現(xiàn)4.2.

52、1主程序流程圖圖4-1 主程序流程圖4.2.2主程序代碼void main()lcd_init(); /LCD初始化Start_calendar (); /日歷開啟initial_irq (); /中斷開啟enable_set = F; /設(shè)置禁止while(1)if ( enable_play_song ) /鈴聲使能play_song(); /播放鈴聲enable_play_song = F; /禁止鈴聲update_display_data (); /更新顯示數(shù)據(jù)display_calender_and_temp (); /顯示日歷及溫度if (enable_set) /設(shè)置使能dela

53、y (100); /延時100msupdate_set_display (cur_set_pos); /更新設(shè)置的信息display_calender_and_temp (); /顯示日歷及溫度信息delay (100); /延時100msdate_timeTIME_SIGN_POS = ':' /時間的時和分之間顯示:continue; /繼續(xù)循環(huán)delay (200); /延時200msflash_time_sign (); /:閃爍 4.3 DS18B20模塊軟件實現(xiàn)4.3.1 DS18B20模塊子程序流程圖圖4-2 DS18B20子程序流程圖4.3.2 DS18B20模塊子程序代碼#include <reg52.h>#include <intrins.h>#include <absacc.h>#include <string.h>#include "typedef.h"sbit dq= P17;void delay_temperature(uint t) uint i; while(t-) for(i=0;i<125;i+) void txreset

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論