電子萬年歷畢業(yè)論文_第1頁
已閱讀1頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  摘要</b></p><p>  在當(dāng)代繁忙的工作與生活中,時間與我們每一個人都有非常密切的關(guān)系,每個人都受到時間的影響。我們必須對時間有一個度量,因此產(chǎn)生了鐘表。鐘表的發(fā)展是非常迅速的,從剛開始的機械式鐘表到現(xiàn)在普遍用到的數(shù)字式鐘表,即使現(xiàn)在鐘表千奇百怪,但是它們都只是完成一種功能——計時,只是工作原理不同而已,在人們的使用過程中,逐漸發(fā)現(xiàn)了鐘表的功能太單一,

2、沒有更大程度上的滿足人們的需求。因此在這里,我想能不能把一些輔助功能加入鐘表中去。在此設(shè)計中所設(shè)計的鐘表具有鐘表的功能。</p><p>  本系統(tǒng)采用了以廣泛使用的單片機技術(shù)為核心,軟硬件結(jié)合,使硬件部分大為簡化,提高了系統(tǒng)穩(wěn)定性,并采用LCD顯示電路、鍵盤電路,本方案設(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 本課題實現(xiàn)的功能及要求…………………………………

9、………………………………………………4</p><p>  1.3 方案論證……………………………………………………………………………………………………4</p><p>  1.4 章節(jié)安排……………………………………………………………………………………………………4</p><p>  第二章 系統(tǒng)硬件設(shè)計</p><p>  2.3 其

10、余應(yīng)用電路的介紹………………………………………………………………………………………8</p><p><b>  第三章 軟件設(shè)計</b></p><p>  3.1 軟件設(shè)計總述……………………………………………………………………………………………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ā)展,時間的流逝,從觀察太陽、擺鐘到現(xiàn)在的電子鐘, 人類不斷研究、不斷 創(chuàng)新?,F(xiàn)市場的電子鐘具有低功耗的實時時鐘電路,它們可以對年、月、日、周日、時、分、秒進(jìn)行計時,還具有潤年補償?shù)裙δ?,且使用壽命長、誤差小、使用方便。電子萬年

14、歷的出現(xiàn)給人們的生活帶來的諸多方便。目前,國際上的電子萬年歷正從模擬式向數(shù)字式、由集成化向智能化的方向飛速發(fā)展。</p><p>  綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。</p><p>  1.2實現(xiàn)的功能及要求 </p><p><b> ?。ǎ保┗疽?&l

15、t;/b></p><p> ?、倬哂心?、月、日、星期、時、分、秒等功能;</p><p> ?、诰邆淠?、月、日、星期、時、分、秒校準(zhǔn)功能 。</p><p> ?、坌?zhǔn)時具有閃爍功能。</p><p>  ( 2 ) 創(chuàng)新要求</p><p>  具有上、下課響鈴功能;</p><p>

16、<b>  1.3 方案論證</b></p><p>  顯示模塊選擇方案和論證:</p><p>  方案一:采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,對于顯示數(shù)字最合適,而且采用動態(tài)掃描法與單片機連接時,占用的單片機口線少。但這里顯示位數(shù)多,所要求的數(shù)碼管多,成本更高。</p><p>  方案二:采用LCD液晶顯示屏,液晶顯示屏的顯

17、示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,雖價格昂貴,但接口線多,所以在此設(shè)計中采用LCD液晶顯示屏。</p><p>  時鐘芯片的選擇方案和論證:</p><p>  方案一:采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M(jìn)行計數(shù),而且精度高,結(jié)構(gòu)簡單。所以采用DS1302時鐘芯片。</p&

18、gt;<p>  方案二:直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、 時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。且算法復(fù)雜,所以不采用此方案。</p><p>  經(jīng)論證本次設(shè)計采用采用AT89S52作為主控制系統(tǒng); DS1302提供時鐘; 采用LCD液晶作為顯示。</p><p><b>  1.

19、4章節(jié)安排</b></p><p><b>  第一章概述</b></p><p><b>  第二章系統(tǒng)硬件設(shè)計</b></p><p><b>  第三章系統(tǒng)軟件設(shè)計</b></p><p>  第二章 系統(tǒng)硬件設(shè)計</p><p> 

