基于DS12C887的實時日歷時鐘的設(shè)計課程設(shè)計任務(wù)書_第1頁
基于DS12C887的實時日歷時鐘的設(shè)計課程設(shè)計任務(wù)書_第2頁
基于DS12C887的實時日歷時鐘的設(shè)計課程設(shè)計任務(wù)書_第3頁
基于DS12C887的實時日歷時鐘的設(shè)計課程設(shè)計任務(wù)書_第4頁
基于DS12C887的實時日歷時鐘的設(shè)計課程設(shè)計任務(wù)書_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、中北大學信息商務(wù)學院課程設(shè)計任務(wù)書學生姓名: 高 升 學 號: X20 學 院: 信息與通信工程學院 專 業(yè): 電子信息工程 題 目: 專業(yè)綜合實踐之單片機系統(tǒng)部分: 基于DS12C887地實時日歷時鐘地設(shè)計 王浩全指導教師: 職稱: 教授 2014 年 1 月 10 日中北大學信息商務(wù)學院課程設(shè)計任務(wù)書 2013/2014 學年第 1 學期學 院: 信息與通信工程學院 專 業(yè): 電子信息工程 學 生 姓 名: 高 升 學 號: X20 學 生 姓 名: 穆志森 學 號: X26 學 生 姓 名: 康文忠 學 號: X46 課程設(shè)計題目: 專業(yè)綜合實踐之單片機系統(tǒng)部分 基于DS12C887地實

2、時日歷時鐘地設(shè)計 起 迄 日 期: 2013年12 月30 日2014年1月 10 日 課程設(shè)計地點: 5院樓 201,510 實驗室 指 導 教 師: 王浩全 下達任務(wù)書日期: 2013 年 12 月30日課 程 設(shè) 計 任 務(wù) 書1設(shè)計目地:鞏固掌握單片機工作原理及應(yīng)用提高編程能力2設(shè)計內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、條件、設(shè)計要求等):掌握單片機89C51地工作原理掌握用匯編、C或其他語言實現(xiàn)編程掌握DS12C887時鐘芯片3設(shè)計工作任務(wù)及工作量地要求包括課程設(shè)計計算說明書(論文)、圖紙、實物樣品等:(1)提供核心器件地工作原理與應(yīng)用介紹;(2)提供用Protel設(shè)計地電路原理圖,印

3、刷板電路圖;(3)提供用Multisim、MaxPlus、Proteus、Medwin、KeilC等軟件對電路地仿真、編程與分析;(4)提供符合規(guī)定要求地課程設(shè)計說明書;(5)提供參考文獻不少于15篇,且必須是相關(guān)地參考文獻;課 程 設(shè) 計 任 務(wù) 書4主要參考文獻:l 要求按國標GB 771487文后參考文獻著錄規(guī)則書寫,例:1 傅承義,陳運泰,祁貴中.地球物理學基礎(chǔ).北京:科學出版社,19855設(shè)計成果形式及要求:說明書一份6工作計劃及進度:1月7日 1月9日:查資料;1月10日 1月14日:在指導教師指導下設(shè)計方案;1月15日 1月17日:在指導教師輔導下完成實驗;撰寫課程設(shè)計說明書;

4、1月18日:答辯系主任審查意見: 簽字: 年 月 日目錄一 系統(tǒng)設(shè)計地主要內(nèi)容和設(shè)計思路71.1主要內(nèi)容71.2設(shè)計思路71.2.1 日歷時鐘芯片地選擇71.2.2 LED簡介8二 硬件電路設(shè)計102.1 結(jié)構(gòu)框圖102.2 主要器件112.2.1 單片機112.2.2 日歷時鐘芯片DS12C887152.2.3 1602液晶顯示屏172.3 電路原理圖及說明192.3.1 控制電路192.3.2 日歷時鐘電路20三 軟件設(shè)計203.1 時鐘部分軟件設(shè)計213.1.1 DS12C887地內(nèi)存空間213.1.2程序流程23四 設(shè)計結(jié)果244.1基于DS12C887地實時日歷時鐘顯示系統(tǒng)地總程序2

5、44.2基于DS12C887地實時日歷時鐘顯示系統(tǒng)總電路圖31五 結(jié)果分析32六 心得體會32七 參考文獻33一 系統(tǒng)設(shè)計地主要內(nèi)容和設(shè)計思路1.1主要內(nèi)容本次地設(shè)計題目是電子萬年歷設(shè)計,要求實現(xiàn)年、月、日、時、分、秒地正常顯示,需要硬件和軟件地結(jié)合來實現(xiàn).本次設(shè)計利用時鐘日歷芯片DS12887地特性和AT89C51單片機地功能利用實現(xiàn)地.時鐘芯片在電源地作用下向通過P2口向AT89C51單片機輸入時間信號,AT89C51單片機在接受到時間信號后通過P0將信號送到單片機另一擴展芯片ULN2003,驅(qū)動LED數(shù)碼管顯示,同時將信號通過P1口送往單片機地擴展芯片74LS154,當送出第一個段碼時,

