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

下載本文檔

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

文檔簡介

摘要本次的課程設(shè)計(jì)基于單片機(jī)技術(shù)原理,以美國ATMEL公司開發(fā)的AT89S52芯片作為核心控制器。通過硬件電路的制作及軟件程序的編制,設(shè)計(jì)制作了一種具有復(fù)位、校時(shí)功能的數(shù)字時(shí)鐘系統(tǒng)。利用1602液晶同時(shí)顯示提示信息和時(shí)間信息,用戶可通過系統(tǒng)上的按鍵對(duì)時(shí)間進(jìn)行調(diào)整,實(shí)現(xiàn)實(shí)時(shí)的時(shí)鐘顯示。本次設(shè)計(jì)的硬件由主控模塊、復(fù)位模塊以及顯示模塊構(gòu)成。復(fù)位模塊主要由電阻、電容、按鍵和發(fā)光二極管組成而顯示模塊則由1602字符液晶構(gòu)成,用于顯示提示信息和實(shí)時(shí)時(shí)鐘。關(guān)鍵詞:AT89S52;LCD1602;實(shí)時(shí)時(shí)鐘AbstractThecurriculumdesignisbasedontheprinciplesofmicrocomputertechnologyandhasadaptedtheAT89S52chipdevelopedbytheATMELcompanyofAmericanasthecorecontroller.Adigitalclocksystemwiththefunctionsofbothresetandtimeadjustmentisrealisedbythehardwarecircuitboardmakingandthesoftwareprogramming.LCD1602isusedtodisplaythepromptandtimeinformation.Theuserscanadjusttimethroughthebuttonsonthesystemwiththepurposeofthereal-timedisplaying.Theresetmoduleismadeupoftheresistance,capacitance,smallbuttonandlight-emittingdiodewhilethedisplaymoduleismainlyrealizedthroughtheLCD1602todisplaytherelativeinformationincludingpromptandreal-timeclockmessage.Keywords:AT89S52,LCD1602,Real-timeclock目錄引言 1一系統(tǒng)功能設(shè)計(jì) 21.1系統(tǒng)概述 21.2單元電路設(shè)計(jì)概述 2二系統(tǒng)方案設(shè)計(jì)及各模塊原理 32.1AT89S52核心模塊 32.1.1AT89S52單片機(jī)簡介 42.1.2AT89S52主要性能 52.2復(fù)位模塊 62.2.1復(fù)位電路組成 62.2.2復(fù)位電路分析 62.3顯示模塊 72.3.11602液晶簡介 72.3.21602引腳說明 7三系統(tǒng)程序設(shè)計(jì) 8四印制電路板的設(shè)計(jì)與制作 94.1印刷電路板的布線設(shè)計(jì) 94.2印刷電路板的制作 9五電路板的調(diào)試 9六總結(jié) 10謝辭 11參考文獻(xiàn) 12附錄 13引言單片機(jī)是一種采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU,隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等集成到一塊硅片上構(gòu)成一個(gè)小而完善計(jì)算機(jī)系統(tǒng)的集成電路芯片。目前單片機(jī)已經(jīng)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到某個(gè)領(lǐng)域沒有單片機(jī)的蹤跡了。自導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,到廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等這些都離不開單片機(jī),更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械以及各種智能機(jī)械了。單片機(jī),“麻雀雖小,五臟俱全”,在科技高速發(fā)展的今天,由單片機(jī)自由發(fā)揮的舞臺(tái)更加寬廣,現(xiàn)已明顯的朝著巨型化,單片化和網(wǎng)絡(luò)化方向發(fā)展。因此在大學(xué)階段打好基礎(chǔ),為今后真正學(xué)會(huì)并靈活運(yùn)用好單片機(jī)做好充分的準(zhǔn)備,是我們每一個(gè)電子信息類專業(yè)大學(xué)生義不容辭的責(zé)任。本著學(xué)以致用的原則,本次課程設(shè)計(jì)我從實(shí)際生活出發(fā),結(jié)合單片機(jī)原理和技術(shù)理論的學(xué)習(xí),設(shè)計(jì)制作了一個(gè)電子時(shí)鐘,通過液晶顯示時(shí)間,希望經(jīng)過簡單電子制作的程序,在實(shí)際動(dòng)手做板和軟件編程過程中,體會(huì)單片機(jī)強(qiáng)大功能的同時(shí)提高自己動(dòng)手的能力。一系統(tǒng)功能設(shè)計(jì)1.1系統(tǒng)概述根據(jù)所學(xué)過的有關(guān)電子電路和單片機(jī)方面的相關(guān)知識(shí),以AT89S52單片機(jī)芯片為核心控制器件,采用LCD1602字符液晶顯示時(shí)間。在單片機(jī)外圍設(shè)置四個(gè)按鍵,其中三個(gè)用于調(diào)整時(shí)間還有一個(gè)用于完成復(fù)位操作。整個(gè)系統(tǒng)功能設(shè)計(jì)利用單片機(jī)內(nèi)部16位定時(shí)/計(jì)數(shù)器實(shí)現(xiàn)定時(shí),每經(jīng)過1秒的時(shí)間,單片機(jī)會(huì)控制秒變量加1,加到60秒時(shí),分變量加1,分變量加到60時(shí),時(shí)變量加1,時(shí)變量加到24時(shí),返回00繼續(xù)計(jì)時(shí),從而實(shí)現(xiàn)了電子時(shí)鐘的基本走時(shí)功能。用AT89S52單片機(jī)芯片作為主控制器,使用其內(nèi)部16位定時(shí)器的定時(shí)功能和其可位尋址的IO端口控制各個(gè)輸入輸出設(shè)備,用晶振作為單片機(jī)時(shí)鐘脈沖的輸入電路。LCD1602字符液晶作為輸出設(shè)備,顯示所有的時(shí)鐘和用戶在編程時(shí)所設(shè)置的初始提示信息。按鍵作為輸入設(shè)備,用于輸入和修改時(shí)鐘信息。電路的基本工作原理是:晶振為單片機(jī)提供走時(shí)所需要的時(shí)鐘脈沖,使其能夠逐條地執(zhí)行內(nèi)存中的程序。16位定時(shí)器提供時(shí)間的累加,并將這種累加的效果通過字符型液晶1602顯示出來,從而最終實(shí)現(xiàn)了一個(gè)電子鐘系統(tǒng)的設(shè)計(jì)。1.2單元電路設(shè)計(jì)概述(1)復(fù)位電路電路實(shí)現(xiàn)上電自動(dòng)復(fù)位和人工復(fù)位,對(duì)于51單片機(jī)而言,只要復(fù)位電路接高電平超過兩個(gè)時(shí)鐘周期(12M晶振約2us),即可產(chǎn)生復(fù)位操作,用10pF電容和10K電阻構(gòu)成充放電電路,其時(shí)間常數(shù)超過2us,可實(shí)現(xiàn)復(fù)位,當(dāng)按鍵按下時(shí),RESET處產(chǎn)生2us的高電平,從而實(shí)現(xiàn)復(fù)位功能。(2)時(shí)鐘電路8051內(nèi)部已有振蕩電路,只需在XTAL1和XTAL2兩個(gè)管腳處接一個(gè)石英晶振即可。(3)液晶顯示電路用于顯示時(shí)間信息。二系統(tǒng)方案設(shè)計(jì)及各模塊原理本電子鐘系統(tǒng)直接采用AT89S52單片機(jī)芯片控制時(shí)鐘,外圍電路簡單,同時(shí)該芯片為用戶提供了良好的編程環(huán)境。外圍電路設(shè)計(jì)包括兩大部分,分別是液晶顯示部分和按鍵控制部分。在設(shè)計(jì)過程中采用了一個(gè)復(fù)位和三個(gè)對(duì)時(shí)間進(jìn)行調(diào)整的按鍵。復(fù)位按鍵用于對(duì)時(shí)鐘走時(shí)進(jìn)行復(fù)位,調(diào)時(shí)按鍵用于調(diào)整時(shí)間。設(shè)計(jì)的整個(gè)過程都采用數(shù)字電路,保證了系統(tǒng)工作的可靠性與穩(wěn)定性。單片機(jī)本身使得設(shè)置和調(diào)時(shí)操作更加準(zhǔn)確,綜上所述,整體的電路設(shè)計(jì)思路如下圖1-1所示。圖1-1系統(tǒng)整體原理圖2.1AT89S52核心模塊本次課程設(shè)計(jì)的核心控制器件是美國ATMEL公司生產(chǎn)的AT89S52單片機(jī)芯片,它是一種低功耗、高效能CMOS8位微控制器,具有在系統(tǒng)可編程Flash存儲(chǔ)器。使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得該芯片可以為眾多的嵌入式控制應(yīng)用系統(tǒng)提供了高靈活、超有效的解決方案。2.1.1AT89S52單片機(jī)簡介其引腳結(jié)構(gòu)如下圖2-1-1所示:圖2-1-1AT89S52引腳結(jié)構(gòu)圖引腳功能說明:VCC:電源GND:接地P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)其寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也作為低8位地址/P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入。P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX@DPTR)時(shí),P2口送出高八位地址。在使用8位地址(如MOVX@RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。P3口亦作為AT89S52P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(記時(shí)器0外部輸入)P3.5T1(記時(shí)器1外部輸入)P3.6(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7(外部數(shù)據(jù)存儲(chǔ)器讀選通)在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。RST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。PSEN:外部程序存儲(chǔ)器選通信號(hào),當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。EA/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.1.2AT89S52主要性能--與MCS-51單片機(jī)產(chǎn)品兼容--8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器--1000次擦寫周期--全靜態(tài)操作:0Hz~33Hz--三級(jí)加密程序存儲(chǔ)器--32個(gè)可編程I/O口線--三個(gè)16位定時(shí)器/計(jì)數(shù)器--八個(gè)中斷源--全雙工UART串行通道--低功耗空閑和掉電模式--掉電后中斷可喚醒--看門狗定時(shí)器--雙數(shù)據(jù)指針--掉電標(biāo)志位2.2復(fù)位模塊對(duì)單片機(jī)電路而言,復(fù)位操作主要是完成單片機(jī)內(nèi)電路的初始化,使其能夠從一種確定的狀態(tài)開始運(yùn)行。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。而開關(guān)復(fù)位則要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開關(guān)操作使得單片機(jī)復(fù)位。2.2.1復(fù)位電路組成本次電子鐘系統(tǒng)的電路設(shè)計(jì)中,所使用的復(fù)位電路如下圖2-2-1所示:圖2-2-1復(fù)位電路由上圖可知,本系統(tǒng)的復(fù)位電路主要由一個(gè)10K的電阻、一個(gè)10uF的電解電容、一個(gè)按鍵和一個(gè)發(fā)光二極管組成,完成上電和開關(guān)復(fù)位的功能。2.2.2復(fù)位電路分析由單片機(jī)原理的基本知識(shí)可知,當(dāng)單片機(jī)的復(fù)位引腳RST出現(xiàn)5ms以上的高電平時(shí),就完成了復(fù)位操作,但如果RST持續(xù)為高電平,單片機(jī)就會(huì)處于循環(huán)復(fù)位狀態(tài)而無法執(zhí)行程序,因此就要求單片機(jī)復(fù)位后能夠脫離復(fù)位狀態(tài)。本次課程設(shè)計(jì)所用的上電且開關(guān)復(fù)位電路即為常用的復(fù)位電路,上電后,由于電容充電,使得RST持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使得RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)了上電且開關(guān)復(fù)位的操作。2.3顯示模塊本設(shè)計(jì)中的顯示模塊主要由1602字符型液晶顯示模塊電路組成,主要用來顯示一行提示信息和時(shí)間狀況。2.3.11602液晶簡介1602液晶是工業(yè)字符型液晶,能夠同時(shí)顯示16*2即32個(gè)字符(16列2行),LCD字符液晶以及在時(shí)鐘系統(tǒng)鐘的顯示電路分別如下圖2-3-1、2-3-所示:圖2-3-1LCD字符液晶實(shí)物圖圖2-3-2復(fù)位電路2.3.21602引腳說明1602字符型LCD通常有14或16條引腳線,多出來的2條是背光電源線,VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,其各引腳功能如下:VCC:接電源;V0:液晶顯示器對(duì)比度調(diào)整,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,經(jīng)常在使用時(shí)配合一個(gè)10K的電位器,通過調(diào)整以期達(dá)到最佳的效果;RS:寄存器選擇,接高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇指令寄存器;R/W:讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作;E:使能端,下降沿有效;DB0-DB7:雙向數(shù)據(jù)線;BLA:背光電源正極;BLK:背光電源負(fù)極。三系統(tǒng)程序設(shè)計(jì)軟件設(shè)計(jì)在整個(gè)課程設(shè)計(jì)的過程中起著舉足輕重的作用,通過查閱各種文獻(xiàn)資料,聯(lián)系自己所學(xué)過的相關(guān)知識(shí),將目標(biāo)分解成一個(gè)個(gè)子程序模塊,完成了整個(gè)程序的編寫,在編程之前,構(gòu)思好流程圖能達(dá)到事半功倍的效果。整個(gè)程序的流程圖如下圖3-1-1所示:開始開始各部件初始化按鍵按下?需要相應(yīng)?松開鍵?按鍵處理對(duì)液晶進(jìn)行設(shè)置結(jié)束調(diào)整時(shí)間YN掃描計(jì)數(shù)加1YNNY圖3-1-1流程圖四印制電路板的設(shè)計(jì)與制作4.1印刷電路板的布線設(shè)計(jì)此過程是用AltiumDesignerWinter9.0來完成的。布線的一般流程如下:新建一個(gè)工程—畫電路原理圖—生成網(wǎng)絡(luò)表—畫PCB圖,進(jìn)行布線,生成.PCBDoc文件。布線注意事項(xiàng):在擺放元件時(shí)先按原理圖擺放,再細(xì)調(diào)位置。所用的為單面板,故應(yīng)在底層上布線。兩根線之間的距離不能太小,在線拐彎處不能用成直角,一般用45度角為宜。線寬設(shè)置在0.6—0.8毫米焊盤的半徑設(shè)為1.0毫米,便于焊接。4.2印刷電路板的制作印制電路板制作的一般過程為:把PCB打印出來后,先用砂紙除去銅板外層的氧化銅,在預(yù)熱熨斗后,把PCB放到板上,把線熨至銅板上。待銅板冷卻后再將PCB紙從銅板撕下,檢查銅板上有沒有斷線的地方,若有少量,則用油性筆把線給補(bǔ)上!然后,把熨好的銅板放到氯化鐵溶液中。腐蝕完后先進(jìn)行打孔,再把銅線上的墨去掉。最后,按照PCB圖安插元件,在此過程中要注意有正負(fù)極性之分的元器件,比如發(fā)光二極管、電解電容等,安裝完器件后進(jìn)行焊接。五電路板的調(diào)試調(diào)試是電路板制作過程中一個(gè)至關(guān)重要的環(huán)節(jié),通過調(diào)試可以及時(shí)發(fā)現(xiàn)存在的問題并進(jìn)行相應(yīng)的應(yīng)答措施,從而達(dá)到預(yù)定的效果。在本次課程設(shè)計(jì)中,調(diào)試工作可以分為硬件調(diào)試和軟件調(diào)試,硬件主要是檢查電路連線是否有錯(cuò)誤,以及在焊接過程中有無虛焊現(xiàn)象,而軟件則是通過將編寫好的程序經(jīng)過編譯后生成的后綴為.HEX的文件燒錄到單片機(jī)芯片中,根據(jù)現(xiàn)象適當(dāng)?shù)男薷某绦?。六總結(jié)經(jīng)過幾個(gè)星期緊張有序的查找資料與實(shí)際動(dòng)手制作電路板的過程,本次的課程設(shè)計(jì)至此終于將近尾聲。俗話說:“好的開始是成功的一半”,雖然經(jīng)過整個(gè)課設(shè),所掌握的東西并不是特別多,但卻實(shí)實(shí)在在經(jīng)歷了一個(gè)實(shí)物制作的整個(gè)流程,將日常生活中習(xí)以為常的小物體自己動(dòng)手做出來與買來的感覺是全然不同的。結(jié)果在某種意義上是重要的,但相對(duì)而言,過程才是做任何事情的關(guān)鍵,通過本次課設(shè),我覺得自己在某些方面的能力得到了一定程度的提高,主要包括以下幾個(gè)方面:一、單片機(jī)學(xué)習(xí)方面單片機(jī)是一門應(yīng)用與實(shí)踐性都很強(qiáng)的學(xué)科,很多人都在學(xué)習(xí)它。但是,學(xué)好并不是一件容易的事,對(duì)剛剛接觸單片機(jī)的我們來說,想盡快掌握并靈活運(yùn)用更是難上加難,因此,精通單片機(jī)對(duì)于很多人來說似乎都是一個(gè)遙不可及的神話。但是經(jīng)過本次的課程設(shè)計(jì),通過單片機(jī)實(shí)現(xiàn)一個(gè)電子鐘的功能,讓我對(duì)學(xué)好單片機(jī)看到了希望。課程設(shè)計(jì)雖然結(jié)束了,但是從中獲得的很多寶貴經(jīng)驗(yàn)在今后無論生活還是學(xué)習(xí)中都是值得借鑒的。二、學(xué)習(xí)態(tài)度上科學(xué)研究最重要的品質(zhì)是認(rèn)真嚴(yán)謹(jǐn)踏實(shí),對(duì)今后打算通過考研投身科研工作的我來說,在大學(xué)階段有意識(shí)的培養(yǎng)這種嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度就顯得至關(guān)重要。剛開始可以什么都不懂,但是一定要學(xué)會(huì)借助一切可以利用的資源去弄懂它,在當(dāng)今科技高速發(fā)展的時(shí)代,圖書館、網(wǎng)絡(luò)、報(bào)刊雜志都是我們身邊寶貴的資源,我們應(yīng)該學(xué)會(huì)好好的利用。當(dāng)遇到模棱兩可的問題時(shí),一定要想辦法去尋找可能的解決方案。三、為人處事上“眾人拾柴火焰高”的習(xí)語道出了團(tuán)結(jié)合作的重要性,在當(dāng)今社會(huì),團(tuán)隊(duì)精神具備與否對(duì)一個(gè)人成長的影響更加突出,當(dāng)遇到不懂的問題時(shí),通過主動(dòng)查閱資料或者尋求同學(xué)幫助都是不錯(cuò)的選擇,一個(gè)人的精力是有限的,只有學(xué)會(huì)團(tuán)隊(duì)合作,取長補(bǔ)短,才能夠在有限的時(shí)間內(nèi)達(dá)到最高的做事效率,取得最佳的結(jié)果。除了上述幾點(diǎn)之外,最后,我覺得無論做什么事,只要你有足夠的決心與挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。我希望在本次課程設(shè)計(jì)的基礎(chǔ)上,在大學(xué)生活最后的一年多時(shí)間里,多動(dòng)手實(shí)踐,上機(jī)編程、仿真與調(diào)試,爭取在今后的某個(gè)階段,能夠真正學(xué)好單片機(jī),使得這次的課程設(shè)計(jì)成為我單片機(jī)學(xué)習(xí)道路上的啟蒙課程。

