萬(wàn)年歷單片機(jī)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p>  題 目:萬(wàn)年歷顯示模塊設(shè)計(jì)</p><p><b>  初始條件:</b></p><p>  具備電子電路的設(shè)計(jì)知識(shí)和能力;具備單片機(jī)系統(tǒng)的設(shè)計(jì)方法;具備單片機(jī)軟件編程技術(shù);熟悉單片機(jī)常用軟件的使用;</p><p>

2、  要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求)</p><p>  1、了解并參與萬(wàn)年歷電路的設(shè)計(jì)</p><p>  2、對(duì)萬(wàn)年歷顯示部分進(jìn)行計(jì)算機(jī)仿真</p><p>  3、設(shè)計(jì)萬(wàn)年歷顯示電路</p><p>  4、具備時(shí)間、日期及星期的切換顯示功能</p><p>  5

3、、完成符合學(xué)校要求的設(shè)計(jì)說(shuō)明書</p><p><b>  時(shí)間安排:</b></p><p>  設(shè)計(jì)時(shí)間2周,其中3天原理設(shè)計(jì),3天仿真,3天電路調(diào)試,1天答辯</p><p>  指導(dǎo)教師簽名: 年 月 日</p><p>  系主任(或責(zé)任教師)簽名:

4、 年 月 日</p><p><b>  摘要</b></p><p>  單片計(jì)算機(jī)即單片微型計(jì)算機(jī)。由RAM ,ROM,CPU構(gòu)成,定時(shí),計(jì)數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。而51系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次課程設(shè)計(jì)通過對(duì)它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、

5、開發(fā)軟、硬的能力。</p><p>  本次課程設(shè)計(jì)包括AT89C51單片機(jī)最小系統(tǒng)包括復(fù)位和時(shí)鐘電路及供電系統(tǒng)、LCD液晶顯示電路。利用相關(guān)設(shè)計(jì)軟件進(jìn)行原理圖設(shè)計(jì)即利用Keil軟件編程以及Proteus軟件仿真來(lái)鞏固單片機(jī)應(yīng)用、模擬電路、數(shù)字電路課程及學(xué)會(huì)各種工程軟件的使用。 </p><p>  關(guān)鍵字:?jiǎn)纹瑱C(jī) AT89C51 DS1302 </p><p>

6、;<b>  目 錄</b></p><p><b>  1設(shè)計(jì)方案選擇1</b></p><p>  1.1控制部分的方案選擇1</p><p>  1.2 顯示模塊選擇方案和論證1</p><p>  1.3時(shí)鐘芯片的選擇方案和論證1</p><p>  2系統(tǒng)的

7、硬件設(shè)計(jì)與實(shí)現(xiàn)1</p><p>  2.1 電路設(shè)計(jì)框圖1</p><p>  2.2 系統(tǒng)硬件概述2</p><p>  2. 3 主要單元電路的器件2</p><p>  2.3.1單片機(jī)主控制模塊2</p><p>  2.3.2時(shí)鐘電路模塊的設(shè)計(jì)3</p><p>  2.

8、3.3顯示模塊的設(shè)計(jì)5</p><p>  2.3.4 實(shí)時(shí)時(shí)鐘電路設(shè)計(jì)5</p><p>  2.3.5 功能按鈕設(shè)計(jì)6</p><p>  3 整體電路圖7</p><p><b>  參考文獻(xiàn)7</b></p><p><b>  附件10</b><

9、/p><p><b>  1設(shè)計(jì)方案選擇</b></p><p>  1. 1控制部分的方案選擇</p><p>  采用51系列的89C51單片機(jī),89C51單片機(jī)有豐富的中斷源和時(shí)基,方便本實(shí)驗(yàn)的設(shè)計(jì)。它的準(zhǔn)確度相當(dāng)高,并且C語(yǔ)言和匯編兼容的編程環(huán)境也很方便來(lái)實(shí)現(xiàn)一些遞歸調(diào)用。I/O口功能也比較強(qiáng)大,方便使用。用89C51單片機(jī)做控制器最有特色

10、的就是它的可編程音頻處理,可完成語(yǔ)音的錄制播放和識(shí)別。這些都方便對(duì)設(shè)計(jì)進(jìn)行擴(kuò)展,使設(shè)計(jì)更加完善。成本也相對(duì)低一些。</p><p>  1.2 顯示模塊選擇方案和論證</p><p>  方案一:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字、圖形、顯示多樣,清晰可見,所以在此設(shè)計(jì)中采用LCD液晶顯示屏。</p><p>  所以采用了液晶顯示屏作為

