畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)和DS1302的LCD時鐘_第1頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)和DS1302的LCD時鐘_第2頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)和DS1302的LCD時鐘_第3頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)和DS1302的LCD時鐘_第4頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)和DS1302的LCD時鐘_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘 要從古至今,人們的生活和工作都離不開時間,而且隨著人們生活工作的節(jié)奏逐步的加快,時間對人們的重要性也越來越深;因此,擁有一個不錯的時鐘,將對人們的生活帶來很大的方便。單片機(jī)控制的lcd時鐘的技術(shù)也越來越成熟,但是人們對時鐘的要求也越來越高,所以lcd時鐘的研發(fā)是不可滯停的。本文是以單片機(jī)作為控制核心的lcd時鐘,利用ds1302芯片提供穩(wěn)定的定時脈沖,使用ds18b20采集實(shí)時溫度信息,用獨(dú)立鍵盤實(shí)現(xiàn)日期、時間的校準(zhǔn)和鬧鐘的設(shè)置與開關(guān)等,使用lcd液晶作為顯示器,蜂鳴器用作鬧鐘。該液晶時鐘可以應(yīng)用于一般的生活和工作之中,也可以通過改裝,提高性能,增加新功能,從而給人們的生活和工作帶來更多的

2、方便。關(guān)鍵詞 單片機(jī),時鐘,lcd,ds1302,ds18b20abstractsince ancient times, peoples life and work are inseparable from time and gradually accelerated, with the rhythm of peoples lives more and more time on the importance of peoples deep; therefore, have a good clock, will the people the lives of a great deal of co

3、nvenience. microprocessor controlled lcd clock technology becomes more mature, but people are increasingly high requirements on the clock, lcd clock, r & d is not stagnation.this article is based on the mcu as the core of the lcd clock, using the ds1302 chip to provide a stable timing pulse, the ds1

4、8b20 collection of real-time temperature information, with a separate keyboard date, time calibration and alarm settings and switch, use the lcd as a monitor, buzzer as an alarm clock.the lcd clock can be applied to general life and work can also be modified, to improve performance, add new features

5、 to bring more convenience to peoples lives and work.key words mcu,clock,lcd,ds1302,ds18b20目 錄摘 要iabstractii1 緒論11.1 課題介紹11.1.1 課題的背景和意義11.1.2 現(xiàn)狀與發(fā)展趨勢11.2 課題設(shè)計(jì)要求21.2.1 主要工作21.2.2 基本要求22 方案設(shè)計(jì)與論證32.1 時鐘系統(tǒng)設(shè)計(jì)思路32.2 系統(tǒng)方案論證32.2.1 單片機(jī)選擇32.2.2 時鐘計(jì)時方案選擇32.2.3 實(shí)時環(huán)境溫度采集模塊選擇32.2.4 顯示方式選擇42.2.5 鬧鐘方案選擇42.2.6 按鍵選擇

6、43 單片機(jī)介紹53.1 單片機(jī)基本結(jié)構(gòu)53.2 at89s52簡介53.3 at89s52引腳說明64 系統(tǒng)硬件設(shè)計(jì)84.1 單片機(jī)模塊84.1.1 復(fù)位電路84.1.2 晶振電路94.2 液晶顯示模塊104.2.1 液晶顯示原理104.2.2 lcd1602簡介114.2.3 lcd1602特性114.2.4 lcd1602管腳功能114.3 時鐘芯片模塊124.3.1 ds1302簡介124.3.2 ds1302引腳功能及結(jié)構(gòu)134.4 溫度檢測模塊134.4.1 ds18b20簡介144.4.2 ds18b20性能描述144.4.3 ds18b20引腳說明144.5 蜂鳴器與按鍵模塊1

7、54.5.1 蜂鳴器模塊154.5.2 按鍵模塊155 系統(tǒng)軟件設(shè)計(jì)165.1 主程序165.1.1 主界面165.1.2 溫度設(shè)置界面175.1.3 鬧鐘設(shè)置界面185.2 液晶顯示程序185.2.1 lcd1602地址185.2.2 lcd1602指令195.2.3 lcd1602字符集205.2.4 lcd1602部分程序205.3 時鐘芯片程序215.3.1 ds1302控制命令字節(jié)215.3.2 ds1302的寄存器225.3.3 ds1302數(shù)據(jù)傳輸225.3.4 ds1302部分程序235.4 實(shí)時溫度程序245.4.1 ds18b20設(shè)置命令245.4.2 ds18b20時序2

8、45.4.3 ds18b20操作步驟265.4.4 ds18b20部分程序266 調(diào)試286.1 軟件調(diào)試286.1.1 keil軟件介紹286.1.2 程序調(diào)試296.2 硬件調(diào)試30結(jié) 論31參考文獻(xiàn)32附錄a:lcd1602的ascii碼表33附錄b:系統(tǒng)原理圖34附錄c:實(shí)物圖35附錄d:源程序36致 謝441 緒論1.1 課題介紹隨著科技的發(fā)展,以及電子信息科學(xué)系的迅速崛起,單片機(jī)在數(shù)字時鐘領(lǐng)域中的使用已經(jīng)是非常普遍的了,現(xiàn)在人們對數(shù)字時鐘的功能以及工作順序都非常的熟悉了;但是卻很少人知道它的內(nèi)部結(jié)構(gòu)和工作原理。由單片機(jī)作為數(shù)字時鐘的核心控制器,它可以通過時鐘信號實(shí)現(xiàn)計(jì)時的功能,將其

