畢業(yè)設(shè)計(論文)基于51單片機的電子時鐘_第1頁
畢業(yè)設(shè)計(論文)基于51單片機的電子時鐘_第2頁
畢業(yè)設(shè)計(論文)基于51單片機的電子時鐘_第3頁
畢業(yè)設(shè)計(論文)基于51單片機的電子時鐘_第4頁
畢業(yè)設(shè)計(論文)基于51單片機的電子時鐘_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 基于51單片機的電子時鐘 學(xué) 院: 電子與信息工程學(xué)院 學(xué)生姓名: 專業(yè)班級: 應(yīng)用電子(2)班 學(xué) 號: 2009108249 指導(dǎo)教師: 2012 年 5月30 日摘 要2引言3一、方案設(shè)計及方案論證51.時鐘溫度的總體設(shè)計思路52.時鐘溫度系統(tǒng)方案論證52.1時鐘系統(tǒng)方案選擇52.2單片機的選擇52.3 顯示系統(tǒng)的方案比較52.4 報警系統(tǒng)的方案比較62.5 溫度系統(tǒng)方案選擇62.6 鍵盤控制方案選擇63. 時鐘溫度系統(tǒng)總體設(shè)計7二硬件設(shè)計部分71機最小系統(tǒng)電路設(shè)計71.1 單片機芯片選擇71.2單片機管腳說明81.3 單片機最小系統(tǒng)102.時鐘系統(tǒng)電路設(shè)計122.1 時鐘芯片選擇12

2、2.2 ds1302管腳及寄存器說明132.3 ds1302鐘電路143 溫度系統(tǒng)電路153.1 溫度芯片的選擇153.2 ds18b20內(nèi)部結(jié)構(gòu)描述153.3 ds18b20溫度系統(tǒng)電路164 鍵盤控制系統(tǒng)設(shè)計17報警電路系統(tǒng)設(shè)計186液晶顯示系統(tǒng)設(shè)計196.1 12864液晶顯示電路19三、軟硬件調(diào)試部分203.1軟件調(diào)試203.2硬件調(diào)試20四.總結(jié)與體會22感謝23參考文獻(xiàn)24摘 要lcd時鐘溫度系統(tǒng)是由中央控制器、溫度檢測器、時鐘系統(tǒng)、報警系統(tǒng),顯示器及鍵盤部分組成??刂破鞑捎脝纹瑱Cat89c52,溫度檢測部分采用ds18b20溫度傳感器,時鐘系統(tǒng)用時鐘芯片ds1302,用lcd液晶

3、12864作為顯示器,用蜂鳴器及發(fā)光二極管構(gòu)成聲光報警器。單片機通過時鐘芯片ds1302獲取時間數(shù)據(jù),對數(shù)據(jù)處理后顯示時間;溫度傳感器ds18b20采集溫度信號送該給單片機處理;單片機再把時間數(shù)據(jù)和溫度數(shù)據(jù)送液晶顯示器12864f顯示,12864f還可以顯示漢字;鍵盤是用來調(diào)時和溫度查詢的。引言隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計是數(shù)據(jù)采集及處理,鍵盤控制,顯示系統(tǒng)及報警系統(tǒng)與單片機有效結(jié)合,本設(shè)計是通過在“單片

4、機原理及應(yīng)用”課堂上學(xué)習(xí)的知識的綜合應(yīng)用,以及查閱資料,培養(yǎng)一種自學(xué)的能力。并且引導(dǎo)一種創(chuàng)新的思維,把學(xué)到的知識應(yīng)用到日常生活當(dāng)中。在設(shè)計的過程中,不斷的學(xué)習(xí),思考和同學(xué)間的相互討論,運用科學(xué)的分析問題的方法解決遇到的困難,掌握單片機系統(tǒng)一般的開發(fā)流程,學(xué)會對常見問題的處理方法,積累設(shè)計系統(tǒng)的經(jīng)驗,充分發(fā)揮教學(xué)與實踐的結(jié)合。全能提高個人系統(tǒng)開發(fā)的綜合能力,開拓了思維,為今后能在相應(yīng)工作崗位上的工作打下了堅實的基礎(chǔ)。一、方案設(shè)計及方案論證1.時鐘溫度的總體設(shè)計思路按照系統(tǒng)的設(shè)計功能要求,本時鐘溫度系統(tǒng)的設(shè)計必須采用單片機軟件系統(tǒng)實現(xiàn),用單片機的自動控制能力配合按鍵控制,來控制時鐘、溫度的調(diào)整及顯