20、 2.1硬件的設(shè)計總框圖</p><p>  本次設(shè)計的基于單片機控制的電子萬年歷,其具有年、月、日、星期、時、分、秒的顯示等功能;具有時間與陰、陽歷能夠自動關(guān)聯(lián);可以設(shè)置鬧鈴的功能。其具體實現(xiàn)過程就是由主控制發(fā)送信息給DS1302時鐘芯片再由時鐘芯片反饋給單片機,再由主控制器傳送給LCD顯示信息。并且可以在鍵盤設(shè)置模塊輸入修改時間,設(shè)置鬧鈴等信息,當(dāng)鍵盤設(shè)置時間、日期時,單片機主控制根據(jù)輸入信息,通過串口通信傳

21、送給DS1302時鐘芯片,DS1302芯片讀取當(dāng)前新信息產(chǎn)生反饋傳送給單片機,然后單片機根據(jù)控制最后輸送顯示信息到LCD模塊上顯示。</p><p>  2.2主控制器AT89C52介紹 </p><p>  1.AT89C52功能介紹</p><p>  AT89C52是8字節(jié)FLASH閃速存儲器,256字竹內(nèi)部RAM , 32個I/O口線,3個16 位定時/計數(shù)

22、器,一個6向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89c52可降至OHz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電上作模式。空閑方式停止CPU 的工作,但允許RAM,定時/計數(shù)器.串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(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ù)用口。作為輸出口用時.每位能吸收電流的方式驅(qū)動8個TTL 邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。</p>&

24、lt;p>  在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部 上拉電阻。</p><p>  在FLASH由編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字 節(jié),校驗時,要求外接上拉電阻。</p><p>  P1口:PI 是一個帶內(nèi)部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級可驅(qū)動(吸收或輸出電流4個TTL邏輯門電路。對

25、端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作 輸入口使用時,因為內(nèi)部存在上拉電阻某個引腳被外部信號拉低時會輸出一個電流IIL</p><p>  與AT89C51不同之處是,Pl.0 和P1.1還可分別作為定時/計數(shù)器2 的外部計數(shù)輸入(Pl.0/T2 )和輸入(P1.1/T2EX) , </p><p>  FLASH編程和程序校驗期間,Pl接收低8位地址。<

26、;/p><p>  PI.O 和PI.l 的第二功能:</p><p>  P2 是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯電路。對端口P2寫“l(fā)",通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口, 作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(llt )。</p>

27、;<p>  在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器,P2送出高8 位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器、如執(zhí)行MOVX@RI指令)時,P2口輸出P2鎖存器的內(nèi)容。</p><p>  FLASH編程或校驗時,P2亦接收高位地址和一些控制信號。</p><p>  P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)

28、4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的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ù)器0 ) </p><p>  P3.5 Tl (定時/計數(shù)器l ) </p><p>  P3.6 WR(外部數(shù)據(jù)存儲器寫選通) </p><p>  P3

30、.7 RD(外部數(shù)據(jù)存儲器讀選通) </p><p>  此外,P3口還接收一些用于FLASH閃速存儲器編程和程序校驗的控制信號。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。</p><p>  ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)

31、.一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位.可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活,此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位

32、無效。</p><p>  PSEN:程序儲存允許PSEN輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。</p><p>  EA/VPP:外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000H-FFFFH ) , EA端必須保持低電平(接

33、地).需注怠的是:如果加密位LBI被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。</p><p><b>  3.最小系統(tǒng)</b></p><p>  單片機最小系統(tǒng)包括時鐘電路、電源和復(fù)位電路等,是單片機工作的基本要求。單片機控制整個系統(tǒng)的工作,一方面讀取日歷時鐘芯片中的日期等數(shù)據(jù),檢測是否需要設(shè)置,并處理相應(yīng)的按鍵。另一方面,控制顯示器的工作,將各種數(shù)據(jù)送到液晶顯示器去顯示

34、。</p><p><b>  時鐘電路</b></p><p>  80C52型單片機內(nèi)有一增益反相放大器,振蕩頻率取決于石英晶體的振蕩頻率。范圍可取1。2—12MHZ,C01、C02主要起頻率微調(diào)和穩(wěn)定作用。</p><p><b>  復(fù)位電路</b></p><p>  單片機在開關(guān)機時都需