9、時間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來。通過鍵盤可以實(shí)現(xiàn)時間的校準(zhǔn),利用蜂鳴器可以實(shí)現(xiàn)鬧鐘功能。輸出設(shè)備可以利用液晶顯示或者數(shù)碼管顯示。1.1.1 課題的背景和意義從古至今,人們的生活就離不開時間,而為人們提供精準(zhǔn)時間的時鐘自然而然就成為了人們生活中的必需品;現(xiàn)如今數(shù)字時鐘已經(jīng)廣泛應(yīng)用于個人家庭以及辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作和娛樂帶來了很大的方便。由于數(shù)字集成電路的發(fā)展和采用了先進(jìn)的石英技術(shù),使數(shù)字時鐘具有走時準(zhǔn)、性能穩(wěn)定和攜帶方便等優(yōu)點(diǎn),它還用于計(jì)時、自動報(bào)時和自動控制等各個領(lǐng)域。盡管目前市場上已有現(xiàn)成的數(shù)字時鐘集成芯片出售,價格便宜、使用方便,但是鑒于單片機(jī)也可以完成數(shù)字

10、時鐘的設(shè)計(jì),因此使用單片機(jī)來進(jìn)行數(shù)字時鐘的設(shè)計(jì)是很簡便的。在這里我們將已學(xué)過的比較零散的數(shù)字電路的知識有機(jī)構(gòu)的、系統(tǒng)的聯(lián)系起來用于實(shí)際。單片機(jī)具有體積小、功能強(qiáng)、可靠性高和價格低等一系列優(yōu)點(diǎn),不僅成為工業(yè)測控領(lǐng)域普遍采用的智能化控制工具,而已還滲入到人們工作和生活中的各個角落,有力地推動了各行業(yè)的技術(shù)改造的產(chǎn)品的更新?lián)Q代。1.1.2 現(xiàn)狀與發(fā)展趨勢從單片機(jī)控制的數(shù)字時鐘今年來的發(fā)展趨勢來看,我們的數(shù)字電子時鐘正在朝著三多一高一低一小發(fā)展,即多層次用戶、多品種、多規(guī)格、高精度、低能耗和小體積。在這種趨勢下,時鐘的數(shù)字化、智能化已經(jīng)成為現(xiàn)代時鐘生產(chǎn)研究的主導(dǎo)設(shè)計(jì)方向。帶有時鐘功能的電子產(chǎn)品和電子設(shè)

11、備近年來廣泛地出現(xiàn)在國內(nèi)外市場中。例如奧運(yùn)會倒計(jì)時顯示屏、道路安全顯示屏、比賽計(jì)時屏幕、監(jiān)控系統(tǒng)以及其它多種場合,這類產(chǎn)品覆蓋了我們生活中的大多數(shù)地方。然而作為一種人機(jī)接口方式,僅僅只有l(wèi)cd顯示、鍵盤控制是遠(yuǎn)遠(yuǎn)不行的;所以在數(shù)字時鐘上添加語音提示、音樂或者其它語音功能,能夠使我們的數(shù)字時鐘更有趣、更人性化,同時也能顯得我們的數(shù)字時鐘更加與眾不同,所以要使各界領(lǐng)域更為的廣泛使用數(shù)字時鐘,那么對于語音的研究是有很大的實(shí)際意義的。1.2 課題設(shè)計(jì)要求能夠?qū)崿F(xiàn)基于單片機(jī)與ds1302芯片聯(lián)合控制的lcd顯示的電子時鐘功能,并完成硬件設(shè)計(jì)和軟件設(shè)計(jì)。1.2.1 主要工作設(shè)計(jì)和制作基于單片機(jī)的lcd顯示

12、的電子時鐘電路:原理圖的分析和設(shè)計(jì);元器件的選擇;程序的編寫;制作和調(diào)試實(shí)物。還有是就畢業(yè)設(shè)計(jì)論文的編寫。1.2.2 基本要求該時鐘的基本功能應(yīng)該包括有準(zhǔn)確計(jì)時,時制為24小時制,能夠以數(shù)字的形式在lcd上顯示年、月、日,時、分、秒,星期使用英文字母加數(shù)字的形式進(jìn)行顯示,并且具有使用按鍵對時間進(jìn)行校準(zhǔn)功能,還有就是該時鐘具有鬧鐘的功能,并能自行設(shè)置鬧鐘時間;以及實(shí)時環(huán)境溫度顯示的功能。2 方案設(shè)計(jì)與論證2.1 時鐘系統(tǒng)設(shè)計(jì)思路按照系統(tǒng)的設(shè)計(jì)功能要求,該液晶時鐘系統(tǒng)的設(shè)計(jì)必須采用單片機(jī)軟件系統(tǒng)來實(shí)現(xiàn),用單片機(jī)的自動控制能力配合按鍵控制,來控制時鐘、鬧鐘的調(diào)整及顯示。獲得時鐘、溫度和鬧鐘的數(shù)據(jù)信息

13、,通過單片機(jī)對其進(jìn)行一系列的處理,最后使用液晶顯示出來。2.2 系統(tǒng)方案論證該設(shè)計(jì)主要討論了,如何實(shí)現(xiàn)對液晶電子時鐘的硬件設(shè)計(jì)和軟件設(shè)計(jì),以及如何實(shí)現(xiàn)液晶屏幕顯示;接下來,我要介紹的是該設(shè)計(jì)方案所需元器件的選擇,以及是怎么在進(jìn)行選擇。2.2.1 單片機(jī)選擇對于單片機(jī)的選擇,如果用8031系列,由于它沒有內(nèi)部ram,系統(tǒng)又需要大量內(nèi)存存儲數(shù)據(jù),因而不可用;51系列單片機(jī)的rom為4k,對于我們設(shè)計(jì)的系統(tǒng)可能有點(diǎn)??;52系列單片機(jī)與51系列的結(jié)構(gòu)一樣,而rom擴(kuò)大為8k,對我們設(shè)計(jì)系統(tǒng)提供充足的空間進(jìn)行功能的擴(kuò)展。再有51系列單片機(jī)與52系列的單片機(jī)價格差不多。因此,我選擇52系列的單片機(jī)。2.2

