基于單片機的萬年歷設(shè)計畢業(yè)設(shè)計_第1頁
基于單片機的萬年歷設(shè)計畢業(yè)設(shè)計_第2頁
基于單片機的萬年歷設(shè)計畢業(yè)設(shè)計_第3頁
基于單片機的萬年歷設(shè)計畢業(yè)設(shè)計_第4頁
基于單片機的萬年歷設(shè)計畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

TOC\o"1-5"\h\z摘要 I\o"CurrentDocument"Abstract II第 1 章 緒論 1課題背景和意義 1\o"CurrentDocument"課題的主要內(nèi)容 2\o"CurrentDocument"第 2 章 系統(tǒng)總體方案設(shè)計 3\o"CurrentDocument"單片機的選擇 3\o"CurrentDocument"顯示模塊的方案選擇 3\o"CurrentDocument"時鐘芯片的選擇方案 3\o"CurrentDocument"鍵盤的選擇 4\o"CurrentDocument"最終方案的選擇 4第 3 章 萬年歷系統(tǒng)硬件設(shè)計 6電路設(shè)計框圖 6各模塊硬件電路設(shè)計 6\o"CurrentDocument"晶振電路模塊的設(shè)計 6復(fù)位電路模塊的設(shè)計 7\o"CurrentDocument"單片機的控制模塊 7DS1302 時鐘電路 11\o"CurrentDocument"LCD12864液晶顯示電路 13\o"CurrentDocument"鍵盤模塊設(shè)計 15\o"CurrentDocument"第4章 萬年歷系統(tǒng)軟件設(shè)計 17\o"CurrentDocument"主程序模塊 17LCD12864顯示程序 18\o"CurrentDocument"DS1302時鐘程序 19\o"CurrentDocument"農(nóng)歷轉(zhuǎn)換程序 20\o"CurrentDocument"星期自動刷新程序 21\o"CurrentDocument"時間調(diào)整程序 22第5章 系統(tǒng)調(diào)試 24硬件調(diào)試 24\o"CurrentDocument"軟件測試 24\o"CurrentDocument"總體調(diào)試 25結(jié) 論 26\o"CurrentDocument"參考文獻 27致 謝 28\o"CurrentDocument"附錄 1 設(shè)計任務(wù)書 29附錄 2 開題報告 31附錄 3 外文翻譯 36附錄 4 程序清單 55第1章緒論課題背景和意義在人們繁忙的工作與生活中,時間與我們每一個人都有很密切的關(guān)系,每個人都會受到時間的影響。為了更好的利用我們自己的時間,我們必須要對時間有一個計量,因此我們設(shè)計了鐘表。鐘表的發(fā)展是非常迅速的,從最原始的機械式鐘表,到現(xiàn)在普遍使用的數(shù)字式鐘表,即使現(xiàn)在鐘表各式各樣,但是,它們的功能單一,也即是——計時功能,只是工作上原理不同而已。 在人們的使用過程中, 逐漸發(fā)現(xiàn)了鐘表的功能太過單一,不能在更大程度上的滿足人們的需求。 隨著當(dāng)今世界經(jīng)濟的快速發(fā)展和信息化時代的來臨,各種各樣的小型智能家電產(chǎn)品陸續(xù)出現(xiàn)在我們的生活當(dāng)中。日歷是人們的不可缺少的日常用品。但是,一般日歷都為紙制用品,使用不方便,壽命不長。為此電子日歷順應(yīng)時代的要求并得到迅速發(fā)展。隨著微電子技術(shù)的快速發(fā)展,單片機在日常生活的個人領(lǐng)域得到了廣泛的運用。單片機的結(jié)構(gòu)上主要是把 CPU、存儲器、 I/O接口電路等集成在一個超大規(guī)模芯片上,就其組成和功能而言, 一個單片機芯片就是一臺計算機。 這些電路能在軟件的控制下單獨、準確、迅速、高效地完成程序設(shè)計者所事先規(guī)定的任務(wù)。在其基本結(jié)構(gòu)上,逐漸衍生了能滿足各種應(yīng)用要求的兼容系統(tǒng),它能很好的滿足應(yīng)用系統(tǒng)的嵌入、現(xiàn)場可靠地運行、面向測控對象和控制品質(zhì)等方面的要求。因此,由單片機構(gòu)成的系統(tǒng)是發(fā)展比較快、品種比較全、數(shù)量比較大、應(yīng)用廣泛的控制處理器。單片機以體積小、功能全、性價比高等諸多優(yōu)點,在工業(yè)控制、家用電器、通信設(shè)備、信息處理、尖端武器等各種測量和控制領(lǐng)域的應(yīng)用中占有一部分的市場,單片機開發(fā)技術(shù)已成為電子信息、電氣、通信、自動化、機電一體化等專業(yè)技術(shù)人員必須掌握的技術(shù)。 MCS-51單片機是由美國 Intel公司于1980年推出的產(chǎn)品。由于 MCS-51單片機具有優(yōu)異的性能和低廉的價格,使其在各方面都得到了廣泛的應(yīng)用。其他一些電子公司在基本結(jié)構(gòu)的 MCS-51單片機的基礎(chǔ)上,開發(fā)出了功能更強的產(chǎn)品。本課題所設(shè)計的是一種采用智能電子控制和顯示技術(shù), 結(jié)合了電子時鐘和紙制的日歷組成了多功能電子時鐘, 具有讀取方便、 顯示直觀、 功能多樣、 成本低廉等諸多優(yōu)點。它不僅能顯示時間、星期、日期還可以顯示農(nóng)歷、生肖等,具有很高的實用價值,給人們的生活帶來的諸多方便。 符合電子儀器儀表的發(fā)展趨勢, 具有廣闊的市場前景。 因此,研究帶萬年歷的多功能電子時鐘及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。課題的主要內(nèi)容目前市場上各式各樣的電子時鐘數(shù)不勝數(shù),但多數(shù)是只針對時間顯示,功能單一,不能滿足人們?nèi)粘I钚枨?。本文提出了一種基于 STC90C51單片機的多功能電子萬年歷的硬件結(jié)構(gòu)和軟件的設(shè)計方案,本課題以 STC90C51單片機為主控核心,與串行時鐘日歷芯片 DS1302、按鍵、字符型液晶 LCD12864顯示等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設(shè)有獨立按鍵和 LCD顯示器,能顯示年、月、日、時、分、秒及星期等信息,并且根據(jù)使用者的需要可以隨時對時間進行校準、設(shè)定時間等。綜上所述,此萬年歷具有讀取方便,顯示直觀,功能多樣,電路簡潔,成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。第2章系統(tǒng)總體方案設(shè)計本設(shè)計提出了一種基于 STC90C51單片機的萬年歷設(shè)計方案, 本方案以 STC90C51單片機作為主控核心,與時鐘芯片 DS1302、按鍵、 LCD顯示屏等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設(shè)有獨立按鍵和 LCD顯示器,能顯示豐富的信息,根據(jù)使用者的需要可以隨時對時間進行校準、設(shè)定時間等 .軟件部分是采用 C語言編寫的。 C語言編寫的程序結(jié)構(gòu)清晰、條例明確并且便于修改。通過 Keil2軟件編譯連接可以自動生成用于燒寫于單片機的HEX文件。使用C語言配合 keil2軟件可以使程序編寫者省去很多麻煩, 還使的程序更加的結(jié)構(gòu)化,便于以后的修改。單片機的選擇采用傳統(tǒng)的 STC90C51作為本設(shè)計的控制核心。該單片機算術(shù)運算功能強,軟件編程靈活、自由度大,而且與 MCS-51系列單片機完全兼容,具有可反復(fù)擦除的 flash存儲器,可用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領(lǐng)域得到廣泛的應(yīng)用。顯示模塊的方案選擇采用 LED數(shù)碼管動態(tài)掃描顯示,對于數(shù)字顯示合適并且占用的接口線較少 ,價格便宜,但是不能顯示文字。所以,沒有采用這一方案。采用字符液晶顯示器,來實現(xiàn)顯示功能,液晶顯示具有功耗低、輕便且防震,不僅可以實現(xiàn)基本的顯示信息,而且可以顯示豐富的字符指示信息以及文字指示信息,信息量豐富并且直觀、易懂。而且液晶顯示具有功耗低,體積小,重量輕,壽命長,不產(chǎn)生電磁輻射等等優(yōu)點。界面友好清晰,操作簡便。目前市場上已經(jīng)推出多種低電壓( 5V)供電液晶。在本次設(shè)計中,我選用了 M12864-3,具有 128*64點陣顯示。時鐘芯片的選擇方案直接采用單片機定時計數(shù)器提供的秒信號,使用程序完成年、月、日、星期、時、分、秒計數(shù)任務(wù)。如果采用了此種方案,則會減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大,軟件編程比較復(fù)雜。所以,沒有采用此方案。目前在市場上已經(jīng)存在很多實時時鐘芯片。 如DS12887、DS1302、DS1307、PCF8563、X1227等等, 芯片內(nèi)都集成了時鐘 /日歷功能, 給時鐘系統(tǒng)設(shè)計帶來諸多方便。 因此計時功能還是以選專用時鐘芯片為宜,時鐘模塊由此實現(xiàn),比較簡單準確且方便。 DS1302芯片是一種高性能的時鐘芯片, 可以自動對年月日、 時分秒以及閏年補償?shù)哪赀M行計數(shù),而且精度高。所以,采用此方案。鍵盤的選擇采用2*2矩陣式鍵盤,當(dāng)按鍵較多時可以降低單片機的 I/O接口數(shù)目。但是,系統(tǒng)采用獨立式按鍵電路,每個鍵單獨占用一根 I/O接口線,每個 I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。但是當(dāng)按鍵較多時占用單片機的 I/O數(shù)目較多。由于本設(shè)計所使用的按鍵不多 (4個按鍵足以滿足設(shè)計的要求) 因此采用 1*4鍵盤,采用獨立式按鍵電路。最終方案的選擇主控制器選擇 STC90c51單片機,時鐘芯片選擇為 DS1302,顯示屏選擇為 LCDM12864-3,按鍵部分為獨立按鍵模塊。電路圖如下 2.1。2.1總體設(shè)計圖第3章萬年歷系統(tǒng)硬件設(shè)計電路設(shè)計框圖按照系統(tǒng)設(shè)計功能的要求,初步確定設(shè)計系統(tǒng)由主控模塊、時鐘模塊、獨立鍵盤模塊、顯示模塊共 4個模塊組成。本系統(tǒng)采用 STC90C51單片機為處理器對 DS1302寫入控制字并且讀取相關(guān)時間信息,最后控制液晶屏 LCD12864做出相應(yīng)的顯示。設(shè)計的電路硬件框圖如圖 3.1所示。3.1電路設(shè)計總體框圖各模塊硬件電路設(shè)計晶振電路模塊的設(shè)計該單片機內(nèi)部有一個振蕩電路, 但要產(chǎn)生單片機所需的時鐘信號, 必須外接其它元器件,在XTAL1、XTAL2引腳之間接一個石英晶體和兩個瓷片電容,組成一個并聯(lián)的諧振回路。晶振的頻率一般在 1MHz~12MH,電容的取值范圍為z 20pF~70pF。我們選用的晶振頻率為12MH,電容為z 22pF。晶振電路圖如下 3.2。3.2晶振電路圖3.2.2復(fù)位電路模塊的設(shè)計復(fù)位時單片機的初始化操作,其目的在于設(shè)定一個程序運行的初始狀態(tài)。并且在程序出錯或當(dāng)系統(tǒng)進入死循環(huán)時,也需要系統(tǒng)能進行復(fù)位操作,重新啟動單片機的工作。RST上加高電平并維持 10ms以上,單片機就可以完成復(fù)位操作。電路3.3。3.3復(fù)位電路圖3.2.3單片機的控制模塊最小系統(tǒng)是該系統(tǒng)最核心的模塊,采用本系統(tǒng)的處理器采用 STC90C51單片機,復(fù)位電路采用上電復(fù)位電路,外接12MHz晶振。最小系統(tǒng)電路圖如下圖 3.4。3.4最小系統(tǒng)圖STC90C51是臺灣 STC公司生產(chǎn)的低電壓, 高性能 CMOS位單片機,8 片內(nèi)含4kbytes的可反復(fù)擦寫的只讀程序存儲器( PERO)和M128bytes的隨機存取數(shù)據(jù)存儲器( RAM),器件采用公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準 MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器( CPU)和 Flash存儲單元。TOC\o"1-5"\h\zSTC90C51單片機共有 40個引腳, 32個外部雙向輸入 /輸出(I/O)端口,同時內(nèi)含 2個外中斷口, 2個16位可編程定時計數(shù)器 ,1個全雙工串行通信口, 2個讀寫的接口線, 片內(nèi)時鐘電路。 STC89C51單片機的管腳說明如圖 3.5所示。圖3.5單片機的引腳圖TOC\o"1-5"\h\zVCC:電源電壓 +5VGND:接地XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。RST:復(fù)位輸入。 當(dāng)振蕩器工作時, RST引腳出現(xiàn)兩個機器周期以上高電平將會使單片機復(fù)位。EA/VPP:外部訪問允許。欲使 CPU僅訪問外部程序存儲器(地址為 0000H—FFFFH),EA端必須保持低電平(接地) 。。如果 EA端為高電平(接 Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。ALE/PRO:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,G ALE(地址鎖存器允許)輸出脈沖用于鎖存地址的低 8位字節(jié)。即使不訪問外部存儲器, ALE仍以時鐘振蕩頻率的 1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個 ALE脈沖。對 Flash存儲器編程期間,該引腳還用于輸入編程脈沖( PRO)G。如有必要,可通過多特殊功能寄存器( SFR)區(qū)中的 8EH單元的 D0位置,可禁止 ALE操作。 該位置后, 只有一條 MOVX和MOVC指令 ALE才會被激活。 另外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置 ALE無效。PSEN:程序存儲允許( PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng) STC90C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次 PSEN有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,沒有兩次有效的 PSEN信號。P0口: P0口是一組 8位漏極開路型雙向 I/O口,也即地址 /數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能驅(qū)動 8個TTL邏輯門電路,對端口寫“ 1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低 8位)和數(shù)據(jù)總線服用,在訪問期間激活內(nèi)部上拉電阻。在 Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時要求外接上拉電阻。P1口:P1口是一個帶內(nèi)部上拉電阻的 8位雙向I/O,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流) 4個TTL邏輯門電路。對端口寫“ 1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。 Flash編程和程序校驗期間, P1接收高8位地址。P2口:P2口是一個內(nèi)部帶上拉電阻的 8位雙向I/O,P2的輸出緩沖級可驅(qū)動 (吸收或輸出電流) 4個TTL邏輯門電路。對端口寫“ 1”時,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某引腳被外部信號拉低時,會輸出一個電流。在訪問外部程序存儲器或 16位地址的外部數(shù)據(jù)存儲器時,P2口送出高 8位地址數(shù)據(jù)。 在訪問8位地址的外部數(shù)據(jù)存儲器時, P2口線上的內(nèi)容 (也即特殊功能寄存器 (SFR)區(qū)中 P2寄存器的內(nèi)容) ,在整個訪問期間不會改變。 Flash編程和程序校驗期間, P2亦接收低高位地址和其它控制信號。P3口:P3口是一組內(nèi)部帶上拉電阻的 8位雙向I/O,P3的輸出緩沖級可驅(qū)動 (吸收或輸出電流) 4個TTL邏輯門電路。對 P3口寫入“ 1”時,它們被內(nèi)部的上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的 P3口將用上拉電阻輸出電流。 P3口除了作為一般的 I/O口線外,更重要的用途是它的第二功能,見表 3.1所示:P3口還接收一些用于 Flash閃速存儲器編程和程序校驗的控制信號。表3.1P3口的第二功能圖端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷 0)P3.3INT1(外部中斷 1)P3.4T0(定時 /計時器 0外部輸入)P3.5T1(定時 /計時器 1外部輸入)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器讀選通)SFR:SFR是具有特殊功能的所有寄存器的集合, 共含有21個不同寄存器, 它們的地址分配在 80H~FFH中。雖然如此,不是所有的單元都被特殊功能寄存器占用,沒有被占用的單元, 其內(nèi)容是不確定的。 如果對這些單元進行讀操作, 得到的是一些隨機數(shù),而寫入則無效,所以在編程時不應(yīng)該將數(shù)據(jù)寫入這些沒有確定地址的單元中,特殊功能寄存器主要有累加器 ACC、B寄存器、程序狀態(tài)字寄存器 PSW、堆棧指針 SP、數(shù)據(jù)指針DPTR、I/O端口、串行口數(shù)據(jù)緩沖器 SBUF、定時器寄存器、控制寄存器。定時/計數(shù)器: STC90C51單片機內(nèi)含有 2個16位的定時器 /計數(shù)器。當(dāng)用于定時器方式時,定時器的輸入來自內(nèi)部時鐘發(fā)生電路,每過一個機器周期,定時器加 1,而一個機器周期包含有 12個振蕩周期,所以,定時器的技術(shù)頻率為晶振頻率的 1/12,而計數(shù)頻率最高為晶振頻率的 1/24。為了實現(xiàn)定時和計數(shù)的功能, 定時器中含有 3種基本的寄存器:控制寄存器、方式寄存器和定時器 /計數(shù)器??刂萍拇嫫魇且粋€ 8位的寄存器,用于控制定時器的工作狀態(tài),方式寄存器是一個 8位的寄存器,用于確定定時器的工作方式,定時器 /計數(shù)器是 16位的計數(shù)器,分為高字節(jié)和低字節(jié)兩部分。中斷系統(tǒng): STC90C51單片機有 5個中斷源,中斷系統(tǒng)主要由中斷允許寄存器 IE、中斷優(yōu)先級寄存器 IP、優(yōu)先級結(jié)構(gòu)和一些邏輯門組成。 IE寄存器用于允許或禁止中斷;IP寄存器用于確定中斷源的優(yōu)先級別; 優(yōu)先級結(jié)構(gòu)用于執(zhí)行中斷源的優(yōu)先排序; 有關(guān)邏輯門用于輸入中斷請求信號。在整個中斷響應(yīng)過程中 CPU所執(zhí)行的操作步驟如下:(a)完成當(dāng)前指令的操作(b)將 PC內(nèi)容壓入堆棧c)保存當(dāng)前的中斷狀態(tài)d)阻止同級的中斷請求e)將中斷程序入口地址送 PC寄存器f)執(zhí)行中斷服務(wù)程序g)返回3.2.4DS1302時鐘電路DS1302是美國 DALLAS公司推出的一種高性能、低功耗、帶 RAM的實時時鐘芯片,它可以對年、 月、日、周、時、分、秒等進行計時, 具有閏年補償功能, 工作電壓為 2.5V~5.5V。采用三線接口與 CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 RAM數(shù)據(jù)。 DS1302內(nèi)部有一個 31×8的用于臨時性存放數(shù)據(jù)的 RAM寄存器。 DS1302是DS1202的升級產(chǎn)品,與 DS1202兼容,但增加了主電源 /后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。它為單片機提供時間信息的電路圖如下圖3.6時鐘電路圖DS1302時鐘芯片包括實時時鐘 /日歷和31字節(jié)的靜態(tài) RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘 /日歷提供秒、分、時、日、周、月和年等信息。對于小于 31天的月和月末的日期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用 24小時或帶 AM/PM的12小時格式。采用三線接口與 CPU進行同步通信,并可采用突發(fā)方式一次傳送多字節(jié)的時鐘信號或 RAM數(shù)據(jù)。DS1302有主電源 /后備電源雙電源引腳: Vcc1在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電磁備份; Vcc1在雙電池系統(tǒng)中提供主電源。 在這種運行方式中, Vcc1里連接到后備電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。 DS1302由Vcc1或Vcc2中較大者供電。 當(dāng)Vcc2>(Vcc1+0.2V)時,Vcc2給DS1302供電; 當(dāng)Vcc2<Vcc1時, DS1302由Vcc1供電。DS1302在任何數(shù)據(jù)傳送時必須先初始化, 把RST腳置為高電平, 然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在 SCLK的上升沿被訪問到。在開始 8個時鐘周期,把命令字節(jié)裝入移位寄存器后, 另外的時鐘周期在讀操作時輸出數(shù)據(jù), 在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為 8+8,在多字節(jié)方式下為 8+字節(jié)數(shù),最大可達 248字節(jié)數(shù)。如果在傳送過程中置 RST腳為低電平,則會終止本次數(shù)據(jù)傳送,并且 I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在 Vcc≥2.5V之前, RST腳必須保持低電平。只有在 SCLK為低電平時,才能將 RST置為高電平。DS1302的控制字的一些資料。控制字節(jié)的最高有效位(位 7)必須是邏輯 1,如果它為 0,則不能把數(shù)據(jù)寫入到 DS1302中。位 6如果為 0,則表示存取日歷時鐘數(shù)據(jù);為1則表示存取 RAM中的數(shù)據(jù)。位 5~1(A4~A0)指示操作單元的地址。最低有效位(位0)如果為 0,則表示將進行寫操作;為 1時表示進行讀操作。控制字節(jié)總是從最低位開始輸入或輸出。為了提高對 32個地址尋址能力(地址 /命令位 1~5=邏輯 1),可以把時鐘 /日歷或RAM寄存器規(guī)定為多字節(jié)( burst)方式。位 6規(guī)定時鐘或 RAM,而位 0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址 9~31或RAM寄存器中的地址 31不能存儲數(shù)據(jù)。 在多字節(jié)方式下,讀或?qū)憦牡刂?0的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?8個寄存器。 但是,當(dāng)以多字節(jié)方式寫 RAM時,為了傳送數(shù)據(jù)不必寫所有的 31字節(jié),不管是否謝了全部 31字節(jié),所寫的每一字節(jié)都將傳送至 RAM。DS1302共有 12個寄存器,其中有 7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。其日歷、時間寄存器及其控制字如下表 3.2所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。表3.2DS1302控制字時鐘暫停:秒寄存器的位 7定義位時鐘暫停位。當(dāng)它為 1時, DS1302停止振蕩,進入低功耗的備份方式,通常在對 DS1302進行寫操作時(如進入時鐘調(diào)整程序) ,停止振蕩。當(dāng)它為 0時,時鐘將開始啟動。AM-PM/12-24小時方式:小時寄存器的位 7定義為12或24小時方式選擇位。它為高電平時,選擇 12小時方式。在此方式下,位 5為第二個 10小時位( 20~23h)。DS1302的晶振選用 32768Hz,電容一般值為 6pF。因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。LCD12864液晶顯示電路由于本設(shè)計需要顯示字符與漢字,所以我選用 M12864-3漢字圖形點陣液晶作為顯示模塊,可顯示漢字及圖形,內(nèi)置 8192個中文漢字( 16X16點陣)、128個字符(8X16點陣)及 64X256點陣顯示 RAM(GDRA)M。帶中文字庫的 128X64是一種具有 4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標一級、 二級簡體中文字庫的點陣圖形液晶顯示模塊; 其顯示分辨率為 128×64,內(nèi)置8192個16*16點漢字,和 128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、 方便的操作指令, 可構(gòu)成全中文人機交互圖形界面。 可以顯示 8×4 行16×16點陣的漢字 .也可完成圖形顯示 .低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比, 不論硬件電路結(jié)構(gòu)或顯示程序都要TOC\o"1-5"\h\z簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。其管腳圖如下 3.7。圖3.7LCD12864管腳圖它的主要技術(shù)參數(shù)和顯示特性 :電源:VDD3.3V~+5V(內(nèi)置升壓電路,無需負壓 );顯示內(nèi)容: 128列×64行顯示顏色:藍綠

