基于DS1302和51單片機的電子時鐘設(shè)計_第1頁
基于DS1302和51單片機的電子時鐘設(shè)計_第2頁
基于DS1302和51單片機的電子時鐘設(shè)計_第3頁
基于DS1302和51單片機的電子時鐘設(shè)計_第4頁
基于DS1302和51單片機的電子時鐘設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目目 錄錄 第一章 系統(tǒng)介紹 .2 1.1 電子鐘介紹.2 1.2 單片機 AT89C51 介紹.2 1.3 時鐘芯片 DS1302 簡介 .5 1.3.1 主要功能.5 1.3.2 內(nèi)部結(jié)構(gòu)及引腳功能.5 1.3.3 工作原理.6 1.3.4 控制字節(jié)及寄存器.6 1.3.5 時鐘/日歷存儲區(qū)(時分秒).7 1.3.6 數(shù)據(jù)的傳送.7 第二章 硬件設(shè)計 .8 2.1 系統(tǒng)結(jié)構(gòu)及總流程圖.8 2.2 系統(tǒng)硬件電路設(shè)計圖.9 2.2.1 整體電路設(shè)計.9 2.2.2 DS1302 電路設(shè)計.9 2.2.3 按鍵電路.10 2.2.4 顯示電路.10 第三章、程序源代碼 .11 3.1 程序流程圖

2、.11 3.1 源程序.12 第四章 PROTEUS 軟件仿真.18 總 結(jié) .19 謝 辭 .20 參考文獻(xiàn) .21 第一章第一章 系統(tǒng)介紹系統(tǒng)介紹 1.1 電子鐘介紹 電子鐘已成為人們?nèi)粘I钪械谋匦杵?,廣泛應(yīng)用于家庭、車站、辦公室等場所。鐘表數(shù)字化給 人們生產(chǎn)生活帶來了極大地方便而且大大地擴展了鐘表原先的報時功能諸如定時自動報警、按時自動 打鈴、時間程序自動控制、通斷動力設(shè)備、甚至各種定時電氣的自動啟用,因此研究數(shù)字鐘及擴大其 應(yīng)用有著非?,F(xiàn)實的意義。 數(shù)字電子鐘設(shè)計與制作可采用數(shù)字電路實現(xiàn),也可以采用單片機來完成。若用數(shù)字電路完成,所 設(shè)計的電路相當(dāng)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功

3、能也主要依賴于數(shù)字電路的各功能模塊的組 合來實現(xiàn),焊接的過程比較復(fù)雜,成本也非常高。若用單片機來設(shè)計制作完成,由于其功能的實現(xiàn)主 要通過軟件編程來完成,那么就降低了硬件電路的復(fù)雜性,而且其成本也有所降低。截止今日,單片 機應(yīng)用技術(shù)飛速發(fā)展,縱觀現(xiàn)在各個領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機上各種儀表的控制,從計算機 的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種 智能 IC 卡、電子寵物等,這些都離不開單片機。單片機即單片微型計算機(Single-Chip Microcomputer ),是集 CPU ,RAM ,ROM ,定時,計數(shù)和多種接口于一體的微控制器

4、。它體積小,成本 低,功能強,廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動化上。 同時,若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查 詢等,同樣耗費單片機的資源,而且,某些測控系統(tǒng)可能不允許。但是,如果在系統(tǒng)中采用時鐘芯片, 則能很好地解決這個問題?,F(xiàn)在流行的串行時鐘電路很多,如DS1302、DS1307、PCF8485 等。 這些電路的接口簡單、價格低廉、使用方便,被廣泛地采用。美國 Dallas 公司生產(chǎn)的串行實時時 鐘芯片 DS1302 是一種具有涓細(xì)電流充電能力的實時時鐘芯片,采用普通 32.768KHZ 晶振,具有實時 時鐘和 31 字節(jié)的靜態(tài) RAM。主要特點是采

5、用串行數(shù)據(jù)傳輸,可方便地與單片機接口,可為掉電保護(hù) 電源提供可編程的充電功能,并且可以關(guān)閉充電功能。 本設(shè)計要求利用 51 單片機和 DS1302 設(shè)計制作一個 LED 電子鐘,用 8 個 LED 顯示時間,當(dāng)按下 相應(yīng)按鍵時,修改當(dāng)前時間或鬧鈴時間,若當(dāng)前時間與鬧鈴時間相同,蜂鳴器發(fā)音 1 分鐘。 1.2 單片機 AT89C51 介紹 AT89C51 是一個低功耗,高性能 CMOS 8 位單片機,片內(nèi)含 8k Bytes ISP(In-system programmable)的可反復(fù)擦寫 1000 次的 Flash 只讀程序存儲器,器件采用 ATMEL 公司的高密度、非易 失性存儲技術(shù)制造,