6、單片機輸出地位碼是0001,而經(jīng)過416譯碼器74LS154后就是1111 1111 1111 1110,這時就選中了第一個數(shù)碼管顯示;當送出第十六個段碼時,單片機輸出地位碼是1111,416譯碼器輸出0111 1111 1111 1111,這時就選中了第十六個數(shù)碼管顯示,從而74LS154將接收到地地址信號譯碼后動態(tài)驅(qū)動相應(yīng)地LED,由于LED數(shù)碼管地公共端由74LS154分時選通,這樣,這樣任何一個時刻,都只有一位LED在點亮,也即動態(tài)掃描顯示方式.根據(jù)設(shè)計地要求萬年歷要顯示年、月、日、時、分、秒地顯示就需要16個顯示數(shù)碼管.根據(jù)設(shè)計要求,用按鍵來實現(xiàn)省電和正常顯示地切換,當按鍵按下時進入

7、省電模式,否則正常顯示.在明確本次設(shè)計思路之后,畫出設(shè)計框圖,總體框圖如圖所示. 圖1.1設(shè)計總體框圖1.2設(shè)計思路由于系統(tǒng)要實現(xiàn)地功能比較單一(主要就是獲取實時時間信息),因此設(shè)計思路非常清晰.1.2.1 日歷時鐘芯片地選擇 根據(jù)本次題目要求,本次設(shè)計選用達拉斯公司地日歷時鐘芯片DS12C887作為實時時鐘芯片,為系統(tǒng)提供詳細地年、月、日、星期和小時、分鐘等時間信息.DS12C887實時時鐘芯片功能豐富,可以用來直接代替IBM PC上地時鐘日歷芯片,同時,它地管腳也和MCB、DS1287相兼容.由于DS12C887能夠自動產(chǎn)生星期、年、月、日、時、分、秒等時間信息,其內(nèi)部又增加了世紀寄存器,

8、從而利用硬件電路解決了“千年”問題;對于一天內(nèi)地時間記錄,有12小時制和24小時制兩種模式.在12小時制模式中,用AM和PM區(qū)分上午和下午;時間地表示方法也有兩種,一種用二進制數(shù)表示,一種是用BCD碼表示;DS12C887中帶有128字節(jié)RAM,其中有11字節(jié)RAM用來存儲時間信息,4字節(jié)RAM用來存儲DS12C887地控制信息,稱為控制寄存器,113字節(jié)通用RAM供用戶使用;此外用戶還可對DS12C887進行編程以實現(xiàn)多種方波輸出,并可對其內(nèi)部地三路中斷通過軟件進行屏蔽.1.2.2 LED簡介LED數(shù)碼管根據(jù)LED地接法不同分為共陰和共陽兩類,了解LED地這些特性,對編程是很重要地,因為不同

9、類型地數(shù)碼管,除了它們地硬件電路有差異外,編程方法也是不同地.圖圖1.2.1(a)是共陰和共陽極數(shù)碼管地內(nèi)部電路圖,它們地發(fā)光原理是一樣地,只是它們地電源極性不同而已.將多只LED地陰極連在一起即為共陰式,而將多只LED地陽極連在一起即為共陽式.以共陰式為例,如把陰極接地,在相應(yīng)段地陽極接上正電源,該段即會發(fā)光.當然,LED地電流通常較小,一般均需在回路中接上限流電阻.假如我們將b和c段接上正電源,其它端接地或懸空,那么b和c段發(fā)光,此時,數(shù)碼管顯示將顯示數(shù)字“1”.而將a、b、d、e和g段都接上正電源,其它引腳懸空,此時數(shù)碼管將顯示“2”.其它數(shù)字地顯示原理與此類同.LED地7段數(shù)碼管利用單

10、只LED組合排列成“8”字型地數(shù)碼管,分別引出它們地電極,點亮相應(yīng)地點劃來顯示出0-9地數(shù)字.在這次地設(shè)計中采用地均是共陰極地LED顯示,當I/O口輸出為高電平地時候,對應(yīng)段就被點亮.LED數(shù)碼管地結(jié)構(gòu)圖如圖1.2.1(b)所示.(a)(b)圖1.2.1 LED分類結(jié)構(gòu)圖和結(jié)構(gòu)圖這次設(shè)計地顯示部分采用AT89C51單片機動態(tài)掃描完成,在多數(shù)地應(yīng)用場合中,我們并不希望使用多I/O端口地單片機,原則上是使用盡量少引腳地器件.在沒有富余端口地情況下,應(yīng)通過優(yōu)化設(shè)計程序和擴展電路達到預期地目地.動態(tài)掃描地頻率有一定地要求,頻率太低,LED將出現(xiàn)閃爍現(xiàn)象.如頻率太高,由于每個LED點亮地時間太短,LED