顯示角度: 6:00鐘直視LCD類型: STN與MCU接口:8位或 4位并行 /3位串行配置 LED背光多種軟件功能:光標顯示、畫面移位、自定義字符、睡眠模式等邏輯工作電壓 (VDD):4.5~5.5V電源地 (GND):0V工作溫度(Ta):0~60℃(常溫)/-20~75℃(寬溫)外形尺寸: 93×70×12.5mm視域尺寸: 73×39mm,如下圖 3.8。圖3.812864M—3外形圖12864液晶模塊引腳說明如下表 3.3。表3.3液晶模塊引腳說明管腳號 管腳名稱電平管腳功能描述1VSS0V電源地2VCC3.0+5V電源正3V0-對比度(亮度)調(diào)整4RS(CS)H/LRS=“H”,表示 DB7—— DB0為顯示數(shù)據(jù)

RS=“L”,表示 DB7—— DB0為顯示指令數(shù)據(jù)5R/W(SID)H/LR/W=“H”,E=“H”,數(shù)據(jù)被讀到 DB7—— DB0R/W=“L”,E=“H→L”,DB7——DB0的數(shù)據(jù)被寫到IR或DR6E(SCLK)H/L使能信號7DB0H/L三態(tài)數(shù)據(jù)線8DB1H/L三態(tài)數(shù)據(jù)線9DB2H/L三態(tài)數(shù)據(jù)線10DB3H/L三態(tài)數(shù)據(jù)線11DB4H/L三態(tài)數(shù)據(jù)線12DB5H/L三態(tài)數(shù)據(jù)線13DB6H/L三態(tài)數(shù)據(jù)線14DB7H/L三態(tài)數(shù)據(jù)線15PSBH/LH:8位或 4位并口方式, L:串口方式(見注釋 1)16NC-空腳17/RESETH/L復(fù)位端,低電平有效18VOUT-LCD驅(qū)動電壓輸出端19AVDD背光源正端( +5V)20KVSS背光源負端注釋1:如果在實際應(yīng)用中僅僅使用串口通訊模式,可將 PSB接固定低電平,也可以將模塊上的該引腳和“ GND”用焊錫短接。 Psb接高電平時,為并口通訊模式。注釋 2:該模塊內(nèi)部接有上電復(fù)位電路, 因此在不需要經(jīng)常復(fù)位的設(shè)計中可將該端懸空。注釋 3:如果背光和模塊共享一個電源,可以將模塊上的相應(yīng)腳用焊錫短接。鍵盤模塊設(shè)計在單片機應(yīng)用系統(tǒng)中,常用鍵盤作為輸入設(shè)備,通過它將數(shù)據(jù)、內(nèi)存地址、命令及指令等輸入到系統(tǒng)中,來實現(xiàn)簡單的人機通信。這種獨立按鍵接口電路配置靈活,硬件結(jié)構(gòu)簡單,但每個按鍵必須占用一根 I/O線,I/O接口線浪費較大。故只在按鍵數(shù)量不多時采用這種按鍵電路。 由此本設(shè)計中的鍵盤輸入系統(tǒng)由 P3.4-P3.7口和4個按鈕開關(guān)組成,開關(guān)的另一端連接到地線上。當(dāng)無鍵按下時 P3.4-P3.7口輸入為高電平,有鍵按下時P1口所對應(yīng) I/O口會被拉低, P3.4-P3.7中有低電平輸入。 分別對應(yīng)時間、 日期調(diào)整,退出功能。具體的鍵盤輸入電路如圖 3.9所示。3.9鍵盤模塊圖第4章萬年歷系統(tǒng)軟件設(shè)計本次設(shè)計的軟件部分是采用 C語言編寫。 C語言編寫的程序結(jié)構(gòu)清晰、條例明確。通過Keil2軟件編譯連接可以自動生成用于燒寫于單片機的 HEX文件。而且通過編譯可以自動分配數(shù)據(jù)區(qū)和程序區(qū)的地址。 使用C語言配合 keil2軟件可以使程序編寫者省去很多麻煩,還使的程序更加的結(jié)構(gòu)化,便于以后的修改。但使用 C語言編寫的程序也存在一定的缺點,其生成的文件會很麻煩,文件會比用匯編語言編寫的文件大。由于本次設(shè)計的規(guī)模并不大,其利大于弊。所以采用 C語言編寫而沒有用匯編語言編寫。本系統(tǒng)的軟件設(shè)計主要可分為主程序模塊、時鐘信息采集程序、液晶顯示程序、鍵盤調(diào)整程序四大模塊。系統(tǒng)初始化部分主要是對系統(tǒng)的按鍵值、時鐘芯片、液晶顯示器進行設(shè)置,本系統(tǒng)的時間是通過時鐘芯片 DS1302來取得,并將數(shù)據(jù)送入 51單片機,通過液晶顯示器 M12864—3來顯示,時間、日期的修改通過按鍵來控制的。 所以要對按鍵、時鐘芯片、液晶顯示器進行初始化。而其它模塊的初始化在各模塊函數(shù)中初始化。在系統(tǒng)初始化部分結(jié)束后進入主體循環(huán)部分。 而主體循環(huán)部分又分為外循環(huán)部分和內(nèi)循環(huán)部分。在外循環(huán)部分是對當(dāng)時時間、 日期設(shè)置, 如果沒有設(shè)置完成就一直處于外循環(huán)部分。當(dāng)設(shè)置完成后進入主體循環(huán)部分,系統(tǒng)將一直處于主體循環(huán)中。在內(nèi)循環(huán)中可實時的采集時間信息數(shù)據(jù),并將日期轉(zhuǎn)換成農(nóng)歷月、日和其對應(yīng)的生肖年。下面對各部分模塊作介紹。主程序模塊主程序是整個軟件設(shè)計的核心,關(guān)系到整個程序能否正常運行,以及控制操作的順利完成。主要是通過調(diào)用其它函數(shù)來實現(xiàn)系統(tǒng)的主要功能,現(xiàn)在我把他們作以下介紹,其工作順序一般如下:(1)系統(tǒng)啟動后,進行系統(tǒng)的初始化。(2)然后 DS1302開始振蕩,單片機從 DS1302中讀出年、月、日、星期、時、分、秒。據(jù)此刷新農(nóng)歷時間和星期。(3)根據(jù)陽歷算出陰歷并且把時間信息送往 LCD顯示。主程序的程序流程圖如下圖 4.1所示。4.1主程序流程圖LCD12864顯示程序該顯示屏具有兩種通信方式,即串口通信和并口通信。我們采用了并口通信方式。它可以顯示 4行,每行各 8字。在附錄中有詳盡的程序代碼,在這里我簡單介紹該部分顯示程序的初始化部分?,F(xiàn)列其初始化流程圖如下,如圖 4.2。

