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

下載本文檔

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

文檔簡介

1、西安高新科技職業(yè)學(xué)院畢 業(yè) 設(shè) 計(論文)課題名稱 基于單片機設(shè)計lcd顯示電子時鐘 年 級 2008 級 系 別 計算機科學(xué)與技術(shù) 專 業(yè) 應(yīng)用電子 班 級 一班 姓 名 指導(dǎo)教師 西安高新科技職業(yè)學(xué)院畢業(yè)設(shè)計(論文)成績評議年級08級系別計科系專業(yè)應(yīng)用電子姓名王偉華題目基于單片機設(shè)計lcd顯示電子時鐘指導(dǎo)教師評閱意見成績評定: 指導(dǎo)教師: 年 月 日評閱教師意見 指導(dǎo)教師: 年 月 日答辯小組意見 指導(dǎo)教師: 年 月 日畢業(yè)設(shè)計(論文)任務(wù)書本任務(wù)書下達(dá)給:姓名:王偉華 年級 2008級 系 計算機科學(xué)與技術(shù) 專業(yè) 應(yīng)用電子 設(shè)計題目: 1畢業(yè)設(shè)計(論文)任務(wù)及要求(包括設(shè)計或論文的主要內(nèi)

2、容、主要技術(shù)指標(biāo),并根據(jù)題目性質(zhì)對學(xué)生提出具體要求)設(shè)計命題:基于單片機設(shè)計lcd顯示電子時鐘,該lcd液晶可以顯示電子時鐘的年、月、日、星期、時、分、秒,調(diào)節(jié)功能鍵可以調(diào)節(jié)時間,并且顯示時間按秒實時更新,每次按鍵伴隨“滴”的響聲。要求:使用stc89c52單片機完成設(shè)計,以及eeprom,并利用中斷子程序的定時器精確地對單片機控制,然后在1602液晶上顯示。2重點研究的問題及原始資料及依據(jù)(包括設(shè)計或論文的工作基礎(chǔ)、研究條件、應(yīng)用環(huán)境等) 設(shè)計適用于各種辦公場合、家庭生活以及各種需要顯示時間的地方。 重點研究問題包括:(1)、對單片機外圍電路的熟悉。 (2)、時間可調(diào)節(jié),并且時間精準(zhǔn)無誤 (

3、3)、要求盡可能考慮周到,比如:1602液晶的顯示,溫度范圍,受濕受潮;斷電后時間是否保持等等。3主要參考資料、文獻(xiàn),其他要說明的問題參考文獻(xiàn)(references):1 張毅剛新編mcs51單片機應(yīng)用設(shè)計哈爾濱工業(yè)大學(xué)出版社20032 譚浩強c程序設(shè)計 清華大學(xué)出版社19913 郭天祥新概念51單片機c語言教程 電子工業(yè)出版社2009.14 楊欣等電子設(shè)計從零開始m 清華大學(xué)出版社2005-105 邱關(guān)源電路m 高等教育出版社2003-2 下達(dá)任務(wù)日期: 年 月 日 要求完成日期: 年 月 日 答辯日期: 年 月 日 指導(dǎo)教師:西安高新科技職業(yè)學(xué)院畢業(yè)論文(設(shè)計)指導(dǎo)及答辯記錄論文(設(shè)計)題

4、目基于單片機設(shè)計lcd顯示電子時鐘學(xué)生姓名王偉華專業(yè)班級應(yīng)用電子指導(dǎo)教師 趙鵬畢業(yè)論文指導(dǎo)記錄程序的控制調(diào)試2011.4.16外圍電路設(shè)計的指導(dǎo) 2011.4.21液晶模塊的調(diào)試 2011.4.29全部硬件以及軟件的最后調(diào)試工作 2011.5.4畢業(yè)論文答辯記錄(注明答辯過程摘要、結(jié)果及日期)中文摘要本設(shè)計使用11.0592mhz晶振與單片機at89c52相連接,以at89c52芯片為核心,采用1602的并行操作方式顯示,通過使用該單片機,實現(xiàn)把時間顯示在1602液晶上,并且按秒實時更新??梢酝ㄟ^板子上的按鍵隨時調(diào)節(jié)時鐘的年、月、日、星期、時、分、秒,按鍵設(shè)計3個有效按鍵,分別有功能選擇鍵、數(shù)