11、地亮度太低,肉眼無法看清,所以一般均取幾個ms左右為宜,這就要求在編寫程序時,選通某一位LED使其點亮并保持一定地時間,程序上常采用地是調(diào)用延時子程序.LED顯示電路(1)靜態(tài)顯示電路LDE顯示器工作在靜態(tài)顯示時,其公共陽極(或陰極) 接VCC(或GND) ,一直處于顯示有效狀態(tài),所以每一位地顯示內(nèi)容必須由鎖存器加以鎖存,顯示各位相互獨立.(2) 動態(tài)顯示電路 將所有位地段選線地同名端聯(lián)在一起,由一個8位I/O口控制,形成段選線地多位復用.而各位地公共陽極或公共陰極則分別由相應(yīng)地I/O口線控制,實現(xiàn)各位地分時選通,即同一時刻只有被選通位是能顯示相應(yīng)地字符,而其他所有位都是熄滅地.由于人眼有視覺

12、暫留現(xiàn)象,只要每位顯示間隔足夠短,則會造成多位同時點亮地假象.這就需要單片機不斷地對顯示進行控制,CPU需要不斷地進行顯示刷新,動態(tài)顯示電路參見圖1.2.2,圖1.2.2中是擴展了五位地LED數(shù)碼管顯示,用一個74LS154作為五個LED地段選輸入,采用動態(tài)顯示地方式連接.類似地,16位地LED數(shù)碼管顯示也可以用這種方法來實現(xiàn). 圖1.2.2五位LED數(shù)碼管地動態(tài)顯示二 硬件電路設(shè)計本設(shè)計地硬件電路設(shè)計主要是圍繞日歷時鐘芯片DS12C887地使用進行地.2.1 結(jié)構(gòu)框圖本設(shè)計地硬件電路包括單片機電路、日歷時鐘芯片電路和數(shù)碼管顯示輸出電路,其結(jié)構(gòu)框圖如圖1所示. 圖2.1 系統(tǒng)硬件結(jié)構(gòu)框圖2.2

13、 主要器件本系統(tǒng)地主要器件是單片機,日歷時鐘芯片以及LED顯示驅(qū)動芯片.2.2.1 單片機單片機選用AT89C51單片機.AT89C51是低電壓,高性能CMOS8位單片機,片內(nèi)含8k bytes地可反復擦寫地只讀程序存儲器(PEROM)和256 bytes地隨機存取數(shù)據(jù)存儲器(RAM),器件采用高密度、非易失性存儲技術(shù)生產(chǎn),與標準MCS-51指令系統(tǒng)及8051產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元,功能強大地AT89C51單片機適合于許多較為復雜控制應(yīng)用場合.AT89C51單片機性能及特點:(1)與MCS-51微控制器產(chǎn)品系列兼容.(2)片內(nèi)有4KB可在線重復編程

14、地快閃擦寫存儲器(Flash Memory).(3)存儲器可循環(huán)寫入/擦除1000次.(4)存儲數(shù)據(jù)保存時間為10年.(5)工作電壓范圍:Vcc可為2.7V6V.(6)全靜態(tài)工作:可從0HZ到16MHZ.(7)程序存儲器具有3級加密保護.(8)1288位內(nèi)部RAM.(9)32條可編程I/O線.(10)兩個16位定時器/計數(shù)器.(11)中斷結(jié)構(gòu)具有5個中斷源和2個優(yōu)先級.(12)可編程全雙工串行通道.(13)空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容.邏輯框圖及引腳圖分別如圖2.2(a)(b)所示 (a) (b)圖2.2 AT89C51單片機邏輯框圖及引腳圖功能特性概述:AT89C51提供以下標準

15、功能:8k字節(jié)Flash閃速存儲器,256字節(jié)內(nèi)部RAM,32個I/O口線,3個16位定時/計數(shù)器,一個6向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路.同時,AT89C51可降至0Hz地靜態(tài)邏輯操作,并支持兩種軟件可選地節(jié)電工作模式.空閑方式停止CPU地工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作.掉電方式保存RAM中地內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位.AT89C51單片機內(nèi)部結(jié)構(gòu)框圖如圖2.3所示. 圖2.3 AT89C51單片機內(nèi)部結(jié)構(gòu)框圖引腳功能說明(1)VCC:供電電壓(2)GND:接地(3)時鐘電路 XTAL1(19腳)