14、.2 時鐘計(jì)時方案選擇方案1:通過單片機(jī)內(nèi)部的定時器/計(jì)數(shù)器,用軟件實(shí)現(xiàn),直接用單片機(jī)的定時器編程以實(shí)現(xiàn)時鐘;方案2:用專門的時鐘芯片實(shí)現(xiàn)時鐘的記時,再把時間數(shù)據(jù)送入單片機(jī),由單片機(jī)控制顯示。雖然用軟件實(shí)現(xiàn)時鐘硬件線路簡單,但是程序運(yùn)行的每一步都需要時間,多一步或少一步程序都會影響記時的準(zhǔn)確度,而且定時器計(jì)時也不是十分準(zhǔn)確,時鐘精度很低,對于我們實(shí)現(xiàn)所需要的功能造成軟件編程非常復(fù)雜。用專用時鐘芯片硬件成本相對較高,但它的精度很高,軟件編程很簡單。綜上所述,我選擇方案2,并選用ds1302時鐘芯片。2.2.3 實(shí)時環(huán)境溫度采集模塊選擇方案1:使用熱敏電阻作為溫度采集模塊;方案2:使用ds18b2

15、0作為溫度采集模塊。熱敏電阻是開發(fā)早、種類多、發(fā)展較成熟的敏感元器件,熱敏電阻是由半導(dǎo)體陶瓷材料組成,利用的原理是溫度引起電阻變化。通過一定的電路可以將周圍環(huán)境的溫度變化轉(zhuǎn)化成電壓的變化,通過ad轉(zhuǎn)換器件將信號傳輸給單片機(jī)進(jìn)行分析,從而測出當(dāng)前環(huán)境溫度,但是誤差大,不穩(wěn)定,對環(huán)境要求較高。ds18b20是美國dallas公司生產(chǎn)的數(shù)字溫度傳感器,采用單總線的接口方式,與微處理器連接時僅需要一條口線即可實(shí)現(xiàn)未處理器與ds18b20的雙向通訊。單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場溫度測量,使用方便等優(yōu)點(diǎn);ds18b20測量溫度范圍寬,測量精度高,供電方式靈活。非常適合本設(shè)計(jì)使用。

16、所以綜上所述我選擇使用ds18b20作為本設(shè)計(jì)的實(shí)時溫度采集模塊。2.2.4 顯示方式選擇方案1:用數(shù)碼管或led顯示;方案2:用液晶1602顯示;方案3:用液晶12864顯示。時鐘的顯示可以用數(shù)碼管或led,而且價格便宜。但是數(shù)碼管的只能顯示簡單的設(shè)計(jì)的系統(tǒng),與我們設(shè)計(jì)要求也不相符。有很多東西需要顯示,還是用顯示功能更好的液晶顯示器比較好,它能顯示更多的數(shù)據(jù),用1602液晶顯示數(shù)據(jù)有限,顯示數(shù)據(jù)的可讀性不好,用可以顯示漢字的12864液晶顯示器還可以增加顯示信息的可讀性,讓人看起來會很方便。另外它們在價格上差距很大,考慮成本我們首選1602。所以綜上所述,我選擇使用液晶1602顯示,即方案2

17、。2.2.5 鬧鐘方案選擇方案1:用蜂鳴器來實(shí)現(xiàn)實(shí)現(xiàn)鬧鐘的功能;方案2:用喇叭加語音芯片實(shí)現(xiàn)鬧鐘功能。用喇叭加語音芯片成本很高,但聲音還不錯,再有喇叭體積龐大。用蜂鳴器,成本低,電路結(jié)構(gòu)簡單,而且體積小。限于設(shè)計(jì)所需要的功能,用蜂鳴器是最佳選擇。所以我選擇使用蜂鳴器。2.2.6 按鍵選擇方案1:購買集成鍵盤,采用矩陣形式連接;方案2:購買單個復(fù)位開關(guān)做成按鍵。雖然集成鍵盤美觀,與單片機(jī)的接口少,但是它的成本比較高。在該設(shè)計(jì)中,單片機(jī)的i/o口對于我的時鐘系統(tǒng)綽綽有余。所以我選用價格便宜單個復(fù)位開關(guān)做成按鍵。3 單片機(jī)介紹單片機(jī)即微處理器,自1976年inter公司推出的mcs-48,迄今已有2

18、0多年了。由于單片機(jī)具有集成度高,功能強(qiáng),體積小,功耗低,使用方便,價格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)應(yīng)用到人們工作和生活的各個領(lǐng)域。在上一章中,已經(jīng)討論過了選擇什么類型的單片機(jī);根據(jù)該系統(tǒng)的需求,我選擇使用的是at89s52芯片;接下來我們來對該設(shè)計(jì)中使用的單片機(jī)進(jìn)行簡要的介紹。3.1 單片機(jī)基本結(jié)構(gòu)如圖3.1所示為單片機(jī)的基本結(jié)構(gòu)框圖,它由8個部件組成,即中央處理器(cpu)、片內(nèi)數(shù)據(jù)存儲器(ram)、片內(nèi)程序存儲器(rom)、輸入輸出接口、可編程串行口、定時/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(sfr)。各部分通過內(nèi)部總線相連。在功能單元的控制上,采用了特殊功能寄存器的集中控制方法。圖3.1