6、兼容標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及 80C51 引腳結(jié)構(gòu),芯片內(nèi)集成了通用 8 位中央處理 器和 ISP Flash 存儲單元,功能強大的微型計算機的 AT89C51 可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性 價比的解決方案。 AT89C51 具有如下特點: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)時鐘振蕩器。 另外,AT89C51 可降至 0Hz 靜態(tài)邏輯操作,支

7、持 2 種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許 RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存, 振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。 芯片引腳功能芯片引腳功能 AT89C51 芯片 DIP 雙列直插式封裝引腳如圖 1-1 所示。 圖 1-1 AT89C51 引腳排列 P0 口:P0 口是一個 8 位漏極開路的雙向 I/O 口。作為輸出口,每位能驅(qū)動 8 個 TTL 邏輯電平。 對 P0 端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0 口也被作為低 8 位 地址/數(shù)據(jù)復(fù)用。在這種模式下,P0

8、 具有內(nèi)部上拉電阻。 P1 口:P1 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P1 輸出緩沖器能驅(qū)動 4 個 TTL 邏 輯電平。對 P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用 時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL) 。 引腳口第二功能如下: P1.0/T2(定時器/計數(shù)器 T2 的外部計數(shù)輸入) ,時鐘輸出 P1.1/T2EX(定時器/計數(shù)器 T2 的捕捉/重載觸發(fā)信號和方向控制) P1.5/MOSI(在系統(tǒng)編程用) P1.6/MISO(在系統(tǒng)編程用) P1.7/SCK(在系統(tǒng)編程用) P2 口:P2 口是一個具有內(nèi)部

9、上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動 4 個 TTL 邏輯 電平。對 P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時, 被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL) 。 在訪問外部程序存儲器或用 16 位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX DPTR)時,P2 口送 出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送 1。在使用 8 位地址(如 MOVX RI)訪 問外部數(shù)據(jù)存儲器時,P2 口輸出 P2 鎖存器的內(nèi)容。 P3 口:P3 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動

10、 4 個 TTL 邏輯 電平。對 P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時, 被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL) 。 P3 口亦作為 AT89C51 特殊功能(第二 功能)使用。 引腳口第二功能如下: P3.0/RXD(串行輸入口) P3.1/TXD(串行輸出口) P3.2/INTO(外中斷 0) P3.3/INT1(外中斷 1) P3.4/TO(定時/計數(shù)器 0) P3.5/T1(定時/計數(shù)器 1) P3.6/WR(外部數(shù)據(jù)存儲器寫選通) P3.7/RD(外部數(shù)據(jù)存儲器讀選通) 此外,P3 口還接收一些用于 FLASH 閃存編

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

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

13、S1302 簡介 1.3.1 主要功能 DS1302 是美國 DALLAS 公司推出的一種高性能、低功耗、帶 RAM 的實時時鐘電路,它可以對 年、月、日、周日、時、分、秒進(jìn)行計時,具有閏年補償功能,工作電壓為 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ì)電流充電的能力。 特性: 實時時鐘,可對秒、分、時、日、周、月

14、以及帶閏年補償?shù)哪赀M(jìn)行計數(shù) 用于高速數(shù)據(jù)暫存的 318 RAM 2 引腳的串行 I/O 2.5-5.5V 滿度工作范圍 用于時鐘或 RAM 數(shù)據(jù)讀寫的單字節(jié)或 多字節(jié)數(shù)據(jù)傳送 雙電源引腳 可選慢速充電至 VCC1 1.3.2 內(nèi)部結(jié)構(gòu)及引腳功能 DS1302 內(nèi)部主要包括實時時鐘(real time clock) 、輸入移位寄存器(input shift registers) 、 31 字節(jié)靜態(tài) RAM、電源控制部分(power control) 、命令控制邏輯(command and control logic) 、 振蕩器和分頻器(oscillator and divider)等部分。DS

15、1302 內(nèi)部結(jié)構(gòu)如圖 1-2 所示。 圖 1-2 DS1302 內(nèi)部結(jié)構(gòu) 圖 1-3 DS1302 引腳排列 DS1302 具有 8 腳 DIP 引腳排列如圖 1-3 所示。 Vcc1:后備電源,在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行;當(dāng) Vcc2 大于 Vcc10.2V 時,Vcc2 給 DS1302 供電。 Vcc2:主電源,當(dāng) Vcc2 小于 Vcc1 時,DS1302 由 Vcc1 供電。 X1、X2:振蕩源,外接 32.768kHz 晶振。 GND:接地端 SCLK:串行時鐘輸入端 I/O:串行數(shù)據(jù)輸入輸出端(雙向)。 RST:復(fù)位/片選線,通過把 RST 輸入驅(qū)動置高電平來