5、示。獲得時鐘溫度數(shù)據(jù)信息,單片機對其進(jìn)行一系列的處理,最后通過液晶顯示出來。2.時鐘溫度系統(tǒng)方案論證2.1時鐘系統(tǒng)方案選擇方案1:通過單片機內(nèi)部的定時器/計數(shù)器,用軟件實現(xiàn),直接用單片機的定時器編程以實現(xiàn)時鐘;方案2:用專門的時鐘芯片實現(xiàn)時鐘的記時,再把時間數(shù)據(jù)送入單片機,由單片機控制顯示。雖然用軟件實現(xiàn)時鐘硬件線路簡單,但是程序運行的每一步都需要時間,多一步或少一步程序都會影響記時的準(zhǔn)確度,對定時器定時也不是十分準(zhǔn)確,時鐘精度很低,對于我們實現(xiàn)所需要的功能造成軟件編程非常復(fù)雜。用專用時鐘芯片硬件成本相對較高,但它的精度很高,軟件編程很簡單。綜上所述,選擇方案2。2.2單片機的選擇對于單片機的

6、選擇,如果用8031系列,由于它沒有內(nèi)部ram,系統(tǒng)又需要大量內(nèi)存存儲數(shù)據(jù),因而不可用;51系列單片機的rom為4k,對于我們設(shè)計的系統(tǒng)可能有點小;54系列單片機與51系列的結(jié)構(gòu)一樣,而rom擴大為16k,對我們設(shè)計系統(tǒng)提供充足的空間進(jìn)行功能的擴展。再有51系列單片機與52系列的單片機價格差不多。因此,我們選擇52系列的單片機。 2.3 顯示系統(tǒng)的方案比較 方案1:用數(shù)碼管或led顯示。 方案2:用液晶1602顯示。方案3:用液晶12864顯示。 時鐘和溫度的顯示可以用數(shù)碼管或led,而且價格便宜。但是數(shù)碼管的只能顯示簡單的設(shè)計的系統(tǒng),與我們設(shè)計要求也不相符。有很多東西需要顯示,還是用顯示功能

7、更好的液晶顯示器比較好,它能顯示更多的數(shù)據(jù),用1602液晶顯示數(shù)據(jù)有限,顯示數(shù)據(jù)的可讀性不好,用可以顯示漢字的12864液晶顯示器還可以增加顯示信息的可讀性,讓人看起來會很方便。 2.4 報警系統(tǒng)的方案比較 方案1:用長鳴的蜂鳴器實現(xiàn)鬧鐘鈴聲及溫度超限報警。 方案2:用喇叭加語音芯片實現(xiàn)鬧鐘鈴聲及溫度超限報警。 用喇叭加語音芯片成本很高,但聲音還不錯,再有喇叭體積龐大。用蜂鳴器,成本低,電路結(jié)構(gòu)簡單,而且體積小。限于設(shè)計所需要的功能,用蜂鳴器是最佳選擇。所以我們采用方案1.2.5 溫度系統(tǒng)方案選擇方案1:用熱敏電阻等測溫元件測出電壓,再轉(zhuǎn)換成對應(yīng)的溫度。需要比較多的外部元件支持,且硬件電路復(fù)雜

8、,制作成本相對較高。方案2:用ds18b20直接測溫。ds18b20溫度傳感器是美國dallas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。經(jīng)比較,我們選擇方案2。溫度實現(xiàn)只能通過外部的溫度傳感器來實現(xiàn)。經(jīng)上網(wǎng)查閱及市場考察,ds18b20體積小,只有3只腳,電路接法簡單。內(nèi)部含有寄存器為我們設(shè)計實現(xiàn)上下限報警功能提供保障。精度為0.5c,也符合我們設(shè)計的要求。ds18b20也是我們通常使用的型號,因此溫度傳感器用ds18b20。2.6 鍵盤控制方案選擇方案1:購買集成鍵盤,采用矩陣形式連接。方案2:購買單個

9、復(fù)位開關(guān)做成鍵盤。雖然集成鍵盤美觀,與單片機的接口少,但是它的成本比較高。單片機的io口對于我們的設(shè)計綽綽有余。通常我們選用價格便宜單個復(fù)位開關(guān)做成鍵盤。3. 時鐘溫度系統(tǒng)總體設(shè)計初步確定設(shè)計系統(tǒng)由單片機主控模塊、時鐘模塊、測溫模塊、報警模塊、顯示模塊、鍵盤接口模塊共6個模塊組成,電路系統(tǒng)框圖如圖1.1所示。 圖1.1二硬件設(shè)計部分1機最小系統(tǒng)電路設(shè)計1.1 單片機芯片選擇單片機采用52系列單片機。由atmel公司生產(chǎn)的at89c52是一種低功耗、高性能cmos8位微控制器,具有8k 在系統(tǒng)可編程flash 存儲器。使用atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和