35、要復(fù)位,以便中央處理器CPU及其他功能部件都RC構(gòu)成處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。80C51的RST引腳是復(fù)位信號的輸入端。復(fù)位信號高電平有效,持續(xù)時間需要24個時鐘周期以上。</p><p>  RC構(gòu)成微分電路,在接電瞬間,產(chǎn)生一個微分脈沖,其寬度若大于2個機器周期,80C51型單片機將復(fù)位。為保證微分脈沖寬度足夠大,RC時間常數(shù)應(yīng)大于2個機器周期。一般取10uF電容、8.2K歐姆電阻。<

36、;/p><p><b>  4.振蕩器特性:</b></p><p>  XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p>

37、<p><b>  2.3其余電路介紹</b></p><p><b>  2.3.1顯示電路</b></p><p>  液晶顯示器的接口有兩種:一種是總線式接口電路方式;另一種是非總線接口電路方式??偩€式接口方式是把液晶顯示器看做外部的數(shù)據(jù)存儲器,訪問液晶顯示器就像訪問數(shù)據(jù)存儲器的一個單元一樣,采用這種方式能充分發(fā)揮單片機的總線讀寫

38、功能,便于升級和擴展。而非總線方式是直接利用IO口進(jìn)行讀寫,較靈活,不便于升級。這里采用總線式接口方式。接口時要注意顯示器的功能信號E是高電平有效,所以要取反。這里使用的液晶顯示器為LCD1602為字符點陣式液晶顯示器??梢燥@示16×2個字符,而要顯示日期字符有23個,可以滿足要求。</p><p>  1、LCD模塊接口引腳功能</p><p>  液晶顯示模塊具有體積小、功耗

39、低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點,在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。目前字符型液晶顯示模塊已經(jīng)是單片機應(yīng)用設(shè)計中最常用的信息顯示器件。這里向大家介紹一款LCD1602液晶顯示模塊,它可以顯示兩行,每行16個字符,采用單+5V電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。</p><p><b>  2. 硬件電路</b></p><p>  DS

40、1302的4、5、6的三個管腳是其控制位。其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腳相連?;瑒幼?阻器用于調(diào)整液晶顯示的亮度。</p&g

41、t;<p>  液晶顯示器的接口有兩種:一種是總線式接口電路方式;另一種是非總線接口電路方式。總線式接口方式是把液晶顯示器看做外部的數(shù)據(jù)存儲器,訪問液晶顯示器就像訪問數(shù)據(jù)存儲器的一個單元一樣,采用這種方式能充分發(fā)揮單片機的總線讀寫功能,便于升級和擴展。而非總線方式是直接利用IO口進(jìn)行讀寫,較靈活,不便于升級。這里采用總線式接口方式。接口時要注意顯示器的功能信號E是高電平有效,所以要取反。這里使用的液晶顯示器為LCD1602

42、為字符點陣式液晶顯示器??梢燥@示16×2個字符,而要顯示日期字符有23個,可以滿足要求。</p><p><b>  2.3.2時鐘電路</b></p><p>  DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2

43、V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低

44、電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK為時鐘輸入端。 下圖為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ù)位端,高電平時允許I/O端進(jìn)行數(shù)據(jù)傳輸,低電平則禁止數(shù)據(jù)傳送且使I/O端呈高阻狀態(tài);I/O為串行數(shù)據(jù)輸入、

46、輸出端,所有輸入、輸出數(shù)據(jù)的傳送順序均以最低位LSB打頭,最高位MSB結(jié)束;SCLK為同步時鐘脈沖端,其上升沿將I/O端數(shù)據(jù)按位寫入DS1302,下降沿使DS1302按位輸出數(shù)據(jù)至I/O端;VCC2、VCC1為主電源和備份電源端,當(dāng)主電源VCC2大于備份電源VCC1+0.2V時,由VCC2對芯片供電,否則,由VCC1對芯片供電。工作電壓范圍為2.5~5.5 V,工作電源和備份電源雙引腳輸入,功耗很低,當(dāng)工作電壓為2.5 V時正常工作,所

47、需電流不超過300 nA。另外,如果選擇了涓流充電功能,在正常情況下,主電源還可對備份電源進(jìn)行慢速充電,有效延長了備份電源的使用壽命,保證了系統(tǒng)時間的連續(xù)可靠運行。</p><p>  內(nèi)部有振蕩器。若采用外部振蕩信號時。32768Hz的信號從 X1腳輸入.x2腳懸空。 CE:片選端,高電平有效 ,在有些早期資料中該引腳標(biāo)成爪ST,實際功能一樣。CE端接通控制邏輯,當(dāng)其為‘0”時 ,IO引腳變?yōu)楦咦杞貭顟B(tài),所有

