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

下載本文檔

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

文檔簡介

1、i 目錄 摘要摘要.1 1 第一章第一章 緒論緒論.2 2 第二章第二章 設(shè)計要求與方案論證設(shè)計要求與方案論證.3 3 2.1 設(shè)計要求.3 2.1.1 基本要求.3 2.1.2 發(fā)揮部分.3 2.2 系統(tǒng)基本方案選擇和論證.3 2.2.1 芯片的選擇.3 2.2.2 顯示模塊選擇方案和論證.3 2.2.3 時鐘信號的選擇方案和論證.4 2.3 電路設(shè)計最終方案決定.4 第三章第三章 系統(tǒng)的硬件設(shè)計與實現(xiàn)系統(tǒng)的硬件設(shè)計與實現(xiàn).5 5 3.1 數(shù)字鐘電路設(shè)計框圖.5 3.2 系統(tǒng)硬件概述.5 3.3 硬件電路結(jié)構(gòu)的設(shè)計.5 3.3.1 單片機主控制模塊的設(shè)計.5 3.3.2 顯示模塊的設(shè)計.6

2、3.3.3 電路原理及其說明.7 3.3.4 led 原理說明.9 3.3.5 開關(guān)模塊說明.11 第四章第四章 系統(tǒng)的軟件設(shè)計系統(tǒng)的軟件設(shè)計.1212 4.1 程序流程框圖.12 4.2 lcd 的初始化與及顯示程序.13 第五章第五章 系統(tǒng)調(diào)試系統(tǒng)調(diào)試.1515 5.1 硬件調(diào)試.15 5.2 軟件調(diào)試.15 結(jié)論結(jié)論.1616 致謝致謝.1717 參考文獻參考文獻.1818 附錄附錄.1919 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 1 頁 摘要 數(shù)字鐘是對.年、月、日、周、時、分、秒,數(shù)字顯示及到時提醒的計時裝置,廣泛 用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘?/p>

3、生活中不可少的必需品, 由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠遠超 過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便。 最常見的數(shù)字鐘通常使用單片機模塊控制,一種用單片機原理實現(xiàn)時、分、秒計 時的裝置,與機械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機械裝置,具有更更 長的使用壽命,因此得到了廣泛的使用。 本次設(shè)計就是通過用單片機為主控制,通過電路仿真而實現(xiàn)。首先使用 proteus 7 professional 軟件進行繪制硬件電路圖,用 keil 軟件進行編程與調(diào)試, 最終生成 hex 文件,傳入單片機內(nèi)部,從而實現(xiàn)仿真效果。 此次設(shè)計的多功能數(shù)字時鐘

4、具有顯示年、月、日、周、時、分、秒及對各日期與時 間的調(diào)整、校正功能。整個時鐘通過簡易的鍵盤來實現(xiàn)各個功能,界面簡潔、直觀、 易于操作。 關(guān)關(guān)鍵詞鍵詞:數(shù)字鐘、仿真、單片機 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 2 頁 第一章 緒論 20 世紀(jì)末,單片機技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透 了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時 也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們 來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時間。忘記了要做的 事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但

5、是,一旦重要事情,一時的耽 誤可能釀成大禍。 目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著 cmos 化、低 功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。下面是單 片機的主要發(fā)展趨勢。 單片機應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和 設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通 過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制 技術(shù)的一次革命。 單片機模塊中最常見的是數(shù)字時鐘,數(shù)字時鐘是一種用單片機原理實現(xiàn)時、分、 秒計時的裝置,與機械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機械

6、裝置,具有 更更長的使用壽命,因此得到了廣泛的使用。 數(shù)字時鐘是采用單片機原理實現(xiàn)對.年、月、日、周、時、分、秒,數(shù)字顯示及到時 提醒的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘I?活中不可少的必需品,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得 數(shù)字鐘的精度,遠遠超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便, 而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程 序自動控制、定時廣播、自動起閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時 電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字時鐘及 擴大

