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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、則是通過普中科技公司自制的PZ-ISP軟件完成。經過測試,系統可以正常完成預定的功能。【關鍵詞】電子時鐘;單片機;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電子時鐘的國內外研究現狀1第二章 總體方案42.1 系統的設計思路42.2 系統硬件描述42.3 系統軟件描述42.4 設計流程和預期成果5第三章 硬件設計63.1 硬件芯片介紹63.1.1 單片機STC89C5263.1.2 實時時鐘芯片DS12887103.1.3 溫度傳感器DS18B20143.1.4 液晶顯示屏LCD1602183.2 系統硬件架構203.2.1 單片機最小系統213.2.2 時鐘模塊23

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

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

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

10、能與單片機等微處理器接口進行讀寫的操作,所以硬件電路會比較復雜,成本較高。而以DS18B20為代表的新型單線總線數字式溫度傳感器集溫度測量和A/D轉換于一體,這類傳感器可以直接輸出數字量,同時與單片機接口電路結構非常簡單,可以廣泛用于距離遠、節點分布多的場合,具有較強推廣應用價值。2 數字電子時鐘是采用數字電路實現對時,分,秒數字顯示的裝置,廣泛用于個人家庭,車站,碼頭辦公室等公共場所,成為人們日常生活中不可或缺的必需品,由于數字集成電路的發展和石英晶體振蕩器的廣泛應用,數字時鐘的精度遠遠超過老式鐘表,鐘表的數字化給人們生產生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。例如定時自動

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35、0AM。當DSE位為0,這種特殊修正不發生。寄存器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表明現在時間與定鬧時間匹配。 

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

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

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

39、到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性。然后計數器又開始計數直到0,如果門周期仍未結束,將重復這一過程。斜坡式累加器用來補償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨力。這是通過改變計數器對溫度每增加一度所需計數的的值來實現的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數器的值和每一度的計數值。DS1820 內部對此計算的結果可提供0.5的分辨力。溫度以16bit 帶符號位擴展的二進制補碼形式讀出。數據通過單線接口以串行方式傳輸。DS1820 測溫范圍-55+125,以0.5遞增。如用于華氏溫度,必須要用一個轉換因子查找表。圖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電源供電。本設計采用3-8所示接線,即外接電源工作方式11。 圖3-7 DS18B20接寄生電源圖 圖3-8 DS18B20外接電源圖3.1.4 液晶顯示屏LCD1602 (一)LCD1602特點說明

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

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

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

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

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

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

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

48、18B20的接法很簡單,它的DQ引腳與STC89C52芯片的P1.7引腳相連接。這里只用到一個溫度傳感器,若要使用多個則只需將所有的DS18B20的I/O口接在一起即可,在具體操作時,通過讀取每個芯片的內部序列號來識別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的電位器來調整對比度,從而達到合適的背光燈對比度。液晶顯示模塊電路如圖3-14所示。圖3-14 液晶顯示模塊3.2.5 按鍵模塊74LS2

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

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

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

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

53、y (100); /延時100msupdate_set_display (cur_set_pos); /更新設置的信息display_calender_and_temp (); /顯示日歷及溫度信息delay (100); /延時100msdate_timeTIME_SIGN_POS = ':' /時間的時和分之間顯示:continue; /繼續循環delay (200); /延時200msflash_time_sign (); /:閃爍 4.3 DS18B20模塊軟件實現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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論