版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目目 錄錄 第一章 系統(tǒng)介紹 .2 1.1 電子鐘介紹.2 1.2 單片機(jī) AT89C51 介紹.2 1.3 時(shí)鐘芯片 DS1302 簡(jiǎn)介 .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 時(shí)鐘/日歷存儲(chǔ)區(qū)(時(shí)分秒).7 1.3.6 數(shù)據(jù)的傳送.7 第二章 硬件設(shè)計(jì) .8 2.1 系統(tǒng)結(jié)構(gòu)及總流程圖.8 2.2 系統(tǒng)硬件電路設(shè)計(jì)圖.9 2.2.1 整體電路設(shè)計(jì).9 2.2.2 DS1302 電路設(shè)計(jì).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钪械谋匦杵罚瑥V泛應(yīng)用于家庭、車站、辦公室等場(chǎng)所。鐘表數(shù)字化給 人們生產(chǎn)生活帶來(lái)了極大地方便而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng) 打鈴、時(shí)間程序自動(dòng)控制、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用,因此研究數(shù)字鐘及擴(kuò)大其 應(yīng)用有著非?,F(xiàn)實(shí)的意義。 數(shù)字電子鐘設(shè)計(jì)與制作可采用數(shù)字電路實(shí)現(xiàn),也可以采用單片機(jī)來(lái)完成。若用數(shù)字電路完成,所 設(shè)計(jì)的電路相當(dāng)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功
3、能也主要依賴于數(shù)字電路的各功能模塊的組 合來(lái)實(shí)現(xiàn),焊接的過(guò)程比較復(fù)雜,成本也非常高。若用單片機(jī)來(lái)設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主 要通過(guò)軟件編程來(lái)完成,那么就降低了硬件電路的復(fù)雜性,而且其成本也有所降低。截止今日,單片 機(jī)應(yīng)用技術(shù)飛速發(fā)展,縱觀現(xiàn)在各個(gè)領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機(jī)上各種儀表的控制,從計(jì)算機(jī) 的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種 智能 IC 卡、電子寵物等,這些都離不開(kāi)單片機(jī)。單片機(jī)即單片微型計(jì)算機(jī)(Single-Chip Microcomputer ),是集 CPU ,RAM ,ROM ,定時(shí),計(jì)數(shù)和多種接口于一體的微控制器
4、。它體積小,成本 低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。 同時(shí),若采用單片機(jī)計(jì)時(shí),一方面需要采用計(jì)數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查 詢等,同樣耗費(fèi)單片機(jī)的資源,而且,某些測(cè)控系統(tǒng)可能不允許。但是,如果在系統(tǒng)中采用時(shí)鐘芯片, 則能很好地解決這個(gè)問(wèn)題。現(xiàn)在流行的串行時(shí)鐘電路很多,如DS1302、DS1307、PCF8485 等。 這些電路的接口簡(jiǎn)單、價(jià)格低廉、使用方便,被廣泛地采用。美國(guó) Dallas 公司生產(chǎn)的串行實(shí)時(shí)時(shí) 鐘芯片 DS1302 是一種具有涓細(xì)電流充電能力的實(shí)時(shí)時(shí)鐘芯片,采用普通 32.768KHZ 晶振,具有實(shí)時(shí) 時(shí)鐘和 31 字節(jié)的靜態(tài) RAM。主要特點(diǎn)是采
5、用串行數(shù)據(jù)傳輸,可方便地與單片機(jī)接口,可為掉電保護(hù) 電源提供可編程的充電功能,并且可以關(guān)閉充電功能。 本設(shè)計(jì)要求利用 51 單片機(jī)和 DS1302 設(shè)計(jì)制作一個(gè) LED 電子鐘,用 8 個(gè) LED 顯示時(shí)間,當(dāng)按下 相應(yīng)按鍵時(shí),修改當(dāng)前時(shí)間或鬧鈴時(shí)間,若當(dāng)前時(shí)間與鬧鈴時(shí)間相同,蜂鳴器發(fā)音 1 分鐘。 1.2 單片機(jī) AT89C51 介紹 AT89C51 是一個(gè)低功耗,高性能 CMOS 8 位單片機(jī),片內(nèi)含 8k Bytes ISP(In-system programmable)的可反復(fù)擦寫 1000 次的 Flash 只讀程序存儲(chǔ)器,器件采用 ATMEL 公司的高密度、非易 失性存儲(chǔ)技術(shù)制造,
6、兼容標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及 80C51 引腳結(jié)構(gòu),芯片內(nèi)集成了通用 8 位中央處理 器和 ISP Flash 存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的 AT89C51 可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性 價(jià)比的解決方案。 AT89C51 具有如下特點(diǎn):40 個(gè)引腳,8k Bytes Flash 片內(nèi)程序存儲(chǔ)器,256 bytes 的隨機(jī)存取數(shù) 據(jù)存儲(chǔ)器(RAM) ,32 個(gè)外部雙向輸入/輸出(I/O)口,5 個(gè)中斷優(yōu)先級(jí) 2 層中斷嵌套中斷,2 個(gè) 16 位 可編程定時(shí)計(jì)數(shù)器,2 個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。 另外,AT89C51 可降至 0Hz 靜態(tài)邏輯操作,支
7、持 2 種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存, 振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 芯片引腳功能芯片引腳功能 AT89C51 芯片 DIP 雙列直插式封裝引腳如圖 1-1 所示。 圖 1-1 AT89C51 引腳排列 P0 口:P0 口是一個(gè) 8 位漏極開(kāi)路的雙向 I/O 口。作為輸出口,每位能驅(qū)動(dòng) 8 個(gè) TTL 邏輯電平。 對(duì) P0 端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0 口也被作為低 8 位 地址/數(shù)據(jù)復(fù)用。在這種模式下,P0
8、 具有內(nèi)部上拉電阻。 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/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)部
9、上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯 電平。對(duì) P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí), 被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL) 。 在訪問(wèn)外部程序存儲(chǔ)器或用 16 位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行 MOVX DPTR)時(shí),P2 口送 出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送 1。在使用 8 位地址(如 MOVX RI)訪 問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口輸出 P2 鎖存器的內(nèi)容。 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)
10、 4 個(gè) TTL 邏輯 電平。對(duì) P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí), 被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL) 。 P3 口亦作為 AT89C51 特殊功能(第二 功能)使用。 引腳口第二功能如下: 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 閃存編
11、程和程序校驗(yàn)的控制信號(hào)。 RST復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST 引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。 ALE/PROG當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地 址的低 8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的 1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸 出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè) ALE 脈沖。 如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的 8EH 單元的 D0 位置位,可禁止 ALE 操作。該 位置位后,只有一條 MOVX 和 MOVC 指令才能將 ALE 激活。此外,該引腳會(huì)被微弱拉高,
12、單片機(jī)執(zhí)行外 部程序時(shí),應(yīng)設(shè)置 ALE 禁止位無(wú)效。 PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng) AT89C52 由外部程序存 儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次 PSEN 有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù) 據(jù)存儲(chǔ)器,將跳過(guò)兩次 PSEN 信號(hào)。 EA/VPP外部訪問(wèn)允許,欲使 CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為 0000H-FFFFH) ,EA 端必須保 持低電平(接地) 。需注意的是:如果加密位 LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存 EA 端狀態(tài)。 如 EA 端為高電平(接 Vcc 端) ,CPU 則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。 1.3 時(shí)鐘芯片 D
13、S1302 簡(jiǎn)介 1.3.1 主要功能 DS1302 是美國(guó) 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)品,與 DS1202 兼容,但增加了主電源/后備電源雙電源引腳,同時(shí)提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。 特性: 實(shí)時(shí)時(shí)鐘,可對(duì)秒、分、時(shí)、日、周、月
14、以及帶閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù) 用于高速數(shù)據(jù)暫存的 318 RAM 2 引腳的串行 I/O 2.5-5.5V 滿度工作范圍 用于時(shí)鐘或 RAM 數(shù)據(jù)讀寫的單字節(jié)或 多字節(jié)數(shù)據(jù)傳送 雙電源引腳 可選慢速充電至 VCC1 1.3.2 內(nèi)部結(jié)構(gòu)及引腳功能 DS1302 內(nèi)部主要包括實(shí)時(shí)時(shí)鐘(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)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行;當(dāng) Vcc2 大于 Vcc10.2V 時(shí),Vcc2 給 DS1302 供電。 Vcc2:主電源,當(dāng) Vcc2 小于 Vcc1 時(shí),DS1302 由 Vcc1 供電。 X1、X2:振蕩源,外接 32.768kHz 晶振。 GND:接地端 SCLK:串行時(shí)鐘輸入端 I/O:串行數(shù)據(jù)輸入輸出端(雙向)。 RST:復(fù)位/片選線,通過(guò)把 RST 輸入驅(qū)動(dòng)置高電平來(lái)
16、啟動(dòng)所有的數(shù)據(jù)傳送。RST 輸入有兩種功能: 首先,RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST 提供終止單字節(jié)或多字節(jié) 數(shù)據(jù)的傳送手段。 1.3.3 工作原理 DS1302 工作時(shí)為了對(duì)任何數(shù)據(jù)傳送進(jìn)行初始化,需要將復(fù)位腳(RST)置為高電平且將 8 位地址 和命令信息裝入移位寄存器。數(shù)據(jù)在時(shí)鐘(SCLK)的上升沿串行輸入,前 8 位指定訪問(wèn)地址。命令字 裝入移位寄存器后,在之后的時(shí)鐘周期,讀操作時(shí)輸出數(shù)據(jù),寫操作時(shí)輸入數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在 單字節(jié)方式下為 8+8(8 位地址+8 位數(shù)據(jù)) ,在多字節(jié)方式下最多可達(dá) 8+248。 1.3.4 控制字節(jié)及寄存器 DS1
17、302 的一次數(shù)據(jù)傳送是從發(fā)送控制字節(jié)開(kāi)始的??刂谱止?jié)的最高有效位(位 7)必須是邏輯 1, 如果該位為 0,則無(wú)法把數(shù)據(jù)寫入到 DS1302 中;位 6 表示要讀寫的數(shù)據(jù)類型,為 0 表示存取日歷時(shí)鐘 數(shù)據(jù),為 1 表示存取 RAM 數(shù)據(jù);位 5 至位 1 指示要操作單元的地址;最低有效位(位 0)表示命令類型, 為 0 表示要進(jìn)行寫操作,為 1 表示要進(jìn)行讀操作。控制字節(jié)總是從最低位開(kāi)始輸出。其控制字節(jié)格式 如圖 1-4 所示。 圖 1-4 控制字節(jié)格式 1.3.5 時(shí)鐘/日歷存儲(chǔ)區(qū)(時(shí)分秒) 1.3.6 數(shù)據(jù)的傳送 向 DS1302 寫入數(shù)據(jù)時(shí),數(shù)據(jù)在控制字節(jié)輸入后的下一個(gè) SCLK 周
18、期的上升沿被寫入,多余的 SCLK 將被忽略。數(shù)據(jù)寫入時(shí)從低位(位 0)開(kāi)始;同樣,從 DS1302 讀取數(shù)據(jù)時(shí),數(shù)據(jù)在緊跟控制字節(jié) 后的下一個(gè) SCLK 的下降沿讀出,讀出數(shù)據(jù)時(shí)也是從低位(0 位)到高位(7 位),只要 RST 保持高電平, 額外的 SCLK 將導(dǎo)致數(shù)據(jù)字節(jié)的持續(xù)讀出,這個(gè)特性用于實(shí)現(xiàn)該芯片的突發(fā)讀模式。 對(duì) DS1302 的每一次讀寫需 16 個(gè)時(shí)鐘脈沖,前 8 個(gè)脈沖輸入操作地址和讀寫命令,后 8 個(gè)脈沖寫 入或讀出數(shù)據(jù)。數(shù)據(jù)傳送時(shí)序如圖 1-5。 圖 1-5 數(shù)據(jù)讀寫時(shí)序圖 第二章第二章 硬件設(shè)計(jì)硬件設(shè)計(jì) 2.1 系統(tǒng)結(jié)構(gòu)及總流程圖 圖 3-1 系統(tǒng)總體結(jié)構(gòu) 根據(jù)軟件
19、功能要求,將系統(tǒng)軟件劃分為若干個(gè)相對(duì)獨(dú)立的部分,設(shè)計(jì)出合理的總體結(jié)構(gòu):時(shí)鐘顯 示是一個(gè)循環(huán)過(guò)程,系統(tǒng)以單片機(jī) AT89S52 為主控制器,不斷讀取實(shí)時(shí)時(shí)鐘芯片 DS1302 提供的時(shí)間 送 LED 顯示,時(shí)間采用 24 小時(shí)模式;當(dāng)達(dá)到鬧鐘所設(shè)定時(shí)間時(shí),控制蜂鳴器發(fā)聲一分鐘;當(dāng)需要調(diào) 整時(shí)間或鬧鐘時(shí),按下相應(yīng)按鍵進(jìn)入中斷處理。整個(gè)系統(tǒng)的電源可由電池提供或者用 USB 電源線由電 腦提供。系統(tǒng)總體結(jié)構(gòu)如圖 3-1 所示。 單片機(jī) AT89S52 數(shù)碼管顯示 實(shí)時(shí)時(shí)鐘芯 片 DS1302 電源電路 蜂鳴電 路 時(shí) 間 鬧 鐘 設(shè) 置 電 路 2.2 系統(tǒng)硬件電路設(shè)計(jì)圖 2.2.1 整體電路設(shè)計(jì) 將
20、 DS1302 時(shí)鐘芯片與單片機(jī)的 P1 口連接構(gòu)成系統(tǒng)的實(shí)時(shí)時(shí)鐘電路的部分;將鍵盤與單片機(jī)的 P1.4-P1.7 接口連接組成系統(tǒng)的按鍵電路,用來(lái)對(duì)顯示器的控制;LED 的段選端與單片機(jī)的 P0 口連接 構(gòu)成系統(tǒng)的顯示段選控制系統(tǒng);將位選與 P2 口連接使系統(tǒng)的位選較好。 2.2.2 DS1302 電路設(shè)計(jì) DS1302 部分電路設(shè)計(jì)圖 將 DS1302 的 X1、X2 引腳分別與晶振相連,并通過(guò)兩個(gè)分立電容相連然后接地;將 VCC1、VCC2 相連然后接地,此部分構(gòu)成了 DS1302 芯片的供電電路。將 DS1302 的 RST 引腳接單片 機(jī) P1.1 引腳作為 DS1302 的復(fù)位引腳
21、電路;將 DS1302 的 SLK 引腳單片機(jī)的 P1.2 引腳相連組成 DS1302 的時(shí)鐘端電路;將 DS1302 的 I/O 引腳與單片機(jī)的 P1.3 相連構(gòu)成 DS1302 的 I/O 端口的電路連 接圖。 2.2.3 按鍵電路 按鍵部分電路設(shè)計(jì)圖 將四個(gè)按鍵分別與單片機(jī)的 P1.4-P.7 相連組成系統(tǒng)的按鍵電路部分,P1.4 用來(lái)接 key1,此按鍵作 為切換鍵,P1.5 接口接 key2,此鍵作為加,P1.6 接口接 key3,此鍵最為系統(tǒng)減位, 2.2.4 顯示電路 系統(tǒng)顯示部分電路設(shè)計(jì)圖 將 LED 數(shù)碼顯示管的段選端與單片機(jī)的 P0 口相連,由于數(shù)碼管采用的是動(dòng)態(tài)顯示,所以
22、通過(guò)對(duì) P0 的 8 位二進(jìn)制數(shù)據(jù)的不斷改變使數(shù)碼顯示管不斷的動(dòng)態(tài)顯示;將 LED 的位選端與單片機(jī)的 P2 口連 接使 LED 數(shù)碼顯示管不斷的到位選信號(hào)在與數(shù)選信號(hào)不斷的配合下顯示數(shù)時(shí)間數(shù)據(jù)。 第三章、程序源代碼第三章、程序源代碼 3.1 程序流程圖 圖為系統(tǒng)軟件系統(tǒng)流程圖,通過(guò)不斷的切換與循環(huán)實(shí)現(xiàn)系統(tǒng)循環(huán)計(jì)時(shí) 此圖為按鍵掃描軟件流程圖,通過(guò)軟件的不斷掃描信號(hào),確認(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; /共陽(yáng)數(shù)碼管碼表,表示 0-9 和-。-表示時(shí)分秒
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 ;/定義時(shí)間日期的結(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/定義鬧鐘的時(shí)分 秒變量 uchar asec,amin,ahour ; void delay(uint ms) uchar i ; while(ms-) for(i=135;i0;i-); /滴一聲,用來(lái)按鍵伴音 void di() uchar i ; for(i=0;i0; i-) di(); delay(140); /DS1302 的寫驅(qū)動(dòng),傳入?yún)?shù)為一個(gè)地址和數(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ū)動(dòng),傳入?yún)?shù)為一個(gè)地址,返回 參數(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 的時(shí)間和日期 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è)定時(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 芯片讀 取一下時(shí)間 if(j=20) j=0 ; refbuf(); if(mod=0) read_time(); 第四章第四章 Proteus 軟件仿真軟件仿真 仿真顯示 用 Keil 軟件編譯程序生成可執(zhí)行文件.hex 文件后,在 Proteus 文件中在單片機(jī)里加入 Keil 軟件中 生成的 hex 文件,然后仿真測(cè)試 3-1-1 顯示時(shí)分秒 Hex 文件燒入到單片機(jī)中后看到數(shù)碼管顯示的效果為 時(shí)時(shí)分分秒秒的樣式,剛開(kāi)始時(shí)數(shù)碼管顯示 有亂碼的現(xiàn)象,此現(xiàn)象為系統(tǒng)剛上電后系統(tǒng)初始化閃動(dòng)的現(xiàn)象,大約過(guò)了 1 秒鐘后系統(tǒng)便正常工作,
30、 顯示格式為課程設(shè)計(jì)要求的格式。對(duì)于系統(tǒng)的按鍵部分,當(dāng)調(diào)節(jié)各個(gè)按鍵,數(shù)碼顯示管對(duì)應(yīng)的數(shù)碼位 處于閃爍狀態(tài),然后進(jìn)入可調(diào)整階段,可以對(duì)系統(tǒng)的時(shí)間顯示部分進(jìn)行調(diào)整。系統(tǒng)的電路及顯示效果 均到達(dá)設(shè)計(jì)要求 總總 結(jié)結(jié) 本設(shè)計(jì)利用單片機(jī) AT89C51 控制串行實(shí)時(shí)時(shí)鐘芯 DS1302 構(gòu)成數(shù)字時(shí)鐘電路,實(shí)現(xiàn)計(jì)時(shí)功能。 該電路使用簡(jiǎn)單的三線接口,為單片機(jī)節(jié)省大量的接口資源,時(shí)鐘芯片帶有后備電池。該時(shí)鐘功能強(qiáng) 大,性能優(yōu)越,能為很多領(lǐng)域,特別是對(duì)時(shí)鐘工作的準(zhǔn)確性和可靠性有較高要求。 軟件完成后,把偉福編譯后的文件通過(guò)燒錄器下載到 AT89S52 芯片,加上電源就可以進(jìn)行調(diào)試。 各程序模塊具有一定的獨(dú)立性,
31、因此可以先調(diào)試模塊,在模塊功能都能實(shí)現(xiàn)的前提下,再調(diào)試總 程序,這樣能快捷地檢查判斷硬件或軟件上的問(wèn)題。調(diào)試結(jié)果及解決辦法如下: 測(cè)試顯示模塊時(shí),數(shù)碼顯示管全亮顯示“8.8.8.8.8.8.8.8.”而不是預(yù)設(shè)的初值。利用 Proteus 軟件仿真, 發(fā)現(xiàn)仿真時(shí)顯示正常,再檢查硬件,發(fā)現(xiàn)段碼位選線與 P0 口接線錯(cuò)誤。按原理圖重新焊接后,能正 常顯示。 測(cè)試 DS 讀寫模塊時(shí),從 LED 顯示表明能正確寫入與讀取當(dāng)前時(shí)間,但 DS1302 的工作情況不太 理想,主要表現(xiàn)在實(shí)時(shí)時(shí)間稍微偏快。 DS1302 時(shí)鐘的產(chǎn)生基于外接的晶體振蕩器,振蕩器的頻率為 32768HZ,該晶振通過(guò)引腳 X1、X2 直接連
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電動(dòng)車噴漆培訓(xùn)課件模板
- 放療科護(hù)士培訓(xùn)課件內(nèi)容
- 被審計(jì)單位的性質(zhì)
- 2026年生物科技服務(wù)公司技術(shù)服務(wù)風(fēng)險(xiǎn)評(píng)估與防范管理制度
- 2026年生物科技服務(wù)公司倉(cāng)儲(chǔ)設(shè)備管理制度
- 2026年綠源環(huán)保袋生產(chǎn)公司稅務(wù)管理制度
- 蘭州中心培訓(xùn)
- 易制毒化學(xué)試劑培訓(xùn)課件
- 第21章++生命的起源和生物進(jìn)化(復(fù)習(xí)課件)生物新教材蘇教版八年級(jí)下冊(cè)
- 第3章+物質(zhì)的性質(zhì)與轉(zhuǎn)化(期末復(fù)習(xí)課件)高一化學(xué)上學(xué)期魯科版
- 安防監(jiān)控系統(tǒng)維護(hù)與管理方案
- 2025屆重慶八中學(xué)七上數(shù)學(xué)期末復(fù)習(xí)檢測(cè)模擬試題含解析
- 2025年廣東省中考語(yǔ)文試卷真題(含答案解析)
- 燙熨治療法講課件
- 2025至2030中國(guó)模塊化變電站行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 電廠清潔生產(chǎn)管理制度
- 2025年江蘇省事業(yè)單位招聘考試教師招聘體育學(xué)科專業(yè)知識(shí)試題
- 機(jī)械設(shè)計(jì)年終述職報(bào)告
- 可信數(shù)據(jù)空間解決方案星環(huán)科技
- 建筑工程監(jiān)理服務(wù)承諾書(shū)范文
- 知榮明恥主題班會(huì)課件
評(píng)論
0/150
提交評(píng)論