2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  2009 — 2010學(xué)年第 二 學(xué)期</p><p>  題目: 用DS1302與1602設(shè)計(jì)的可調(diào)式電子日歷時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn) </p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p>  畢業(yè)設(shè)計(jì)(論文)題目(來源、類

2、型)</p><p>  用DS1302與1602LCD設(shè)計(jì)的可調(diào)式電子日歷時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn) </p><p>  畢業(yè)設(shè)計(jì)(論文)工作內(nèi)容與基本要求(目標(biāo)、任務(wù)、途徑、方法、成果形式,應(yīng)掌握的原始資料(數(shù)據(jù))、參考資料(文獻(xiàn))以及設(shè)計(jì)技術(shù)要求、注意事項(xiàng)等)(紙張

3、不夠可加頁)</p><p>  基本要求: (1)顯示:年、月、日、時(shí)、分、秒;(2)具有年、月、日、時(shí)、分、秒的設(shè)置功能。 </p><p>  成果形式:(主要包括畢業(yè)論文,系統(tǒng)設(shè)計(jì)技術(shù)文檔,軟件等):設(shè)計(jì)功能演示;論文電子文檔及程序提交光盤;按學(xué)院格式要求打印論文3份上交。

4、 </p><p>  參考資料有:?jiǎn)纹瑱C(jī)的C語言應(yīng)用程序設(shè)計(jì)(馬忠梅、)新編單片機(jī)應(yīng)用程序設(shè)計(jì)(張毅剛) </p><p><b>  教研室審批意見:</b></p><

5、p><b>  審批人簽名:</b></p><p>  畢業(yè)設(shè)計(jì)(論文)開題報(bào)告</p><p>  課題名稱(來源、類型):</p><p>  用DS1302與1602LCD設(shè)計(jì)的可調(diào)式電子日歷時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn) </p&

6、gt;<p>  開題報(bào)告內(nèi)容:(調(diào)研資料的準(zhǔn)備,設(shè)計(jì)/論文的目的、要求、思路與預(yù)期成果;任務(wù)完成的階段內(nèi)容及時(shí)間安排;完成設(shè)計(jì)(論文)所具備的條件因素等。)</p><p>  目的:實(shí)現(xiàn)日歷和時(shí)鐘的顯示并且能夠調(diào)整</p><p>  要求:完成可調(diào)式電子日歷時(shí)鐘的硬件和軟件的設(shè)計(jì),包括單片機(jī)的相關(guān)內(nèi)容;日歷時(shí)鐘模塊的設(shè)計(jì),液晶顯示模塊的設(shè)計(jì),按鍵模塊的設(shè)計(jì)??刂瞥绦虻木?/p>

7、寫等。</p><p>  預(yù)期成果:仿真成功,做出實(shí)物產(chǎn)品。</p><p>  顯示初始值日歷時(shí)鐘初始值;</p><p>  用按鍵調(diào)整日歷時(shí)鐘。</p><p>  時(shí)間安排:第1~2周:熟悉課題的基本要求,查閱相關(guān)資料,初步擬定設(shè)計(jì) 的整體方案,完成開題報(bào)告。

8、 </p><p>  第3~8周:自學(xué)這次課題所涉及的相關(guān)內(nèi)容,包括器件基礎(chǔ)知識(shí)、單片機(jī),DS1302時(shí)鐘芯片工作原理和相關(guān)軟件的使用以及DS1602液晶屏的相關(guān)內(nèi)容。并設(shè)計(jì)一些簡(jiǎn)單的實(shí)際電路,熟練所學(xué)內(nèi)容并加以鞏固。熟悉繪圖軟件ProtelDXP的使用;</p><p>  第9~12周:設(shè)計(jì)DS1302時(shí)鐘模塊的控制電路、DS1602液晶顯示電路、電源電

9、路等硬件電路,并用ProtelDXP繪制原理圖,和繪制印刷電路板圖。編寫相關(guān)的控制程序;</p><p>  第13~15周:焊接調(diào)試電路,根據(jù)各部分的作用對(duì)硬件電路進(jìn)行調(diào)試,最后聯(lián)機(jī)調(diào)試。</p><p>  最后數(shù)周:寫畢業(yè)設(shè)計(jì)論文,完成全部畢業(yè)設(shè)計(jì)。 </p><p>  指導(dǎo)教師簽名:

10、 日期: </p><p><b>  目錄</b></p><p>  【摘要】…………………………………………………………………………………....5</p><p>  【關(guān)鍵詞】 …………………………………………………………………………………..5</p><p>  第一章

11、、設(shè)計(jì)要求與方案論證</p><p>  1.1 設(shè)計(jì)要求 ……………………………………………………………………………………5</p><p>  1.2 系統(tǒng)基本方案選擇和論證 …………………………………………………………………5</p><p>  1.2.1單片機(jī)芯片的選擇方案和論證 ………………………………………………………..6</p>&l

12、t;p>  1.2.2 顯示模塊選擇方案和論證 …………………………………………………………….6</p><p>  1.2.3 時(shí)鐘芯片的選擇方案和論證 ………………………………………………………….6</p><p>  1.3 電路設(shè)計(jì)最終方案決定 …………………………………………………………………….7</p><p>  第二章、系統(tǒng)硬件的設(shè)計(jì)&l

13、t;/p><p>  2.1 電路設(shè)計(jì)框圖 ……………………………………………………………………………….7</p><p>  2.2 系統(tǒng)硬件概述 ……………………………………………………………………………….7</p><p>  2.3 主要單元電路的設(shè)計(jì) ……………………………………………………………………….7</p><p>  2

14、.3.1單片機(jī)主控制模塊的設(shè)計(jì) ……………………………………………………………...7</p><p>  2.3.2時(shí)鐘電路DS1302 ………………………………………………………………………..8</p><p>  2.3.3顯示模塊的設(shè)計(jì) ………………………………………………………………………..11</p><p>  第三章、系統(tǒng)的軟件設(shè)計(jì)</p&

15、gt;<p>  3.1程序流程框圖 ……………………………………………………………………………….20</p><p>  3.2時(shí)間調(diào)整程序………………………………………………………………………………...21</p><p>  3.3液晶初始化程序 …………………………………………………………………………..27</p><p><b

16、>  第四章、指標(biāo)測(cè)試</b></p><p>  4.1 測(cè)試儀器 …………………………………………………………………………………….28</p><p>  4.2硬件測(cè)試 ……………………………………………………………………………………..28</p><p>  4.3軟件測(cè)試 …………………………………………………………………………………

17、…..28</p><p>  4.4測(cè)試結(jié)果分析與結(jié)論………………………………………………………………………..28</p><p>  4.4.1 測(cè)試結(jié)果分析………………………………………………………………………… ..28</p><p>  4.4.2 測(cè)試結(jié)論…………………………………………………………………………………28</p><

18、;p>  作品總結(jié)………………………………………………………………………………………….29</p><p>  致謝詞…………………………………………………………………………………………….29</p><p>  參考文獻(xiàn)………………………………………………………………………………………….29</p><p>  附錄一……………………………………………

19、……………………………………………….31</p><p>  附錄二…………………………………………………………………………………………….32</p><p>  附錄三…………………………………………………………………………………………….32</p><p>  【摘要】 隨著科技的快速發(fā)展,時(shí)間的流逝,至從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀(jì)

20、錄。美國DALLAS公司推出的具有涓細(xì)電流充電能的低功耗實(shí)時(shí)時(shí)鐘電路DS1302。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差小。對(duì)于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周 日、時(shí)、分、秒信息,還具有時(shí)間校準(zhǔn)等功能。該電路采用STC89C52單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用3~5V電壓供電。用1602液晶顯示,較直觀。</p&

21、gt;<p>  綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。</p><p><b>  【關(guān)鍵詞】</b></p><p>  時(shí)鐘電鐘;DS1302;LCD1602;單片機(jī)STC89C52</p><p>  第一章、設(shè)計(jì)要求與方案論證<

22、;/p><p><b>  1.1 設(shè)計(jì)要求:</b></p><p>  具有年、月、日、星期、時(shí)、分、秒等功能;</p><p>  具備年、月、日、星期、時(shí)、分、秒校準(zhǔn)功能;</p><p>  1.2 系統(tǒng)基本方案選擇和論證</p><p>  1.2.1單片機(jī)芯片的選擇方案和論證:</

23、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ì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定

24、的損壞。</p><p><b>  方案二:</b></p><p>  采用STC89C52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同時(shí)也與MCS-51系列單片機(jī)完全該芯片內(nèi)部存儲(chǔ)器為8KB ROM 存儲(chǔ)空間,同樣具有89C51的功能,且具有在線編程可擦除技術(shù),對(duì)所下載的程序能夠加密,比較安全。當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦?/p>