5、數(shù)值增大鍵、數(shù)值減小鍵。在每次的按鍵按下時,蜂鳴器有“滴”的提示聲。再利用at24c02設(shè)計實現(xiàn)斷電自動保護顯示數(shù)字的功能,當(dāng)下次上電時會接著上次上電前的時間繼續(xù)運行。通過軟硬件結(jié)合達(dá)到最終目的。關(guān)鍵詞: 電子鐘 單片機 1602液晶 c語言目 錄第一章引言1第二章方案設(shè)計3第三章硬件設(shè)計4 (一) 89c52單片機的內(nèi)部結(jié)構(gòu)4 (二) 89c52單片機的引腳功能5 (三) 89c52單片機的模塊設(shè)計9 1.單片機與p0口排阻.9 2. usb供電電路部分.10 3. 復(fù)位電路.10 4. 顯示模塊設(shè)計.11 5.晶振電路部分.16 6. 蜂鳴器電路.17 7. 矩正鍵盤電路.17第四章 系統(tǒng)

6、軟件設(shè)計19 (一) 軟件程序流程19 (二) 程序設(shè)計步驟19 (三) 程序設(shè)計的主要模塊20第五章 設(shè)計總結(jié)29參考文獻(xiàn)30致謝31第一章 引言單片微型計算機簡稱單片機,是典型的嵌入式微控制器(microcontroller unit),常用英文字母的縮寫mcu表示單片機,它最早是被用在工業(yè)控制領(lǐng)域。單片機由芯片內(nèi)僅有cpu的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和cpu集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。intel的z80是最早按照這種思想設(shè)計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。 早期的單片機都是8位

7、或4位的。其中最成功的是intel的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了mcs51系列單片機系統(tǒng)?;谶@一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術(shù)得到了巨大提高。隨著intel i960系列特別是后來的arm系列的廣泛應(yīng)用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統(tǒng)的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機主頻已經(jīng)超過300mhz,性能直追90年代

8、中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當(dāng)代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的windows和linux操作系統(tǒng)。 單片機比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實上單片機是世界上數(shù)量最多的計算機。現(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數(shù)不少的單片機在工作。汽車上一般配備40

9、多部單片機,復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺單片機在同時工作!單片機的數(shù)量不僅遠(yuǎn)超過pc機和其他計算的總和,甚至比人類的數(shù)量還要多。 單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。相當(dāng)于一個微型的計算機,和計算機相比,單片機只缺少了i/o設(shè)備。概括的講:一塊芯片就成了一臺計算機。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習(xí)使用單片機是了解計算機原理與結(jié)構(gòu)的最佳選擇。 單片機內(nèi)部也用和電腦功能類似的模塊,比如cpu,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不

10、過價錢也是低的,一般不超過10元即可.用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動滾筒洗衣機、排煙罩、vcd等等的家電里面都可以看到它的身影!.它主要是作為控制部分的核心部件。 它是一種在線式實時控制計算機,在線式就是現(xiàn)場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用pc)的主要區(qū)別。 圖1.1 單片機芯片單片機是靠程序運行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的cd40

11、00系列這些純硬件來搞定的話,電路一定是一塊大pcb板!但是如果要是用美國70年代成功投放市場的系列單片機,結(jié)果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性! 圖1.1為單片機實物圖,下圖分別為89c51和89c2052的封裝圖。 第二章方案設(shè)計實現(xiàn)電子時鐘的方案較多,目前廣泛采用的是基于數(shù)碼管led和液晶lcd顯示,本設(shè)計將介紹基于單片機學(xué)習(xí)板以為外接液晶模塊實現(xiàn)的方案。方案一:數(shù)碼管led動態(tài)顯示。所謂動態(tài)顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,字符

