電子萬年歷畢業(yè)設(shè)計(jì)(打印稿_第1頁
電子萬年歷畢業(yè)設(shè)計(jì)(打印稿_第2頁
電子萬年歷畢業(yè)設(shè)計(jì)(打印稿_第3頁
電子萬年歷畢業(yè)設(shè)計(jì)(打印稿_第4頁
電子萬年歷畢業(yè)設(shè)計(jì)(打印稿_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目目 錄錄 摘 要 .3 一設(shè)計(jì)要求與方案論證 .4 1.1設(shè)計(jì)要求 .4 1.1.1 基本要求.4 1.1.2 創(chuàng)新要求.4 1.2 系統(tǒng)基本方案選擇和論證 .4 1.2.1 單片機(jī)芯片.4 1.2.2 顯示模塊 .5 1.2.3 時(shí)鐘芯片.5 1.2.4 溫度傳感器.6 1.3 電路設(shè)計(jì)最終方案決定 .6 二電子萬年歷硬件設(shè)計(jì)與實(shí)現(xiàn) .7 2.1 電子萬年歷系統(tǒng)設(shè)計(jì) .7 2.1.1 系統(tǒng)設(shè)計(jì)框圖.7 2.1.2 系統(tǒng)硬件概述 .7 2.2 系統(tǒng)硬件各模塊作用.7 2.2.1 單片機(jī)主控制模塊.7 2.2.2 時(shí)鐘電路模塊.10 2.2.3 溫度采集模塊.14 2.2.4 顯示模塊.15

2、2.3 電子萬年歷電路設(shè)計(jì).18 2.3.1 系統(tǒng)電路圖.18 2.3.2 電路圖分析 .19 三電子萬年歷軟件設(shè)計(jì) .20 3.1 程序流程框圖.20 3.1.1 總流程圖.20 3.1.2 陽歷程序流程圖 .21 3.1.3 陰歷程序流程圖 .21 3.1.4 時(shí)間調(diào)整程序流程圖 .22 3.2 部分程序的設(shè)計(jì) .23 3.2.1 DS18B20 溫度子程序.23 3.2.2 讀、寫 DS1302 子程序 .24 四. 指標(biāo)測(cè) .25 4.1 測(cè)試儀器 .25 4.硬件測(cè)試 .25 4.軟件測(cè)試 .25 4.測(cè)試結(jié)果分析與結(jié)論 .26 4.4.1 測(cè)試結(jié)果分析 .26 4.4.2 測(cè)試結(jié)論

3、 .26 五設(shè)計(jì)總結(jié) .27 致 謝 .28 參考文獻(xiàn) .29 附錄一:系統(tǒng)程序清單 .30 附錄二:系統(tǒng)使用說明書 .46 摘摘 要要 電子萬年歷是一種非常廣泛日常計(jì)時(shí)工具,對(duì)現(xiàn)代社會(huì)越來越流行。它可以對(duì)年、月、日、 周、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能。 電子萬年歷設(shè)計(jì)是基于單片機(jī)進(jìn)行的,可以顯示年、月、日、時(shí)、分、秒、周及溫度信息, 具有可調(diào)整日期和時(shí)間功能。設(shè)計(jì)包含 AT89S52 單片機(jī)模塊、LED 數(shù)碼管模塊、鍵盤模塊、 DS1302 模塊、數(shù)字式溫度傳感器 DS18B20 模塊。AT89S52 單片機(jī)作為核心,功耗小,能在 3V 的 低壓工作,電壓可選用 35V 電壓

4、供電。LED 數(shù)碼管動(dòng)態(tài)掃描,對(duì)于顯示數(shù)字最合適,價(jià)格適中, 而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。DS1302 的使用壽命長,誤差小。 對(duì)于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周日、時(shí)、分、秒和溫 度等信息,還具有時(shí)間校準(zhǔn)等功能。數(shù)字式溫度傳感器 DS18B20 僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳 輸,易與單片機(jī)連接簡(jiǎn)化系統(tǒng)電路.數(shù)字式溫度傳感器還具有測(cè)量精度高、測(cè)量范圍廣等優(yōu)點(diǎn)。 關(guān)鍵詞:AT89S52;DS1302;DS18B20;LED 數(shù)碼管;單片機(jī) 一設(shè)計(jì)要求與方案論證一設(shè)計(jì)要求與方案論證 1.11.1設(shè)計(jì)要求設(shè)計(jì)要求 1.1.11.1.1 基本要求基

5、本要求 具有年、月、日、星期、時(shí)、分、秒等功能; 時(shí)間與陰、陽歷能夠自動(dòng)關(guān)聯(lián); 具備年、月、日、星期、時(shí)、分、秒校準(zhǔn)功能; 1.1.21.1.2 創(chuàng)新要求創(chuàng)新要求 具有溫度計(jì)功能; 1.21.2 系統(tǒng)基本方案選擇和論證系統(tǒng)基本方案選擇和論證 1.2.11.2.1 單片機(jī)芯片單片機(jī)芯片 PICPIC 單片機(jī)單片機(jī) 是 MICROCHIP 公司的產(chǎn)品,其突出的特點(diǎn)是體積小,功耗低,精簡(jiǎn)指令集,抗干擾性好,可靠性 高,有較強(qiáng)的模擬接口,代碼保密性好,大部分芯片有其兼容的 FLASH 程序存儲(chǔ)器的芯片。 EMCEMC 單片機(jī)單片機(jī) 是臺(tái)灣義隆公司的產(chǎn)品,有很大一部分與 PIC 8 位單片機(jī)兼容,且相兼

6、容產(chǎn)品的資源相對(duì)比 PIC 的多,價(jià)格便宜,有很多系列可選,但抗干擾較差。 ATMELATMEL 單片機(jī)單片機(jī) ATMEl 公司的 8 位單片機(jī)有 AT89、AT90 兩個(gè)系列,AT89 系列是 8 位 Flash 單片機(jī),與 8051 系列單片機(jī)相兼容,靜態(tài)時(shí)鐘模式;AT90 系列單片機(jī)是增強(qiáng) RISC 結(jié)構(gòu)、全靜態(tài)工作方式、內(nèi)載在 線可編程 Flash 的單片機(jī),也叫 AVR 單片機(jī)。 PHLIPISPHLIPIS 51PLC51PLC 系列單片機(jī)系列單片機(jī) PHILIPS 公司的單片機(jī)是基于 80C51 內(nèi)核的單片機(jī),嵌入了掉電檢測(cè)、模擬以及片內(nèi) RC 振蕩 器等功能,這使 51LPC

7、在高集成度、低成本、低功耗的應(yīng)用設(shè)計(jì)中可以滿足多方面的性能要求。 HOLTEKHOLTEK 單片機(jī)單片機(jī) 臺(tái)灣盛揚(yáng)半導(dǎo)體的單片機(jī),價(jià)格便宜,種類較多,但抗干擾較差,適用于消費(fèi)類產(chǎn)品。 TITI 公司單片機(jī)公司單片機(jī) 德州儀器提供了 TMS370 和 MSP430 兩大系列通用單片機(jī).TMS370 系列單片機(jī)是 8 位 CMOS 單 片機(jī),具有多種存儲(chǔ)模式、多種外圍接口模式,適用于復(fù)雜的實(shí)時(shí)控制場(chǎng)合;MSP430 系列單片機(jī)是 一種超低功耗、功能集成度較高的 16 位低功耗單片機(jī),特別適用于要求功耗低的場(chǎng)合。 方案一方案一 采用 89C51 芯片作為硬件核心,采用 Flash ROM,內(nèi)部具有

8、4KB ROM 存儲(chǔ)空間,能于 3V 的 超低壓工作,而且與 MCS-51 系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備 ISP 在線 編程技術(shù), 當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí), 對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定的損壞。 方案二方案二 采用 AT89S52,片內(nèi) ROM 全都采用 Flash ROM;能以 3V 的超底壓工作;同時(shí)也與 MCS-51 系 列單片機(jī)完全該芯片內(nèi)部存儲(chǔ)器為 8KB ROM 存儲(chǔ)空間,同樣具有 89C51 的功能,且具有在線編 程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤?序時(shí),

9、不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。 所以選擇采用 AT89S52 作為主控制系統(tǒng)。 1.2.21.2.2 顯示模塊顯示模塊 方案一方案一 采用 LED 液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可 見,但是價(jià)格昂貴,需要的接口線多,所以在此設(shè)計(jì)中不采用 LED 液晶顯示屏。 方案二方案二 采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比 較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示。 方案三方案三 采用 LED 數(shù)碼管動(dòng)態(tài)掃描,LED 數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字最合適,而且采用動(dòng)態(tài)掃描法

10、 與單片機(jī)連接時(shí),占用的單片機(jī)口線少。 所以采用了 LED 數(shù)碼管作為顯示。 1.2.31.2.3 時(shí)鐘芯片時(shí)鐘芯片 方案一方案一 直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì) 數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用 此方案。 方案二方案二 采用 DS1302 時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302 芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、 時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的 RAM 做為數(shù)據(jù)暫存區(qū),工作 電壓 2.5V5.5V 范圍內(nèi),2.5V 時(shí)耗電小于 300nA。 所以采用 DS1302

11、 時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘。 1.2.41.2.4 溫度傳感器溫度傳感器 方案一方案一 使用熱敏電阻作為傳感器,用熱敏電阻與一個(gè)相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻 值隨溫度變化而變化的特性,采集這兩個(gè)電阻變化的分壓值,并進(jìn)行 A/D 轉(zhuǎn)換。 。此設(shè)計(jì)方案需 用 A/D 轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會(huì)產(chǎn)生較大 的測(cè)量誤差。 方案二方案二 采用數(shù)字式溫度傳感器 DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù) 據(jù)傳輸,易于與單片機(jī)連接,可以去除 A/D 模塊,降低硬件成本,簡(jiǎn)化系統(tǒng)電路。另外,數(shù)字 式溫度傳感器還具有測(cè)量精度高、測(cè)量范圍廣等優(yōu)點(diǎn)。

12、 所以采用數(shù)字式溫度傳感器 DS18B20。 1.31.3 電路設(shè)計(jì)最終方案決定電路設(shè)計(jì)最終方案決定 綜上各方案所述,對(duì)此次作品的方案選定: 采用 AT89S52 作為主控制系統(tǒng); DS1302 提供時(shí)鐘; 數(shù)字式溫度傳感器 DS18B20;LED 數(shù)碼管動(dòng)態(tài)掃描作為顯示。 二電子萬年歷硬件設(shè)計(jì)與實(shí)現(xiàn)二電子萬年歷硬件設(shè)計(jì)與實(shí)現(xiàn) 2.12.1 電子萬年歷系統(tǒng)設(shè)計(jì)電子萬年歷系統(tǒng)設(shè)計(jì) 2.1.12.1.1 系統(tǒng)設(shè)計(jì)框圖系統(tǒng)設(shè)計(jì)框圖 2.1.22.1.2 系統(tǒng)硬件概述系統(tǒng)硬件概述 本電路是由 AT89S52 單片機(jī)為控制核心,具有在線編程功能,低功耗,能在 3V 超低壓工作; 時(shí)鐘電路由 DS1302

13、 提供,它是一種高性能、低功耗、帶 RAM 的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、 日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為 2.5V5.5V。采用三線接口 與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或 RAM 數(shù)據(jù)。DS1302 內(nèi) 部有一個(gè) 31*8 的用于臨時(shí)性存放數(shù)據(jù)的 RAM 寄存器。可產(chǎn)生年、月、日、周日、時(shí)、分、秒, 具有使用壽命長,精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;溫度的采集由 DS18B20 構(gòu)成;顯示部份由個(gè)數(shù)碼管,74ls138、74ls47 譯碼器構(gòu)成。使用動(dòng)態(tài)掃描顯示方式對(duì)數(shù)字 的顯示。 2.22.2 系統(tǒng)系統(tǒng)硬件硬

14、件各模塊作用各模塊作用 2.2.12.2.1 單片機(jī)主控制模塊單片機(jī)主控制模塊 主主要要性性能能 與 MCS-51 單片機(jī)產(chǎn)品兼容 、8K 字節(jié)在系統(tǒng)可編程 Flash 存儲(chǔ)器、 1000 次擦寫周期、 全靜態(tài)操作: 0Hz33Hz 、 三級(jí)加密程序存儲(chǔ)器 、 32 個(gè)可編程 I/O 口線 、三個(gè) 16 位定時(shí)器/計(jì)數(shù)器 八個(gè)中斷源 、全雙工 UART 串行通道、 低功耗空閑和掉電模式 、掉 電后中斷可喚醒 、看門狗定時(shí)器 、雙數(shù)據(jù)指針 、掉電標(biāo)識(shí)符 。 功功能能特特性性描描述述 AT89S52 主控制模 塊 DS1302 時(shí)鐘模塊 LED 數(shù)碼管動(dòng)態(tài)掃 描顯示模塊 溫度采集模塊 鍵盤模塊 A

15、t89s52 是一種低功耗、高性能 CMOS8 位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器。使用 Atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和 引腳完 全兼容。片上 Flash 允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯 片上,擁有靈巧的 8 位 CPU 和在系統(tǒng) 可編程 Flash,使得 AT89S52 為眾多嵌入式控制應(yīng) 用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52 具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) Flash,256 字節(jié) RAM, 32 位 I/O 口線,看門狗定時(shí)器, 2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位 定 時(shí)器/計(jì)數(shù)器,

16、一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外, AT89S52 可降至 0Hz 靜態(tài)邏 輯操作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下, CPU 停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下, RAM 內(nèi) 容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89S52 P0 口:P0 口是一個(gè) 8 位漏極開路的雙向 I/O 口。作為輸出口,每位能驅(qū)動(dòng)8 個(gè) TTL 邏輯電平。對(duì) P0 端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),

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