7、其應(yīng)用,有著非常現(xiàn)實的意義。 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 3 頁 第二章 設(shè)計要求與方案論證 2.1 設(shè)計要求 2.1.1 基本要求 1 設(shè)計能支持年月日星期時分秒的時鐘,時鐘要具有時間調(diào)整功能。 2 該設(shè)計要用 keil 軟件進行編程與調(diào)試,利用 proteus 7 professional 軟件 進行繪制硬件電路圖且進行仿真。 2.1.2 發(fā)揮部分 1 鬧鐘時間精度。 2 時鐘功耗小于 0.5ma/5v。 2.2 系統(tǒng)基本方案選擇和論證 本時鐘的設(shè)計具體有兩種方法。一是通過單純的數(shù)字電路來實現(xiàn);二是使用 單片機來控制實現(xiàn)。本次設(shè)計選取了較為簡單的單片機控制;而選擇這一

8、方法后還 要進行各個芯片的選擇。以下是我在這次設(shè)計中所用的方案。 2.2.1 芯片的選擇 方案一:采用 at89c51 芯片,其為高性能 cmos 8 位單片機,該芯片內(nèi)含有 4k bytes 的可反復(fù)擦寫的只讀程序存儲器(perom)、128 bytes 的隨機存取數(shù)據(jù)存儲器 (ram)、 32 位可編程 i/o 口線、2 個 16 位定時/計數(shù)器、6 個中斷源、可編程串行 uart 通道及低功耗空閑和掉電模式,但是由于 at89c51 芯片可擦寫的空間不夠大,且 中斷源提供的較小,為防止運行過程中出現(xiàn)不必要的問題,我們不選用 at89c51。 方案二:采用 at89c52 芯片,它除了具備

9、 at89c51 的所有功能與部件外,其最大 的優(yōu)勢就是 at89c52 提供了 8k 字節(jié)可擦寫 flash 閃速存儲器空間、8 個中斷源、及 256*8 字節(jié)內(nèi)部存儲器(ram),解決了我們對可反復(fù)擦寫的 flash 閃速存儲器空間大 小與中斷源的不夠問題的擔(dān)心。 2.2.2 顯示模塊選擇方案和論證 方案一:采用 led 數(shù)碼管顯示,顯示較為清楚,但是由于設(shè)計要求時鐘功能比較 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 4 頁 重要,因此用如用 led 進行顯示會使得硬件電路較為復(fù)雜,且在軟件實現(xiàn)上也較難, 為實現(xiàn)功能帶來了一定的困難。 方案二:采用 lcd,電路比較簡單,且在軟件設(shè)

10、計上也相對簡單,具有低功耗功能, 能夠滿足設(shè)計最優(yōu)的要求。因此,在設(shè)計中我采用的顯示模塊是 lcd 顯示。 2.2.3 時鐘信號的選擇方案和論證 方案一:直接采用單片機定時計數(shù)器提供的秒信號,使用程序?qū)崿F(xiàn)年、月、日、周、 時、分、秒計數(shù)。采用此種方案可減少芯片的使用,節(jié)約成本,實現(xiàn)的時間誤差較小, 但程序設(shè)計較為復(fù)雜。 方案二:采用 ds1302 時鐘芯片實現(xiàn)時鐘, ds1302 芯片是一種高性能的時鐘芯片, 可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M行計數(shù),而且精度高,256 位 的 ram 作為數(shù)據(jù)暫存區(qū),工作電壓 2.5v5.5v 范圍內(nèi),2.5v 時耗電小于 300na。且硬

11、 件電路連接較為簡單,程序設(shè)計容易實現(xiàn)。 2.3 電路設(shè)計最終方案決定 綜上各方案所述,對此次數(shù)字時鐘的方案選定為: 采用 at89c52 作為主控制系統(tǒng); 并由其定時計數(shù)器提供時鐘; lcd 作為顯示電路,來實現(xiàn)功能。 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 5 頁 第三章 系統(tǒng)的硬件設(shè)計與實現(xiàn) 3.1 數(shù)字鐘電路設(shè)計框圖 lcd 動態(tài)掃描 顯示模塊 at89c52 主控制器 開關(guān)調(diào)節(jié)模塊 晶振電路 模塊 復(fù)位電路 圖(3-1)電路設(shè)計框圖 3.2 系統(tǒng)硬件概述 該電路是由 at89c52 單片機為控制核心,具有在線編程功能,低功耗,能在 3v 超 低壓工作;時鐘電路也由 at89