12、才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點亮?xí)r間與間隔時間的比例有關(guān)。調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。方案二:液晶lcd顯示。所謂液晶lcd的顯示,就是以電流刺激液晶分子產(chǎn)生點,顯示字符的行數(shù)和液晶的點陣行。液晶體積小、功耗低、顯示簡單。從節(jié)省功耗,體積,i/o口的節(jié)省,本設(shè)計采用方案二。單片機系統(tǒng)方案此方案采用蜂鳴器電路+usb供電電路+晶振電路+復(fù)位電路+at89c52+1602液晶電路第三章硬件設(shè)計(一)80c52單片機的內(nèi)部結(jié)構(gòu) 圖3-1為80c52單片機功能結(jié)構(gòu)框圖 80c52 芯片內(nèi)部集成了 cpu、ram、rom、定時/計數(shù)器和i/o口等各功能部件,并由內(nèi)部總線把這些連接在

13、一起。80c52單片機內(nèi)部包含以下一些功能部件:(1) 一個8位cpu;(2) 一個片內(nèi)振蕩器和時鐘電路;(3) 4kb rom;(4) 128b內(nèi)ram;(5) 可尋址64kb的外rom和外ram控制電路;(6) 三個16位定時/計數(shù)器;(7) 21個特許功能寄存器;(8) 4個8位并行i/o口,共32條可編程i/o端線;(9) 一個可編程全雙工串行口;(10) 5個中斷源,可設(shè)置成2個優(yōu)先級。振蕩器及時序 osc8052cpu程序存儲器4kb rom數(shù)據(jù)存儲器256b3個16位定時器/計數(shù)器64k總線擴展控制器可編程i/o可編程全雙工串行口外時鐘源 外部事件計 中斷 控制 并 行 口 串行

14、通信 圖3-1 80c52單片機功能結(jié)構(gòu)框圖(二) 80c52單片機的引腳功能 89c52單片機一般采用雙列直插dip封裝,共40個引腳,圖3-2分別為引腳排列圖和邏輯符號圖。40個引腳大致可分為4類:電源、時鐘、控制和i/o引腳。 圖3-2 80c52引腳圖1.電源 (1)vcc芯片電源,接+; (2)vss接地端。2.時鐘 xtal1、xtal2晶體振蕩電路反相輸入端和輸出端。使用內(nèi)部振蕩電路時外接石英晶體。3.控制線 控制線共有4根,其中3根是復(fù)用線。所謂復(fù)用線是指具有兩種功能,正常使用時是一種功能,在某種條件下是另一種功能。 (1)ale/prog地址鎖存允許/片內(nèi)eprom編程脈沖。

15、 ale功能:用來鎖存p0口送出的低8位地址。 80c52在并行擴展外存儲器(包括并行擴展i/o口)時,p0口用于分時傳送低8位地址和數(shù)據(jù)信號,且均為二進制數(shù)。那么如何區(qū)分是低8位地址還是8位數(shù)據(jù)信號呢?當(dāng)ale信號有效時,p0口傳送的是低8位地址信號;ale信號無效時,p0口傳送的是8位數(shù)據(jù)信號。在ale信號的下降沿,鎖定p0口傳送的內(nèi)容,即低8位地址信號。 需要指出的是,當(dāng)cpu不執(zhí)行訪問外ram指令(movx)時,ale以時鐘振蕩頻率1 / 6的固定頻率輸出,因此ale信號也可作為外部芯片clk時鐘或其他需要。但是,當(dāng)cpu執(zhí)行movx指令時,ale將跳過一個ale脈沖。 ale端可驅(qū)動

16、8個lsttl門電路。 prog功能:片內(nèi)有eprom的芯片,在eprom編程期間,此引腳輸入編程脈沖。 (2)psen外rom讀選通信號。 80c51讀外rom時,沒個機器周期內(nèi)psen兩次有效輸出。psen可作為外rom芯片輸出允許oe的選通信號。在讀內(nèi)rom或讀外ram時,psen無效。 psen可驅(qū)動8個lsttl門電路。 (3) rst/vpd復(fù)位/備用電源。 正常工作時,rst(reset)端為復(fù)位信號輸入端,只要在該引腳上連續(xù)保持兩個機器周期以上高電平,80c52芯片即實現(xiàn)復(fù)位操作,復(fù)位后一切從頭開始,cpu從0000h開始執(zhí)行指令。 vpd功能:在vcc掉電情況下,該引腳可接上

