萬年歷的設計_第1頁
萬年歷的設計_第2頁
萬年歷的設計_第3頁
萬年歷的設計_第4頁
萬年歷的設計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實 習 報 告實習名稱: 單片機應用實習 學生姓名: 賈生磊學 號: 20141882 院系名稱: 電氣與信息工程學院 專業班級: 電氣14-1班指導教師: 葛洪軍、張鵬職 稱: 教授 、副教授 二一六年六月二十七日實習題目 萬年歷的設計實習時間2016年6月27日至 2016 年 7月 15日共 3周 實習地點: 實驗樓 517 513實習內容摘要:隨著社會的發展人們的生活節奏越來越快,每天的工作,學習,休息的時間都安排的很緊,需要一個準確時鐘。人們對時鐘的要求越來越高,不僅要求每天的的時間誤差盡可能小,還要求具有定時鬧鐘,具有萬年歷等功能。傳統的日歷電子鐘元器件多、維修麻煩、誤差大、功能更

2、新不方便。DS12C887時鐘芯片能夠自動顯示年、月、日、時、分、秒等時間信息,同時還具有校時,鬧鐘等功能。DS12C887也可以很方便的由軟件編程進行功能的調整或增減。所以設計基于DS12C877時鐘芯片的高精度時鐘的設計具有十分重要的現實意義和實用價值。關鍵詞:單片機STC89C52,DS12C887時鐘芯片,LCD1602 指導教師評語:成 績指導教師簽字:年 月 日注:1、在此頁后附實習總結。其內容應包括:實習目的、實習內容及實習結果等項目。2、此頁為封皮,用A4幅面紙正反面打印。3、實習總結使用A4幅面紙張書寫或打印,并附此頁后在左側一同裝訂。 實習任務書學生姓名賈生磊 院系電氣與信

3、息工程學院專業班級 電氣14-1班指導教師姓名葛洪軍張鵬職稱教授副教授是否外聘是 否題目名稱 萬年歷的設計一、設計的內容、目的和意義內容:本次實習是有關于萬年歷的設計。所謂萬年歷即能夠自動顯示年、月、日、時、分、秒等時間信息,同時還具有校時等功能。傳統的日歷電子鐘元器件多、維修麻煩、誤差大、功能更新不方便。目的:DS12C887時鐘芯片能夠自動顯示年、月、日、時、分、秒等時間信息,同時還具有校時,報時,鬧鐘等功能。意義:DS12C887也可以很方便的由軟件編程進行功能的調整或增加。所以設計基于DS12C877時鐘芯片的高精度時鐘的設計具有十分重要的現實意義和實用價值。在制作學習過程中,不但可以

4、掌握軟、硬件的綜合調試方法,而且可以使學生對單片機智能性產生強烈的欲望。達到最大限度地掌握微機應用技術,軟件及接口設計和數據采集與處理的技能,培養電綜合實踐素質的目的。3、 實習完成后應提交的成果實習期間我們通過自己設計電路、準備元器件、焊接電路,將設計的萬年歷實物做出來,使其達到我們的預期要求,同時還應該完成實習報告和實習日志。最后帶著實物和實習報告參加答辯,結束本次實習。4、 實習的工作進度安排(1)6月27日至6月29日:確定實踐題目,查找相應資料確定設計方案。(2)6月30日:提交設計方案,審核通過領取相應元器件。(3)7月1日至7月14日:根據設計方案進行實物的焊接,芯片的燒寫及整體

5、設計的調試。(4)7月15日:完成相應的日志級實驗報告,進行答辯五主要參考資料1 何宏. 單片機原理及應用. 清華大學出版社.2010.082 郭天祥. 51單片機C語言教程. 電子工業出版社.2012.053 謝輝;李洪兵;李焱 單片機應用技術. 清華大學出版社.2009.034 劉坤. 單片機應用系統. 中國鐵道出版社.2013.085 魏二有. 單片機應用系統設計與實現教程. 清華大學出版社.2012.076 劉海成. 單片機及應用原理教程. 中國電力出版社.2012.107 孔超;張瑋.化繁為簡51單片機應該這樣學.中國鐵道出版社.2013.058 李俊.無師自通51單片機.北京航空航