圖4.2初始化流程圖DS1302時鐘程序DS1302的數(shù)據(jù)傳送方式有兩種,即單字節(jié)方式和多字節(jié)突發(fā)傳送方式。我們選擇的是單字節(jié)傳送方式。這樣做,比較準確、方便。單字節(jié)傳送方式必須在 RST=1期間先送命令,緊接著在發(fā)送一個字節(jié)的數(shù)據(jù), 每次僅需 16個時鐘。 DS1302在接收到命令后,自動將數(shù)據(jù)寫入指定的內(nèi)部地址或從該地址讀出數(shù)據(jù)。其詳盡的程序代碼,在附錄中已經(jīng)闡述。在這里我簡單介紹該部分顯示程序的初始化部分?,F(xiàn)列其初始化流程圖如下,如圖4.3。

圖4.3DS1302初始化流程圖農(nóng)歷轉(zhuǎn)換程序由陽歷轉(zhuǎn)換為農(nóng)歷是整個程序重要的一部分,其流程圖如下圖 4.4所示:4.5星期自動刷新程序4.4農(nóng)歷轉(zhuǎn)換程序流程圖這部分的程序主要包括一些算法。其流程圖如下圖 4.5所示:圖4.5星期自動刷新程序流程圖4.6時間調(diào)整程序由于在硬件電路方面上設(shè)計了時間調(diào)整按鍵,因此應(yīng)有對應(yīng)的時間調(diào)整程序。時間調(diào)整程序的流程圖如圖 4.6所示。