17、備用電源,由vpd向片內(nèi)供電,以保持片內(nèi)ram中的數(shù)據(jù)不丟失。 (4) ea/vpp 內(nèi)外rom選擇/片內(nèi)eprom編程電源。 ea功能:正常工作時,ea為內(nèi)外rom選擇端。80c52單片機rom尋址范圍為64kb,其中4kb在片內(nèi),60kb在片外(80c31芯片無內(nèi)rom,全部在片外)。當(dāng)ea保持高電平時,先訪問內(nèi)rom,但當(dāng)pc(程序計數(shù)器)值超過4kb(0fffh)時,將自動轉(zhuǎn)向執(zhí)行外rom中的程序。當(dāng)ea保持低電平時,則只訪問外rom,不管芯片內(nèi)有否內(nèi)rom。對80c31芯片,片內(nèi)無rom,因此ea必須接地。 vpp功能:片內(nèi)有eprom的芯片,在eprom編程期間,此引腳用于施加編程

18、電源vpp。 對4個控制引腳,應(yīng)熟記起第一功能,了解其第二功能。 嚴(yán)格來講,80c52的控制線還應(yīng)該包括p3口的第二功能。4. i/o引腳 80c52共有4個8位并行i/o端口,共32個引腳 (1)p0口8位雙向i/o口。 在不并行擴展外存儲器(包括并行擴展i/o口)時, p0口可用作雙向i/o口。 在并行擴展外存儲器(包括并行擴展i/o口)時, p0口可用于分時傳送低8位地址(地址總線)和8位數(shù)據(jù)信號(數(shù)據(jù)總線)。位結(jié)構(gòu)如圖3-3所示。p0口能驅(qū)動8個lsttl門。 vcc地址/數(shù)據(jù)控制鎖存器p0.xdcpqqmuxv1v2p0.x引腳讀鎖存器寫鎖存器內(nèi)部總線讀引腳&1圖3-3 p0口位結(jié)構(gòu)

19、(2) p1口8位準(zhǔn)雙向i/o口(“準(zhǔn)雙向”是指該口內(nèi)部有固定的上拉電阻)。位結(jié)構(gòu)如圖3-4所示。 p1口能驅(qū)動為4個lsttl門。vcc鎖存器p1.xdcpqqp1.x引腳讀鎖存器寫鎖存器內(nèi)部總線讀引腳內(nèi)部上拉電阻圖 3-4 p1口位結(jié)構(gòu) (3) p2口8位準(zhǔn)雙向i/o口。在不并行擴展外存儲器(包括并行擴展i/o口)時, p2口可用作雙向i/o口。在并行擴展外存儲器(包括并行擴展i/o口)時, p2口可用于傳送高8位地址(屬地址總線) 。p2口能驅(qū)動4個lsttl門。p2口的位結(jié)構(gòu)如圖3-5所示,引腳上拉電阻同p1口。在結(jié)構(gòu)上,p2口比p1口多一個輸出控制部分。鎖存器p2.xdcpqq讀鎖存

20、器寫鎖存器內(nèi)部總線讀引腳vccp2.x引腳內(nèi)部上拉電阻1地址控制mux圖 3-5 p2口位結(jié)構(gòu) (4) p3口8位準(zhǔn)雙向i/o口。可作一般i/o口用,同時p3口每一引腳還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。p3口驅(qū)動能力為4個lsttl門。 圖 3-6 p3口位結(jié)構(gòu)p3口第二功能如下: p3.0rxd:串行口輸入端; p3.1txd:串行口輸出端; p3.2int0:外部中斷0請求輸入端; p3.3int1:外部中斷1請求輸入端 p3.4t0:定時/計數(shù)器0外部信號輸入端; p3.5t1:定時/計數(shù)器1外部信號輸入端; p3.6wr:外ram寫選通信號輸出端; p3.7