12、c52 單片機提供,減少芯片的使用,節(jié)約成本,它可以 對年、月、日、周、日、時、分、秒進行計時,具有閏年補償功能。時間顯示部份采用液 晶 lm016l(lcd)。 3.3 硬件電路結(jié)構(gòu)的設(shè)計 3.3.1 單片機主控制模塊的設(shè)計 此次單片機數(shù)字時鐘的設(shè)計采用 at89c52 為主控制芯片,并由其定時器提供時 鐘,利用 lcd 進行時間按顯示。下圖為用 proteus 軟件畫的原理圖: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 6 頁 圖(3-2)仿真電路圖 3.3.2 顯示模塊的設(shè)計 如圖(3-4)所示,該設(shè)計采用液晶顯示裝置即把時鐘信號以及溫度信號同時顯示 在液晶顯示器上,不僅結(jié)構(gòu)簡單

13、清新可見,而且省電也容易控制。數(shù)據(jù)的傳輸采用 p0 口進行控制, 其引腳 vss 接地,vee 接 vcc,rs 和 rw、e 是顯示器的控制端分別由單 片機的引腳 p1.0、p1.1、p1.3 進行控制。而 vdd 是作為液晶顯示器的灰度調(diào)節(jié)引腳, 接一變阻器來改變其顯示的清晰度。 圖(3-3) lm016l 液晶顯示器 3.3.3 電路原理及其說明 1 主控制芯片 at89c52 的原理及說明 at89c52 是美國 atmel 公司生產(chǎn)的低電壓,高性能 cmos8 位單片機,片內(nèi)含 8k 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 7 頁 bytes 的可反復(fù)擦寫的只讀程序存儲器(

14、perom)和藹可親 256 bytes 的隨機存取數(shù)據(jù) 存儲器(ram),器件采用 atmel 公司的高密度、非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn) mcs- 51 指令系統(tǒng)及 8052 產(chǎn)品引腳兼容,片內(nèi)置通用 8 位中央處理器(cpu)和 flash 存儲 單元,功能強大 at89c52 單片機適合于許多較為復(fù)雜控制應(yīng)用場合。 圖(3-4)at89c52 引腳 2 主要性能參數(shù): 與 mcs-51 產(chǎn)品指令和引腳完全兼容 8k 字節(jié)可重擦寫 flash 閃速存儲器 1000 次擦寫周期 全靜態(tài)操作:0hz24mhz 三級加密程序存儲器 2568 字節(jié)內(nèi)部 ram 32 個可編程 i/o 口線 3

15、個 16 位定時/計數(shù)器 8 個中斷源 可編程串行 uart 通道 低功耗空閑和掉電模式 3 引腳功能 vcc(40):電源電壓 gnd(20):接地 p0 口(32-39):p0 口是一個 8 位雙向 i/o 接口,也即地址/數(shù)據(jù)總線復(fù)用口。作為 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 8 頁 輸出口用時,每位吸收電流的方式驅(qū)動 8 個 ttl 邏輯門電路,對端口 p0 寫“1”時,可 作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器時,這組口線分時轉(zhuǎn)換地址(低 8 位)和 數(shù)據(jù)總線復(fù)用。 p1 口(1-8):p1 是一個帶內(nèi)部上拉電阻的 8 位雙向 i/o 口,p1 的輸出緩沖級可驅(qū) 動

16、(吸收或輸出電流)4 個 ttl 邏輯門電路,對端口寫“1”通過內(nèi)部的上拉電阻把端口 拉到高電平時,此時可作輸入口。作為輸入品使用時,因為內(nèi)部存在上拉電阻,某個 引腳被外部信號拉低時會輸出一個電流。與 at89c51 不同之處是,p1.0 和 p1.1 還可 以分別作為定時/計數(shù)器 2 的外部計數(shù)輸入(p1.0/t2)和輸入(p1.1/t2ex)。 p2 口(21-28):p2 是一個帶有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 的輸出緩沖級 可驅(qū)動(吸收或輸出電流)4 個 ttl 邏輯門電路,對端口 p2 寫“1”,通過內(nèi)部的上拉電 阻把端口拉到高電平時,此時可作輸入口。作為輸入品使用時