19、單片機(jī)基本結(jié)構(gòu)框圖3.2 at89s52簡介at89s52實(shí)物如圖3.2所示:圖3.2 at89s52實(shí)物at89s52是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash存儲器。使用atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80c51產(chǎn)品指令和引腳完全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位cpu和在系統(tǒng)可編程flash,使得at89s52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。3.3 at89s52引腳說明at89s52的引腳圖如圖3.3所示:圖3.3 at89s52引腳at89s52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)

20、flash,256字節(jié)ram,32位i/o口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計(jì)數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,at89s52可降至0hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,cpu停止工作,允許ram、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。接下來簡單介紹一下在本設(shè)計(jì)中使用到的端口。p0口:p0口是一個8位漏極開路的雙向i/o口。作為輸出口,每位能驅(qū)動8個ttl邏 輯電平。對p0端口寫“1”時,引腳用作高阻抗輸入。 當(dāng)訪問外部程

21、序和數(shù)據(jù)存儲器時,p0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0不具有內(nèi)部上拉電阻。在flash編程時,p0口也用來接收指令字節(jié);在程序校驗(yàn)時,輸出指令字節(jié)。程序校驗(yàn)時,需要外部上拉電阻。p1口:p1口是一個具有內(nèi)部上拉電阻的8位雙向i/o口,p1輸出緩沖器能驅(qū)動4個ttl邏輯電平。對p1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p1.0和p1.1分別作定時器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(p1.0/t2)和定時器/計(jì)數(shù)器2的觸發(fā)輸入(p1.1/t2ex)。在flash編程和校驗(yàn)時,p1口接

22、收低8位地址字節(jié)。p2口: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口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如movx ri)訪問外部數(shù)據(jù)存儲器時,p2口輸出p2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時,p2口也接收高8位地址字節(jié)和一些控制信號。rst:復(fù)位輸入。當(dāng)振蕩器工作時,

23、rst引腳出現(xiàn)兩個機(jī)器周期以上高電平將是單片機(jī)復(fù)位。ale/prog:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ale仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ale脈沖。對flash存儲器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過對特殊功能寄存器(sfr)區(qū)中的8eh單元的d0位置位,可禁止ale操作。該位置位后,只有一條movx和movc指令才能將ale激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ale禁止位

24、無效。ea/vpp:外部訪問允許,欲使cpu僅訪問外部程序存儲器(地址為0000h-ffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復(fù)位時內(nèi)部會鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲器的指令。flash存儲器編程時,該引腳加上+12v的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v編程電壓vpp。xtal1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。xtal2:振蕩器反相放大器的輸出端。4 系統(tǒng)硬件設(shè)計(jì)根據(jù)前面的電子時鐘的設(shè)計(jì)要求,系統(tǒng)的硬件設(shè)計(jì)可以分為以下幾個電路模塊:單片機(jī)模塊,時鐘芯片模塊,液晶顯示模塊,鬧鐘模塊和按

25、鍵模塊,模塊與模塊的關(guān)系如圖4.1所示:單 片 機(jī) at89s52ds1302ds18b20晶 振復(fù) 位lcd1602蜂鳴器按 鍵圖4.1 系統(tǒng)模塊圖4.1 單片機(jī)模塊該設(shè)計(jì)中的時鐘電路在硬件上是使用at89s52型號的單片機(jī)作為主要的控制系統(tǒng);單片機(jī)的最小系統(tǒng)是由電源、復(fù)位和晶振組成的,接下來主要介紹一下復(fù)位電路和晶振電路,電源就不作介紹了。4.1.1 復(fù)位電路單片機(jī)復(fù)位是使cpu和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后pc0000h,使單片機(jī)從第個單元取指令。無論是在單片機(jī)剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位。單片機(jī)復(fù)位的條件是:必須使

26、rst/vpd或rst引腳(9)加上持續(xù)兩個機(jī)器周期(即24個振蕩周期)的高電平。本系統(tǒng)時鐘頻率為11.0592mhz,每機(jī)器周期約為1us,則只需2us以上時間的高電平,在rst引腳出現(xiàn)高電平后的第二個機(jī)器周期執(zhí)行復(fù)位。單片機(jī)的復(fù)位方式有兩種,一是上電復(fù)位,二是按鍵手動復(fù)位;本設(shè)計(jì)就是用的手動按鈕復(fù)位。按鍵手動復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過rst端經(jīng)電阻與電源vcc接通而實(shí)現(xiàn)的。按鍵手動復(fù)位電路見圖4.2。時鐘頻率6mhz時,c取10uf,r2取200,r1取10k。圖中s1、r2構(gòu)成按鍵復(fù)位電路。若要復(fù)位,只需按圖中的s1鍵,此時電源vcc經(jīng)電阻r1、r2分壓,在rese

27、t端產(chǎn)生復(fù)位高電平,兩個機(jī)器周期后單片機(jī)復(fù)位。圖4.2 單片機(jī)復(fù)位電路4.1.2 晶振電路xtal1是片內(nèi)振蕩器的反相放大器輸入端,xtal2是輸出端。使用外部振蕩器時,外部振蕩信號應(yīng)直接加到xtal1,而xtal2懸空;內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12mhz,時鐘頻率就為6mhz。晶振的頻率可以在1mhz24mhz內(nèi)選擇。圖4.3 單片機(jī)晶振電路該設(shè)計(jì)采用的是內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路,如圖4.3所示。at89系列的單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳xtal1和xtal2分別是此放大器的輸入端和輸出端;這個放大器與作為反饋元件的片外晶體諧振器一

28、起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容c3和c4構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。本電路的時鐘頻率為11.0592mhz,電容c3、c4采用30pf的磁片電容。4.2 液晶顯示模塊本設(shè)計(jì)采用的1602液晶顯示器來顯示時鐘的時間。液晶顯示器是采用了液晶控制透光度技術(shù)來實(shí)現(xiàn)色彩的顯示器,由于通過控制是否透光來控制亮與暗,當(dāng)色彩不變時,液晶也保持不變,這樣就無須考慮刷新率的問題。對于畫面穩(wěn)定,無閃爍感的液晶顯示器,刷新率不高但圖像也很穩(wěn)定。lcd顯示器還通過液晶控制透光度的

29、技術(shù)原理來讓底板整體發(fā)光,所以它做到了真正的完全平面,一些高檔的數(shù)字lcd顯示器采用了數(shù)字方式傳輸數(shù)據(jù),顯示圖像,這樣就不會產(chǎn)生由于顯卡造成的色彩偏差或損失。完全沒有輻射的優(yōu)點(diǎn),即使長時間觀看lcd顯示器屏幕也不會對眼睛造成很大的傷害。該設(shè)計(jì)中的液晶顯示電路如圖4.4所示:圖4.4 液晶顯示電路圖中l(wèi)cd的4、5、6引腳分別接的是單片機(jī)上的p2.0、p2.1、p2.2口。4.2.1 液晶顯示原理lcd是由兩塊玻璃板構(gòu)成,厚約1mm,其間由包含有液晶材料的5um均勻間隔隔開。因?yàn)橐壕Р牧媳旧聿话l(fā)光,所以在顯示器兩邊都設(shè)有作為光源的燈管,而在液晶顯示屏背面有一塊背光板(或成為勻光板)和反光膜,背光