48、的數(shù)據(jù)傳送中止,當(dāng)其為‘1’時,允許數(shù)據(jù)傳送。CE由‘0’至‘1’時。SCIX必須為“0”。 </p><p>  DS1302的內(nèi)部主要由移位寄存器、指令和控制邏輯、振蕩分頻電路、實時時鐘以及RAM組成。每次操作時,必須首先把CE置為高電平。再把提供地址和命令信息的8位裝入移位寄存器。數(shù)據(jù)在SCLK的上升沿串行輸入。無論是讀周期還是寫周期發(fā)生,也無論傳送方式是單字節(jié)還是多字節(jié),開始8位將指定內(nèi)部何處被進(jìn)行訪問。

49、在開始 8個時鐘周期把含有地址信息的命令字裝入移位寄存器之后。緊隨其后的時鐘在讀操作時輸出數(shù)據(jù).</p><p><b>  2.3.3串口電路</b></p><p>  DS1302與微處理器的接口電路如下圖所示。該微處理器采用宏晶科技推出AT89C51單片機作為主控芯片,該產(chǎn)品具有片內(nèi)資源豐富、超強抗干擾、高抗靜電、超低功耗、寬電壓、不怕電源抖動、在系統(tǒng)可編程、

50、加密性強、無法解密、可降低單片機時鐘對外部電磁輻射等特點,其良好的性能保證了各個器件的協(xié)調(diào)可靠工作及控制要求。在電路中單片機的P1.7控制DS1302的復(fù)位輸入端,P1.4與數(shù)據(jù)輸入/輸出引腳相連,P1.3用來作為 DS1302的輸入時鐘SCLK控制端。由于單片機復(fù)位時,所有單片機的端口均為高電平,如果直接用單片機的某一口線同DS1302的RST相連,則影響了系統(tǒng)加電時對DS1302的初始化,從而造成 DS1302計時的不穩(wěn)定。因此,本

51、主電源(5 V)接 VCC2,備份電池采用可充電鎘鎳電池(3.6 V)接 VCC1,可啟用內(nèi)部涓流充電器在主電壓正常時向電池充電,以延長電池使用時間。備份電池也可用1微法以上的超容量電容代替,但需要注意的是備份電池電壓應(yīng)略低于主電源工作電壓。</p><p>  2.3.4鍵盤設(shè)置電路</p><p><b>  1. 鍵盤接口介紹</b></p>&l

52、t;p><b>  獨立式鍵盤</b></p><p>  獨立式鍵盤是指直接用I/O口線構(gòu)成單個按鍵電路,每個按鍵占用一條I/O口線,當(dāng)某個鍵閉合時,相應(yīng)的I/O口線變?yōu)榈碗娖剑?dāng)CPU查詢到為低電平的I/O口線時,就可以判別出與其對應(yīng)的鍵處于釋放狀態(tài)。</p><p><b>  行列式鍵盤</b></p><p&g

53、t;  將I/O口線的一部分作為行線,另一部分作為行線,按鍵設(shè)置在行線的交叉點上。CPU通過其電平的高低來判別鍵是否被按下。但每根線上接有4個按鍵,任何鍵按下都有可能使其電平變低,到底是哪個鍵按下呢?這是采用了“時分復(fù)用”的方法,即在一個查詢周期里把時間分為4個間隔,每個時間間隔對應(yīng)一個鍵,在哪個時間間隔查到低電平,則代表是與之相對應(yīng)的鍵被按下。時間間隔的劃分是通過列線P1.4~P1.7來實現(xiàn)的。</p><p>

54、;  依次使列線P1.4~P1.7中的一根輸出為低電平,則只有與之對應(yīng)的鍵按下時,才能使行線為低電平,此時其他列線都輸出高電平,與它們對應(yīng)的鍵按下,不能使行線電平變低,所以就實現(xiàn)了行線的時分復(fù)用。</p><p>  由于行列式鍵盤的按鍵數(shù)量比較多,為了使程序簡潔,一般在鍵處理程序中,給予每個鍵一個鍵號,由從列線I/O口輸出的數(shù)據(jù)和從行線I/O口讀入的數(shù)據(jù)得到按鍵的鍵號,然后由該鍵號通過散轉(zhuǎn)表進(jìn)入各按鍵的服務(wù)程序

