基于單片機(jī)的多功能電子萬年歷設(shè)計(jì)_第1頁
基于單片機(jī)的多功能電子萬年歷設(shè)計(jì)_第2頁
基于單片機(jī)的多功能電子萬年歷設(shè)計(jì)_第3頁
基于單片機(jī)的多功能電子萬年歷設(shè)計(jì)_第4頁
基于單片機(jī)的多功能電子萬年歷設(shè)計(jì)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、引言隨著生活節(jié)奏的日益加快, 人們的時(shí)間觀也越來越重, 同時(shí)對(duì)電子鐘表、 日歷的需求也隨之提高。 因此, 研究實(shí)用電子時(shí)鐘及其擴(kuò)展應(yīng)用, 有著非?,F(xiàn)實(shí)的意義, 具有很大的實(shí)用價(jià)值。本系統(tǒng)程序由主程序、 中斷服務(wù)函數(shù)和多個(gè)子函數(shù)構(gòu)成。 主函數(shù)主要完成各子函數(shù)和中斷函數(shù)的初始化。 定時(shí)中斷函數(shù)主要完成時(shí)鐘芯片的定時(shí)掃描及鍵盤掃描。 時(shí)鐘芯片的讀寫函數(shù)主要是將時(shí)間、日歷信息讀出來,并把要修改具體值寫入時(shí)鐘芯片內(nèi)部。系統(tǒng)的硬件設(shè)計(jì)與電路原理電路設(shè)計(jì)框圖系統(tǒng)硬件概述本電路是由 AT89S52 單片機(jī) 為控制核心,具有在線編程功能、低功耗、能在 3V 的超低壓工作。時(shí)鐘電路由 DS1302 提供,它是一種

2、高性能、低功耗、帶RAM 的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),工作電壓為 2.5V5.5V。采用三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM 數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31 X8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。可產(chǎn)生年、月、日、周日、時(shí)、分、秒,具有使用壽命長、精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能。主控制模塊單片機(jī)主控制模塊的設(shè)計(jì)AT89S52 單片機(jī)為 40 引腳雙列直插芯片,有四個(gè)I/O 口 P0 , P1 , P2 , P3 , MCS-51 單片機(jī)共有 4 個(gè) 8 位的 I/O 口( P0 、 P1 、

3、P2 、 P3 ),每一條I/O 線都能獨(dú)立地作輸出或輸入。時(shí)鐘電路模塊時(shí)鐘電路模塊的設(shè)計(jì)DS1302 的引腳排列如圖 3 所示,其中 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.768KHz 晶振。 RST 是復(fù)位/片選線,通過把RST 輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。 RST 輸入有兩種功能:首

4、先, RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次, RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。圖1整體電路框圖圖2主控制系統(tǒng)酢時(shí)鐘控制系統(tǒng)時(shí)鐘電路模塊工作原理DS1302在每次進(jìn)行讀、寫程序前都必須初始化, 先把SCLK端置“0”接著把RST端置“1,” 最后才給予SCLK脈沖;讀/寫時(shí)序如圖4所示。表1為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)行的是寫操作。

5、控制字節(jié)總是從最低位開始輸入/輸出的。表2為DS1302的日歷、時(shí)間寄存器 內(nèi)容:時(shí)鐘暫停標(biāo)志位,當(dāng)該位為 1時(shí), 時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開始運(yùn)行?!癢P是寫保護(hù)位,在任何的對(duì)時(shí)鐘和 RAM的寫操作之前, WP必須為0。當(dāng)“W1時(shí),寫保護(hù)位防 止對(duì)任一寄存器的寫操作。DS1302的控制字節(jié)DS1302的控制字如表1所示??刂谱止?jié)的高有效位(位 7)必須是邏輯1,如果它為0, 則不能把數(shù)據(jù)寫入 DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為 1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位 0)如為0表示要進(jìn)行寫操 作,為1表示

6、進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。數(shù)據(jù)輸入輸出(I/O) 在控制指令字輸入后的下一個(gè) SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302 ,數(shù)據(jù)輸入從低 位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè) SCLK脈沖的下降沿讀出 DS1302 的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位 。位到高位7。如圖4所示。表1的控制字格式1DS1302的寄存器DS1302有12個(gè)寄存器,其中有 7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD碼 形式,其日歷、時(shí)間寄存器及其控制字見表2。此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀

7、寫除充電寄存器外的所有寄存器內(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( t)。時(shí)鐘模塊實(shí)現(xiàn)功能 該模塊為系統(tǒng)提供精準(zhǔn)的秒、 分、時(shí)、日、月、年等實(shí)時(shí)時(shí)間信息, 星期則由編程計(jì)算得到。溫度采集模塊溫度采集模塊設(shè)計(jì)如圖5所示。采用數(shù)字式溫度傳感器DS18B20 ,它具有測量精度高,電路連接簡單特點(diǎn),此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用P 1.

8、7與DS18B20的I/O 口連接加一個(gè)上拉電阻,Vcc1接電源,Vcc2接地。DS18B20的測溫原理低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1 ,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器 2的脈沖輸入,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù), 進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 C所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55 C所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行