30、板時有熒光物質(zhì)組成的可以發(fā)射光線,其主要是提供均勻的背景光源。背光板發(fā)出的光線在穿過第一層偏振過濾之后進(jìn)入包含成千上萬液晶液滴的液晶層。液晶層中的液滴都被包含在細(xì)小的單元格結(jié)構(gòu)中,一個或多個第一個構(gòu)成屏幕上的一個像素。在玻璃板與液晶材料之間是透明的電極,電極之間分為行和列,在行與列的交叉點(diǎn)上,通過改變電壓而改變液晶的旋光狀態(tài),液晶的材料的左右能夠類似于一個個小的光閥。在液晶材料周邊是控制電路部分和驅(qū)動電路部分。當(dāng)lcd中的電極產(chǎn)生電場時,液晶分子就會產(chǎn)生扭曲,從而將穿越其中的光線進(jìn)行有規(guī)律的折射,然后進(jìn)過第二層過濾層的過濾在屏幕上顯示出來。4.2.2 lcd1602簡介lcd1602的實(shí)物圖如

31、圖4.5所示:1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊它有若干個57或者511等點(diǎn)陣字符位組成,每個點(diǎn)陣字符位都可以顯示一個字符。每位之間有一個點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@示圖形(用自定義cgram,顯示效果也不好);1602lcd是指顯示的內(nèi)容為162,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。圖4.5 lcd1602實(shí)物4.2.3 lcd1602特性+5v電壓,對比度可調(diào);內(nèi)含復(fù)位電路;提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能;有80字節(jié)顯示數(shù)據(jù)存儲器

32、ddram;內(nèi)建有192個57點(diǎn)陣的字型的字符發(fā)生器cgrom;個可由用戶自定義的57的字符發(fā)生器cgram。4.2.4 lcd1602管腳功能1602采用標(biāo)準(zhǔn)的16腳接口,如圖4.6所示,其中:圖4.6 lcd1602引腳圖第1腳:vss為電源地;第2腳:vdd接5v電源正極;第3腳:v0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10k的電位器調(diào)整對比度);第4腳:rs為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器;第5腳:r/w為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作;第6腳

33、:e(或en)端為使能(enable)端;第714腳:db0db7為8位雙向數(shù)據(jù)端;第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。4.3 時鐘芯片模塊時鐘芯片ds1302與單片機(jī)at89s52的連接是由3條線來完成的,如圖4.7所示;單片機(jī)的p1.0與時鐘芯片的數(shù)據(jù)傳輸端相連,p1.1用來作為ds1302輸入時鐘sclk控制端,p1.2控制ds1302的復(fù)位輸入端;ds1302接標(biāo)準(zhǔn)32.768khz晶振。圖4.7 時鐘芯片模塊4.3.1 ds1302簡介ds1302實(shí)物如圖4.8所示:圖4.8 ds1302實(shí)物ds1302是美國dallas公司推出的一種高性能、低功耗、帶ra

34、m的實(shí)時時鐘電路,它可以對年、月、日、周日、時、分、秒進(jìn)行計(jì)時,具有閏年補(bǔ)償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級產(chǎn)品,與ds1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進(jìn)行涓細(xì)電流充電的能力。4.3.2 ds1302引腳功能及結(jié)構(gòu)ds1302封裝如圖4.9所示:ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運(yùn)行。ds1302由v

35、cc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc1+0.2v時,vcc2給ds1302供電。當(dāng)vcc2小于vcc1時,ds1302由vcc1供電。圖4.9 ds1302封裝x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對ds1302進(jìn)行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時,在vc

