電子萬年歷的設(shè)計_第1頁
電子萬年歷的設(shè)計_第2頁
電子萬年歷的設(shè)計_第3頁
電子萬年歷的設(shè)計_第4頁
電子萬年歷的設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目目 錄錄 1 設(shè)計要求 .3 2 方案論證與對比 .3 2.1 液晶顯示器控制方式選擇 .3 2.2 并行接口動態(tài)顯示電路選擇 .3 2.3 LCD 液晶顯示器的接口方法選擇.4 2.4 液晶顯示器限流電阻選擇 .5 3 系統(tǒng)硬件電路的設(shè)計 .6 3.1 主控模塊 AT89C52.6 3.2 顯示模塊電路設(shè)計 .7 4 系統(tǒng)軟件設(shè)計 .8 4.1 系統(tǒng)軟件概述 .8 4.2 主要子程序設(shè)計 .9 4.2.1 時鐘中斷服務子程序設(shè)計 .9 4.2.2 時間調(diào)整子程序設(shè)計.10 4.2.3 判斷閏年子程序設(shè)計 .10 4.2.4 精度分析分析與計算 .11 4.2.5 第一次初值的設(shè)置 .11

2、4.2.6 重載初值的方法 .11 5 系統(tǒng)仿真與測試 .12 5.1 系統(tǒng)仿真 .12 5.2 功能測試 .12 6 總結(jié) .13 參考文獻.14 1 設(shè)計要求設(shè)計要求 本課題以 AT89C52 單片機為核心,設(shè)計并制作出智能 LCD 電子鐘,具有以下 基本功能:能進行時間、年份、日期、星期顯示;能區(qū)分是否閏年;能檢測室溫并 顯示。擴展功能部分可以通過控制按鍵使時間暫停、可以調(diào)整校正時間并通過按鍵 切換輪流顯示時間、年份、日期、星期。 2 方案論證與對比方案論證與對比 2.1 液晶顯示器控制方式選擇液晶顯示器控制方式選擇 采用 LCD 液晶顯示,具有超精致影像畫質(zhì)、十足平面顯示、節(jié)省空間、節(jié)

3、省能 源等優(yōu)點,但按控制方式不同,LCD 可分為被動矩陣式 LCD 及主動矩陣式 LCD 兩 種。可根據(jù)不同需要采用不同的方式。 方案一 被動矩陣式 LCD 被動矩陣式 LCD 在亮度及可視角方面受到較大的限制,反應速度也較慢。由于 畫面質(zhì)量方面的問題,使得這種顯示設(shè)備不利于發(fā)展為桌面型顯示器,但成本低廉。 方案二 主動矩陣式 LCD 目前應用比較廣泛的主動矩陣式 LCD,也稱 TFT-LCD(Thin Film Transistor- LCD,薄膜晶體管 LCD)。TFT 液晶顯示器是在畫面中的每個像素內(nèi)建晶體管,可使 亮度更明亮、色彩更豐富及更寬廣的可視面積。與 CRT 顯示器相比,LCD

4、 顯示器 的平面顯示技術(shù)體現(xiàn)為較少的零件、占據(jù)較少的桌面及耗電量較小,但 CRT 技術(shù)較 為穩(wěn)定成熟。 相比之下,本設(shè)計當中選用方案二主動矩陣式 LCD 方式。 2.2 并行接口動態(tài)顯示電路選擇并行接口動態(tài)顯示電路選擇 可以采取串行接口動態(tài)顯示電路或者并行接口動態(tài)顯示電路,比較如下: 方案一 串行接口動態(tài)顯示電路 利用 8051 系列單片機內(nèi)部的串行接口,也可以實現(xiàn)動態(tài)顯示及鍵盤處理。這樣 不但可以節(jié)省 8051 的并行 I/O 接口,而且在大多數(shù)不用單行口的情況下,可免于擴 展接口。在這種方法中,串行口工作在方式 0 狀態(tài),相當于一個移位寄存器,其輸 入/輸出通過 RXD 引腳,移位脈沖則由

5、 TXD 輸出。每次輸入或輸出 8 位數(shù)據(jù)(一個 字節(jié))。每輸出一個字節(jié),8051 的硬件即自動使 SCON 寄存器中的中斷 TI 置位, 通過測試 TI 的狀態(tài),即可確定一個字節(jié)是否發(fā)送完畢。見圖 2-1。 圖 2-1 串行接口動態(tài)顯示電路框圖 方案二 并行接口動態(tài)顯示電路 直接用 P0 口作線選,P2 作位選連接數(shù)碼顯示管。見圖 2-2 圖 2-2 動態(tài)顯示電路框圖 方案一中的串行接口動態(tài)顯示電路顯示方法有個很大的缺點,一旦計算機不執(zhí) 行顯示程序,則顯示立即停止。如要維持顯示,則須花費計算機很多時間。而且在 本次課程設(shè)計中,我們也有足夠的 I/O 口,因此,選擇并行接口動態(tài)顯示電路較好。