10、引腳完全兼容。在單芯片上,擁有靈巧的8 位cpu 和在線系統(tǒng)可編程flash,使得at89c52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。at89c52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)flash,256字節(jié)ram,32 位i/o 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路??臻e模式下,cpu停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。而且,它還具有一個看門狗(wdt)定時/計數(shù)器,如果程序沒有正常工作

11、,就會強制整個系統(tǒng)復(fù)位,還可以在程序陷入死循環(huán)的時候,讓單片機復(fù)位而不用整個系統(tǒng)斷電,從而保護(hù)你的硬件電路。at89c52有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本。其芯片外觀及引腳圖如下圖2.1示:圖2.11.2單片機管腳說明vcc:供電電壓。gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門流。當(dāng)p1口的管腳第一次寫1

12、時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作

13、為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c52的一些特

14、殊功能口,如圖2.2所示:管腳備選功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)圖2.2p3口同時為閃爍編程和編程校驗接收一些控制信號。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變

15、的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當(dāng)/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管

16、是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。1.3 單片機最小系統(tǒng) 單片機最小系統(tǒng)主要由復(fù)位電路,晶振電路,電源等幾部分組成。1.3.1復(fù)位電路復(fù)位電路有兩種方式:上電復(fù)位和按鈕復(fù)位,我們主要用按鈕復(fù)位方式。如下圖2.3所示:圖2.31.3.2晶振電路晶振電路原理圖如2.4圖2.4 選取原則:電容選取30pf,晶振為12mhz。1.3.3電源at89c52單片機的供電電源

17、是5v的直流電,為了使電源穩(wěn)定使用了7805穩(wěn)壓芯片是電源穩(wěn)定,主電源電路如下圖2.5 圖2.51.3.4 ea非/vpp 腳我們沒有用外部擴展rom,因此ea非/vpp為高電平,即接+5v電源或是懸空,為了簡化電路將這個引腳懸空。2.時鐘系統(tǒng)電路設(shè)計2.1 時鐘芯片選擇我們采用具有涓細(xì)電流充電能力的低功耗實時時鐘電路ds1302。它可以對年、月、日、周日、時、分、秒進(jìn)行計時,且具有閏年補償?shù)榷喾N功能。它采用主電源和備用電源雙電源供電。它的工作電壓范圍2.05.5v,在2.2v時,小于300na。它內(nèi)部含有31個字節(jié)的靜態(tài)ram,可提供用戶訪問。 ds1302可以對年、月、日、周日、時、分、秒

18、進(jìn)行計時,可以達(dá)到我們設(shè)計的基本的要求。內(nèi)部的寄存器為我們調(diào)時,鬧鐘定時提供了寄存空間。備用用電源也實現(xiàn)了當(dāng)系統(tǒng)斷電后,時鐘仍然可以保持。而且它是串行接口,與單片機通信所需要的接口少。不像ds12887等芯片并行通信需要很多io口。2.2 ds1302管腳及寄存器說明2.2.1 ds1302的引腳排列vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc10.2v時,vcc2給ds1302供電。當(dāng)vcc2小于vcc1時,ds1302由vcc1供電。因此,我們vcc1用3v的紐扣電池作為備用電源

19、,vcc2用系統(tǒng)電源作為主電源。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置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向)。sclk為時鐘輸入端。

20、2.2.2 ds1302的寄存器說明ds1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式。此外,ds1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與ram相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 ds1302與ram相關(guān)的寄存器分為兩類:一類是單個ram單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的ram寄存器,此方式下可一次性讀寫所有的ram的31個字節(jié),命令控制字為feh(寫)、ffh(讀)如下圖所示圖 2.3 ds1

21、302鐘電路ds1302時鐘電路如下圖2.7所示:圖2.7ds1302與單片機的連接僅需3條線:時鐘線sclk、數(shù)據(jù)線i/o和復(fù)位線rst。時鐘線sclk與p2.4相連,數(shù)據(jù)線i/o與p2.5相連,復(fù)位線rst與p2.6相連。由于ds1302是靠涓細(xì)電流充電來實現(xiàn)串行輸入輸出的,因此,在sclk 、i/o、 rst線上要加上拉電阻,其中,它們的電流應(yīng)該在500u1ma之間,若電源為5v,則r約為5k,因此,我們的電阻r=4.7k。但是經(jīng)過查閱有關(guān)資料知道如果ds1302不是接p0口可以不接上拉電阻,為了節(jié)省成本,所以沒有接上拉電阻。 在單電源與電池供電系統(tǒng)中,vcc1提供低電源并提供低功率的備