36、c2.0v之前,rst必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。sclk為時鐘輸入端。4.4 溫度檢測模塊ds18b20有兩種接法:一是單線法即只接dq;這種方法應(yīng)用它內(nèi)部的寄生電源,因此在dq上要用一個mosfet把i/o線只接拉到電源上;二是從vcc腳加上電源。方法一適合于遠(yuǎn)距離溫度監(jiān)控,不需要本地電源。而我們只是設(shè)計(jì)測溫系統(tǒng),選擇方法二就行了,還有mosfet極容易燒壞,我們不用它。vcc接5v電源,gnd接地,dq與p3.3相連。溫度傳感器ds18b20與單片機(jī)的連接如圖4.10所示:圖4.10 溫度檢測電路4

37、.4.1 ds18b20簡介ds18b20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有l(wèi)tm8877,ltm8874等等。主要根據(jù)應(yīng)用場合的不同而改變其外觀。ds18b20的實(shí)物如圖4.11所示:圖4.11 ds18b20實(shí)物封裝后的ds18b20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機(jī)房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。4.4.2 ds18b20性能描述獨(dú)特的單線接口方式,ds18b20在與微處理器連接時僅需

38、要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊;測溫范圍 55+125,固有測溫分辨率0.5;支持多點(diǎn)組網(wǎng)功能,多個ds18b20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個,實(shí)現(xiàn)多點(diǎn)測溫,如果數(shù)量過多,會使供電電源電壓過低,從而造成信號傳輸?shù)牟环€(wěn)定;工作電源:35v/dc;在使用中不需要任何外圍元件;測量結(jié)果以912位數(shù)字量方式串行傳送;不銹鋼保護(hù)管直徑6;適用于dn1525, dn40dn250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測溫;標(biāo)準(zhǔn)安裝螺紋m10x1,m12x1.5,g1/2任選;pvc電纜直接出線或德式球型接線盒出線,便于與其它電器設(shè)備連接。4.4.3 ds18b20引腳說明ds18

39、b20的封裝如圖4.12所示:圖4.12 ds18b20的pr-35封裝i/o為數(shù)字信號輸入/輸出端;gnd為電源地;vdd為外接供電電源輸入端(在寄生電源接線方式時接地)。4.5 蜂鳴器與按鍵模塊4.5.1 蜂鳴器模塊本設(shè)計(jì)中的鬧鐘是采用單片機(jī)輸出一定頻率的方波從而使蜂鳴器發(fā)出聲音,其電路如圖4.13所示:圖4.13 蜂鳴器電路4.5.2 按鍵模塊按鍵模塊采用四個按鍵與單片機(jī)p1.4、p1.5、p1.6、p1.7口連接組成獨(dú)立按鍵,電路如圖4.14所示:圖4.14 按鍵電路其中各個按鍵的作用為:k1:數(shù)值的減?。[鐘開);k2:數(shù)值的增加(鬧鐘關(guān));k3:進(jìn)入設(shè)置狀態(tài),切換設(shè)置項(xiàng)目;k4:切

40、換lcd顯示界面。5 系統(tǒng)軟件設(shè)計(jì)軟件的設(shè)計(jì)是一個設(shè)計(jì)的關(guān)鍵,軟件程序編寫的好壞直接影響著系統(tǒng)運(yùn)行情況。因?yàn)楸驹O(shè)計(jì)中設(shè)計(jì)的模塊較多,所以程序的編寫也采用模塊化來進(jìn)行設(shè)計(jì),c語言具有編寫靈活、移植方便、便于模塊化設(shè)計(jì)的特點(diǎn),所以本設(shè)計(jì)的軟件采用c51進(jìn)行編寫。5.1 主程序主程序的流程圖如圖5.1所示,先對電路進(jìn)行初始化,然后開始順序執(zhí)行,在主程序中調(diào)用各個子程序,在各個子程序中利用數(shù)據(jù)傳輸、循環(huán)移位和中斷方式等指令,在程序運(yùn)行的時候可以對時鐘進(jìn)行調(diào)整,最終實(shí)現(xiàn)時鐘的設(shè)計(jì)。圖5.1 主程序流程圖5.1.1 主界面開機(jī)顯示完歡迎界面后看到的界面,我稱之為主界面,在程序中我把該界面叫做顯示模式0;在

41、該界面中,看到的就是本設(shè)計(jì)所需要顯示的內(nèi)容,第一行為實(shí)時時間和當(dāng)前溫度,第二行為年月日和星期的信息,該界面的軟件編寫流程圖如圖5.2所示。在該界面中,可以完成日期和時間的校準(zhǔn);需要校準(zhǔn)的情況下,按下按鍵k3,即當(dāng)p1.6=0的時,就會進(jìn)入校準(zhǔn)狀態(tài);第一次按下k3時,屏幕上年的位置會閃爍,即是否對年進(jìn)行校準(zhǔn),若需要校準(zhǔn),則按下按鍵k1(即p1.4=0)和k2(即p1.5=0),當(dāng)按下k1時,年的數(shù)值減1,按下k2時,年的數(shù)值加1;調(diào)整完年后,繼續(xù)按下k3,進(jìn)行下一項(xiàng)的校準(zhǔn),直到秒校準(zhǔn)后,按下k3退出校準(zhǔn)狀態(tài)。圖5.2 顯示模式0流程圖5.1.2 溫度設(shè)置界面圖5.3 顯示模式1流程圖在主界面時,

