數(shù)字萬年歷設計與實現(xiàn)_第1頁
數(shù)字萬年歷設計與實現(xiàn)_第2頁
數(shù)字萬年歷設計與實現(xiàn)_第3頁
數(shù)字萬年歷設計與實現(xiàn)_第4頁
數(shù)字萬年歷設計與實現(xiàn)_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、成都理工大學工程技術學院畢業(yè)論文數(shù)字萬年歷設計與實現(xiàn)作者姓名:陳 立 國專業(yè)名稱:電氣工程及其自動化指導教師:孫 莉 莉 講師數(shù)字萬年歷設計與實現(xiàn)摘要電子萬年歷是一種非常廣泛日常計時工具,對現(xiàn)代社會越來越流行。它可以對年、月、日、周、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能。電子萬年歷設計是基于單片機進行的,可以顯示年、月、日、時、分、秒、周及溫度信息,具有可調(diào)整日期和時間功能。設計包含AT89S52單片機模塊、LCD數(shù)碼管模塊、鍵盤模塊、DS1302模塊、數(shù)字式溫度傳感器DS18B20模塊。AT89S52單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用35V電壓供電。LCD數(shù)碼管動

2、態(tài)掃描,對于顯示數(shù)字最合適,價格適中,而且采用動態(tài)掃描法與單片機連接時,占用的單片機口線少。DS1302的使用壽命長,誤差小。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、周日、時、分、秒和溫度等信息,還具有時間校準等功能。數(shù)字式溫度傳感器DS18B20僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,易與單片機連接簡化系統(tǒng)電路.數(shù)字式溫度傳感器還具有測量精度高、測量范圍廣等優(yōu)點。關鍵詞:AT89S52 DS1302 DS18B20 LED數(shù)碼管 AbstractElectronic calendar day time is a very wide range of tools, the more

3、 popular in modern society more and. It can be years, months, days, weeks, hours, minutes and seconds for time, but also has a leap year compensation and other functions.Electronic calendar design is based on SCM, can display year, month, day, time, minutes and seconds, week and temperature informat

4、ion, which can adjust the date and time functions. Design including AT89S52 MCU module, LCD digital tube module, keyboard module, DS1302 module, digital temperature sensor DS18B20 module. AT89S52 microcontroller as the core, small power consumption, can work in low-voltage 3V, voltage can choose 35V

5、 voltage supply. LED digital tube dynamic scanning, the most suitable for digital display, moderate price, and using dynamic scanning method is connected with the MCU, microcontroller port occupied less lines. DS1302 has a long service life, small error. For digital electronic calendar using visual

6、digital display, can display year, month, day, Sunday, when, minutes and seconds and temperature information, but also a time calibration functions. Digital temperature sensor DS18B20 requires only one data line for data transmission, easy to be connected with the single-chip microcomputer to simpli

7、fy the system circuit. The digital temperature sensor has high measuring precision, wide measuring range etc.Keywords: AT89S52, DS1302, DS18B20, digital tube LED目錄摘要IIAbstractIII目錄IV前言11總體設計方案21.1 設計方案21.2 方案比較論證21.3 總體設計方框圖32設計原理與分析42.1 單片機主控制器42.2 溫度傳感器芯片52.3 時鐘芯片DS130292.4 16*2LCD液晶顯示1602123硬件電路1

8、63.1 單片機主控制模塊的設計163.2 時鐘電路模塊的設計163.3 溫度采集模塊設計173.4 功能按鈕設計183.5 16*2 LCD1602液晶顯示電路設計184系統(tǒng)軟件設計204.1 系統(tǒng)模塊的功能分劃分204.2 總體程序流程框圖204.3 時鐘調(diào)整時間的流程圖214.4 溫度轉(zhuǎn)換流程圖22總結24致謝25參考文獻26附件1總體電路圖27附件2源程序28- V -前言隨著電子技術的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類生活帶來了根本性的改變。尤其是單片機技術的應用產(chǎn)品已經(jīng)走進了千家萬戶。其中電子萬年歷就是一個典型的例子。萬年歷是采用數(shù)字電路實現(xiàn)對,時,分,秒。數(shù)字顯示的計時

9、裝置,廣泛用于個人家庭,車站,碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘的精度,遠遠超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究萬年歷及擴大其應用,有著非?,F(xiàn)實的意義。市場上有許多電子鐘的專用芯片如:LM8363、LM8365等,但它們功能單一,電路連接復雜,不便于調(diào)試制作。但是考慮到用單片機

