版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 一、前 言</b></p><p> 隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類(lèi)生活帶來(lái)了根本性的改變。由其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬(wàn)戶(hù)。電子萬(wàn)年歷的出現(xiàn)給人們的生活帶來(lái)的諸多方便。</p><p> 本設(shè)計(jì)是基于51系列的單片機(jī)進(jìn)行的電子萬(wàn)年歷設(shè)計(jì),采用八位數(shù)碼管顯示年月日時(shí)分秒及溫度信息,具有可調(diào)整日
2、期和時(shí)間功能。時(shí)間、日期調(diào)整由三個(gè)按鍵來(lái)實(shí)現(xiàn),并可對(duì)鬧鈴開(kāi)關(guān)進(jìn)行設(shè)置。日歷能顯示陽(yáng)歷和陰歷年、月、日以及星期、時(shí)、分、秒。設(shè)計(jì)以STC89C52RC單片機(jī)為核心,構(gòu)成單片機(jī)控制電路;以DS1302時(shí)鐘芯片作為萬(wàn)年歷信號(hào)發(fā)生器;以DS18B20作為檢測(cè)溫度的傳感器。</p><p> 關(guān)鍵詞 時(shí)鐘電鐘;DS1302;DS18B20;數(shù)碼管;單片機(jī)。</p><p> 二、系統(tǒng)概述及總體方
3、案</p><p><b> 2.1 系統(tǒng)概述</b></p><p> 本電子萬(wàn)年歷采用單片機(jī)控制技術(shù)和數(shù)碼管顯示方案,可以很好的完成萬(wàn)年歷和實(shí)時(shí)溫度顯示。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能。對(duì)于數(shù)字電子萬(wàn)年歷采用直觀(guān)的數(shù)字顯示,可以同時(shí)顯示年、月、日、周日、時(shí)、分、秒和溫度等信息,還具有時(shí)間校準(zhǔn)等功能。</p>
4、<p><b> 2.2總體方案</b></p><p> 2.2.1單片機(jī)芯片:</p><p> 采用AT89S52,片內(nèi)ROM全都采用Flash ROM;能以3V的超低壓工作;同時(shí)也與MCS-51系列單片機(jī)完全相同,該芯片內(nèi)部存儲(chǔ)器為8KB ROM 存儲(chǔ)空間,同樣具有89C51的功能,且具有在線(xiàn)編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)
5、誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。所以選擇采用AT89S52作為主控制系統(tǒng).</p><p> 2.2.2 時(shí)鐘芯片:</p><p> 采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V
6、范圍內(nèi),2.5V時(shí)耗電小于300nA.且同組同學(xué)已從Maxim申請(qǐng)到了這種芯片,所以本設(shè)計(jì)采用了這種芯片。</p><p> 2.2.3 測(cè)溫傳感器:</p><p> 測(cè)溫可以采用熱敏電阻加上模數(shù)轉(zhuǎn)換得到電壓,然后將測(cè)到的電壓送到單片機(jī),由單片機(jī)處理得到溫度值。但是這種方法實(shí)現(xiàn)起來(lái)復(fù)雜,且精度難以達(dá)到很高,所以本設(shè)計(jì)沒(méi)有采用這種方式。DS18B20是一種數(shù)字溫度傳感器,一根線(xiàn)就可以與
7、單片機(jī)IO聯(lián)接,將測(cè)到的溫度以數(shù)字形式傳送到單片機(jī),所以使用簡(jiǎn)單;它的測(cè)溫誤差為+-0.5度,可以達(dá)到較好的精度,在日常的應(yīng)用中足夠。這種芯片應(yīng)用廣泛,所以本設(shè)計(jì)也采用了這種測(cè)溫方式。</p><p><b> 三、系統(tǒng)硬件設(shè)計(jì)</b></p><p> 3.1.總體方案組成框圖</p><p><b> 總體方案組成框圖<
8、;/b></p><p> 3.2. 時(shí)鐘模塊設(shè)計(jì)</p><p> DS1302通過(guò)三線(xiàn)接口實(shí)現(xiàn)與單片機(jī)的通信,因DS1302功耗很小,即使電源掉電后通過(guò)3V的紐扣電池仍能維持DS1302精確走時(shí)。</p><p> 3.2.1 DS1302特性介紹</p><p> DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗
9、的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線(xiàn)接口與CPU進(jìn)行通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小與31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。</p><p> 3.2.2 DS1302管腳介紹&l
10、t;/p><p><b> 各引腳的功能為:</b></p><p> 1、Vcc2:5V電源。當(dāng)Vcc2>Vcc1+0.2V時(shí),由Vcc2向DS1302供電,當(dāng)Vcc2< Vcc1時(shí),由Vcc1向DS1302供電。</p><p> 2 3、X1、X2 是外接晶振腳 (32.768KHZ的晶振)。</p>&l
11、t;p><b> 地(GND)。</b></p><p> 5、CE/RST:復(fù)位腳。</p><p> 6、I/O:數(shù)據(jù)輸入輸出口。</p><p> 7、 SCLK:串行時(shí)鐘,輸入。</p><p> 8 、Vcc1:備用電池端;</p><p> 3.2.3 DS1302
12、與單片機(jī)接口電路圖</p><p> DS1302與單片機(jī)接口電路</p><p> 3.3. 實(shí)時(shí)環(huán)境溫度采集模塊</p><p> DS18B20通過(guò)單總線(xiàn)實(shí)現(xiàn)與單片機(jī)的通信,每個(gè)DS18B20都有一個(gè)唯一的序列號(hào),可以方便的實(shí)現(xiàn)組網(wǎng)檢測(cè)。</p><p> 3.3.1 單總線(xiàn)介紹</p><p> 單總
13、線(xiàn)即只有一根數(shù)據(jù)線(xiàn),系統(tǒng)中的數(shù)據(jù)交換,控制都由這根 線(xiàn)完成。</p><p> 單總線(xiàn)通常要求外接一個(gè)約為 4.7K—10K 的上拉電阻,這樣,當(dāng)總線(xiàn)閑置時(shí)其狀態(tài)為高電平。</p><p> 3.3.2 DS18B20特性介紹</p><p> DS18B20 單線(xiàn)數(shù)字溫度傳感器,即“一線(xiàn)器件”,其具有獨(dú)特的優(yōu)點(diǎn):</p><p&g
14、t; 采用單總線(xiàn)的接口方式 與微處理器連接時(shí) 僅需要一條口線(xiàn)即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 單總線(xiàn)具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),使用戶(hù)可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。</p><p> 測(cè)量溫度范圍寬,測(cè)量精度高 DS18B20 的測(cè)量范圍為 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C 范圍內(nèi),精度為
15、 ± 0.5°C 。</p><p> 在使用中不需要任何外圍元件。</p><p> 支持多點(diǎn)組網(wǎng)功能 多個(gè) DS18B20 可以并聯(lián)在惟一的單線(xiàn)上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。</p><p> 供電方式靈活 DS18B20 可以通過(guò)內(nèi)部寄生電路從數(shù)據(jù)線(xiàn)上獲取電源。因此,當(dāng)數(shù)據(jù)線(xiàn)上的時(shí)序滿(mǎn)足一定的要求時(shí),可以不接外部電源,從而 使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可
16、靠性更高。</p><p> 測(cè)量參數(shù)可配置 DS18B20 的測(cè)量分辨率可通過(guò)程序設(shè)定 9~12 位。</p><p> 負(fù)壓特性 電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。</p><p> 掉電保護(hù)功能 DS18B20 內(nèi)部含有 EEPROM ,在系統(tǒng)掉電以后,它仍可保存分辨率及報(bào)警溫度的設(shè)定值。</p><p>
17、 DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng),因此也就被設(shè)計(jì)者們所青睞。</p><p> 3.3.3 DS18B20管腳介紹</p><p> DS18B20的管腳排列:</p><p><b> GND為電源 地。</b></p><p
18、> DQ為數(shù)字信號(hào)輸入/輸出端。</p><p> VCC為外接供電電源輸入端,在寄生電源接線(xiàn)方式時(shí)接地。</p><p> 3.3.4 DS18B20與單片機(jī)連接圖</p><p> 3.4. 顯示模塊設(shè)計(jì)</p><p> 3.4.1 數(shù)碼管顯示</p><p> 為了符合生活實(shí)際需求,我們選用多
19、個(gè)數(shù)碼管做顯示模塊,利用74HC595移位特性,將要顯示的數(shù)據(jù)通過(guò)單片機(jī)串口傳輸給74HC595移位芯片,再驅(qū)動(dòng)多個(gè)數(shù)碼管。</p><p><b> 數(shù)碼管顯示電路</b></p><p> 3.4.2 74HC595芯片介紹</p><p> 74HC595是硅結(jié)構(gòu)的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC標(biāo)準(zhǔn)。 74HC
20、595是具有8位移位寄存器和一個(gè)存儲(chǔ)器,三態(tài)輸出功能。 移位寄存器和存儲(chǔ)器是分別的時(shí)鐘。 數(shù)據(jù)在SHcp的上升沿輸入到移位寄存器中,在STcp的上升沿輸入到存儲(chǔ)寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)脈沖。 移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7’),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線(xiàn)輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線(xiàn)。 </p
21、><p> 8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻關(guān)斷狀態(tài)。三態(tài)。 </p><p> 將串行輸入的8位數(shù)字,轉(zhuǎn)變?yōu)椴⑿休敵龅?位數(shù)字,例如控制一個(gè)8位數(shù)碼管,將不會(huì)有閃爍。</p><p> 3.4.3 74HC595芯片的特點(diǎn)</p><p> 8位串行輸入 /8位串行或并行輸出 存儲(chǔ)狀態(tài)寄存器,三種狀態(tài) </p&g
22、t;<p> 輸出寄存器(三態(tài)輸出:就是具有高電平、低電平和高阻抗三種輸出狀態(tài)的門(mén)電路。)可以直接清除 100MHz的移位頻率。</p><p><b> 數(shù)碼管驅(qū)動(dòng)電路</b></p><p> 四、系統(tǒng)軟件設(shè)計(jì) </p><p> 軟件設(shè)計(jì)是本設(shè)計(jì)的關(guān)鍵,軟件程序編寫(xiě)的好壞直接影響著系統(tǒng)運(yùn)行情況的良好。因本程序涉及的
23、模塊較多,所以程序編寫(xiě)也采用模塊化設(shè)計(jì),C語(yǔ)言具有編寫(xiě)靈活、移植方便、便于模塊化設(shè)計(jì)的特點(diǎn),所以本系統(tǒng)的軟件采用C51編寫(xiě)。</p><p> 4.1. 主程序流程圖設(shè)計(jì)</p><p> 該設(shè)計(jì)主程序流程圖如下圖所示。</p><p><b> 主程序流程圖</b></p><p> 4.2顯示程序流程圖設(shè)計(jì)&
24、lt;/p><p> 顯示程序利用單片機(jī)的串口工作方式0,TXD作為74HC595的時(shí)鐘信號(hào),RXD作移位數(shù)據(jù)信號(hào),將數(shù)據(jù)通過(guò)串口發(fā)送到數(shù)碼管顯示,流程圖如下圖所示</p><p><b> 五、軟件仿真</b></p><p> 5.1. 軟件調(diào)試過(guò)程</p><p> 1、仿真:打開(kāi)KEIL 2,輸入所編寫(xiě)的源程
25、序并對(duì)程序進(jìn)行編譯,在軟件的幫助下檢查其中的錯(cuò)誤并進(jìn)行反復(fù)修改,知道編譯正確后運(yùn)行,確保沒(méi)有錯(cuò)誤以后對(duì)正確的源程序進(jìn)行保存,保存時(shí)給其命名,以便將來(lái)載入程序時(shí)容易找到。</p><p> 2、打開(kāi)PROTEUS軟件,并出畫(huà)單片機(jī)電子萬(wàn)年歷具體運(yùn)行電路圖。</p><p> 3、檢查所畫(huà)電路運(yùn)行圖,確保沒(méi)有錯(cuò)誤以后,在PROTEUS下對(duì)原理圖進(jìn)行加載KEIL 2下的源程序。</p&
26、gt;<p> 4、加載完成后,單擊電路圖框下的開(kāi)始按鈕,進(jìn)行仿真。</p><p> 軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機(jī)調(diào)試兩個(gè)階段。程序的分塊調(diào)試一般在單片機(jī)開(kāi)發(fā)裝置上進(jìn)行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個(gè)特殊的程序段,并連同被調(diào)程序功能塊一起在開(kāi)發(fā)裝置上運(yùn)行;也可配合對(duì)應(yīng)硬件電路單獨(dú)運(yùn)行某程序功能塊,然后檢查是否正確,如果執(zhí)行結(jié)果與預(yù)想的不一致,可以通過(guò)單步運(yùn)行或設(shè)置斷點(diǎn)的方法,查出
27、原因并加以改正,直到運(yùn)行結(jié)果正確為止。這時(shí)該 程序功能塊已調(diào)試完畢,可去掉附加程序段。其它程序功能塊可按此法進(jìn)行調(diào)試。程序聯(lián)機(jī)調(diào)試就是將已調(diào)試好的各程序功能塊按總體結(jié)構(gòu)聯(lián)成一個(gè)完整程序,在所研制的硬件電路上運(yùn)行。從而試驗(yàn)程序整體運(yùn)行的完整性、正確性和與硬件電路的配合情況。在聯(lián)調(diào)中可能會(huì)有某些支路上的程序、功能塊因受條件制約而得不到相應(yīng)的輸入?yún)?shù),這時(shí),調(diào)試人員應(yīng)創(chuàng)造條件進(jìn)行模擬調(diào)試。在聯(lián)調(diào)中如發(fā)現(xiàn)硬件問(wèn)題也應(yīng)及時(shí)修正,直到單片機(jī)系統(tǒng)的軟
28、件、硬件全部調(diào)試成功為止。系統(tǒng)調(diào)試完成后,還要進(jìn)行一段時(shí)間的試運(yùn)行,從而檢驗(yàn)系統(tǒng)的穩(wěn)定性和抗干擾能力,驗(yàn)證系統(tǒng)功能是否達(dá)到設(shè)計(jì)要求,是否達(dá)到預(yù)期的效果。</p><p><b> 5.2. 仿真結(jié)果</b></p><p> 通過(guò)在KEIL2下對(duì)源程序的編譯,改正了其中的很多錯(cuò)誤,然后運(yùn)行,保證源程序的正確性。然后按原理圖選擇正確合理的電器元件,畫(huà)出正確的電路圖,
29、加載源程序運(yùn)行,順利實(shí)現(xiàn)了單片機(jī)數(shù)字萬(wàn)年歷的“年”“月”“日”、“溫度”、“星期”、“小時(shí)”、“分鐘”、“秒”、農(nóng)歷的月日的顯示。該數(shù)字萬(wàn)年歷的顯示效果圖如下圖所示。</p><p><b> 數(shù)字萬(wàn)年歷運(yùn)行圖</b></p><p><b> 六、總結(jié)體會(huì)</b></p><p> 數(shù)字萬(wàn)年歷是一種在日常生活中隨處
30、可見(jiàn)的電子產(chǎn)品,隨著電子技術(shù)的不斷更新,數(shù)字萬(wàn)年歷已經(jīng)進(jìn)入了大家小戶(hù)。它集日歷、時(shí)鐘、溫度計(jì)于一體,成為家庭里非常實(shí)用方便的小家電。這次專(zhuān)業(yè)課程設(shè)計(jì)很高興能夠分到數(shù)字萬(wàn)年歷設(shè)計(jì)這個(gè)課題,經(jīng)過(guò)查閱資料,了解了數(shù)字萬(wàn)年歷的基本功能與原理后,便開(kāi)始著手根據(jù)不同模塊查找適合的芯片,基于AT89C52單片機(jī),利用DS1320時(shí)鐘芯片來(lái)運(yùn)行系統(tǒng),再加上一個(gè)DS18B20溫度傳感器芯片,便能實(shí)現(xiàn)萬(wàn)年歷的基本功能了,結(jié)果用發(fā)光二極管顯示。原理并不難,但
31、是要實(shí)現(xiàn)萬(wàn)年歷的基本功能就必須得弄懂這幾個(gè)模塊的基本原理,還要配套上嚴(yán)謹(jǐn)?shù)某绦?,這樣才能真正地實(shí)現(xiàn)出來(lái)。</p><p> 在經(jīng)過(guò)一個(gè)多星期的學(xué)習(xí),慢慢地了解了了各個(gè)模塊的基本聯(lián)系。在做課程設(shè)計(jì)的過(guò)程中,有很多的知識(shí)還是通過(guò)查閱文檔或請(qǐng)教同學(xué)來(lái)獲得的,讓我了解到自己的很多不足,很多知識(shí)還是有待進(jìn)一步增強(qiáng)。如果要學(xué)習(xí)某些知識(shí),就必須通過(guò)實(shí)踐來(lái)學(xué)習(xí),這樣才能把知識(shí)融會(huì)貫通,真正地掌握。</p><
32、;p> 最后感謝劉望軍老師的指導(dǎo)和同學(xué)們的幫助。</p><p><b> 七、附 錄</b></p><p><b> 源程序代碼:</b></p><p> #include"1302.h"</p><p> #include"18b20.h&qu
33、ot;</p><p> sbit CLT = P3^2; //74HC595數(shù)據(jù)更新控制端口</p><p> /******************DS1302實(shí)時(shí)時(shí)鐘芯片的寄存器位置********************************/</p><p> #define SECOND 0x80 <
34、/p><p> #define MINUTE 0x82</p><p> #define HOUR 0x84 </p><p> #define DAY 0x86</p><p> #define MONTH 0x88</p><p> #define WEEK 0x8A<
35、;/p><p> #define YEAR 0x8C </p><p> int sec,min,hour,mon,day,week,year;//counter; //秒,分,時(shí),日期,月份,星期,年</p><p> /*******************共陰數(shù)碼管驅(qū)動(dòng)代碼******************************/</p&g
36、t;<p> unsigned char code SEG_TAB[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};</p><p> /*******************開(kāi)機(jī)動(dòng)畫(huà)顯示驅(qū)動(dòng)代碼******************************/</p><p> unsigned char
37、code F_TAB[7]={0x01,0x03,0x07,0x0f,0x1F,0x3F};</p><p> /*******************萬(wàn)年歷初始化數(shù)據(jù)表******************************/</p><p> unsigned char Display_TAB[21]={</p><p> 0x7D,0x5B,0x3F
38、,0x06, //農(nóng)歷月日</p><p> 0x05, //星期: ---- 7 </p><p> 0x3F,0x06, //溫度:個(gè)、十 ---- 10</p><p> 0x3F,0x3F, /
39、/秒:個(gè)、十 ---- 00</p><p> 0x3F,0x3F, //分:個(gè)、十 ---- 00</p><p> 0x3F,0x06, //時(shí):個(gè)、十 ---- 10</p><p> 0x6F,0x3F,
40、 //日:個(gè)、十 ---- 09</p><p> 0x5B,0x06, //月:個(gè)、十 ---- 12</p><p> 0x5B,0x06,0x3F,0x5B, //年:個(gè)、十、百、千 ---- 2012</p><p><b> };
41、</b></p><p> /******************************************************************************/ </p><p> //Name: Uart_Send</p><p> //Description: 串口發(fā)送萬(wàn)年歷數(shù)據(jù)顯示</p&g
42、t;<p> //Calls: 主函數(shù)調(diào)用</p><p> //Input: p:指向數(shù)據(jù)地址</p><p> //Output: 無(wú) </p><p> //Return: 無(wú)</p><p> /********************************
43、**********************************************/</p><p> void Uart_Send(char *p)</p><p><b> { </b></p><p><b> char i=0;</b></p><p><b>
44、 CLT = 0;</b></p><p> for(i=0;i<21;i++)</p><p><b> {</b></p><p> SBUF = *p++;</p><p> while(! TI);</p><p><b> TI = 0;<
45、;/b></p><p><b> }</b></p><p><b> CLT = 1;</b></p><p><b> }</b></p><p> /*****************************************************
46、*************************/ </p><p> //Name: Delay</p><p> //Description: 延時(shí)子函數(shù)</p><p> //Calls: 延時(shí)調(diào)用</p><p> //Input: 無(wú)</p><p>
47、 //Output: 無(wú) </p><p> //Return: 無(wú)</p><p> /******************************************************************************/</p><p> void Delay1(int n)</p><p
48、><b> {</b></p><p> while(n--);</p><p> } </p><p> /******************************************************************************/ </p><p>
49、//Name: Uart_Send</p><p> //Description: 串口發(fā)送萬(wàn)年歷數(shù)據(jù)顯示</p><p> //Calls: 主函數(shù)調(diào)用</p><p> //Input: 無(wú)</p><p> //Output: 無(wú) </p><p>
50、; //Return: 無(wú)</p><p> /******************************************************************************/</p><p> void Start_Flash(char *p)</p><p><b> { </b><
51、;/p><p> char i=0,n=0;</p><p> for(n=0;n<7;n++)</p><p><b> {</b></p><p><b> CLT = 0;</b></p><p> for(i=0;i<21;i++)</p>
52、;<p><b> {</b></p><p> SBUF = *p;</p><p> while(! TI);</p><p><b> TI = 0;</b></p><p><b> }</b></p><p><
53、;b> CLT = 1;</b></p><p><b> p++;</b></p><p> Delay1(30000);</p><p><b> }</b></p><p><b> }</b></p><p> /*
54、*****************************************************************************/ </p><p> //Name: Write</p><p> //Description: 把顯示初值寫(xiě)入到DS1302的內(nèi)部寄存器中</p><p> //Calls:
55、 延時(shí)調(diào)用</p><p> //Input: 無(wú)</p><p> //Output: 無(wú) </p><p> //Return: 無(wú)</p><p> /*********************************************************************
56、*********/</p><p> void Write_DS1302(void)</p><p><b> {</b></p><p> Write_1302(SECOND,0x00);</p><p> Write_1302(MINUTE,0x37);</p><p> Writ
57、e_1302(HOUR,0x18);</p><p> Write_1302(DAY,0x24);</p><p> Write_1302(MONTH,0x12);</p><p> //Write_1302(WEEK,0x07);</p><p> Write_1302(YEAR,0x12); </p><p&
58、gt;<b> }</b></p><p> /******************************************************************************/ </p><p> //Name: Read_DS1302</p><p> //Description: 把要
59、顯示初值從DS1302的內(nèi)部寄存器中讀取出來(lái)</p><p> //Calls: 延時(shí)調(diào)用</p><p> //Input: 無(wú)</p><p> //Output: 無(wú) </p><p> //Return: 無(wú)</p><p> /**********
60、********************************************************************/</p><p> void Read_DS1302(void)</p><p><b> {</b></p><p> sec=Read_1302(SECOND);</p><p&
61、gt; Display_TAB[7]=SEG_TAB[sec%16];</p><p> Display_TAB[8]=SEG_TAB[sec/16];</p><p> Delay(100);</p><p> min=Read_1302(MINUTE);</p><p> Display_TAB[9]=SEG_TAB[min%1
62、6];</p><p> Display_TAB[10]=SEG_TAB[min/16];</p><p> Delay(100);</p><p> hour=Read_1302(HOUR);</p><p> Display_TAB[11]=SEG_TAB[hour%16];</p><p> Displ
63、ay_TAB[12]=SEG_TAB[hour/16];</p><p> Delay(100);</p><p> day=Read_1302(DAY);</p><p> Display_TAB[13]=SEG_TAB[day%16];</p><p> Display_TAB[14]=SEG_TAB[day/16];</p
64、><p> Delay(100);</p><p> mon=Read_1302(MONTH);</p><p> Display_TAB[15]=SEG_TAB[mon%16];</p><p> Display_TAB[16]=SEG_TAB[mon/16];</p><p> Delay(100);<
65、/p><p> //week=Read_1302(WEEK);</p><p> Display_TAB[4]=SEG_TAB[week%10];</p><p> Delay(100);</p><p> year=Read_1302(YEAR);</p><p> Display_TAB[17]=SEG_TA
66、B[year%16];</p><p> Display_TAB[18]=SEG_TAB[year/16];</p><p> Delay(100);</p><p><b> }</b></p><p> void main(void)</p><p><b> {<
67、/b></p><p> ReadTemperature();</p><p> Write_DS1302();</p><p> Read_DS1302();</p><p> Conversion();</p><p> Start_Flash(F_TAB);</p><p>
68、;<b> while(1)</b></p><p><b> {</b></p><p> Uart_Send(Display_TAB);</p><p> ReadTemperature();</p><p> Read_DS1302();</p><p>
69、 Conversion();</p><p><b> }</b></p><p><b> 八、參考文獻(xiàn)</b></p><p> [1] 許立梓.微型計(jì)算機(jī)原理及應(yīng)用[M].機(jī)械工業(yè)出版社.2002</p><p> [2] 劉樂(lè)善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].華中理工大學(xué)出
70、版社.2000 </p><p> [3] 鄒逢興.計(jì)算機(jī)硬件技術(shù)基礎(chǔ)試驗(yàn)教程[M].高等教育出版社.2000</p><p> [4] 周佩玲.16位微型計(jì)算機(jī)原理接口及其應(yīng)用[M].中國(guó)科學(xué)技術(shù)大學(xué)出版社.2000 </p><p> [5] 吳秀清.微型計(jì)算機(jī)原理與接口技術(shù)[M].中國(guó)科學(xué)技術(shù)出版社.2001</p><p>
71、[6] 鄧亞平.微型計(jì)算機(jī)接口技術(shù)[M].清華大學(xué)出版社.2001</p><p> [7] 王迎旭.單片機(jī)原理與應(yīng)用[M].機(jī)械工業(yè)出版社.2001</p><p> [8] 周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M].北京航空航天大學(xué)出版社. 2002</p><p> [9] 謝宜仁.單片機(jī)實(shí)用技術(shù)問(wèn)答[M].人民郵電出版社.2002</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)萬(wàn)年歷課程設(shè)計(jì)
- 單片機(jī)萬(wàn)年歷課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-萬(wàn)年歷
- 萬(wàn)年歷單片機(jī)課程設(shè)計(jì)
- 基于單片機(jī)的萬(wàn)年歷課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—電子萬(wàn)年歷
- 單片機(jī)萬(wàn)年歷課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)報(bào)告(萬(wàn)年歷)
- 單片機(jī)課程設(shè)計(jì)-電子萬(wàn)年歷
- 單片機(jī)萬(wàn)年歷課程設(shè)計(jì) (2)
- 單片機(jī)課程設(shè)計(jì)-- 電子萬(wàn)年歷
- 單片機(jī)課程設(shè)計(jì)—萬(wàn)年歷[1]
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的萬(wàn)年歷
- 單片機(jī)課程設(shè)計(jì)---萬(wàn)年歷顯示設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子萬(wàn)年歷設(shè)計(jì)
- 課程設(shè)計(jì)--基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)
- 1602數(shù)字萬(wàn)年歷單片機(jī)課程設(shè)計(jì)
- 課程設(shè)計(jì)--單片機(jī)簡(jiǎn)易萬(wàn)年歷的設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---基于單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)
- 單片機(jī)萬(wàn)年歷課程設(shè)計(jì)--基于1602液晶顯示的電子時(shí)鐘萬(wàn)年歷
評(píng)論
0/150
提交評(píng)論