開始4.6時間調(diào)整程序流程圖第5章系統(tǒng)調(diào)試硬件調(diào)試電路圖在 Protel中畫好之后,經(jīng)過檢查沒有發(fā)現(xiàn)錯誤,于是開始焊接,完成了硬件組裝。在調(diào)試硬件時遇到過很多的問題,但時只要細心、認真檢查這些問題都是可以避免的,主要問題及解決方法現(xiàn)在列出如下:接通電源后 LCD12864沒有正確的顯示。 在不通電狀態(tài)下用萬用表檢測電路是否有正常的電氣連接,在檢查回路時發(fā)現(xiàn)有的點之間看似連接,但由于虛焊導(dǎo)致其并無電氣連接,只能對焊接的引腳在進行加工直到解決問題。電路工作一段時間之后有的芯片發(fā)熱嚴重。經(jīng)查發(fā)現(xiàn)原來是該芯片的一個管腳與電源腳短接,故而發(fā)熱,由于發(fā)現(xiàn)及時,并未對該芯片造成損傷,斷掉該線并再次連接可解決了該問題。軟件測試由于電子萬年歷涉及到多個子程序,多個芯片的編程。首先必須熟記各個可編程芯片的控制指令。其次,芯片很多都有時鐘輸入端,需要晶振提供時鐘。只有在相應(yīng)的觸發(fā)沿到來時,才能對芯片的進行讀寫。電子萬年歷是多功能的、數(shù)字型的,可以看當(dāng)前日期(陰、陽歷) ,時間。電子萬年歷功能較多,所以對于它的程序也較為復(fù)雜 ,所以在編寫程序和調(diào)試運行時出現(xiàn)了相對較多的問題。最后經(jīng)過多次的子程序模塊的修改,一步一步的測試,最終完成了軟件的編寫。在軟件的編程調(diào)試過程中,主要遇到的問題如下:(1)寫入程序后, LCD不顯示字符。解決:首先檢查 LCD顯示子程序,修改了一部分,但是還是不正確。最后,我把單片機接口直接與顯示屏相連,問題就解決了。(2)修改時間、日期時 ,農(nóng)歷的顯示沒有自動匹配。解決:把不相關(guān)的程序暫時刪除, 把農(nóng)歷的程序獨立調(diào)試, 發(fā)現(xiàn)在調(diào)用農(nóng)歷自動更新時,對十進制和壓縮的 BCD碼處理不好,所以會造成顯示異常。最后把相應(yīng)的十進制做相應(yīng)的修改,使得可以與十六進制對應(yīng),最后解決了這一問題。(3)星期自動刷新程序。在首次調(diào)試時,發(fā)現(xiàn)關(guān)于星期的顯示不與實際相符,有時會出現(xiàn)一些亂碼。經(jīng)過檢查,發(fā)現(xiàn)由陽歷日期求星期的算法有問題, 并且與 LCD星期顯示程序不匹配。 稍作修改,顯示就正常了。(4)時間不走并且顯示不正確。LCD只顯示初始化的字符, 由此,有對 DS1302的硬件連接部分以及供電源做進一步檢查,但是沒有發(fā)現(xiàn)錯誤,當(dāng)我把用另外一個芯片 DS1302連接時, LCD顯示正常。最后解決了此問題。綜上,在硬件調(diào)試的基礎(chǔ)上,根據(jù)各部分的功能和特性,完成了軟件的調(diào)試,整個設(shè)計基本上能夠?qū)崿F(xiàn)預(yù)定的功能。在軟件調(diào)試過程中尤其注意了各函數(shù)之間的調(diào)用、返回,使設(shè)計的程序結(jié)構(gòu)清晰、合理、易懂??傮w調(diào)試把HEX文件下載到單片機中,打開電源開關(guān),顯示正常。調(diào)試結(jié)果如下圖 5.1所示5.1調(diào)試結(jié)果圖調(diào)試按鍵部分能否正常調(diào)整時間。 結(jié)果都能正常運行。 至此,整個電路的設(shè)計就結(jié)束了。結(jié)論在這次的基于單片機的電子萬年歷的設(shè)計中,我遇到了很多的困難,也學(xué)到了不少的知識。首先這對于我來說,是一個全新的東西,而且要學(xué)習(xí)的知識很多,比如說 C51編程軟件 Keil2的使用,液晶屏知識,這些都是我在以往的課本中所沒有學(xué)到的。最新接觸到這個課題,就是感覺東西很多,覺得很迷茫,也很頭大。不過,在通過牛老師細心的指導(dǎo)下和大量查閱資料后,我漸漸理解了課題的目的及意義,理清了思路,也慢慢的在實踐中摸索著走起來。首先,我先搜集到關(guān)于單片機、液晶屏和時鐘芯片的資料,然后對這些資料整理、學(xué)習(xí)。起初,感覺難度比較大,但是隨著學(xué)習(xí)的深入,我克服了不少困難。最后我對各個芯片的知識都非常熟悉,使用 PROTEL設(shè)計了相應(yīng)的電路圖。在就是,軟件編程方面,開始的時候, 我對C語言編程只是了解一些, 但是,在這次設(shè)計中, 日歷算法比較復(fù)雜,遇到了不少困難,我在網(wǎng)上查了不少關(guān)于算法轉(zhuǎn)換的程序,開始的時候,感覺這些程序非常復(fù)雜,但是,在我先編寫了星期的自動刷新程序后,就著重研究陽歷轉(zhuǎn)換為農(nóng)歷的程序,經(jīng)過查參考書以及在網(wǎng)上查資料,才完成了這一部分程序的編寫。最終在同學(xué)的幫助和指導(dǎo)下,我完成了對軟件的設(shè)計??傊诋厴I(yè)設(shè)計完成過程中,使我對理論知識進行了重溫和學(xué)習(xí),讓我知道如何有步驟及有計劃的完成一項任務(wù),不過在此其中也讓我感覺到自己所學(xué)的知識是有限的、解決問題是不夠完善的,希望自己以后做好每一件事。參考文獻黃菊生.單片機原理與接口技術(shù) [M].北京:國防工業(yè)出版社 ,2007.9:12-200.閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版) [M].北京:高等教育出版社 ,2006.5:260-344.張國雄.測控電路 [M].北京:機械工業(yè)出版社 ,2008:1-110.劉大茂.智能儀器與設(shè)計 [M].北京:清華大學(xué)出版社 ,2005:20-210.譚浩強.C程序設(shè)計 [M].第三版,北京:清華大學(xué)出版社 ,2005.7:1-180.余家春. Protel99SE電路設(shè)計實用教程 [M].中國鐵道出版社 ,2004:20-120蘇平.單片機的原理與接口技術(shù) [M].北京:電子工業(yè)出版社 ,2006:1-113.尹勇.單片機開發(fā)環(huán)境 μVision2的開發(fā)指南 [M].北京:北京航空航天大學(xué)出版社,2004:174-198.張斌武.單片機系統(tǒng) Proteus設(shè)計與仿真 [M].北京:電子工業(yè)出版社 ,2005:53-88.彭偉.單片機C語言程序設(shè)計實訓(xùn) 100例[M].北京:電子工業(yè)出版社 ,2009:1-240.趙建領(lǐng)、薛園園.零基礎(chǔ)學(xué)單片機 C語言程序設(shè)計 [M].機械工業(yè)出版社, 2012:1-300.高明遠.電子工藝實訓(xùn)與 protelDXP應(yīng)用[M].人民出版社 ,2007:1-288.劉炎.通用串行總線 (USB)應(yīng)用與接口設(shè)計 [M].電子技術(shù)應(yīng)用, 2002(12):28-33.[14]DS1302資料[DB].海納電子資訊網(wǎng): [15]LCD12864資料[DB].海納電子資訊網(wǎng): 致謝本課題的研究和論文的完成是在導(dǎo)師牛金星老師的悉心指導(dǎo)和熱心關(guān)懷下完成的。牛老師豐富的專業(yè)知識、兢兢業(yè)業(yè)的工作精神和開拓的思維方式使我受益匪淺,他嚴謹?shù)闹螌W(xué)精神和寬厚的長著風(fēng)度為學(xué)生建立了一個寬松、富于創(chuàng)造性的學(xué)習(xí)和工作環(huán)境,對我以后的生活和學(xué)習(xí)將產(chǎn)生深遠的影響。 在此向牛老師表示崇高的敬意并致以衷心的感謝。感謝四年來教導(dǎo)我知識的申杰、運紅麗、宋小娜、張濤、齊永奇、王欣欣等數(shù)位老師!感謝大學(xué)以來所有給過我教誨的老師們,是你們帶領(lǐng)我發(fā)現(xiàn)了學(xué)習(xí)的樂趣和知識的奧妙。在此謹向老師們致以最誠摯的敬意!感謝測控專業(yè)這四年來所有給過我?guī)椭娜耍?本設(shè)計能順利完成與同學(xué)們的幫助是分不開的。在此謹向親愛的同學(xué)們致以最真的祝福!最后,我要特別感謝我的家人,他們的支持和關(guān)心是我不斷進步的力量源泉,使我有能力、有信心面對困難,迎接挑戰(zhàn)。附錄1設(shè)計任務(wù)書一、畢業(yè)設(shè)計目的本設(shè)計的目的是培養(yǎng)學(xué)生綜合運用單片機等所學(xué)課程知識的能力。 了解系統(tǒng)的設(shè)計流程,培養(yǎng)分析和解決課題中關(guān)鍵技術(shù)的能力,以及了解電路板的制作和調(diào)試能力。可以對以前所學(xué)的知識進一步的深化掌握, 為以后的工作或研究生課題的研究奠定理論和實踐基礎(chǔ)。二、主要內(nèi)容1、萬年歷的硬件設(shè)計。2、電子萬年歷的軟件設(shè)計。3、實物焊接及調(diào)試運行。三、重點研究問題1、單片機與外設(shè)的硬件連接和通信。2、日歷轉(zhuǎn)換的算法。四、主要技術(shù)指標或主要參數(shù)1、顯示年月日時分秒及其星期信息。2、具有可調(diào)整日期和時間功能。3、與即時時間同步。五、基本要求1、在設(shè)計初期階段進行認真調(diào)研。在調(diào)研和充分理解課題內(nèi)容和要求的基礎(chǔ)上,寫出3000字左右的開題報告。要求查閱文獻在 15篇以上.2、在設(shè)計初期進行畢業(yè)實習(xí),實習(xí)時間為 2周左右。實習(xí)過程應(yīng)聽從指導(dǎo)教師的指揮,寫出實習(xí)日記。實習(xí)結(jié)束后,對實習(xí)過程進行總結(jié),提交實習(xí)報告。3、在設(shè)計過程中,能運用一門外語翻譯與課題有關(guān)的外文資料。要求譯文準確、通順,字數(shù)在 2000漢字以上。4、在畢業(yè)設(shè)計后期,提交畢業(yè)設(shè)計設(shè)計一本。要求內(nèi)容完整,含中外文摘要,條理清楚,文字通順,書寫規(guī)范。要求中文摘要字數(shù)在 500字左右,關(guān)鍵詞 3~5個,設(shè)計正文字數(shù)應(yīng)在 15000字以上。5、提交設(shè)計部分的硬件電路圖和顯示系統(tǒng)設(shè)計的軟件源碼,以及能夠正常演示成六、其它(包括選題來源)1、所有學(xué)生應(yīng)按設(shè)計進度完成相應(yīng)的工作。2、選題來源為自選。3、設(shè)計過程中,態(tài)度不認真,平時紀律松弛,缺勤累計超過畢業(yè)設(shè)計時數(shù)三分之2開題報告華北水利水電大學(xué)本科生畢業(yè)設(shè)計開題報告學(xué)生姓名邵林坤學(xué)號200906927專業(yè)測控技術(shù)與儀器題目名稱基于單片機的萬年歷設(shè)計課題來源自選主要內(nèi)容目前市場上各式各樣的電子時鐘數(shù)不勝數(shù),但多數(shù)是只針對時間顯示,功能單一,不能滿足人們?nèi)粘I钚枨?。本文提出了一種基于STC90C51單片機的多功能電子萬年歷的硬件結(jié)構(gòu)和軟件的設(shè)計方案,本方案以 STC90C51單片機為主控核心,與串行時鐘日歷芯片 DS1302、按鍵、字符型液晶 LCD12864顯示等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設(shè)有獨立按鍵和 LCD顯示器,能顯示年、月、日、時、分、秒及星期等信息,并且根據(jù)使用者的需要可以隨時對時間進行校準、選擇時間等。綜上所述,此萬年歷具有讀取方便,顯示直觀,功能多樣,電路簡潔,成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。單片機的出現(xiàn),并在各技術(shù)領(lǐng)域中得到如此迅猛的發(fā)展,與單片機構(gòu)成計算機應(yīng)用系統(tǒng)所形成的下述特點有關(guān):.單片機構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。這些可靠性的獲得除了依靠單片機芯片本身的高可靠性以及應(yīng)用有最少的連接外,還可以方便地采用軟、硬件技術(shù) .。系統(tǒng)擴展、系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)有較高的軟、硬件利用系數(shù)。由于構(gòu)成的應(yīng)用系統(tǒng)是一個計算機系統(tǒng),相當(dāng)多的測控功能由軟件實現(xiàn),故具有柔性特征,不須改變硬件系統(tǒng)就能適當(dāng)?shù)馗淖兿到y(tǒng)功能。4.有優(yōu)異的性能、價格比。