17、,因為內(nèi)部存在上拉電 阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或 16 位地 址的外部數(shù)據(jù)存儲器(例如執(zhí)行 movx dptr 指令)時,p2 口送出高 8 位地址數(shù)據(jù)。在 訪問 8 位地址的外部數(shù)據(jù)存儲器時,p2 口輸出 p2 鎖存器的內(nèi)容。 p3 口(10-17):p3 是一組帶有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p3 口輸出緩沖級 可驅(qū)動(吸收或輸出電流)4 個 ttl 邏輯門電路,對端口 p3 寫“1”時,它們被內(nèi)部上拉 電阻拉高并可作為輸入端口,此時,被外部拉低的 p3 口將用上拉電阻輸出電流。p3 口除了作為一般的 i/o 口線外,更重要的用途是它的第

18、二功能,如下表所示: 端口引腳第二功能 p3.0rxd(串行輸入口) p3.1txd(串行輸出口) p3.2int0(外中斷 0) p3.3int1(外中斷 1) p3.4t0(定時/計數(shù)器 0) p3.5t1(定時/計數(shù)器 1) p3.6wr(外部數(shù)據(jù)存儲器寫通道) p3.7rd(外部數(shù)據(jù)存儲器讀通道) 表 3-1 p3 口的第二功能 rst(9):復(fù)位信號輸入端。當(dāng)振蕩器工作時,rst 引腳出現(xiàn)兩個機器周期以上高電 平將使單片機復(fù)位。 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 9 頁 ale/prog(30):地址鎖存有效信號輸出端。當(dāng)訪問片外程序存儲器或數(shù)據(jù)存儲器 時,ale(地

19、址鎖存允許)輸出脈沖用于鎖存地址的低 8 位字節(jié),一般情況下,ale 仍以 時鐘振蕩頻率的 1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的, 要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個 ale 脈沖。 psen(29):程序存儲允許輸出端。是片外程序存儲器的讀選通信號,當(dāng) at89c52 由外部程序存儲器取指令(或數(shù)據(jù))時,每個周期兩次 psen 有效,即輸出兩個脈沖。在 此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次 psen 信號。 ea/vpp(31):外部訪問允許。欲使 cpu 僅訪問外部程序存儲器(地址為 0000h ffffh),ea 端必須保持低電平(接地),需注意

20、的是:如果加密位 lb1 被編程,復(fù)位時 內(nèi)部會鎖 ea 端狀態(tài)。如 ea 端為高電平(接 vcc 端),cpu 則執(zhí)行內(nèi)部程序存儲器中的 指令。flash 存儲器編程時,該引腳加上+12v 的編程允許電源 vpp,當(dāng)然這必須是該 器件是使用 12v 編程電壓 vpp。 xtal1(19):振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。 xtal1(18):振蕩器反相放大器的輸出端。通過 xtal1、xtal2 外接晶振后,即可構(gòu) 成自激振蕩器,驅(qū)動內(nèi)部時鐘發(fā)生器向主機提供時鐘信號。 4 特殊功能寄存器 在 at89c52 片內(nèi)存儲器中,80h-ffh 共 128 個單元為特殊功能寄存器(sfr

21、),其中 包括 b 寄存器、累加器、程序狀態(tài)寄存器(psw)、定時/計數(shù)器控制、中斷優(yōu)級控制寄 存器(ip)、p3 口鎖存寄存器、中斷允許控制寄存器(ie)、串行口控制寄存器等。它們 可運用來設(shè)置片內(nèi)電路的運行方式,記錄電路的運行狀態(tài),mcs-51 單片機對特殊功能 寄存器采取與片內(nèi) ram 統(tǒng)一編址的方法,可按字節(jié)地址直接尋址。在已有的基礎(chǔ)上 at89c52 與 at89c51 相比還提供了兩個定時/計數(shù)器。定時/計數(shù)器 2 的控制和狀態(tài)位 位于 t2con 與 t2mod,該功能的數(shù)在自動裝載的情況下可裝入到寄存器中,提高了效 率。 3.3.4 lcd 原理說明 在實際應(yīng)用中,用戶很少直接