18、.1/T2EX),具體如下表所示。 在 flash 編程和校驗(yàn)時(shí), P1 口接收低 8 位地址字節(jié)。 引引腳腳號(hào)號(hào)第第二二功功能能 P1.0 T2(定時(shí)器/計(jì)數(shù)器 T2 的外部計(jì)數(shù)輸入),時(shí)鐘輸出 P1.1 T2EX(定時(shí)器/計(jì)數(shù)器 T2 的捕捉/重載觸發(fā)信號(hào)和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用) P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。對(duì) P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的

19、引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲(chǔ)器或用 16 位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR) 時(shí),P2 口送出高八位地址。在這種應(yīng)用中, P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送 1。在使用 8 位地址(如 MOVX RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí), P2 口輸出 P2 鎖存器的內(nèi)容。 在 flash 編程和校驗(yàn)時(shí), P2 口也接收高 8 位地址字節(jié)和一些控制信號(hào)。 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向 I/O 口,p2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。對(duì) P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使

20、用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3 口亦作為 AT89S52 特殊功能(第二功能)使用,如下表所示。 在 flash 編程和校驗(yàn)時(shí), P3 口也接收一些控制信號(hào)。 端端口口引引腳腳 第第二二功功能能 P3.0 RXD(串行輸入口 ) P3.1 TXD(串行輸出口 ) P3.2 INTO(外中斷 0) P3.3 INT1(外中斷 1) P3.4 TO(定時(shí)/計(jì)數(shù)器 0) P3.5 T1(定時(shí)/計(jì)數(shù)器 1) P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通 ) P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通 ) 此外,P3 口還接收一些用于 FLASH 閃存編程和程序校驗(yàn)的控制信號(hào)。