本課題實現(xiàn)的目標是通過編寫日歷算法程序,設(shè)計硬件電路,將時鐘芯片DS1302中的時間通過單片機的控制,顯示在 LCD12864液晶屏上,并且能通過獨立按鍵調(diào)整時鐘芯片中的時間。一、系統(tǒng)總體設(shè)計思路此設(shè)計即在液晶屏上顯示年、 月、日、時、分、秒及星期等時間信息,電路硬件部分一般包括以下幾個部分:鍵盤、單片機及顯示電路,原理框圖如下。采取的主要技術(shù)路線或采取的主要技術(shù)路線或方法單片機實現(xiàn)液晶顯示萬年歷總框圖單片機實現(xiàn)液晶顯示萬年歷總框圖對于各部分:(1)為使時鐘走時與標準時間一致,鍵盤用來校正液晶上顯示的時間。(2)單片機通過輸出各種電脈沖信號來驅(qū)動控制各部分正常工作。(3)單片機發(fā)送到信號經(jīng)過顯示電路通過譯碼最終在液晶屏上顯示出來。二、系統(tǒng)硬件選擇2.1、單片機芯片的選擇STC90C51臺灣 STC公司生產(chǎn)的低電壓,高性能 CMOS位單片機,片8內(nèi)含4kbytes的可反復(fù)擦寫的只讀程序存儲器( PERO)和M 128bytes的隨機存取數(shù)據(jù)存儲器( RAM),器件采用 ST公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準 MCS-51指令系統(tǒng),片內(nèi)置通用 8位中央處理器(CPU)和 Flash存儲單元,功能強大 STC90C51單片機可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域,尤其是小電子商品的市場。時鐘芯片的選擇根據(jù)本設(shè)計的要求,采用 DS1302時鐘芯片實現(xiàn)時鐘, DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,附加 31字節(jié)靜態(tài)RAM,采用 SPI三線接口與 CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和 RAM數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與 31天時可以自動調(diào)整,且具有閏年補償功能。工作電壓寬達 2.5~5.5V。采用雙電源供電(主電源和備用電源) ,可設(shè)置備用電源充電方式,提供了對后背電源進行涓細電流充電的能力。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄, 因此廣泛應(yīng)用于測量系統(tǒng)中。顯示模塊的選擇使用帶字符的液晶顯示屏 LCD12864顯示數(shù)字時間。 LCD12864液晶在是一款很常用的點陣液晶, 可顯示各種字符及圖形, 可以顯示 4行每行8個漢字,可與 CPU直接接口, 具有8位標準數(shù)據(jù)總線、 6條控制線及電源線。 128×64點陣型液晶顯示模塊,板上有負壓電路,對比度可調(diào)、黃綠色背光。液晶顯示屏( LCD)12864液晶顯示模塊是并且具有輕薄短小、低耗電量、無輻射危險,平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強,控制方便,時序簡單,技術(shù)成熟等特點。鍵盤模塊的選擇使用獨立式鍵盤。 獨立式鍵盤是指直接用 I/O口線構(gòu)成的單個按鍵電路。獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單。電路設(shè)計方案決定綜上各所述 ,對此次作品的方案選定 :我們采用 STC90C51作為主控制系統(tǒng);DS1302提供時鐘 ;LCD12864字符型液晶屏作為顯示,獨立按鍵作為時間調(diào)整的模塊。

