基于單片機(jī)設(shè)計LCD顯示電子時鐘
《基于單片機(jī)設(shè)計LCD顯示電子時鐘》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)設(shè)計LCD顯示電子時鐘(44頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、基于單片機(jī)設(shè)計LCD顯示電子時鐘 西安高新科技職業(yè)學(xué)院 畢 業(yè) 設(shè) 計(論文) 課題名稱 基于單片機(jī)設(shè)計LCD顯示電子時鐘 年 級 系 別 專 業(yè) 班 級 姓 名 學(xué)號 指導(dǎo)教師 西安高新科技職業(yè)學(xué)院畢業(yè)設(shè)計(論文)成績評議
2、 年級 08級 系別 計科系 專業(yè) 應(yīng)用電子 姓名 王偉華 題目 基于單片機(jī)設(shè)計LCD顯示電子時鐘 指導(dǎo)教師評閱意見 成績評定: 指導(dǎo)教師: 年 月 日 評閱教師意見 指導(dǎo)教師: 年 月 日 答辯小組意見 指導(dǎo)教師:
3、 年 月 日 畢業(yè)設(shè)計(論文)任務(wù)書 本任務(wù)書下達(dá)給:姓名年級系專業(yè) 設(shè)計題目: 2.重點研究的問題及原始資料及依據(jù)(包括設(shè)計或論文的工作基礎(chǔ)、研究條件、應(yīng)用環(huán)境等) 設(shè)計適用于各種辦公場合、家庭生活以及各種需要顯示時間的地方。 重點研究問題包括: 1 、對單片機(jī)外圍電路的熟悉。 2 、時間可調(diào)節(jié),并且時間精準(zhǔn)無誤 3 、要求盡可能考慮周到,比
4、如:1602液晶的顯示,溫度范圍,受濕受潮;斷電后時間是否保持等等。 3.主要參考資料、文獻(xiàn),其他要說明的問題 下達(dá)任務(wù)日期: 年 月 日 要求完成日期: 年 月 日 答辯日期: 年 月 日 指導(dǎo)教師:論文(設(shè)計)題目 學(xué)生姓名 專業(yè)班級 指導(dǎo)教師 畢業(yè)論文指
5、導(dǎo)記錄畢業(yè)論文答辯記錄(注明答辯過程摘要、結(jié)果及日期)中文摘要 本設(shè)計使用11.0592MHZ晶振與單片機(jī)AT89C52相連接,以AT89C52芯片為核心,采用1602的并行操作方式顯示,通過使用該單片機(jī),實現(xiàn)把時間顯示在1602液晶上,并且按秒實時更新。可以通過板子上的按鍵隨時調(diào)節(jié)時鐘的年、月、日、星期、時、分、秒,按鍵設(shè)計3個有效按鍵,分別有功能選擇鍵、數(shù)數(shù)值增大鍵、數(shù)值減小鍵。在每次的按鍵按下時,蜂鳴器有“滴”的提示聲。再利用AT24C02設(shè)計實現(xiàn)斷電自動保護(hù)顯示數(shù)字的功能,當(dāng)下次上電時會接著上次上電前的時間繼續(xù)運(yùn)行。通過軟硬件結(jié)合達(dá)到最終目的。 關(guān)鍵詞:
6、 電子鐘 單片機(jī) 1602液晶 C語言 目 錄 第一章 引言 1 第二章 方案設(shè)計 3 第三章 硬件設(shè)計 4 (一) 89C52單片機(jī)的內(nèi)部結(jié)構(gòu) 4 (二) 89C52單片機(jī)的引腳功能 5 (三) 89C52單片機(jī)的模塊設(shè)計 9 1.單片機(jī)與P0口排阻......................................................................................................9 2. USB供電電路部分........
7、............................................................................................10 3. 復(fù)位電路....................................................................................................................10 4. 顯示模塊設(shè)計....................................................
8、........................................................11 5.晶振電路部分..............................................................................................................16 6. 蜂鳴器電路..............................................................................................
9、..................17 7. 矩正鍵盤電路............................................................................................................17 第四章 系統(tǒng)軟件設(shè)計 19 (一) 軟件程序流程 19 (二) 程序設(shè)計步驟 19 (三) 程序設(shè)計的主要模塊 20 第五章 設(shè)計總結(jié) 29 參考文獻(xiàn) 30 致謝 31 第一章 引言 單片微型計算機(jī)簡稱單片機(jī),是典型的嵌入式(Microcontroller
10、 Unit),常用英文字母的縮寫MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和CPU集成在一個芯片中,使計算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。 早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了
11、16位單片機(jī),但因為性價比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單
12、片機(jī)甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。 單片機(jī)比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實上單片機(jī)是世界上數(shù)量最多的計算機(jī)?,F(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會集成有單片機(jī)。手機(jī)、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個人電腦中也會有為數(shù)不少的單片機(jī)在工作。汽車上一般配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺單片機(jī)在同時工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過PC機(jī)和其他計算的總和,甚至比人類的數(shù)量還要多。 單片機(jī)又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個
13、計算機(jī)系統(tǒng)集成到一個芯片上。相當(dāng)于一個微型的計算機(jī),和計算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺計算機(jī)。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習(xí)使用單片機(jī)是了解計算機(jī)原理與結(jié)構(gòu)的最佳選擇。 單片機(jī)內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影!......它主要是作
14、為控制部分的核心部件。 它是一種在線式實時控制計算機(jī),在線式就是現(xiàn)場控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計算機(jī)的(比如家用PC)的主要區(qū)別。 單片機(jī)芯片 單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機(jī),結(jié)果就會有天壤之別!只因為單片機(jī)的通過你編寫的程序可以實現(xiàn)
15、高智能,高效率,以及高可靠性! 第章方案設(shè)計 實現(xiàn)的方案較多,目前廣泛采用的是基于,本設(shè)計將介紹基于單片機(jī)實現(xiàn)的方案。 單片機(jī)系統(tǒng)方案此方案采用電路++晶振電路+復(fù)位電路+AT89C52+1602液晶 第三章 硬件設(shè)計 (一)80C52單片機(jī)的內(nèi)部結(jié)構(gòu) 圖3-1為80C52單片機(jī)功能結(jié)構(gòu)框圖 80C52 芯片內(nèi)部集成了 CPU、RAM、ROM、定時/計數(shù)器和I/O口等各功能部件,并由內(nèi)部總線把這些連接在一起。 80C52單片機(jī)內(nèi)部包含以下一些功能部件: 1 一個8位CPU; 2 一個片內(nèi)振蕩器和時鐘電路; 3 4KB ROM; 4
16、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)先級。 外時鐘源 外部事件計 中斷 控制 并 行 口 串行通信 圖3-1 80C52單片機(jī)功能結(jié)構(gòu)框
17、圖 (二) 80C52單片機(jī)的引腳功能 89C52單片機(jī)一般采用雙列直插DIP封裝,共40個引腳,圖3-2分別為引腳排列圖和邏輯符號圖。40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。 圖3-2 80C52引腳圖 1.電源 1 Vcc――芯片電源,接+5V; 2 Vss――接地端。 2.時鐘 XTAL1、XTAL2――晶體振蕩電路反相輸入端和輸出端。使用內(nèi)部振蕩電路時外接石英晶體。 3.控制線 控制線共有4根,其中3根是復(fù)用線。所謂復(fù)用線是指具有兩種功能,
18、正常使用時是一種功能,在某種條件下是另一種功能。 1 ALE/PROG――地址鎖存允許/片內(nèi)EPROM編程脈沖。 ①ALE功能:用來鎖存P0口送出的低8位地址。 80C52在并行擴(kuò)展外存儲器(包括并行擴(kuò)展I/O口)時,P0口用于分時傳送低8位地址和數(shù)據(jù)信號,且均為二進(jìn)制數(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 /
19、 6的固定頻率輸出,因此ALE信號也可作為外部芯片CLK時鐘或其他需要。但是,當(dāng)CPU執(zhí)行MOVX指令時,ALE將跳過一個ALE脈沖。 ALE端可驅(qū)動8個LSTTL門電路。 ②PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 2 PSEN――外ROM讀選通信號。 80C51讀外ROM時,沒個機(jī)器周期內(nèi)PSEN兩次有效輸出。PSEN可作為外ROM芯片輸出允許OE的選通信號。在讀內(nèi)ROM或讀外RAM時,PSEN無效。 PSEN可驅(qū)動8個LSTTL門電路。 3 RST/Vpd――復(fù)位/備用電源。
20、 ①正常工作時,RST(Reset)端為復(fù)位信號輸入端,只要在該引腳上連續(xù)保持兩個機(jī)器周期以上高電平,80C52芯片即實現(xiàn)復(fù)位操作,復(fù)位后一切從頭開始,CPU從0000H開始執(zhí)行指令。 ②Vpd功能:在Vcc掉電情況下,該引腳可接上備用電源,由Vpd向片內(nèi)供電,以保持片內(nèi)RAM中的數(shù)據(jù)不丟失。 4 EA/Vpp ――內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 ①EA功能:正常工作時,EA為內(nèi)外ROM選擇端。80C52單片機(jī)ROM尋址范圍為64KB,其中4KB在片內(nèi),60KB在片外(80C31芯片無內(nèi)ROM,全部在片外)。當(dāng)EA保持高電平時,先訪問內(nèi)ROM,但當(dāng)P
21、C(程序計數(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編程期間,此引腳用于施加編程電源Vpp。 對4個控制引腳,應(yīng)熟記起第一功能,了解其第二功能。 嚴(yán)格來講,80C52的控制線還應(yīng)該包括P3口的第二功能。 4. I/O引腳 80C52共有4個8位并行I/O端口,共32個引腳 1 P0口――8位雙向I/O口。 在不并行擴(kuò)展外存儲器 包括并行擴(kuò)展I/O口 時,
22、P0口可用作雙向I/O口。 在并行擴(kuò)展外存儲器 包括并行擴(kuò)展I/O口 時, P0口可用于分時傳送低8位地址 地址總線 和8位數(shù)據(jù)信號 數(shù)據(jù)總線 。位結(jié)構(gòu)如圖3-3所示。P0口能驅(qū)動8個LSTTL門。 圖3-3 P0口位結(jié)構(gòu) 2 P1口――8位準(zhǔn)雙向I/O口 “準(zhǔn)雙向”是指該口內(nèi)部有固定的上拉電阻 。位結(jié)構(gòu)如圖3-4所示。 P1口能驅(qū)動為4個LSTTL門。 圖 3-4 P1口位結(jié)構(gòu) 3 P2口――8位準(zhǔn)雙向I/O口。在不并行擴(kuò)展外存儲器 包括并行擴(kuò)展I/O口 時, P2口可用作雙向I/O口。在并行擴(kuò)展外存儲器 包括并行擴(kuò)展I/O口 時, P2口可用于傳送高8位
23、地址 屬地址總線 。P2口能驅(qū)動4個LSTTL門。P2口的位結(jié)構(gòu)如圖3-5所示,引腳上拉電阻同P1口。在結(jié)構(gòu)上,P2口比P1口多一個輸出控制部分。 圖 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.0――RXD:串行口輸入端; P3.1――TXD:串行口輸出端;
24、 P3.2――INT0:外部中斷0請求輸入端; P3.3――INT1:外部中斷1請求輸入端 P3.4――T0:定時/計數(shù)器0外部信號輸入端; P3.5――T1:定時/計數(shù)器1外部信號輸入端; P3.6――WR:外RAM寫選通信號輸出端; P3.7――RD:外RAM讀選通信號輸出端。 上述4個I/O口,各有各的用途。 在不并行擴(kuò)展外存儲器 包括并行擴(kuò)展I/O口 時, 4個I/O口都可作為雙向I/O口用。在并行擴(kuò)展外存儲器 包括并行擴(kuò)展I/O口 時, P0口專用于分時傳送低8位地址信號和8位數(shù)據(jù)信號,P2口專用
25、于傳送高8位地址信號。P3口根據(jù)需要常用于第二功能,真正可提供給用戶使用的I/O口是P1口和一部分未用作第二功能的P3口端線。 (三)模塊設(shè)計 1.單片機(jī)與P0口排阻 ,本設(shè)計主要的硬件80C52以及上拉電阻連接線路圖。 2.USB供電電路部分 ,從外部引入5V的直流電,按下S1可以為單片機(jī)、復(fù)位電路提供電源。 3. 復(fù)位電路 ,復(fù)位電路主要由型號為10UF/16V的電解電容,10K,1K的電阻以及按鍵S22構(gòu)成,RST接芯片的相應(yīng)引腳RST,構(gòu)成上電復(fù)位和手動復(fù)位。上電復(fù)位是經(jīng)過電容和10K的電阻上電以后就進(jìn)行復(fù)位。手動復(fù)位是當(dāng)開關(guān)S22按下時給引腳RST為高電平1,
26、斷開時引腳為低電平0。 4. 顯示模塊設(shè)計 (1) LCD顯示模塊 LCD顯示器分為字段顯示和字符顯示兩種。其中字段顯示與LED顯示相似,只要送對應(yīng)的信號到相應(yīng)的管腳就能顯示。字符顯示是根據(jù)需要顯示基本字符。本設(shè)計采用的是字符型顯示。 系統(tǒng)中采用LCD1602作為顯示器件輸出信息與傳統(tǒng)的LED數(shù)碼管顯示器件相比,液晶示模塊具有體積小、功耗低、顯示內(nèi)容豐富等優(yōu)點,而且不需要外加驅(qū)動電路,現(xiàn)在液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計中最常用的顯示器件了。LCD1602可以顯示2行16個漢字。 LCD1602模塊的引腳如圖所示,其引腳功能如下: RS:數(shù)據(jù)和指令選擇控制端,RS 0命令狀態(tài);
27、RS 1數(shù)據(jù) R/W:讀寫控制線,R/W 0寫操作;R/W 1讀操作 A:背光控制正電源 K:背光控制地 E:數(shù)據(jù)讀寫操作控制位,E線向LCD模塊發(fā)送一個脈沖,LCD模塊與單片機(jī)間將進(jìn)行一次數(shù)據(jù)交換 DB0~DB7:數(shù)據(jù)線,可以用8位連接,也可以只用高4位連接,節(jié)約單片機(jī)資源。 VDD:電源端 VEE:亮度控制端(1-5V) VSS:接地端 圖LCD1602模塊 LCD1602的顯示操作 四種基本操作 LCD有四種基本操作具 LCD與單片機(jī)之間有四種基本操作RS R/W 操作 0 0 寫命令操作 初始化,光標(biāo)定位等 0 1 讀
28、狀態(tài)操作 讀忙標(biāo)志位 1 0 寫數(shù)據(jù)操作 要顯示內(nèi)容 1 1 讀數(shù)據(jù)操作 可以把顯示存儲區(qū)中的數(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)字流.1所示。 .1 讀入狀態(tài)字流程圖 2 命令字 .2所示為命令字,其主要介紹了指令名稱、控制信號及控制代碼。其指令名稱是指要實現(xiàn)的功能;控制代號是采用的十六進(jìn)制的數(shù)值表示的。 1清零操作是指輸入某命令字后即能將整個屏幕顯示的內(nèi)容全部清除; 2歸home位:將光標(biāo)送到初始
29、位;其中的*號為任意,高低電平均可; 3輸入方式:設(shè)光標(biāo)移動方向并指定整體顯示,是否移動。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(xiàn)顯示字型;如DL 1:8位 0,4位N 1:2行 0:1行G 1:510 0:57 點陣 7CGRAM地址設(shè)制:相當(dāng)于一個數(shù)據(jù)庫,可以在其中選擇所需要的符號; 8DDRAM地址設(shè)制:顯示定位; 9讀BF和AC:B為最高位忙的標(biāo)志,F(xiàn)為標(biāo)志位; 10
30、寫數(shù)據(jù):將數(shù)據(jù)按要求寫入到對應(yīng)的單元; 11讀數(shù)據(jù):讀相應(yīng)單元內(nèi)的數(shù)據(jù);.2 命令字 3 寫命令字 .2可知當(dāng)RS 0,R/W 0時,才可以通過單片機(jī)或用戶指令把數(shù)據(jù)寫到LCD模塊,此時就對LCD進(jìn)行調(diào)制??刹捎貌樵兎绞剑合茸x入狀態(tài)字,再判斷忙標(biāo)志位,最后寫命令字。.3所示為寫命令字的流程圖。 .3 寫命令字流程圖 1定義光標(biāo)位置 顯示數(shù)據(jù)的某位,就是把顯示數(shù)據(jù)寫在相應(yīng)的DDRAM地址中,DDRAM地址占7位。SetDDRAM address命.4所示。光標(biāo)定位,寫入一個顯示字符后,DDRAM地址會自動加1或減1,加或減由輸入方式設(shè)置。.4 Set DDRAM address命令
31、 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 第1行DDRAM地址與第2行DDRAM地址并不連.4.4 DDRAM地址 row 1 2 3 4 5 … 14 15 16 line1 80H 81H 82H 83H 84H … 8dH 8eH 8fH line2 0c0H 0c1H 0c2H 0c3H 0c4H … 0cdH 0ceH 0cfH 2LCD初始化 從通電開始延時,先經(jīng)過判忙后再進(jìn)行功能設(shè)置,過一段時間后可以設(shè)制顯示狀態(tài)(如設(shè)制行、位或陣列)再經(jīng)過延時清屏后才可以設(shè)置
32、輸入方式,具體實現(xiàn)過.5所示。 .5 LCD初始化流程圖 LCD顯示程序的設(shè)計一般先要確定LCD的初始化、光標(biāo)定位、確定顯示字符后,.6顯示。 .6 LCD顯示程序流程圖 單片機(jī)工作的時間基準(zhǔn)是由時鐘電路提供的,在單片機(jī)的XTAL1和XYAL2兩個管腳接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時鐘電路,電路中電容器和對振蕩頻率有微調(diào)作用,通常取 3010 pF石英晶體選擇6MH或12MHMHz只是為計算串口通信的波特率精準(zhǔn))都可以。時鐘電路如圖所示 ,在單片機(jī)的FM管腳接
33、蜂鳴器電路,電路中 ,分別連接單片機(jī)的對應(yīng)口,本設(shè)計中的時鐘調(diào)節(jié)只用到了S9,S13,S17來調(diào)節(jié)時鐘進(jìn)行時鐘的調(diào)節(jié)。(注:調(diào)節(jié)時,如果調(diào)節(jié)按鍵不起作用,就是下載的USB口拔掉方可調(diào)節(jié),因為那是鍵盤接口和下載口連接電路有沖突。) 第四章 系統(tǒng)軟件設(shè)計 (一)軟件程序流程 根據(jù)需要,可將系統(tǒng)軟件按照功能劃分為4個模塊,分別是主程序模塊、液晶顯示模塊、中斷服務(wù)程序模塊,各模塊的功能關(guān)系如圖4-1所示。編寫系統(tǒng)軟件時,可首先編寫各模塊的底層驅(qū)動程序,而后是系統(tǒng)聯(lián)機(jī)調(diào)試,編寫上層主程序。 圖41 結(jié)合電路,程序的總體思路是: 1、點復(fù)位鍵后,進(jìn)行
34、時間顯示,從0時0分0秒開始。 2、按下功能鍵時,進(jìn)行功能選擇,此時按下時,光標(biāo)閃爍,并且每次按下都伴隨著“滴”的一聲,同時按下功能鍵四次就會重新走時,下同。 3、按下增大鍵時進(jìn)行增大調(diào)整,每次按下伴隨蜂鳴器響。 4、按減小鍵時進(jìn)行減小調(diào)整,同樣,每次按下時也伴隨著蜂鳴器響。 (二)程序設(shè)計步驟 在程序設(shè)計過程中,我遇到了很多困難,這部分也是讓我學(xué)到很多東西的地方。 首先,我學(xué)習(xí)了定時器的相關(guān)知識,計數(shù)器的使用是很重要的組成部分,在這個設(shè)計中選擇計數(shù)器T0。T0的工作方式有: 方式0:不推薦 方式1:16位計數(shù)器,常用 方式2:自動重裝初值的8位定時/計數(shù)器 方式3:T0相
35、當(dāng)于兩個獨立的8位定時/計數(shù)器 此程序采用方式1,方式1的定時時間t為t 216-M *12/fosc。其中M為定時器初值,fosc為12MHz(本設(shè)計用的11.0592MHz),若M0 t 65536*12/2*106 65.536ms。因此可取50ms為計時單位,初值M應(yīng)為50*10-3*106 216-M。M 15536 1XXXXXXXXXX000 3CB0。即定時器初值為 TH0 65536-50000 /256;TL0 65536-50000 %256;定時器中斷20次為一秒,這部分在中斷程序中用到。 其次,我參看了文獻(xiàn)中的設(shè)計思路,做到胸有成竹后再進(jìn)行具體的程序書寫工
36、作。認(rèn)真學(xué)習(xí)了教科書中關(guān)于C語言編程的問題,熟悉了C語言的編程方法和語法習(xí)慣。 第三步就是進(jìn)行具體的程序編寫工作。 (三)程序的主要模塊 1.延遲程序 在液晶顯示時,必然用到延遲程序,這里使用延遲50ms的程序,此程序需要反復(fù)調(diào)用。此段程序是很簡單的,但就是在這段簡單的程序上,也會出現(xiàn)問題。 void delay uint xms uint i,j; for i xms;i 0;i-- for j 110;j 0;j-- ; 2. 1602液晶讀寫程序 void write_com uchar com rs 0; lcden
37、0; P0 com; delay 5 ; lcden 1; delay 5 ; lcden 0; 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+0
38、x40+add ; write_date 0x30+shi ; write_date 0x30+ge ; 3. 初始化程序 void init uchar num; rd 0; dula 0; wela 0; lcden 0; shi 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 0x
39、80 ; for num 0;num 15;num++ write_date table[num] ; 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 read_add 2 ; miao read_add 1 ; write_shifenmiao 4,shi ; write_shif
40、enmiao 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
41、 TR0 0; write_com 0x80+0x40+10 ; write_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;
42、 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
43、0; write_shifenmiao 10,miao ; write_com 0x80+0x40+10 ; write_add 1,miao ; if s1num 2 fen++; if fen 60 fen 0; write_shifenmiao 7,fen ; write_com 0x80+0x40+7 ; write_add 2,fen ;
44、 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
45、 delay 5 ; if s3 0 while !s3 ; di ; if s1num 1 miao--; if miao -1 miao 59; write_shifenmiao 10,miao ; write_com 0x80+0x40+10 ;
46、 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
47、 shi--; if shi -1 shi 23; write_shifenmiao 4,shi ; write_com 0x80+0x40+4 ; write_add 3,shi ; 5.主程序 void main init ; while 1 keyscan ; 6.定時器中斷程序
48、 void timer0 interrupt 1 TH0 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_a
49、dd 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ù)程序 #include"24c02.h" ////////////////////////////////////////////////
50、////////////////////////// ///////////////////////////////////////////////////////////////// bit write 0; sbit sda P2^0; sbit scl P2^1; void delay0 ;; void start sda 1; delay0 ; scl 1; delay0 ; sda 0; delay0 ; void stop sda 0; delay0 ; scl 1; delay0
51、 ; sda 1; delay0 ; void respons uchar i; scl 1; delay0 ; while sda 1 && i 250 i++; scl 0; delay0 ; void init_24c02 sda 1; delay0 ; scl 1; delay0 ; void write_byte uchar date uchar temp,i; temp date; for i 0;i 8;i++ temp temp 1
52、; scl 0; delay0 ; sda CY; delay0 ; scl 1; delay0 ; scl 0; delay0 ; sda 1; delay0 ; uchar read_byte uchar k,i; scl 0; delay0 ; sda 1; delay0 ; for i 0;i 8;i++ scl 1; delay0 ; k k 1 |sda; sc
53、l 0; delay0 ; return k; void write_add uchar adress,uchar date start ; write_byte 0xa0 ; respons ; write_byte adress ; respons ; write_byte date ; respons ; stop ; char read_add uchar adress uchar date; start ; write_byte 0x
54、a0 ; respons ; start ; write_byte adress ; respons ; start ; write_byte 0xa1 ; respons ; date read_byte ; stop ; return date ; //20C02*/ ///////////////////////////////// 第五章 設(shè)計總結(jié) 本設(shè)計能夠很準(zhǔn)確的走時,并能夠通過硬件對時鐘進(jìn)行時間調(diào)整。附件都給予明確的顯示。 功能介紹: 顯示 第一行: X(分別顯示 .星期)第二行:XX:
55、XX:XX(分別顯示 ) 2.時間可調(diào):功能鍵(S9)按下時,伴隨著蜂鳴器“滴”的響聲,當(dāng)按鍵松開時蜂鳴器才不再發(fā)出聲音。增大鍵(S13)按下時,光標(biāo)閃爍的位置進(jìn)行增大,蜂鳴器的工作如同功能鍵的按下時的工作。繼續(xù)按下減小鍵(S17)按下時,光標(biāo)閃爍的位置進(jìn)行減小,蜂鳴器的工作如同功能鍵的按下時的工作。當(dāng)功能鍵按下四次,返回到正常顯示狀態(tài)。 下載線和電源線插接說明:本實驗都采用兩個USB進(jìn)行下載操作以及電源的供電操作,下載采用STC_ISP_V3.1軟件進(jìn)行下載。 調(diào)試要點:首先確保板子上各器件的完好性,檢查無誤后插上AT89S52并燒寫本程序的“電子時鐘.hex”,根據(jù)顯示現(xiàn)象調(diào)
56、試程序直至成功。上電運(yùn)行時,1602LCD液晶開始顯示00:00:00,時鐘開始走時。 制作心得:在這次課程設(shè)計的調(diào)試過程中,我遇到很多問題,但是經(jīng)過自己以及老師,朋友的幫助下調(diào)試好自己的程序。該電路缺少整點報時及鬧鐘功能,由于能力和時間問題只能到此為止,很是遺憾,但在查找資料的過程中學(xué)到了許多,同時在協(xié)作過程中增進(jìn)同學(xué)間的友誼。 參考文獻(xiàn)(References): [1] 張毅剛.新編MCS―51單片機(jī)應(yīng)用設(shè)計.哈爾濱工業(yè)大學(xué)出版社.2003 [2] 譚浩強(qiáng).C程序設(shè)計 .清華大學(xué)出版社.1991 [3] 郭天祥.新概念51單片機(jī)C語言教程 .電子工業(yè)出版社.2009.1 [4]
57、 楊欣等.電子設(shè)計從零開始[M] .清華大學(xué)出版社.2005-10 [5] 邱關(guān)源.電路[M] .高等教育出版社.2003-2 致 謝 首先感謝我的論文指導(dǎo)老師趙鵬老師,我的論文是在他的悉心指導(dǎo)下完成的。趙老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣,他循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。 其次我要感謝我的系主任白世昌老師,在我求學(xué)的三年期間,無論是在學(xué)習(xí)還是在生活上,白老師和趙老師都給了我無微不至的關(guān)心。他們正直樂觀的人格魅力一直感染著我,這必將激勵我在今后的工作和生活中不斷前進(jìn)。 再次我要感謝一直陪同我走完大學(xué)三年求學(xué)之路的應(yīng)用電子班所有的兄弟姐妹們,謝
58、謝他們平時對我無微不至的照顧和關(guān)心。我很高興能生活在一個互助友愛和充滿活力的集體中,從他們的身上我學(xué)到了很多,同時他們給我的大學(xué)生活留下了許多美好的回憶。 最后,我要特別感謝我的父母。在我求學(xué)的過程中他們付出的不僅僅是辛勤的勞動和汗水,而是世界上最崇高、最偉大的愛。他們所做的一切是我這一生都無法回報的。 真誠感謝給予我熱情幫助和關(guān)注的所有人。 附件1 實驗板顯示時鐘 附件2 時鐘調(diào)節(jié)顯示狀態(tài) 15
59、 16 26 振蕩器及 時序 OSC 8052CPU 程序存儲器4KB ROM 數(shù)據(jù)存儲器256B 3個16位定時器/計數(shù)器 64K總線擴(kuò)展控制器 可編程I/O 可編程全雙工串行口 VCC 地址/數(shù)據(jù) 控制 鎖存器 P
60、0.X D CP Q Q MUX V1 V2 P0.X 引腳 讀鎖存器 寫鎖存器 內(nèi)部總線 讀引腳 & 1 VCC 鎖存器 P1.X D CP Q Q P1.X 引腳 讀鎖存器 寫鎖存器 內(nèi)部總線 讀引腳 內(nèi)部上拉電阻 鎖存器 P2.X D CP Q Q 讀鎖存器 寫鎖存器 內(nèi)部總線 讀引腳 VCC P2.X 引腳 內(nèi)部上拉電阻 1 地址 控制 MUX VSS VDD VO RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A K LCD 模 塊 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 系統(tǒng)主程序 液晶管顯示 24C02自動保護(hù)程序護(hù)程序 中斷服務(wù) .
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案