21、 RST復(fù)位輸入。當(dāng)振蕩器工作時(shí), RST 引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片 機(jī)復(fù)位。 ALE/PROG當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí), ALE(地址鎖存允許)輸出脈 沖用于鎖存地址的低 8 位字節(jié)。一般情況下, ALE 仍以時(shí)鐘振蕩頻率的 1/6 輸出固定的脈 沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí) 將跳過一個(gè) ALE 脈沖。 對(duì) FLASH 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。 如有必要,可通過對(duì)特殊功能寄存器( SFR)區(qū)中的 8EH 單元的 D0 位置位,可禁止 ALE 操作。該位置位后,只有一條MOVX 和 MOV

22、C 指令才能將 ALE 激活。此外,該引腳會(huì)被 微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無效。 PSEN程序儲(chǔ)存允許( PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由 外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖, 在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN 信號(hào)。 EA/VPP外部訪問允許,欲使 CPU 僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH), EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存 EA 端狀態(tài)。 如 EA 端為高電平(接 Vcc 端),CPU 則執(zhí)行內(nèi)部

23、程序存儲(chǔ)器的指令。 FLASH 存儲(chǔ)器編程時(shí),該引腳加上 +12V 的編程允許電源 Vpp,當(dāng)然這必須是該器件是 使用 12V 編程電壓 Vpp。 AT89S52 單片機(jī)為 40 引腳雙列直插芯片,有四個(gè) I/O 口 P0,P1,P2,P3, MCS-51 單片機(jī)共有 4 個(gè) 8 位的 I/O 口(P0、P1、P2、P3) ,每一條 I/O 線都能獨(dú)立地作輸出或輸入。 單片機(jī)的最小系統(tǒng)如下圖所示,18 引腳和 19 引腳接時(shí)鐘電路,XTAL1 接外部晶振和微調(diào)電容 的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2 接外部晶振和微調(diào)電容的另一端,在片內(nèi)它 是振蕩器倒相放大器的輸出.第 9 引

24、腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后夠上電復(fù)位電路, 20 引腳為接地端,40 引腳為電源端,如圖 2-1 所示。 圖 2-1 主控制系統(tǒng) 2.2.22.2.2 時(shí)鐘電路模塊時(shí)鐘電路模塊 DS1302 是美國 DALLAS 公司推出的一種高性能、低功耗、帶 RAM 的實(shí)時(shí)時(shí)鐘電路,它可以 對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為 2.5V5.5V。采 用三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或 RAM 數(shù)據(jù)。 DS1302 內(nèi)部有一個(gè) 318 的用于臨時(shí)性存放數(shù)據(jù)的 RAM 寄存器。DS1302 是 DS1202 的升級(jí)產(chǎn)品,