25、的新增功能需要燒入程序時(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。</p><p>  所以選擇采用STC89C52作為主控制系統(tǒng).</p><p>  1.2.2 顯示模塊選擇方案和論證:</p><p><b>  方案一:</b></p><p>  采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管

26、組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以不用此種作為顯示.</p><p><b>  方案二:</b></p><p>  采用LED數(shù)碼管動(dòng)態(tài)掃描,雖然LED數(shù)碼管價(jià)格適中,但要顯示多個(gè)數(shù)字所需要的個(gè)數(shù)偏多,功耗較大,所以也不用此種作為顯示。</p><p><b>  方案三:</b&

27、gt;</p><p>  采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見,與普通數(shù)碼管相比功耗較小,硬件連接簡(jiǎn)單。所以顯示部分采用1602液晶。</p><p>  1.2.3時(shí)鐘芯片的選擇方案和論證:</p><p><b>  方案一:</b></p><p>  直接采用

28、單片機(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í)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度

29、高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V范圍內(nèi),2.5V時(shí)耗電小于300nA.</p><p>  1.3 電路設(shè)計(jì)最終方案決定</p><p>  綜上各方案所述,對(duì)此次作品的方案選定: 采用STC89C52作為主控制系統(tǒng); DS1302提供時(shí)鐘;1602液晶作為顯示。</p><p>  第二章、系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)</p><

30、;p>  2.1 電路設(shè)計(jì)框圖</p><p>  2.2 系統(tǒng)硬件概述</p><p>  本電路是由STC89C52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信

31、,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、周日、時(shí)、分、秒,具有使用壽命長(zhǎng),精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能,本電路采用DS1302單字節(jié)傳送方式實(shí)現(xiàn)與主控機(jī)之間數(shù)據(jù)的傳送;顯示部份由1602構(gòu)成。</p><p>  2.3 主要單元電路的設(shè)計(jì)</p><p>  2.3.1

32、單片機(jī)主控制模塊的設(shè)計(jì)</p><p>  STC89C52單片機(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>  單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接時(shí)鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XT

33、AL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出.第9引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端. 如圖-1 </p><p><b>  圖-1 主控制系統(tǒng)</b></p><p>  2.3.2時(shí)鐘電路DS1302</p><p>  1. DS1302的性能特性</

34、p><p>  圖-2示出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ù)

35、據(jù)傳送。RST輸入有兩種功能:首先,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ù)輸入端(雙向)。

36、SCLK始終是輸入端。</p><p>  圖-2 DS1302的引腳圖</p><p>  2. DS1302數(shù)據(jù)操作原理</p><p>  (1) 時(shí)鐘芯片DS1302的工作原理:</p><p>  DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時(shí)序如下

37、圖3所示。表1為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對(duì)DS1302進(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é)總是從最低位開始輸入/輸出的。表6為DS1302的日歷、時(shí)間寄存器內(nèi)容:“CH”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài)

38、;當(dāng)該位為0時(shí),時(shí)鐘開始運(yùn)行。“WP”是寫保護(hù)位,在任何的對(duì)時(shí)鐘和RAM的寫操作之前,WP必須為0。當(dāng)“WP”為1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。</p><p>  (2) DS1302的控制字節(jié)</p><p>  DS1302的控制字如表-1所示??刂谱止?jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取

39、RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出</p><p>  RAM RD</p><p>  1 A4 A3 A2 A1 A0 </p><

40、;p>  / CK /WR</p><p>  表-1 DS1302的控制字格式</p><p>  (3) 數(shù)據(jù)輸入輸出(I/O)</p><p>  在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指

41、令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。如下圖-3所示</p><p>  圖-3 DS1302單字節(jié)讀/寫時(shí)序圖</p><p>  (4) DS1302的寄存器</p><p>  DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見表-2。&l

42、t;/p><p>  表-2 DS1302的日歷、時(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ù)為讀操作

43、,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。</p><p>  2.3.3顯示模塊的設(shè)計(jì)</p><p><b>  1. 1602介紹</b></p><p><b>  硬件圖:</b></p><p>

44、;  圖-10 LCD液晶驅(qū)動(dòng)電路</p><p>  第三章、系統(tǒng)的軟件設(shè)計(jì)</p><p><b>  3.1主程序流程圖</b></p><p>  圖-A 主程序流程圖</p><p><b>  主程序:</b></p><p>  void main()<