6、天大學出版社.2014.01 目 錄第1章 緒論2 1.1 研究背景2第2章 方案論證選擇3 2.1時鐘計時的方案選擇3 2.2顯示部分的方案選擇3 2.3 實習預算3第3章 系統組成5 3.1 系統原理與硬件設計5 3.2單片機STC89C52介紹5 3.3 STC單片機最小系統8第4章 系統硬件電路設計9 4.1.1晶振電路9 4.1.2復位電路9 4.2.1 1602液晶概述9 4.2.2 1602液晶引腳功能10 4.2.3 LCD1602RAM地址映射圖12 4.2.4 1602LCD的電路連接13 4.3.1 DS12C887概述13 4.3.2 DS12C887引腳功能14 4.

7、3.3 DS12C887讀寫時序14 4.3.4 DS12C887流程圖15 4.3.5 時鐘芯片引腳介紹15 4.3.6 DS12C887地址分配與數據格式表16 4.3.7 4個控制寄存器介紹17 4.4 鬧鈴電路19 4.5 獨立鍵盤電路19實習總結20實習心得21附錄1 硬件實物圖22附錄2 程序代碼23 第一章緒論1.1 研究背景傳統時鐘芯片在電源斷電時內部的時間芯片就會停止計時,所以需要額外使用一個備用的電源向時鐘芯片供電,這樣會使系統功耗增大,體積變大。單一功能定時時鐘只提供年,月,日,時,分,秒的時間信息功能,多功能時鐘除了提供時間信息和日歷功能以外,通常還具有定時鬧鐘等功能。

8、采用單片機STC89C52和時鐘日歷芯片DS12C887設計并且制作出來的電子鐘,一個月的時間里只有1秒內的誤差,比DS1302,DS1307等的芯片設計出來的時鐘更精確.時鐘按照工具接口方式不同可以分為并行接口時鐘和串行接口時鐘,并行接口時鐘的特點是:傳輸速度快,但是硬件數目多,接線數目多,產品體積大。串行接口時鐘的特點:傳輸線少,成本低,產品體積小。缺點是傳輸速度慢。時鐘芯片的種類也越來越多,對時鐘芯片的要求越來越高,比如精度高,體積小,功耗低,性能穩定,功能齊全,使用方便,技術更新靈活。所以設計一款體積小,工作穩定,時間精確的時鐘具有十分重要的意義。 第2章 方案論證選擇 2.1時鐘計時

9、的方案選擇 方案一:采用單片機內部的晶振來產生脈沖,然后通過單片機內部的計時器經過分頻產生秒脈沖,通過軟件編程來實現時鐘的顯示,這種設計方案的優點是器件少,電路簡單,電路焊接容易,故障幾率小。但是這種方案需由軟件編程來實現秒脈沖的產生,編程相對來說比較復雜,且不利于排除故障,維修起來不方便。還有就是如果單片機斷電,芯片里的時間計時就停止,再次上電時又從初始設定重新計時,這樣就需要在每次上電都調整時間,比較麻煩。 方案二:采用DS12C887時間芯片,具有掉電保護的DS12C887時鐘芯片電路簡單易于實現的1602LCD液晶顯示器,鍵盤輸入電路等。利用單片機將復位電路、能夠降低功耗和減少顯示器外

10、部引線的顯示電路、電源電路等正確的連接在一起,并通過單片機的編程來實現本次設計任務中的要求。軟件部分包括:主程序模塊,DS12C887模塊,LCD1602模塊,鍵盤控制模塊。DS12C887芯片具有掉電保護功能,內部自帶鋰電池,能夠在斷電的情況下保持時間信息。并且具有內部溫漂補償電路設計。能夠準確計時,提供精確的時間,這樣就簡化了電路的器件選擇,另外也使程序的設計更加簡潔。第二種方案更加準確而且電路硬件設計更加簡單,軟件設計更加簡潔,因此采用第二種方案。 2.2顯示部分的方案選擇1.數碼管顯示,8段數碼管顯示可視范圍寬,但硬件制作成本高,硬件電路的設計與焊接相對復雜。2. LCD1602 液晶