11、顯示。</p><p>  1.3時(shí)鐘芯片的選擇方案和論證</p><p>  方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。</p><p>  方案二:采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)

12、秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V范圍內(nèi),2.5V時(shí)耗電小于300nA。</p><p>  綜上各方案所述,對(duì)此次作品的方案選定: 采用AT89C51作為主控制系統(tǒng);DS1302提供時(shí)鐘;液晶顯示屏作為顯示。</p><p>  2系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)</p><p>  2.1 電

13、路設(shè)計(jì)框圖</p><p>  按照系統(tǒng)設(shè)計(jì)功能的要求,初步確定設(shè)計(jì)系統(tǒng)由主控模塊、時(shí)鐘模塊、顯示模塊、鍵盤接口模塊共4個(gè)模塊組成,電路系統(tǒng)構(gòu)成框圖如圖3-1所示。主控芯片使用51系列AT89C51單片機(jī),時(shí)鐘芯片使用美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘DSl302。采用DSl302作為主要計(jì)時(shí)芯片,可以做到計(jì)時(shí)準(zhǔn)確。更重要的是,DSl302可以在很小電流的后備電源(2.5—5.5V電

14、源,在2.5V時(shí)耗電小于300 nA)下繼續(xù)計(jì)時(shí),并可編程選擇多種充電電流來(lái)對(duì)后備電源進(jìn)行慢速充電,可以保證后備電源基本不耗電。 顯示模塊采用普通的液晶顯示屏,鍵輸入采用查詢法實(shí)現(xiàn)調(diào)整功能。</p><p>  2.2 系統(tǒng)硬件概述</p><p>  本電路是由AT89C51單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗

15、、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(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)保存功能;顯示部份由液晶顯示屏對(duì)數(shù)字的顯示。</p><

16、;p>  2.3 主要單元電路的器件</p><p>  2.3.1單片機(jī)主控制模塊</p><p>  AT89C51單片機(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><b>  1. 內(nèi)部結(jié)構(gòu)</b

17、></p><p>  按功能分為8部分:CUP,程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,時(shí)鐘電路,串行口,并行I/O口,中斷系統(tǒng),定時(shí)/計(jì)數(shù)器。</p><p><b>  2. 控制引腳</b></p><p>  XTAL1和XTAL2:時(shí)鐘引腳,外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此兩引腳端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外

18、部時(shí)鐘脈沖信號(hào)。</p><p>  RST/:RST是復(fù)位信號(hào)輸入端,是備用電源輸入端。當(dāng)RST輸入端保持2個(gè)機(jī)器周期以上高電平時(shí),單片機(jī)完成復(fù)位初始化操作。</p><p>  當(dāng)主電源發(fā)生故障而突然下降到一定低電壓或斷電時(shí),第2功能將為片內(nèi)RAM提供電源以保護(hù)片內(nèi)RAM中的信息不丟失。</p><p>  ALE/PROG:地址鎖存允許信號(hào)輸入端。在存取外存儲(chǔ)

19、器時(shí),用于鎖存低8位地址信號(hào)。當(dāng)單片機(jī)正常工作后,ALE端就周期性地以時(shí)鐘振蕩頻率的1/6固定頻率向外輸出正脈沖信號(hào)。此引腳的第2功能PROG是對(duì)片內(nèi)帶有4K字節(jié)EPROM的8751固外程序時(shí),作為編程脈沖輸入端。</p><p>  :程序存儲(chǔ)器允許輸出端。當(dāng)片外程序存儲(chǔ)器的讀選通信號(hào),低電平有效。CPU從外部程序存儲(chǔ)器取指令時(shí),信號(hào)會(huì)自動(dòng)產(chǎn)生負(fù)脈沖,作為外部程序存儲(chǔ)器的選通信號(hào)。</p><

20、;p>  /:程序存儲(chǔ)器地址允許輸入端。當(dāng)為高電平時(shí),CPU執(zhí)行片內(nèi)程序存儲(chǔ)器指令,但當(dāng)PC中的值超過0FFFH時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外程序存儲(chǔ)器指令;當(dāng)/為低電平時(shí),CPU只執(zhí)行片外程序存儲(chǔ)器指令。</p><p><b>  3. I/O口引腳</b></p><p>  P0.0~P0.7:P0口8位雙向I/O口;</p><p> 

21、 P1.0~P1.7:P1口8位準(zhǔn)雙向I/O口;</p><p>  P2.0~P2.7:P2口8位準(zhǔn)雙向I/O口;</p><p>  P3.0~P3.7:P3口8位準(zhǔn)雙向I/O口。</p><p><b>  4. 片外總線結(jié)構(gòu)</b></p><p>  分為三部分:數(shù)據(jù)總線 Data Bus(DB),地址總線 A

22、ddress Bus (AB),控制總線 Control Bus(CB)。</p><p>  2.3.2時(shí)鐘電路模塊的設(shè)計(jì)</p><p>  (1)時(shí)鐘芯片DS1302引腳及功能特點(diǎn)</p><p>  圖3-2示出DS1302的引腳排列,其中為后備電源,為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由或兩者中的較大者供電。當(dāng)大于+0.2V

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

24、引腳變?yōu)楦咦钁B(tài)。上電動(dòng)行時(shí),在大于等于2.5V之前,RST必須保持低電平。中有在SCLK 為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。</p><p><b>  、</b></p><p>  (2) 時(shí)鐘芯片DS1302的工作原理:</p><p>  DS1302在每次進(jìn)行讀、寫程序前都必須初