9、減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加 1,減法計(jì)數(shù)器1的預(yù)置將 重新被裝入,減法計(jì)數(shù)器 1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循 環(huán)直到減法計(jì)數(shù)器 2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即 為所測溫度。斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值。表2 DS1 302的日歷、時(shí)間寄存器iB-iaT tid 一tnm石山3 !l U n1Q 廿1*9 H1 o +于a01丁看-AHGdRr .P-p一LO X 一ft AU&-a.金啟1城0

10、t.jW一I1 *3_L2J顯示模塊的設(shè)計(jì)本次設(shè)計(jì)采用的是 LED動(dòng)態(tài)顯示方式,由于 PROTEUS內(nèi)沒有LED ,故用LCD代替LED進(jìn)行仿真,與主控制芯片 AT89C52相連。如圖6所示。系統(tǒng)的軟件設(shè)計(jì)圖E LE 動(dòng)態(tài)掃描顯示晝有于罹用nm.時(shí)何處盤子江“N圖了主程序流程圖主程序流程框圖Keil C與Proteus的聯(lián)調(diào)與測試結(jié)果Proteus7.6是目前最好的模擬單片機(jī)外圍器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外圍電路(如 LCD , RAM , ROM ,鍵盤,馬達(dá),LED , AD/DA ,部分SPI 器件,部分IIC器件等),使用 Proteus7.6和Ke

11、il C可以像使用仿真器一樣調(diào)試程序。Proteus的工作過程運(yùn)行Proteus的ISIS程序后,進(jìn)入該仿真軟件白主界面如圖8所示。在工作前,要設(shè)置view菜單下的捕捉對(duì)齊和 system下的顏色、圖形界面大小等項(xiàng)目。通過工具欄中的p(從庫中選擇元件命令)命令,在pick devices窗口中選擇電路所需的元件,放置元件并調(diào)整其相對(duì)位 置、元件參數(shù)設(shè)置、元器件間連線、編寫程序;在source菜單的Define code generation tools 菜單命令下,選擇程序編譯的工具、路徑、擴(kuò)展名等項(xiàng)目;在 source菜單的Add/remove source files命令下,加入單片機(jī)硬件

12、電路的對(duì)應(yīng)程序;通過 debug菜單的相應(yīng)命令仿真程 序和電路的運(yùn)行情況。Proteus軟件所提供的調(diào)試手段Proteus提供了比較豐富的測試信號(hào)用于電路的測試。這些測試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。對(duì)于單片機(jī)硬件電路和軟件的調(diào)試,Proteus提供了兩種方法:一種是系統(tǒng)總體執(zhí)行效果,一種是對(duì)軟件的分步調(diào)試以看具體的執(zhí)行情況。軟件和硬件結(jié)合的應(yīng)用系統(tǒng)軟件和硬件的結(jié)合, 就是一個(gè)單片機(jī)的應(yīng)用系統(tǒng)了。 在這一階段,硬件電路的設(shè)計(jì)已經(jīng)不是 最為關(guān)鍵的了,而軟件系統(tǒng)的設(shè)計(jì)、調(diào)試和運(yùn)行才是實(shí)驗(yàn)的主要內(nèi)容。 因此可以以建議性的 意見給出具體的硬件電路,并提出該電路所需要完成的具體工作,進(jìn)行軟件的設(shè)計(jì)和調(diào)試。

13、Keil C的介紹keil C的運(yùn)行界面運(yùn)行Keil C后的運(yùn)行界面如圖 9所示。圖9kHic的運(yùn)行界面Keil C與proteus聯(lián)調(diào)測試1、安裝 keil 與 proteus7.6 ;2、打開proteus,畫出相應(yīng)電路。在proteus的tools菜單中選中 use remote debug monitor ;3、在keil中編寫MCU的程序;4、進(jìn)入keil的project菜單option for target 工程名。在DEBUG 選項(xiàng)中右欄上部的下拉菜 選中 Proteus VSM Monitor-51 Driver ;5、在keil中進(jìn)行debug ,同時(shí)在proteus中查看直

14、觀的結(jié)果, LCD顯示;6、把keil里的文件編譯后輸出hex的文件,在proteus中把單片機(jī)的加載程序文件換成keil中的hex文件,然后運(yùn)行。運(yùn)行結(jié)果結(jié)果顯示由圖1整體電路框圖可知,LED顯示結(jié)果,如圖10所示。圖1。結(jié)果顯示日期和時(shí)間的修改由 4個(gè)按鍵構(gòu)成。鍵 P0為調(diào)節(jié);P2A0 ,模式切換鍵(向左移)向左移;鍵P2A1 ,加法按鈕;鍵 P2A2 ,減法按鈕;鍵 P2A3 ,立刻跳出調(diào)整模式按鈕。按動(dòng)PO時(shí)秒閃爍進(jìn)入調(diào)節(jié)系統(tǒng),如圖 11所示。按動(dòng)P2A0向左移,對(duì)分進(jìn)行調(diào)節(jié),如圖 12所示。按動(dòng)P2A1向左移,對(duì)時(shí)進(jìn)行加調(diào)節(jié),如圖 13所示。圖11秒調(diào)節(jié)圖13時(shí)加調(diào)節(jié)圖14所示,是未調(diào)之前的顯示,按動(dòng)P2A2向左移,對(duì)年進(jìn)行減調(diào)節(jié),如圖 15所示按動(dòng)P2A3向左移,退出調(diào)節(jié)恢復(fù)如圖16

溫馨提示

  • 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)論