11、顯示,液晶顯示最大的特點就是界面簡潔,能夠方便的顯示文字和數字。LCD1602液晶顯示時屏幕不會有閃爍。液晶操作方便,且與單片機的接口電路簡單,接線面積小,大大提高了萬年歷的性能。所以最終選擇LCD1602液晶顯示方案。 2.3實習預算:實習預算結果見表2.1表2.1 預算結果表元件名稱數量價格(元)AT89C5216液晶屏LCD1602115時鐘芯片DS12C88712011.0592M晶振10.330pf瓷片電容20.110uf電解電容10.1排阻40.310k電阻30.310k滑動變阻器10.2按鍵50.5電源接口10.3排線201.0排針201.0電路板110總價50.1 第3章 系統

12、組成 3.1系統原理與硬件設計 本次的設計題目是萬年歷設計,要求實現年、月、日、時、分、秒和星期的正常顯示,需要硬件和軟件的結合來實現。本次設計利用時鐘日歷芯片DS12C887的特性和STC89C52單片機的功能來實現的。根據設計的要求萬年歷要顯示年、月、日、時、分、秒和星期等信息。在明確本次設計思路之后,畫出設計框圖,總體框圖如圖3.1所示。 電源時鐘采集 單片機控制電路驅動顯示 圖3.1 總體框圖3.2 單片機STC89C52介紹STC89C52 是STC公司生產的低電壓,高性能CMOS 8位單片機片內含8K bytes的可反復擦寫的只讀程序存儲器(PEROM)和256 bytes的隨機存

13、取數據存儲器(RAM),器件采用STC公司的高密度、非易失性存儲技術生產,與標準MCS-51指令系統及8052 產品引腳兼容,片內置通用8位中央處理器(CPU )和FLASH由存儲單元, STC89C52單片功能強大,適用于許多電子產品。主要性能參數:1.與Mcs-51產品指令和引腳完全兼容。2.8字節可重擦寫FLASH閃速存儲器3.1000 次擦寫周期4.全靜態操作:0HZ-24MHZ5.三級加密程序存儲器6.256X8字節內部RAM7.32個可編程I/0口線8.3個16 位定時計數器9.5個中斷源10.可編程串行UART通道11.低功耗空閑和掉電模式圖3.2 STC89C52外部引腳圖Vc

14、c:電源電壓GND:地線 P0: P0口是一組8位漏極開路型雙向1/O 口,地址/數據總線復用口。作為輸出口用時每位能吸收電流的方式驅動8個TTL 邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。當訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。在FLASH由編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。 P1口: PI 是一個帶內部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級可驅動4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,

15、因為內部存在上拉電阻某個引腳被外部信號拉低時會輸出一個電流IIL.與AT89C51不同之處是,Pl.0 和P1.1還可分別作為定時/計數器2 的外部計數輸入(Pl.0/T2 )和輸入(P1.1/T2EX) , 參考表3.1所示, FLASH編程和程序校驗期間,Pl接收低8位地址。表3.1引腳號功能特性P1.0T2,時鐘輸入P1.1T2EX(定時/計數器2)P2口: P2 是一個帶有內部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動 4個TTL邏輯電路。對端口P2寫“l",通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉

16、低時會輸出一個電流 。在訪問外部程序存儲器或16位地址的外部數據存儲器時,P2送出高8 位地址數據。在訪問8位地址的外部數據存儲器時,P2口輸出P2鎖存器的內容。FLASH編程或校驗時,P2亦接收高位地址和一些控制信號。P3口: P3口是一組帶有內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動4個TTL邏輯門電路。對P3口寫入“1”時,內部上拉電阻把它們被拉高,并作為輸入的端口。這個時候,被外部拉低的P3口將用上拉電阻輸出電流. P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如圖表1:表3.2 P3口第三功能端口引腳第二功能P3.0RXD(串行輸入口P3.1TXD(串行輸

17、出口P3.2INTO(外中斷0P3.3INTO(外中斷l)P3.4TO (定時計數器0 )P3.5Tl (定時計數器l )P3.6WR(外部數據存儲器寫選通)P3.7RD(外部數據存儲器讀選通) RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上的高電平時單片機復位。ALE/PROG:當訪問外部程序存儲器或數據存儲器的時候,ALE(地址鎖存允許)輸出脈沖用來鎖存低8位字節的地址PSEN:程序儲存允許PSEN輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令時,每個機器周期兩次PSEN有效,就是輸出兩個脈沖。這個時候,當訪問外部數據存儲器時,就會跳過兩次PSE

18、N信號。 EA:外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000H-FFFFH ) , EA端必須保持低電平(接地) XTAL1:振蕩器的反相放大器的及內部時鐘發生器的輸入端XTAL2:振蕩器的反相放大器的輸出端。 STC單片機是一種高性能、低功耗的8位CMOS微處理芯片, STC單片機雖然功能強大,但要想完成其強大的功能,單靠它也是不的行的,因此要讓它運行起來,就要創設其工作的環境,即最小系統,STC單片機最小系統如圖1所示,它包括由一個晶振,兩個電容組成的振蕩電路,一個復位按鈕一個10UF電容和一個10K電阻組成的復位電路,電源電路三個電路組成。3.3 STC單片機

19、最小系統 單片機最小系統是完成各種電路設計的最基本單元,其結構圖如圖3.3所示。圖3.3 單片機最小系統 圖3.4 單片機最小系統第4章 系統硬件電路設計4.1.1晶振電路 在晶振電路中,C4、C5為晶振的負載電容,分別接在晶振的兩個腳上和對地的電容,因為晶振與單片機的振蕩電路中腳XTAL0和腳XTAL1會產生偕波,所以在晶振的腳XTAL0和腳XTAL1之間接分別接入兩個30pf的瓷片電容接可以增加電路的穩定性。電路如圖4.1。 圖4.1 晶振電路4.1.2復位電路單片機復位電路有上電自動復位和手動復位兩種方式。上電復位要求接通電源后,自動進行復位操作。手動復位要求接通電源的前提下,在單片機運

20、行的條件下,在單片機運行期間,用按鈕開關操作使單片機進行復位的操作。 圖4.2 復位電路4.2.1 1602液晶概述1602LCD是指顯示的字符和數字為16X2,即可以顯示兩行,每行16個字符液晶模塊共32個字符和數字。1602LCD主要技術參數:1.顯示大小:16×2個字符2.芯片額定電壓:4.55.5V3.額定電流:2.0mA(5.0V)4.工作時的電壓:5.0V 4.2.2 1602液晶引腳功能 液晶屏共有16個引腳,分別接不通端口來完成顯示電路,各引腳功能見表4.1。表4.1 液晶引腳功能引腳符號功能說明1VSS一般接地2VDD接電源正極(+5V)3V0液晶顯示器對比度調整端

21、,接正電源時對比度最低,接地時對比度最高。4RSRS是選擇兩種寄存器,當高電平1時選擇數據寄存器、當低電平0時選擇指令寄存器。5R/WR/W是選擇兩種讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作6EE端為使能端,下降沿使能。7DB0雙向數據總線第0位(最低位)8DB1雙向數據總線第1位9DB2雙向數據總線第2位10DB3雙向數據總線第3位11DB4雙向數據總線第4位12DB5雙向數據總線第5位13DB6雙向數據總線第6位14DB7雙向數據總線第7位(最高位),是讀忙標志位15BLA背光電源正極16BLK背光電源負極1602液晶模塊內部的控制器一共具有11條控制指令,如表4.2所示:

22、表4.2 控制指令表序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關控制0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發生存貯器地址0001字符發生存貯器地址8置數據存貯器地址001顯示數據存貯器地址9讀忙標志或地址01BF計數器地址10寫數到CGRAM或DDRAM)10要寫的數據內容11從CGRAM或DDRAM讀數11讀出的數據內容表4.2字符控制命令說明:通過指令編程來實現1602液晶模塊的讀寫操作、屏幕和光標的操作。(其中1為高電

23、平、0為低電平)指令1:清顯示,將指令碼01H復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是不是左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關控制。 D:控制開關整體的顯示,高電平表示顯示打開,低電平表示關顯示關閉 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平表示閃爍,低電平表示不閃爍。指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令 DL:高電平時為4位總線,低電平時為8位總線 N:

24、低電平的時候顯示單行,高電平的時候顯示雙行F: 低電平的時候顯示5x7的點陣字符,高電平的時候顯示5x10的點陣字符。指令7:設置字符發生器RAM的地址。指令8:設置DDRAM的地址。指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,高電平的時候模塊不能接收數據或者命令,假如是低電平表示不忙。指令10:寫入數據。指令11:讀出數據。芯片時序表如下: 表4.3 芯片時序表讀狀態輸入RS=L,R/W=H,E=H輸出D0D7=狀態字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無讀數據輸入RS=H,R/W=H,E=H輸出D0D7=數據寫數據輸入RS=H,R/W=L,D0D

25、7=數據,E=高輸出無 LCD1602內部包含字符發生器CGROM,存儲了不同的點陣字符圖形,如表4.4所示,包括數字,英文字母的大小寫字符,常用的標點符號和日文字符等,每個字符都有一個固定的代碼,如英文字母“A”的代碼為41H,數字“0”的代碼為30H. 表4.4 字符發生器地址表 0000000100100011010001010110011110001001101010111100110111101111××××0000CGRAM(1)0P.p××××0001(2)!1AQaq××

26、5;×0010(3)'2BRbr××××0011(4)#3CScs××××0100(5)¥4DTdt××××0101(6)%5EUeu××××0110(7)&6FVfv××××0111(8).7GWgw××××1000(1)(8HXhx××××1001(2)9IYiy××&

27、#215;×1010(3).;JZjz××××1011(4);Kk××××1100(5).<L¥l|××××1101(6)-=Mm××××1110(7).>Nn××××1111(8)/?Oo4.2.3 LCD1602RAM地址映射圖 控制器內部帶有80B的RAM緩沖區,對應關系如表4.5所示。 表4.5 RAM緩沖區000102030405060708090A0B0C0D0E

28、0F10.27404142434445464748494A4B4C4D4E4F50.67 當在圖4.5中的00-0F.40-4F地址中的任一處寫入顯示數據時,液晶都可立即顯示出來,當寫入到10-27.50-67地址處時,必須通過移屏指令將他們移入到可顯示區域方可正常顯示。4.2.4 1602LCD的電路連接液晶5端為讀/寫選擇端,因為我們不從液晶中讀取數據,只向其寫入命令和顯示數據,因此此端始終選擇為寫狀態,即低電平接地。液晶6端為使能信號,是操作時必須的信號。其電路如圖4.3所示:圖4.3 1602的電路連接4.3.1 DS12C887概述DS12C887具有DS12R885裸片,32.76

29、8HZ石英晶體和一個可充電電池三個部分。時鐘芯片DS12C887具有如下的特征:(1)DS12C887里面自帶一個鋰電池,外部掉電時,內部信息還能保持10年的時間,保證不丟失數據。(2)能夠自動產生秒、分、時、天、星期、日、月、年等時間信息, 并有閏年補償功能。其內部還增加了世紀寄存器,利用硬件電路解決了“千年”問題。(3)具有二進制數碼和BCD碼兩種表示時間的方法、具有日歷和定時鬧鐘功能。(4)一天內的時間記錄具有12小時制和24小時制兩種,12小時時鐘模式中,具有PM和AM用來區分上午和下午。同時可選用夏令時模式。(5)有128個RAM單元與軟件接口,其中有11字節RAM用來存儲時間信息,

30、4字節RAM用來存儲DS12C887的控制信息,稱為控制寄存器14個作為字節時鐘和控制寄存器,113字節通用RAM使用戶使用。(6)用戶可對DS12C887進行編程以實現方波輸出,并可對其內部中斷通過軟件進行屏蔽。4.3.2 DS12C887引腳功能 表4.6 DS12C887引腳功能引腳符號功能說明1MOT模式選擇引腳,接Vcc時,選擇的是Motorola的總線時序;當接地或懸空,選擇的是Intel總線時序4-11AD0-AD7雙向地址/數據總線12GND接地13CSDS12887的芯片選選通信號,必須在CS有效的狀態下,Motorola時序中數據或地址才可以選通或Intel時序中讀寫信號才

31、可以有效。14AS地址選通,一個高電平的地址選通信號提給總線時,在AS脈沖的下降沿,DS12887選通地址。15R/W讀寫信號,有兩種操作模式。當MOT引腳接Vcc選擇Motorola時序,當MOT接地選擇的是Intel時序。17DS數據選通或讀出,根據模式選擇的不同,DS引腳有兩種不同的操作模式。18RESETRESET引腳對時鐘,日歷,RAM沒有影響。在上電時,RESET能一直保持低電平使系統保持穩定。19IRQ中斷請求,在DS12887中IRQ是一個低有效信號,它能對處理器發出一個中斷信號。23SQW方波輸出引腳24VCC接電源(+5V)4.3.3 DS12C887讀寫時序圖4.4 DS

32、12C887讀寫時序 4.3.4 DS12C887流程圖進入主程序后,DS12C887首先進行初始化設置,當串行口有數據時,則調用函數從日歷時鐘芯片獲取日歷時鐘信息,調用顯示函數顯示日歷時鐘信息顯示出來,重復進行。這部分包括DS12C887某個單元寫、讀DS12C887某個單元的內容和DS12C887設定時間。DS12C887的流程圖如圖4.5示。 開始 DS12C887初始化 調用函數獲取時鐘信息 送數據顯示圖4.5 DS12C887的流程圖4.3.5 時鐘芯片引腳介紹1) 時鐘芯片DS12C887,其引腳分布圖如下圖4.6所示圖4.6 時鐘引腳分布MOT (1腳) :總線時序模式選擇腳。接