25、 與 DS1202 兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流 充電的能力。 (1 1)D DS S1 13 30 02 2 的的結(jié)結(jié)構(gòu)構(gòu)及及工工作作原原理理 1.引腳功能及結(jié)構(gòu) DS1302 的引腳排列,其中 Vcc1 為后備電源,VCC2 為主電源。在主電源關(guān)閉的情況下,也能 保持時(shí)鐘的連續(xù)運(yùn)行。DS1302 由 Vcc1 或 Vcc2 兩者中的較大者供電。當(dāng) Vcc2 大于 Vcc10.2V 時(shí),Vcc2 給 DS1302 供電。當(dāng) Vcc2 小于 Vcc1 時(shí),DS1302 由 Vcc1 供電。X1 和 X2 是振蕩源,外 接 32.768kHz 晶振。

26、RST 是復(fù)位/片選線,通過把 RST 輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。 RST 輸入有兩種功能:首先,RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次, RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng) RST 為高電平時(shí),所有的數(shù)據(jù)傳送被初始化, 允許對(duì) DS1302 進(jìn)行操作。如果在傳送過程中 RST 置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O 引 腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在 Vcc2.5V 之前,RST 必須保持低電平。只有在 SCLK 為低電平 時(shí),才能將 RST 置為高電平。I/O 為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK 始終 是輸入端。 2. D

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

28、 位到高位 7。 4. DS1302 的寄存器 DS1302 有 12 個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式 。 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與 RAM 相關(guān) 的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302 與 RAM 相關(guān)的寄存器分為兩類:一類是單個(gè) RAM 單元,共 31 個(gè),每個(gè)單元組態(tài)為一個(gè) 8 位的字 節(jié),其命令控制字為 C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的 RAM 寄存器,此方式下可一次性讀寫所有的 RAM 的 31 個(gè)字

29、節(jié),命令控制字為 FEH(寫)、FFH(讀)。 (2 2)DS1302DS1302 實(shí)時(shí)顯示時(shí)間的軟硬件實(shí)時(shí)顯示時(shí)間的軟硬件 DS1302 與 CPU 的連接需要三條線,即 SCLK(7)、I/O(6)、RST(5)。 1.DS1302 與 CPU 的連接 實(shí)際上,在調(diào)試程序時(shí)可以不加電容器,只加一個(gè) 32.768kHz 的晶振即可。只是選擇晶振 時(shí),不同的晶振,誤差也較大。另外,還可以在上面的電路中加入 DS18B20,同時(shí)顯示實(shí)時(shí)溫度。 只要占用 CPU 一個(gè)口線即可。 LCD 還可以換成 LED,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司 生產(chǎn)的 10 位多功能 8 段液晶顯示模塊 LCM10

30、1,內(nèi)含看門狗(WDT)/時(shí)鐘發(fā)生器及兩種頻率的蜂鳴 器驅(qū)動(dòng)電路,并有內(nèi)置顯示 RAM,可顯示任意字段筆劃,具有 34 線串行接口,可與任何單片 機(jī)、IC 接口。功耗低,顯示狀態(tài)時(shí)電流為 2A (典型值),省電模式時(shí)小于 1A,工作電壓為 2.4V3.3V,顯示清晰。 2.DS1302 實(shí)時(shí)時(shí)間流程 DS1302 與微處理器進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高 位 MSB(D7)必須為邏輯 1,如果 D7=0,則禁止寫 DS1302,即寫保護(hù);D6=0,指定時(shí)鐘數(shù)據(jù), D6=1,指定 RAM 數(shù)據(jù);D5D1 指定輸入或輸出的特定寄存器;最低位 LSB(D0)為邏輯 0

31、,指定寫 操作(輸入), D0=1,指定讀操作(輸出)。 在 DS1302 的時(shí)鐘日歷或 RAM 進(jìn)行數(shù)據(jù)傳送時(shí), DS1302 必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8 位命令字節(jié)傳送結(jié)束之后,在下 2 個(gè) SCLK 周期的上升沿輸入數(shù)據(jù)字節(jié),或在下 8 個(gè) SCLK 周期的下降沿輸出數(shù)據(jù)字節(jié)。 DS1302 與 RAM 相關(guān)的寄存器分為兩類:一類是單個(gè) RAM 單元,共 31 個(gè),每個(gè)單元組態(tài)為一 個(gè) 8 位的字節(jié),其命令控制字為 C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā) 方式下的 RAM 寄存器,在此方式下可一次性讀、寫所有的 RAM 的 31 個(gè)字節(jié)。 尤其是備用電

32、源 B1,可以用電池或者超級(jí)電容器(0.1F 以上)。雖然 DS1302 在主電源掉電 后的耗電很小,但是,如果要長時(shí)間保證時(shí)鐘正常,最好選用小型充電電池。可以用老式電腦 主板上的 3.6V 充電電池。如果斷電時(shí)間較短(幾小時(shí)或幾天)時(shí),就可以用漏電較小的普通電解 電容器代替。100 F 就可以保證 1 小時(shí)的正常走時(shí)。DS1302 在第一次加電后,必須進(jìn)行初始 化操作。初始化后就可以按正常方法調(diào)整時(shí)間。 (3 3) 結(jié)論結(jié)論 DS1302 存在時(shí)鐘精度不高,易受環(huán)境影響,出現(xiàn)時(shí)鐘混亂等缺點(diǎn)。DS1302 可以用于數(shù)據(jù)記 錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間