22、用電源。vcc2提供高電源作為芯片供電的主電源。因此,這里vcc1用3v紐扣電池,vcc2用5v的系統(tǒng)電源。晶振為32.768khz接入x1、x2引腳。3 溫度系統(tǒng)電路 3.1 溫度芯片的選擇溫度實現(xiàn)只能通過外部的溫度傳感器來實現(xiàn)。經(jīng)上網(wǎng)查閱資料及市場考察,ds18b20體積小,只有3只腳,電路接法簡單。它能夠直接讀出被測溫度。內(nèi)部含有寄存器為我們設(shè)計實現(xiàn)上下限報警功能提供保障。用戶可定義的非易失性溫度報警設(shè)置;報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;精度為0.5c,也符合我們設(shè)計的要求。ds18b20也是我們通常使用的型號,因此溫度傳感器用ds18b20。3.2 ds1

23、8b20內(nèi)部結(jié)構(gòu)描述ds18b20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存ram和一個非易失性的可電擦除的eeram。高速暫存ram的結(jié)構(gòu)為8個字節(jié)的存儲器,結(jié)構(gòu)如圖4.1所示。頭兩個字節(jié)包含測得的溫度信息,第三和第四字節(jié)是th和tl的拷貝,是易失的,每次上電復(fù)位時被刷新。第五個字節(jié)為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義如圖4.2所示。低5位一直為1,tm是測試模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。溫度 lsb溫度 msbth 用戶字節(jié)1tl 用戶字節(jié)2配置寄存器保留保留保留

24、crc圖2.8高速咱春ram結(jié)構(gòu)圖1字節(jié)2字節(jié) 3字節(jié) 4字節(jié) 5字節(jié)6字節(jié) 7字節(jié) 8字節(jié)9字節(jié)eeromth 用戶字節(jié)1tl 用戶字節(jié)2tmr1r011111圖 2.9配置寄存器3.3 ds18b20溫度系統(tǒng)電路 ds18b20系統(tǒng)電路如下圖2.10圖2.10ds18b20有兩種接法:一是單線接法即只接qt。這種方法應(yīng)用它內(nèi)部的寄生電源,因此在qt上要用一個mosfet把i/o線只接拉到電源上。二是從vdd腳加上電源。方法一適合于遠(yuǎn)距離溫度監(jiān)控,不需要本地電源。而我們只是設(shè)計測溫系統(tǒng),選擇方法二就行了,還有mosfet極容易燒,我們不用它。vdd接5v電源,vss接地,qt與p3.4相連。

25、4 鍵盤控制系統(tǒng)設(shè)計按鍵需要4個,分別實現(xiàn)為時間調(diào)整、時間的加、時間的減、退出四個功能。用單片機的4個i/o口接收控制信號,其電路圖如下圖2.11所示:圖2.114個按鍵的一端與地相連,另一端分別與p2.3、p2.2、 p2.1、p2.0相連。這時當(dāng)按鍵按下就輸入低電平。報警電路系統(tǒng)設(shè)計報警電路由蜂鳴器、三極管、電阻 、led等構(gòu)成電路如下它們與單片機的接口分別是p2.7。6液晶顯示系統(tǒng)設(shè)計6.1 12864液晶顯示電路 現(xiàn)在流行低碳生活,節(jié)能減排已成為人們處理事情首先想到的問題,所以這個顯示的時候背光控制時間為10s左右,同時關(guān)背光的時候關(guān)掉顯示器的電源,降低功耗。如圖2.12所示圖2.12

26、三、軟硬件調(diào)試部分 3.1軟件調(diào)試 軟件調(diào)試,我是在keil軟件平臺和單片機學(xué)習(xí)板上來完成的。當(dāng)我寫部分程序在keil軟件經(jīng)過調(diào)試,開始出現(xiàn)很多錯誤和警告。通過逐個錯誤排錯及修改。得出下列經(jīng)驗,(1)調(diào)用函數(shù)最好在頭文件中進(jìn)行申明,主函數(shù)寫在最后;(2)特別注意一些字母的大小寫,一般要用英語文字寫,不要用中文漢寫,這是最不容易檢查的,如我在檢查液晶顯示程序時,時鐘沒檢查到錯誤,最后我刪掉此行重新寫,錯誤排除了,據(jù)我分析可能是中英文變換時出現(xiàn)問題。 經(jīng)過一系列排錯,最后文件沒有錯誤但還有警告。由于c語言中有警告是沒關(guān)系的,我將hex文件下在到單片機竟顯示一些亂碼。我有回到文件,經(jīng)過對警告的分析及

