![基于DS12C887的實(shí)時日歷時鐘的設(shè)計(jì)課程設(shè)計(jì)任務(wù)書_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/f973e987-d027-42ac-b01b-d610230f272f/f973e987-d027-42ac-b01b-d610230f272f1.gif)
![基于DS12C887的實(shí)時日歷時鐘的設(shè)計(jì)課程設(shè)計(jì)任務(wù)書_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/f973e987-d027-42ac-b01b-d610230f272f/f973e987-d027-42ac-b01b-d610230f272f2.gif)
![基于DS12C887的實(shí)時日歷時鐘的設(shè)計(jì)課程設(shè)計(jì)任務(wù)書_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/f973e987-d027-42ac-b01b-d610230f272f/f973e987-d027-42ac-b01b-d610230f272f3.gif)
![基于DS12C887的實(shí)時日歷時鐘的設(shè)計(jì)課程設(shè)計(jì)任務(wù)書_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/f973e987-d027-42ac-b01b-d610230f272f/f973e987-d027-42ac-b01b-d610230f272f4.gif)
![基于DS12C887的實(shí)時日歷時鐘的設(shè)計(jì)課程設(shè)計(jì)任務(wù)書_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/f973e987-d027-42ac-b01b-d610230f272f/f973e987-d027-42ac-b01b-d610230f272f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中北大學(xué)信息商務(wù)學(xué)院課程設(shè)計(jì)任務(wù)書學(xué)生: 高 升 學(xué) 號: 10050644X20 學(xué) 院:信息與通信工程學(xué)院專 業(yè):電子信息工程 題 目:專業(yè)綜合實(shí)踐之單片機(jī)系統(tǒng)部分: 基于DS12C887的實(shí)時日歷時鐘的設(shè)計(jì) 王浩全指導(dǎo)教師: 職稱:教授 2014 年 1 月 10 日中北大學(xué)信息商務(wù)學(xué)院課程設(shè)計(jì)任務(wù)書 2013/2014 學(xué)年第 1 學(xué)期學(xué) 院: 信息與通信工程學(xué)院 專 業(yè): 電子信息工程 學(xué) 生 姓 名: 高 升 學(xué) 號: 10050644X20 學(xué) 生 姓 名: 穆志森 學(xué) 號: 10050644X26 學(xué) 生 姓 名: 康文忠 學(xué) 號: 10050644X46 課程設(shè)計(jì)題目: 專業(yè)
2、綜合實(shí)踐之單片機(jī)系統(tǒng)部分 基于DS12C887的實(shí)時日歷時鐘的設(shè)計(jì) 起 迄 日 期:2013年12 月30 日2014年1月 10 日課程設(shè)計(jì)地點(diǎn): 5院樓 201,510 實(shí)驗(yàn)室 指 導(dǎo) 教 師: 王浩全 下達(dá)任務(wù)書日期:2013 年 12 月30日課 程 設(shè) 計(jì) 任 務(wù) 書1設(shè)計(jì)目的:鞏固掌握單片機(jī)工作原理與應(yīng)用提高編程能力2設(shè)計(jì)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、條件、設(shè)計(jì)要求等):掌握單片機(jī)89C51的工作原理掌握用匯編、C或其他語言實(shí)現(xiàn)編程掌握DS12C887時鐘芯片3設(shè)計(jì)工作任務(wù)與工作量的要求包括課程設(shè)計(jì)計(jì)算說明書(論文)、圖紙、實(shí)物樣品等:(1)提供核心器件的工作原理與應(yīng)用介紹;(
3、2)提供用Protel設(shè)計(jì)的電路原理圖,印刷板電路圖;(3)提供用Multisim、MaxPlus、Proteus、Medwin、KeilC等軟件對電路的仿真、編程與分析;(4)提供符合規(guī)定要求的課程設(shè)計(jì)說明書;(5)提供參考文獻(xiàn)不少于15篇,且必須是相關(guān)的參考文獻(xiàn);課 程 設(shè) 計(jì) 任 務(wù) 書4主要參考文獻(xiàn):l 要求按國標(biāo)GB771487文后參考文獻(xiàn)著錄規(guī)則書寫,例:1傅承義,運(yùn)泰,祁貴中.地球物理學(xué)基礎(chǔ).:科學(xué),19855設(shè)計(jì)成果形式與要求:說明書一份6工作計(jì)劃與進(jìn)度:1月7日 1月9日:查資料;1月10日 1月14日:在指導(dǎo)教師指導(dǎo)下設(shè)計(jì)方案;1月15日 1月17日:在指導(dǎo)教師輔導(dǎo)下完成實(shí)
4、驗(yàn);撰寫課程設(shè)計(jì)說明書;1月18日:答辯系主任審查意見:簽字:年月日目錄一系統(tǒng)設(shè)計(jì)的主要容和設(shè)計(jì)思路71.1主要容71.2設(shè)計(jì)思路71.2.1 日歷時鐘芯片的選擇71.2.2LED簡介8二硬件電路設(shè)計(jì)102.1 結(jié)構(gòu)框圖102.2 主要器件112.2.1 單片機(jī)112.2.2 日歷時鐘芯片DS12C887152.2.3 1602液晶顯示屏172.3 電路原理圖與說明192.3.1 控制電路192.3.2 日歷時鐘電路20三軟件設(shè)計(jì)203.1 時鐘部分軟件設(shè)計(jì)213.1.1 DS12C887的存空間213.1.2程序流程23四設(shè)計(jì)結(jié)果244.1基于DS12C887的實(shí)時日歷時鐘顯示系統(tǒng)的總程序2
5、44.2基于DS12C887的實(shí)時日歷時鐘顯示系統(tǒng)總電路圖31五結(jié)果分析32六心得體會32七參考文獻(xiàn)33一 系統(tǒng)設(shè)計(jì)的主要容和設(shè)計(jì)思路1.1主要容本次的設(shè)計(jì)題目是電子萬年歷設(shè)計(jì),要現(xiàn)年、月、日、時、分、秒的正常顯示,需要硬件和軟件的結(jié)合來實(shí)現(xiàn)。本次設(shè)計(jì)利用時鐘日歷芯片DS12887的特性和AT89C51單片機(jī)的功能利用實(shí)現(xiàn)的。時鐘芯片在電源的作用下向通過P2口向AT89C51單片機(jī)輸入時間信號,AT89C51單片機(jī)在接受到時間信號后通過P0將信號送到單片機(jī)另一擴(kuò)展芯片ULN2003,驅(qū)動LED數(shù)碼管顯示,同時將信號通過P1口送往單片機(jī)的擴(kuò)展芯片74LS154,當(dāng)送出第一個段碼時,單片機(jī)輸出的位
6、碼是0001,而經(jīng)過416譯碼器74LS154后就是1111 1111 1111 1110,這時就選中了第一個數(shù)碼管顯示;當(dāng)送出第十六個段碼時,單片機(jī)輸出的位碼是1111,416譯碼器輸出0111 1111 1111 1111,這時就選中了第十六個數(shù)碼管顯示,從而74LS154將接收到的地址信號譯碼后動態(tài)驅(qū)動相應(yīng)的LED,由于LED數(shù)碼管的公共端由74LS154分時選通,這樣,這樣任何一個時刻,都只有一位LED在點(diǎn)亮,也即動態(tài)掃描顯示方式。根據(jù)設(shè)計(jì)的要求萬年歷要顯示年、月、日、時、分、秒的顯示就需要16個顯示數(shù)碼管。根據(jù)設(shè)計(jì)要求,用按鍵來實(shí)現(xiàn)省電和正常顯示的切換,當(dāng)按鍵按下時進(jìn)入省電模式,否則
7、正常顯示。在明確本次設(shè)計(jì)思路之后,畫出設(shè)計(jì)框圖,總體框圖如圖所示。 圖1.1設(shè)計(jì)總體框圖1.2設(shè)計(jì)思路由于系統(tǒng)要實(shí)現(xiàn)的功能比較單一(主要就是獲取實(shí)時時間信息),因此設(shè)計(jì)思路非常清晰。1.2.1 日歷時鐘芯片的選擇 根據(jù)本次題目要求,本次設(shè)計(jì)選用達(dá)拉斯公司的日歷時鐘芯片DS12C887作為實(shí)時時鐘芯片,為系統(tǒng)提供詳細(xì)的年、月、日、星期和小時、分鐘等時間信息。DS12C887實(shí)時時鐘芯片功能豐富,可以用來直接代替IBM PC上的時鐘日歷芯片,同時,它的管腳也和MC146818B、DS1287相兼容。由于DS12C887能夠自動產(chǎn)生星期、年、月、日、時、分、秒等時間信息,其部又增加了世紀(jì)寄存器,從而
8、利用硬件電路解決了“千年”問題;對于一天的時間記錄,有12小時制和24小時制兩種模式。在12小時制模式中,用AM和PM區(qū)分上午和下午;時間的表示方法也有兩種,一種用二進(jìn)制數(shù)表示,一種是用BCD碼表示;DS12C887中帶有128字節(jié)RAM,其中有11字節(jié)RAM用來存儲時間信息,4字節(jié)RAM用來存儲DS12C887的控制信息,稱為控制寄存器,113字節(jié)通用RAM供用戶使用;此外用戶還可對DS12C887進(jìn)行編程以實(shí)現(xiàn)多種方波輸出,并可對其部的三路中斷通過軟件進(jìn)行屏蔽。1.2.2 LED簡介LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因?yàn)椴煌愋偷臄?shù)
9、碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖圖1.2.1(a)是共陰和共陽極數(shù)碼管的部電路圖,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽極接上正電源,該段即會發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將"b"和"c"段接上正電源,其它端接地或懸空,那么"b"和"c"段發(fā)光,此時,數(shù)碼管顯示將顯示數(shù)字“1”。而將"a"、"
10、;b"、"d"、"e"和"g"段都接上正電源,其它引腳懸空,此時數(shù)碼管將顯示“2”。其它數(shù)字的顯示原理與此類同。LED的7段數(shù)碼管利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來顯示出0-9的數(shù)字。在這次的設(shè)計(jì)中采用的均是共陰極的LED顯示,當(dāng)I/O口輸出為高電平的時候,對應(yīng)段就被點(diǎn)亮。LED數(shù)碼管的結(jié)構(gòu)圖如圖1.2.1(b)所示。(a)(b)圖1.2.1 LED分類結(jié)構(gòu)圖和結(jié)構(gòu)圖這次設(shè)計(jì)的顯示部分采用AT89C51單片機(jī)動態(tài)掃描完成, 在多數(shù)的應(yīng)用場合中,我們并不希望使用多I/O端
11、口的單片機(jī),原則上是使用盡量少引腳的器件。在沒有富余端口的情況下,應(yīng)通過優(yōu)化設(shè)計(jì)程序和擴(kuò)展電路達(dá)到預(yù)期的目的。動態(tài)掃描的頻率有一定的要求,頻率太低,LED將出現(xiàn)閃爍現(xiàn)象。如頻率太高,由于每個LED點(diǎn)亮的時間太短,LED的亮度太低,肉眼無法看清,所以一般均取幾個ms左右為宜,這就要求在編寫程序時,選通某一位LED使其點(diǎn)亮并保持一定的時間,程序上常采用的是調(diào)用延時子程序。LED顯示電路(1) 靜態(tài)顯示電路LDE顯示器工作在靜態(tài)顯示時,其公共陽極(或陰極) 接VCC(或GND) ,一直處于顯示有效狀態(tài),所以每一位的顯示容必須由鎖存器加以鎖存,顯示各位相互獨(dú)立。(2) 動態(tài)顯示電路將所有位的
12、段選線的同名端聯(lián)在一起,由一個8位I/O口控制,形成段選線的多位復(fù)用。而各位的公共陽極或公共陰極則分別由相應(yīng)的I/O口線控制,實(shí)現(xiàn)各位的分時選通,即同一時刻只有被選通位是能顯示相應(yīng)的字符,而其他所有位都是熄滅的。由于人眼有視覺暫留現(xiàn)象,只要每位顯示間隔足夠短,則會造成多位同時點(diǎn)亮的假象。這就需要單片機(jī)不斷地對顯示進(jìn)行控制,CPU需要不斷地進(jìn)行顯示刷新,動態(tài)顯示電路參見圖1.2.2,圖1.2.2中是擴(kuò)展了五位的LED數(shù)碼管顯示,用一個74LS154作為五個LED的段選輸入,采用動態(tài)顯示的方式連接。類似地,16位的LED數(shù)碼管顯示也可以用這種方法來實(shí)現(xiàn)。 圖1.2.2五位LED數(shù)碼管的動態(tài)顯示二
13、硬件電路設(shè)計(jì)本設(shè)計(jì)的硬件電路設(shè)計(jì)主要是圍繞日歷時鐘芯片DS12C887的使用進(jìn)行的。2.1 結(jié)構(gòu)框圖本設(shè)計(jì)的硬件電路包括單片機(jī)電路、日歷時鐘芯片電路和數(shù)碼管顯示輸出電路,其結(jié)構(gòu)框圖如圖1所示。 圖2.1 系統(tǒng)硬件結(jié)構(gòu)框圖2.2 主要器件本系統(tǒng)的主要器件是單片機(jī),日歷時鐘芯片以與LED顯示驅(qū)動芯片。2.2.1 單片機(jī)單片機(jī)選用AT89C51單片機(jī)。AT89C51是低電壓,高性能CMOS8位單片機(jī),片含8k bytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用高密度、非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)與8051產(chǎn)品引腳兼容,
14、片置通用8位中央處理器(CPU)和Flash存儲單元,功能強(qiáng)大的AT89C51單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場合。AT89C51單片機(jī)性能與特點(diǎn):(1)與MCS-51微控制器產(chǎn)品系列兼容。(2)片有4KB可在線重復(fù)編程的快閃擦寫存儲器(Flash Memory)。(3)存儲器可循環(huán)寫入/擦除1000次。(4)存儲數(shù)據(jù)保存時間為10年。(5)工作電壓圍:Vcc可為2.7V6V。(6)全靜態(tài)工作:可從0HZ到16MHZ。(7)程序存儲器具有3級加密保護(hù)。(8)1288位部RAM。(9)32條可編程I/O線。(10)兩個16位定時器/計(jì)數(shù)器。(11)中斷結(jié)構(gòu)具有5個中斷源和2個優(yōu)先級。(12)可編
15、程全雙工串行通道。(13)空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲容。邏輯框圖與引腳圖分別如圖2.2(a)(b)所示 (a) (b)圖2.2 AT89C51單片機(jī)邏輯框圖與引腳圖功能特性概述:AT89C51提供以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash閃速存儲器,256字節(jié)部RAM,32個I/O口線,3個16位定時/計(jì)數(shù)器,一個6向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片振蕩器與時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計(jì)數(shù)器,串行通信口與中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的容,但振蕩器停止工作并禁止其它所有
16、部件工作直到下一個硬件復(fù)位。AT89C51單片機(jī)部結(jié)構(gòu)框圖如圖2.3所示。 圖2.3 AT89C51單片機(jī)部結(jié)構(gòu)框圖引腳功能說明(1)VCC:供電電壓(2)GND:接地(3)時鐘電路XTAL1(19腳)芯片部振蕩電路(單級反相放大器)輸入端。XTAL2(18腳)芯片部振蕩電路(單級反相放大器)輸出端。 (4)控制信號RST(9腳)復(fù)位信號:時鐘電路工作后,在此引腳上將出現(xiàn)兩個機(jī)器周期的高電平,芯片部進(jìn)行初始復(fù)位,P0口P3口輸出高電平,將初值07H寫入堆棧指針。ALE(30腳)地址鎖存信號:當(dāng)訪問外部存儲器時,P0口輸出的低8位地址由ALE輸出的控制信號鎖存到片外地址鎖存器,P0口輸出地址低8
17、位后,又能與片外存儲器之間傳送信息。另外,ALE可驅(qū)動4個TTL門。(29腳)片外程序存儲器讀選通:低電平有效,作為程序存儲器的讀信號,輸出負(fù)脈沖,將相應(yīng)的存儲單元的指令讀出并送到P0口,可驅(qū)動8個TTL門。/Vpp(30腳):當(dāng)為高電平且PC值小于0FFFH時,CPU執(zhí)行部程序存儲器程序;當(dāng)為低電平時,CPU僅執(zhí)行外部程序存儲器程序。(5)I/O接口P0口(P0.0P0.7,3932腳)三態(tài)雙向口:P0口結(jié)構(gòu)包括一個輸出鎖存器、兩個三態(tài)緩沖器、一個輸出驅(qū)動電路和一個輸出控制端。P0口做地址/數(shù)據(jù)復(fù)用總線使用。若從P0口輸出地址數(shù)據(jù)信息,此時控制端為高電平,若從P0口輸入數(shù)據(jù)指令信息時,引腳信
18、號應(yīng)從輸入三態(tài)緩沖器進(jìn)入地址總線,它可驅(qū)動8個TTL門。P0P3口上的“讀-修改-寫”功能,其操作是先將字節(jié)的全部8位數(shù)讀入,再通過指令修改某些位,然后將新的數(shù)據(jù)寫回到口鎖存器中。P1口(P1.0P1.7,18腳)準(zhǔn)雙向口:P1口做通用I/O接口使用,P1口的每一位口線能獨(dú)立地作用于輸入線,P1口可驅(qū)動4個TTL門。P2口(P2.0P2.7,2128腳)通用I/O接口:它做通用I/O接口使用時,是一個準(zhǔn)雙向口,此時轉(zhuǎn)換開關(guān)MUX倒向左邊,輸出極與鎖存器相連,引腳可作為用戶I/O口線使用,輸入/輸出操作與P1口完全一樣,P2口做地址總線使用。當(dāng)系統(tǒng)中接有外部存儲器時,P2口用于輸出高8位地址A8
19、A15,這時在CPU控制下,轉(zhuǎn)換開關(guān)MUX倒向右邊,接通部地址總線。P2口的口線狀態(tài)取決于片輸出的地址信息,這些信息來源于PC、DPTR等。在外接程序存儲器中,由于訪問外部存儲器操作連續(xù)不斷,P2口不斷送出地址高8位。AT89C51單片機(jī)的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
20、門電路。P3口:P3口管腳是8個帶部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流,這是由于上拉的緣故。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日
21、歷時鐘芯片選用DS12C887,其引腳分布如圖2.4所示。 圖2.4 DS12C887引腳分布圖DS12C887的部結(jié)構(gòu)框圖如圖2.5所示。 圖2.5 日歷時鐘芯片DS12C887部結(jié)構(gòu)框圖由圖2.5可知,DS12C887部可看成由電源、日歷時鐘信息、寄存器和存儲器,以與總線接口四部分構(gòu)成,四部分配合工作,共同實(shí)現(xiàn)芯片的功能。DS12C887的具體引腳功能如下:DS12887部由振蕩電路,分頻電路,周期中斷/方波選擇電路,14字節(jié)時鐘和控制單元,114字節(jié)用戶非易失RAM,十進(jìn)制/二進(jìn)制累加器,總線接口電路,電源開關(guān)寫保護(hù)單元和部鋰電池等部分組成。DS12887引腳分配如圖2.6所示,各管腳說
22、明如下:VCC:直流電源+5V電壓。當(dāng)5V電壓在正常圍時,數(shù)據(jù)可讀寫;當(dāng)Vcc低于4.25V,讀寫被禁止,計(jì)時功能仍繼續(xù);當(dāng)Vcc下降到3V以下時,RAM和計(jì)時器供電被切換到部鋰電池。MOT(模式選擇):MOT引腳接到Vcc時,選擇MOTOROLA時序,當(dāng)接到GND時,選擇Intel時序。SQW(方波信號輸出):SQW引腳能從實(shí)時鐘部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。AD0-AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與Motorola微機(jī)系列和Intel微機(jī)系列接口。AS(地址選通輸入):用于實(shí)現(xiàn)信號分離,在AD/ALE的下降沿把地址鎖入DS
23、12887。DS(數(shù)據(jù)選通或讀輸入):DS/RD引腳有兩種操作模式,取決于MOT引腳的電平,當(dāng)使用Motorola時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動雙向總線的時刻;在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇Intel時序時,DS稱作(RD),RD與典型存貯器的允許信號(OE)的定義一樣。R/W(讀/寫輸入):R/W引腳也有兩種操作模式。選Motorola時序時,R/W是低電平信號時,指示當(dāng)前周期是讀或?qū)懼芷?,DS為高電平時,R/W高電平指示讀周期,R/W信號一低電平信號,稱為WR。在此模式下,R/W引腳與通用RAM的寫允許
24、信號(WE)的含義一樣。CS(片選輸入):在訪問DS12887的總線周期,片選信號必須保持為低。 IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷的條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。RESET(復(fù)位輸出):當(dāng)該腳保持低電平時間大于200ms,DS12887有效復(fù)位。 時間和日歷單元時間和日歷信息通過讀相應(yīng)的存字節(jié)來獲取,時間和日歷通過寫相應(yīng)的存字節(jié)設(shè)置或初始化,其字節(jié)容可以是二進(jìn)制或BCD形式。時間可選擇12小時制或24小時制,當(dāng)選擇12小時制時,小時字節(jié)的高門為邏輯“1”代表PM。
25、時間和日歷字節(jié)是雙緩沖的,總是可訪問的。非易失RAM在DS1288中,114字節(jié)通用非易失RAM不專用一任何特殊功能,它們可被處理器程序用作非易失存,在更新周期也可訪問。中斷RTC實(shí)時時鐘加RAM向處理器提供三個獨(dú)立的,自動的中斷源。定鬧中斷的發(fā)生率可編程,從每秒一次到每天一次,周期性中斷的發(fā)生率可從500ms到122s選擇。更新結(jié)束中斷用于向程序指示一個更新周期完成。中斷控制和狀態(tài)位在寄存器B和C中,本文的其它部分將詳細(xì)描述每個中斷發(fā)生條件。晶振控制位DS12887出廠時,其部晶振被關(guān)掉,以防止鋰電池在芯片裝入系統(tǒng)前被消耗,寄存器A的BIT4-BIT6的其它組合都是使用晶振關(guān)閉。更新周期DS
26、12887每一秒執(zhí)行一次更新周期,保證時間、日歷的準(zhǔn)確。·在DS12C887有11字節(jié)RAM用來存儲時間信息,4字節(jié)用來存儲控制信息,其具體地址與取值如表2.1所列。 表2.1 DS12C887的存儲功能地址功能取值圍(十進(jìn)制)取值圍二進(jìn)制BCD碼0秒059003B00591秒鬧鈴059003B00592分059003B00593分鬧鈴059003B0059412小時模式112010C AM818C PM0112 AM8192 PM24小時模式023001700235時鬧鈴,12小時制112010C AM818C PM0112 AM8192 PM時鬧鈴,24小時制0230017002
27、36星期(星期日=1131011F01318月112010C01129年0990063009910控制寄存器A11控制寄存器B12控制寄存器C13控制寄存器D50世紀(jì)099NA19,202.2.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為寄存器選擇,高
28、電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù)。第6腳:EN端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:BLA背光電源正極(+5V)輸入引腳。第16腳:BLK背光電源負(fù)極,接GND。1602字符型LCD與單片機(jī)的連接接口說明如下:(1)液晶1、2端為電源;15、16端為背光電源。(2)液晶3端為液晶對比度調(diào)節(jié)端,通過一個10K電位器接
29、地來調(diào)節(jié)液晶顯示對比度。首次使用時,在液晶的上電狀態(tài)下,調(diào)節(jié)至液晶上面一行顯示出黑色小格為止。(3)液晶4端為向液晶控制器寫數(shù)據(jù)/寫命令選擇端,接單片機(jī)的P2.2口。(4)液晶5端為讀/寫選擇端只向其寫入命令和顯示數(shù)據(jù)。(5)液晶6端為使能信號,是操作時必須的信號,接單片機(jī)的P2.1口。 圖2.7 1602LCD電路圖2.3 電路原理圖與說明2.3.1 控制電路圖2.8所示為本設(shè)計(jì)的單片機(jī)部分的電路原理圖。 圖2.8 實(shí)時日歷時鐘顯示系統(tǒng)單片機(jī)部分電路原理圖圖2.8中,U1為單片機(jī)芯片AT89C51,它工作11.0592MHz時鐘。P0端口用作地址/數(shù)據(jù)復(fù)用總線AD07,和日歷時鐘芯片相連。P
30、1端口用作數(shù)碼管的段碼接口,由于本設(shè)計(jì)的顯示不會出現(xiàn)小數(shù)點(diǎn),因此只使用了a、b、c、d、e、f、g,而沒有使用dp(小數(shù)點(diǎn))段。P2端口的P2.7在反相之后為日歷時鐘芯片提供片選信號,需要反相是因?yàn)樵撈x信號為低電平有效。單片機(jī)的P3.7(/RD)、P3.6(/WR)引腳和日歷時鐘芯片的讀、寫引腳直接相連,它們均為低電平有效。單片機(jī)的ALE引腳將和日歷時鐘芯片的鎖存輸入引腳直接相連,作為地址鎖存,可實(shí)現(xiàn)數(shù)據(jù)和地址線的時分復(fù)用。2.3.2 日歷時鐘電路日歷時鐘芯片部分的電路圖。 圖2.9 實(shí)時日歷時鐘顯示系統(tǒng)片選與日歷時鐘芯片部分電路原理圖圖2.9中,日歷時鐘芯片DS12C887,在本設(shè)計(jì)中,將
31、其MOT引腳接地,選擇Intel總線時序模式。在以Intel總線時序模式工作時,它和51單片機(jī)的接口完全兼容,因此將它的地址/數(shù)據(jù)復(fù)用線AD0AD7、鎖存輸入ALE、讀輸入DS、寫輸入和51單片機(jī)的對應(yīng)引腳直接相連。DS12C887的方波輸出SQW和中斷申請/IRQ在本設(shè)計(jì)中不使用。三 軟件設(shè)計(jì)軟件設(shè)計(jì)分兩部分:時鐘部分以與顯示部分。3.1 時鐘部分軟件設(shè)計(jì)3.1.1 DS12C887的存空間DS12C887的存空間共128個字節(jié),其中11個字節(jié)專門用于存儲時間、星期、日歷和鬧鐘信息;4個字節(jié)專門用于控制和存放狀態(tài)信息;其余113個字節(jié)為用戶可以使用的普通RAM空間。圖3.1為日歷時鐘芯片DS
32、12C887的存空間映射示意圖。 圖3.1 日歷時鐘芯片DS12C887存空間映射示意圖地址0x00-0x09共10個寄存器分別存放的是秒、秒鬧鐘、分鐘、分鬧鐘、小時、時鬧鐘、星期、日、月和年信息,地址0x32為世紀(jì)信息寄存器(解決了“兩千年問題”)地址0x0A0x0D四個寄存器分別為寄存器A、B、C、D,它們用于控制和存放某些狀態(tài)信息;其余的113字節(jié)地址空間是留給用戶使用的普通存空間。根據(jù)此地址映射關(guān)系(見圖11)和芯片選的設(shè)置(由單片機(jī)的P2.0端口反相后提供)可以得到每個特定寄存器在程序中的地址,即為0x0100加上圖11中的地址偏移。比如,日信息寄存器的地址為0x0107,控制寄存器
33、B的地址為0x010B等。在所有的128字節(jié)中,寄存器C和D為只讀寄存器,寄存器A的第7位屬于只讀位,秒字節(jié)的高階位也是只讀的,其余字節(jié)均為可直接讀寫字節(jié)。時鐘、日歷信息可以通過讀取合適的存字節(jié)獲得;時鐘、日歷和鬧鐘可以通過寫合適的存字節(jié)進(jìn)行設(shè)置或初始化。對應(yīng)時鐘、日歷和鬧鐘的10個寄存器字節(jié)可以是二進(jìn)制形式或者BCD碼形式,在寫這些寄存器時,寄存器B的SET位必須置1。寄存器A字節(jié)的容如下:MSB LSBUIPDV2DV1DV0RS3RS2RS1RS0·UIP:更新(UIP)位用來標(biāo)志芯片是否即將進(jìn)行更新。當(dāng)UIP位為l時,更新即將開始;當(dāng)它為0時,表示在至少244s芯片不會更新,
34、此時,時鐘、日歷和鬧鐘信息可以通過讀寫相應(yīng)的字節(jié)獲得和設(shè)置。UIP位為只讀位并且不受復(fù)位信號(RESET)的影響。通過把寄存器B中的SET位設(shè)置為1可以禁止更新并將UIP位清0。·DV0,DV1,DV2:這3位是用來開關(guān)晶體振蕩器和復(fù)位分頻器。當(dāng)DV0 DV1 DV2=010時,晶體振蕩器開啟并且保持時鐘運(yùn)行;當(dāng)DV0 DV1 DV2=11X時,晶體振蕩器開啟,但分頻器保持復(fù)位狀態(tài)。·RS3、RS2、RS1.、RS0:作用:1)設(shè)置周期中斷允許位(PIE);2)設(shè)置方波輸出允許位(SQWE);3)兩位同時設(shè)置為有效并且設(shè)置頻率;4)全部禁止。寄存器B字節(jié)的容如下:MSB L
35、SBSETPIEAIEUIESQWEDM24/12DSE·SET當(dāng)SET=0,芯片更新正常進(jìn)行;當(dāng)SET=1,芯片更新被禁止。SET位可讀寫,并不會受復(fù)位信號的影響。·PIE:當(dāng)PIE=0,禁止周期中斷輸出到IRQ;當(dāng)PIE=1,允許周期中斷輸出到IRQ。·AIE:當(dāng)AIE=0,禁止鬧鐘中斷輸出到IRQ;當(dāng)AIE=1,允許鬧鐘中斷輸出到IRQ。·UIE:當(dāng)UIE=0,禁止更新結(jié)束中斷輸出到IRQ;當(dāng)UIE=1,允許更新結(jié)束中斷輸出到IRQ。此位在復(fù)位或設(shè)置SET為高時清0。·SQWE:當(dāng)SQWE=0,SQW腳為低;當(dāng)SQWE=1,SQW輸出設(shè)定
36、頻率的方波。·DM:DM=0,二進(jìn)制;DM=1,BCD。此位不受復(fù)位信號影響。·24/12:此位為1時,24時制;為0時,12小時制。·DSE:夏令時允許標(biāo)志。在四月的第一個星期日的15959AM,時鐘調(diào)到30000AM;在十月的最后一個星期日的15959AM,時鐘調(diào)到10000AM。寄存器C字節(jié)的容如下:MSB LSBIRQFPFAFUF0000·IRQF當(dāng)有以下情況中的一種或幾種發(fā)生時,中斷請求標(biāo)志位(IRQF)置高:PF=PIE=lAF=AIE=lUF=UIE=1IRQF一旦為高IRQ腳輸出低。所有標(biāo)志位在讀寄存器C或復(fù)位后清0。·PF:
37、周期中斷標(biāo)志。·AF:鬧鐘中斷標(biāo)志。·UF:更新中斷標(biāo)志。·BIT0BIT3第0位到第3位無用,不能寫入,只讀,且讀出的值恒為0。寄存器D字節(jié)的容如下:MSB LSBVRT0000000·VRT當(dāng)VRT=0時表示置電池能量耗盡,此時RAM中的數(shù)據(jù)的正確性就不能保證了。·BIT6 BIT0第0位到第6位無用,只讀,且讀出的值恒為0。芯片DS12C887的113字節(jié)普通RAM空間為非易失性RAM空間,它不專門用于某些特別功能,而是可以在微處理器程序中作為非易失性存空間使用。3.1.2程序流程程序流程如圖3.2所示。 圖3.2 系統(tǒng)程序流程圖四 設(shè)計(jì)
38、結(jié)果4.1基于DS12C887的實(shí)時日歷時鐘顯示系統(tǒng)的總程序1 主程序程序清單如下:;-; 定義 DS12887 的地址;-SECOND EQU 6F00H ; 秒寄存器SECOND_ALARM EQU 6F01H ; 秒鬧鐘寄存器MINUTE EQU 6F02H ; 分寄存器MINUTE_ALARM EQU 6F03H ; 分鬧鐘寄存器HOUR EQU 6F04H ; 時寄存器HOUR_ALARM EQU 6F05H ; 時鬧鐘寄存器DATE EQU 6F07H ; 日寄存器MONTH EQU 6F08H ; 月寄存器YEAR EQU 6F09H ; 年寄存器REG_A EQU 6F0AH
39、; 寄存器 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 55H ;月緩沖區(qū)YEAR_BUFFER EQU 56H ;年緩沖區(qū);-Z8279 EQU 0af01H ;8279 狀態(tài)/命令口地址D8279 EQU 0af00H ;8279 數(shù)據(jù)口地址LEDMOD
40、 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,#13H ;時 ;MOV 54H,#25H ;日 ;MOV 55H,#11H ;月 ;MOV 56H,#10H ;年 ;MOV SP,#60H JNB P2.1, YYY;按鍵按下讀年月日,按鍵沒有
41、按下讀時分秒 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 ;按鍵未釋放繼續(xù)讀年月日 AJMP JJJ ;按鍵釋放跳轉(zhuǎn)讀時分3 8279初始化子程序INIT8279: PUSH DPH ;保存現(xiàn)場 PUSH DPL PUSH ACC MOV DPTR ,#Z8279
42、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,A MOV R4,#0 LCALL DISLED ;顯示秒低位 MOV A,SECOND_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#1 LCALL DISL
43、ED ;顯示秒高位 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 R5,#16 MOV R4,#5 LCALL DISLED ;顯示"-" MOV A,HOUR_BUFFER ANL A,#0FH MOV R5,A M
44、OV 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
45、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 DISLED ;顯示"-" MOV A,YEAR_BUFFER ANL A,#0FH MOV R5,A MOV R4,#6 LCALL DISLED ;顯示年低位 MOV A,YEAR_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#7 LCALL DISLED ;顯示年高位 RET6 寫時間子程序WRITETIME: PUSH DPH ;寫時間 PUSH DPL PUSH ACC MOV DPTR,#
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初級銀行業(yè)法律法規(guī)與綜合能力-初級銀行從業(yè)資格考試《法律法規(guī)與綜合能力》高頻考點(diǎn)3
- DB61T-林下大球蓋菇栽培技術(shù)規(guī)程
- 加大研發(fā)投入推動技術(shù)革新和進(jìn)步速度
- 新版北師版一年級下冊數(shù)學(xué)課件一 20以內(nèi)數(shù)與加法復(fù)習(xí)
- 2024-2025學(xué)年遼寧省撫順市省重點(diǎn)高中六校協(xié)作體高二上學(xué)期期末考試英語試卷(解析版)
- 現(xiàn)代農(nóng)業(yè)教育體系中的技術(shù)培訓(xùn)與實(shí)踐項(xiàng)目
- 構(gòu)建安全可靠的在線學(xué)習(xí)平臺保障師生權(quán)益
- 外研版高中英語選擇性必修第四冊UNIT1 Period1課件
- Module1Unit1ItwasmybirthdayonSaturday2023-2024學(xué)年四年級英語
- Module2(單元測試)英語五年級下冊-外研版(一起)(含答案)
- 數(shù) 學(xué)2024-2025學(xué)年人教版七年級數(shù)學(xué)上冊有理數(shù)混合運(yùn)算100題
- 2024年銀行考試-農(nóng)村信用社考試近5年真題附答案
- 人教版小學(xué)數(shù)學(xué)四年級下冊第一單元測試卷附答案(共9套)
- 二年級上冊100以內(nèi)加減法豎式計(jì)算題200道及答案
- 統(tǒng)編版六年級下冊道德與法治1-學(xué)會尊重-課件(54張課件)
- 5.5.1三角恒等變換(第一課時)課件高一上學(xué)期數(shù)學(xué)人教A版
- 中國智慧物流發(fā)展報(bào)告
- 導(dǎo)演聘用合同正式(2024版)
- 焊接加工成本算表
- DL∕T 712-2010 發(fā)電廠凝汽器及輔機(jī)冷卻器管選材導(dǎo)則
- (2024年秋季版)2024年七年級道德與法治下冊 4.9.1 生活需要法律教案 新人教版
評論
0/150
提交評論