33、同時(shí)記錄。 這種記錄對(duì)長時(shí)間的連續(xù)測(cè)控系統(tǒng)結(jié)果的分析及對(duì)異常數(shù)據(jù)出現(xiàn)的原因的查找具有重要意義。 傳統(tǒng)的數(shù)據(jù)記錄方式是隔時(shí)采樣或定時(shí)采樣,沒有具體的時(shí)間記錄,因此,只能記錄數(shù)據(jù)而無 法準(zhǔn)確記錄其出現(xiàn)的時(shí)間;若采用單片機(jī)計(jì)時(shí),一方面需要采用計(jì)數(shù)器,占用硬件資源,另一 方面需要設(shè)置中斷、查詢等,同樣耗費(fèi)單片機(jī)的資源,而且,某些測(cè)控系統(tǒng)可能不允許。但是, 如果在系統(tǒng)中采用時(shí)鐘芯片 DS1302,則能很好地解決這個(gè)問題。 (1)(1) 時(shí)鐘芯片時(shí)鐘芯片 DS1302DS1302 的工作原理的工作原理 DS1302 在每次進(jìn)行讀、寫程序前都必須初始化,先把 SCLK 端置 “0” ,接著把 RST 端置

34、“1” ,最后才給予 SCLK 脈沖;讀/寫時(shí)序如下圖 4 所示。圖 5 為 DS1302 的控制字,此控制字的 位 7 必須置 1,若為 0 則不能把對(duì) DS1302 進(jìn)行讀寫數(shù)據(jù)。對(duì)于位 6,若對(duì)程序進(jìn)行讀/寫時(shí) RAM=1,對(duì)時(shí)間進(jìn)行讀/寫時(shí),CK=0。位 1 至位 5 指操作單元的地址。位 0 是讀/寫操作位,進(jìn)行 讀操作時(shí),該位為 1;該位為 0 則表示進(jìn)行的是寫操作??刂谱止?jié)總是從最低位開始輸入/輸出 的。表 6 為 DS1302 的日歷、時(shí)間寄存器內(nèi)容:“CH”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為 1 時(shí),時(shí)鐘 振蕩器停止,DS1302 處于低功耗狀態(tài);當(dāng)該位為 0 時(shí),時(shí)鐘開始運(yùn)行。 “

35、WP” 是寫保護(hù)位,在任何的對(duì)時(shí)鐘和 RAM 的寫操作之前,WP 必須為 0。當(dāng)“WP”為 1 時(shí),寫保 護(hù)位防止對(duì)任一寄存器的寫操作。 (2)(2) DS1302DS1302 的控制字節(jié)的控制字節(jié) DS1302 的控制字如表 2-1 所示??刂谱止?jié)的高有效位(位 7)必須是邏輯 1,如果它為 0, 則不能把數(shù)據(jù)寫入 DS1302 中,位 6 如果 0,則表示存取日歷時(shí)鐘數(shù)據(jù),為 1 表示存取 RAM 數(shù)據(jù); 位 5 至位 1 指示操作單元的地址;最低有效位(位 0)如為 0 表示要進(jìn)行寫操作,為 1 表示進(jìn)行 讀操作,控制字節(jié)總是從最低位開始輸出 RAM RD 1 A4 A3 A2 A1 A

36、0 / CK /WR 表 2-1 DS1302 的控制字格式 (3)(3) 數(shù)據(jù)輸入輸出(數(shù)據(jù)輸入輸出(I/OI/O) 在控制指令字輸入后的下一個(gè) SCLK 時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入 DS1302,數(shù)據(jù)輸入從低位 即位 0 開始。同樣,在緊跟 8 位的控制指令字后的下一個(gè) SCLK 脈沖的下降沿讀出 DS1302 的數(shù) 據(jù),讀出數(shù)據(jù)時(shí)從低位 0 位到高位 7。如下圖 2-2 所示 圖 2-2 DS1302 讀/寫時(shí)序圖 (4)(4) DS1302DS1302 的寄存器的寄存器 DS1302 有 12 個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形 式,其日歷、時(shí)

37、間寄存器及其控制字見表 2-2。 表 2-2 DS1302 的日歷、時(shí)間寄存器 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與 RAM 相關(guān) 的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302 與 RAM 相關(guān)的寄存器分為兩類:一類是單個(gè) RAM 單元,共 31 個(gè),每個(gè)單元組態(tài)為一個(gè) 8 位的字 節(jié),其命令控制字為 C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的 RAM 寄存器,此方式下可一次性讀寫所有的 RAM 的 31 個(gè)字節(jié),命令控制字為 FEH(寫)、FFH(讀)。 圖 2-3 示出 DS130

38、2 的引腳排列,其中 Vcc1 為后備電源,Vcc2 為主電源。在主電源關(guān)閉的 情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302 由 Vcc1 或 Vcc2 兩者中的較大者供電。當(dāng) Vcc2 大于 Vcc1+0.2V 時(shí),Vcc2 給 DS1302 供電。當(dāng) Vcc2 小于 Vcc1 時(shí),DS1302 由 Vcc1 供電。X1 和 X2 是 振蕩源,外接 32.KHz 晶振。RST 是復(fù)位/片選線,通過把 RST 輸入驅(qū)動(dòng)置高電平來啟動(dòng)所 有的數(shù)據(jù)傳送。RST 輸入有兩種功能:首先,RST 接通控制邏輯,允許地址/命令序列送入移位 寄存器;其次,RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng) R

39、ST 為高電平時(shí),所有的數(shù)據(jù) 傳送被初始化,允許對(duì) DS1302 進(jìn)行操作。如果在傳送過程中 RSTS 置為低電平,則會(huì)終止此次 數(shù)據(jù)傳送,I/O 引腳變?yōu)楦咦钁B(tài)。上電動(dòng)行時(shí),在 Vcc 大于等于 2.5V 之前,RST 必須保持低電 平。中有在 SCLK 為低電平時(shí),才能將 RST 置為高電平,I/O 為串行數(shù)據(jù)輸入端(雙向) 。SCLK 始終是輸入端。 圖 2-3 DS1302 的引腳圖 2.2.32.2.3 溫度采集模塊溫度采集模塊 采用數(shù)字式溫度傳感器 DS18B20,它是數(shù)字式溫度傳感器,具有測(cè)量精度高,電路連接簡(jiǎn)單 特點(diǎn),此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用0.7 與 DS