16、啟動所有的數(shù)據(jù)傳送。RST 輸入有兩種功能: 首先,RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST 提供終止單字節(jié)或多字節(jié) 數(shù)據(jù)的傳送手段。 1.3.3 工作原理 DS1302 工作時為了對任何數(shù)據(jù)傳送進(jìn)行初始化,需要將復(fù)位腳(RST)置為高電平且將 8 位地址 和命令信息裝入移位寄存器。數(shù)據(jù)在時鐘(SCLK)的上升沿串行輸入,前 8 位指定訪問地址。命令字 裝入移位寄存器后,在之后的時鐘周期,讀操作時輸出數(shù)據(jù),寫操作時輸入數(shù)據(jù)。時鐘脈沖的個數(shù)在 單字節(jié)方式下為 8+8(8 位地址+8 位數(shù)據(jù)) ,在多字節(jié)方式下最多可達(dá) 8+248。 1.3.4 控制字節(jié)及寄存器 DS1

17、302 的一次數(shù)據(jù)傳送是從發(fā)送控制字節(jié)開始的??刂谱止?jié)的最高有效位(位 7)必須是邏輯 1, 如果該位為 0,則無法把數(shù)據(jù)寫入到 DS1302 中;位 6 表示要讀寫的數(shù)據(jù)類型,為 0 表示存取日歷時鐘 數(shù)據(jù),為 1 表示存取 RAM 數(shù)據(jù);位 5 至位 1 指示要操作單元的地址;最低有效位(位 0)表示命令類型, 為 0 表示要進(jìn)行寫操作,為 1 表示要進(jìn)行讀操作。控制字節(jié)總是從最低位開始輸出。其控制字節(jié)格式 如圖 1-4 所示。 圖 1-4 控制字節(jié)格式 1.3.5 時鐘/日歷存儲區(qū)(時分秒) 1.3.6 數(shù)據(jù)的傳送 向 DS1302 寫入數(shù)據(jù)時,數(shù)據(jù)在控制字節(jié)輸入后的下一個 SCLK 周

18、期的上升沿被寫入,多余的 SCLK 將被忽略。數(shù)據(jù)寫入時從低位(位 0)開始;同樣,從 DS1302 讀取數(shù)據(jù)時,數(shù)據(jù)在緊跟控制字節(jié) 后的下一個 SCLK 的下降沿讀出,讀出數(shù)據(jù)時也是從低位(0 位)到高位(7 位),只要 RST 保持高電平, 額外的 SCLK 將導(dǎo)致數(shù)據(jù)字節(jié)的持續(xù)讀出,這個特性用于實現(xiàn)該芯片的突發(fā)讀模式。 對 DS1302 的每一次讀寫需 16 個時鐘脈沖,前 8 個脈沖輸入操作地址和讀寫命令,后 8 個脈沖寫 入或讀出數(shù)據(jù)。數(shù)據(jù)傳送時序如圖 1-5。 圖 1-5 數(shù)據(jù)讀寫時序圖 第二章第二章 硬件設(shè)計硬件設(shè)計 2.1 系統(tǒng)結(jié)構(gòu)及總流程圖 圖 3-1 系統(tǒng)總體結(jié)構(gòu) 根據(jù)軟件

19、功能要求,將系統(tǒng)軟件劃分為若干個相對獨立的部分,設(shè)計出合理的總體結(jié)構(gòu):時鐘顯 示是一個循環(huán)過程,系統(tǒng)以單片機 AT89S52 為主控制器,不斷讀取實時時鐘芯片 DS1302 提供的時間 送 LED 顯示,時間采用 24 小時模式;當(dāng)達(dá)到鬧鐘所設(shè)定時間時,控制蜂鳴器發(fā)聲一分鐘;當(dāng)需要調(diào) 整時間或鬧鐘時,按下相應(yīng)按鍵進(jìn)入中斷處理。整個系統(tǒng)的電源可由電池提供或者用 USB 電源線由電 腦提供。系統(tǒng)總體結(jié)構(gòu)如圖 3-1 所示。 單片機 AT89S52 數(shù)碼管顯示 實時時鐘芯 片 DS1302 電源電路 蜂鳴電 路 時 間 鬧 鐘 設(shè) 置 電 路 2.2 系統(tǒng)硬件電路設(shè)計圖 2.2.1 整體電路設(shè)計 將