STC90C51LCD12864液晶屏顯示模塊鍵盤模塊主控制模塊DS1302時鐘模塊基于芯片 STC90C51萬年歷系統(tǒng)的框圖三、系統(tǒng)軟件設(shè)計軟件設(shè)計是本課題的關(guān)鍵, 本課題的程序采用 C語言編寫, 并在 keil2中調(diào)試并生成 Hex文件,最后下載到單片機調(diào)試運行。本課題的軟件設(shè)計主要包含三部分:其中包括單片機控制程序, LCD顯示程序, DS1302時間程序,時間調(diào)整程序。單片機控制程序控制程序是單片機與外設(shè)的接口,單片機通過控制程序完成對外設(shè)的控制和通信,這是主程序的核心。完成時間調(diào)整,陽歷轉(zhuǎn)換為農(nóng)歷的算法,以及 LCD顯示的控制。LCD顯示程序單片機采集的時間信息通過顯示程序, 在液晶屏 LCD12864上直觀的顯示。DS1302時鐘程序單片機通過時鐘程序?qū)r鐘芯片 DS1302中的時間信息進行采集, 并且可以調(diào)整 DS1302中的時間信息。時間安排第1—2周( 2.25-3.10)進行調(diào)研,收集與課題相關(guān)資料,熟悉課題所需相關(guān)知識,初擬設(shè)計方案。熟悉相關(guān)應(yīng)用工具軟件,收集素材。完成相關(guān)英文資料翻譯。第 3—4周(3.11—3.24)畢業(yè)實習(xí),了解各種單片機系統(tǒng)的開發(fā)和實際應(yīng)用特點、工作原理及與專業(yè)有關(guān)知識,開闊眼界,進一步收集資