謝辭經(jīng)過努力,至此,終于完成了本次的課程設(shè)計(jì)!在此首先要感謝指導(dǎo)老師給了我們一個(gè)自由選題的空間,從而讓我有了一個(gè)驗(yàn)證心中想法的機(jī)會(huì)。我覺得一個(gè)人正是在一次次小小實(shí)踐的過程中逐步成長起來的。因此,我想在此向韋老師致以衷心的感謝!另外本次的課程設(shè)計(jì)也得到了本年級(jí)同學(xué)覃祖樞、梁芝銘以及學(xué)長吳子勇等的熱心幫助與指導(dǎo),他們?cè)诮o予我很大幫助和啟示的同時(shí),也讓我對(duì)所學(xué)的電路以及單片機(jī)C語言編程知識(shí)有了更深層次的認(rèn)識(shí)與理解。最后,還要將感謝致以二院科協(xié),感謝它給我們提供了各種做板過程中所需要的一切設(shè)備和測試儀器!參考文獻(xiàn)[1]ISBN7-81082-496-1/TP·181·戴勝華蔣大明等編著·《單片機(jī)原理與運(yùn)用》·清華大學(xué)出版社·2006年6月[2]ISBN978-7-115-17326-3/TP·張義和王敏男等編著·《例說51單片機(jī)(C語言版)》·人民郵電出版社·2009年7月[3]ISBN978-7-81124-448-9·劉同法編著·《單片機(jī)C語言編程基礎(chǔ)與實(shí)踐》·北京航空航天大學(xué)出版社·2009年2月附錄(1)電路原理圖 (2)PCB圖(3)完整程序代碼/*******************************************************************//*基于51單片機(jī)的電子鐘設(shè)計(jì)程序*//*功能:在1602字符液晶上顯示時(shí)間*//*作者:李燕*//*編寫時(shí)間:2011年12月*//*******************************************************************/#include<reg52.h>//包含單片機(jī)寄存器的頭文件sbitRS=P2^5;//寄存器選擇位,將RS位定義為P2.5引腳sbitRW=P2^6;//讀寫選擇位,將RW位定義為P2.6引腳sbitE=P2^7;//使能信號(hào)位,將E位定義為P2.7引腳sbitS1=P2^2;sbitS2=P2^1;sbitS3=P2^0;unsignedcharcodedigit[]={"0123456789"};//定義字符數(shù)組顯示數(shù)字unsignedcharcodestring[]={"BeijingTime"};//定義字符數(shù)組顯示提示信息unsignedcharcount;//定義變量,統(tǒng)計(jì)中斷累計(jì)次數(shù)unsignedchars,m,h;//定義變量儲(chǔ)存秒、分鐘和小時(shí)/*****************************************************/函數(shù)功能:延時(shí)若干毫秒入口參數(shù):n******************************************************/voiddelay(unsignedcharn){unsignedchari,j;for(i=0;i<100;i++)for(j=0;j<n;j++); }/*****************************************************函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊入口參數(shù):dictate***************************************************/voidWriteInstruction(unsignedchardictate){RS=0;//根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫入指令RW=0;E=0;//E置低電平,讓其從0到1發(fā)生正跳變,所以應(yīng)先置"0"P0=dictate;//將數(shù)據(jù)送入P0口,即寫入指令或地址E=1;//E置高電平E=0;//當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令}/**************************************************函數(shù)功能:指定字符顯示的實(shí)際地址入口參數(shù):x***************************************************/voidWriteAddress(unsignedcharx){WriteInstruction(x|0x80);//顯示位置的確定方法規(guī)定為"80H+地址碼x"}/*****************************************************函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊入口參數(shù):y(為字符常量)***************************************************/voidWriteData(unsignedchary){RS=1;//RS為高電平,RW為低電平時(shí),可以寫入數(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由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令}/*****************************************************函數(shù)功能:對(duì)LCD的顯示模式進(jìn)行初始化設(shè)置***************************************************/voidLcdInitiate(void){delay(15);//延時(shí)一段時(shí)間,首次寫指令時(shí)應(yīng)給LCD一段較長的反應(yīng)時(shí)間WriteInstruction(0x38);//顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口delay(5);//延時(shí)一段時(shí)間,給硬件一點(diǎn)反應(yīng)時(shí)間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ù)功能:顯示小時(shí)***************************************************************************/{unsignedchari,j;i=h/10;//取整運(yùn)算,求得十位數(shù)字j=h%10;//取余運(yùn)算,求得各位數(shù)字WriteAddress(0x44);//寫顯示地址,將十位數(shù)字顯示在第2行第5列WriteData(digit[i]);//將十位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將個(gè)位數(shù)字的字符常量寫入LCD}/***************************************************************************函數(shù)功能:顯示分鐘***************************************************************************/voidDisplayMinute(){unsignedchari,j;i=m/10;//取整運(yùn)算,求得十位數(shù)字j=m%10;//取余運(yùn)算,求得各位數(shù)字WriteAddress(0x47);//寫顯示地址,將十位數(shù)字顯示在第2行第8列WriteData(digit[i]);//將十位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將個(gè)位數(shù)字的字符常量寫入LCD}/***************************************************************************函數(shù)功能:顯示秒鐘****************************************************************************/voidDisplaySecond(){unsignedchari,j;i=s/10;//取整運(yùn)算,求得十位數(shù)字j=s%10;//取余運(yùn)算,求得各位數(shù)字WriteAddress(0x4a);//寫顯示地址,將十位數(shù)字顯示在第2行第11列WriteData(digit[i]);//將十位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將個(gè)位數(shù)字的字符常量寫入LCD}/***********************************************************************主函數(shù)***********************************************************************/voidmain(void){unsignedchari;LcdInitiate();//調(diào)用LCD初始化函數(shù)TMOD=0x01;//使用定時(shí)器T0的模式1TH0=(65536-46083)/256;//定時(shí)器T0的高8位設(shè)置初值TL0=(65536-46083)%256;//定時(shí)器T0的低8位設(shè)置初值EA=1;//開總中斷ET0=1;//定時(shí)器T0中斷允許TR0=1;//啟動(dòng)定時(shí)器T0count=0;//中斷次數(shù)初始化為0s=0;//秒初始化為0m=0;//分鐘初始化為0h=0;//小時(shí)初始化為0WriteAddress(0x03);//寫地址,從第1行第4列開始顯示i=0;//從字符數(shù)組的第1個(gè)元素開始顯示while(string[i]!='\0')//只要沒有顯示到字符串的結(jié)束標(biāo)志'\0',就繼續(xù){WriteData(string[i]);//將第i個(gè)字符數(shù)組元素寫入LCDi++;//指向下一個(gè)數(shù)組元素}WriteAddress(0x46);//寫地址,將第二個(gè)分號(hào)顯示在第2行第7列WriteData(':');//將分號(hào)的字符常量寫入LCDWriteAddress(0x49);//寫地址,將第二個(gè)分號(hào)顯示在第2行第10列WriteData(':');//將分號(hào)的字符常量寫入LCDwhile(1)//無限循環(huán){

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論