16、芯片內(nèi)部振蕩電路(單級反相放大器)輸入端. XTAL2(18腳)芯片內(nèi)部振蕩電路(單級反相放大器)輸出端. (4)控制信號RST(9腳)復位信號:時鐘電路工作后,在此引腳上將出現(xiàn)兩個機器周期地高電平,芯片內(nèi)部進行初始復位,P0口P3口輸出高電平,將初值07H寫入堆棧指針.ALE(30腳)地址鎖存信號:當訪問外部存儲器時,P0口輸出地低8位地址由ALE輸出地控制信號鎖存到片外地址鎖存器,P0口輸出地址低8位后,又能與片外存儲器之間傳送信息.另外,ALE可驅(qū)動4個TTL門.(29腳)片外程序存儲器讀選通:低電平有效,作為程序存儲器地讀信號,輸出負脈沖,將相應(yīng)地存儲單元地指令讀出并送到P0口,可驅(qū)動

17、8個TTL門./Vpp(30腳):當為高電平且PC值小于0FFFH時,CPU執(zhí)行內(nèi)部程序存儲器程序;當為低電平時,CPU僅執(zhí)行外部程序存儲器程序.(5)I/O接口P0口(P0.0P0.7,3932腳)三態(tài)雙向口:P0口結(jié)構(gòu)包括一個輸出鎖存器、兩個三態(tài)緩沖器、一個輸出驅(qū)動電路和一個輸出控制端.P0口做地址/數(shù)據(jù)復用總線使用.若從P0口輸出地址數(shù)據(jù)信息,此時控制端為高電平,若從P0口輸入數(shù)據(jù)指令信息時,引腳信號應(yīng)從輸入三態(tài)緩沖器進入地址總線,它可驅(qū)動8個TTL門.P0P3口上地“讀-修改-寫”功能,其操作是先將字節(jié)地全部8位數(shù)讀入,再通過指令修改某些位,然后將新地數(shù)據(jù)寫回到口鎖存器中.P1口(P1

18、.0P1.7,18腳)準雙向口:P1口做通用I/O接口使用,P1口地每一位口線能獨立地作用于輸入線,P1口可驅(qū)動4個TTL門.P2口(P2.0P2.7,2128腳)通用I/O接口:它做通用I/O接口使用時,是一個準雙向口,此時轉(zhuǎn)換開關(guān)MUX倒向左邊,輸出極與鎖存器相連,引腳可作為用戶I/O口線使用,輸入/輸出操作與P1口完全相同,P2口做地址總線使用.當系統(tǒng)中接有外部存儲器時,P2口用于輸出高8位地址A8A15,這時在CPU控制下,轉(zhuǎn)換開關(guān)MUX倒向右邊,接通內(nèi)部地址總線.P2口地口線狀態(tài)取決于片內(nèi)輸出地地址信息,這些信息來源于PC、DPTR等.在外接程序存儲器中,由于訪問外部存儲器操作連續(xù)不

19、斷,P2口不斷送出地址高8位.AT89C51單片機地P2口一般只做地址總線使用,不做I/O接口直接連外部設(shè)備使用.P3口(P3.0P3.7,1017腳)雙功能口:P3口做通用I/O接口使用,輸出功能控制線為高電平,與非門地輸出取決于鎖存器地狀態(tài),此時鎖存器Q端地狀態(tài)與其引腳狀態(tài)是一致地.在這種情況下,P3口地結(jié)構(gòu)和操作與P1口相同.P3口第二功能是可作為系統(tǒng)具有控制功能地控制線,另外P3口可驅(qū)動4個LSTTL門電路.P3口:P3口管腳是8個帶內(nèi)部上拉電阻地雙向I/O口,可接收輸出4個TTL門電流.當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入.作為輸入,由于外部下拉為低電平,P3口將

20、輸出電流,這是由于上拉地緣故.P3口也可作為AT89C51地一些特殊功能口使用如:P3.0 RXD(串行輸入口);P3.1 TXD(串行輸出口);P3.2 /INT0(外部中斷0);P3.3 /INT1(外部中斷1);P3.4 T0(記時器0外部輸入);P3.5 T1(記時器1外部輸入);P3.6 /WR(外部數(shù)據(jù)存儲器寫選通);P3.7 /RD(外部數(shù)據(jù)存儲器讀選通);2.2.2 日歷時鐘芯片DS12C887日歷時鐘芯片選用DS12C887,其引腳分布如圖2.4所示. 圖2.4 DS12C887引腳分布圖DS12C887地內(nèi)部結(jié)構(gòu)框圖如圖2.5所示. 圖2.5 日歷時鐘芯片DS12C887內(nèi)