6、2.3 LCD 液晶顯示器的接口方法選擇液晶顯示器的接口方法選擇 方案一 以硬件為主的 LCD 顯示接口電路 這種接口方法的電路圖見圖 2-3,可以看出,在數(shù)據(jù)總線和 LCD 之間,必須有 鎖存器或 I/O 接口電路,此外,還應有專門的譯碼/限流電阻。通過譯碼器把 1 位十 六進制或 BCD 碼譯為相應的顯示段碼,然后由限流電阻限制電流防止顯示器因電流 過大而燒壞。這種接口方法僅用一條輸出指令,就可以進行 LCD 顯示。但是所使用 的硬件電路較多,而硬件譯碼缺乏靈活性,只能顯示十進制數(shù)或十六進制。 圖 2-3 硬件為主的 LED 顯示接口電路框圖 方案二 以軟件為主的 LCD 顯示接口電路 這

7、種接口方法的電路如圖 2-4 ,它以軟件查表代替硬件譯碼的方法,不但省去 了譯碼器,而且還能顯示更多的字符,但是電阻限流是必不可少的。本次設(shè)計采用 這種接口電路。 圖 2-4 以軟件為主的 LCD 顯示接口電路框圖 2.4 液晶顯示器限流電阻選擇液晶顯示器限流電阻選擇 由于 LCD 的電流參數(shù)較小,為了防止因電流過大而被燒壞,能夠幫助內(nèi)存起到 穩(wěn)壓作用,讓內(nèi)存工作更穩(wěn)定,因此必須加入限流電阻。限流電阻有兩種實現(xiàn)方式, 比較如下: 方案一 直接用單個電阻限流 直接用單個電阻進行限流,散熱快,但是既占空間又接線麻煩。 方案二 用排阻進行限流 用多個電阻排列而成的排阻能減少占用的空間,易于連線。 綜

8、上分析,本設(shè)計采用方案二排阻限流。 3 系統(tǒng)硬件電路的設(shè)計系統(tǒng)硬件電路的設(shè)計 經(jīng)上述比較,本次作品采用以 AT89C52 為核心的單片機最小系統(tǒng)板,顯示模塊 采用數(shù)碼管動態(tài)掃描顯示。經(jīng)過方案論證與比較,選擇出最優(yōu)方案的系統(tǒng)總體方案 框圖如圖 3-1 所示。 3.1 主控模塊主控模塊 AT89C52 主控模塊采用的是 AT89C52 單片機芯片。AT89C52 是一個低電壓,高性能 CMOS 8 位單片機,片內(nèi) 8KB ROM 全部采用 FLASH ROM 技術(shù),晶振時鐘為 12MHz。器件采用 ATMEL 公司的高密度,肥易失性存儲技術(shù)生產(chǎn),兼容標準 MCS-51 指令系統(tǒng),騙內(nèi)置 通用 8

9、位中央處理器和 Flash 存儲單元。 AT89C52 是標準的 40 引腳雙列直插式集成電路芯片,有 4 個八位的并行雙向 I/O 端口,分別記作 P0、P1、P2、P3。3 個 16 位可編程定時計數(shù)器,2 個全雙工串 行通信口,2 個讀寫口線。 第 31 引腳需要接高電位使單片機選用內(nèi)部程序存儲器。P0-P3 為可編成通用輸 入輸出引腳,其功能用途由軟件定義。第 9 引腳是復位引腳,要接一個上電手動復 位電路;第 40 腳為電源端 VCC,接+5V 電源,第 20 引腳為接地端 VSS,通常在 VCC 和 VSS 引腳之間接 0.1F 高頻濾波電容。第 18、19 腳之間接上一個 12M

10、Hz 的晶振 為單片機提供時鐘信號。主控模塊電路圖見圖 3-2。 按鍵模塊 電源 時間調(diào)整模塊 顯示模塊 溫度顯示 星期顯示 時間顯示 年份顯示 顯示 主控模塊 圖 3-1 系統(tǒng)總體方 案框圖 圖 3-2AT89C52 單片機芯片 3.2 顯示模塊電路設(shè)計顯示模塊電路設(shè)計 P2 是一個帶有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 的輸出緩沖級可驅(qū)動 (吸收或輸出電流) 4 個 TTL 邏輯門電路。對端口 P2 寫“1”,通過內(nèi)部的上 拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上 拉電阻,某個引腳被外部信號拉低時會輸出一個電流 (IIL)。在訪問外部程序存 儲器或