40、18B20 的 I/O 口連接加一個(gè) 上拉電阻,Vcc 接電源,Vss 接地,如圖 2-4 所示。 圖 2-4 DS18B20 溫度采集 2.2.42.2.4 顯示模塊顯示模塊 (1 1)簡(jiǎn)述:)簡(jiǎn)述: LED 單元模塊,由集成有多行、多列的發(fā)光二極管四邊形模塊構(gòu)成,所述的四邊形模塊至少 一邊為帶有一組以上凹凸槽塊的邊緣。所述的四邊形模塊至少可有一組對(duì)邊兩壁均帶有一組以 上凹凸槽塊,其中,兩對(duì)邊凹凸槽塊可呈對(duì)應(yīng)狀,亦可呈對(duì)稱狀。所述的四邊形模塊的主視面 上可帶有用于模糊模塊拼接界限的裝飾結(jié)構(gòu)。 如 LCD1602 液晶芯片 主要技術(shù)參數(shù): 顯示容量162 字符 芯片工作電壓4.55.5V 工作

41、電流 2.0mA(5.0V) 模塊最佳工作電壓 5.0V 字符尺寸 2.954.35(WH)mm 表 2-3 1602 液晶技術(shù)參數(shù) 接口信號(hào)說明: 編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明 1VSS 電源地 9D2DateI/0 2VDD 電源正極 10D3DateI/0 3VL 液晶顯示偏壓信號(hào) 11D4DateI/0 4RS 數(shù)據(jù)/命令選擇端(H/L) 12D5DateI/0 5R/W 讀/寫選擇端(H/L) 13D6DateI/0 6E 使能信號(hào) 14D7DateI/0 7D0DateI/015BLA 背光源正極 8D1DateI/016BLK 背光源負(fù)極 表 2-4 1602 引腳說明 控制

42、器接口說明 基本操作時(shí)序: 讀狀態(tài): 輸入: RS=L,RW=H,E=H 輸出: D0D7=狀態(tài)字 寫指令: 輸入: RS=L,RW=L, D0D7 指令碼,E= 高脈沖 輸出:無 讀數(shù)據(jù): 輸入: RS=H,RW=H,E=H 輸出: D0D7=數(shù)據(jù) 寫數(shù)據(jù): 輸入: RS=H,RW=L,D0D7=數(shù)據(jù),E= 高脈沖 輸出: 無 狀態(tài)字說明 STA7 D7 STA6 D6 STA5 D5 STA4 D4 STA3 D3 STA2 D2 STA1 D1 STA0 D0 表 2-5 各狀態(tài)字說明 STA0-6 當(dāng)前數(shù)據(jù)地址指針的數(shù)值 STA7 讀寫操作使能1: 禁止 0: 允許 表 2-6 STA

43、 0-7 狀態(tài)字說明 注:對(duì)控制器每次進(jìn)行讀寫操作之前,都必須進(jìn)行讀寫檢測(cè),確保 STA 為 0 指令說明 初始化設(shè)置 顯示模式設(shè)置 指令碼功能 00111000 設(shè)置 162 顯示,57 點(diǎn)陣,8 位數(shù)據(jù)接口 表 2-7 顯示模式 顯示開/關(guān)及光標(biāo)出設(shè)置 指令碼功能 00001DCB D=1 開顯示;D=0 關(guān)顯示 C=1 顯示光標(biāo); C=0 不顯示光 標(biāo) B=1 光標(biāo)閃爍; B=0 光標(biāo)不顯 示 000001NS N=1 當(dāng)讀或?qū)懸粋€(gè)字符后地址 指針加一,且光標(biāo)加一 N=0 當(dāng)讀或?qū)懸粋€(gè)字符后地址 指針減一,且光標(biāo)減一 S=1 當(dāng)寫一個(gè)字符,整屏顯示左 移(N=1)或右移(N=0),以得到

44、光 標(biāo)不移動(dòng)而屏幕移動(dòng)的效果 S=0 當(dāng)寫一個(gè)字符,整屏顯示不 移動(dòng) 表 2-8 顯示開/關(guān)及光標(biāo) 數(shù)據(jù)指針設(shè)置 指令碼功能 80H+地址碼(0-27H,40H-67H)設(shè)置數(shù)據(jù)地址指針 表 2-9 數(shù)據(jù)指針 如圖 2-5 所示,采用動(dòng)態(tài)掃描顯示,由個(gè)數(shù)碼管,3-8 譯碼器 74LS138 接 1K 限流電阻, 再接 8550 三極管接到共陽數(shù)碼管的 CoM 端作為選通位碼,每位選擇相應(yīng)的列。74ls47 接 240 限流電阻,再接共行的 LED 數(shù)碼管的斷碼。 圖 2-5 LED 動(dòng)態(tài)掃描顯示 2.32.3 電子萬年歷電路設(shè)計(jì)電子萬年歷電路設(shè)計(jì) 2.3.12.3.1 系統(tǒng)電路圖系統(tǒng)電路圖 圖

45、 2-5 系統(tǒng)電路圖 2.3.22.3.2 電路圖分析電路圖分析 本電路是由 AT89S52 單片機(jī)為控制核心,具有在線編程功能,低功耗,能在 3V 超低壓工作; 時(shí)鐘電路由 DS1302 提供,它是一種高性能、低功耗、帶 RAM 的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、 日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為 2.5V5.5V。采用三線接口 與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或 RAM 數(shù)據(jù)。DS1302 內(nèi) 部有一個(gè) 31*8 的用于臨時(shí)性存放數(shù)據(jù)的 RAM 寄存器??僧a(chǎn)生年、月、日、周日、時(shí)、分、秒, 具有使用壽命長,精度高和低功耗等特點(diǎn),同

46、時(shí)具有掉電自動(dòng)保存功能;溫度的采集由 DS18B20 構(gòu)成;顯示部份由個(gè)數(shù)碼管,74ls138、74ls47 譯碼器構(gòu)成。使用動(dòng)態(tài)掃描顯示方式對(duì)數(shù)字 的顯示 AT89S52 單片機(jī)為 40 引腳雙列直插芯片,有四個(gè) I/O 口 P0,P1,P2,P3, MCS-51 單片機(jī)共有 4 個(gè) 8 位的 I/O 口(P0、P1、P2、P3) ,每一條 I/O 線都能獨(dú)立地作輸出或輸入。18 引腳和 19 引 腳接時(shí)鐘電路,XTAL1 接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2 接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出.第 9 引腳為復(fù)位輸入端, 接上