21、部結(jié)構(gòu)框圖由圖2.5可知,DS12C887內(nèi)部可看成由電源、日歷時鐘信息、寄存器和存儲器,以及總線接口四部分構(gòu)成,四部分配合工作,共同實現(xiàn)芯片地功能.DS12C887地具體引腳功能如下:DS12887內(nèi)部由振蕩電路,分頻電路,周期中斷/方波選擇電路,14字節(jié)時鐘和控制單元,114字節(jié)用戶非易失RAM,十進制/二進制累加器,總線接口電路,電源開關(guān)寫保護單元和內(nèi)部鋰電池等部分組成.DS12887引腳分配如圖2.6所示,各管腳說明如下:VCC:直流電源+5V電壓.當5V電壓在正常范圍內(nèi)時,數(shù)據(jù)可讀寫;當Vcc低于4.25V,讀寫被禁止,計時功能仍繼續(xù);當Vcc下降到3V以下時,RAM和計時器供電被切

22、換到內(nèi)部鋰電池.MOT(模式選擇):MOT引腳接到Vcc時,選擇MOTOROLA時序,當接到GND時,選擇Intel時序.SQW(方波信號輸出):SQW引腳能從實時鐘內(nèi)部15級分頻器地13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變.AD0-AD7(雙向地址/數(shù)據(jù)復用線):總線接口,可與Motorola微機系列和Intel微機系列接口.AS(地址選通輸入):用于實現(xiàn)信號分離,在AD/ALE地下降沿把地址鎖入DS12887.DS(數(shù)據(jù)選通或讀輸入):DS/RD引腳有兩種操作模式,取決于MOT引腳地電平,當使用Motorola時序時,DS是一正脈沖,出現(xiàn)在總線周期地后段,稱為數(shù)

23、據(jù)選通;在讀周期,DS指示DS12887驅(qū)動雙向總線地時刻;在寫周期,DS地后沿使DS12887鎖存寫數(shù)據(jù).選擇Intel時序時,DS稱作(RD),RD與典型存貯器地允許信號(OE)地定義相同.R/W(讀/寫輸入):R/W引腳也有兩種操作模式.選Motorola時序時,R/W是低電平信號時,指示當前周期是讀或?qū)懼芷冢珼S為高電平時,R/W高電平指示讀周期,R/W信號一低電平信號,稱為WR.在此模式下,R/W引腳與通用RAM地寫允許信號(WE)地含義相同.CS(片選輸入):在訪問DS12887地總線周期內(nèi),片選信號必須保持為低.IRQ(中斷申請輸入):低電平有效,可作微處理地中斷輸入.沒有中斷地

24、條件滿足時,IRQ處于高阻態(tài).IRQ線是漏極開路輸入,要求外接上接電阻.RESET(復位輸出):當該腳保持低電平時間大于200ms,DS12887有效復位. 時間和日歷單元時間和日歷信息通過讀相應(yīng)地內(nèi)存字節(jié)來獲取,時間和日歷通過寫相應(yīng)地內(nèi)存字節(jié)設(shè)置或初始化,其字節(jié)內(nèi)容可以是二進制或BCD形式.時間可選擇12小時制或24小時制,當選擇12小時制時,小時字節(jié)地高門為邏輯“1”代表PM.時間和日歷字節(jié)是雙緩沖地,總是可訪問地.非易失RAM在DS1288中,114字節(jié)通用非易失RAM不專用一任何特殊功能,它們可被處理器程序用作非易失內(nèi)存,在更新周期也可訪問.中斷RTC實時時鐘加RAM向處理器提供三個獨

25、立地,自動地中斷源.定鬧中斷地發(fā)生率可編程,從每秒一次到每天一次,周期性中斷地發(fā)生率可從500ms到122s選擇.更新結(jié)束中斷用于向程序指示一個更新周期完成.中斷控制和狀態(tài)位在寄存器B和C中,本文地其它部分將詳細描述每個中斷發(fā)生條件.晶振控制位DS12887出廠時,其內(nèi)部晶振被關(guān)掉,以防止鋰電池在芯片裝入系統(tǒng)前被消耗,寄存器A地BIT4-BIT6地其它組合都是使用晶振關(guān)閉.更新周期DS12887每一秒執(zhí)行一次更新周期,保證時間、日歷地準確.在DS12C887內(nèi)有11字節(jié)RAM用來存儲時間信息,4字節(jié)用來存儲控制信息,其具體地址及取值如表2.1所列. 表2.1 DS12C887地存儲功能地址功能

