版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘要</b></p><p> 在當(dāng)代繁忙的工作與生活中,時(shí)間與我們每一個(gè)人都有非常密切的關(guān)系,每個(gè)人都受到時(shí)間的影響。我們必須對(duì)時(shí)間有一個(gè)度量,因此產(chǎn)生了鐘表。鐘表的發(fā)展是非常迅速的,從剛開始的機(jī)械式鐘表到現(xiàn)在普遍用到的數(shù)字式鐘表,即使現(xiàn)在鐘表千奇百怪,但是它們都只是完成一種功能——計(jì)時(shí),只是工作原理不同而已,在人們的使用過程中,逐漸發(fā)現(xiàn)了鐘表的功能太單一,
2、沒有更大程度上的滿足人們的需求。因此在這里,我想能不能把一些輔助功能加入鐘表中去。在此設(shè)計(jì)中所設(shè)計(jì)的鐘表具有鐘表的功能。</p><p> 本系統(tǒng)采用了以廣泛使用的單片機(jī)技術(shù)為核心,軟硬件結(jié)合,使硬件部分大為簡(jiǎn)化,提高了系統(tǒng)穩(wěn)定性,并采用LCD顯示電路、鍵盤電路,本方案設(shè)計(jì)出的萬年歷可以顯示日期時(shí)間、農(nóng)歷,設(shè)置鬧鈴功能。</p><p> In busy job of the pres
3、ent age and life, time has very close something to do with all of us , everyone all accepts the time effect. we must have a magnanimity to time , have produced clock and watch therefore. Development of clock and watch is
4、 very prompt , use clock and watch to the digital from just originally mechanical dyadic clock and watch to now commonly, even if now clock and watch is exceedingly strange, they accomplish but one kind of time function
5、of function all only , are only opera</p><p> And the monolithic machine technology that this system has adopt to use broad usage has been that core , soft hardware combine , the hardware part has facilitat
6、ed a messenger extremely , has raised system stability, adopt LCD demonstrates circuit , keyboard circuit , The perpetual calendar that the scheme designs out can demonstrate date time , unar calendar , set up the noisy
7、bell function.</p><p> 關(guān)鍵字:AT89C52、字符液晶顯示模塊、DS1302</p><p><b> 目 錄</b></p><p> 摘 要…………………………………………………………………………………………………………2</p><p> 關(guān)鍵字………………………………
8、……………………………………………………………………………2</p><p> 第一章 概 述……………………………………………………………………………………………………4</p><p> 1.1 課題的背景研究意義………………………………………………………………………………………4</p><p> 1.2 本課題實(shí)現(xiàn)的功能及要求…………………………………
9、………………………………………………4</p><p> 1.3 方案論證……………………………………………………………………………………………………4</p><p> 1.4 章節(jié)安排……………………………………………………………………………………………………4</p><p> 第二章 系統(tǒng)硬件設(shè)計(jì)</p><p> 2.3 其
10、余應(yīng)用電路的介紹………………………………………………………………………………………8</p><p><b> 第三章 軟件設(shè)計(jì)</b></p><p> 3.1 軟件設(shè)計(jì)總述……………………………………………………………………………………………13</p><p> 3.2 程序模塊介紹………………………………………………………………
11、……………………………13</p><p> 第四章 調(diào)試和總結(jié)</p><p> 4.1 硬件調(diào)試…………………………………………………………………………………………………20</p><p> 4.2 軟件調(diào)試…………………………………………………………………………………………………20</p><p> 4.3 聯(lián)調(diào)……………
12、…………………………………………………………………………………………21</p><p><b> 參考文獻(xiàn) </b></p><p> 附錄三 參考文獻(xiàn)……………………………………………………………………………………………36</p><p><b> 第一章 概述</b></p><p>
13、; 1.1 課題的背景、研究意義 </p><p> 隨著電子技術(shù)的迅速發(fā)展,時(shí)間的流逝,從觀察太陽、擺鐘到現(xiàn)在的電子鐘, 人類不斷研究、不斷 創(chuàng)新?,F(xiàn)市場(chǎng)的電子鐘具有低功耗的實(shí)時(shí)時(shí)鐘電路,它們可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有潤(rùn)年補(bǔ)償?shù)裙δ埽沂褂脡勖L(zhǎng)、誤差小、使用方便。電子萬年
14、歷的出現(xiàn)給人們的生活帶來的諸多方便。目前,國際上的電子萬年歷正從模擬式向數(shù)字式、由集成化向智能化的方向飛速發(fā)展。</p><p> 綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。</p><p> 1.2實(shí)現(xiàn)的功能及要求 </p><p><b> (1)基本要求 &l
15、t;/b></p><p> ①具有年、月、日、星期、時(shí)、分、秒等功能;</p><p> ?、诰邆淠辍⒃?、日、星期、時(shí)、分、秒校準(zhǔn)功能 。</p><p> ?、坌?zhǔn)時(shí)具有閃爍功能。</p><p> ( 2 ) 創(chuàng)新要求</p><p> 具有上、下課響鈴功能;</p><p>
16、<b> 1.3 方案論證</b></p><p> 顯示模塊選擇方案和論證:</p><p> 方案一:采用LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。但這里顯示位數(shù)多,所要求的數(shù)碼管多,成本更高。</p><p> 方案二:采用LCD液晶顯示屏,液晶顯示屏的顯
17、示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見,雖價(jià)格昂貴,但接口線多,所以在此設(shè)計(jì)中采用LCD液晶顯示屏。</p><p> 時(shí)鐘芯片的選擇方案和論證:</p><p> 方案一:采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,結(jié)構(gòu)簡(jiǎn)單。所以采用DS1302時(shí)鐘芯片。</p&
18、gt;<p> 方案二:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、 時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。且算法復(fù)雜,所以不采用此方案。</p><p> 經(jīng)論證本次設(shè)計(jì)采用采用AT89S52作為主控制系統(tǒng); DS1302提供時(shí)鐘; 采用LCD液晶作為顯示。</p><p><b> 1.
19、4章節(jié)安排</b></p><p><b> 第一章概述</b></p><p><b> 第二章系統(tǒng)硬件設(shè)計(jì)</b></p><p><b> 第三章系統(tǒng)軟件設(shè)計(jì)</b></p><p> 第二章 系統(tǒng)硬件設(shè)計(jì)</p><p>
20、 2.1硬件的設(shè)計(jì)總框圖</p><p> 本次設(shè)計(jì)的基于單片機(jī)控制的電子萬年歷,其具有年、月、日、星期、時(shí)、分、秒的顯示等功能;具有時(shí)間與陰、陽歷能夠自動(dòng)關(guān)聯(lián);可以設(shè)置鬧鈴的功能。其具體實(shí)現(xiàn)過程就是由主控制發(fā)送信息給DS1302時(shí)鐘芯片再由時(shí)鐘芯片反饋給單片機(jī),再由主控制器傳送給LCD顯示信息。并且可以在鍵盤設(shè)置模塊輸入修改時(shí)間,設(shè)置鬧鈴等信息,當(dāng)鍵盤設(shè)置時(shí)間、日期時(shí),單片機(jī)主控制根據(jù)輸入信息,通過串口通信傳
21、送給DS1302時(shí)鐘芯片,DS1302芯片讀取當(dāng)前新信息產(chǎn)生反饋傳送給單片機(jī),然后單片機(jī)根據(jù)控制最后輸送顯示信息到LCD模塊上顯示。</p><p> 2.2主控制器AT89C52介紹 </p><p> 1.AT89C52功能介紹</p><p> AT89C52是8字節(jié)FLASH閃速存儲(chǔ)器,256字竹內(nèi)部RAM , 32個(gè)I/O口線,3個(gè)16 位定時(shí)/計(jì)數(shù)
22、器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89c52可降至OHz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電上作模式??臻e方式停止CPU 的工作,但允許RAM,定時(shí)/計(jì)數(shù)器.串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位.</p><p><b> 2.功能引腳說明:</b></
23、p><p><b> Vcc:電源電壓</b></p><p><b> GND:地</b></p><p> P0:P0口是一組8位漏極開路型雙向1/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí).每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL 邏輯門電路,對(duì)端口P0 寫“1”時(shí),可作為高阻抗輸入端用。</p>&
24、lt;p> 在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部 上拉電阻。</p><p> 在FLASH由編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字 節(jié),校驗(yàn)時(shí),要求外接上拉電阻。</p><p> P1口:PI 是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流4個(gè)TTL邏輯門電路。對(duì)
25、端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作 輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流IIL</p><p> 與AT89C51不同之處是,Pl.0 和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(Pl.0/T2 )和輸入(P1.1/T2EX) , </p><p> FLASH編程和程序校驗(yàn)期間,Pl接收低8位地址。<
26、;/p><p> PI.O 和PI.l 的第二功能:</p><p> P2 是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯電路。對(duì)端口P2寫“l(fā)",通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口, 作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(llt )。</p>
27、;<p> 在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器,P2送出高8 位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器、如執(zhí)行MOVX@RI指令)時(shí),P2口輸出P2鎖存器的內(nèi)容。</p><p> FLASH編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。</p><p> P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)
28、4個(gè)TTL邏輯門電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流(IIL) . </p><p> P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表所示:</p><p> P3.0 RXD(串行輸入口〕 </p><p> P3.1 TXD(串行輸出口〕 </p>
29、<p> P3.2 INTO(外中斷0〕 </p><p> P3.3 INTO(外中斷l(xiāng)) </p><p> P3.4 TO (定時(shí)/計(jì)數(shù)器0 ) </p><p> P3.5 Tl (定時(shí)/計(jì)數(shù)器l ) </p><p> P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) </p><p> P3
30、.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) </p><p> 此外,P3口還接收一些用于FLASH閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。</p><p> ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)
31、.一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位.可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活,此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位
32、無效。</p><p> PSEN:程序儲(chǔ)存允許PSEN輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。</p><p> EA/VPP:外部訪問允許。欲使CPU 僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH ) , EA端必須保持低電平(接
33、地).需注怠的是:如果加密位LBI被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。</p><p><b> 3.最小系統(tǒng)</b></p><p> 單片機(jī)最小系統(tǒng)包括時(shí)鐘電路、電源和復(fù)位電路等,是單片機(jī)工作的基本要求。單片機(jī)控制整個(gè)系統(tǒng)的工作,一方面讀取日歷時(shí)鐘芯片中的日期等數(shù)據(jù),檢測(cè)是否需要設(shè)置,并處理相應(yīng)的按鍵。另一方面,控制顯示器的工作,將各種數(shù)據(jù)送到液晶顯示器去顯示
34、。</p><p><b> 時(shí)鐘電路</b></p><p> 80C52型單片機(jī)內(nèi)有一增益反相放大器,振蕩頻率取決于石英晶體的振蕩頻率。范圍可取1。2—12MHZ,C01、C02主要起頻率微調(diào)和穩(wěn)定作用。</p><p><b> 復(fù)位電路</b></p><p> 單片機(jī)在開關(guān)機(jī)時(shí)都需
35、要復(fù)位,以便中央處理器CPU及其他功能部件都RC構(gòu)成處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。80C51的RST引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)高電平有效,持續(xù)時(shí)間需要24個(gè)時(shí)鐘周期以上。</p><p> RC構(gòu)成微分電路,在接電瞬間,產(chǎn)生一個(gè)微分脈沖,其寬度若大于2個(gè)機(jī)器周期,80C51型單片機(jī)將復(fù)位。為保證微分脈沖寬度足夠大,RC時(shí)間常數(shù)應(yīng)大于2個(gè)機(jī)器周期。一般取10uF電容、8.2K歐姆電阻。<
36、;/p><p><b> 4.振蕩器特性:</b></p><p> XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p>
37、<p><b> 2.3其余電路介紹</b></p><p><b> 2.3.1顯示電路</b></p><p> 液晶顯示器的接口有兩種:一種是總線式接口電路方式;另一種是非總線接口電路方式??偩€式接口方式是把液晶顯示器看做外部的數(shù)據(jù)存儲(chǔ)器,訪問液晶顯示器就像訪問數(shù)據(jù)存儲(chǔ)器的一個(gè)單元一樣,采用這種方式能充分發(fā)揮單片機(jī)的總線讀寫
38、功能,便于升級(jí)和擴(kuò)展。而非總線方式是直接利用IO口進(jìn)行讀寫,較靈活,不便于升級(jí)。這里采用總線式接口方式。接口時(shí)要注意顯示器的功能信號(hào)E是高電平有效,所以要取反。這里使用的液晶顯示器為L(zhǎng)CD1602為字符點(diǎn)陣式液晶顯示器??梢燥@示16×2個(gè)字符,而要顯示日期字符有23個(gè),可以滿足要求。</p><p> 1、LCD模塊接口引腳功能</p><p> 液晶顯示模塊具有體積小、功耗
39、低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。目前字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件。這里向大家介紹一款LCD1602液晶顯示模塊,它可以顯示兩行,每行16個(gè)字符,采用單+5V電源供電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有很高的性價(jià)比。</p><p><b> 2. 硬件電路</b></p><p> DS
40、1302的4、5、6的三個(gè)管腳是其控制位。其7、8、9、10、11、12、13、14管腳是總線接口。1管腳是電源地。2管腳是電源接口。</p><p> 3、LCD1602與AT89c52的接口</p><p> AT89c52的P1口直接與液晶模塊的數(shù)據(jù)總線D0~D7相連;P2 口的0,1,2腳分別與液晶模塊的RS、RW、E腳相連?;瑒?dòng)變 阻器用于調(diào)整液晶顯示的亮度。</p&g
41、t;<p> 液晶顯示器的接口有兩種:一種是總線式接口電路方式;另一種是非總線接口電路方式??偩€式接口方式是把液晶顯示器看做外部的數(shù)據(jù)存儲(chǔ)器,訪問液晶顯示器就像訪問數(shù)據(jù)存儲(chǔ)器的一個(gè)單元一樣,采用這種方式能充分發(fā)揮單片機(jī)的總線讀寫功能,便于升級(jí)和擴(kuò)展。而非總線方式是直接利用IO口進(jìn)行讀寫,較靈活,不便于升級(jí)。這里采用總線式接口方式。接口時(shí)要注意顯示器的功能信號(hào)E是高電平有效,所以要取反。這里使用的液晶顯示器為L(zhǎng)CD1602
42、為字符點(diǎn)陣式液晶顯示器??梢燥@示16×2個(gè)字符,而要顯示日期字符有23個(gè),可以滿足要求。</p><p><b> 2.3.2時(shí)鐘電路</b></p><p> DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2
43、V時(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輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過程中RST置為低
44、電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK為時(shí)鐘輸入端。 下圖為DS1302的引腳功能圖:</p><p> 引腳功能(如圖 6)</p><p> VCC1.VCC2:電源引腳 。
45、 </p><p> 其中VCC2接主電源 .VCC1接備用電源。 </p><p> GND:接地。輸出數(shù)據(jù)。</p><p> X1、X2:32.768kHz。晶振引腳。</p><p> RST為復(fù)位端,高電平時(shí)允許I/O端進(jìn)行數(shù)據(jù)傳輸,低電平則禁止數(shù)據(jù)傳送且使I/O端呈高阻狀態(tài);I/O為串行數(shù)據(jù)輸入、
46、輸出端,所有輸入、輸出數(shù)據(jù)的傳送順序均以最低位LSB打頭,最高位MSB結(jié)束;SCLK為同步時(shí)鐘脈沖端,其上升沿將I/O端數(shù)據(jù)按位寫入DS1302,下降沿使DS1302按位輸出數(shù)據(jù)至I/O端;VCC2、VCC1為主電源和備份電源端,當(dāng)主電源VCC2大于備份電源VCC1+0.2V時(shí),由VCC2對(duì)芯片供電,否則,由VCC1對(duì)芯片供電。工作電壓范圍為2.5~5.5 V,工作電源和備份電源雙引腳輸入,功耗很低,當(dāng)工作電壓為2.5 V時(shí)正常工作,所
47、需電流不超過300 nA。另外,如果選擇了涓流充電功能,在正常情況下,主電源還可對(duì)備份電源進(jìn)行慢速充電,有效延長(zhǎng)了備份電源的使用壽命,保證了系統(tǒng)時(shí)間的連續(xù)可靠運(yùn)行。</p><p> 內(nèi)部有振蕩器。若采用外部振蕩信號(hào)時(shí)。32768Hz的信號(hào)從 X1腳輸入.x2腳懸空。 CE:片選端,高電平有效 ,在有些早期資料中該引腳標(biāo)成爪ST,實(shí)際功能一樣。CE端接通控制邏輯,當(dāng)其為‘0”時(shí) ,IO引腳變?yōu)楦咦杞貭顟B(tài),所有
48、的數(shù)據(jù)傳送中止,當(dāng)其為‘1’時(shí),允許數(shù)據(jù)傳送。CE由‘0’至‘1’時(shí)。SCIX必須為“0”。 </p><p> DS1302的內(nèi)部主要由移位寄存器、指令和控制邏輯、振蕩分頻電路、實(shí)時(shí)時(shí)鐘以及RAM組成。每次操作時(shí),必須首先把CE置為高電平。再把提供地址和命令信息的8位裝入移位寄存器。數(shù)據(jù)在SCLK的上升沿串行輸入。無論是讀周期還是寫周期發(fā)生,也無論傳送方式是單字節(jié)還是多字節(jié),開始8位將指定內(nèi)部何處被進(jìn)行訪問。
49、在開始 8個(gè)時(shí)鐘周期把含有地址信息的命令字裝入移位寄存器之后。緊隨其后的時(shí)鐘在讀操作時(shí)輸出數(shù)據(jù).</p><p><b> 2.3.3串口電路</b></p><p> DS1302與微處理器的接口電路如下圖所示。該微處理器采用宏晶科技推出AT89C51單片機(jī)作為主控芯片,該產(chǎn)品具有片內(nèi)資源豐富、超強(qiáng)抗干擾、高抗靜電、超低功耗、寬電壓、不怕電源抖動(dòng)、在系統(tǒng)可編程、
50、加密性強(qiáng)、無法解密、可降低單片機(jī)時(shí)鐘對(duì)外部電磁輻射等特點(diǎn),其良好的性能保證了各個(gè)器件的協(xié)調(diào)可靠工作及控制要求。在電路中單片機(jī)的P1.7控制DS1302的復(fù)位輸入端,P1.4與數(shù)據(jù)輸入/輸出引腳相連,P1.3用來作為 DS1302的輸入時(shí)鐘SCLK控制端。由于單片機(jī)復(fù)位時(shí),所有單片機(jī)的端口均為高電平,如果直接用單片機(jī)的某一口線同DS1302的RST相連,則影響了系統(tǒng)加電時(shí)對(duì)DS1302的初始化,從而造成 DS1302計(jì)時(shí)的不穩(wěn)定。因此,本
51、主電源(5 V)接 VCC2,備份電池采用可充電鎘鎳電池(3.6 V)接 VCC1,可啟用內(nèi)部涓流充電器在主電壓正常時(shí)向電池充電,以延長(zhǎng)電池使用時(shí)間。備份電池也可用1微法以上的超容量電容代替,但需要注意的是備份電池電壓應(yīng)略低于主電源工作電壓。</p><p> 2.3.4鍵盤設(shè)置電路</p><p><b> 1. 鍵盤接口介紹</b></p>&l
52、t;p><b> 獨(dú)立式鍵盤</b></p><p> 獨(dú)立式鍵盤是指直接用I/O口線構(gòu)成單個(gè)按鍵電路,每個(gè)按鍵占用一條I/O口線,當(dāng)某個(gè)鍵閉合時(shí),相應(yīng)的I/O口線變?yōu)榈碗娖?,?dāng)CPU查詢到為低電平的I/O口線時(shí),就可以判別出與其對(duì)應(yīng)的鍵處于釋放狀態(tài)。</p><p><b> 行列式鍵盤</b></p><p&g
53、t; 將I/O口線的一部分作為行線,另一部分作為行線,按鍵設(shè)置在行線的交叉點(diǎn)上。CPU通過其電平的高低來判別鍵是否被按下。但每根線上接有4個(gè)按鍵,任何鍵按下都有可能使其電平變低,到底是哪個(gè)鍵按下呢?這是采用了“時(shí)分復(fù)用”的方法,即在一個(gè)查詢周期里把時(shí)間分為4個(gè)間隔,每個(gè)時(shí)間間隔對(duì)應(yīng)一個(gè)鍵,在哪個(gè)時(shí)間間隔查到低電平,則代表是與之相對(duì)應(yīng)的鍵被按下。時(shí)間間隔的劃分是通過列線P1.4~P1.7來實(shí)現(xiàn)的。</p><p>
54、; 依次使列線P1.4~P1.7中的一根輸出為低電平,則只有與之對(duì)應(yīng)的鍵按下時(shí),才能使行線為低電平,此時(shí)其他列線都輸出高電平,與它們對(duì)應(yīng)的鍵按下,不能使行線電平變低,所以就實(shí)現(xiàn)了行線的時(shí)分復(fù)用。</p><p> 由于行列式鍵盤的按鍵數(shù)量比較多,為了使程序簡(jiǎn)潔,一般在鍵處理程序中,給予每個(gè)鍵一個(gè)鍵號(hào),由從列線I/O口輸出的數(shù)據(jù)和從行線I/O口讀入的數(shù)據(jù)得到按鍵的鍵號(hào),然后由該鍵號(hào)通過散轉(zhuǎn)表進(jìn)入各按鍵的服務(wù)程序
55、。</p><p><b> 2.設(shè)置電路介紹</b></p><p> 設(shè)置電路的功能主要是把時(shí)間和日期設(shè)置到當(dāng)前的時(shí)間,可以在系統(tǒng)運(yùn)行中進(jìn)行。用4個(gè)獨(dú)立式按鍵完成,分別接到單片機(jī)P1口的高4位。第1個(gè)按鈕表示是否進(jìn)行設(shè)置,按下時(shí)表示設(shè)置,并且每按一次,在顯示器上分別在年、月、日等日期時(shí)間上跳轉(zhuǎn),表示對(duì)相應(yīng)的項(xiàng)進(jìn)行更改;第2個(gè)按鈕按下表示對(duì)第1個(gè)按鈕選中的項(xiàng)進(jìn)行
56、加1操作;第3個(gè)按鈕按下表示進(jìn)行減1操作;第4個(gè)按鈕按下表示停止設(shè)置。只有在第1個(gè)按鈕按時(shí)才可進(jìn)行加減操作。其電路如圖3所示。其中電容的作用是消除按鍵的抖動(dòng),也可用雙穩(wěn)態(tài)觸發(fā)器去除按鍵時(shí)的抖動(dòng),同時(shí)為了提高可靠性,硬件去抖動(dòng)的同時(shí),還可以用軟件去抖動(dòng)的方法。</p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)</p><p><b> 3.1軟件設(shè)計(jì)總述</b></p
57、><p> 系統(tǒng)軟件設(shè)計(jì)主要包括主程序設(shè)計(jì)、日期數(shù)據(jù)采集子模塊程序設(shè)計(jì)、按鍵處理子模塊程序設(shè)計(jì)和顯示子模塊程序設(shè)計(jì)等。主程序主要完成器件的初始化,并判斷有無按鍵按下,并根據(jù)判斷的結(jié)果調(diào)用相應(yīng)的子模塊程序;日期數(shù)據(jù)采集子模塊程序完成相應(yīng)的數(shù)據(jù)采集、處理和保存 ,按鍵處理子模塊程序完成日期的設(shè)置,而顯示子模塊程序只要把上述子模塊儲(chǔ)存的數(shù)據(jù)送去顯示即可。</p><p><b> 程序
58、流程圖</b></p><p><b> 3.2程序模塊介紹</b></p><p><b> 3.2.1顯示模塊</b></p><p> 1.LCD1602的指令</p><p><b> 液晶程序</b></p><p><
59、;b> 4.子程序流程圖</b></p><p><b> 3.2.2</b></p><p><b> 1.編程思想</b></p><p> DS1302所進(jìn)行的一切工作必須先由 CPU向 DS1302發(fā)送命令字節(jié),命令字節(jié)格式如圖 3所示。各位定義如下:命令字節(jié)的最高位 7必須為 “1”,否
60、則禁止對(duì) DS1302進(jìn)行操作。第 6位是時(shí) 鐘/日歷或 RAM 選擇位,如它為 “1,,可對(duì) 內(nèi)部 RAM讀寫,如它為“0”可對(duì)時(shí)鐘/日歷操作。此處所謂 日歷型數(shù)據(jù)即數(shù)據(jù)格式為壓縮型 BCD碼,且數(shù)值必須在它的定義域內(nèi);例如,“月份”的定義域 為 1~12,“秒”的定義域?yàn)?0~59等等。所謂RAM 型數(shù)據(jù) 即指一般 16進(jìn)制數(shù)據(jù)。位 5至位 1為 DS1302內(nèi)部寄存器地址。DS1302有單字節(jié)和多 字節(jié)兩種讀、寫方式。所謂單字節(jié)讀
61、、寫方式即每 次只能從 DS1302中讀、寫 1字節(jié)數(shù)據(jù)。所謂多字節(jié)讀、寫方式則每次可從 DS1302中連續(xù)讀、寫若干字節(jié)數(shù)據(jù)。當(dāng)位 5至位 1各位均為“1”時(shí),DSI302為多字節(jié)讀、寫方式。最低位 0為“0”表示寫操作,否則為讀操作。命令字節(jié)的傳輸都是從最低位開始。 </p><p> DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見表
62、。DS1302所有的時(shí)間數(shù)據(jù)都放到數(shù)據(jù)寄存器中:</p><p><b> 2. 讀,寫時(shí)序</b></p><p> DS1302采用串行方式與微控制器通訊。在片選信號(hào)RST變?yōu)楦唠娖胶螅上蛐酒l(fā)送指令及讀取數(shù)據(jù)。DS1302的命令字的傳輸從最低位開始。當(dāng)對(duì) DS1302進(jìn)行寫數(shù)據(jù)時(shí),首先發(fā)寫控制指令,在控制指令字輸入后的下一個(gè) SCLK時(shí)鐘的上升沿,數(shù)據(jù)被寫
63、入 DS1302,數(shù)據(jù)輸入從低位即位 0開始。當(dāng)對(duì) DS1302進(jìn)行讀數(shù)據(jù)時(shí),首先發(fā)讀控制指令,在緊跟 8位的控制指令字后的下一個(gè) SCLK脈沖的下降沿讀出 DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位 0位至高位 7。注意在 SCLK為高電平期問,不能讀 I/0線,此期間 l/O端為高阻狀態(tài)。因此,在程序設(shè)計(jì)時(shí)應(yīng)保證在 SCLK上升沿之前讀 I/O線,即可正確讀出時(shí)鐘數(shù)據(jù)。 </p><p> DS1302的讀,寫時(shí)
64、序如網(wǎng)所示。輸入數(shù)據(jù)時(shí).在 SCLK上升沿 .砌 輸入的數(shù)據(jù)位被有效接受輸出數(shù)據(jù)時(shí),在SCLK下降沿時(shí)砌 輸出數(shù)據(jù)位。要注意的是.在讀 DS1302時(shí).當(dāng)8位命令字寫入后緊跟著的第一個(gè)下降沿芯片即開始輸出數(shù)據(jù)。</p><p><b> 3.時(shí)鐘子程序設(shè)計(jì)</b></p><p> 實(shí)時(shí)時(shí)鐘軟件首先應(yīng)將Et歷信息初值——秒、分、時(shí)、日、月、星期、年等按序?qū)懭氲?D
65、S1302相關(guān)寄存器中,此后,時(shí)鐘便以此初值為基準(zhǔn)進(jìn)行計(jì)時(shí),只要主電源 VCC2和備份電源 VCC1尚有一個(gè)工作正常,則計(jì)時(shí)就不會(huì)終止。初始化El歷信息程序分為三部分: </p><p> (1)發(fā)送“解除寫保護(hù)”命令字 8EH 和內(nèi)容</p><p> COH,以開放 DS1302寫操作。 </p><p> (2)發(fā)送“涓流充電”命令字 90H和內(nèi)容 A7
66、H,以開放 DS1302內(nèi)部 充 電 電路。本 系統(tǒng) 選擇DSI302內(nèi)部充電電路為一只串聯(lián)二極管和 8kn限流電阻,因此常規(guī)情況下,主電源 VCC2對(duì)備份電源 VCC1之最大充電電流為 Imax:(VDD一二極管壓降)/限流電阻一(5--0.7)--8=0.538mA。 </p><p> (3)發(fā)送“多字節(jié)寫 日歷型數(shù)據(jù)”或“單字節(jié)寫日歷型數(shù)據(jù)”命令字寫入日歷信息初值。上述第1、第2部分屬于對(duì) DS1302
67、內(nèi)部功能寄存器操作,因此必須以“單字節(jié)”方式進(jìn)行發(fā)送;而第 3部分屬于對(duì) DS1302一般寄存器操作,故可以采用“多字節(jié)”方式發(fā)送,以便提高效率。同時(shí), 在儀表工作過程中需要讀取時(shí)間日歷信息時(shí),可根 據(jù)具體需要采用“多字節(jié)”方式或“單字節(jié)”方式。這里,無論采用“單字節(jié)”還是“多字節(jié)”方式,能否 可靠、準(zhǔn)確地讀出這些信息,其技術(shù)關(guān)鍵是和硬件密切相聯(lián)的 DS1302讀寫驅(qū)動(dòng)程序的設(shè)計(jì)。該驅(qū)動(dòng)程序的功能是產(chǎn)生正確的同步時(shí)鐘脈沖,并在同步時(shí)鐘脈
68、沖上升沿將數(shù)據(jù)按位寫人 DS1302或在同步時(shí)鐘脈沖的下降沿按位從 DS1302中讀出日歷型數(shù)據(jù),從而完成 1字節(jié)數(shù)據(jù)的發(fā)送或接收。對(duì)于“多字節(jié)”方式,只需改變命令控制字和增加循環(huán)次數(shù)即可完成多字節(jié)的連續(xù)讀寫。 </p><p> 3.2.3鍵盤模塊設(shè)計(jì)</p><p><b> 程序流程圖</b></p><p><b> 出
69、現(xiàn)的問題</b></p><p><b> ?、沛I的消抖</b></p><p> 理想的按鍵信號(hào)是方波形,是一個(gè)標(biāo)準(zhǔn)的負(fù)脈沖,但實(shí)際情況并非如此。按下和釋放都需要經(jīng)過一個(gè)過程才能達(dá)到穩(wěn)定,這一過程是處于高低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動(dòng)。抖動(dòng)持續(xù)時(shí)間的長(zhǎng)短、頻率的高低與按鍵的機(jī)械特性及人的操作有關(guān),一般在5~10ms之間。這就有可能造成CPU對(duì)一次
70、按鍵過程做多次處理。為了避免這種情況的發(fā)生,應(yīng)采取措施消除抖動(dòng)。消除抖動(dòng)的方法有兩種,一種是采取硬件來實(shí)現(xiàn),如用濾波器電路、雙穩(wěn)態(tài)電路等。</p><p><b> ⑵一鍵一操作</b></p><p> 一鍵一操作的原理就是當(dāng)按鍵按下再彈起時(shí)才會(huì)有數(shù)據(jù)傳送給主控制器,所以在程序中要有指令,否則會(huì)引起誤操作,從而成為一鍵幾操作的現(xiàn)象。</p><
71、;p><b> 第四章 調(diào)試</b></p><p> 系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試。硬件調(diào)試的任務(wù)是排除系統(tǒng)的硬件電路故障,包括設(shè)計(jì)性錯(cuò)誤和工藝性故障。軟件調(diào)試是利用開發(fā)工具進(jìn)行在線仿真調(diào)試,處發(fā)現(xiàn)和解決程序錯(cuò)誤外,也可以發(fā)現(xiàn)硬件故障。</p><p><b> 4.1硬件調(diào)試</b></p><p>
72、 單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試十分不開的,許多硬件故障時(shí)在調(diào)試軟件時(shí)發(fā)現(xiàn)的,但通常是先排除系統(tǒng)中明顯的硬件故障后,在和軟件結(jié)合起來調(diào)試。</p><p><b> 常見的硬件故障</b></p><p> ?、龠壿嬪e(cuò)誤。樣機(jī)硬件的邏輯錯(cuò)誤是由于設(shè)計(jì)錯(cuò)誤或加工過程中的工藝性錯(cuò)誤所造成的,包括錯(cuò)線、開路和短路等幾種,其中短路是最常見的故障。當(dāng)某一元件虛焊或短路時(shí)
73、電路都無法調(diào)試成功。</p><p> ?、谠骷?。元器件失效的原因有兩個(gè)方面:一是器件本身已經(jīng)損壞或性能不符合要求;二是由于組裝錯(cuò)誤造成的元器件失效,如電解電容、二極管的極性錯(cuò)誤或集成塊安裝方向錯(cuò)誤等。</p><p> ③可靠性差。引起系統(tǒng)不可靠的因素很多,如接插件接觸不良會(huì)造成系統(tǒng)時(shí)好時(shí)壞,內(nèi)部和外部的干擾、電源紋波系數(shù)過大或器件負(fù)載過大等造成邏輯電平不穩(wěn)定,另外走線和布局不合
74、理等會(huì)引起系統(tǒng)的可靠性差。</p><p> ④電源故障。若樣機(jī)中存在電源故障,則加點(diǎn)后將造成器件損壞。電源故障包括電壓值不符合設(shè)計(jì)要求、電源引出線和插座不對(duì)應(yīng)、電源功率不足和負(fù)載能力差等。</p><p><b> 硬件調(diào)試方法</b></p><p> ?、俾?lián)機(jī)調(diào)試。通過脫機(jī)調(diào)試可排除一些明顯的硬件故障,有些硬件故障需要通過聯(lián)機(jī)調(diào)試才能
75、發(fā)現(xiàn)和排除。通電后,執(zhí)行讀寫指令,對(duì)用戶樣機(jī)的存儲(chǔ)器、I/O端口進(jìn)行讀寫和邏輯檢查等操作,用示波器等設(shè)備觀察波形(如輸出波形、讀/寫控制信號(hào)、地址數(shù)據(jù)波形和有關(guān)控制電平),通過波形的觀察分析,發(fā)現(xiàn)和排除故障。</p><p> ?、诿摍C(jī)調(diào)試。脫機(jī)調(diào)試實(shí)在樣機(jī)加電之前,先用萬用表等工具,根據(jù)硬件電氣原理圖和裝配圖,仔細(xì)檢查樣機(jī)線路的正確性,并核對(duì)元器件的型號(hào)、規(guī)格和安裝是否符合要求。</p><
76、p> 特別注意電源的走線,防止電源之間的短路和極性錯(cuò)誤,重點(diǎn)檢查系統(tǒng)的總線或其他信號(hào)線之間是否存在相互的短路。</p><p> 樣機(jī)所用的電源,事先必須單獨(dú)調(diào)試后才能加到系統(tǒng)中。在不差芯片的情況下,加電檢查各插件上引腳的電位是否正常,仔細(xì)測(cè)量各點(diǎn)電位是否正常,尤其應(yīng)注意單片機(jī)插座上的各點(diǎn)電位是否正常。</p><p><b> 4.2軟件調(diào)試</b>&l
77、t;/p><p> 軟件調(diào)試方法與選用的軟件結(jié)構(gòu)和程序設(shè)計(jì)技術(shù)有關(guān)。如果采用模塊設(shè)計(jì)技術(shù),則逐個(gè)模塊調(diào)好以后,再進(jìn)行系統(tǒng)程序總調(diào)試。</p><p> 對(duì)于模塊結(jié)構(gòu)程序,要對(duì)子程序逐個(gè)進(jìn)行調(diào)試。調(diào)試子程序是,一定要符合入口條件和出口條件,調(diào)試手段可采用單步運(yùn)行方式和斷點(diǎn)運(yùn)行方式,通過檢查用戶系統(tǒng)CPU的現(xiàn)場(chǎng)、RAM的內(nèi)容和I/O口的狀態(tài),檢測(cè)程序執(zhí)行結(jié)果是符合設(shè)計(jì)要求。通過檢測(cè)可以發(fā)現(xiàn)程序
78、中的死循環(huán)錯(cuò)誤、機(jī)器碼錯(cuò)誤和轉(zhuǎn)移地址的錯(cuò)誤,同時(shí)也可以發(fā)現(xiàn)用戶系統(tǒng)中的硬件故障,軟件算法和硬件設(shè)計(jì)錯(cuò)誤,在調(diào)試過程中不斷調(diào)整用戶系統(tǒng)的軟件和硬件,完成每個(gè)程序模塊的調(diào)試。</p><p> 每個(gè)程序模塊通過后,可以聯(lián)合各功能模塊進(jìn)行整體程序綜合調(diào)試。在這一階段如果發(fā)生故障,可以分析子程序在運(yùn)行時(shí)是否破壞現(xiàn)場(chǎng)、緩沖單元是否發(fā)生沖突、零位的建立和清除在設(shè)計(jì)上是否失誤、堆棧區(qū)域是否溢出或輸入設(shè)備的狀態(tài)是否正常等。若用
79、戶系統(tǒng)是在開發(fā)系統(tǒng)的監(jiān)控程序下運(yùn)行,還要考慮用戶緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。</p><p> 單步運(yùn)行只能驗(yàn)證程序正確與否,而不能確定定時(shí)精度、CPU的實(shí)時(shí)響應(yīng)等問題,所以單步和斷點(diǎn)調(diào)試后,還應(yīng)進(jìn)行連續(xù)調(diào)試。除了觀察穩(wěn)定性之外,還要觀察用戶系統(tǒng)的操作是否符合原始設(shè)計(jì)要求,以及安排的用戶操作是夠合理等,必要時(shí)還要做適當(dāng)修正。</p><p> DS1302 與微處理器進(jìn)行
80、數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護(hù);D6=0,指定時(shí)鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。 </p><p> 在DS1302的時(shí)鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時(shí),DS
81、1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。 </p><p> DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存
82、器,在此方式下可一次性讀、寫所有的RAM的31個(gè)字節(jié)。 </p><p> 要特別說明的是備用電源B1,可以用電池或者超級(jí)電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長(zhǎng)時(shí)間保證時(shí)鐘正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V充電電池。如果斷電時(shí)間較短(幾小時(shí)或幾天)時(shí),就可以用漏電較小的普通電解電容器代替。100 μ
83、F就可以保證1小時(shí)的正常走時(shí)。DS1302在第一次加電后,必須進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。 </p><p><b> 4.3聯(lián)調(diào)</b></p><p> 聯(lián)調(diào)是指讓用戶系統(tǒng)的軟件在其硬件上實(shí)際運(yùn)行,進(jìn)行軟、硬件聯(lián)合調(diào)試,從中發(fā)現(xiàn)硬件故障或軟、硬件設(shè)計(jì)錯(cuò)誤。這是對(duì)用戶系統(tǒng)檢驗(yàn)的重要一關(guān)。</p>
84、<p> 聯(lián)調(diào)主要解決以下問題:</p><p> ?、佘洝⒂布芊癜搭A(yù)定要求配合工作,如果不能,那么問題出在哪里?如何解決?</p><p> ?、谙到y(tǒng)運(yùn)行中是否有潛在的設(shè)計(jì)是難以預(yù)料的錯(cuò)誤,如硬件延時(shí)過長(zhǎng)造成工作時(shí)序不符合要求、布線不合理造成有信號(hào)串?dāng)_等;</p><p> ?、巯到y(tǒng)的動(dòng)態(tài)性能指標(biāo)(包括精度、速度參數(shù))是否滿足設(shè)計(jì)要求。</
85、p><p> 系統(tǒng)聯(lián)調(diào)時(shí),首先采用單步、斷點(diǎn)、連續(xù)運(yùn)行方式調(diào)試與硬件相關(guān)的各程序段既可以檢驗(yàn)這些用戶程序段的正確性,又可以在各功能獨(dú)立的情況下,檢驗(yàn)軟、硬件的配合情況。然后,將軟、硬件按系統(tǒng)工作要求進(jìn)行綜合運(yùn)行,采用全速斷點(diǎn)、連續(xù)運(yùn)行方式進(jìn)行總調(diào)試,以解決在系統(tǒng)總體運(yùn)行的情況下軟、硬件的協(xié)調(diào)與提高系統(tǒng)動(dòng)態(tài)性能。在具體操作中,用戶系統(tǒng)在開發(fā)系統(tǒng)環(huán)境下,先借用仿真器的CPU、存儲(chǔ)器等資源進(jìn)行工作。若發(fā)現(xiàn)問題,按上述軟、
86、硬件調(diào)試方法準(zhǔn)確定位錯(cuò)誤,分析錯(cuò)誤原因,找出解決辦法。用戶系統(tǒng)調(diào)試完后,將用戶程序固化到用戶系統(tǒng)的程序存儲(chǔ)器中,再借用仿真器CPU使用戶系統(tǒng)運(yùn)行。若無問題,則用戶系統(tǒng)插上單片機(jī)即可正確工作(注意,不要忘記用戶系統(tǒng)時(shí)鐘、復(fù)位電路的調(diào)試)。</p><p> 第五章 心得體會(huì)</p><p> 在此次畢業(yè)設(shè)計(jì)中,收獲頗多。如果說我們以前學(xué)的都是一些理論知識(shí)和分散的知識(shí),那么在這次畢業(yè)設(shè)
87、計(jì)中則是系統(tǒng)的把大學(xué)里所學(xué)的連貫的靈活運(yùn)用起來。從最簡(jiǎn)單的電阻電容的識(shí)別和個(gè)電阻阻值的選擇,以及各種電子元器件的識(shí)別、使用及其檢測(cè),到電烙鐵的正確使用以及焊接的要求及注意點(diǎn)、PCB板的布局及其制作了解,都有了更詳細(xì)和更專業(yè)的學(xué)習(xí)和實(shí)踐。</p><p> 這次的畢業(yè)設(shè)計(jì)對(duì)我來說無疑是一次較好的動(dòng)手鍛煉機(jī)會(huì),因此從一開始就抱著一種較認(rèn)真的態(tài)度,無論是從了解電子萬年歷背景、意義、及其實(shí)現(xiàn)原理,還是后來的焊接對(duì)我來說
88、都是一種提高。</p><p> 附錄(一) 系統(tǒng)程序</p><p> EQU P2.0 ;定義地址</p><p> RW EQU P2.1</p><p> E EQU P2.2</p><p> CMD EQU 27H</p><p> DAT EQU 26H
89、</p><p> FLAG BIT 00H</p><p> XSFLAG BIT 01H ;</p><p> COUNT EQU 28H</p><p> Char1 EQU 30H</p><p> Char2 EQU 40H</p><p> T_RST Bit P2.
90、3 ;實(shí)時(shí)時(shí)鐘復(fù)位線引腳</p><p> T_CLK Bit P2.4 ;實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳</p><p> T_IO Bit P2.5 ;實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳</p><p> SECOND EQU 50H</p><p> MINUTE EQU 51H</p><p> HOUR EQU 52H<
91、/p><p> DAY EQU 53H</p><p> MONTH EQU 54H</p><p> WEEK EQU 55H</p><p> YEARL EQU 56H</p><p> ORG 0000H</p><p> AJMP START</p><p
92、> org 000bh</p><p> ljmp inter0</p><p><b> ORG 0100H</b></p><p> START:MOV SP,#60H ;主程序</p><p> MOV TMOD,#01H</p><p> MOV TH0,#9EH
93、 ;置定時(shí)器初值(定時(shí)100ms)</p><p> MOV TL0,#58H</p><p> SETB TR0 ;啟動(dòng)定時(shí)器0</p><p><b> setb ea</b></p><p><b> setb et0</b></p><p><b&
94、gt; CLR FLAG</b></p><p> CLR XSFLAG</p><p> MOV COUNT,#1</p><p> MOV R0,#16 ;把ROM的內(nèi)容轉(zhuǎn)入ram</p><p> MOV R1,#ChAR1</p><p> MOV DPTR,#TAB1
95、</p><p> S1: CLR A</p><p> MOVC A,@A+DPTR</p><p><b> MOV @R1,A</b></p><p><b> inc dptr</b></p><p><b> inc r1</b>
96、</p><p> djnz r0,s1</p><p> MOV R0,#16</p><p> MOV R1,#Char2</p><p> MOV DPTR,#TAB2</p><p> S2: CLR A</p><p> MOVC A,@A+DPTR</p>
97、<p><b> MOV @R1,A</b></p><p><b> INC DPTR</b></p><p><b> INC R1</b></p><p> DJNZ R0,S2</p><p> LCALL LCD_INIT ;液晶初始化&
98、lt;/p><p> LCALL LCD_R_BF</p><p> MOV CMD,#38H</p><p> LCALL LCD_W_C</p><p> MOV CMD,#0CH</p><p> LCALL LCD_W_C</p><p> MOV CMD,#06H</p&
99、gt;<p> LCALL LCD_W_C</p><p> MOV CMD,#01H</p><p> LCALL LCD_W_C</p><p> CLR T_RST ;DS1302初始化</p><p> CLR T_CLK</p><p> MOV
100、 SECOND,#00H ;初始時(shí)間設(shè)為12:00:00</p><p> MOV MINUTE,#00H</p><p> MOV HOUR,#12H</p><p> MOV DAY,#01H ;初始日期設(shè)為08年1月1日第一周</p><p> MOV MONTH,#01H&
101、lt;/p><p> MOV WEEK,#01H</p><p> MOV YEARL,#08H</p><p> LCALL SETDS1302</p><p> MOV 24H,37H</p><p> MOV 25H,36H </p><p> WAIT1:
102、 ;液晶初始顯示</p><p> LCALL DELAY_1MS</p><p> DJNZ R0,WAIT1</p><p> MOV R1,#16</p><p> MOV CMD,#80H</p><p> LCALL LCD_W_C</p><
103、;p> MOV R0,#Char1</p><p> WLOOP1: CLR A</p><p><b> MOV A,@R0</b></p><p><b> MOV DAT,A</b></p><p> LCALL LCD_R_BF</p><p> L
104、CALL LCD_W_D</p><p><b> INC R0</b></p><p> DJNZ R1,WLOOP1</p><p> MOV CMD,#0C0H</p><p> LCALL LCD_W_C</p><p> MOV R2,#16</p><p&
105、gt; MOV R0,#Char2</p><p> WLOOP2: CLR A</p><p><b> MOV A,@R0</b></p><p><b> MOV DAT,A</b></p><p> LCALL LCD_R_BF</p><p> LCA
106、LL LCD_W_D</p><p><b> INC R0</b></p><p> DJNZ R2,WLOOP2</p><p> LCALL PANJIAN</p><p> LJMP WAIT1</p><p> LCD_INIT: MOV R0,#3
107、 ;液晶子程序</p><p> INIT_LOOP:MOV CMD,#38H</p><p> LCALL LCD_W_C</p><p> MOV R1,#15</p><p> DELAY_15MS:</p><p> LCALL DELAY_1MS</p><p>
108、; DJNZ R1,DELAY_15MS</p><p> DJNZ R0,INIT_LOOP</p><p><b> RET</b></p><p><b> LCD_R_BF:</b></p><p> MOV P1,#0FFH</p><p><b&g
109、t; CLR RS</b></p><p><b> SETB RW</b></p><p><b> CLR E</b></p><p><b> NOP</b></p><p><b> SETB E</b></p>
110、<p> JB P1.7 ,LCD_R_BF</p><p><b> RET</b></p><p> LCD_W_C:MOV P1,CMD</p><p><b> CLR RS</b></p><p><b> CLR RW</b></p>
111、;<p><b> CLR E</b></p><p> ACALL LCD_R_BF</p><p><b> SETB P2.2</b></p><p><b> RET</b></p><p> LCD_W_D:MOV P1,DAT</p&g
112、t;<p><b> SETB RS</b></p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p> ACALL LCD_R_BF</p><p><b> SETB E</b>
113、;</p><p><b> RET</b></p><p> DELAY_1MS: ;延時(shí)1MS程序</p><p> MOV 22H, R1</p><p> MOV 23H, R0</p><p> MOV R0,#50</p&
114、gt;<p> DLOOP1:MOV R1,#100</p><p><b> DJNZ R1,$</b></p><p> DJNZ R0,DLOOP1</p><p> MOV R0,23H</p><p> MOV R1 ,22H</p><p><b>
115、 RET</b></p><p> inter0: PUSH 00H ;保護(hù)R0 R1</p><p><b> PUSH 01H</b></p><p><b> CLR TR0 </b></p><p> MOV TH0,#0CFH
116、 ;中斷100MS</p><p> MOV TL0,#2CH</p><p> JB FLAG,INTFLAG</p><p><b> ;顯示程序</b></p><p> LCALL GET1302</p><p> LCALL datapro</p><
117、;p> LJMP INTREND</p><p><b> INTFLAG:</b></p><p> CPL XSFLAG</p><p> MOV A,COUNT</p><p> CJNE A,#1,INT1</p><p> JB XSFLAG ,INT00</p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——電子萬年歷設(shè)計(jì)
- 電子萬年歷設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文——電子萬年歷設(shè)計(jì)
- 萬年歷設(shè)計(jì)畢業(yè)論文
- 數(shù)字電子萬年歷的畢業(yè)論文
- 電子萬年歷的設(shè)計(jì)畢業(yè)論文
- 電子萬年歷
- 單片機(jī)電子萬年歷畢業(yè)論文
- 單片機(jī)電子萬年歷畢業(yè)論文
- 單片機(jī)電子萬年歷畢業(yè)論文
- 萬年歷設(shè)計(jì)制作【畢業(yè)論文】
- 畢業(yè)論文——電子萬年歷設(shè)計(jì)與制作
- 多功能萬年歷畢業(yè)論文
- 數(shù)字萬年歷設(shè)計(jì)畢業(yè)論文
- 電子萬年歷設(shè)計(jì)
- 萬年歷畢業(yè)論文---基于at89s52單片機(jī)的電子萬年歷設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)--萬年歷電子時(shí)鐘
- 電子萬年歷畢業(yè)設(shè)計(jì)
- 電子萬年歷畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----電子萬年歷論文設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論