55、。</p><p><b>  2.設(shè)置電路介紹</b></p><p>  設(shè)置電路的功能主要是把時間和日期設(shè)置到當(dāng)前的時間,可以在系統(tǒng)運行中進(jìn)行。用4個獨立式按鍵完成,分別接到單片機P1口的高4位。第1個按鈕表示是否進(jìn)行設(shè)置,按下時表示設(shè)置,并且每按一次,在顯示器上分別在年、月、日等日期時間上跳轉(zhuǎn),表示對相應(yīng)的項進(jìn)行更改;第2個按鈕按下表示對第1個按鈕選中的項進(jìn)行

56、加1操作;第3個按鈕按下表示進(jìn)行減1操作;第4個按鈕按下表示停止設(shè)置。只有在第1個按鈕按時才可進(jìn)行加減操作。其電路如圖3所示。其中電容的作用是消除按鍵的抖動,也可用雙穩(wěn)態(tài)觸發(fā)器去除按鍵時的抖動,同時為了提高可靠性,硬件去抖動的同時,還可以用軟件去抖動的方法。</p><p>  第三章 系統(tǒng)軟件設(shè)計</p><p><b>  3.1軟件設(shè)計總述</b></p

57、><p>  系統(tǒng)軟件設(shè)計主要包括主程序設(shè)計、日期數(shù)據(jù)采集子模塊程序設(shè)計、按鍵處理子模塊程序設(shè)計和顯示子模塊程序設(shè)計等。主程序主要完成器件的初始化,并判斷有無按鍵按下,并根據(jù)判斷的結(jié)果調(diào)用相應(yīng)的子模塊程序;日期數(shù)據(jù)采集子模塊程序完成相應(yīng)的數(shù)據(jù)采集、處理和保存 ,按鍵處理子模塊程序完成日期的設(shè)置,而顯示子模塊程序只要把上述子模塊儲存的數(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、則禁止對 DS1302進(jìn)行操作。第 6位是時 鐘/日歷或 RAM 選擇位,如它為 “1,,可對 內(nèi)部 RAM讀寫,如它為“0”可對時鐘/日歷操作。此處所謂 日歷型數(shù)據(jù)即數(shù)據(jù)格式為壓縮型 BCD碼,且數(shù)值必須在它的定義域內(nèi);例如,“月份”的定義域 為 1~12,“秒”的定義域為 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”時,DSI302為多字節(jié)讀、寫方式。最低位 0為“0”表示寫操作,否則為讀操作。命令字節(jié)的傳輸都是從最低位開始。 </p><p>  DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表

62、。DS1302所有的時間數(shù)據(jù)都放到數(shù)據(jù)寄存器中:</p><p><b>  2. 讀,寫時序</b></p><p>  DS1302采用串行方式與微控制器通訊。在片選信號RST變?yōu)楦唠娖胶?,可向芯片發(fā)送指令及讀取數(shù)據(jù)。DS1302的命令字的傳輸從最低位開始。當(dāng)對 DS1302進(jìn)行寫數(shù)據(jù)時,首先發(fā)寫控制指令,在控制指令字輸入后的下一個 SCLK時鐘的上升沿,數(shù)據(jù)被寫

63、入 DS1302,數(shù)據(jù)輸入從低位即位 0開始。當(dāng)對 DS1302進(jìn)行讀數(shù)據(jù)時,首先發(fā)讀控制指令,在緊跟 8位的控制指令字后的下一個 SCLK脈沖的下降沿讀出 DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位 0位至高位 7。注意在 SCLK為高電平期問,不能讀 I/0線,此期間 l/O端為高阻狀態(tài)。因此,在程序設(shè)計時應(yīng)保證在 SCLK上升沿之前讀 I/O線,即可正確讀出時鐘數(shù)據(jù)。 </p><p>  DS1302的讀,寫時