10、配合時鐘芯片,可制成功能任意的電子鐘,而且可以做到硬件簡單、成本低廉。所以本系統(tǒng)采用了以廣泛使用的單片機AT89S52技術為核心,配合時鐘芯片DS1302。軟硬件結合,使硬件部分大為簡化,提高了系統(tǒng)穩(wěn)定性,并采用LCD顯示電路、鍵盤電路,使人機交互簡便易行,此外結合音樂鬧鈴電路、看門狗和供電電路。本方案設計出的數(shù)字鐘可以顯示時間、設置鬧鈴功能之外。本文首先描述系統(tǒng)硬件工作原理,并附以系統(tǒng)結構框圖加以說明,著重介紹了本系統(tǒng)所應用的各硬件接口技術和各個接口模塊的功能及工作過程,其次,詳細闡述了程序的各個模塊和實現(xiàn)過程。本設計以數(shù)字集成電路技術為基礎,單片機技術為核心。本文編寫的主導思想是軟硬件相結

11、合,以硬件為基礎,來進行各功能模塊的編寫。本設計中我重點研究實現(xiàn)了單片機+時鐘芯片這種模式的萬年歷,從原理上對單片機和時鐘芯片有了深一步的認識,這些基本功能完成后,在軟件基礎上實現(xiàn)時間顯示。1總體設計方案用AT89S52處理產(chǎn)生內(nèi)部時鐘數(shù)據(jù)或者讀取外部時鐘數(shù)據(jù)和采集外部傳感器的信息進行處理,并暫時寄存在其內(nèi)部的儲存器中,再通過單片機調(diào)用內(nèi)部RAM的數(shù)據(jù)并送到LCD數(shù)碼管上顯示出來。1.1 設計方案方案一:單片機一般的工作頻率在12MHz左右,而且內(nèi)部還有定時、計數(shù)器,可以產(chǎn)生精確的1S定時,由此可以用定時中斷的方式產(chǎn)生精確的1S時間,秒位不斷的加1,再設計分、時、星期、日、月、年之間的進制,使

12、產(chǎn)生進位。本方案只需要單片機最小系統(tǒng)加上顯示電路,再設計簡單的程序算法就可以實現(xiàn)。對于測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理。在顯示電路上,采用數(shù)碼管就可以將年月日星期時分秒和室內(nèi)溫度顯示出來方案二:萬年歷時鐘采用單片機控制DS1302實時時鐘芯片,能達到走時準確且掉電不丟失數(shù)據(jù)的。DS1302與單片機之間能簡單地采用同步串行的方式進行通信僅需用到三個口線1 RES(復位)2 I/O (數(shù)據(jù)線)3 SCLK(串行時鐘)。溫度計要靈敏反映室溫的變化這樣可采用單片機與數(shù)字式溫度傳感器DS18B20通

13、訊,采集溫度數(shù)字信號進行處理。DS18B20通過一個單線接口發(fā)送或接受信息,因此在單片機與DS18B20之間僅需一條連接(加上地線)。在顯示電路上,采用16*2的LCD顯示。1.2 方案比較論證對于方案一,單片機雖然可以產(chǎn)生精確的秒信號,但是單片機在處理閏年上會比較麻煩,加之一旦單片機斷電后,所有的時間都要重新調(diào)整。對于測溫電路,采用熱敏電阻的輸出電壓-溫度特性,要加上A/D轉(zhuǎn)換,溫度傳感信息才能被單片機所接受,這種設計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。在顯示電路上,采用LCD數(shù)碼的話要用到單片機的許多I/O口,甚至I/O不夠用,還需要接上其它芯片大量擴展I/O口,這是一個弊處。對于方

14、案二,單片機不用去產(chǎn)生時鐘的數(shù)據(jù),時鐘的數(shù)據(jù)由DS1302獨立產(chǎn)生,并寄存在其內(nèi)部的寄存器上,單片機可以通過三總線與它通訊,不僅可以對它進行讀取實時時鐘數(shù)據(jù),還可以對它進行編程,設置它的工作模式。單片機只是處理從DS1302讀出來的數(shù)據(jù)并送顯示,大大減少了單片機的負擔。而且DS1302可以通過后備電池繼續(xù)工作,內(nèi)部的時鐘還在走,下次啟動后不用去調(diào)整時鐘,方便使用?;谕瑯拥脑?,DS18B20也是一個獨立的傳感器,只要單片機配置它的工作狀態(tài)后它就可以獨立工作,內(nèi)部已經(jīng)把模擬信號轉(zhuǎn)換成數(shù)字信號,并把數(shù)字信號儲存在其內(nèi)部寄存中。同樣,單片機通過單總線與它通訊,可以處理912位的溫度數(shù)字數(shù)據(jù)。在顯示