27、上網(wǎng)查閱。將程序稍微修改警告慢慢被排除,最后沒有錯誤和警告了,下載到單片機,發(fā)現(xiàn)亂碼竟然還出現(xiàn),還有多個界面疊加顯示,里面還有一些亂碼。經(jīng)過分析,疊屏現(xiàn)象是沒有對液晶清平所致。于是我又在不同界面程序前加入調(diào)用填充空格函數(shù)(void clrram_lcd ()),然后又下載,結(jié)果與前面一樣,崩潰??!經(jīng)過幾個小時后,無意間我去掉 調(diào)用函數(shù)前void。結(jié)果疊屏現(xiàn)象解決。但是顯示還是亂碼。謝天謝地??!有進(jìn)步! 又經(jīng)過幾天,排錯,上網(wǎng)查閱與參考程序?qū)φ?。最后在void r1302()函數(shù)中ds1302inputbyte(ucaddr|0x01);掉了|0x01,加上生成hex文件,下載到單片機中。能夠正

28、常顯示了。界面的閃爍不能閃爍。呵呵!又進(jìn)一步! 經(jīng)過一段時間,我發(fā)現(xiàn)界面程序中的a=1與功能設(shè)置中a重賦值(a=0)相沖突,最后將if()語句中a=1改為a=0 。相應(yīng)的問題也解決了。 最后對程序進(jìn)行相應(yīng)的擴展完善,由于按鍵不靈敏我們加上聲音程序。加上另一個鬧鐘實現(xiàn)設(shè)計需求。 通過單片機學(xué)習(xí)板對照,程序基本實現(xiàn)我所預(yù)期的要求,但是界面顯示鬧鐘1,鬧鐘2閃爍時,液晶竟然出現(xiàn)顯示淡化。據(jù)分析,可能使程序的問題。由于這部分顯示復(fù)雜,用了多個if語句,可能出現(xiàn)語句冗余。我只有請教高手啰! 3.2硬件調(diào)試 硬件調(diào)試,我用萬用表,單片機學(xué)習(xí)板來完成的。首先,我調(diào)試lcd1602顯示。我將液晶顯示程序下載到

29、單片機內(nèi),連好所有的線,通電后,觀察顯示結(jié)果。唉!液晶竟然不顯示。我們用萬用表測試各連線是否導(dǎo)通及某些點的電壓,發(fā)現(xiàn)沒問題。最后在網(wǎng)上發(fā)現(xiàn)我的p0口竟然沒接上拉電阻,通過計算電阻應(yīng)該去5k至10k,我們選用4.7k的電阻。由于沒準(zhǔn)備多的電阻,我在以前買的電阻找到了4.7k的電阻。開始布局沒有為上拉電阻留下空間,我們在單片機插槽里插電阻,解決一些連線的復(fù)雜度。后來在調(diào)試液晶能夠顯示了。 然后,我調(diào)試ds1302時鐘芯片。連上按鍵模塊,液晶顯示模塊,單片機最小系統(tǒng),時鐘系統(tǒng),溫度系統(tǒng),連接所有線,通上電源后,我觀察到液晶顯示 20858585 85:85:85 20.125c 溫度能正常顯示,時鐘

30、不能正常顯示。我們還是用萬用表檢查所用線路,對照電路原理圖,最后發(fā)現(xiàn)時鐘上拉電阻沒焊上電源。接上電源后,時鐘能夠正常顯示,按鍵也能控制。 但是溫度要求精確到0.5度,我查閱了大量的資料,發(fā)現(xiàn)別人的都只是精確到0.1,并沒有精確到0.5的程序可以查考,于是我就在想,我可不可以通過一個有返還值的子函數(shù)來實現(xiàn)小數(shù)位的數(shù)字與5的比較返還0或是5來實現(xiàn),然后看到c語言上的條件運算符,眼睛突然一亮,可以用條件運算符,這樣程序就更簡單了,調(diào)好程序下載到單片機里,懷著激動的心情接通電源,終于好了,太興奮了! 整個硬件調(diào)試才完成。 四.總結(jié)與體會經(jīng)過將近一個月的設(shè)計,反復(fù)地討論各個環(huán)節(jié),反復(fù)調(diào)試,反復(fù)模擬仿真,終于完成lcd液晶時鐘設(shè)計。雖然達(dá)到設(shè)計要求,并完成了一定

溫馨提示

  • 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

提交評論