20、 DS1302 時鐘芯片與單片機的 P1 口連接構(gòu)成系統(tǒng)的實時時鐘電路的部分;將鍵盤與單片機的 P1.4-P1.7 接口連接組成系統(tǒng)的按鍵電路,用來對顯示器的控制;LED 的段選端與單片機的 P0 口連接 構(gòu)成系統(tǒng)的顯示段選控制系統(tǒng);將位選與 P2 口連接使系統(tǒng)的位選較好。 2.2.2 DS1302 電路設(shè)計 DS1302 部分電路設(shè)計圖 將 DS1302 的 X1、X2 引腳分別與晶振相連,并通過兩個分立電容相連然后接地;將 VCC1、VCC2 相連然后接地,此部分構(gòu)成了 DS1302 芯片的供電電路。將 DS1302 的 RST 引腳接單片 機 P1.1 引腳作為 DS1302 的復(fù)位引腳

21、電路;將 DS1302 的 SLK 引腳單片機的 P1.2 引腳相連組成 DS1302 的時鐘端電路;將 DS1302 的 I/O 引腳與單片機的 P1.3 相連構(gòu)成 DS1302 的 I/O 端口的電路連 接圖。 2.2.3 按鍵電路 按鍵部分電路設(shè)計圖 將四個按鍵分別與單片機的 P1.4-P.7 相連組成系統(tǒng)的按鍵電路部分,P1.4 用來接 key1,此按鍵作 為切換鍵,P1.5 接口接 key2,此鍵作為加,P1.6 接口接 key3,此鍵最為系統(tǒng)減位, 2.2.4 顯示電路 系統(tǒng)顯示部分電路設(shè)計圖 將 LED 數(shù)碼顯示管的段選端與單片機的 P0 口相連,由于數(shù)碼管采用的是動態(tài)顯示,所以

22、通過對 P0 的 8 位二進(jìn)制數(shù)據(jù)的不斷改變使數(shù)碼顯示管不斷的動態(tài)顯示;將 LED 的位選端與單片機的 P2 口連 接使 LED 數(shù)碼顯示管不斷的到位選信號在與數(shù)選信號不斷的配合下顯示數(shù)時間數(shù)據(jù)。 第三章、程序源代碼第三章、程序源代碼 3.1 程序流程圖 圖為系統(tǒng)軟件系統(tǒng)流程圖,通過不斷的切換與循環(huán)實現(xiàn)系統(tǒng)循環(huán)計時 此圖為按鍵掃描軟件流程圖,通過軟件的不斷掃描信號,確認(rèn)按鍵的掃描情況。 3.1 源程序源程序 #include #define uchar unsigned char #define uint unsigned int sbit beep = P33 ; sbit RST = P1

23、1 ; sbit SCK = P12 ; sbit SDA = P13 ; sbit key1 = P14 ; sbit key2 = P15 ; sbit key3 = P16 ; sbit key4 = P17 ; uchar i,j,mod,flag,flag1=1 ; /uchar code write_addr7=0 x80,0 x82,0 x84,0 x86,0 x88,0 x 8a,0 x8c; /uchar code read_addr7=0 x81,0 x83,0 x85,0 x87,0 x89,0 x8 b,0 x8d; /共陽數(shù)碼管碼表,表示 0-9 和-。-表示時分秒

24、的間隔. uchar code LED11 = 0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x 80,0 x90, ; uchar disbuf8 = 0 x62,0 xa2,0 xf7,0 x7a,0 x28,0 xf7,0 x7e,0 x7e ;/定義時間日期的結(jié)構(gòu)類型 struct time uchar second ; uchar minute ; uchar hour ; uchar week ; uchar day ; uchar month ; uchar year ; current_time ; #define ctim