21、rd:外ram讀選通信號輸出端。上述4個i/o口,各有各的用途。 在不并行擴展外存儲器(包括并行擴展i/o口)時, 4個i/o口都可作為雙向i/o口用。在并行擴展外存儲器(包括并行擴展i/o口)時, p0口專用于分時傳送低8位地址信號和8位數(shù)據(jù)信號,p2口專用于傳送高8位地址信號。p3口根據(jù)需要常用于第二功能,真正可提供給用戶使用的i/o口是p1口和一部分未用作第二功能的p3口端線。(三)模塊設(shè)計1.單片機與p0口排阻如圖3.3.1所示,本設(shè)計主要的硬件80c52以及上拉電阻連接線路圖。2.usb供電電路部分 圖3.3.2如圖3.3.2所示,從外部引入5v的直流電,按下s1可以為單片機、復(fù)位電

22、路提供電源。3. 復(fù)位電路圖3.3.3如圖3.3.3所示,復(fù)位電路主要由型號為10uf/16v的電解電容,10k,1k的電阻以及按鍵s22構(gòu)成,rst接芯片的相應(yīng)引腳rst,構(gòu)成上電復(fù)位和手動復(fù)位。上電復(fù)位是經(jīng)過電容和10k的電阻上電以后就進行復(fù)位。手動復(fù)位是當(dāng)開關(guān)s22按下時給引腳rst為高電平1,斷開時引腳為低電平0。4. 顯示模塊設(shè)計圖3.3.4(1)lcd顯示模塊lcd顯示器分為字段顯示和字符顯示兩種。其中字段顯示與led顯示相似,只要送對應(yīng)的信號到相應(yīng)的管腳就能顯示。字符顯示是根據(jù)需要顯示基本字符。本設(shè)計采用的是字符型顯示。系統(tǒng)中采用lcd1602作為顯示器件輸出信息,如圖3.2.4

23、所示。與傳統(tǒng)的led數(shù)碼管顯示器件相比,液晶示模塊具有體積小、功耗低、顯示內(nèi)容豐富等優(yōu)點,而且不需要外加驅(qū)動電路,現(xiàn)在液晶顯示模塊已經(jīng)是單片機應(yīng)用設(shè)計中最常用的顯示器件了。lcd1602可以顯示2行16個漢字。(2)lcd1602的引腳功能lcd1602模塊的引腳如圖3.2.4.2所示,其引腳功能如下:rs:數(shù)據(jù)和指令選擇控制端,rs=0命令狀態(tài);rs=1數(shù)據(jù)r/w:讀寫控制線,r/w=0寫操作;r/w=1讀操作a:背光控制正電源 k:背光控制地e:數(shù)據(jù)讀寫操作控制位,e線向lcd模塊發(fā)送一個脈沖,lcd模塊與單片機間將進行一次數(shù)據(jù)交換db0db7:數(shù)據(jù)線,可以用8位連接,也可以只用高4位連接

24、,節(jié)約單片機資源。vss vdd vo rs r/w e db0 db1 db2 db3 db4 db5 db6 db7 a klcd 模 塊1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 vdd:電源端 vee:亮度控制端(1-5v) vss:接地端圖3.2.4.2lcd1602模塊(3)lcd1602的顯示操作1四種基本操作lcd有四種基本操作,具體如表3.2.4.3所示。表3.2.4.3lcd與單片機之間有四種基本操作rsr/w操作00寫命令操作(初始化,光標(biāo)定位等)01讀狀態(tài)操作(讀忙標(biāo)志位)10寫數(shù)據(jù)操作(要顯示內(nèi)容)11讀數(shù)據(jù)操作(可以把顯示存儲區(qū)中的

25、數(shù)據(jù)反讀出來)(1)讀狀態(tài)字執(zhí)行讀狀態(tài)字操作,如表3-1滿足rs=0,r/w=1。根據(jù)管腳功能,當(dāng)為有效電平時,狀態(tài)命令字可從lcd模塊傳輸?shù)綌?shù)據(jù)總線。同時可以保持一段時間,從而實現(xiàn)讀狀態(tài)字的功能。讀狀態(tài)字流程如圖3.3.4.3.1所示。圖3.3.4.3.1讀入狀態(tài)字流程圖(2)命令字表3.3.4.3.2所示為命令字,其主要介紹了指令名稱、控制信號及控制代碼。其指令名稱是指要實現(xiàn)的功能;控制代號是采用的十六進制的數(shù)值表示的。1)清零操作是指輸入某命令字后即能將整個屏幕顯示的內(nèi)容全部清除;2)歸home位:將光標(biāo)送到初始位;其中的號為任意,高低電平均可;3)輸入方式:設(shè)光標(biāo)移動方向并指定整體顯示

