版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 2012屆畢業(yè)設計說明書</p><p> 基于單片機的數字萬年歷設計</p><p> 系 、 部: </p><p> 學生姓名: </p><p> 指導教師: 職稱 </p>
2、<p> 專 業(yè): </p><p> 班 級: </p><p> 完成時間: </p><p><b> 摘 要</b></p><p> 隨著科技的快速
3、發(fā)展,時間的流逝,至從觀太陽、擺鐘到現在電子鐘,人類不斷研究,不斷創(chuàng)新紀錄。美國DALLAS公司推出的具有涓細電流充電能的低功耗實時時鐘電路DS1302。它可以對年、月、日、星期、時、分、秒進行計時,還具有閏年補償等多種功能,而且DS1302的使用壽命長,誤差小。對于數字電子萬年歷采用直觀的數字顯示,可以同時顯示年、月、日、周日、時、分、秒等信息,還具有鬧鈴功能。該電路采用AT89S52單片機作為核心,功耗小,能在3V的低壓工作,電壓可
4、選用3~5V電壓供電。</p><p> 綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。</p><p> 本設計是基于51系列的單片機進行的電子萬年歷設計,可以顯示年月日時分秒及周信息,具有可調整日期和時間功能。通過此次設計能夠更加牢固的掌握單片機的應用技術,增強動手能力、硬件設計能力以及軟件設計能力。
5、</p><p> 本文介紹的萬年歷運用了AT89S52單片機、DS1302時鐘芯片、液晶顯示屏。</p><p> 關鍵字:萬年歷;AT89S52;DS1302;C語言編程;液晶顯示屏</p><p><b> ABSTRACT</b></p><p> Along with the rapid develop
6、ment of technology, the passage of time, to view the sun, from the pendulum clocks are now electric clock, human continuously research, innovation record. The United States out Juan DALLAS has fine current charge of low
7、power consumption can real time clock circuit DS1302. It can be to year, month, day, Sunday, when, minutes and seconds for the time, also has a leap year compensation and other functions, and the DS1302 long service life
8、 and small error. For digital el</p><p> To sum up the calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, conform to the trend of th
9、e development of electronic instruments, and has a broad market prospect. </p><p> This design is based on the single chip microcomputer 51 series of electronic calendar design, can display date and weeks d
10、etermined when information, which can adjust the date and time of the function. Through this design can be more solid mastery of the single chip microcomputer application technology, enhance the beginning ability, hardwa
11、re design and software design ability ability. </p><p> In this paper, the use of the calendar AT89S52 SCM, DS1302 clock chip, LCD display screen. </p><p> Key words: calendar; AT89S52 devices
12、; DS1302; The C programming language; LCD screen </p><p><b> 目錄</b></p><p> 1設計任務要求12</p><p> 2 設計方案及比較(設計可行性分析)13</p><p> 2.1 單片機芯片的選擇方案和論證13</p&
13、gt;<p> 2.2 顯示模塊選擇方案和論證:13</p><p> 2.3時鐘芯片的選擇方案和論證:14</p><p> 2.4按鍵模塊方案的選擇與比較14</p><p> 3 硬件電路設計15</p><p> 3.1 系統(tǒng)總體方案設計15</p><p> 3.2 系統(tǒng)
14、框圖15</p><p> 3.3 系統(tǒng)硬件概述16</p><p> 3.4 主要單元電路的設計16</p><p> 3.4.1 系統(tǒng)核心部分--單片機主控模塊16</p><p> 3.4.2 時鐘電路模塊的設計20</p><p> 3.4.3 按鍵電路模塊的設計23</p&g
15、t;<p> 3.4.4 液晶顯示電路模塊23</p><p> 3.4.5 鬧鈴電路32</p><p><b> 4 軟件設計34</b></p><p> 4.1 系統(tǒng)軟件設計34</p><p> 4.2系統(tǒng)主程序的流程圖34</p><p> 5
16、系統(tǒng)仿真測試36</p><p> 5.1仿真軟件簡介36</p><p> 5.2仿真步驟36</p><p> 6 測試與結果分析39</p><p> 6.1 硬件測試結果39</p><p> 6.2 軟件測試40</p><p> 6.3 測試結果分析與結論4
17、0</p><p> 6.3.1 測試結果分析40</p><p> 6.3.2 測試結論40</p><p><b> 參考文獻41</b></p><p><b> 致謝42</b></p><p><b> 附錄43</b>&l
18、t;/p><p> 附錄一:系統(tǒng)程序如下:43</p><p> 附錄二:系統(tǒng)原理圖64</p><p> 附錄三: 液晶顯示和DS1032時鐘的PCB圖65</p><p> 附錄四:鍵盤的PCB圖66</p><p><b> 1設計任務要求</b></p><
19、;p> 1.平年365天(52周+1天),閏年366天(52周+2天),平年2月28天,閏年2月29天。 </p><p> 2.每400年整一閏,或每4年且不為百年的一閏,即凡能被400整除,或不能被100整除但能被4整除的年份為閏年。</p><p> 3.每 4年(3個平年+1個閏年)共208周+5天</p><p> 每百年共100*
20、(208周+5天)-1天=5217周+5天</p><p> 每400年共4*(5217周+5天)+1天(整400年閏)=20871周+0天,即每400年一個輪回。</p><p> 4.顯示年、月、日、星期、時、分、秒的功能。</p><p> 5.具有調節(jié)功能,通過鍵盤加減調整萬年歷。</p><p> 2 設計方案及比較(設計可
21、行性分析)</p><p> 2.1 單片機芯片的選擇方案和論證</p><p><b> 方案一: </b></p><p> 采用89C51芯片作為硬件核心,采用Flash ROM,內部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設計中時由于不具備ISP在線編程技術, 當在對
22、電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要寫入程序時,對芯片的多次拔插會對芯片造成一定的損壞。</p><p><b> 方案二:</b></p><p> 采用AT89S52,芯片內ROM全都采用Flash ROM;能以3V的超底壓工作;同時也與MCS-51系列單片機完全兼容,該芯片內部存儲器為8KB ROM 存儲空間,同樣具有89C51的功能,且
23、具有在線編程可擦除技術,當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要寫入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。</p><p> 所以選擇采用AT89S52作為主控制系統(tǒng).</p><p> 2.2 顯示模塊選擇方案和論證:</p><p><b> 方案一:</b></p><p&g
24、t; 采用LED液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字、圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多,所以在此設計中不采用LED液晶顯示屏.</p><p><b> 方案二:</b></p><p> 采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數字顯得太浪費,且價格也相對較高,所以
25、也不用此種作為顯示.</p><p><b> 方案三:</b></p><p> 采用LCD12864液晶顯示模塊顯示,由于其屏幕是四行八列的,可以顯示很大的信息量。</p><p> 2.3時鐘芯片的選擇方案和論證:</p><p><b> 方案一:</b></p>&l
26、t;p> 直接采用單片機定時計數器提供秒信號,使用程序實現年、月、日、星期、時、分、秒計數。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現的時間誤差較大。所以不采用此方案。</p><p><b> 方案二:</b></p><p> 采用DS1302時鐘芯片實現時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年
27、補償的年進行計數,而且精度高,位的RAM做為數據暫存區(qū),工作電壓2.5V~5.5V范圍內,2.5V時耗電小于300nA.</p><p> 2.4按鍵模塊方案的選擇與比較</p><p><b> 方案一: </b></p><p> 矩陣式鍵盤,行線的一端通過上拉電阻與單片機的P1口線的高四位相連,列線的一端也通過上拉電阻與單片機的P1
28、口線低四位相連。矩陣式鍵盤結構性好,使用于按鍵較多時的情況。</p><p><b> 方案二:</b></p><p> 獨立式鍵盤, 每個按鍵的電路是獨立的,都有單獨一根數據線輸出鍵的通斷狀態(tài)。單片機一條I / O口線對應一個按鍵。獨立式鍵盤結構簡單,易于編程,適用本實驗按鍵較少的情況。</p><p> 由于這次設計中,使用的功能鍵
29、比較多,若采用獨立式鍵盤占有的I/O口比較多,所以在這里采用矩陣式鍵盤。</p><p> 綜上各方案所述,對此次作品的方案選定: 采用AT89S52作為主控制系統(tǒng); DS1302提供時鐘; LCD12864液晶顯示模塊作為顯示;矩陣式鍵盤。</p><p><b> 3 硬件電路設計</b></p><p> 3.1 系統(tǒng)總體方案設計
30、</p><p> 萬年歷采用LCD12864液晶顯示時間。LCD12864液晶和矩陣式鍵盤都是單片機用擴展I/O接口實現的,當把程序下載到單片機,就顯示年、月、日、星期并且電子鐘開始走時。按調試鍵按秒、分、時、星期、日、月、年的調整運算。按加減進行調整,每次調整時詢問“秒分”單元不能滿60、“時”單元是不能滿24、“日”單元是否滿30以及“月”單元是否12。若滿足條件則清零并向高位進1,若不滿足則繼續(xù)計數。以
31、“秒分”單元為例,當滿60秒時“秒”單元便清零,同時“分”單元加1。當滿60分時“分”單元清零,同時“時”單元加1。修改完時間后按下確定鍵,時鐘繼續(xù)走。,</p><p><b> 3.2 系統(tǒng)框圖</b></p><p> 顯示采用LCD12864液晶顯示模塊,設置時間按鍵采用矩陣式鍵盤,時間生成采用DS1302時鐘芯片,系統(tǒng)框圖如下:</p>&
32、lt;p><b> 圖1 系統(tǒng)設計框圖</b></p><p> 3.3 系統(tǒng)硬件概述</p><p> 本電路是由AT89S52單片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、星期、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.
33、5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數據。DS1302內部有一個31*8的用于臨時性存放數據的RAM寄存器。可產生年、月、日、星期、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能;用液晶顯示。</p><p> 3.4 主要單元電路的設計</p><p> 3.4.1 系統(tǒng)核心部分--單片機主控模塊<
34、;/p><p> AT89S52單片機為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3, MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。</p><p> AT89S52具有下列主要性能: </p><p> ·8KB可改編程序Flash存儲器(可經受1000次的寫入/擦
35、除周期) </p><p> ·全靜態(tài)工作:0Hz~24MHz</p><p> ·三級程序存儲器保密</p><p> ·128×8字節(jié)內部RAM</p><p> ·32條可編程I/O線</p><p> ·2個16位定時器/計數器</
36、p><p><b> ·6個中斷源</b></p><p><b> ·可編程串行通道</b></p><p><b> ·片內時鐘振蕩器</b></p><p> AT89S52的引腳及功能</p><p> AT8
37、9S52單片機的管腳說明如圖2所示。</p><p> 圖2 AT89S52的管腳</p><p> (1) 主要電源引腳</p><p><b> ?、賄CC 電源端</b></p><p><b> ?、贕ND 接地端</b></p><p> (2) 外接晶體
38、引腳XTAL1和XTAL2</p><p> ?、賆TAL1 接外部晶體的一個引腳。在單片機內部,它是構成片內振蕩器的反相放大器的輸入端。當采用外部振蕩器時,該引腳接收振蕩器的信號,既把此信號直接接到內部時鐘發(fā)生器的輸入端。</p><p> ②XTAL2 接外部晶體的另一個引腳。在單片機內部,它是上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,此引腳應懸浮不連接。</p&g
39、t;<p> (3) 控制或與其它電源復用引腳RST、ALE//PROG、/PSEN和/EA/VPP</p><p> ?、賀ST 復位輸入端。 當振蕩器運行時,在該引腳上出現兩個機器周期的高電平將使單片機復位。</p><p> ?、贏LE//PROG 當訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率
40、(此頻率為振蕩器頻率的1/6)周期性地出現正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是:每當訪問外部數據存儲器時,將跳過一個ALE脈沖。在對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(/PROG)[6]。</p><p> ?、?PSEN 程序存儲允許(/PSEN)輸出是外部程序存儲器的讀選通信號。當AT89S52/LV52由外部程序存儲器取指令(或常數)時,每個機器周期兩次
41、/PSEN有效(既輸出2個脈沖)。但在此期間內,每當訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。</p><p> ?、?EA/VPP 外部訪問允許端。要使CPU只訪問外部程序存儲器(地址為0000H~FFFFH),則/EA端必須保持低電平(接到GND端)。當/EA端保持高電平(接VSS端)時,CPU則執(zhí)行內部程序存儲器中的程序。</p><p> (4) 輸入/輸出引腳
42、 P0.0~ P0.7、P1.0~P1.7、P2.0~ P2.7 和P3.0~P3.7</p><p> ①P0端口(P0.0~ P0.7) P0是一個8位漏極開路型雙向I/O端口。作為輸出口用時,每位能以吸收電流的方式驅動8個TTL輸入,對端口寫1時,又可作高阻抗輸入端用。</p><p> ?、赑1端口(P1.0~ P1.7) P1是一個帶有內部上拉電阻的8位雙向I/O端口。P1的輸
43、出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。作輸入口時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p><p> ?、跴2端口 (P2.0~P2.7) P2是一個帶有內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可
44、用作輸入口。P2作輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p><p> ?、躊3端口(P3.0~P3.7) P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流,這是由于上拉的緣故。</p><p> P3口也可作為A
45、T89S52的一些特殊功能,這些特殊功能見表1。</p><p> 表1 P3端口的特殊功能</p><p> AT89S52單片機為40引腳雙列直插芯片, MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。</p><p> 單片機的最小系統(tǒng)如下圖所示,18引腳和19引腳接時鐘電路,XTAL1接外部晶振
46、和微調電容的一端,在片內它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調電容的另一端,在片內它是振蕩器倒相放大器的輸出.第9引腳為復位輸入端,接上電容,電阻及開關后夠上電復位電路,20引腳為接地端,40引腳為電源端. 如圖3所示</p><p><b> 圖3單片機最小系統(tǒng)</b></p><p> 3.4.2 時鐘電路模塊的設計</p>
47、<p> 圖4示出DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768KHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸
48、入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RSTS置為低電平,則會終止此次數據傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動行時,在Vcc大于等于2.5V之前,RST必須保持低電平。中有在SCLK 為低電平時,才能將RST置為高電平,I/O為串行數據輸入端(雙向)。SCLK始終是輸
49、入端。</p><p> 圖4 DS1302的引腳圖</p><p> DS1302的性能特性</p><p> ·實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償的年進行計數;</p><p> ·用于高速數據暫存的31×8位RAM;</p><p> ·最少引腳的
50、串行I/O;</p><p> ·2.5~5.5V 電壓工作范圍;</p><p> ·2.5V時耗電小于300nA;</p><p> ·用于時鐘或RAM數據讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數據傳送方式;</p><p><b> ·簡單的3線接口;</b></p
51、><p> ·可選的慢速充電(至VCC1)的能力。</p><p> (1) 時鐘芯片DS1302的工作原理:</p><p> DS1302在每次進行讀、寫程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時序如下圖5所示。表2為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對DS1302
52、進行讀寫數據。對于位6,若對程序進行讀/寫時RAM=1,對時間進行讀/寫時,CK=0。位1至位5指操作單元的地址。位0是讀/寫操作位,進行讀操作時,該位為1;該位為0則表示進行的是寫操作。控制字節(jié)總是從最低位開始輸入/輸出的。表3為DS1302的日歷、時間寄存器內容:“CH”是時鐘暫停標志位,當該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位為0時,時鐘開始運行。“WP”</p><p> 是寫保
53、護位,在任何的對時鐘和RAM的寫操作之前,WP必須為0。當“WP”為1時,寫保護位防止對任一寄存器的寫操作。</p><p> (2) DS1302的控制字節(jié)</p><p> DS1302的控制字如表2所示??刂谱止?jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低
54、有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出</p><p> RAM RD</p><p> 1 A4 A3 A2 A1 A0 </p><p> / CK
55、 /WR</p><p> 表2 DS1302的控制字格式</p><p> (3) 數據輸入輸出(I/O)</p><p> 在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS130
56、2的數據,讀出數據時從低位0位到高位7。如下圖5所示</p><p> 圖5 DS1302讀/寫時序圖</p><p> (4) DS1302的寄存器</p><p> DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式,其日歷、時間寄存器及其控制字見表3。</p><p> 表3 DS1302
57、的日歷、時間寄存器 </p><p> 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。 DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數為讀操作,偶數為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可
58、一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。 </p><p> 3.4.3 按鍵電路模塊的設計</p><p> 接按鍵的單片機端口接上10k歐姆的上拉電阻,以保證在無按鍵按下時端口是高電平,而按鍵按下時對應的I/O口為低電平。</p><p> 圖6 矩陣式鍵盤原理圖</p><p> 3.4.4
59、 液晶顯示電路模塊</p><p> (1) 12864C-1液晶中文顯示模塊概述</p><p> 12864C-1是一種具有4位/8位并行、2線或3線串行多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,
60、可構成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。</p><p><b> 基本特性:</b></p><p> ?
61、 低電源電壓(VDD:+3.0--+5.5V)</p><p> ? 顯示分辨率:128×64點</p><p> ?
62、60; 內置漢字字庫,提供8192個16×16點陣漢字(簡繁體可選)</p><p> ? 內置 128個16×8點陣字符</p><p> ? 2MHZ時鐘頻率&
63、lt;/p><p> ? 顯示方式:STN、半透、正顯</p><p> ? 驅動方式:1/32DUTY,1/5BIAS</p><p> ?
64、0; 視角方向:6點</p><p> ? 背光方式:側部高亮白色LED,功耗僅為普通LED的1/5—1/10</p><p> ? 通
65、訊方式:串行、并口可選</p><p> ? 內置DC-DC轉換電路,無需外加負壓</p><p> ? 無需片選信號,簡化軟件設計</p><p> ?
66、160; 工作溫度: 0℃ - +55℃ ,存儲溫度: -20℃ - +60℃ </p><p> ?。?) 液晶顯示模塊接口說明</p><p> 表4液晶顯示模塊各引腳接口</p><p><b> 表5 并行接口</b></p><p>
67、 *注釋1:如在實際應用中僅使用并口通訊模式,可將PSB接固定高電平,也可以將模塊上的J8和“VCC”用焊錫短接。</p><p> *注釋2:模塊內部接有上電復位電路,因此在不需要經常復位的場合可將該端懸空。 </p><p> *注釋3:如背光和模塊共用一個電源,可以將模塊上的JA、JK用焊錫短接。</p><p> ?。?) 液晶顯示模塊主要硬件構
68、成說明</p><p> 控制器接口信號說明:</p><p> 1、RS,R/W的配合選擇決定控制界面的4種模式如下表6。</p><p> 表6 RS,R/W的配合選擇決定控制界面的4種模式</p><p><b> 表7 E信號</b></p><p><b> ● 忙
69、標志:BF</b></p><p> BF標志提供內部工作情況.BF=1表示模塊在進行內部操作,此時模塊不接受外部指令和數據.BF=0時,模塊為準備狀態(tài),隨時可接受外部指令和數據.</p><p> 利用STATUS RD 指令,可以將BF讀到DB7總線,從而檢驗模塊之工作狀態(tài).</p><p> ● 字型產生ROM(CGROM)</p&g
70、t;<p> 字型產生ROM(CGROM)提供8192個此觸發(fā)器是用于模塊屏幕顯示開和關的控制。DFF=1為開顯示(DISPLAY ON),DDRAM 的內容就顯示在屏幕上,DFF=0為關顯示(DISPLAY OFF)。</p><p> DFF 的狀態(tài)是指令DISPLAY ON/OFF和RST信號控制的。</p><p> ● 顯示數據RAM(DDRAM)</
71、p><p> 模塊內部顯示數據RAM提供64×2個位元組的空間,最多可控制4行16字(64個字)的中文字型顯示,當寫入顯示數據RAM時,可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H—0006H的編碼中(其代碼分別是0000、0002、0004、0006共4個)
72、將選擇CGRAM的自定義字型,02H—7FH的編碼中將選擇半角英數字的字型,至于A1以上的編碼將自動的結合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼BIG5(A140—D75F),GB(A1A0-F7FFH)。 </p><p> ● 字型產生RAM(CGRAM)</p><p> 字型產生RAM提供圖象定義(造字)功能, 可以提供四組16×16點的自定義圖象
73、空間,使用者可以將內部字型沒有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過DDRAM顯示在屏幕中。</p><p> ● 地址計數器AC</p><p> 地址計數器是用來貯存DDRAM/CGRAM之一的地址,它可由設定指令暫存器來改變,之后只要讀取或是寫入DDRAM/CGRAM的值時,地址計數器的值就會自動加一,當RS為“0”時而R/W為“1”時,地址計
74、數器的值會被讀取到DB6——DB0中。</p><p> ● 光標/閃爍控制電路</p><p> 此模塊提供硬體光標及閃爍控制電路,由地址計數器的值來指定DDRAM中的光標或閃爍位置。</p><p> (4) 液晶顯示模塊指令說明</p><p> 模塊控制芯片提供兩套控
75、制命令,基本指令和擴充指令如下表8、表9:</p><p> 表8 指令表1:(RE=0:基本指令)</p><p> 表9 指令表2:(RE=1:擴充指令)</p><p> 備注:當IC1在接受指令前,微處理器必須先確認其內部處于非忙碌狀態(tài),即讀取BF標志時,BF需為零,方可接受新的指令;如果在送出一個指令前并不檢查BF標志,那么在前一個指令和這個指令中間
76、必須延長一段較長的時間,即是等待前一個指令確實執(zhí)行完成。</p><p> ?。?) 液晶顯示模塊讀寫時序圖</p><p><b> 數據傳輸過程</b></p><p> 圖7 8位和4位數據線的傳輸過程</p><p> 圖8 串口數據線模式數據傳輸過程</p><p><b
77、> 時序圖</b></p><p> 圖9 MPU寫資料到ST7920(8位數據線模式)</p><p> 圖10 MPU 從ST7920讀資料(8位數據線模式)</p><p> 串口讀寫時序: </p><p> 圖11 串口方式下MPU寫數據到ST7920</p><p> ?。?/p>
78、6) 液晶顯示模塊應用</p><p><b> 1、使用前的準備</b></p><p> 先給模塊加上工作電壓,再按照下圖的連接方法調節(jié)LCD的對比度,使其顯示出黑色的底影。</p><p> 此過程亦可以初步檢測LCD有無缺段現象。</p><p><b> 2、字符顯示</b><
79、;/p><p> 12864C-1每屏可顯示4行8列共32個16×16點陣的漢字,每個顯示RAM可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可實現32個中文字符或64個ASCII碼字符的顯示。12864C-1內部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現的。根據寫入內容的不同,可分別在液晶屏上顯示
80、CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內容。三種不同字符/字型的選擇編碼范圍為:0000~0006H(其代碼分別是0000、0002、0004、0006共4個)顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應的關系,其對應
81、關系如下表10所示。</p><p> 表10 液晶模塊地址</p><p> 3 、圖形顯示 </p><p> 先設垂直地址再設水平地址(連續(xù)寫入兩個字節(jié)的資料來完成垂直與水平的坐標地址)</p><p> 垂直地址范圍 AC5...AC0</p><p> 水平地址范圍 AC3…AC0</p&
82、gt;<p> 繪圖RAM 的地址計數器(AC)只會對水平地址(X 軸)自動加一,當水平地址=0FH 時會重新設為00H 但并不會對垂直地址做進位自動加一,故當連續(xù)寫入多筆資料時,程序需自行判斷垂直地址是否需重新設定。GDRAM的坐標地址與資料排列順序如下圖</p><p> 圖12 坐標地址與資料排列順序</p><p><b> 4、應用說明</b&
83、gt;</p><p> 用12864C-1顯示模塊時應注意以下幾點:</p><p> ①欲在某一個位置顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。</p><p> ②顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續(xù)字符時,只須設定一次顯示地址,由模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個
84、空ASCII字符位置。</p><p> ?、郛斪址幋a為2字節(jié)時,應先寫入高位字節(jié),再寫入低位字節(jié)。</p><p> ?、苣K在接收指令前,向處理器必須先確認模塊內部處于非忙狀態(tài),即讀取BF標志時BF需為“0”,方可接受新的指令。如果在送出一個指令前不檢查BF標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。指令執(zhí)行的時間請參考指令表中的指令執(zhí)行時
85、間說明。⑤“RE”為基本指令集與擴充指令集的選擇控制位。當變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時,無需每次均重設“RE”位。</p><p> ?。?) LCD1602液晶顯示電路設計</p><p> 以上我們完成了對LCD12864的基本特征、模塊接口、控制器接口信號說明、模塊指令、讀寫時序的學習,根據LCD讀寫的時序模擬總線的方
86、式與單片機進行數據的通訊,首先將數據從I/O口讀入或送出,再選擇R/W 和RS的電平進行不同的操作,在使能端E下降沿時觸發(fā)數據的讀入或送出。如圖13所示</p><p> 圖13 液晶顯示模塊與單片機引腳的連接(網絡標號)</p><p> 3.4.5 鬧鈴電路</p><p> 當系統(tǒng)顯示當前時間與設置的鬧鈴時間相同時,鬧鈴自動鬧鈴,設定的鬧鈴時間只可設定
87、時和分,當前時間不斷與設定的鬧鈴時間比較,不相等時不產生任何現象,一旦相等,輸出一個高電平使三極管導通,從而使蜂鳴器工作,鬧鈴起作用。鬧鈴電路如圖14所示。</p><p><b> 圖14 鬧鈴電路</b></p><p><b> 4 軟件設計</b></p><p> 4.1 系統(tǒng)軟件設計</p>
88、<p> 整個軟件系統(tǒng)采用模塊化思想,把獨立式鍵盤編程模塊、LCD12864、DS1302的驅動程序分模塊編寫,在功能程序中調用。采用這種方法不僅使程序模塊化,使程序結構層次分明,便于管理和維護,同時可方便以后開發(fā)的調用,而不必關心底層驅動是如何實現的,這樣縮短了開發(fā)周期,開發(fā)效率大大提高。按鍵處理中采用采用網狀多級狀態(tài)結構的編程方法。</p><p> 4.2系統(tǒng)主程序的流程圖</p&g
89、t;<p><b> 流程圖如下:</b></p><p> 圖15 系統(tǒng)主程序的流程</p><p><b> 5 系統(tǒng)仿真測試</b></p><p><b> 5.1仿真軟件簡介</b></p><p> ?。?) Keil uVision2程序編
90、譯</p><p> Keil uVision2是目前使用廣泛的單片機開發(fā)軟件,它集成了源程序編輯和程序調試于一體,支持匯編、C、PL/M語言,它是德國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)c語言的語法來開發(fā),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用,而且大大的提高了工作效率和項目開發(fā)周期,他還能嵌入匯編,您可以在關鍵的位
91、置嵌入,使程序達到接近于匯編的工作效率。KEILC51標準C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時保留了匯編代碼高效,快速的特點。C51編譯器的功能不斷增強, 使你可以更加貼近CPU本身,及其它的衍生產品。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個集成開發(fā)環(huán)境包含:編譯器,匯編器,實時操作系統(tǒng),項目管理器,調試器。uVision2 IDE可為它們提供單一而靈活的開發(fā)環(huán)境。</p><
92、p> ?。?)protuse仿真</p><p> Protues軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件
93、),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Ke
94、il和MPLAB等多種編譯</p><p><b> 5.2仿真步驟</b></p><p> 通過以上對各模塊流程圖的繪制,在軟件Keil uVision2下編寫好各模塊的c語言程序,并調試成功生成HEX文件;用protues軟件繪制出該系統(tǒng)的各模塊及其外圍電路。將keil軟件中生成的HEX文件導入AT89S52單片機中。</p><p>
95、;<b> 圖16 系統(tǒng)仿真圖</b></p><p> 圖17生成HEX文件</p><p> 將生成的HEX文件導入單片機</p><p><b> 圖18 仿真結果</b></p><p><b> 6 測試與結果分析</b></p><p&
96、gt; 6.1 硬件測試結果</p><p> 設計完成后,給系統(tǒng)上電,液晶顯示屏顯示結果如圖19所示。</p><p> 圖19 液晶顯示結果</p><p> 調節(jié)10K電位器R4可調整液晶顯示屏的亮度。調整到合適亮度后,按控制按鈕,光標會從陽歷年位開始閃爍,進入設定調整狀態(tài)。此時按加按鈕,當前數字就可改變。按一次釋放,數字加1;按鍵為釋放后有效。此時,
97、調整的位一直在閃爍,直到再次按光標移動控制位,光標跳到下一位閃爍。調整順序依次為:時間秒、分、時,星期、日、月,年、鬧鐘分、時。當全部參數調整完畢后,按退出按鈕,光標停止閃爍,退出設定調整狀態(tài),萬年歷開始正常工作。 </p><p> 調試分為硬件調試和軟件調試。硬件調試主要是檢測硬件電路是否有短路、斷路、虛焊等。DS1302的硬件電路很簡單,只通過3根線與單片機相連,很容易檢測,主要是檢查其引腳,如晶振和電源
98、等是否接好。另外可以通過軟件來調試硬件,如為了測試顯示電路連接是否正確,可以編寫一個簡單的顯示程序來測試它。接下來可進行軟件調試,可以編寫只含DS1302的計時和讀寫程序、顯示程序,測試DS1302是否正常工作。</p><p> 計時器最關鍵的是計時的精度。電子萬年歷中DS1302電路使用專用的晶振,經測試制作的電子萬年歷,一星期快了3s左右,誤差較大,實驗設計中可換用標準晶振或用軟件進行修正。</p&
99、gt;<p><b> 6.2 軟件測試</b></p><p> 電子萬年歷是多功能的數字型,可以看當前日期,時間。電子萬年歷功能很多,所以對于它的程序也較為復雜,所以在編寫程序和調試時出現了相對較多的問題。最后經過多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在軟件的調試過程中遇到的主要問題是:</p><p> 輸入程序后,LCD液
100、晶顯示屏顯示亮度不好。</p><p> 解決:一遍旋轉10K歐的滑動變阻器,一遍觀看LCD顯示屏,知道看到合適的亮度為止。</p><p> 6.3 測試結果分析與結論</p><p> 6.3.1 測試結果分析</p><p> 1.在測試中遇到LCD液晶顯示屏為不顯示時,首先使用試測儀對電路進行測試,觀察是否存在漏焊,虛焊,或者
101、元件損壞,滑動變阻器器沒有調好:查看寫入的程序是否正確無誤,對程序進行認真修改。</p><p> 6.3.2 測試結論</p><p> 經過多次的反復測試與分析,可以對電路的原理及功能更加熟悉,同時提高了設計能力與及對電路的分析能力。同時在軟件的編程方面得到更到的提高,對編程能力得到加強,同時對所學的知識得到很大的提高與鞏固。</p><p><b&g
102、t; 參考文獻</b></p><p> [1]單片機的C語言應用程序設計,北京航空航天大學出版社</p><p> [2] 彭小軍.用單片機實現電子鐘[J].新余高專學報,2004年4月第9卷第2期</p><p> [3] 付家才.單片機控制工程實踐技術[M].北京:化學工業(yè)出版社,2004.3</p><p> [
103、4] 劉軍等.單片機原理與接口技術[M].上海:華東理工大學出版社,2006.2</p><p> [5] 劉守義.單片機應用技術[M]. 西安:西安電子科技大學出版社,200298-107 </p><p> [6] 劉勇. 數字電路[M]. 北京:電子工業(yè)出版社, 2004,111-118 </p><p> [7] 康光華.電子技術基礎—模擬部分 [M
104、].(第五版)高等教育出版社.2005,247-261 </p><p> [8] 李曉靜等.液晶顯示控制器與單片機的接口及編程[J].電子技術,2004年第6期</p><p> [9] 譚浩強. C程序設計 [M].(第三版)北京:清華大學出版社,2005,256-278 </p><p> [10] 周潤景,張麗娜,劉印群. PROTEUS入門實用教程[
105、M].北京:機械工業(yè)出版社,2007,314-325 </p><p> [11] 戴佳,戴衛(wèi)恒. 51單片機C語言應用程序設計實例精講[M].北京:電子工業(yè)出版社,2006,231-246 </p><p><b> 致謝</b></p><p> 本電子鐘具有如下優(yōu)點:走時準確;掉電長時間后時間不需要重新設置;功耗低,操作界面簡單,操
106、作簡便;最大的特點是人性化的設計。</p><p> 本課程設計從軟件設計到仿真到硬件制作和調試,我收獲不小。特別是在仿真編程和硬件調試方面。在編程過程中一直灌輸給自己“編程是一種思想”,一定要用編程的思想去編程,如模塊化思想,文件管理思想,頭文件和接口函數的思想,設計程序時要考慮到程序的可擴充性,兼容性,可維護性以及重用性,并歸納和總結各種功能算法。在編程方面有了一定的進步。在使用仿真軟件時得到了一些啟示:仿
107、真只是提供一個實現的大概參考,真正的功能實現仍需在實際硬件調試中完善。</p><p> 在這次畢業(yè)設計過程中,我知道光靠我個人的力量是不可達到的,同時要有學校給我們這個機會,非常感謝學校給我這個機會,培訓的機會,讓我有一個動手的機會,讓我得到實踐的機會。</p><p> 經過此次的畢業(yè)設計,我受益非淺,也翻閱了大量的書籍和瀏覽了無數的網頁。這次的設計是我的一次實踐,也剛剛打開科技的
108、大門,今后我還想擁有更多的機會去實踐,讓我得到更多的鍛煉!</p><p> 感謝老師在本次畢業(yè)設計中的耐心指導,引導我,讓我學會了解決問題的方法。感謝同學們的熱心幫助,才有這次畢業(yè)設計的圓滿完成。感謝系各位老師對我的教導和指引。</p><p> 通過本次畢業(yè)設計,對我三年里所學的知識有了一個系統(tǒng)的掌握與理解。為我今后的學習與工作打下了扎實的基本功,使我能更好地適應去做相關技術工程的
109、項目開發(fā)與應用。</p><p><b> 附錄</b></p><p> 附錄一:系統(tǒng)程序如下:</p><p> #include<reg51.h></p><p> #include <intrins.h></p><p> /********位定義****
110、*****/</p><p> sbit lb=P2^0;</p><p> sbit io=P3^3; //ds1302的串行數據I/O口</p><p> sbit clk=P3^2; //ds1302的時鐘口</p><p> sbit rst=P3^4;
111、 //ds1302的復位口</p><p> sbit busy=P0^7; //lcd 忙標志位</p><p> sbit rs=P3^0; //lcd 數據狀態(tài)位</p><p> sbit rw=P3^1; //lcd 讀寫控件位</p>&
112、lt;p> sbit re=P3^5; //lcd 使能位</p><p> sbit menu=P1^0; //菜單</p><p> sbit inc=P1^1; //加一</p><p> sbit dec=P1^2; //減一<
113、/p><p> sbit quit=P1^3; //退出</p><p> /************全局變量***********/</p><p> unsigned char cmin,chour,sec,min,hour,day,month,week,year; //鬧分,鬧時,秒,分,時,日,月,星期,年</p>
114、;<p> char newclockhour,newclockmin,newsec,newmin,newhour,newday,newmonth,newweek,newyear; //重寫數據用的秒,分,時--</p><p> unsigned char clockmin,clockhour,bksec,bkmin,bkhour,bkweek,bkday,bkmonth,bkyear,do
115、wn,count; //閃爍標志位</p><p> unsigned char flag,daflag,dflag; // 加減標志位,時間日期標志位</p><p> unsigned char timete[8],timede[10],clocktimete[5]; //分別存放,時分秒;年月日,鬧鈴時分</p><p> unsigned char w
116、eek1[3]="Sun"; //星期日</p><p> unsigned char week2[3]="Mon"; // 一</p><p> unsigned char week3[3]="Tes"; // 二</p><p> unsigne
117、d char week4[3]="Wed"; // 三</p><p> unsigned char week5[3]="Thu"; // 四</p><p> unsigned char week6[3]="Fri"; // 五</p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的萬年歷畢業(yè)設計
- 基于單片機的數字萬年歷設計
- 通信畢業(yè)設計--基于單片機的數字萬年歷設計
- 基于單片機的萬年歷設計畢業(yè)設計
- 畢業(yè)設計---基于單片機萬年歷的設計
- 畢業(yè)設計---基于單片機萬年歷的設計
- 基于單片機的萬年歷設計畢業(yè)設計
- 單片機萬年歷系統(tǒng)畢業(yè)設計
- 基于單片機的測溫萬年歷畢業(yè)設計
- 基于51單片機的萬年歷畢業(yè)設計
- 基于單片機的電子萬年歷畢業(yè)設計
- 畢業(yè)設計---單片機控制的萬年歷設計
- 基于單片機的電子萬年歷設計畢業(yè)設計
- 畢業(yè)設計---基于51單片機的萬年歷設計
- 畢業(yè)設計---基于51單片機的萬年歷設計
- 基于單片機的萬年歷設計畢業(yè)設計.doc
- 51單片機萬年歷畢業(yè)設計論文
- 畢業(yè)設計----基于單片機的電子萬年歷的設計
- 基于單片機的電子萬年歷的設計畢業(yè)設計
- 基于51單片機的液晶萬年歷畢業(yè)設計
評論
0/150
提交評論