22、設(shè)計 lcd 顯示器驅(qū)動接口,一般是直接使用專用 的 lcd 顯示驅(qū)動器和 lcd 顯示模塊。其中,lcd 顯示模塊 lcm(liquid crystal dis play module)是把 lcd 顯示器、背景光源、線路板和驅(qū)動集成電路等部件構(gòu)成一個 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 10 頁 整體,作為一個獨立的部件使用,具有功能較強、易于控制、接口簡單等優(yōu)點,在 單片機系統(tǒng)中應(yīng)用較多。其內(nèi)部結(jié)構(gòu)如圖 2-8 所示。lcd 顯示模塊只留一個接口與 外部通信。顯示模塊通過這個接口接收顯示命令和數(shù)據(jù),并按指令和數(shù)據(jù)的要求進 行顯示。外部電路通過這個接口讀出顯示模塊的工作狀態(tài)和

23、顯示數(shù)據(jù)。lcd 顯示模 塊一般帶有內(nèi)部顯示 ram 和字符發(fā)生器,只要輸入 ascii 碼就可以進行顯示。lcd 顯示模塊按功能顯示可分為:lcd 段式顯示模塊、lcd 字符型顯示模塊、lcd 圖形顯 示塊三類。液晶顯示器因其功耗低、重量輕而成為便攜式應(yīng)用中的主流顯示技術(shù)。 這里所用的字符型液晶模塊是一種用 5x7 點陣圖形來顯示字符的液晶顯示器,根據(jù) 顯示的容量可以分為 1 行 16 個字、2 行 16 個字、2 行 20 個字等等。液晶顯示有點 振式和字符式兩種,在這里采用字符式液晶顯示器 1602 來實現(xiàn)顯示電路的功能。 lcd 驅(qū)動器 lcd 顯示器 lcd 控制器 vss vdd

24、vl rs r/w e d0-d7 圖(3-4)lcd 顯示電路 由于 1602 液晶顯示器是本身帶有驅(qū)動模塊的液晶屏,它只有并口線和一些控制 線,與單片機的連接有兩種不同的方法,直接訪問方式和間接訪問方式。直接訪問 方式就是微處理器把液晶顯示模塊當(dāng)作存儲器或 i/o 設(shè)備直接掛在總線上,模塊 8 位數(shù)據(jù)總線與微處理器的數(shù)據(jù)總線相連,用讀操作 或?qū)懖僮?信號與地址信號共同 產(chǎn)生控制信號。 3.3.5 開關(guān)模塊說明 校時電路主要靠鍵盤來控制。鍵盤是一組按鍵的集合。共有四個按鍵,分別是: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 11 頁 改變時間、增加、減少、清零。它是嵌入式計算機系統(tǒng)中

25、不可缺少的外圍電路。是 實現(xiàn)人機對話的紐帶,借助鍵盤可以向計算機輸入程序、置數(shù)、邏輯操作以及寫入 程序和程序檢測等。 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 12 頁 第四章 系統(tǒng)的軟件設(shè)計 4.1 程序流程框圖 開始 初始化程序 主鍵值檢測 根據(jù)主鍵進行散轉(zhuǎn) 有則主鍵值加一 時 間 秒 鐘 調(diào) 整 時 間 分 鐘 調(diào) 整 時 間 小 時 調(diào) 整 時 間 周 調(diào) 整 時 間 日 調(diào) 整 時 間 月 調(diào) 整 時 間 年 調(diào) 整 顯 示 周 顯 示 日 顯 示 月 顯 示 年 時 間 顯 示 時 間 顯 示 主 界 面 圖(4-1) 主程序流程 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文