26、,是否移動。i/d=0:減量方式,s=1:移位方式,s=0:不移位;4)顯示狀態(tài):d指設(shè)置整體顯示開關(guān);c指設(shè)置光標(biāo)顯示開關(guān);b指設(shè)置光標(biāo)的字符閃耀;5)光標(biāo)畫面滾動:r/l指右移或左移;s/c指移動總體或光標(biāo);6)功能設(shè)置:dl接口數(shù)位,l指顯示行數(shù),f顯示字型;如dl=1:8位=0,4位n=1:2行=0:1行,g=1:510=0:57(點陣)7)cgram地址設(shè)制:相當(dāng)于一個數(shù)據(jù)庫,可以在其中選擇所需要的符號;8)ddram地址設(shè)制:顯示定位;9)讀bf和ac:b為最高位忙的標(biāo)志,f為標(biāo)志位;10)寫數(shù)據(jù):將數(shù)據(jù)按要求寫入到對應(yīng)的單元;11)讀數(shù)據(jù):讀相應(yīng)單元內(nèi)的數(shù)據(jù);表3.3.4.3.2

27、命令字指令名稱控制信號控制代碼rsrwd7d6d5d4d3d2d1d0清屏0000000001歸home位000000001*輸入方式設(shè)制00000001i/ds顯示狀態(tài)設(shè)制0000001dcb無標(biāo)畫面滾動000001s/crl*功能設(shè)置00001dlnf*cgram地址設(shè)制0001a5a4a3a2a1a0ddram地址設(shè)制001a6a5a4a3a2a1a0讀bf和ac01bfac6ac5ac4ac3ac2ac1ac0寫數(shù)據(jù)10數(shù) 據(jù)讀數(shù)據(jù)11數(shù) 據(jù)(3)寫命令字由表3.3.4.3.2可知當(dāng)rs=0,r/w=0時,才可以通過單片機或用戶指令把數(shù)據(jù)寫到lcd模塊,此時就對lcd進行調(diào)制??刹捎貌?/p>

28、詢方式:先讀入狀態(tài)字,再判斷忙標(biāo)志位,最后寫命令字。圖3.3.4.3.3所示為寫命令字的流程圖。圖3.3.4.3.3寫命令字流程圖1)定義光標(biāo)位置顯示數(shù)據(jù)的某位,就是把顯示數(shù)據(jù)寫在相應(yīng)的ddram地址中,ddram地址占7位。setddramaddress命令如表3.3.4.3.4所示。光標(biāo)定位,寫入一個顯示字符后,ddram地址會自動加1或減1,加或減由輸入方式設(shè)置。表3.3.4.3.4set ddram address命令rsr/wdb7db6db5db4db3db2db1db0001ac6ac5ac4ac3ac2ac1ac0第1行ddram地址與第2行ddram地址并不連續(xù),如表3.3.

29、4.3.4所示。表3.3.4.3.4ddram地址row12345141516line180h81h82h83h84h8dh8eh8fhline20c0h0c1h0c2h0c3h0c4h0cdh0ceh0cfh2)lcd初始化從通電開始延時,先經(jīng)過判忙后再進行功能設(shè)置,過一段時間后可以設(shè)制顯示狀態(tài)(如設(shè)制行、位或陣列)再經(jīng)過延時清屏后才可以設(shè)置輸入方式,具體實現(xiàn)過程如圖3.2.4.3.5所示。圖3.3.4.3.5lcd初始化流程圖2lcd顯示程序設(shè)計lcd顯示程序的設(shè)計一般先要確定lcd的初始化、光標(biāo)定位、確定顯示字符后,顯示流程如圖3.3.4.3.6顯示。圖3.3.4.3.6lcd顯示程序流