64、序如網(wǎng)所示。輸入數(shù)據(jù)時.在 SCLK上升沿 .砌 輸入的數(shù)據(jù)位被有效接受輸出數(shù)據(jù)時,在SCLK下降沿時砌 輸出數(shù)據(jù)位。要注意的是.在讀 DS1302時.當(dāng)8位命令字寫入后緊跟著的第一個下降沿芯片即開始輸出數(shù)據(jù)。</p><p><b>  3.時鐘子程序設(shè)計</b></p><p>  實時時鐘軟件首先應(yīng)將Et歷信息初值——秒、分、時、日、月、星期、年等按序?qū)懭氲?D

65、S1302相關(guān)寄存器中,此后,時鐘便以此初值為基準(zhǔn)進(jìn)行計時,只要主電源 VCC2和備份電源 VCC1尚有一個工作正常,則計時就不會終止。初始化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對備份電源 VCC1之最大充電電流為 Imax:(VDD一二極管壓降)/限流電阻一(5--0.7)--8=0.538mA。 </p><p>  (3)發(fā)送“多字節(jié)寫 日歷型數(shù)據(jù)”或“單字節(jié)寫日歷型數(shù)據(jù)”命令字寫入日歷信息初值。上述第1、第2部分屬于對 DS1302

67、內(nèi)部功能寄存器操作,因此必須以“單字節(jié)”方式進(jìn)行發(fā)送;而第 3部分屬于對 DS1302一般寄存器操作,故可以采用“多字節(jié)”方式發(fā)送,以便提高效率。同時, 在儀表工作過程中需要讀取時間日歷信息時,可根 據(jù)具體需要采用“多字節(jié)”方式或“單字節(jié)”方式。這里,無論采用“單字節(jié)”還是“多字節(jié)”方式,能否 可靠、準(zhǔn)確地讀出這些信息,其技術(shù)關(guān)鍵是和硬件密切相聯(lián)的 DS1302讀寫驅(qū)動程序的設(shè)計。該驅(qū)動程序的功能是產(chǎn)生正確的同步時鐘脈沖,并在同步時鐘脈

68、沖上升沿將數(shù)據(jù)按位寫人 DS1302或在同步時鐘脈沖的下降沿按位從 DS1302中讀出日歷型數(shù)據(jù),從而完成 1字節(jié)數(shù)據(jù)的發(fā)送或接收。對于“多字節(jié)”方式,只需改變命令控制字和增加循環(huán)次數(shù)即可完成多字節(jié)的連續(xù)讀寫。 </p><p>  3.2.3鍵盤模塊設(shè)計</p><p><b>  程序流程圖</b></p><p><b>  出

69、現(xiàn)的問題</b></p><p><b> ?、沛I的消抖</b></p><p>  理想的按鍵信號是方波形,是一個標(biāo)準(zhǔn)的負(fù)脈沖,但實際情況并非如此。按下和釋放都需要經(jīng)過一個過程才能達(dá)到穩(wěn)定,這一過程是處于高低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的長短、頻率的高低與按鍵的機械特性及人的操作有關(guān),一般在5~10ms之間。這就有可能造成CPU對一次

70、按鍵過程做多次處理。為了避免這種情況的發(fā)生,應(yīng)采取措施消除抖動。消除抖動的方法有兩種,一種是采取硬件來實現(xiàn),如用濾波器電路、雙穩(wěn)態(tài)電路等。</p><p><b> ?、埔绘I一操作</b></p><p>  一鍵一操作的原理就是當(dāng)按鍵按下再彈起時才會有數(shù)據(jù)傳送給主控制器,所以在程序中要有指令,否則會引起誤操作,從而成為一鍵幾操作的現(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è)計性錯誤和工藝性故障。軟件調(diào)試是利用開發(fā)工具進(jìn)行在線仿真調(diào)試,處發(fā)現(xiàn)和解決程序錯誤外,也可以發(fā)現(xiàn)硬件故障。</p><p><b>  4.1硬件調(diào)試</b></p><p>

72、  單片機應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試十分不開的,許多硬件故障時在調(diào)試軟件時發(fā)現(xiàn)的,但通常是先排除系統(tǒng)中明顯的硬件故障后,在和軟件結(jié)合起來調(diào)試。</p><p><b>  常見的硬件故障</b></p><p> ?、龠壿嬪e誤。樣機硬件的邏輯錯誤是由于設(shè)計錯誤或加工過程中的工藝性錯誤所造成的,包括錯線、開路和短路等幾種,其中短路是最常見的故障。當(dāng)某一元件虛焊或短路時