11、16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX DPTR 指令)時,P2 口 送出高 8 位地址數(shù)據(jù)。在訪問 8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行 MOVX RI 指令)時,P2 口輸出 P2 鎖存器的內(nèi)容 。Flash 編程或校驗時, P2 亦接收高位 地址和一些控制信號。 P0 口是一組 8 位漏極開路型雙向 I/O 口, 也即地址/數(shù)據(jù)總線復用口。 作為輸出口用時,每位能吸收電流的 方式驅(qū)動 8 個 TTL 邏輯門電路,對端口 P0 寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時, 這組口線分時轉(zhuǎn)換地址(低 8 位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉 電阻。 在

12、 Flash 編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字 節(jié),校驗時,要求外接上拉電阻。 本設(shè)計中要對時間、溫度進行顯示。單片機 AT89C52 的 P2 口分別接 LCD 控制 屏幕的顯示。而 P0 口用來顯示信息的輸入,為了防止電流過大而燒壞 LCD,所以用 排阻 RESPACK-8 來限流。液晶顯示電路圖見圖 3-3。 圖 3-3 顯示模塊電路 4 系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計 4.1 系統(tǒng)軟件概述系統(tǒng)軟件概述 在編程上,首先進行了初始化,定義程序的入口地址以及中斷的入口地址,在主 程序的開始定義了一組固定單元用來存儲計數(shù)的分、秒、年、月、日、星期的存儲 單元。調(diào)用閏年判斷程序

13、后,進入主程序中循環(huán)。在主程序中,對不同的按鍵進行 掃描,實現(xiàn)秒表,時間調(diào)整、開關(guān)屏設(shè)置等擴展功能。時鐘計時利用定時器 T0 中斷 子程序?qū)崿F(xiàn),秒表和時間調(diào)整閃爍程序由定時器 T1 的中斷服務子程序?qū)崿F(xiàn)。考慮到 實用性,在該電子鐘的時間調(diào)整時采用了閃爍,而開關(guān)屏設(shè)置采用了符號標志。在自 動開、關(guān)屏設(shè)置子程序中,另外開辟內(nèi)存單元用來存放開、關(guān)屏設(shè)置時間,而在另 外的子程序中不斷比較當前時間是否和設(shè)置時間相等并設(shè)置標志位,然后程序中檢 測標志位,從而實現(xiàn)開、關(guān)屏操作。系統(tǒng)總體流程圖見圖 4-1。 4.2 主要子程序設(shè)計主要子程序設(shè)計 顯示完畢后,P2 口和 P1 口復位,準備下一輪的顯示。在系統(tǒng)總

14、體流程設(shè)計思 想的指導下,分模塊對程序進行設(shè)計,主要模塊設(shè)計有時鐘中斷服務子程序設(shè)計、 時間調(diào)整子程序設(shè)計、判斷閏年子程序設(shè)計等。各子程序分析如下: 4.2.1 時鐘中斷服務子程序設(shè)計 首先設(shè)定定時器 T0 的初值,T0 的最大定時不足 1s,為便于計算,取定時 50ms。這樣每 50ms 中斷 1 次,中斷 20 次為 1s。50ms 的定時初值的計算如下: 0.05/(1/12*106/12))=C350H ,補碼為 3CB0H。啟動定時器后,運行中斷服務程 序。在中斷服務程序中,由秒信號來計數(shù),當達到 60 后向“分”進位;分計數(shù),當 達到 60 后向“時”進位;時計數(shù),當達到 24 后

15、向“日”進位;日計數(shù),日超出當 月上限后進位到“月”;月計數(shù),當月計數(shù)到達 12 后向“年”進位,在日計數(shù) 圖 4-1 系統(tǒng)總體流程圖 程序中,日每增加一天,都對星期進行調(diào)整,具體為:若上一天不是星期日,則直 接在星期上加一,若上一天是星期日,則當前星期變?yōu)樾瞧谝弧?4.2.2 時間調(diào)整子程序設(shè)計 在主程序中通過按鍵進入時間調(diào)整界面,可實現(xiàn)年、月、日、星期及時間的調(diào) 整。每次調(diào)整時,調(diào)用閃爍程序,使相應的位閃爍,再通過按鍵進行加減調(diào)整。閃 爍程序也采用定時器 T1 中斷實現(xiàn),每次計時 50ms,中斷 6 次也就是 0.3 秒過后, 閃爍標志位取反,顯示熄滅。 在時間顯示子程序中,單片機向 P0