25、e current_time/定義鬧鐘的時分 秒變量 uchar asec,amin,ahour ; void delay(uint ms) uchar i ; while(ms-) for(i=135;i0;i-); /滴一聲,用來按鍵伴音 void di() uchar i ; for(i=0;i0; i-) di(); delay(140); /DS1302 的寫驅(qū)動,傳入?yún)?shù)為一個地址和數(shù) 據(jù) void write(uchar addr,uchar dat) uchar i ; RST = 0 ; SCK = 0 ; RST = 1 ; for(i=0;i=1 ; SCK = 1 ;

26、for(i=0;i= 1 ; SCK = 1 ; RST = 0 ; /DS1302 的讀驅(qū)動,傳入?yún)?shù)為一個地址,返回 參數(shù)為讀到的數(shù)據(jù) uchar read(uchar addr) uchar i,dat ; RST = 0 ; SCK = 0 ; RST = 1 ; for(i=0;i=1 ; SCK = 1 ; for(i=0;i=1 ; if(SDA) dat|=0 x80 ; SCK=1 ; RST=0 ; dat=(dat/16*10)+(dat return dat ; /讀取 DS1302 的時間和日期 void read_time() ctime.second = read

27、(0 x81); ctime.minute = read(0 x83); ctime.hour = read(0 x85); ctime.day = read(0 x87); ctime.month = read(0 x89); ctime.week = read(0 x8b); ctime.year = read(0 x8d); /設(shè)定時間和日期 void set_time() if(!flag) write(0 x8e,0 x00); write(0 x80,(ctime.second/10)4|(ctime.se cond%10); write(0 x82,(ctime.minute/1

28、0)4|(ctime.mi nute%10); write(0 x84,(ctime.hour/10)4|(ctime.hour%1 0); write(0 x8e,0 x80); else write(0 x8e,0 x00); write(0 x86,(ctime.day/10)4|(ctime.day%1 0); write(0 x88,(ctime.month/10)4|(ctime.mon th%10); write(0 x8a,(ctime.week/10)4|(ctime.week%1 0); write(0 x8c,(ctime.year/10)i); P0=disbufi;

29、i+; /3msx8x20,大約 480ms 從 DS1302 芯片讀 取一下時間 if(j=20) j=0 ; refbuf(); if(mod=0) read_time(); 第四章第四章 Proteus 軟件仿真軟件仿真 仿真顯示 用 Keil 軟件編譯程序生成可執(zhí)行文件.hex 文件后,在 Proteus 文件中在單片機里加入 Keil 軟件中 生成的 hex 文件,然后仿真測試 3-1-1 顯示時分秒 Hex 文件燒入到單片機中后看到數(shù)碼管顯示的效果為 時時分分秒秒的樣式,剛開始時數(shù)碼管顯示 有亂碼的現(xiàn)象,此現(xiàn)象為系統(tǒng)剛上電后系統(tǒng)初始化閃動的現(xiàn)象,大約過了 1 秒鐘后系統(tǒng)便正常工作,

30、 顯示格式為課程設(shè)計要求的格式。對于系統(tǒng)的按鍵部分,當(dāng)調(diào)節(jié)各個按鍵,數(shù)碼顯示管對應(yīng)的數(shù)碼位 處于閃爍狀態(tài),然后進(jìn)入可調(diào)整階段,可以對系統(tǒng)的時間顯示部分進(jìn)行調(diào)整。系統(tǒng)的電路及顯示效果 均到達(dá)設(shè)計要求 總總 結(jié)結(jié) 本設(shè)計利用單片機 AT89C51 控制串行實時時鐘芯 DS1302 構(gòu)成數(shù)字時鐘電路,實現(xiàn)計時功能。 該電路使用簡單的三線接口,為單片機節(jié)省大量的接口資源,時鐘芯片帶有后備電池。該時鐘功能強 大,性能優(yōu)越,能為很多領(lǐng)域,特別是對時鐘工作的準(zhǔn)確性和可靠性有較高要求。 軟件完成后,把偉福編譯后的文件通過燒錄器下載到 AT89S52 芯片,加上電源就可以進(jìn)行調(diào)試。 各程序模塊具有一定的獨立性,

31、因此可以先調(diào)試模塊,在模塊功能都能實現(xiàn)的前提下,再調(diào)試總 程序,這樣能快捷地檢查判斷硬件或軟件上的問題。調(diào)試結(jié)果及解決辦法如下: 測試顯示模塊時,數(shù)碼顯示管全亮顯示“8.8.8.8.8.8.8.8.”而不是預(yù)設(shè)的初值。利用 Proteus 軟件仿真, 發(fā)現(xiàn)仿真時顯示正常,再檢查硬件,發(fā)現(xiàn)段碼位選線與 P0 口接線錯誤。按原理圖重新焊接后,能正 常顯示。 測試 DS 讀寫模塊時,從 LED 顯示表明能正確寫入與讀取當(dāng)前時間,但 DS1302 的工作情況不太 理想,主要表現(xiàn)在實時時間稍微偏快。 DS1302 時鐘的產(chǎn)生基于外接的晶體振蕩器,振蕩器的頻率為 32768HZ,該晶振通過引腳 X1、X2 直接連

溫馨提示

  • 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

提交評論