47、電容,電阻及開關(guān)后夠上電復(fù)位電路,20 引腳為接地端,40 引腳為電源端。 其中 Vcc1 為后備電源,Vcc2 為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。 DS1302 由 Vcc1 或 Vcc2 兩者中的較大者供電。當(dāng) Vcc2 大于 Vcc1+0.2V 時(shí),Vcc2 給 DS1302 供電。 當(dāng) Vcc2 小于 Vcc1 時(shí),DS1302 由 Vcc1 供電。X1 和 X2 是振蕩源,外接 32.KHz 晶振。RST 是復(fù)位/片選線,通過把 RST 輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST 輸入有兩種功能: 首先,RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;

48、其次,RST 提供終止單字節(jié)或 多字節(jié)數(shù)據(jù)的傳送手段。當(dāng) RST 為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì) DS1302 進(jìn)行操 作。如果在傳送過程中 RSTS 置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O 引腳變?yōu)楦咦钁B(tài)。上電 動(dòng)行時(shí),在 Vcc 大于等于 2.5V 之前,RST 必須保持低電平。中有在 SCLK 為低電平時(shí),才能將 RST 置為高電平,I/O 為串行數(shù)據(jù)輸入端(雙向) 。SCLK 始終是輸入端。 數(shù)字式溫度傳感器 DS18B20,具有測(cè)量精度高,電路連接簡(jiǎn)單特點(diǎn),此類傳感器僅需要一條 數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用0.7 與 DS18B20 的 I/O 口連接加一個(gè)上拉電阻,Vcc

49、 接電源,Vss 接 地。 動(dòng)態(tài)掃描顯示,由個(gè)數(shù)碼管,3-8 譯碼器 74LS138 接 1K 限流電阻,再接 8550 三極管接 到共陽數(shù)碼管的 CoM 端作為選通位碼,每位選擇相應(yīng)的列。74ls47 接 240 限流電阻,再接共行 的 LED 數(shù)碼管的斷碼。 三電子萬年歷軟件設(shè)計(jì)三電子萬年歷軟件設(shè)計(jì) 3.13.1 程序流程框圖程序流程框圖 3.1.13.1.1 總流程圖總流程圖 圖 3-1 總程序流程圖 3.1.23.1.2 陽歷程序流程圖陽歷程序流程圖 開始 初始化 讀、寫日期、時(shí)間和溫度 分離日期時(shí)間溫度顯示值 顯示子程序 農(nóng)歷自動(dòng)更新子程序 日期、時(shí)間修改子程序 閏月子程 返回 定時(shí)

50、鬧鈴子程序 圖3-2 計(jì)算陽歷程序流程圖 3.1.33.1.3 陰歷程序流程圖陰歷程序流程圖 圖 3-3 陰歷程序流程圖 3.1.43.1.4 時(shí)間調(diào)整程序流程圖時(shí)間調(diào)整程序流程圖 圖 3-4 時(shí)間調(diào)整程序流程圖 3.23.2 部分程序的設(shè)計(jì)部分程序的設(shè)計(jì) 3.2.13.2.1 DS18B20DS18B20 溫度子程序溫度子程序 CONFIG12 EQU 7FH TEMPH EQU 21H TEMPL EQU 20H REG2 EQU 22H REG3 EQU 23H REG4 EQU 24H DAT EQU P0.7 TOUTOU: LCALL CHUSHI LCALL RDTEMP MOV

51、 A,TEMPL ANL A,#B MOV TEMPL,A MOV A,TEMPH ANL A,#B ORL A,TEMPL SWAP A MOV 25H,A MOV A,25H MOV B,#64H DIV AB MOV A,B MOV B,#0AH DIV AB SWAP A ORL A,B MOV 10H,A RET CHUSHI: LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#4EH LCALL WRITE111 MOV A,#CONFIG12 LCALL WRITE111 RET RDTEMP: LCALL RESET MOV A,#0C

52、CH LCALL WRITE111 MOV A,#44H LCALL WRITE111 LCALL DL1MS LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#0BEH LCALL WRITE111 LCALL ERAD111 MOV TEMPL,A LCALL ERAD111 MOV TEMPH,A RET RESET: LA: SETB DAT MOV 52H,#200 LB: CLR DAT DJNZ 52H,LB SETB DAT MOV 52H,#30 LC: DJNZ 52H,LC CLR C ORL C,DAT JC LB MOV 58

53、H,#80 LD: ORL C,DAT JC LP DJNZ 58H,LD SJMP LA LP: MOV 52H,#250 LF: DJNZ 52H,LF RET WRITE111: MOV 53H,#8 W51HA: SETB DAT MOV 54H,#8 RRC A CLR DAT W52HA: DJNZ 54H,W52HA MOV DAT,C MOV 54H,#30 W53HA: DJNZ 54H,W53HA DJNZ 53H,W51HA SETB DAT RET ERAD111: CLR EA MOV 58H,#8 RD1A: CLR DAT MOV 54H,#6 NOP SETB

54、DAT RD2A: DJNZ 54H,RD2A MOV C,DAT RRC A MOV 55H,#30 RD3A: DJNZ 55H,RD3A DJNZ 58H,RD1A SETB DAT RET 3.2.23.2.2 讀、寫讀、寫 DS1302DS1302 子程序子程序 ;寫 1302 程序 WRITE: CLR SCLK NOP SETB RST NOP MOV A,32H MOV R4,#8 WRITE1: RRC A ;送地址給 1302 NOP NOP CLR SCLK NOP NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R

55、4,WRITE1 CLR SCLK NOP MOV A,31H MOV R4,#8 WRITE2: RRC A NOP ;送數(shù)據(jù)給 1302 CLR SCLK NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE2 CLR RST RET ;讀 1302 程序 READ: CLR SCLK NOP NOP SETB RST NOP MOV A,32H MOV R4,#8 READ1: RRC A ;送地址給 1302 NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP NOP CLR SCLK