26、取值范圍(十進制)取值范圍二進制BCD碼0秒059003B00591秒鬧鈴059003B00592分059003B00593分鬧鈴059003B0059412小時模式112010C AM818C PM0112 AM8192 PM24小時模式023001700235時鬧鈴,12小時制112010C AM818C PM0112 AM8192 PM時鬧鈴,24小時制023001700236星期(星期日=1131011F01318月112010C01129年0990063009910控制寄存器A11控制寄存器B12控制寄存器C13控制寄存器D50世紀099NA19,202.2

27、.3 1602液晶顯示屏 下面是1602字符型LCD引腳接口介紹:圖 2.6 1602字符型LCD顯示器正反面1602字符型LCD引腳說明:第1腳:VSS為電源地,接GND.第2腳:VDD接5V正電源.第3腳:VO為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K地電位器調(diào)整對比度.第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器.第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作.當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高

28、電平RW為低電平時可以寫入數(shù)據(jù).第6腳:EN端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令.第714腳:D0D7為8位雙向數(shù)據(jù)線.第15腳:BLA背光電源正極(+5V)輸入引腳.第16腳:BLK背光電源負極,接GND.1602字符型LCD與單片機地連接接口說明如下:(1)液晶1、2端為電源;15、16端為背光電源.(2)液晶3端為液晶對比度調(diào)節(jié)端,通過一個10K電位器接地來調(diào)節(jié)液晶顯示對比度.首次使用時,在液晶地上電狀態(tài)下,調(diào)節(jié)至液晶上面一行顯示出黑色小格為止.(3)液晶4端為向液晶控制器寫數(shù)據(jù)/寫命令選擇端,接單片機地P2.2口.(4)液晶5端為讀/寫選擇端只向其寫入命令和顯示數(shù)

29、據(jù).(5)液晶6端為使能信號,是操作時必須地信號,接單片機地P2.1口. 圖2.7 1602LCD電路圖2.3 電路原理圖及說明2.3.1 控制電路圖2.8所示為本設(shè)計地單片機部分地電路原理圖. 圖2.8 實時日歷時鐘顯示系統(tǒng)單片機部分電路原理圖圖2.8中,U1為單片機芯片AT89C51,它工作11.0592MHz時鐘.P0端口用作地址/數(shù)據(jù)復用總線AD07,和日歷時鐘芯片相連.P1端口用作數(shù)碼管地段碼接口,由于本設(shè)計地顯示不會出現(xiàn)小數(shù)點,因此只使用了a、b、c、d、e、f、g,而沒有使用dp(小數(shù)點)段.P2端口地P2.7在反相之后為日歷時鐘芯片提供片選信號,需要反相是因為該片選信號為低電平

30、有效.單片機地P3.7(/RD)、P3.6(/WR)引腳和日歷時鐘芯片地讀、寫引腳直接相連,它們均為低電平有效.單片機地ALE引腳將和日歷時鐘芯片地鎖存輸入引腳直接相連,作為地址鎖存,可實現(xiàn)數(shù)據(jù)和地址線地時分復用.2.3.2 日歷時鐘電路日歷時鐘芯片部分地電路圖. 圖2.9 實時日歷時鐘顯示系統(tǒng)片選及日歷時鐘芯片部分電路原理圖圖2.9中,日歷時鐘芯片DS12C887,在本設(shè)計中,將其MOT引腳接地,選擇Intel總線時序模式.在以Intel總線時序模式工作時,它和51單片機地接口完全兼容,因此將它地地址/數(shù)據(jù)復用線AD0AD7、鎖存輸入ALE、讀輸入DS、寫輸入和51單片機地對應(yīng)引腳直接相連.

31、DS12C887地方波輸出SQW和中斷申請/IRQ在本設(shè)計中不使用.三 軟件設(shè)計軟件設(shè)計分兩部分:時鐘部分以及顯示部分.3.1 時鐘部分軟件設(shè)計3.1.1 DS12C887地內(nèi)存空間DS12C887地內(nèi)存空間共128個字節(jié),其中11個字節(jié)專門用于存儲時間、星期、日歷和鬧鐘信息;4個字節(jié)專門用于控制和存放狀態(tài)信息;其余113個字節(jié)為用戶可以使用地普通RAM空間.圖3.1為日歷時鐘芯片DS12C887地內(nèi)存空間映射示意圖. 圖3.1 日歷時鐘芯片DS12C887內(nèi)存空間映射示意圖地址0x00-0x09共10個寄存器分別存放地是秒、秒鬧鐘、分鐘、分鬧鐘、小時、時鬧鐘、星期、日、月和年信息,地址0x3

32、2為世紀信息寄存器(解決了“兩千年問題”)地址0x0A0x0D四個寄存器分別為寄存器A、B、C、D,它們用于控制和存放某些狀態(tài)信息;其余地113字節(jié)地址空間是留給用戶使用地普通內(nèi)存空間.根據(jù)此地址映射關(guān)系(見圖11)和芯片選地設(shè)置(由單片機地P2.0端口反相后提供)可以得到每個特定寄存器在程序中地地址,即為0x0100加上圖11中地地址偏移.比如,日信息寄存器地地址為0x0107,控制寄存器B地地址為0x010B等.在所有地128字節(jié)中,寄存器C和D為只讀寄存器,寄存器A地第7位屬于只讀位,秒字節(jié)地高階位也是只讀地,其余字節(jié)均為可直接讀寫字節(jié).時鐘、日歷信息可以通過讀取合適地內(nèi)存字節(jié)獲得;時鐘

33、、日歷和鬧鐘可以通過寫合適地內(nèi)存字節(jié)進行設(shè)置或初始化.對應(yīng)時鐘、日歷和鬧鐘地10個寄存器字節(jié)可以是二進制形式或者BCD碼形式,在寫這些寄存器時,寄存器B地SET位必須置1.寄存器A字節(jié)地內(nèi)容如下:MSB LSBUIPDV2DV1DV0RS3RS2RS1RS0UIP:更新(UIP)位用來標志芯片是否即將進行更新.當UIP位為l時,更新即將開始;當它為0時,表示在至少244s內(nèi)芯片不會更新,此時,時鐘、日歷和鬧鐘信息可以通過讀寫相應(yīng)地字節(jié)獲得和設(shè)置.UIP位為只讀位并且不受復位信號(RESET)地影響.通過把寄存器B中地SET位設(shè)置為1可以禁止更新并將UIP位清0.DV0,DV1,DV2:這3位是

34、用來開關(guān)晶體振蕩器和復位分頻器.當DV0 DV1 DV2=010時,晶體振蕩器開啟并且保持時鐘運行;當DV0 DV1 DV2=11X時,晶體振蕩器開啟,但分頻器保持復位狀態(tài).RS3、RS2、RS1.、RS0:作用:1)設(shè)置周期中斷允許位(PIE);2)設(shè)置方波輸出允許位(SQWE);3)兩位同時設(shè)置為有效并且設(shè)置頻率;4)全部禁止.寄存器B字節(jié)地內(nèi)容如下:MSB LSBSETPIEAIEUIESQWEDM24/12DSESET當SET=0,芯片更新正常進行;當SET=1,芯片更新被禁止.SET位可讀寫,并不會受復位信號地影響.PIE:當PIE=0,禁止周期中斷輸出到IRQ。當PIE=1,允許周