33、高電平時,選擇MOTOROLA總線方式工作;接低電平或懸空時,芯片按照INTEL總線方式工作。NC (2,3,16,20,21,22腳):不解任何引腳。AD0AD7(411腳):地址/地址數據復用總線引腳。CS(13腳):片選腳,低電平有效。AS(14腳):地址鎖存輸入腳。引腳上的正脈沖用于切換地址/數據復用總線。脈沖后沿將地址鎖入DS12887中,在Intel總線方式下,該腳等效于MCS一51系列單片機芯片的ALE腳。 R/W(15腳):讀/寫輸入腳。此引腳有兩種工作方式,在選擇MOTOROLA總線方式下,此引腳用于指示當前的讀寫周期,高電平表示一個讀周期,低電平表示一個寫周期;選擇INTE

34、L中線時序模式時,此引腳為低電平有效的輸入腳,相當于通用RAM的寫使能信號(/WE)DS(17腳):此引腳有兩種工作方式,當MOT接高電平時時,此引腳為數據鎖存腳;當MOT接低電平時,此引腳為讀輸入腳,在Mcs一51系統中,Ds相等于RD腳。·RESET(18腳):復位輸入,當 RESET為低電平且VCC4.25時,DS12C887芯片執行復位操作。該腳上的電壓不影響時鐘、日歷及片內RAM的內容。IRQ(19腳):中斷申請輸出腳,低電平有效,只要引起中斷的狀態位有效且相應的中斷允許位為1,則IRQ變為低。微機需靠讀寄存器C來清除該腳信號,RESET腳也可清除該信號。SQW(23腳):