16、 口送段選信號,向 P2 口送位選信號,數(shù)碼 管采用動態(tài)掃描方式,位選信號每次左移一位,每次點亮一個數(shù)碼管,一輪 4.2.3 判斷閏年子程序設(shè)計 程序中年每加一,則調(diào)用一次判斷閏年子程序,再通過置標志平 20H.3,以便 于以后的程序識別(如在月加一程序中,就需要知道是否是閏年的 2 月還是平年的 2 月)。判斷閏年子程序的設(shè)計思想是:不能被 4 整除的年份不是閏年;能被 100 整除但不能被 400 整除的年份不是閏年。閏年判斷流程圖見圖 4-2。 圖 4-2 顯示子程序流程圖 4.2.4 精度分析分析與計算 在 MCS-51 單片機中,脈沖源是由系統(tǒng)的晶振經(jīng)過 12 分頻后獲得的,故定時器

17、 計數(shù)脈沖4周期為:T=12/fosc (1) 4.2.5 第一次初值的設(shè)置 根據(jù)(1)式可以分別算出定時器四種工作方式的最大計時時間。但實際應用中, 經(jīng)常會有不同定時值的要求,可以采用預置數(shù)的方法來實現(xiàn)。例如,方式 1 的最大 計數(shù)為 65536,現(xiàn)在假設(shè)需要定時計數(shù) 100,那么我們可以設(shè)預置數(shù)為 65436,讓定 時器經(jīng)過 100 個脈沖周期后,就可達到 65536。我們稱定時器中這種預置數(shù)為定時 器的第一次初值。下面推導第一次初值設(shè)置的公式。 設(shè)定時器在某種工作方式下計數(shù)的最大值為 M(見表 1),X0 為第一次初值,T 為(1)式的計數(shù)周期,t 為要求定時的溢出時間,則有: t=(M

18、 -X0)*T (2) 上式可化為: X0=M -t/T (3) 4.2.6 重載初值的方法 設(shè)置定時器第一次初值后并啟動定時器,定時器開始計數(shù)。若定時器中斷處于 開放狀態(tài),當定時器計滿后,將會引發(fā)定時中斷(T0 中斷入口地址為 000BH),執(zhí)行 相應的中斷處理程序。定時器只有工作在方式 2 下方可自動重載前次初值,其余三 種方式都不能自動重載。因此,當希望定時器繼續(xù)定時,需要在中斷處理程序中重 新賦定時器初值。我們稱這種在中斷處理程序中重新賦定時器的初值為定時器的重 載初值。在定時精度要求不高的系統(tǒng)中,定時器的重載初值可以與第一次的初值相 同,即可按(3)式重載。但在定時精度要求較高的場合

19、,就不能簡單地按(3)式重載。 因為從定時器計滿發(fā)出溢出中斷請求到重載初值,存在一定的時間間隔,造成定時 的延遲。這個時間間隔包含兩部分的延遲,第一是中斷響應所需的延遲,包括執(zhí)行 轉(zhuǎn)向中斷服務程序的跳轉(zhuǎn)指令所需要的 2 個機器周期和等待正在執(zhí)行的指令執(zhí)行完 畢所需要 14 個機器周期;第二是重載初值所需的延遲,包括從中斷服務程序第一 條指令到重載初值之間所有指令的執(zhí)行機器周期數(shù)。綜合以上兩個延遲因素,考慮 到計數(shù)的方便性,我們可以在中斷服務程序中加入一條定時器停止計數(shù)指令,待重 載初值后,再加入一條定時器啟動計數(shù)指令,使定時器重新計數(shù)。通過這樣的技術(shù) 處理后,以上的延遲時間等效于兩個部分,即從

20、定時器計數(shù)溢出后自動從 0 開始計 數(shù)到關(guān)閉定時器計數(shù)所消耗的時間和關(guān)閉定時器到打開定時器所消耗的時間。前部 分時間可從定時器讀出,后部分時間為從關(guān)閉定時器到打開定時器之間所有指令的 執(zhí)行時間。綜上所述,設(shè) Z 定時器計數(shù)溢出后自動從 0 開始計數(shù)到關(guān)閉定時器計數(shù) 所需要的時間,Y 關(guān)閉定時器到打開定時器所需要的時間,X1 為重載初值,則: (M -X1+Y+Z)*T=t (4) 上式可化為: X1=M-t/T+Y+Z (5) 5 系統(tǒng)仿真與測試系統(tǒng)仿真與測試 5.1 系統(tǒng)仿真系統(tǒng)仿真 在仿真過程中,軟件運用到 Wave 6000 和 Proteus 7.12,先用 Wave 6000 進行