25、始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖。表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”

26、是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開始運(yùn)行?!癢P”是寫保護(hù)位,在任何的對(duì)時(shí)鐘和RAM的寫操作之前,WP必須為0。當(dāng)“WP”為1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。</p><p>  RAM RD</p><p>  1

27、 A4 A3 A2 A1 A0 </p><p>  / CK /WR</p><p>  (3) 數(shù)據(jù)輸入輸出(I/O)</p><p>  在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊

28、跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。 </p><p>  2. 3. 3顯示模塊的設(shè)計(jì)</p><p>  方案一:采用8段數(shù)碼管雖經(jīng)濟(jì)實(shí)惠,但操作比液晶顯示來(lái)說(shuō)略顯繁瑣。</p><p>  方案二:液晶顯示方式。液晶顯示效果出眾,可以運(yùn)用菜單項(xiàng)來(lái)方便操作,比較簡(jiǎn)單,所

29、以,最后選擇液晶顯示方案。顯示電路圖如圖2.2所示。</p><p>  圖2.2 液晶顯示電路</p><p>  2.3.4 實(shí)時(shí)時(shí)鐘電路設(shè)計(jì)</p><p>  圖2.3是 DS1302與單片機(jī)的連接,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc

30、1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768KHz晶振。</p><p>  圖2.3 DS1302時(shí)鐘電路</p><p>  2. 3. 5 功能按鈕設(shè)計(jì)</p><p>  當(dāng)按鈕被按下時(shí),該按鈕對(duì)應(yīng)的I/O口被拉為低電平,松開時(shí)按鈕對(duì)應(yīng)的I/O口由內(nèi)部的上拉電阻將該I

31、/O拉為高電平,如圖2.5所示:</p><p>  圖2.5 鍵盤電路設(shè)計(jì) </p><p><b>  3 整體電路圖</b></p><p><b>  4 心得體會(huì)</b></p><p>  對(duì)于本次課程設(shè)計(jì)結(jié)合上學(xué)期所學(xué)習(xí)的單片機(jī)的基礎(chǔ)知識(shí),將硬件和軟件的知識(shí)全都聯(lián)系起來(lái),硬件方面有電

32、路的連接和芯片的選取,軟件方面有程序的設(shè)計(jì)和編寫。</p><p>  本次課程設(shè)計(jì)是我遇到的較難的課程設(shè)計(jì),是以前沒有接觸過如此復(fù)雜的硬件電路以及軟件編程,在軟、硬件設(shè)計(jì)和調(diào)試中遇到了不少的困難,在同學(xué)的幫助才逐一克服了難題,學(xué)習(xí)到了不少的專業(yè)知識(shí)。</p><p>  在整個(gè)設(shè)計(jì)過程之前,我已經(jīng)在網(wǎng)上找了相關(guān)方面的資料,萬(wàn)事開始難,一開始不知道從哪里下手。后來(lái)慢慢學(xué)會(huì)分析系統(tǒng),將系統(tǒng)模