73、電路都無法調(diào)試成功。</p><p>  ②元器件失效。元器件失效的原因有兩個方面:一是器件本身已經(jīng)損壞或性能不符合要求;二是由于組裝錯誤造成的元器件失效,如電解電容、二極管的極性錯誤或集成塊安裝方向錯誤等。</p><p> ?、劭煽啃圆?。引起系統(tǒng)不可靠的因素很多,如接插件接觸不良會造成系統(tǒng)時好時壞,內(nèi)部和外部的干擾、電源紋波系數(shù)過大或器件負(fù)載過大等造成邏輯電平不穩(wěn)定,另外走線和布局不合

74、理等會引起系統(tǒng)的可靠性差。</p><p> ?、茈娫垂收?。若樣機中存在電源故障,則加點后將造成器件損壞。電源故障包括電壓值不符合設(shè)計要求、電源引出線和插座不對應(yīng)、電源功率不足和負(fù)載能力差等。</p><p><b>  硬件調(diào)試方法</b></p><p> ?、俾?lián)機調(diào)試。通過脫機調(diào)試可排除一些明顯的硬件故障,有些硬件故障需要通過聯(lián)機調(diào)試才能

75、發(fā)現(xiàn)和排除。通電后,執(zhí)行讀寫指令,對用戶樣機的存儲器、I/O端口進(jìn)行讀寫和邏輯檢查等操作,用示波器等設(shè)備觀察波形(如輸出波形、讀/寫控制信號、地址數(shù)據(jù)波形和有關(guān)控制電平),通過波形的觀察分析,發(fā)現(xiàn)和排除故障。</p><p> ?、诿摍C調(diào)試。脫機調(diào)試實在樣機加電之前,先用萬用表等工具,根據(jù)硬件電氣原理圖和裝配圖,仔細(xì)檢查樣機線路的正確性,并核對元器件的型號、規(guī)格和安裝是否符合要求。</p><

76、p>  特別注意電源的走線,防止電源之間的短路和極性錯誤,重點檢查系統(tǒng)的總線或其他信號線之間是否存在相互的短路。</p><p>  樣機所用的電源,事先必須單獨調(diào)試后才能加到系統(tǒng)中。在不差芯片的情況下,加電檢查各插件上引腳的電位是否正常,仔細(xì)測量各點電位是否正常,尤其應(yīng)注意單片機插座上的各點電位是否正常。</p><p><b>  4.2軟件調(diào)試</b>&l

77、t;/p><p>  軟件調(diào)試方法與選用的軟件結(jié)構(gòu)和程序設(shè)計技術(shù)有關(guān)。如果采用模塊設(shè)計技術(shù),則逐個模塊調(diào)好以后,再進(jìn)行系統(tǒng)程序總調(diào)試。</p><p>  對于模塊結(jié)構(gòu)程序,要對子程序逐個進(jìn)行調(diào)試。調(diào)試子程序是,一定要符合入口條件和出口條件,調(diào)試手段可采用單步運行方式和斷點運行方式,通過檢查用戶系統(tǒng)CPU的現(xiàn)場、RAM的內(nèi)容和I/O口的狀態(tài),檢測程序執(zhí)行結(jié)果是符合設(shè)計要求。通過檢測可以發(fā)現(xiàn)程序

78、中的死循環(huán)錯誤、機器碼錯誤和轉(zhuǎn)移地址的錯誤,同時也可以發(fā)現(xiàn)用戶系統(tǒng)中的硬件故障,軟件算法和硬件設(shè)計錯誤,在調(diào)試過程中不斷調(diào)整用戶系統(tǒng)的軟件和硬件,完成每個程序模塊的調(diào)試。</p><p>  每個程序模塊通過后,可以聯(lián)合各功能模塊進(jìn)行整體程序綜合調(diào)試。在這一階段如果發(fā)生故障,可以分析子程序在運行時是否破壞現(xiàn)場、緩沖單元是否發(fā)生沖突、零位的建立和清除在設(shè)計上是否失誤、堆棧區(qū)域是否溢出或輸入設(shè)備的狀態(tài)是否正常等。若用

