基于51單片機(jī)的電子鐘設(shè)計匯總_第1頁
基于51單片機(jī)的電子鐘設(shè)計匯總_第2頁
基于51單片機(jī)的電子鐘設(shè)計匯總_第3頁
基于51單片機(jī)的電子鐘設(shè)計匯總_第4頁
基于51單片機(jī)的電子鐘設(shè)計匯總_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

桂林電子科技大學(xué)課程設(shè)計(論文)報告用紙 摘 要本次的課程設(shè)計基于單片機(jī)技術(shù)原理,以美國ATMEL公司開發(fā)的AT89S52芯片作為核心控制器。通過硬件電路的制作及軟件程序的編制,設(shè)計制作了一種具有復(fù)位、校時功能的數(shù)字時鐘系統(tǒng)。利用1602液晶同時顯示提示信息和時間信息,用戶可通過系統(tǒng)上的按鍵對時間進(jìn)行調(diào)整,實現(xiàn)實時的時鐘顯示。本次設(shè)計的硬件由主控模塊、復(fù)位模塊以及顯示模塊構(gòu)成。復(fù)位模塊主要由電阻、電容、按鍵和發(fā)光二極管組成而顯示模塊則由1602字符液晶構(gòu)成,用于顯示提示信息和實時時鐘。關(guān)鍵詞: AT89S52;LCD 1602; 實時時鐘 AbstractThe curriculum design is based on the principles of microcomputer technology and has adapted the AT89S52 chip developed by the ATMEL company of American as the core controller. A digital clock system with the functions of both reset and time adjustment is realised by the hardware circuit board making and the software programming. LCD 1602 is used to display the prompt and time information. The users can adjust time through the buttons on the system with the purpose of the real-time displaying. The reset module is made up of the resistance, capacitance, small button and light-emitting diode while the display module is mainly realized through the LCD 1602 to display the relative information including prompt and real-time clock message.Key words: AT89S52, LCD 1602, Real-time clock目 錄引言1一 系統(tǒng)功能設(shè)計21.1 系統(tǒng)概述21.2 單元電路設(shè)計概述2二 系統(tǒng)方案設(shè)計及各模塊原理32.1 AT89S52核心模塊32.1.1 AT89S52單片機(jī)簡介42.1.2 AT89S52主要性能52.2 復(fù)位模塊62.2.1 復(fù)位電路組成62.2.2 復(fù)位電路分析62.3 顯示模塊72.3.1 1602液晶簡介72.3.2 1602引腳說明7三 系統(tǒng)程序設(shè)計8四 印制電路板的設(shè)計與制作94.1 印刷電路板的布線設(shè)計94.2 印刷電路板的制作9五 電路板的調(diào)試9六 總結(jié)10謝 辭11參考文獻(xiàn)12附 錄13 桂林電子科技大學(xué)課程設(shè)計(論文)報告用紙 第 21 頁 共 19 頁引言單片機(jī)是一種采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU,隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等集成到一塊硅片上構(gòu)成一個小而完善計算機(jī)系統(tǒng)的集成電路芯片。目前單片機(jī)已經(jīng)滲透到我們生活的各個領(lǐng)域,幾乎很難找到某個領(lǐng)域沒有單片機(jī)的蹤跡了。自導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,到廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等這些都離不開單片機(jī),更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械以及各種智能機(jī)械了。單片機(jī),“麻雀雖小,五臟俱全”,在科技高速發(fā)展的今天,由單片機(jī)自由發(fā)揮的舞臺更加寬廣,現(xiàn)已明顯的朝著巨型化,單片化和網(wǎng)絡(luò)化方向發(fā)展。因此在大學(xué)階段打好基礎(chǔ),為今后真正學(xué)會并靈活運(yùn)用好單片機(jī)做好充分的準(zhǔn)備,是我們每一個電子信息類專業(yè)大學(xué)生義不容辭的責(zé)任。本著學(xué)以致用的原則,本次課程設(shè)計我從實際生活出發(fā),結(jié)合單片機(jī)原理和技術(shù)理論的學(xué)習(xí),設(shè)計制作了一個電子時鐘,通過液晶顯示時間,希望經(jīng)過簡單電子制作的程序,在實際動手做板和軟件編程過程中,體會單片機(jī)強(qiáng)大功能的同時提高自己動手的能力。一 系統(tǒng)功能設(shè)計1.1 系統(tǒng)概述根據(jù)所學(xué)過的有關(guān)電子電路和單片機(jī)方面的相關(guān)知識,以AT89S52單片機(jī)芯片為核心控制器件,采用LCD1602 字符液晶顯示時間。在單片機(jī)外圍設(shè)置四個按鍵,其中三個用于調(diào)整時間還有一個用于完成復(fù)位操作。整個系統(tǒng)功能設(shè)計利用單片機(jī)內(nèi)部16位定時/計數(shù)器實現(xiàn)定時,每經(jīng)過1秒的時間,單片機(jī)會控制秒變量加1,加到60秒時,分變量加1,分變量加到60時,時變量加1,時變量加到24時,返回00繼續(xù)計時,從而實現(xiàn)了電子時鐘的基本走時功能。用AT89S52單片機(jī)芯片作為主控制器,使用其內(nèi)部16位定時器的定時功能和其可位尋址的IO端口控制各個輸入輸出設(shè)備,用晶振作為單片機(jī)時鐘脈沖的輸入電路。LCD1602字符液晶作為輸出設(shè)備,顯示所有的時鐘和用戶在編程時所設(shè)置的初始提示信息。按鍵作為輸入設(shè)備,用于輸入和修改時鐘信息。 電路的基本工作原理是:晶振為單片機(jī)提供走時所需要的時鐘脈沖,使其能夠逐條地執(zhí)行內(nèi)存中的程序。16位定時器提供時間的累加,并將這種累加的效果通過字符型液晶1602顯示出來,從而最終實現(xiàn)了一個電子鐘系統(tǒng)的設(shè)計。1.2 單元電路設(shè)計概述(1) 復(fù)位電路電路實現(xiàn)上電自動復(fù)位和人工復(fù)位,對于51單片機(jī)而言,只要復(fù)位電路接高電平超過兩個時鐘周期(12M晶振約2us),即可產(chǎn)生復(fù)位操作,用10pF電容和10K電阻構(gòu)成充放電電路,其時間常數(shù)超過2us,可實現(xiàn)復(fù)位,當(dāng)按鍵按下時,RESET處產(chǎn)生2us的高電平,從而實現(xiàn)復(fù)位功能。(2) 時鐘電路8051內(nèi)部已有振蕩電路,只需在XTAL1和XTAL2兩個管腳處接一個石英晶振即可。(3)液晶顯示電路 用于顯示時間信息。二 系統(tǒng)方案設(shè)計及各模塊原理本電子鐘系統(tǒng)直接采用AT89S52單片機(jī)芯片控制時鐘,外圍電路簡單,同時該芯片為用戶提供了良好的編程環(huán)境。外圍電路設(shè)計包括兩大部分,分別是液晶顯示部分和按鍵控制部分。在設(shè)計過程中采用了一個復(fù)位和三個對時間進(jìn)行調(diào)整的按鍵。復(fù)位按鍵用于對時鐘走時進(jìn)行復(fù)位,調(diào)時按鍵用于調(diào)整時間。設(shè)計的整個過程都采用數(shù)字電路,保證了系統(tǒng)工作的可靠性與穩(wěn)定性。單片機(jī)本身使得設(shè)置和調(diào)時操作更加準(zhǔn)確,綜上所述,整體的電路設(shè)計思路如下圖1-1所示。圖1-1 系統(tǒng)整體原理圖2.1 AT89S52核心模塊本次課程設(shè)計的核心控制器件是美國ATMEL公司生產(chǎn)的AT89S52單片機(jī)芯片,它是一種低功耗、高效能CMOS 8位微控制器,具有在系統(tǒng)可編程Flash存儲器。使用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得該芯片可以為眾多的嵌入式控制應(yīng)用系統(tǒng)提供了高靈活、超有效的解決方案。2.1.1 AT89S52單片機(jī)簡介其引腳結(jié)構(gòu)如下圖2-1-1所示: 圖2-1-1 AT89S52引腳結(jié)構(gòu)圖引腳功能說明:VCC : 電源GND : 接地P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對其寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也作為低8位地址/數(shù)據(jù)復(fù)用。P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入。P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR)時,P2 口送出高八位地址。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。P3口亦作為AT89S52特殊功能使用,如下所示。P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 (外部中斷0)P3.3 (外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 (外部數(shù)據(jù)存儲器寫選通)P3.7 (外部數(shù)據(jù)存儲器讀選通)在flash編程和校驗時,P3口也接收一些控制信號。RST: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機(jī)器周期高電平將使單片機(jī)復(fù)位。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。PSEN:外部程序存儲器選通信號,當(dāng) AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.1.2 AT89S52主要性能-與MCS-51單片機(jī)產(chǎn)品兼容-8K字節(jié)在系統(tǒng)可編程Flash存儲器-1000次擦寫周期-全靜態(tài)操作:0Hz33Hz-三級加密程序存儲器-32個可編程I/O口線-三個16位定時器/計數(shù)器-八個中斷源-全雙工UART串行通道-低功耗空閑和掉電模式-掉電后中斷可喚醒-看門狗定時器-雙數(shù)據(jù)指針-掉電標(biāo)志位2.2 復(fù)位模塊對單片機(jī)電路而言,復(fù)位操作主要是完成單片機(jī)內(nèi)電路的初始化,使其能夠從一種確定的狀態(tài)開始運(yùn)行。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。而開關(guān)復(fù)位則要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開關(guān)操作使得單片機(jī)復(fù)位。2.2.1 復(fù)位電路組成本次電子鐘系統(tǒng)的電路設(shè)計中,所使用的復(fù)位電路如下圖2-2-1所示: 圖2-2-1 復(fù)位電路由上圖可知,本系統(tǒng)的復(fù)位電路主要由一個10K的電阻、一個10uF的電解電容、一個按鍵和一個發(fā)光二極管組成,完成上電和開關(guān)復(fù)位的功能。2.2.2 復(fù)位電路分析由單片機(jī)原理的基本知識可知,當(dāng)單片機(jī)的復(fù)位引腳RST出現(xiàn)5ms以上的高電平時,就完成了復(fù)位操作,但如果RST持續(xù)為高電平,單片機(jī)就會處于循環(huán)復(fù)位狀態(tài)而無法執(zhí)行程序,因此就要求單片機(jī)復(fù)位后能夠脫離復(fù)位狀態(tài)。本次課程設(shè)計所用的上電且開關(guān)復(fù)位電路即為常用的復(fù)位電路,上電后,由于電容充電,使得RST持續(xù)一段高電平時間。當(dāng)單片機(jī)已在運(yùn)行之中時,按下復(fù)位鍵也能使得RST持續(xù)一段時間的高電平,從而實現(xiàn)了上電且開關(guān)復(fù)位的操作。2.3 顯示模塊本設(shè)計中的顯示模塊主要由1602字符型液晶顯示模塊電路組成,主要用來顯示一行提示信息和時間狀況。2.3.1 1602液晶簡介1602液晶是工業(yè)字符型液晶,能夠同時顯示16*2即32個字符(16列2行),LCD字符液晶以及在時鐘系統(tǒng)鐘的顯示電路分別如下圖2-3-1、2-3-所示:圖2-3-1 LCD字符液晶實物圖圖2-3-2 復(fù)位電路2.3.2 1602引腳說明1602字符型LCD通常有14或16條引腳線,多出來的2條是背光電源線,VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,其各引腳功能如下:VCC:接電源;V0: 液晶顯示器對比度調(diào)整,接正電源時對比度最弱,接地時對比度最高,經(jīng)常在使用時配合一個10K的電位器,通過調(diào)整以期達(dá)到最佳的效果;RS: 寄存器選擇,接高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器;R/W: 讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作;E: 使能端,下降沿有效;DB0-DB7: 雙向數(shù)據(jù)線;BLA: 背光電源正極;BLK: 背光電源負(fù)極。三 系統(tǒng)程序設(shè)計軟件設(shè)計在整個課程設(shè)計的過程中起著舉足輕重的作用,通過查閱各種文獻(xiàn)資料,聯(lián)系自己所學(xué)過的相關(guān)知識,將目標(biāo)分解成一個個子程序模塊,完成了整個程序的編寫,在編程之前,構(gòu)思好流程圖能達(dá)到事半功倍的效果。整個程序的流程圖如下圖3-1-1所示:開始各部件初始化按鍵按下?需要相應(yīng)?松開鍵?按鍵處理對液晶進(jìn)行設(shè)置結(jié)束調(diào)整時間YN掃描計數(shù)加1YNNY圖3-1-1 流程圖四 印制電路板的設(shè)計與制作4.1 印刷電路板的布線設(shè)計此過程是用Altium Designer Winter 9.0來完成的。布線的一般流程如下:新建一個工程畫電路原理圖生成網(wǎng)絡(luò)表畫PCB圖,進(jìn)行布線,生成.PCBDoc文件。布線注意事項:(1) 在擺放元件時先按原理圖擺放,再細(xì)調(diào)位置。(2) 所用的為單面板,故應(yīng)在底層上布線。(3) 兩根線之間的距離不能太小,在線拐彎處不能用成直角,一般用45度角為宜。(4) 線寬設(shè)置在0.60.8毫米,在一些拐角的地方還可以適當(dāng)?shù)匮a(bǔ)線,以防止腐蝕的時候?qū)⒕€腐蝕掉或是因為線太細(xì)而對電路造成不良影響。(5) 焊盤的半徑設(shè)為1.0毫米,便于焊接。4.2 印刷電路板的制作印制電路板制作的一般過程為:把PCB打印出來后,先用砂紙除去銅板外層的氧化銅,在預(yù)熱熨斗后,把PCB放到板上,把線熨至銅板上。待銅板冷卻后再將PCB紙從銅板撕下,檢查銅板上有沒有斷線的地方,若有少量,則用油性筆把線給補(bǔ)上!然后,把熨好的銅板放到氯化鐵溶液中。腐蝕完后先進(jìn)行打孔,再把銅線上的墨去掉。最后,按照PCB圖安插元件,在此過程中要注意有正負(fù)極性之分的元器件,比如發(fā)光二極管、電解電容等,安裝完器件后進(jìn)行焊接。五 電路板的調(diào)試調(diào)試是電路板制作過程中一個至關(guān)重要的環(huán)節(jié),通過調(diào)試可以及時發(fā)現(xiàn)存在的問題并進(jìn)行相應(yīng)的應(yīng)答措施,從而達(dá)到預(yù)定的效果。在本次課程設(shè)計中,調(diào)試工作可以分為硬件調(diào)試和軟件調(diào)試,硬件主要是檢查電路連線是否有錯誤,以及在焊接過程中有無虛焊現(xiàn)象,而軟件則是通過將編寫好的程序經(jīng)過編譯后生成的后綴為.HEX的文件燒錄到單片機(jī)芯片中,根據(jù)現(xiàn)象適當(dāng)?shù)男薷某绦?。?總結(jié)經(jīng)過幾個星期緊張有序的查找資料與實際動手制作電路板的過程,本次的課程設(shè)計至此終于將近尾聲。俗話說:“好的開始是成功的一半”,雖然經(jīng)過整個課設(shè),所掌握的東西并不是特別多,但卻實實在在經(jīng)歷了一個實物制作的整個流程,將日常生活中習(xí)以為常的小物體自己動手做出來與買來的感覺是全然不同的。結(jié)果在某種意義上是重要的,但相對而言,過程才是做任何事情的關(guān)鍵,通過本次課設(shè),我覺得自己在某些方面的能力得到了一定程度的提高,主要包括以下幾個方面:一 、單片機(jī)學(xué)習(xí)方面 單片機(jī)是一門應(yīng)用與實踐性都很強(qiáng)的學(xué)科,很多人都在學(xué)習(xí)它。但是,學(xué)好并不是一件容易的事,對剛剛接觸單片機(jī)的我們來說,想盡快掌握并靈活運(yùn)用更是難上加難,因此,精通單片機(jī)對于很多人來說似乎都是一個遙不可及的神話。但是經(jīng)過本次的課程設(shè)計,通過單片機(jī)實現(xiàn)一個電子鐘的功能,讓我對學(xué)好單片機(jī)看到了希望。課程設(shè)計雖然結(jié)束了,但是從中獲得的很多寶貴經(jīng)驗在今后無論生活還是學(xué)習(xí)中都是值得借鑒的。二 、學(xué)習(xí)態(tài)度上科學(xué)研究最重要的品質(zhì)是認(rèn)真嚴(yán)謹(jǐn)踏實,對今后打算通過考研投身科研工作的我來說,在大學(xué)階段有意識的培養(yǎng)這種嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度就顯得至關(guān)重要。剛開始可以什么都不懂,但是一定要學(xué)會借助一切可以利用的資源去弄懂它,在當(dāng)今科技高速發(fā)展的時代,圖書館、網(wǎng)絡(luò)、報刊雜志都是我們身邊寶貴的資源,我們應(yīng)該學(xué)會好好的利用。當(dāng)遇到模棱兩可的問題時,一定要想辦法去尋找可能的解決方案。三 、為人處事上 “眾人拾柴火焰高”的習(xí)語道出了團(tuán)結(jié)合作的重要性,在當(dāng)今社會,團(tuán)隊精神具備與否對一個人成長的影響更加突出,當(dāng)遇到不懂的問題時,通過主動查閱資料或者尋求同學(xué)幫助都是不錯的選擇,一個人的精力是有限的,只有學(xué)會團(tuán)隊合作,取長補(bǔ)短,才能夠在有限的時間內(nèi)達(dá)到最高的做事效率,取得最佳的結(jié)果。 除了上述幾點之外,最后,我覺得無論做什么事,只要你有足夠的決心與挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。我希望在本次課程設(shè)計的基礎(chǔ)上,在大學(xué)生活最后的一年多時間里,多動手實踐,上機(jī)編程、仿真與調(diào)試,爭取在今后的某個階段,能夠真正學(xué)好單片機(jī),使得這次的課程設(shè)計成為我單片機(jī)學(xué)習(xí)道路上的啟蒙課程。謝 辭經(jīng)過努力,至此,終于完成了本次的課程設(shè)計!在此首先要感謝指導(dǎo)老師給了我們一個自由選題的空間,從而讓我有了一個驗證心中想法的機(jī)會。我覺得一個人正是在一次次小小實踐的過程中逐步成長起來的。因此,我想在此向韋老師致以衷心的感謝!另外本次的課程設(shè)計也得到了本年級同學(xué)覃祖樞、梁芝銘以及學(xué)長吳子勇等的熱心幫助與指導(dǎo),他們在給予我很大幫助和啟示的同時,也讓我對所學(xué)的電路以及單片機(jī)C語言編程知識有了更深層次的認(rèn)識與理解。最后,還要將感謝致以二院科協(xié),感謝它給我們提供了各種做板過程中所需要的一切設(shè)備和測試儀器!參考文獻(xiàn)1 ISBN 7-81082-496-1/TP181戴勝華 蔣大明等編著單片機(jī)原理與運(yùn)用清華大學(xué)出版社2006年6月2 ISBN 978-7-115-17326-3/TP張義和 王敏男等編著例說51單片機(jī)(C語言版)人民郵電出版社2009年7月3 ISBN 978-7-81124-448-9劉同法編著單片機(jī)C語言編程基礎(chǔ)與實踐北京航空航天大學(xué)出版社2009年2月附 錄(1)電路原理圖(2)PCB圖(3)完整程序代碼/*/* 基于51單片機(jī)的電子鐘設(shè)計程序 */* 功能:在1602字符液晶上顯示時間 */* 作者:李燕 */* 編寫時間:2011年12月 */*/#include /包含單片機(jī)寄存器的頭文件sbit RS=P25; /寄存器選擇位,將RS位定義為P2.5引腳sbit RW=P26; /讀寫選擇位,將RW位定義為P2.6引腳sbit E=P27; /使能信號位,將E位定義為P2.7引腳sbit S1=P22;sbit S2=P21;sbit S3=P20;unsigned char code digit =; /定義字符數(shù)組顯示數(shù)字unsigned char code string =Beijing Time; /定義字符數(shù)組顯示提示信息unsigned char count; /定義變量,統(tǒng)計中斷累計次數(shù)unsigned char s,m,h; /定義變量儲存秒、分鐘和小時/*/函數(shù)功能:延時若干毫秒入口參數(shù):n*/void delay (unsigned char n) unsigned char i, j; for(i=0;i100;i+) for(j=0;jn;j+); /*函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊入口參數(shù):dictate*/void WriteInstruction (unsigned char dictate) RS=0; /根據(jù)規(guī)定,RS和R/W同時為低電平時,可以寫入指令 RW=0; E=0; /E置低電平,讓其從0到1發(fā)生正跳變,所以應(yīng)先置0 P0=dictate; /將數(shù)據(jù)送入P0口,即寫入指令或地址 E=1; /E置高電平 E=0; /當(dāng)E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /*函數(shù)功能:指定字符顯示的實際地址入口參數(shù):x*/ void WriteAddress(unsigned char x) WriteInstruction(x|0x80); /顯示位置的確定方法規(guī)定為80H+地址碼x /*函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊入口參數(shù):y(為字符常量)*/ void WriteData(unsigned char y) RS=1; /RS為高電平,RW為低電平時,可以寫入數(shù)據(jù) RW=0; E=0; /E置低電平讓其從0到1發(fā)生正跳變,所以應(yīng)先置0 P0=y; /將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊 E=1; /E置高電平 E=0; /當(dāng)E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /*函數(shù)功能:對LCD的顯示模式進(jìn)行初始化設(shè)置*/void LcdInitiate(void) delay(15); /延時一段時間,首次寫指令時應(yīng)給LCD一段較長的反應(yīng)時間 WriteInstruction(0x38); /顯示模式設(shè)置:162顯示,57點陣,8位數(shù)據(jù)接口 delay(5); /延時一段時間,給硬件一點反應(yīng)時間 WriteInstruction(0x38); delay(5); WriteInstruction(0x38); /連續(xù)三次,確保初始化成功 delay(5); WriteInstruction(0x0c); /顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍 delay(5); WriteInstruction(0x06); /顯示模式設(shè)置:光標(biāo)右移,字符不移 delay(5); WriteInstruction(0x01); /清屏幕指令,將以前的顯示內(nèi)容清除 delay(5); /* 函數(shù)功能:顯示小時 */ unsigned char i,j; i=h/10; /取整運(yùn)算,求得十位數(shù)字 j=h%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x44); /寫顯示地址,將十位數(shù)字顯示在第2行第5列 WriteData(digiti); /將十位數(shù)字的字符常量寫入LCD WriteData(digitj); /將個位數(shù)字的字符常量寫入LCD /*函數(shù)功能:顯示分鐘*/void DisplayMinute() unsigned char i,j; i=m/10; /取整運(yùn)算,求得十位數(shù)字 j=m%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x47); /寫顯示地址,將十位數(shù)字顯示在第2行第8列 WriteData(digiti); /將十位數(shù)字的字符常量寫入LCD WriteData(digitj); /將個位數(shù)字的字符常量寫入LCD /*函數(shù)功能:顯示秒鐘*/void DisplaySecond() unsigned char i,j; i=s/10; /取整運(yùn)算,求得十位數(shù)字 j=s%10; /取余運(yùn)算,求得各位數(shù)字 WriteAddress(0x4a); /寫顯示地址,將十位數(shù)字顯示在第2行第11列 WriteData(digiti); /將十位數(shù)字的字符常量寫入LCD WriteData(digitj); /將個位數(shù)字的字符常量寫入LCD /*主函數(shù)*/ void main(void) unsigned char i; LcdInitiate(); /調(diào)用LCD初始化函數(shù) TMOD=0x01; /使用定時器T0的模式1 TH0=(65536-46083)/256; /定時器T0的高8位設(shè)置初值 TL0=(65536-46083)%256; /

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論