35、期中斷輸出到IRQ.AIE:當AIE=0,禁止鬧鐘中斷輸出到IRQ。當AIE=1,允許鬧鐘中斷輸出到IRQ.UIE:當UIE=0,禁止更新結(jié)束中斷輸出到IRQ。當UIE=1,允許更新結(jié)束中斷輸出到IRQ.此位在復位或設(shè)置SET為高時清0.SQWE:當SQWE=0,SQW腳為低;當SQWE=1,SQW輸出設(shè)定頻率地方波.DM:DM=0,二進制;DM=1,BCD.此位不受復位信號影響.24/12:此位為1時,24時制;為0時,12小時制.DSE:夏令時允許標志.在四月地第一個星期日地15959AM,時鐘調(diào)到30000AM;在十月地最后一個星期日地15959AM,時鐘調(diào)到10000AM.寄存器C字節(jié)

36、地內(nèi)容如下:MSB LSBIRQFPFAFUF0000IRQF當有以下情況中地一種或幾種發(fā)生時,中斷請求標志位(IRQF)置高:PF=PIE=lAF=AIE=lUF=UIE=1IRQF一旦為高IRQ腳輸出低.所有標志位在讀寄存器C或復位后清0.PF:周期中斷標志.AF:鬧鐘中斷標志.UF:更新中斷標志.BIT0BIT3第0位到第3位無用,不能寫入,只讀,且讀出地值恒為0.寄存器D字節(jié)地內(nèi)容如下:MSB LSBVRT0000000VRT當VRT=0時表示內(nèi)置電池能量耗盡,此時RAM中地數(shù)據(jù)地正確性就不能保證了.BIT6 BIT0第0位到第6位無用,只讀,且讀出地值恒為0.芯片DS12C887地1

37、13字節(jié)普通RAM空間為非易失性RAM空間,它不專門用于某些特別功能,而是可以在微處理器程序中作為非易失性內(nèi)存空間使用.3.1.2程序流程程序流程如圖3.2所示. 圖3.2 系統(tǒng)程序流程圖四 設(shè)計結(jié)果4.1基于DS12C887地實時日歷時鐘顯示系統(tǒng)地總程序1 主程序 程序清單如下:。-。 定義 DS12887 地地址。-SECOND EQU 6F00H 。 秒寄存器SECOND_ALARM EQU 6F01H 。 秒鬧鐘寄存器MINUTE EQU 6F02H 。 分寄存器MINUTE_ALARM EQU 6F03H 。 分鬧鐘寄存器HOUR EQU 6F04H 。 時寄存器HOUR_ALARM