79、戶系統(tǒng)是在開發(fā)系統(tǒng)的監(jiān)控程序下運行,還要考慮用戶緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。</p><p>  單步運行只能驗證程序正確與否,而不能確定定時精度、CPU的實時響應(yīng)等問題,所以單步和斷點調(diào)試后,還應(yīng)進(jìn)行連續(xù)調(diào)試。除了觀察穩(wěn)定性之外,還要觀察用戶系統(tǒng)的操作是否符合原始設(shè)計要求,以及安排的用戶操作是夠合理等,必要時還要做適當(dāng)修正。</p><p>  DS1302 與微處理器進(jìn)行

80、數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護(hù);D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。    </p><p>  在DS1302的時鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時,DS

81、1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。    </p><p>  DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存

82、器,在此方式下可一次性讀、寫所有的RAM的31個字節(jié)。     </p><p>  要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 μ

83、F就可以保證1小時的正常走時。DS1302在第一次加電后,必須進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時間。   </p><p><b>  4.3聯(lián)調(diào)</b></p><p>  聯(lián)調(diào)是指讓用戶系統(tǒng)的軟件在其硬件上實際運行,進(jìn)行軟、硬件聯(lián)合調(diào)試,從中發(fā)現(xiàn)硬件故障或軟、硬件設(shè)計錯誤。這是對用戶系統(tǒng)檢驗的重要一關(guān)。</p>

84、<p>  聯(lián)調(diào)主要解決以下問題:</p><p>  ①軟、硬件能否按預(yù)定要求配合工作,如果不能,那么問題出在哪里?如何解決?</p><p> ?、谙到y(tǒng)運行中是否有潛在的設(shè)計是難以預(yù)料的錯誤,如硬件延時過長造成工作時序不符合要求、布線不合理造成有信號串?dāng)_等;</p><p> ?、巯到y(tǒng)的動態(tài)性能指標(biāo)(包括精度、速度參數(shù))是否滿足設(shè)計要求。</

85、p><p>  系統(tǒng)聯(lián)調(diào)時,首先采用單步、斷點、連續(xù)運行方式調(diào)試與硬件相關(guān)的各程序段既可以檢驗這些用戶程序段的正確性,又可以在各功能獨立的情況下,檢驗軟、硬件的配合情況。然后,將軟、硬件按系統(tǒng)工作要求進(jìn)行綜合運行,采用全速斷點、連續(xù)運行方式進(jìn)行總調(diào)試,以解決在系統(tǒng)總體運行的情況下軟、硬件的協(xié)調(diào)與提高系統(tǒng)動態(tài)性能。在具體操作中,用戶系統(tǒng)在開發(fā)系統(tǒng)環(huán)境下,先借用仿真器的CPU、存儲器等資源進(jìn)行工作。若發(fā)現(xiàn)問題,按上述軟、

86、硬件調(diào)試方法準(zhǔn)確定位錯誤,分析錯誤原因,找出解決辦法。用戶系統(tǒng)調(diào)試完后,將用戶程序固化到用戶系統(tǒng)的程序存儲器中,再借用仿真器CPU使用戶系統(tǒng)運行。若無問題,則用戶系統(tǒng)插上單片機即可正確工作(注意,不要忘記用戶系統(tǒng)時鐘、復(fù)位電路的調(diào)試)。</p><p>  第五章 心得體會</p><p>  在此次畢業(yè)設(shè)計中,收獲頗多。如果說我們以前學(xué)的都是一些理論知識和分散的知識,那么在這次畢業(yè)設(shè)

87、計中則是系統(tǒng)的把大學(xué)里所學(xué)的連貫的靈活運用起來。從最簡單的電阻電容的識別和個電阻阻值的選擇,以及各種電子元器件的識別、使用及其檢測,到電烙鐵的正確使用以及焊接的要求及注意點、PCB板的布局及其制作了解,都有了更詳細(xì)和更專業(yè)的學(xué)習(xí)和實踐。</p><p>  這次的畢業(yè)設(shè)計對我來說無疑是一次較好的動手鍛煉機會,因此從一開始就抱著一種較認(rèn)真的態(tài)度,無論是從了解電子萬年歷背景、意義、及其實現(xiàn)原理,還是后來的焊接對我來說

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 ;實時時鐘復(fù)位線引腳</p><p>  T_CLK Bit P2.4 ;實時時鐘時鐘線引腳</p><p>  T_IO Bit P2.5 ;實時時鐘數(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、 ;置定時器初值(定時100ms)</p><p>  MOV TL0,#58H</p><p>  SETB TR0 ;啟動定時器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è)為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: ;延時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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論