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