42、當(dāng)p1.7=0時,即按下按鍵k4后,顯示界面切換到溫度上下限設(shè)置的界面,在程序中我稱之為顯示模式1;第一行顯示的是實(shí)時的溫度信息,第二行顯示的是溫度上下限;該界面流程圖如圖5.3所示。在該界面中,可以完成溫度上下限的設(shè)置,當(dāng)下限越限時,在實(shí)時溫度后面顯示“al”標(biāo)識,當(dāng)上限越限時,顯示“ah”標(biāo)識。5.1.3 鬧鐘設(shè)置界面在溫度設(shè)置界面時,當(dāng)p1.7=0時,即按下按鍵k4后,顯示界面切換到鬧鐘設(shè)置的界面,在程序中我稱之為顯示模式2;在該界面中,第一行顯示的是“alarm set”;第二行顯示的是鬧鐘時間和開關(guān),初始鬧鐘時間為7:30,狀態(tài)為關(guān),可以對其可以進(jìn)行調(diào)整設(shè)置;該界面流程圖如圖5.4所

43、示:圖5.4 顯示模式2流程圖在該界面時,若按下k3,即p1.6=0時,則進(jìn)入鬧鐘時間和開關(guān)的設(shè)置狀態(tài),在流程圖中可以清楚的看出,按下按鍵k1(即p1.4=0)和k2(即p1.5=0)可以進(jìn)行鬧鐘時間的設(shè)置,方式和前面的設(shè)置方式一樣;只有在鬧鐘開關(guān)處設(shè)置時稍有不同,即按下k1時鬧鐘開,按下k2時鬧鐘關(guān)。5.2 液晶顯示程序?qū)τ跁r鐘的設(shè)計(jì),我們就是要看到顯示出來的信息;所以在本設(shè)計(jì)中,顯示這一部分是最重要的。在這一部分程序中,主要有:液晶的初始化,讀數(shù)據(jù),寫指令,讀狀態(tài)和指定位置顯示字符等程序。接下來先介紹一下關(guān)于lcd1602的地址與指令。5.2.1 lcd1602地址hd44780內(nèi)置了dd

44、ram(顯示數(shù)據(jù)存儲ram)、cgrom(字符存儲rom)和cgram(用戶自定義ram)。ddram就是顯示數(shù)據(jù)ram,用來寄存待顯示的字符代碼。共80個字節(jié),其地址和屏幕的對應(yīng)關(guān)系見下表5.1:表5.1 ddram地址和屏幕的關(guān)系顯示位置123456740ddram地址第一行00h01h02h03h04h05h06h27h第二行40h41h42h43h44h45h46h67h也就是說想要在lcd1602屏幕的第一行第一列顯示一個“a”字,就要向ddram的00h地址寫入“a”的代碼就行了。但具體的寫入是要按lcd模塊的指令格式來進(jìn)行的,后面我會講到的。一行有40個地址在1602中我們就用前

45、16個就行了。第二行也一樣用前16個地址。對應(yīng)見下表5.2:表5.2 ddram地址與顯示位置的對應(yīng)關(guān)系123413141516第一行00h01h02h03h0ch0dh0eh0fh第二行40h41h42h43h4ch4dh4eh4fh我們往ddram里的00h地址處送一個數(shù)據(jù),譬如0x31(數(shù)字1的代碼)并不能顯示1出來。這是令初學(xué)者很容易出錯的地方,原因就是如果你要想在ddram的00h地址處顯示數(shù)據(jù),則必須將00h加上80h,即0x80+0x00,若要在ddram的01h處顯示數(shù)據(jù),則必須將01h加上80h即0x80+0x01。依次類推。5.2.2 lcd1602指令表5.3 lcd16

46、02指令集指令名稱指令編碼指令功能rsr/wdb7db0清屏0000000001清除液晶顯示器,即將ddram的內(nèi)容全部填入“空白”的字符碼20h;光標(biāo)歸位光標(biāo)歸位000000001x將光標(biāo)撤回液晶顯示屏的左上方輸入模式設(shè)置000001 i/d s設(shè)定每次寫入1數(shù)據(jù)后光標(biāo)的移動方向,并且設(shè)定每次寫入的一個字符是否移動顯示開關(guān)控制0000001dcb控制顯示開/關(guān)、光標(biāo)顯示/關(guān)閉以及是否閃爍設(shè)定顯示屏/光標(biāo)移動方向000001 s/c r/l x x使光標(biāo)移位或整個顯示屏移位功能設(shè)定00001 dl n f x x設(shè)定數(shù)據(jù)總線位數(shù)、顯示行數(shù)及字形設(shè)定cgram地址0001 cgram的地址設(shè)定下

47、一個要存入數(shù)據(jù)的cgram的地址設(shè)定ddram地址001 ddram的地址設(shè)定下一個要存入數(shù)據(jù)的ddram的地址讀忙信號/ac地址01 bf ac內(nèi)容讀取忙信號bf的內(nèi)容,ac地址的內(nèi)容寫入數(shù)據(jù)10 要寫入的數(shù)據(jù)將字符碼寫入ddram,使液晶顯示器顯示出相應(yīng)的字符;將用戶自己設(shè)計(jì)的圖形存入cgram讀出數(shù)據(jù)11 要讀出的數(shù)據(jù)讀出ddram或cgram中的內(nèi)容在編程的時候?qū)懭胂嚓P(guān)的指令,就能顯示出我們需要的信息,上面的表格介紹了主要的11條指令:1602液晶的操作有4種:狀態(tài)讀操作輸入:rs=0、r/w=1、e=1,輸出:db0db7的狀態(tài)字;數(shù)據(jù)讀操作輸入:rs=1、r/w=1、e=1,輸出:

48、db0db7的數(shù)據(jù);指令寫操作輸入:rs=0、r/w=0、e=1,輸出:無;數(shù)據(jù)寫操作輸入:rs=1、r/w=1、e=1,輸出:無。5.2.3 lcd1602字符集1602液晶模塊內(nèi)部的字符發(fā)生儲存器(cgrom)已經(jīng)儲存了160個不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“a”的代碼是01000001b(41h),顯示時模塊把地址41h中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“a”。因?yàn)?602識別的是ascii碼,設(shè)計(jì)可以用ascii碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如a。1