15、電路上,采用16*2 LCD液晶顯示器,能容納年月日星期時分秒溫度等信息的顯示。LCD顯示器只需占用11個I/O口就可以工作了,不用其它擴展芯片,總體上使電路簡單化。1.3 總體設計方框圖圖2.1 總體設計方框圖總體的方框圖如圖2.1所示,控制器采用單片機AT89S52,溫度傳感器采用DS18B20,用16*2的LCD液晶顯示屏實現(xiàn)年、月、日、星期、時、分、秒、溫度的顯示。2設計原理與分析本次設計的萬年歷系統(tǒng)主要包括單片機主控制器、溫度傳感器芯片、時鐘芯片DS1302芯片、16*2LCD顯示芯片。2.1 單片機主控制器AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程

16、Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允

17、許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。AT89S52是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含8k Bytes ISP (In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。AT89S52具有如

18、下特點:40個引腳,8k Bytes Flash片內(nèi)程序存儲器,256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。此外,AT89S52設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。2.2 溫度傳感器芯片1. 單線溫度傳感器DS18B20介紹DS18B20溫度傳感器是美國DA

19、LLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:(1) 獨特的單線接口僅需要一個端口引腳進行通信;(2) 多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)多點組網(wǎng)功能;(3) 無須外部器件;(4) 可通過數(shù)據(jù)線供電,電壓范圍為3.05.5V;(5) 零待機功耗;(6) 溫度以9或12位數(shù)字;(7) 用戶可定義報警設置;(8) 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;(9) 負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,