21、編程測試再通過 Proteus 7.12 進行硬件仿真。本單片機課程設(shè)計仿真效果如圖 5- 1。 圖 5-1 系統(tǒng)仿真效果圖 5.2 功能測試功能測試 表 1 功能測試 計時功能 LCD 能顯示當前的時、分、和秒,具體是時跟分一起 顯示,分跟秒一起顯示,通過按鍵來切換 星期顯示功能 通過按鍵可以切換到星期顯示的界面,按返回鍵則重 新回到主界面顯示 時間調(diào)整功能 通過按鍵可以調(diào)整或設(shè)定年、月、日、星期、時、分, 且能實現(xiàn)秒的微調(diào)功能 室溫檢測并顯示功能 通過智能傳感器 DS18B20 能夠?qū)崿F(xiàn)檢測功能,并通過 LCD 能完成液晶顯示功能 閏年功能 能計時到萬年,且能自動判斷閏年與平年,并實現(xiàn)正

22、確的計時操作 經(jīng)過反復測試,本系統(tǒng)已能達到設(shè)計所要求的所有功能。 6 總結(jié)總結(jié) 通過十天的設(shè)計和調(diào)試,終于完成了設(shè)計任務,系統(tǒng)測試后,各項指標都達到 了規(guī)定要求。我的設(shè)計,在完成了預期功能的同時,另外我新增了時間暫停功能。 設(shè)計過程中也遇到過很多困難,特別是調(diào)試,花去了大量的時間,出不來預期 的效果。剛開始,在軟件的編寫與修改過程中也花費了大量的時間,主要是在平時 的學習過程中,對程序的編寫不熟練,許多問題凸現(xiàn)出來,成了攔路虎。由此可知 自己的水平還是相當有限,在以后的專業(yè)學習當中應該更加認真,更加深入地學習, 在這次的設(shè)計中,經(jīng)過自己的多次選材與調(diào)試,多參與實踐,多通過實例來鍛煉自己的 實際

23、操作和解決問題的能力。后來出現(xiàn)問題時,我總是誤以為是軟件問題,查了好 久才查出是一個小小的硬件連線錯誤,其實測試是應該從硬件起逐項排查到軟件。 還有,測試時也最好是先一個模塊地測試,都通過了才組合到一起再從整體上進行 調(diào)試,否則一個小問題也會變得錯綜復雜。整個設(shè)計與調(diào)試過程是一個讓人興奮與 激動的過程,盡管有時也會因為調(diào)試不順利而有點煩躁,但每次調(diào)試成功的喜悅又 會馬上沖刷掉原來的不快。在本次設(shè)計過程中,我深深地體會到了紙上得來終覺淺 的道理,不管是在學習態(tài)度還是專業(yè)技能方面都有了很大的改進和提高。通過本次 單片機的課程設(shè)計收獲頗大。 通過十多天的學習和實踐,這次設(shè)計終于取得了圓滿成功。設(shè)計過

24、程中,遇到 了很多困難,但是在老師和同學們的熱忱幫助下,都得以順利解決,在此對我可親 可敬的老師們和親如兄弟的同學們表示衷心的感謝。我定將這份深厚的感情永遠銘 記在心里,以此為動力,不斷鞭策自己,激勵自己,不斷提高,不斷進步,以后一 定更加努力地學好每門課程,以此來報答大家。 參考文獻參考文獻 1 李廣弟.單片機基礎(chǔ)(修訂本).北京:北京航空航天大學出版社,2004 2 趙志剛,吳海彬編著.Protel DXP 實用教程.北京:清華大學出版社;北京交 通大學出版社,2004.11 3 朱定華,戴汝平編著.單片微機原理與應用.北京:清華大學出版社;北京交 通大學出版社,2003.8 4 樓然苗,

25、李光飛編著.單片機課程設(shè)計指導.北京:北京航空航天大學出版社, 2007.7 5 蔡明文,馮先成主編.單片機課程設(shè)計.武漢:華中科技大學出版社,2007.3 6 周立功等編著.單片機實驗與實踐.北京:北京航空航天大學出版社,2004 指導教師評語:指導教師評語: 成績:成績: 指導教師簽字:指導教師簽字: 年年 月月 日日 tgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論