26、) 第 13 頁 4.2 lcd 的初始化與及顯示程序 1 lcd 的初始化 void ini()/*lcd 的初始化函數(shù) rw=0; en=0; p1=0 xff; writecg(); write_order(0 x38);/*端口寫入 write_order(0 x0c); /*端口寫入 write_order(0 x06); /*端口寫入 write_order(0 x01); /*端口寫入 2 lcd 的顯示程序 void open()/*定義一個 lcd 顯示函數(shù) uchar num; /*定義一個無符號的字符變量 num write_order(0 x80+0 x10); /*調(diào)

27、用 write_order 函數(shù) for(num=0;opensnum!=0;num+)/*循環(huán)打開 write_date(opensnum); delay(20); for(num=0;num16;num+)/*對端口 0 x1c 寫入 write_order(0 x1c); delay(200); for(num=0;num5;num+)/*對端口 0 x18 寫入 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 14 頁 write_order(0 x18); delay(200); for(num=0;num4;num+)/*對端口 0 x18 寫入 write_order(0 x1

28、c); delay(200); for(num=0;num3;num+)/*對端口 0 x18 寫入 write_order(0 x18); delay(200); for(num=0;num2;num+)/*對端口 0 x1c 寫入 write_order(0 x1c); delay(200); for(num=0;num1;num+)/*對端口 0 x18 寫入 write_order(0 x18); delay(100); write_order(0 x80+0 x53); for(num=0;opens1num!=0;num+)/*循環(huán)延時寫入數(shù)據(jù) write_date(opens1n

29、um); delay(500); 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 15 頁 第五章 系統(tǒng)調(diào)試 5.1 軟件調(diào)試 打開程序調(diào)試軟件 keil uvision2,在里面新建一個工程,命名為:數(shù)字時鐘. uv2。接著新建文件,編寫相應(yīng)程序。編寫好的各個程序進行編譯與連接。但若是在該 過程中,看見我們編好的程序有錯誤,那么就根據(jù)他相應(yīng)的提示來修改錯誤,直到該 程序能夠正確編譯為止。 能夠正常編譯的程序說明沒有什么問題了,此時我們在點擊相關(guān)欄目,讓它生成 我們在硬件仿真時所需要的.hex 文件。到此步,我們的軟件調(diào)試就完成了。 5.2 硬件調(diào)試 打開 proteus 7 profess

30、ional 軟件,按照方案所選的電路元件來設(shè)計整體電路, 線把個芯片按一定的位置放好,然后對相應(yīng)的對象進行連接,連接時需仔細,以免 調(diào)試時發(fā)生錯誤。做好之后把編程所生成的。hex 文件加載到 at89c52 中,運行仿 真軟件,查看運行效果。如果運行出錯那么就根據(jù)他相應(yīng)的提示來修改錯誤,直到 仿真成功為止。這樣,整個設(shè)計過程就到此結(jié)束,剩下的就是撰寫論文。 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 16 頁 結(jié)論 通過本次畢業(yè)設(shè)計的制作,我較為全面地回顧了,大學(xué)三年所學(xué)的硬件知識與軟 件知識。同時,單片機原理與應(yīng)用及電子技術(shù)方面的相關(guān)知識,在這次畢業(yè)設(shè)計中得 到了較好地實踐。 在本次畢

31、業(yè)設(shè)計中我也學(xué)到了很多東西,比如說:我學(xué)會了使用 proteus 7 professional 軟件進行硬件原理圖的繪制、利用 kile 軟件對我設(shè)計的程序的檢查與 生成.hex 文件及遇到問題怎么解決等。 首先,在這次畢業(yè)設(shè)計中,在我遇到過很多我自己不理解的問題及書本上或是我 以前沒有看見過的知識點。在面對這些問題時,我首先采用的是上網(wǎng)搜尋的方法來查 看別人是否和我一樣遇到過相類似的問題,并且查看一下別人是怎樣解決這個問題 的。當(dāng)別人有了解決它問題的方法時,我在根據(jù)別人的提示,想想自己的問題出在哪 里,該怎么解決。當(dāng)我還是無法想到解決的辦法是,我就帶著自己的問題到圖書館查 閱資料,如果我的問

32、題還是沒有解決,我就帶著問題去問我們的指導(dǎo)老師,讓他幫我 解決。采用這樣的方法,我的很多問題都迎刃而解了! 其次,就是在本次畢業(yè)設(shè)計過程中,我不但努力解決自己遇到的問題,還積極幫 助同學(xué)解決他們遇到的問題。這樣一來,我的知識得到了進一步的鞏固,同學(xué)的問題 也得到了相應(yīng)的解決,我達到的一舉雙收的效果,我為此而感到高興。 最后,讓我覺得這次畢業(yè)設(shè)計的最大成果是:我知道了將理論用到實際中時,會遇 到很多的問題。因此,在此時我們一定要先沉著的找出問題出現(xiàn)的原因,在對癥下 藥,來解決問題。我相信只要我們面對問題沉著、冷靜,我們的問題都會被解決。 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 17 頁

33、 致謝 在論文即將完成,敲下“致謝”兩個字的時候,我心中感慨萬千?;仨^去,一路走 來,需要感謝的人太多,實在是用這些簡單的文字所不能表達和承載的。 首先,我應(yīng)當(dāng)感謝的是這一塊與北大清華比起來并不十分肥沃的土壤我親 愛的母校四川信息職業(yè)技術(shù)學(xué)院對我的哺育。衷心地祝愿我所留戀的母校,在建設(shè)和 諧校園的過程中,在外延拓展和內(nèi)涵提高方面,同時取得豐碩的成果,創(chuàng)建成為世界 一流的專科學(xué)院。 其次,我要特別感謝的是:讓我感動,讓我敬佩的我的指導(dǎo)導(dǎo)師母中旭。他擁 有深厚的學(xué)術(shù)研究功底和學(xué)術(shù)涵養(yǎng),同時他待人和藹可親。在我論文撰寫過程中,母 老師對我的積極鼓勵和耐心、細致的指導(dǎo),給我了許多的信心與幫助,使我的

34、論文由 十分粗糙,結(jié)構(gòu)和思路相當(dāng)混亂,我自己非常不滿意的論文逐漸轉(zhuǎn)變成為語言組織比 較緊湊、思路比較清晰、材料有序排列,硬件和軟件有機地融合的論文。因而,我要特 別感謝指導(dǎo)老師母中旭老師對我的指導(dǎo)。我真心地祝愿我的導(dǎo)師身體健康、工作 順利、家庭幸福,在學(xué)術(shù)研究上取得更為輝煌的成就,為我等晚輩做出更好的引航作 用,桃李滿天下! 最后,謹(jǐn)以此文獻給我最最摯愛的父母,是你們讓我有機會、有毅力完成了全部 的學(xué)業(yè),鼓勵我、支持我一步步走到了今天,愿你們一生平安。 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 18 頁 參考文獻 1邊春遠、王志強mcs-51 單片機應(yīng)用開發(fā)實用子程序人民郵電出版社 2

35、馬忠梅、主編單片機的 c 語言應(yīng)用程序設(shè)計馬忠梅北京航空航天大學(xué)出版社 3李朝青、主編單片機原理及接口技術(shù)第 3 版 北京航空航天大學(xué)出版社 4譚浩強c 語言程序設(shè)計第四版 清華大學(xué)出版 5馬忠梅、張凱單片機的 c 語言應(yīng)用程序設(shè)計北京航空航天大學(xué)出版社 6廖先蕓電子技術(shù)實踐與實訓(xùn)高等教育出版社 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 19 頁 附錄 主程序: #include #define uchar unsigned char #define uint unsigned int sbit lcdrs=p35; sbit lcden=p34; sbit dula=p26;

36、 sbit wela=p27; sbit s0 =p10; sbit s1 =p11; sbit s2 =p12; sbit s3 =p13; uchar code table1=2008-08-28 wen; uchar code table2=21:31:30; uchar num,t0; char sec,minute,hour,day,week,month; uint year; void delay(uchar z) uchar x,y; for(x=z;x0;x-) for(y=110;y0;y-); /寫入指令子函數(shù) void write_order(uchar order) l

37、cdrs=0; p0=order; delay(2); lcden=1; delay(2); lcden=0; /寫入數(shù)據(jù)子函數(shù) void write_data(uchar data1) 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 20 頁 lcdrs=1; p0=data1; delay(2); lcden=1; delay(2); lcden=0; /初始化子函數(shù) void init() sec=0; minute=0; hour=0; week=0; day=1; month=1; year=2008; tmod=0 x01; th0=(65536-50000)/256;

38、tl0=(65536-50000)%256; ea=1; et0=1; tr0=1; wela=0; dula=0; lcden=0; write_order(0 x38); /設(shè)置顯示模式 write_order(0 x0c); /開顯示開光標(biāo),光標(biāo)閃爍 write_order(0 x01); /顯示清屏 write_order(0 x06); /光標(biāo)顯示效果 write_order(0 x80); /定義第一行寫入數(shù)據(jù)的地址 for(num=0;num14;num+) write_data(table1num); delay(2); write_order(0 x80+0 x43); /定

39、義第一行寫入數(shù)據(jù)的地址 for(num=0;num8;num+) write_data(table2num); delay(2); void change(uchar addr,uchar data1) /改變 時 分 秒 天 月 的子函數(shù) 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 21 頁 uchar x,y; x=data1/10; y=data1%10; write_order(0 x80+addr); delay(1); write_data(0 x30+x); delay(1); write_data(0 x30+y); delay(1); void yearchan

40、ge(uchar addr,uint year) /改變年的子函數(shù) uchar x,y,z,w; x=year/1000; y=year%1000/100; z=year%100/10; w=year%10; write_order(0 x80+addr); delay(1); write_data(0 x30+x); delay(1); write_data(0 x30+y); delay(1); write_data(0 x30+z); delay(1); write_data(0 x30+w); delay(1); void weekchange(uchar z) /改變周數(shù)的子函數(shù) s

41、witch(z) case 0: write_order(0 x80+0 x0b); delay(1); write_data(m); delay(1); write_data(o); delay(1); write_data(n); delay(1); 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 22 頁 break; case 1: write_order(0 x80+0 x0b); delay(1); write_data(t); delay(1); write_data(u); delay(1); write_data(e); delay(1); break; case

42、2: write_order(0 x80+0 x0b); delay(1); write_data(w); delay(1); write_data(e); delay(1); write_data(n); delay(1); break; case 3: write_order(0 x80+0 x0b); delay(1); write_data(t); delay(1); write_data(h); delay(1); write_data(u); delay(1); break; case 4: write_order(0 x80+0 x0b); delay(1); write_dat

43、a(f); delay(1); 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 23 頁 write_data(r); delay(1); write_data(i); delay(1); break; case 5: write_order(0 x80+0 x0b); delay(1); write_data(s); delay(1); write_data(a); delay(1); write_data(t); delay(1); break; case 6: write_order(0 x80+0 x0b); delay(1); write_data(s); delay(1)

44、; write_data(u); delay(1); write_data(n); delay(1); break; default:break; void display() if(t0=20) t0=0; sec+; if(sec=60) sec=0; minute+; 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 24 頁 if(minute=60) minute=0; hour+; if(hour=24) hour=0; day+; week+; if(week=7) week=0; if(day=31) day=1; month+; if(month=13) month=

45、1; year+; yearchange(0,year); change(0 x05,month); change(0 x08,day); weekchange(week); change(0 x43,hour); change(0 x46,minute); change(0 x49,sec); /鍵盤掃描的子函數(shù),修改時間 void keyscan() uchar snum; if(s0=0) delay(5); if(s0=0) 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 25 頁 while(!s0);/松手檢測 snum+; if(snum=1) /選定 秒 tr0=0;

46、 write_order(0 x80+0 x40+9); write_order(0 x0f); if(snum=2) /選定 分 write_order(0 x80+0 x40+6); write_order(0 x0f); if(snum=3) /選定 時 write_order(0 x80+0 x40+3); write_order(0 x0f); if(snum=4) /選定 星期 write_order(0 x80+0 x0b); write_order(0 x0f); if(snum=5) /選定 天 write_order(0 x80+0 x08); write_order(0

47、x0f); if(snum=6) /選定 月 write_order(0 x80+0 x05); write_order(0 x0f); if(snum=7) /選定 年 write_order(0 x80); write_order(0 x0f); if(snum=8) /恢復(fù) 計時 tr0=1; write_order(0 x0c); snum=0; 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 26 頁 if(snum!=0) /增加 時 分 秒 天 月 年 if(s1=0) delay(5); if(s1=0) while(!s1); if(snum=1) sec+; if

48、(sec=60) sec=0; change(0 x49,sec); write_order(0 x80+0 x40+9); if(snum=2) minute+; if(minute=60) minute=0; change(0 x46,minute); write_order(0 x80+0 x40+6); if(snum=3) hour+; if(hour=24) hour=0; change(0 x43,hour); write_order(0 x80+0 x40+3); if(snum=4) week+; if(week=7) week=0; weekchange(week); write_order(0 x80+0 x0b); if(snum=5) 附件: 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計說明書 (論文) 第 27 頁 day+; if

溫馨提示

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

評論

0/150

提交評論