49、602的16進(jìn)制ascii碼見附錄a。5.2.4 lcd1602部分程序在這里我只簡單的介紹一下液晶的初始化和指定位置顯示字符的程序;初始化流程圖如圖5.5所示:圖5.5 液晶初始化流程圖關(guān)于液晶的初始化,涉及到液晶顯示器的運(yùn)作原理,在這里就不做過多的講解。下面來看看在指定位置顯示字符的程序,如下:void dlc(uchar x, uchar y, uchar code *ddata) uchar listlength,j; listlength = strlen(ddata); y &= 0x1; x &= 0xf; /限制x不能大于15,y不能大于1 if (x = 0xf) /x坐標(biāo)應(yīng)

50、小于0xf for(j=0;jlistlength;j+) doc(x, y, ddataj); /顯示單個字符 x+; 這個程序的作用是,在液晶的指定位置顯示一串字符;在程序中,可以看到限制x不能大于15,y不能大于1,這里的x和y分別表示的是液晶的列和行,因?yàn)槭褂玫膌cd1602,所以列不能大于16,行不能大于2;在該程序中,還調(diào)用了在液晶的指定位置顯示一個字符的程序。5.3 時鐘芯片程序在這一部分里面主要是讀出ds1302芯片的內(nèi)部信息,傳送給單片機(jī),然后經(jīng)液晶顯示出來;另外就是當(dāng)時間需要校準(zhǔn)的時候,通過按鍵校準(zhǔn)時間,然后通過單片機(jī)處理后,存入ds1302芯片之中。5.3.1 ds130

51、2控制命令字節(jié)ds1302控制命令字節(jié)結(jié)構(gòu)如表5.4所示:表5.4 ds1302控制命令字節(jié)結(jié)構(gòu)765432101a4a3a2a1a0控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入ds1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)為0表示要進(jìn)行寫操作,為1表示要進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。5.3.2 ds1302的寄存器ds1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式,其日歷、時間寄存器及其控制字見下表5.5:表5.5 ds1302寄存器寄存

52、器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210秒80h81h0-59ch10secsec分82h83h0-59010minmin時84h85h01-1200-2312/24010/aphrhr日86h87h01-28、2930、310010datedate月88h89h01-1200010mmonth周8ah8bh01-0700000week年8ch8dh00-9910 yearyear表中有些特殊位需要特別指出:ch:時鐘暫停位,當(dāng)此位設(shè)置為1時,振蕩器停止,ds1302處于低功率的備份方式;當(dāng)此位變?yōu)?時,時鐘開始啟動。12/24:12或24小時方式選擇位,為1時選擇12小時方式。

53、在12小時方式下,位5是am/pm選擇位,此位為1時表示pm。在24小時方式下,位5是第2個小時位(2023)。操作說明:首先要通過8eh將寫保護(hù)去掉,將日期,時間的初值寫入各個寄存器;然后就可以對80h、82h、84h、86h、88h、8ah、8ch進(jìn)行初值寫入,同時也通過秒寄存器將位7的ch值改成0,這樣ds1302就開始走時運(yùn)行了;將寫保護(hù)寄存器再寫為80h,防止誤改寫寄存器的值;不斷讀取80h到8ch的值,將它們格式化后顯示到lcd1602上。5.3.3 ds1302數(shù)據(jù)傳輸圖5.6 ds1302數(shù)據(jù)傳輸ds1302的數(shù)據(jù)讀寫是通過i/o串行進(jìn)行的。當(dāng)進(jìn)行一次讀寫操作時最少得讀寫兩個字

54、節(jié),第一個字節(jié)是控制字節(jié),就是一個命令,告訴ds1302是讀還是寫,是對ram還是對clok寄存器操作,以及操作地址;第二個字節(jié)就是要讀或者寫的數(shù)據(jù)。其時序圖如圖5.6所示:單字節(jié)寫:在進(jìn)行操作之前先得將rst置高電平,然后單片機(jī)將控制字的位0放到i/o上,當(dāng)i/o的數(shù)據(jù)穩(wěn)定后,將sclk置高電平,ds1302檢測到sclk的上升沿后就就i/o上的數(shù)據(jù)讀取,然后單片機(jī)將sclk置為低電平,再將控制字的位1放到i/o上,如此反復(fù),將一個字節(jié)控制字的8個位傳給ds1302。接下來就是傳一個字節(jié)的讀數(shù)據(jù)給ds1302,當(dāng)傳輸完數(shù)據(jù)后,單片機(jī)將rst置為低電平,操作結(jié)束。單字節(jié)讀:開始寫控制字的過程和單字節(jié)寫是一樣的,但是單字節(jié)讀操作在寫控制的最后一個位,sclk還在高電平,ds1302就將數(shù)據(jù)放到i/o上,單片機(jī)就sclk置為低電平后數(shù)據(jù)鎖存,單片機(jī)就可以讀取i/o上的數(shù)據(jù)。如此反復(fù),將一個字節(jié)的數(shù)據(jù)讀入單片機(jī)。5.3.4 ds1302部分程序在該部分中除了設(shè)置初始時間的子程序外,其它都屬于ds1302芯片的內(nèi)部函數(shù),如下函數(shù):uchar r1302(uchar ucaddr) uchar ucdata; t_rst = 0; t_clk = 0; t_rst = 1; rtinputbyte(uc

溫馨提示

  • 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

提交評論