45、;/p><p><b>  {</b></p><p><b>  init();</b></p><p>  write_setds(0x80,0x50); </p><p>  write_setds(0x82,0x59); </p><p>  wri

46、te_setds(0x84,0x10); </p><p>  write_setds(0x86,0x17); </p><p>  write_setds(0x88,0x03);</p><p>  write_setds(0x8a,0x03); </p><p>  write_setds(0x8c,0x10)

47、;</p><p>  write_setds(0x90,0xa4);</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  keyscan();</p><p><b>  }</b>&l

48、t;/p><p>  display();</p><p><b>  }</b></p><p>  3.2 按鍵掃描子程序</p><p>  調(diào)整時(shí)間用3個(gè)調(diào)整按鈕,1個(gè)作為移位、控制用,另外2個(gè)分別作為加調(diào)整和減調(diào)整用。在調(diào)整時(shí)間過程中,要調(diào)整的位與其他位應(yīng)該有區(qū)別,所以增加了閃爍功能,即調(diào)整的位一直在閃爍,直到調(diào)整

49、下一位示值給該位。時(shí)間調(diào)整程序流程圖如圖-B所示。</p><p>  圖-B 時(shí)間調(diào)整程序流程圖</p><p><b>  調(diào)時(shí)程序如下:</b></p><p>  void keyscan( )</p><p><b>  {</b></p><p>  uchar

50、aa,bb;</p><p>  if(set==0)</p><p><b>  {</b></p><p><b>  delay(3);</b></p><p>  if(set==0)</p><p><b>  { </b></p&g

51、t;<p><b>  aa++;</b></p><p>  while(!set);</p><p><b>  if(aa==1)</b></p><p><b>  { </b></p><p><b>  flag=1;</b>

52、</p><p>  write_ds(0x8e,0x80);</p><p>  write_com(0x80+0x40+10);</p><p>  write_com(0x0f);</p><p>  write_ds(0x8e,0x00);</p><p>  bb=read_ds(0x81);</p&

53、gt;<p>  miao=(bb/16)*10+bb%16;</p><p>  bb=read_ds(0x83);</p><p>  fen=(bb/16)*10+bb%16;</p><p>  bb=read_ds(0x85);</p><p>  shi=(bb/16)*10+bb%16;</p>&l

54、t;p>  bb=read_ds(0x87);</p><p>  ri=(bb/16)*10+bb%16;</p><p>  bb=read_ds(0x89);</p><p>  yue=(bb/16)*10+bb%16;</p><p>  bb=read_ds(0x8b);</p><p>  zhou

55、=(bb/16)*10+bb%16;</p><p>  bb=read_ds(0x8d);</p><p>  nian=(bb/16)*10+bb%16; </p><p><b>  }</b></p><p><b>  if(aa==2)</b>

56、</p><p>  write_com(0x80+0x40+7);</p><p><b>  if(aa==3)</b></p><p>  write_com(0x80+0x40+4);</p><p><b>  if(aa==4)</b></p><p>  wri

57、te_com(0x80+0x0d);</p><p><b>  if(aa==5)</b></p><p>  write_com(0x80+0x09);</p><p><b>  if(aa==6)</b></p><p>  write_com(0x80+6);</p><

58、;p><b>  if(aa==7)</b></p><p>  write_com(0x80+3);</p><p><b>  if(aa==8)</b></p><p><b>  {</b></p><p><b>  aa=0;</b>&l

59、t;/p><p>  write_com(0x0c);</p><p>  write_ds(0x8e,0x80);</p><p><b>  flag=0;</b></p><p><b>  }</b></p><p><b>  }</b></

60、p><p><b>  }</b></p><p><b>  if(aa!=0)</b></p><p><b>  {</b></p><p><b>  if(up==0)</b></p><p><b>  {<

61、/b></p><p>  delay(5) ;</p><p><b>  if(up==0)</b></p><p><b>  {</b></p><p>  while(!up);</p><p><b>  if(aa==1)</b>&l

62、t;/p><p><b>  { </b></p><p><b>  miao++;</b></p><p>  if(miao==61)</p><p><b>  miao=1 ;</b></p><p>  write_sfm(8,mi

63、ao);</p><p>  write_com(0x80+0x4a);</p><p><b>  }</b></p><p><b>  if(aa==2)</b></p><p><b>  {</b></p><p><b>  fen

64、++;</b></p><p>  if(fen==60)</p><p><b>  fen=0;</b></p><p>  write_sfm(5,fen);</p><p>  write_com(0x80+0x48);</p><p><b>  }</b&g

65、t;</p><p><b>  if(aa==3)</b></p><p><b>  {</b></p><p><b>  shi++;</b></p><p>  if(shi==24)</p><p><b>  shi=0;<

66、/b></p><p>  write_sfm(2,shi);</p><p>  write_com(0x80+0x40+5);</p><p><b>  }</b></p><p><b>  if(aa==4)</b></p><p><b>  {&

67、lt;/b></p><p><b>  zhou++;</b></p><p>  if(zhou==8)</p><p><b>  zhou=1;</b></p><p>  write_nyr(12,zhou);</p><p>  write_com(0x80

68、+0x0d);</p><p><b>  }</b></p><p><b>  if(aa==5)</b></p><p><b>  {</b></p><p><b>  ri++;</b></p><p>  if(ri=

69、=32)</p><p><b>  ri=1;</b></p><p>  write_nyr(8,ri);</p><p>  write_com(0x80+0x0a);</p><p><b>  }</b></p><p><b>  if(aa==6)&l

70、t;/b></p><p><b>  {</b></p><p><b>  yue++;</b></p><p>  if(yue==13)</p><p><b>  yue=1;</b></p><p>  write_nyr(5,yue)

71、;</p><p>  write_com(0x80+7);</p><p><b>  }</b></p><p><b>  if(aa==7)</b></p><p><b>  {</b></p><p><b>  nian++;&l

72、t;/b></p><p>  write_nyr(2,nian);</p><p>  write_com(0x80+4);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>&

73、lt;/p><p>  if(down==0)</p><p><b>  {</b></p><p>  delay(5) ;</p><p>  if(down==0)</p><p><b>  {</b></p><p>  while(!down

74、);</p><p><b>  if(aa==1)</b></p><p><b>  { </b></p><p><b>  miao--;</b></p><p>  if(miao==-1)</p><p><b>  

75、miao=59;</b></p><p>  write_sfm(8,miao);</p><p>  write_com(0x80+0x4a);</p><p><b>  }</b></p><p><b>  if(aa==2)</b></p><p>&l

76、t;b>  {</b></p><p><b>  fen--;</b></p><p>  if(fen==-1)</p><p><b>  fen=59;</b></p><p>  write_sfm(5,fen);</p><p>  write_

77、com(0x80+0x48);</p><p><b>  }</b></p><p><b>  if(aa==3)</b></p><p><b>  {</b></p><p><b>  shi--;</b></p><p>

78、;  if(shi==-1)</p><p><b>  shi=23;</b></p><p>  write_sfm(2,shi);</p><p>  write_com(0x80+0x45);</p><p><b>  }</b></p><p><b>

79、  if(aa==4)</b></p><p><b>  {</b></p><p><b>  zhou--;</b></p><p>  if(zhou==0)</p><p><b>  zhou=7;</b></p><p>  w

80、rite_nyr(12,zhou);</p><p>  write_com(0x80+0x0d);</p><p><b>  }</b></p><p><b>  if(aa==5)</b></p><p><b>  {</b></p><p>

81、<b>  ri--;</b></p><p>  if(ri==-1)</p><p><b>  ri=1;</b></p><p>  write_nyr(8,ri);</p><p>  write_com(0x80+0x0a);</p><p><b> 

82、 }</b></p><p><b>  if(aa==6)</b></p><p><b>  {</b></p><p><b>  yue--;</b></p><p>  if(yue==0)</p><p><b>  y

83、ue=12;</b></p><p>  write_nyr(5,yue);</p><p>  write_com(0x87);</p><p><b>  }</b></p><p><b>  if(aa==7)</b></p><p><b> 

84、 {</b></p><p><b>  nian--;</b></p><p>  write_nyr(2,nian);</p><p>  write_com(0x84);</p><p><b>  }</b></p><p><b>  }<

85、;/b></p><p><b>  }</b></p><p>  write_ds(0x80,(miao/10)*16+miao%10); </p><p>  write_ds(0x82,(fen/10)*16+fen%10);</p><p>  write_ds(0x84,(shi/10)*16+shi%

86、10);</p><p>  write_ds(0x86,(ri/10)*16+ri%10);</p><p>  write_ds(0x88,(yue/10)*16+yue%10);</p><p>  write_ds(0x8a,(zhou/10)*16+zhou%10);</p><p>  write_ds(0x8c,(nian/10

87、)*16+nian%10); </p><p><b>  }</b></p><p>  display();</p><p><b>  }</b></p><p>  3.3 液晶初始化子程序</p><p>  /*************初始化*********

88、****/ </p><p>  void init()</p><p><b>  {</b></p><p>  //uchar i;</p><p><b>  lcden=0;</b></p><p>  write_com(0x38);

89、</p><p>  write_com(0x0c);</p><p>  write_com(0x06);</p><p>  write_com(0x01);</p><p><b>  delay(5);</b></p><p>  write_com(0x80+0x01);</p&

90、gt;<p><b>  {</b></p><p>  write_date(0x32);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p>  write_com(0x80+0x02);</p

91、><p><b>  {</b></p><p>  write_date(0x30);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p>  write_com(0x80+0x05);</

92、p><p><b>  {</b></p><p>  write_date(0x2d);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p>  write_com(0x80+0x08);<

93、/p><p><b>  {</b></p><p>  write_date(0x2d);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p>  write_com(0x80+0x46);<

94、;/p><p><b>  {</b></p><p>  write_date(0x3a);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p>  write_com(0x80+0x49);&l

95、t;/p><p><b>  {</b></p><p>  write_date(0x3a);</p><p><b>  delay(2);</b></p><p><b>  } </b></p><p><b>  }</b>&

96、lt;/p><p><b>  4.1 測(cè)試儀器</b></p><p><b>  第四章、 指標(biāo)測(cè)試</b></p><p><b>  4.2硬件測(cè)試</b></p><p>  電子萬年歷的電路系統(tǒng)較大,對(duì)于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出于一處的錯(cuò)誤,則會(huì)對(duì)檢

97、測(cè)造成很大的不便,而且電路的交線較多,對(duì)于各種鋒利的引腳要注意處理,否則會(huì)刺被帶有包皮的導(dǎo)線,則會(huì)對(duì)電路造成短路現(xiàn)象。</p><p>  在本成電子萬年歷的設(shè)計(jì)調(diào)試中遇到了很多的問題?;叵脒@些問題只要認(rèn)真多思考都是可以避免的,以下為主要的問題:</p><p> ?。?)串口下載芯片232發(fā)燙,單片機(jī)晶振不起振</p><p> ?。?)1602在顯示時(shí)間時(shí)出現(xiàn)黑

98、格子,遮擋了時(shí)間</p><p> ?。?)對(duì)萬年歷修改時(shí)間或日期時(shí),有時(shí)時(shí)間改變2次。</p><p>  解決:根據(jù)儀器的測(cè)試,發(fā)現(xiàn)電路引腳有接錯(cuò)的現(xiàn)象,重新焊接后晶振,復(fù)位正常,程序能夠下載。1602出現(xiàn)黑格子是由于在其第三引腳沒加電阻分壓導(dǎo)致,加上5K電阻后正常。按鍵延時(shí)較短致使按鍵次數(shù)多加。</p><p><b>  4.3軟件測(cè)試</b

99、></p><p>  電子成年歷是多功能的數(shù)字型,可以看當(dāng)前日期,時(shí)間。電子成年歷功能很多,所以對(duì)于它的程序也較為復(fù)雜,所以在編寫程序和調(diào)試時(shí)出現(xiàn)了相對(duì)較多的問題。最后經(jīng)過多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在軟件的調(diào)試過程中主要遇到的問題如下:</p><p>  1:1602顯示的時(shí)間不完整,最后在液晶初始化程序中給加上該顯示的數(shù)字即可。</p>

100、<p>  2:在調(diào)整時(shí)間時(shí)光標(biāo)閃爍不規(guī)律,原因的由于錯(cuò)用DS1302停振指令所致,最后加上一個(gè)變量進(jìn)行控制即可。 </p><p>  4.4測(cè)試結(jié)果分析與結(jié)論</p><p>  4.4.1 測(cè)試結(jié)果分析</p><p>  (1).在測(cè)試中遇到單片機(jī)晶振不起振、232芯片發(fā)燙,首先使用試測(cè)儀對(duì)電路進(jìn)行測(cè)試,觀察是否存在漏焊,虛焊,或者元件損壞

101、.</p><p> ?。?).1602液晶有黑色背景出現(xiàn),首先使用試測(cè)儀對(duì)電路進(jìn)行測(cè)試,觀察電路是否存在短路現(xiàn)象。查看燒寫的程序是否正確無誤,對(duì)程序進(jìn)行認(rèn)真修改。</p><p>  4.4.2 測(cè)試結(jié)論</p><p>  經(jīng)過多次的反復(fù)測(cè)試與分析,可以對(duì)電路的原理及功能更加熟悉,同時(shí)提高了設(shè)計(jì)能力與及對(duì)電路的分析能力.同時(shí)在軟件的編程方面得到更到的提高,對(duì)編程

102、能力得到加強(qiáng).同時(shí)對(duì)所學(xué)的知識(shí)得到很大的提高與鞏固.</p><p><b>  作品總結(jié)</b></p><p>  在整個(gè)設(shè)計(jì)過程中,發(fā)揮團(tuán)隊(duì)精神,分工合作,充分發(fā)揮人的主觀能動(dòng)性,自主學(xué)習(xí),學(xué)到了許多沒學(xué)到的知識(shí)。較好的完成了作品。達(dá)到了預(yù)期的目的。完了最初的設(shè)想。在電路焊接時(shí)雖然沒什么大問題,但從中也知道了焊接在整個(gè)作品中的重要性,電路工程量大,不能心急,一個(gè)

103、個(gè)慢慢來不能急于求成。反而達(dá)到事半功倍的效果。對(duì)電路的設(shè)計(jì)、布局要先有一個(gè)好的構(gòu)思,才顯得電路板美觀、大方。程序編寫中,由于思路不清晰,開始時(shí)遇到了很多的問題,經(jīng)過靜下心來思考,理清了思路,反而得心應(yīng)手。在此次設(shè)計(jì)中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我們的耐心,做什么事都在有耐心。此次電子制作中學(xué)到了很多很多東西,這是最重要的??傊?,參加這次電子制作我的能力得到了全方位的提高。</p>&

104、lt;p><b>  致謝詞</b></p><p>  感謝學(xué)院給我提供了一個(gè)展現(xiàn)自己的舞臺(tái),給我一次難得煅煉的機(jī)會(huì),使得我的動(dòng)手能力和專業(yè)技能都有了很大的提高。</p><p>  在做作品的日子里得到了指導(dǎo)教師的悉心指導(dǎo),在此向我的指導(dǎo)教師致以誠摯的謝意。感謝提供相關(guān)技術(shù)幫助的老師和同學(xué),你們的支持和鼓勵(lì)使我對(duì)這次的作品完成有了信心和動(dòng)力,也給了我很多無私

105、的幫助和支持,我在此深表謝意。</p><p><b>  參考文獻(xiàn)</b></p><p>  1:張毅剛,彭喜元,姜守達(dá),喬立言, 《新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)》。哈爾濱工業(yè)大學(xué)出版社 ,2008</p><p>  2:馬忠梅,《單片機(jī)的C語言應(yīng)用設(shè)計(jì)》 北京航空航天大學(xué)出版社 。2008</p><p>  

106、3:王靜霞,《單片機(jī)應(yīng)用技術(shù)》,電子工業(yè)出版社, 2009</p><p><b>  附錄一:系統(tǒng)電路圖</b></p><p>  附錄二:生成的PCB板</p><p>  附錄三:系統(tǒng)程序清單</p><p>  #include<reg52.h></p><p>  #def

107、ine uchar unsigned char</p><p>  #define uint unsigned int</p><p>  uchar code table1[]={"2009-00-00 sat"} ;</p><p>  uchar code table2[]={ " 20:00:00"};</p&

108、gt;<p>  sbit lcdrs=P2^7;</p><p>  sbit lcdrw=P2^6;</p><p>  sbit lcden=P2^5;</p><p>  sbit ACC0=ACC^0;</p><p>  sbit ACC7=ACC^7;</p><p>  sbit dsio

109、=P2^3; </p><p>  sbit dsclk=P2^2; </p><p>  sbit dsrst=P2^4; </p><p>  sbit set=P1^6; </p><p>  sbit up=P1^5 ; </p><p>  sbit down=P1^4

110、; </p><p>  void keyscan();</p><p>  void write_sfm(uchar add,uchar shu);</p><p>  uchar shi,fen,miao,ri,yue,nian,zhou,flag;</p><p>  void delay(uchar z) </

111、p><p><b>  {</b></p><p>  uchar x,y;</p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p&g

112、t;  /***********往DS1302寫入一字節(jié)***************/</p><p>  void inputbyte(uchar add)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p><b>  ACC

113、=add;</b></p><p>  for(i=8;i>0;i--)</p><p><b>  {</b></p><p>  dsio=ACC0;</p><p><b>  dsclk=1;</b></p><p><b>  dsclk

114、=0;</b></p><p>  ACC=ACC>>1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  /**********ds1302輸出一字節(jié)****************/</p><p&g

115、t;  uchar outputbyte(void)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for(i=8;i>0;i--)</p><p><b>  {</b></p><

116、p>  ACC=ACC>>1;</p><p>  ACC7=dsio;</p><p><b>  dsclk=1;</b></p><p><b>  dsclk=0;</b></p><p><b>  }</b></p><p>

117、;  return ACC;</p><p><b>  }</b></p><p>  /*********往ds1302寫入數(shù)據(jù)*****************/</p><p>  void write_ds(uchar add,uchar ucda)</p><p><b>  {</b>

118、</p><p><b>  dsrst=0;</b></p><p><b>  dsclk=0;</b></p><p><b>  dsrst=1;</b></p><p>  inputbyte(add);</p><p>  inputbyte

119、(ucda);</p><p><b>  dsclk=1;</b></p><p><b>  dsrst=0;</b></p><p><b>  }</b></p><p>  /*********從DS1302讀出數(shù)據(jù)*****************/</p&g

120、t;<p>  uchar read_ds(uchar add)</p><p><b>  {</b></p><p>  uchar ucda;</p><p><b>  dsrst=0;</b></p><p><b>  dsclk=0;</b><

121、/p><p><b>  dsrst=1;</b></p><p>  inputbyte(add);</p><p>  ucda=outputbyte();</p><p><b>  dsclk=1;</b></p><p><b>  dsrst=0;</

122、b></p><p>  return (ucda);</p><p><b>  }</b></p><p>  /*********往1602液晶寫入指令*****************/</p><p>  void write_com(uchar com)</p><p><

123、b>  {</b></p><p><b>  lcdrs=0;</b></p><p><b>  lcdrw=0;</b></p><p><b>  P0=com;</b></p><p><b>  delay(5);</b>&l

124、t;/p><p><b>  lcden=1;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=0;</b></p><p><b>  }</b></p><p>  /****

125、****往1602液晶寫入數(shù)據(jù)******************/</p><p>  void write_date(uchar date1)</p><p><b>  {</b></p><p><b>  lcdrs=1;</b></p><p><b>  lcdrw=0;&l

126、t;/b></p><p><b>  P0=date1;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=1;</b></p><p><b>  delay(5);</b></p>

127、;<p><b>  lcden=0;</b></p><p><b>  }</b></p><p>  /**********設(shè)置DS1302****************/</p><p>  void write_setds(uchar addr,uchar date)</p><

128、;p><b>  {</b></p><p>  write_ds(0x8e,0x00);</p><p>  write_ds(addr,date);</p><p>  write_ds(0x8e,0x80);</p><p><b>  }</b></p><p>

129、;  /*************初始化*************/ </p><p>  void init()</p><p><b>  {</b></p><p>  //uchar i;</p><p><b>  lcden=0;</b></p>

130、<p>  write_com(0x38);</p><p>  write_com(0x0c);</p><p>  write_com(0x06);</p><p>  write_com(0x01);</p><p><b>  delay(5);</b></p><p> 

131、 write_com(0x80+0x01);</p><p><b>  {</b></p><p>  write_date(0x32);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p>

132、  write_com(0x80+0x02);</p><p><b>  {</b></p><p>  write_date(0x30);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p>

133、;  write_com(0x80+0x05);</p><p><b>  {</b></p><p>  write_date(0x2d);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p&g

134、t;  write_com(0x80+0x08);</p><p><b>  {</b></p><p>  write_date(0x2d);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p&

135、gt;  write_com(0x80+0x46);</p><p><b>  {</b></p><p>  write_date(0x3a);</p><p><b>  delay(2);</b></p><p><b>  }</b></p><p

136、>  write_com(0x80+0x49);</p><p><b>  {</b></p><p>  write_date(0x3a);</p><p><b>  delay(2);</b></p><p><b>  } </b></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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論