料。第 5—6周( 3.25—4.7)寫出開題報告 (文獻綜述 )、實習(xí)報告。確定總體設(shè)計方案,包括硬件選型;程序流程圖,軟件總體框架等。第 7—8周( 4.8—4.21)進行系統(tǒng)軟件設(shè)計,編出時鐘芯片采集時間的程序及通訊程序, LCD12864液晶顯示程序和控制程序。第 9—10周( 4.22—5.5)進行系統(tǒng)軟件設(shè)計并進行運行仿真。第 11—12周(5.6—5.19)完成電路板制作,總體測試、調(diào)試等。第13周( 5.20—5.26)編寫畢業(yè)設(shè)計論文、制作 PPT、說明書、答辯準備。第14周(5.27—5.31)答 辯。指導(dǎo)教師意見簽名:年月日備注黃菊生 .單片機原理 與 接口技術(shù)[M].北京:國防工業(yè)出版社,2007.9:12-200.閻石.數(shù) 字電子技術(shù)基 礎(chǔ) (第五版)[M]. 北京:高等教育出版社,2006.5:260-344.張國雄 .測控電路 [M].北京:機械工業(yè)出版社 ,2008:1-110.劉大茂 .智能儀器與設(shè)計 [M].北京: 清華大學(xué)出版社 ,2005:20-210.譚浩強.C程序設(shè)計[M].第三版,北京:清華大學(xué)出版社,2005.7:1-180.余家春. Protel99SE電路設(shè)計實用教程 [M].中國鐵道出版社 ,2004:20-120蘇平.單片機的原理與接口技術(shù) [M].北京:電子工業(yè)出版社 ,2006:1-113.尹勇.單片機開發(fā)環(huán)境 μVision2的開發(fā)指南 [M].北京:北京航空航天大學(xué)出版社, 2004:174-198.張斌武 .單片機系統(tǒng) Proteus設(shè)計與仿真 [M].北京:電子工業(yè)出版社,2005:53-88.[10]彭偉 .單片機 C語言程序設(shè)計實訓(xùn) 100例[M].北京 :電子工業(yè)出版社 ,2009:1-240.