33、塊化,各個(gè)模塊可以在軟件或者硬件上實(shí)現(xiàn)。在確保各個(gè)模塊的硬件電路和與之相搭配的程序能夠正常工作后在把它們組成一個(gè)系統(tǒng)。在今后的日子里,我會(huì)進(jìn)一步加強(qiáng)自己的動(dòng)手能力,豐富自己的知識(shí)面,不過總的來(lái)說(shuō)這次單片機(jī)課設(shè)還是讓我學(xué)到非常多的東西,也增加了我的動(dòng)手機(jī)會(huì),,希望自己以后更加嚴(yán)格的要求自己,做到更好。</p><p><b>  參考文獻(xiàn)</b></p><p>  [

34、1] 謝自美. 電子線路設(shè)計(jì)實(shí)驗(yàn)測(cè)試(第三版).武漢:華中科技大學(xué)出版社</p><p>  [2] 李群芳. 單片微型計(jì)算機(jī)與接口技術(shù)(第3版).電子工業(yè)出版社,2008</p><p>  [3] 劉教瑜. 單片機(jī)原理及應(yīng)用.武漢理工大學(xué)出版社,2011</p><p>  [4] 張東亮. 單片機(jī)原理與應(yīng)用.人民郵電出版社,2009</p>&l

35、t;p>  [5] 郭天祥. 51單片機(jī)C語(yǔ)言教程.電子工業(yè)出版社</p><p><b>  附件</b></p><p><b>  萬(wàn)年歷源程序</b></p><p>  #include<reg52.h></p><p>  #include<intrins.h&g

36、t;</p><p>  #include<string.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  //*******LCD*******</p><p>  sbit LC

37、DRS=P2^0; //LCD數(shù)據(jù)/命令選擇端</p><p>  sbit LCDRW=P2^1;</p><p>  sbit LCDEN=P2^2; //LCD使能新號(hào)端</p><p>  sbit Q=P1^3;</p><p>  //******DS1302******</p><p>  sbit IO

38、=P1^0;//1302數(shù)據(jù)線</p><p>  sbit SCLK=P1^1; //1302時(shí)鐘線</p><p>  sbit RST=P1^2; //復(fù)位</p><p>  uint num=0;</p><p>  uchar *week[]={"SUN","***","MON&q

39、uot;,"TUS","WEN","THU","FRI","SAT"};</p><p>  uchar Date[]={"Date: 2000-00-00 "};</p><p>  uchar Date1[16]={"SSS "}

40、;</p><p>  uchar Time[]={"Time: *00:00-00* "};</p><p>  uchar date_time[7]; //從ds1302讀取的當(dāng)前日期時(shí)間</p><p>  //=======延時(shí)=======</p><p>  void delay(uint z)</p&g

41、t;<p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b><

42、/p><p>  //********向1302寫數(shù)據(jù)*********</p><p>  void write_ds1302(uchar dat)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for(i=0

43、;i<8;i++)</p><p><b>  {</b></p><p>  IO=dat & 0x01; //保持最后一位為1,讀狀態(tài)</p><p><b>  SCLK=1;</b></p><p><b>  delay(1);</b></p>

44、;<p><b>  SCLK=0;</b></p><p>  dat >>= 1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //*********從1302讀數(shù)據(jù)*********<

45、/p><p>  uchar read_ds1302()</p><p><b>  {</b></p><p>  uchar i,b=0x00;</p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><

46、p>  b |= _crol_((uchar)IO,i);</p><p><b>  SCLK=1;</b></p><p><b>  delay(1);</b></p><p><b>  SCLK=0;</b></p><p><b>  }</b

47、></p><p>  return b/16*10+b%16; //與BCD碼轉(zhuǎn)換</p><p><b>  }</b></p><p>  //*********從指定位置讀數(shù)據(jù)********</p><p>  uchar read_data(uchar addr)</p><p>

48、;<b>  {</b></p><p>  uchar dat;</p><p><b>  RST=0;</b></p><p><b>  SCLK=0;</b></p><p><b>  RST=1;</b></p><p&g

49、t;  write_ds1302(addr);</p><p>  dat=read_ds1302();</p><p><b>  SCLK=1;</b></p><p><b>  RST=0;</b></p><p>  return dat;</p><p><

50、b>  }</b></p><p>  //*********讀取當(dāng)前日期時(shí)間*********</p><p>  void read_date_time()</p><p><b>  {</b></p><p>  uchar i,addr=0x81;</p><p>  

51、for(i=0;i<7;i++)</p><p><b>  {</b></p><p>  date_time[i]=read_data(addr);</p><p><b>  addr+=2;</b></p><p><b>  }</b></p>&

52、lt;p><b>  }</b></p><p>  //----------LCD寫指令----------</p><p>  void lcd_write_com(uchar com)</p><p><b>  {</b></p><p>  LCDRS=0; //RS為0時(shí),寫指令,