56、 NOP NOP DJNZ R4,READ1 MOV R4,#8 READ2: CLR SCLK NOP ;從 1302 中讀 出數(shù)據(jù) NOP NOP MOV C,IO NOP NOP NOP NOP NOP RRC A NOP NOP NOP NOP SETB SCLK NOP DJNZ R4,READ2 MOV 31H,A CLR RST R 四四. . 指標(biāo)測(cè)指標(biāo)測(cè) 4.14.1 測(cè)試儀器測(cè)試儀器 序號(hào)名稱型號(hào) 1計(jì)算機(jī)機(jī) 2雙路直流穩(wěn)壓電源CA17303D 3V8 通用單片機(jī)仿真器V8/L 4數(shù)字萬用表FT212 4.4.硬件測(cè)試硬件測(cè)試 電子萬年歷的電路系統(tǒng)較大,對(duì)于焊接方面更是不可

57、輕視,龐大的電路系統(tǒng)中只要出 于一處的錯(cuò)誤,則會(huì)對(duì)檢測(cè)造成很大的不便,而且電路的交線較多,對(duì)于各種鋒利的引腳 要注意處理,否則會(huì)刺被帶有包皮的導(dǎo)線,則會(huì)對(duì)電路造成短路現(xiàn)象。 在本成電子萬年歷的設(shè)計(jì)調(diào)試中遇到了很多的問題。回想這些問題只要認(rèn)真多思考都 是可以避免的,以下為主要的問題: (1)LED 數(shù)碼管的斷碼錯(cuò)亂,原因出于沒有認(rèn)真看清a、b 、c 等引腳信息。 解決:重新排列 74LS47 的輸出端,相應(yīng)接入 LED 數(shù)碼管,即可解決出現(xiàn)在的斷碼或亂 碼。 (2)對(duì)萬年歷修改時(shí)間或日期時(shí),有時(shí) LED 數(shù)碼管被屏蔽掉,造成不亮現(xiàn)象。 解決:根據(jù)儀器的測(cè)試,發(fā)現(xiàn)電路的驅(qū)動(dòng)能力不足,最后在 DS1

58、302 時(shí)鐘芯片的 /CS、SCLK、RET 端接入 5.1K 的上拉電阻后,電路的驅(qū)動(dòng)能力才能滿足,即可解決不亮現(xiàn)象。 4.4.軟件測(cè)試軟件測(cè)試 電子成年歷是多功能的數(shù)字型,可以看當(dāng)前日期(陰、陽歷),時(shí)間,還有溫度的儀器。 電子成年歷功能很多,所以對(duì)于它的程序也較為復(fù)雜,所以在編寫程序和調(diào)試時(shí)出現(xiàn)了相對(duì) 較多的問題。最后經(jīng)過多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在 軟件的調(diào)試過程中主要遇到的問題如下: 1燒入程序后,LED 數(shù)碼管顯示閃動(dòng),而且亮度不均勻。 解決:首先對(duì)調(diào)用的延時(shí)進(jìn)行逐漸修改,可以解決顯示閃動(dòng)問題。其次,由于本作品 使作動(dòng)態(tài)掃描方式顯示的數(shù)字,動(dòng)態(tài)掃描很快

59、,人的肉眼是無法看出,但是調(diào)用的顯示程序 時(shí),如果不在反回時(shí)屏蔽掉最后的附值,則會(huì)出現(xiàn)很亮的現(xiàn)象,所以在顯示的后面加了屏 蔽子令,最后解決了此問題。 2修改時(shí)間、日期時(shí)沒有農(nóng)歷沒有自動(dòng)對(duì)應(yīng)上。 解決:把不相關(guān)的程序暫時(shí)屏蔽,地農(nóng)歷的子程序獨(dú)立調(diào)試,發(fā)現(xiàn)在調(diào)用農(nóng)歷自動(dòng)更 新時(shí),對(duì)十進(jìn)制和十六進(jìn)制處理不好,所以會(huì)造成錯(cuò)亂。最后把相應(yīng)的十進(jìn)制進(jìn)行修改, 使得可以與十六進(jìn)制對(duì)應(yīng),最后解決了此問題. 3加入溫度的程序后,進(jìn)行修改時(shí)間、日期時(shí)相應(yīng)的數(shù)碼管位沒有按要求閃動(dòng)。 解決:由于 DS18B20 是串行通信數(shù)據(jù),只用一個(gè)口線傳輸,在處理采集的模擬信號(hào) 時(shí)需要一定的時(shí)間,當(dāng)把萬年歷的程序相接入時(shí),會(huì)對(duì)延

60、時(shí)有很大的影響。所以在調(diào)用溫 度子程序時(shí),先關(guān)閉定時(shí)器 1 中斷允許,在溫度子程序反回時(shí)再打開定時(shí)器 1 中斷允許。 最終解決了此問題。 4 4.測(cè)試結(jié)果分析與結(jié)論測(cè)試結(jié)果分析與結(jié)論 4.4.14.4.1 測(cè)試結(jié)果分析測(cè)試結(jié)果分析 (1) 在測(cè)試中遇到發(fā)光二極管、LED 數(shù)碼管為不顯示時(shí),首先使用試測(cè)儀對(duì)電路進(jìn)行 測(cè)試,觀察是否存在漏焊,虛焊,或者元件損壞. (2) LED 數(shù)碼管顯示不正常,還有亮度不夠,首先使用試測(cè)儀對(duì)電路進(jìn)行測(cè)試,觀察 電路是否存在短路現(xiàn)象。查看燒寫的程序是否正確無誤,對(duì)程序進(jìn)行認(rèn)真修改。 4.4.24.4.2 測(cè)試結(jié)論測(cè)試結(jié)論 經(jīng)過多次的反復(fù)測(cè)試與分析,可以對(duì)電路的原理

溫馨提示

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

評(píng)論

0/150

提交評(píng)論