35、方波信號輸出腳。可通過設置寄存器位SQWE關斷此信號輸出,此信號的輸出頻率也可通過對芯片內部的寄存器編程予以改變。VCC(24腳):+5V電源端。4.3.6 DS12C887地址分配與數據格式表 DS12C887地址分配與數據格式表提供了時鐘芯片內部數據具體地址,便于讀取修改數據,具體地址如表4.7所示. 表4.7 DS12C887地址分配與數據格式表地址功能范圍二進制BCD十進制0秒00-3B00-5900-591鬧鐘秒00-3B00-5900-592分00-3B00-5900-593鬧鐘分00-3B00-5900-594時(12h)01-0C AM00-12 AM1-1281-8C PM8

36、1-92 PM時(24h)00-1700-230-235鬧鐘時(12h)01-0C AM00-12 AM1-1281-8C PM81-92 PM鬧鐘時(24h)00-1700-230-236星期01-0701-071-77日01-1F01-311-318月01-0C1-121-129年00-9900-630-994.3.7 4個控制寄存器介紹 DS12C887有4個控制寄存器,在任何時間都可以進行訪問,即使處于更新周期也可訪問。寄存器A字節的內容如下。MSB LSB UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0UIP:當該位為一時表明即將產生一次時鐘更新周期。當該位為零時,表