3外文翻譯DS1302TrickleChargeTimekeepingChipFEATURESRealtimeclockcountsseconds,minuteshours,dateofthemonth,month,dayoftheweek,andyearwithleapyearcompensationvalidupto2100.31x8RAMforscratchpaddatastorage.SerialI/Oforminimumpincount.2.0–5.5Vfulloperation.Useslessthan300nAat2.0V.Single–byteormultiple–byte(burstmode)datatransferforreadorwriteofclockorRAMdata.8–pinDIPoroptional8 –pinSOICsforsurfacemount.Simple3–wireinterface.TTL–compatible(VCC=5V).Optionalindustrialtemperaturerange–40°Cto+85°C.DS1202compatible.PINASSIGNMENTPINDESCRIPTIONX1,X2:32.768kHzCrystalPins;GND:Ground;RST:Reset;I/O:DataInput/Output;SCLK:SerialClock;VCC1,VCC2:PowerSupplyPins四、DESCRIPTIONTheDS1302TrickleChargeTimekeepingChipcontainsarealtimeclock/calendarand31bytesofstatic RAM.Itcommunicateswithamicroprocessorviaasimpleserialinterface.Therealtimeclock/calendarprovidesseconds,minutes,hours,day,date,month,andyearinformation.Theendofthemonthdateisautomaticallyadjustedformonthswithlessthan31days,includingcorrectionsforleapyear.Theclockoperatesineitherthe24–houror12–hourformatwithanAM/PMindicator.InterfacingtheDS1302withamicroprocessorissimplifiedbyusingsynchronousserialcommunication.Onlythreewiresarerequiredtocommunicatewiththeclock/RAM:(1)RST(Reset),(2)I/O(Dataline),and(3)SCLK(Serialclock).Datacanbetransferredtoandfromtheclock/RAM1byteatatimeorinaburstofupto31bytes.TheDS1302isdesignedtooperateonverylowpowerandretaindataandclockinformationonlessthan1microwatt.TheDS1302isthesuccessortotheDS1202.InadditiontothebasictimekeepingfunctionsoftheDS1202,theDS1302hastheadditionalfeaturesofdualpowerpinsforprimaryandback–uppowersupplies,programmabletricklechargerforVCC1,andsevenadditionalbytesofscratchpadmemory.OPERATIONThemainelementsoftheSerialTimekeeperareshowninFigure1:shiftregister,controllogic,oscillator,realtimeclock,andRAM.DS1302BLOCKDIAGRAMFigure1SIGNALDESCRIPTIONSVCC1:VCC1provideslowpoweroperationinsinglesupplyandbatteryoperatedsystemsaswellaslowpowerbatterybackup.Insystemsusingthetricklecharger,therechargeableenergysourceisconnectedtothispin.VCC2:Vcc2istheprimarypowersupplypininadualsupplyconfiguration.VCC1isconnectedtoabackupsourcetomaintainthetimeanddateintheabsenceofprimarypower.TheDS1302willoperatefromthelargerofVCC1orVCC2.WhenVCC2isgreaterthanVCC1+0.2V,VCC2willpowertheDS1302.WhenVCC2islessthanVCC1,VCC1willpowertheDS1302.SCLK(SerialClockInput)–SCLKisusedtosynchronizedatamovementontheserialinterface.I/O(DataInput/Output)–TheI/Opinisthebi-directionaldatapinforthe3-wireinterface.RST(Reset)–Theresetsignalmustbeassertedhighduringareadorawrite.X1,X2:Connectionsforastandard32.768kHzquartzcrystal.Theinternaloscillatorisdesignedforoperationwithacrystalhavingaspecifiedloadcapacitanceof6pF.COMMANDBYTEThecommandbyteisshowninFigure2.Eachdatatransferisinitiatedbyacommandbyte.TheMSB(Bit7)mustbealogic1.Ifitis0,writestotheDS1302willbedisabled.Bit6specifiesclock/calendardataiflogic0orRAMdataiflogic1.Bits1through5specifythedesignatedregisterstobeinputoroutput,andtheLSB(bit0)specifiesawriteoperation(input)iflogic0orreadoperation(output)iflogic1.ThecommandbyteisalwaysinputstartingwiththeLSB(bit0).ADDRESS/COMMANDBYTEFigure2RESETANDCLOCKCONTROLAlldatatransfersareinitiatedbydrivingtheRSTinputhigh.TheRSTinputservestwofunctions. First,RSTturnsonthecontrollogicwhichallowsaccesstotheshiftregisterfortheaddress/commandsequence.Second,theRSTsignalprovidesamethodofterminatingeithersinglebyteormultiplebyte datatransfer.Aclockcycleisasequenceofafallingedgefollowedbyarisingedge.Fordatainputs,datamustbevalidduringtherisingedgeoftheclockanddatabitsareoutputonthefallingedgeofclock.IftheRSTinputislowalldatatransferterminatesandtheI/Opingoestoahighimpedancestate.DatatransferisillustratedinFigure3.Atpower –up,RSTmustbealogic0untilVCC>2.0volts.AlsoSCLKmustbeatalogic0whenRSTisdriventoalogic1state.DATATRANSFERSUMMARYFigure3DATAINPUTFollowingtheeightSCLKcyclesthatinputawritecommandbyte,adatabyteisinputontherisingedgeofthenexteightSCLKcycles.AdditionalSCLKcyclesareignoredshouldtheyinadvertentlyoccur.Dataisinputstartingwithbit0.DATAOUTPUTFollowingtheeightSCLKcyclesthatinputareadcommandbyte,adatabyteisoutputonthefalling edgeofthenexteightSCLKcycles.Notethatthefirstdatabittobetransmittedoccursonthefirstfallingedgeafterthelastbitofthecommandbyteiswritten.Additional SCLKcyclesretransmitthedatabytesshouldtheyinadvertentlyoccursolongasRSTremainshigh.Thisoperationpermitscontinuousburstmodereadcapability.Also,theI/Opinistri–stateduponeachrisingedgeofSCLK.Dataisoutputstartingwithbit0.BURSTMODEBurstmodemaybespecifiedforeithertheclock/calendarortheRAMregistersbyaddressinglocation31decimal(address/commandbits1through5=logic1).Asbefore,bit6specifiesclockorRAMandbit0specifiesreadorwrite.Thereisnodatastoragecapacityatlocations9through31intheClock/CalendarRegistersorlocation31intheRAMregisters.Readsorwritesinburstmodestartwithbit0ofaddress0.Whenwriting totheclockregistersintheburstmode,thefirsteightregistersmustbewritteninorderforthe

datatobetransferred.However,whenwritingtoRAMinburstmodeitisnotnecessarytowriteall31bytesforthedatatotransfer.EachbytethatiswrittentowillbetransferredtoRAMregardlessofwhetherall31bytesarewrittenornot.8)CLOCK/CALENDARTheclock/calendariscontainedinsevenwrite/readregistersasshowninFigure4.Datacontainedintheclock/calendarregistersisinbinarycodeddecimalformat(BCD).REGISTERADDRESS/DEFINITIONFigure:4CLOCKHALTFLAGBit7ofthesecondsregisterisdefinedastheclockhaltflag.Whenthisbitissettologic1,theclockoscillatorisstoppedandtheDS1302isplacedintoalow–powerstandbymodewithacurrentdrainoflessthan100nanoamps.Whenthisbitiswrittentologic0,theclockwillstart.Theinitialpoweronstateisnotdefined.AM-PM/12-24MODEBit7ofthehoursregisterisdefinedasthe12 –or24–hourmodeselectbit.Whenhigh,the12 –hourmodeisselected.Inthe12 –hourmode,bit5istheAM/PMbitwithlogichighbeingPM.Inthe24–hourmode,bit5isthesecond10-hourbit(20 –23hours).WRITEPROTECTBITBit7ofthecontrolregisteristhewrite-protectbit.Thefirstsevenbits(bits0 –6)areforcedto0andwillalwaysreada0whenread.BeforeanywriteoperationtotheclockorRAM,bit7mustbe0.Whenhigh,thewriteprotectbitpreventsawriteoperationtoanyotherregister.Theinitialpoweronstateisnotdefined.ThereforetheWPbitshouldbeclearedbeforeattemptingtowritetothedevice.TRICKLECHARGEREGISTERThisregistercontrolsthetricklechargecharacteristicsoftheDS13

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論