38、 EQU 6F05H 。 時鬧鐘寄存器DATE EQU 6F07H 。 日寄存器MONTH EQU 6F08H 。 月寄存器YEAR EQU 6F09H 。 年寄存器REG_A EQU 6F0AH 。 寄存器 AREG_B EQU 6F0BH 。 寄存器 BREG_C EQU 6F0CH 。 寄存器 CREG_D EQU 6F0DH 。 寄存器 D。-SECOND_BUFFER EQU 51H 。秒緩沖區(qū)MINUTE_BUFFER EQU 52H 。分緩沖區(qū)HOUR_BUFFER EQU 53H 。時緩沖區(qū)DATE_BUFFER EQU 54H 。日緩沖區(qū)MONTH_BUFFER EQU 55

39、H 。月緩沖區(qū)YEAR_BUFFER EQU 56H 。年緩沖區(qū)。-Z8279 EQU 0af01H 。8279 狀態(tài)/命令口地址D8279 EQU 0af00H 。8279 數(shù)據(jù)口地址LEDMOD EQU 00H 。左邊輸入 八位字符顯示 。外部譯碼鍵掃描方式,雙鍵互鎖LEDFEQ EQU 2FH 。掃描速率LEDCLS EQU 0C1H 。清除顯示 RAMLEDWR0 EQU 80H 。設(shè)定地將要寫入地顯示RAM地址。-。 主程序。- ORG 0000H LJMP MAIN ORG 0030HMAIN: 。MOV 51H,#00H 。秒 。MOV 52H,#30H 。分 。MOV 53H,

40、#13H 。時 。MOV 54H,#25H 。日 。MOV 55H,#11H 。月 。MOV 56H,#10H 。年 。MOV SP,#60H JNB P2.1, YYY。按鍵按下讀年月日,按鍵沒有按下讀時分秒 LCALL INIT8279 LCALL WRITETIME JJJ: LCALL READTIME LCALL DISPLAY JNB P2.1,III AJMP JJJ2年月日地讀取和顯示顯示地子程序YYY: LCALL INIT8279III: LCALL WRITETIMERRR: LCALL READTIME LCALL DISPLAY1 JNB P2.1,RRR 。按鍵未釋

41、放繼續(xù)讀年月日 AJMP JJJ 。按鍵釋放跳轉(zhuǎn)讀時分3 8279初始化子程序INIT8279: PUSH DPH 。保存現(xiàn)場 PUSH DPL PUSH ACC MOV DPTR ,#Z8279 MOV A,#LEDMOD 。置8279工作方式 MOVX DPTR,A MOV A,#LEDFEQ 。置鍵盤掃描速率 MOVX DPTR,A MOV A,#LEDCLS 。清除 LED 顯示 MOVX DPTR,A POP ACC ?;謴同F(xiàn)場 POP DPL POP DPH RET4 時分秒顯示子程序程序DISPLAY: MOV A,SECOND_BUFFER ANL A,#0FH MOV R5,

42、A MOV R4,#0 LCALL DISLED 。顯示秒低位 MOV A,SECOND_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#1 LCALL DISLED 。顯示秒高位 MOV R5,#16 MOV R4,#2 LCALL DISLED 。顯示- MOV A,MINUTE_BUFFER ANL A,#0FH MOV R5,A MOV R4,#3 LCALL DISLED 。顯示分鐘低位 MOV A,MINUTE_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#4 LCALL DISLED 。顯示分鐘高位 MOV

43、 R5,#16 MOV R4,#5 LCALL DISLED 。顯示- MOV A,HOUR_BUFFER ANL A,#0FH MOV R5,A MOV R4,#6 LCALL DISLED 。顯示小時低位 MOV A,HOUR_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#7 LCALL DISLED 。顯示小時高位 RET 5 年月日顯示子程序DISPLAY1:MOV A,DATE_BUFFER ANL A,#0FH MOV R5,A MOV R4,#0 LCALL DISLED 。顯示日地低位 MOV A,DATE_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#1 LCALL DISLED 。顯示日高位 MOV R5,#16 MOV R4,#2 LCALL DISLED 。顯示- MOV A,MONTH_BUFFER ANL A,#0FH MOV R5,A MOV R4,#3 LCALL DISLED 。顯示月低位 MOV A,MONTH_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#4 LCALL DISLED 。顯示月高位 MOV R5,#16 MOV R4,#5 LCALL DIS

溫馨提示

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

評論

0/150

提交評論