37、示至少在244,s內不會產生更新。該位不受RESET腳的影響, 當UIP為0時,可以獲得所有時鐘、日歷、鬧鐘信息。用戶將寄存器B中的SET位寫為1時,可以限制數據的更新的傳送并清零UIP位。DV2、DV1、DV0:用于打開振蕩器和復位分頻器,將其置為010是唯一打開振蕩器并使時鐘計時的辦法,置為1lx將打開振蕩器但使分頻器處于復位態,下一個更新周期將發生在DV2,DVI,DV0被置為010的500ms之后。寄存器B字節的內容如下。 MSB LSB SET PIE AIE UIE SQWE DM24/12 DSESET:設置位,不受到復位操作影響,可以進行讀寫。當0時,不處于設置狀態,芯片更新時

38、間數據;當1時,抑制數據更新,可以通過程序設定時間和日歷信息。PIE:周期性中斷使能位,復位時清除此位,可以進行讀寫。當1時,允許寄存器C中的周期中斷標志位PF,驅動/IRQ引腳向低產生中斷信號輸出,中斷信號產生的周期通過RS0-RE3決定。AIE:鬧鐘中斷使能位,可以進行讀寫。當1時,允許寄存器C中的鬧鐘中斷標志位AF、鬧鐘發生時就會通過/IRQ引腳產生中斷輸出。UIE:數據更新結束中斷使能位,可以進行讀寫。復位或者SET位為1時清除此位。為1時允許寄存器C中的更新結束標志UF,更新結束后就會通過/IRQ引腳產生中斷輸出。SQWE:方波使能位,復位時清除此位,可以進行讀寫。當0時,SQW引腳

39、保持低電平;當1時,SQW引腳輸出方波信號,其頻率由RS3-RS0決定。DM:數據模式位,不受復位操作影響,可以進行讀寫。當0時,設置時間、日歷信息為二進制數據; 當1時,設置為BCD碼數據。24/12:時間模式設置為,不受復位操作影響,可以進行讀寫。當0時,設置為12小時模式;當1時,設置為24小時模式。DSE:當1時,會進行兩次特殊時間的更新;4月的第一個星期日凌晨1:59:59會直接更新到3:00:00,10月的最后一個星期日凌晨1:59:59會直接更新到1:00:00;為0時,時間信息正常更新,不受復位操作影響,可以進行讀寫。寄存器C字節內容如下。 MSB LSB IRQF PF AF

40、 UF 0 0 0 0IQRF:中斷申請標志位。當1時,/IRQ引腳為低,產生中斷申請。當PF、PIE為1時或者AF、ATE為1或者UF、UIE為1時,此位為1,否則置0.PF:中期中斷標志位。當1時,是只讀位,與PIE位狀態無關,由寄存器C操作或者復位操作清除。AF:鬧鐘中斷標志位。當1時,表示當前時間和鬧鐘設定時間一至,由復位操作或讀寄存器C操作清除。UF:數據更新結束中斷標志位。每個更新周期后此位都會置1,當UIE位位置1時,UF若為1就會引起IRQF置1,將驅動/IRQ引腳為低電平,申請中斷。此位由讀寄存器C操作或者復位操作清除。寄存器D字節的內容如下。 MSB LSB 0 0 0 0

41、 0 0 0 0VRT;RAM和時間有效位。用于指示和VBAT引腳連接的電池狀態。此位不可寫入,也不受操作的影響,一般的時候讀取時總去為1,如果出現讀取為0的情況,就說明電池沒電了,時間數據和RAM中的數據就會變得不準確。芯片DS12CR887的113字節普通RAM空間為非易失性RAM空間,可以在未處理器程序中作為非易失性內存空間使用。4.4 鬧鈴電路鬧鈴功能是由單片機的I/O口輸出一定頻率方波信號,驅動蜂鳴器發出特定頻率的聲音信號實現的。當鬧鈴設置的時間到達時鐘的時間時,單片機發送一個低電平給蜂鳴器,三極管導通驅動蜂鳴器發出聲音作為定時鬧鈴。如圖4.7所示。圖4.7 鬧鈴電路4.5 獨立鍵盤