20、但不能正常工作;DSl8B20數(shù)字溫度計提供9位(二進制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入DSl8B20或從DSl8B20送出,因此從主機CPU到DSl8B20僅需一條線(和地線)。DSl8B20的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。因為每一個DSl8B20在出廠時已經(jīng)給定了唯一的序號,因此任意多個DSl8B20可以存放在同一條單線總線上。這允許在許多不同的地方放置溫度敏感器件。DSl8B20的測量范圍從-55攝式度到+125攝式度,增量值為0.5攝式度,可在ls(典型值)內(nèi)把溫度變換成數(shù)字。每一個DSl8B20包括一個唯一的64位長的序號,該序號值存放在DSl8B20內(nèi)部

21、的ROM(只讀存貯器)中。開始8位是產(chǎn)品類型編碼(DSl8B20編碼均為10H)。接著的48位是每個器件唯一的序號。最后8位是前面56位的CRC(循環(huán)冗余校驗)碼。DSl8B20中還有用于存儲測得的溫度值的兩個8位存貯器RAM,編號為0號和1號。1號存貯器存放溫度值的符號,如果溫度為負(攝式度),則1號存貯器8位全為1,否則全為0。0號存貯器用于存放溫度值的補碼,LSB(最低位)的1表示0.5攝式度。將存貯器中的二進制數(shù)求補再轉(zhuǎn)換成十進制數(shù)并除以2就得到被測溫度值(-55攝式度-125攝式度)。DSl8B20的引腳如圖2.2所示。每只DS18B20都可以設置成兩種供電方式,即數(shù)據(jù)總線供電方式和

22、外部供電方式。采取數(shù)據(jù)總線供電方式可以節(jié)省一根導線,但完成溫度測量的時間較長;采取外部供電方式則多用一根導線,但測量速度較快。圖2.2 DS18B20引腳圖2. DS18B20的測溫原理器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55所對應的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1

23、和溫度寄存器被預置在-55所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關閉就重復上述過程,直到溫度寄存器值大致等于被測溫度值。另外,由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化D

24、S18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。64位ROM的結構開始8位是產(chǎn)品類型的編號,接著是每個器件的唯一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入報警上下限。3. 溫度計算 DS18B20用9位存貯溫值度,最高位為符號位,如圖2.3為DS18B20的溫度存儲方式,負溫度S=1,正溫度S=0。如:00AAH為+85攝式度,0032H為25攝式度,F(xiàn)F92H為55攝式度。圖2.3 18B20用9位的溫度存儲方式 DS18B20用12位存貯溫值度,最高位為符號位,如圖

25、2.4為DS18B20的溫度存儲方式,負溫度S=1,正溫度S=0。如:0550H為+85攝式度,0191H為25.0625攝式度,F(xiàn)C90H為-55攝式度。圖2.4 18B20用12位的溫度存儲方式DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EEROM。高速暫存RAM的結構為8字節(jié)的存儲器,結構如圖2.5所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。圖2.5 DS18B20存儲器結構EEPROMDS18B20工作時寄存器中的分辨率轉(zhuǎn)換

26、為相應精度的溫度數(shù)值。該字節(jié)各位的定義如圖2.5所示。低5位一直為1,TM是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設置分辨率。由表2.1可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應用中要將分辨率和轉(zhuǎn)換時間權衡考慮。表2.1 DS18B20溫度轉(zhuǎn)換時間表R1R0分辨率/位溫度最大轉(zhuǎn)向時間/ms00993.750110187.510113751112750高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8

27、字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當符號位S0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當符號位S1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值;表2.2為部分溫度值對應的二進制溫度數(shù)據(jù):表2.2 部分溫度值對應的二進制溫度數(shù)據(jù)溫度/二進制表示十六進制表示+1250000 0111 1101 0

28、00007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H2.3 時鐘芯片DS13021. 時鐘芯片DS1302的性能D

29、S1302是DALLAS公司推出的涓流充電時鐘芯片內(nèi)含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡單的串行接口與單片機進行通信,實時時鐘/日歷電路提供秒分時日月年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過AM/PM指示決定采用24或12小時格式,DS1302與單片機之間能簡單地采用同步串行的方式進行通信僅需用到三個口線1 RES復位2 I/O 數(shù)據(jù)線3 SCLK串行時鐘/RAM的讀/寫數(shù)據(jù)以一個字節(jié)或多達31個字節(jié)的字符組方式通信DS1302工作時功耗很低保持數(shù)據(jù)和時鐘信息時功率小于1mW。(1) 實時時鐘具有能計算2100年之前的秒、分、時、日、日期、星期、月、年的能力還有

30、閏年調(diào)整的能力;(2) 318位暫存數(shù)據(jù)存儲RAM;(3) 串行I/O口方式使得管腳數(shù)量最少;(4) 寬范圍工作電壓2.05.5V;(5) 工作電流2.0V時,小于300mA;(6) 讀/寫時鐘或RAM數(shù)據(jù)時有兩種傳送方式單字節(jié)傳送和多字節(jié)傳送字符組方式;(7) 8腳DIP封裝或可選的8腳SOIC封裝根據(jù)表面裝配,如圖2.6所示。圖2.6 DS1302的引腳圖(8) 簡單3線接口;(9) 與TTL兼容Vcc=5V;(10) 可選工業(yè)級溫度范圍-40+85;2. 時鐘芯片DS1302的工作原理DS1302在每次進行讀、寫程序前都必須初始化,先把SCLK端置“0”,接著把RST端置“1”,最后才給

31、予SCLK脈沖;圖2.7為DS1302的控制字,此控制字的位7必須置1,若為0則不能對DS1302進行讀寫數(shù)據(jù)。對于位6,若對程序進行讀/寫時RAM=1,對時間進行讀/寫時,CK=0。位1至位5是操作單元的地址。位0是讀/寫操作位,進行讀操作時,該位為1;該位為0則表示進行的是寫操作。控制字節(jié)總是從最低位開始輸入/輸出的?!癈H”是時鐘暫停標志位,當該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位為0時,時鐘開始運行?!癢P”是寫保護位,在任何的對時鐘和RAM的寫操作之前,WP必須為0。當“WP”為1時,寫保護位防止對任一寄存器的寫操作。(1) DS1302的控制字節(jié)DS1302

32、的控制字如圖2.7所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1是指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出圖2.7 DS1302的控制字(2) 數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。如下圖2.8所示:圖2.8 DS13

33、02讀/寫時序圖(3) DS1302的數(shù)據(jù)讀寫無論是從DS1302中讀一個數(shù)據(jù),還是寫一個字節(jié)數(shù)據(jù)到DS1302中,都要先寫一個命令字到DS1302中。即通過SCLK引腳(7號引腳)向DS1302輸入8個脈沖,把I/O引腳(6號引腳)上的命令字寫入DS1302。為了啟動數(shù)據(jù)傳輸,引腳(5號引腳)應為高電平。在將由0置1的過程中,SCLK引腳必須為邏輯0。然后才能進行讀寫操作。I/O引腳上的數(shù)據(jù)在SCLK的上升沿串行輸入(寫數(shù)據(jù)到DS1302),在SCLK的下降沿串行輸出(讀數(shù)據(jù))。(4) DS1302的寄存器DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形

34、式,其日歷、時間寄存器及其控制字見表2.3所示:表2.3 DS1302的日歷、時間寄存器寫寄存器讀寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit080H81HCH10秒秒82H83H10分分84H85H010時時86H87H0010日日88H89H00010月月8AH8BH00000星期8CH8DH10年年8EH8FHWP0000000此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘觸發(fā)寄存器及與RAM相關的寄存器等。時鐘觸發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單

35、元組態(tài)為一個8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為觸發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。2.4 16*2LCD液晶顯示16021. 1602采用標準的16腳接口,其中:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進

36、行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀取信號,當RS為高電平RW為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第1516腳:空腳。2. 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2.4所示:表2.4 控制指令指令RSR/WD7D6D5D4D3D2D1D0清顯示0000000001光標返回000000001*置輸入模式000000011/DS顯示開/關控制0000001DCB光標或字符移位000001S/CR/L*置功能00

37、001DLNF*置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址(AGG)置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址(ADD)讀忙標志或地址01BF計數(shù)器地址(AC)寫數(shù)到CGRAM或DDRAM10要寫的數(shù)從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關控制。D:控制整體顯

38、示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5*7的點陣字符,高電平時顯示5*10的點陣字符。指令7:字符發(fā)生器RAM地址設置。指令8:DDRAM地址設置。指令9:讀信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。3

39、. DM-162液晶顯示模塊可以和單片機AT89C52直接接口液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的標志,為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖2.9是DM-162的內(nèi)部顯示地址。比如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1,所以實際寫入的數(shù)據(jù)應該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。圖2.9 DM-16的內(nèi)部顯示地址圖2.10 接口電

40、路4. 基本操作時序如表2.5所示:表2.5 基本操作時序表輸入輸出讀狀態(tài)RS=L,RW=H,E=HDB0-DB7=狀態(tài)字寫指令RS=L,RW=L,E=下降沿脈沖DB0-DB7=指令碼讀數(shù)據(jù)RS=H,RW=H,E=HDB0-DB7=數(shù)據(jù)寫數(shù)據(jù)RS=H,RW=L,E=下降沿脈沖DB0-DB7=數(shù)據(jù)讀狀態(tài)、輸入:RS=L,RW=H,E=H輸出:DB0DB7=狀態(tài)字;寫指令、輸入:RS=L,RW=L,E=下降沿脈沖DB0DB7=指令碼;讀數(shù)據(jù)、輸入:RS=H,RW=H,E=H輸出:DB0DB7=數(shù)據(jù);寫數(shù)據(jù)、輸入:RS=H,RW=L,E=下降沿脈沖 DB0DB7=數(shù)據(jù)。3硬件電路3.1 單片機主控制

41、模塊的設計AT89S52單片機為40引腳雙列直插芯片,MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。單片機的最小系統(tǒng)如圖3.1所示,18引腳和19引腳接時鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第9引腳為復位輸入端,接上電容,電阻及開關后夠上電復位電路,20引腳為接地端,40引腳為電源端,如圖3.1所示。圖3.1 單片機最小系統(tǒng)3.2 時鐘電路模塊的設計圖3.2是DS1302與單片機的連接,其中Vcc1為后備電源,Vcc2

42、為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768KHz晶振。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RSTS置為低電平,則會終止此次數(shù)

43、據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動行時,在Vcc大于等于2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。圖3.2 時鐘芯片與單片機的連接3.3 溫度采集模塊設計如圖3.3所示,采用數(shù)字式溫度傳感器DS18B20,它是數(shù)字式溫度傳感器,具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,使用P2.4與DS18B20的I/O口連接加一個上拉電阻,Vcc接電源,Vss接地。圖3.3 溫度傳感器與單片機的連接3.4 功能按鈕設計當按鈕被按下時,該按鈕對應的I/O口被拉為低電平,松開時按鈕

44、對應的I/O口由內(nèi)部的上拉電阻將該I/O拉為高電平,如圖3.4所示:圖3.4 功能按鍵電路3.5 16*2 LCD1602液晶顯示電路設計根據(jù)其讀寫的時序模擬總線的方式與單片機進行數(shù)據(jù)的通訊,首先將數(shù)據(jù)從I/O口讀入或送出,再選擇R/W和RS的電平進行不同的操作,在使能端E下降沿時觸發(fā)數(shù)據(jù)的讀入或送出。注意P0口要接上拉電阻,如圖3.5所示:圖3.5 LCD液晶顯示屏與單片機的連接4系統(tǒng)軟件設計4.1 系統(tǒng)模塊的功能分劃分萬年歷程序設計總體上分為四個大模塊,分別是DS1302時鐘程序模塊、DS18B20測溫模塊、LCD顯示模塊、鍵盤功能模塊。1. DS1302時鐘程序模塊包括設置DS1302初

45、始時間、從DS1302讀時間子程序、寫1302一字節(jié)子程序、讀1302一字節(jié)、關閉寫保護、開啟寫保護、關閉時鐘、延時子100MS程序。2. DS18B20測溫模塊包括DS18B20的初始化子程序、DS18B20數(shù)據(jù)處理子程序、讀出溫度值的子程序、DS18B20復位子程序、寫DS18B20的1位字節(jié)子程序、讀DS18B20的1個字節(jié)子程序。3. LCD顯示模塊包括LCD初始化子程序、寫入控制命令的子程序、判斷LCD顯示器是否忙的子程序、向LCD中的DDRAM中寫數(shù)據(jù)、查詢LCD字符表、調(diào)整模式的顯示子程序、正常模式LCD顯示子程序。4. 鍵盤功能模塊包括模式選擇按鍵SET子程序、調(diào)整模式選擇子程

46、序、OUT鍵掃描子程序、UP按鍵掃描子程序、DOWN按鍵掃描子程序。4.2 總體程序流程框圖本設計中,實現(xiàn)功能的總體程序流程框圖如下圖4.1所示:圖4.1 總體程序流程框圖4.3 時鐘調(diào)整時間的流程圖時鐘調(diào)整時間的流程圖4.2所示:圖4.2 時鐘調(diào)整時間的流程4.4 溫度轉(zhuǎn)換流程圖單片機實現(xiàn)對溫度傳感器DS18B20的溫度轉(zhuǎn)換讀取溫度數(shù)值流程圖如下圖4.3所示。圖4.4 溫度轉(zhuǎn)換讀取溫度數(shù)值流程圖總結本系統(tǒng)以AT89S52為核心部件,使用串行時鐘芯片DS1302,實現(xiàn)時間和鬧鐘的功能設置。通過鍵盤和液晶顯示屏可方便地校對時鐘和設置鬧鐘時間,本系統(tǒng)基本完成了實用電子鐘的功能,盡量做到了硬件電路簡

47、單穩(wěn)定,減少電磁干擾和其他環(huán)境干擾。在系統(tǒng)硬件設計之前,要結合當前系統(tǒng)的發(fā)展趨勢和現(xiàn)狀對系統(tǒng)功能進行定位,使系統(tǒng)在實際應用中具有競爭力。該系統(tǒng)最大的特點就是界面友好,走時準確,和現(xiàn)在使用LED顯示數(shù)據(jù)的萬年歷相比,體積更小,系統(tǒng)采用液晶顯示器,可以使系統(tǒng)應用到更加現(xiàn)代化的地方,同時保留了很多的微控制器I/O口,擴展十分方便,以往的采用LED顯示數(shù)據(jù)的萬年歷要想實現(xiàn)功能擴展,除了需要對系統(tǒng)程序進行修改,還必須增加或減少LED數(shù)碼管,同時要對LED圖片界面進行更換,硬件改動較大,該系統(tǒng)的顯示部分除可以顯示數(shù)據(jù)外,還可以顯示圖片,所以說,其界面改動非常靈活,僅僅改動程序就能實現(xiàn)界面的修改,用戶還可以

48、選擇自己喜歡的界面,這是以LED作為顯示裝置的數(shù)字萬年歷所不能實現(xiàn)的。系統(tǒng)具有溫度檢測功能,可以作為工業(yè)溫度檢測裝置,同時可提供溫度報警,系統(tǒng)的按鍵輸入功能,可以讀取決策,我們可以通過按鍵發(fā)送指令,控制工業(yè)現(xiàn)場機器的動作,實現(xiàn)遠程控制??梢姡撓到y(tǒng)本身不僅具有很大的靈活性,友好的界面,方便的可擴展性,同時,在其基礎上的系統(tǒng)市場需求也很客觀,工業(yè)控制的很多場合對時間要求比較嚴格,在實際系統(tǒng)中,系統(tǒng)各裝置按照預定的時間動作,本系統(tǒng)可以很好的滿足這些系統(tǒng)的要求。致謝本次設計是我遇到過的較大的設計,所以遇到的問題也比較的多,尤其是以前沒有接觸過如此復雜的軟件編程,在軟、硬件設計中遇到不少的困難,在孫莉

49、莉老師的耐心指導幫助下才逐一克服了難題,學習到了不少的專業(yè)知識。在整個設計開始之前,我已經(jīng)在網(wǎng)上找了相關方面的資料,萬事開頭難,一開始不知道從哪里下手。后來慢慢學會分析系統(tǒng),將系統(tǒng)模塊化,各個模塊可以在軟件或者硬件上實現(xiàn),在確保各個模塊的硬件電路和與之相搭配的程序能夠正常工作后再把它們組成一個系統(tǒng)。由于我的理論知識水平有限,實踐能力和設計經(jīng)驗不足,在設計的過程中難免還存在一些問題甚至是錯誤。本次畢業(yè)設計能夠順利完成離不開我的指導老師孫莉莉老師的幫助,在孫老師的細心指導下,本設計得以順利完成,在這里對她的幫助表示衷心的感謝。當然也離不開其它老師對我的大力支持,在此一并對他們表示感謝!在指導老師的

50、幫助下,我能夠認清自己的不足,并能很好的解決這些問題。在今后的日子里,我會進一步加強自己的動手能力,豐富自己的知識面,并在以后工作崗位中發(fā)揮我所長,為社會做出貢獻。參考文獻1 李朝青. 單片機原理及接口技術M. 北京航天航空大學出版社, 2005.2 李廣弟. 單片機基礎M. 北京航空航天大學出版社, 2000.3 萬光毅. 單片機實驗與實踐教程M. 北京航空航天大學出版社, 2003.4 唐亞平, 李移倫. 單片機原理實訓與學習指導M. 中南大學出版社, 2006.5 劉軍. 單片機原理與接口技術M. 華東理工大學出版社, 2006.6 謝自美. 電子線路設計、實驗、測試M. 華中理工大學出

51、版社, 2000.7 張紅潤, 劉秀英, 張亞凡. 單片機應用設計200例(下冊). 北京航空航天大學出版社, 2006.8 張毅剛, 彭喜元, 姜守達. MCS-51單片機應用設計. 哈爾濱工業(yè)大學出版社, 2003.9 張毅剛, 劉杰. 單片機原理及應用. 哈爾濱工業(yè)大學出版社, 2004.10 韓志軍, 沈晉源. 單片機應用系統(tǒng)設計. 機械工業(yè)出版社, 2005.11 王曉明主編. 電動機的單片機控制. 北京航空航天大學出版社, 2002.12 張紅潤, 劉秀英, 張亞凡. 單片機應用設計200例(下冊). 北京航空航天大學出版社, 2006.13 張毅剛, 彭喜元, 姜守達. MCS-

52、51單片機應用設計. 哈爾濱工業(yè)大學出版社, 2003.14 張毅剛, 劉杰. 單片機原理及應用. 哈爾濱工業(yè)大學出版社, 2004.15 韓志軍, 沈晉源. 單片機應用系統(tǒng)設計. 機械工業(yè)出版社, 2005.16 王曉明主編. 電動機的單片機控制. 北京航空航天大學出版社, 2002.附件1總體電路圖附件2源程序COUN EQU 67H ;SET鍵按下的次數(shù)DONE BIT 40H ;進入調(diào)整狀態(tài)的標志位FLAG BIT 41H ;時鐘停止標志位SETS BIT P2.0 ;SET鍵UP BIT P2.1 ;UP鍵DOWN BIT P2.2 ;DOWN鍵OUT BIT P2.3 ;OUT鍵RS BIT P3.5 ;LCD1602數(shù)據(jù)/命令選擇端RW BIT P3.6 ;LCD1602讀寫選擇端E BIT P3.7 ;LC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論