30、程圖5. 晶振電路 圖3.3.5單片機工作的時間基準(zhǔn)是由時鐘電路提供的,在單片機的xtal1和xyal2兩個管腳接一只晶振及兩只電容就構(gòu)成了單片機的時鐘電路,電路中電容器和對振蕩頻率有微調(diào)作用,通常取(3010)pf石英晶體選擇6mhz或12mhz(本設(shè)計取的是11.0592mhz只是為計算串口通信的波特率精準(zhǔn))都可以。時鐘電路如圖3.3.5所示。6. 蜂鳴器電路 圖3.3.6如圖3.3.6所示,在單片機的fm管腳接蜂鳴器電路,電路中pnp三極管以及電阻r18構(gòu)成放大電路,當(dāng)fm引腳為低電平時,驅(qū)動蜂鳴器工作。7. 矩陣鍵盤 圖3.3.7如圖3.3.7所示,分別連接單片機的對應(yīng)口,本設(shè)計中的時

31、鐘調(diào)節(jié)只用到了s9,s13,s17來調(diào)節(jié)時鐘進行時鐘的調(diào)節(jié)。(注:調(diào)節(jié)時,如果調(diào)節(jié)按鍵不起作用,就是下載的usb口拔掉方可調(diào)節(jié),因為那是鍵盤接口和下載口連接電路有沖突。)第四章 系統(tǒng)軟件設(shè)計(一)軟件程序流程根據(jù)需要,本設(shè)計使用的軟件為keil uvision4,本軟件操作簡單,編譯也極其方便。由此可將系統(tǒng)軟件按照功能劃分為4個模塊,分別是主程序模塊、24c02自動保護模塊、液晶顯示模塊、中斷服務(wù)程序模塊,各模塊的功能關(guān)系如圖4-1所示。編寫系統(tǒng)軟件時,可首先編寫各模塊的底層驅(qū)動程序,而后是系統(tǒng)聯(lián)機調(diào)試,編寫上層主程序。系統(tǒng)主程序液晶管顯示24c02自動保護程序護程序中斷服務(wù). 圖4.1結(jié)合電

32、路,程序的總體思路是:1、點復(fù)位鍵后,進行時間顯示,從0時0分0秒開始。2、按下功能鍵時,進行功能選擇,此時按下時,光標(biāo)閃爍,并且每次按下都伴隨著“滴”的一聲,同時按下功能鍵四次就會重新走時,下同。3、按下增大鍵時進行增大調(diào)整,每次按下伴隨蜂鳴器響。4、按減小鍵時進行減小調(diào)整,同樣,每次按下時也伴隨著蜂鳴器響。(二)程序設(shè)計步驟在程序設(shè)計過程中,我遇到了很多困難,這部分也是讓我學(xué)到很多東西的地方。首先,我學(xué)習(xí)了定時器的相關(guān)知識,計數(shù)器的使用是很重要的組成部分,在這個設(shè)計中選擇計數(shù)器t0。t0的工作方式有:方式0:不推薦方式1:16位計數(shù)器,常用方式2:自動重裝初值的8位定時/計數(shù)器方式3:t0

33、相當(dāng)于兩個獨立的8位定時/計數(shù)器此程序采用方式1,方式1的定時時間t為t=(216-m)*12/fosc。其中m為定時器初值,fosc為12mhz(本設(shè)計用的11.0592mhz),若m0t=65536*12/2*106=65.536ms。因此可取50ms為計時單位,初值m應(yīng)為50*10-3*106=216-m。m=15536=11110010110000=3cb0。即定時器初值為 th0=(65536-50000)/256;tl0=(65536-50000)%256;定時器中斷20次為一秒,這部分在中斷程序中用到。其次,我參看了文獻(xiàn)中的設(shè)計思路,做到胸有成竹后再進行具體的程序書寫工作。認(rèn)真學(xué)