42、電路當單片機檢測到有按鍵被按下時,就發射與之相對應的二進制編碼信號,同時觸發相應功能位。如圖4.8所示。圖4.8 獨立鍵盤電路 實習總結1. 實習結果:本次設計的系統以單片機為控制核心,以時鐘芯片DS12C887產生時間數據,并通過單片機采集時間后發送到LCD1602顯示當前時間,同時設置三個按鍵,用來對時間的更改。實現了萬年歷所需要的功能。 2.實習結算:序號元件名稱數量價格(元)1AT89C52162液晶屏LCD16021153時鐘芯片DS12C887118411.0592M晶振10.3530pf瓷片電容20.2610uf電解電容10.27RESPACK排阻20.3810k電阻30.291

43、0k滑動變阻器10.310按鍵50.511電源接口10.312排線201.013排針201.014電路板11015IN400740.416220V電源插頭10.317220V-5V變壓器1818780510.5190.1uf瓷片電容20.2200.33uf瓷片電容10.1213300uf點解電容10.622總價63.4實習心得:這次單片機實習讓我認識和學習了關于DS12C887時鐘芯片,AT89C52單片機和LCD1602液晶屏的許多知識,同時學習到如何運用proteus畫圖,如何用Keil軟件編譯,如何用STC燒錄程序,了解了整個電路開發設計過程。在這次實習中通過查找大量的和DS12C887

44、時鐘芯片,AT89C52單片機和LCD1602液晶屏的相關資料,鍛煉了文獻檢索的能力。積累了焊接元器件的經驗和動手能力。本設計將書本知識和實物結合在一起,提高了查找相關資料和撰寫報告的能力,培養了端正的態度和分析解決問題的能力,對今后的學習和工作產生積極重大的影響。同時在這次實習過程中學習到了很多事情,比如程序編寫一定要嚴謹,還有若在任何過程中出現問題都需要保持清醒的頭腦不要慌亂,只有這樣才能找到問題的所在。在實習中體會到團隊合作的重要性,幾個人合作起來效率會很高還不感覺到累,最后感謝學校老師給了我們這次實習的機會,讓我們學到了很多課本上沒有的知識。 附錄1 硬件實物圖 正面 反面 附錄2 程

45、序代碼#include<reg52.h>#include"intrins.h" #define uchar unsigned char#define uint unsigned intuchar miao,fen,shi,ri,zhou,yue,nian,time_flag,key_num;uchar naofen,naoshi;sbit DS_cs=P23; /引腳分配sbit DS_as=P24;sbit DS_rw=P36;sbit DS_ds=P37;sbit LCD_rs=P20;sbit LCD_en=P22;sbit beep=P27;sbit k

46、ey1=P25;sbit key2=P26;sbit key3=P21;uchar code table1="DATE - - " /顯示格式uchar code table2="TIME : : "void delay(uchar z) /延時部分uchar x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void DS_write(uchar add,uchar date) /時鐘芯片寫數據 DS_as=1; DS_ds=1; DS_rw=1; DS_cs=0; P1=add; DS_as=0; DS_rw=0;

47、 P1=date; DS_rw=1; DS_as=1; DS_cs=1;uchar DS_read(uchar add) /時鐘芯片寫地址 uchar DS_read_dat; DS_as=1; DS_ds=1; DS_rw=1; DS_cs=0; P1=add; DS_as=0; DS_ds=0; P1=0xff; DS_read_dat = P1; DS_ds=1; DS_as=1; DS_cs=1; return(DS_read_dat);void LCD_write_com(uchar com) /LCD1602寫地址 LCD_rs=0; LCD_en=0; delay(5); LCD

48、_en=1; P0= com; LCD_en=0;void LCD_write_data(uchar date) /LCD1602寫數據 LCD_rs=1; LCD_en=0; delay(5); LCD_en=1; P0= date; LCD_en=0;void Display_Btime(uchar add,uchar date) /二進制顯示數據 LCD_write_com(add);LCD_write_data(date);void Display_BCDtime(uchar add,uchar date) /BCD顯示數據 uchar gw,sw;sw=date/10; /取十位gw=date%10; /取個位LCD_write_com(0x80+add);LCD_wri

溫馨提示

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

評論

0/150

提交評論