53、RS為1時(shí),寫數(shù)據(jù)</p><p><b>  P0=com;</b></p><p><b>  delay(5);</b></p><p><b>  LCDEN=1;</b></p><p><b>  delay(5);</b></p>

54、<p><b>  LCDEN=0;</b></p><p><b>  }</b></p><p>  //----------LCD寫數(shù)據(jù)----------</p><p>  void lcd_write_data(uchar dat)</p><p><b>  {

55、</b></p><p><b>  LCDRS=1;</b></p><p><b>  P0=dat;</b></p><p><b>  delay(5);</b></p><p><b>  LCDEN=1;</b></p>

56、<p><b>  delay(5);</b></p><p><b>  LCDEN=0;</b></p><p><b>  }</b></p><p>  //-------LCD初始化-------</p><p>  void lcd_init()<

57、;/p><p><b>  {</b></p><p><b>  LCDEN=0;</b></p><p>  lcd_write_com(0x38); //LCD顯示模式設(shè)置</p><p>  lcd_write_com(0x0c); //LCD顯示開/關(guān)及光標(biāo)設(shè)置</p><

58、p>  lcd_write_com(0x06); //當(dāng)寫一個(gè)字符后地址指針加1,且光標(biāo)加1</p><p>  lcd_write_com(0x01); //顯示清屏</p><p><b>  }</b></p><p>  //---------設(shè)置液晶顯示位置-----------</p><p>  vo

59、id set_lcd_pos(uchar p)</p><p><b>  {</b></p><p>  lcd_write_com(p | 0x80);</p><p><b>  }</b></p><p>  //---------液晶顯示程序----------</p>&l

60、t;p>  void lcd_print(uchar p,uchar *s)</p><p><b>  {</b></p><p>  set_lcd_pos(p);</p><p>  for(num=0;num<16;num++)</p><p><b>  {</b></p

61、><p>  lcd_write_data(s[num]);</p><p>  delay(10);</p><p><b>  }</b></p><p><b>  }</b></p><p>  //----------日期時(shí)間轉(zhuǎn)換-----------</p>

62、;<p>  void format_datetime(uchar d,uchar *p)</p><p><b>  {</b></p><p>  p[0]=d/10+'0';</p><p>  p[1]=d%10+'0';</p><p><b>  }&l

63、t;/b></p><p>  //---------主程序----------</p><p>  void main()</p><p><b>  {</b></p><p><b>  uint k=0;</b></p><p><b>  LCDRW

64、=0;</b></p><p>  lcd_init();</p><p>  read_date_time();</p><p>  format_datetime(date_time[6],Date+8); //年月日</p><p>  format_datetime(date_time[4],Date+11);</p

65、><p>  format_datetime(date_time[3],Date+14);</p><p>  strcpy(Date1,week[date_time[5]]);</p><p>  format_datetime(date_time[2],Time+7); //時(shí)間轉(zhuǎn)換</p><p>  format_datetime(dat

66、e_time[1],Time+10);</p><p>  format_datetime(date_time[0],Time+13);</p><p>  lcd_print(0x00,Date);</p><p><b>  while(1)</b></p><p><b>  {</b><

67、;/p><p>  read_date_time();</p><p>  format_datetime(date_time[6],Date+8); //年月日</p><p>  format_datetime(date_time[4],Date+11);</p><p>  format_datetime(date_time[3],Date

68、+14);</p><p>  strcpy(Date1,week[date_time[5]]);</p><p>  format_datetime(date_time[2],Time+7); //時(shí)間轉(zhuǎn)換</p><p>  format_datetime(date_time[1],Time+10);</p><p>  format_d

69、atetime(date_time[0],Time+13);</p><p>  if( Q==0)</p><p><b>  {k=k+1;</b></p><p>  switch(k%3)</p><p><b>  {</b></p><p>  case 0:

70、lcd_print(0x00,Date); break;</p><p>  case 1: lcd_print(0x00,Time); break;</p><p>  case 2: lcd_print(0x00,Date1); break;</p><p><b>  }</b></p><p><b>

71、  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  本科生課程設(shè)計(jì)成績(jī)?cè)u(píng)定表</p><p>  指導(dǎo)教師簽字: </p><p>  年 月 日<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論