34、習(xí)了教科書中關(guān)于c語言編程的問題,熟悉了c語言的編程方法和語法習(xí)慣。第三步就是進行具體的程序編寫工作。(三)程序的主要模塊1.延遲程序在液晶顯示時,必然用到延遲程序,這里使用延遲50ms的程序,此程序需要反復(fù)調(diào)用。此段程序是很簡單的,但就是在這段簡單的程序上,也會出現(xiàn)問題。void delay(uint xms)uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-);2. 1602液晶讀寫程序void write_com(uchar com) rs=0; lcden=0; p0=com; delay(5); lcden=1; delay(5); lcden=0;

35、void write_date(uchar date) rs=1; lcden=0; p0=date; delay(5); lcden=1; delay(5); lcden=0;void write_shifenmiao(uchar add,uchar date) uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); 3. 初始化程序void init()uchar num;rd=0;dula=0;wela=0;lcden=0;shi

36、=0;fen=0;miao=0;count=0;s1num=0;init_24c02();write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01); write_com(0x80);for(num=0;num15;num+) write_date(tablenum);delay(5); write_com(0x80+0x40+6); write_date(:); delay(5); write_com(0x80+0x40+9); write_date(:); delay(5); shi=read_add(3); fen=re

37、ad_add(2); miao=read_add(1); write_shifenmiao(4,shi); write_shifenmiao(7,fen); write_shifenmiao(10,miao); tmod=0x01; th0=(65536-50000)/256; tl0=(65536-50000)%256; ea=1; et0=1; tr0=1;4.按鍵掃描程序void keyscan()if(s1=0)delay(5);if(s1=0) s1num+;while(!s1); di(); if(s1num=1) tr0=0;write_com(0x80+0x40+10);wri

38、te_com(0x0f);/光標(biāo)閃爍 if(s1num=2) write_com(0x80+0x40+7);if(s1num=3) write_com(0x80+0x40+4);if(s1num=4)s1num=0; write_com(0x0c);tr0=1;/ if(s1num!=0) if(s2=0)delay(5);if(s2=0) while(!s2); di(); if(s1num=1) miao+; if(miao=60) miao=0; write_shifenmiao(10,miao); write_com(0x80+0x40+10); write_add(1,miao);

39、if(s1num=2) fen+; if(fen=60) fen=0; write_shifenmiao(7,fen); write_com(0x80+0x40+7); write_add(2,fen); if(s1num=3) shi+; if(shi=24) shi=0; write_shifenmiao(4,shi); write_com(0x80+0x40+4); write_add(3,shi); / / if(s1num!=0)if(s3=0) delay(5); if(s3=0) while(!s3); di(); if(s1num=1) miao-; if(miao=-1)mi

40、ao=59; write_shifenmiao(10,miao); write_com(0x80+0x40+10); write_add(1,miao); if(s1num=2) fen-; if(fen=-1)fen=59; write_shifenmiao(7,fen); write_com(0x80+0x40+7); write_add(2,fen); if(s1num=3) shi-; if(shi=-1)shi=23; write_shifenmiao(4,shi); write_com(0x80+0x40+4); write_add(3,shi); 5.主程序void main()

41、init();while(1)keyscan();6.定時器中斷程序void timer0() interrupt 1th0=(65536-50000)/256;tl0=(65536-50000)%256;count+;if(count=20)count=0;miao+; if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;write_add(3,shi) ;write_shifenmiao(4,shi); write_add(2,fen);write_shifenmiao(7,fen); write_add(1,miao);write_shifenmiao(10,miao);7. 2c402.h的eeprom的操作函數(shù)程序#include24c02.h/ /bit write=0;sbit sda=p20;sbit scl=p21;void delay0();void start()sda=1;delay0();scl=1;delay0();sda=0;delay0();void stop()sda=0;delay0();scl=1;delay0();sda=1;delay0();void respons()uchar i

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論