基于單片機的校園打鈴系統(tǒng)設計畢業(yè)設計說明書(論文)_第1頁
基于單片機的校園打鈴系統(tǒng)設計畢業(yè)設計說明書(論文)_第2頁
基于單片機的校園打鈴系統(tǒng)設計畢業(yè)設計說明書(論文)_第3頁
基于單片機的校園打鈴系統(tǒng)設計畢業(yè)設計說明書(論文)_第4頁
基于單片機的校園打鈴系統(tǒng)設計畢業(yè)設計說明書(論文)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息職業(yè)技術學院 畢業(yè)設計說明書(論文) 設計題目: 基于單片機的校園打鈴系統(tǒng)設計 專 業(yè): 應用電子技術 班 級: 應電 08-2 學 號: 姓 名: 指導教師: 二一年九月十日 信息職業(yè)技術學院畢業(yè)設計(論文)任務書信息職業(yè)技術學院畢業(yè)設計(論文)任務書 學 生 姓 名 學號班級應電 082專業(yè)應用電子技術 設計(或論文)題目基于單片機的校園打鈴系統(tǒng)設計 指導教師姓名職 稱工作單位及所從事專業(yè)聯(lián)系方式備 注 工程師學01 設計(論文)內(nèi)容:利用單片機做為主控器件,設計一校園打鈴系統(tǒng)的硬件部分: 1.實現(xiàn)打鈴時間的設置和修改; 2.顯示當前日期、時間; 3.掉電情況下計時工作正常進行、能保存

2、以前設置的時刻。 基本要求: 1.正確選擇元器件完成相應功能; 2.設計整機電路、明晰系統(tǒng)工作原理; 3.系統(tǒng)仿真; 4.完成說明書撰寫。 進度安排: 第 36 周:選題及查找相關資料主要查找與課題相關的資料; 第 7 周:相關資料的整理并對其進行理解; 第 8 周:對畢業(yè)論文的資料進行初步的整理; 第 9 周:期中檢查; 第 10 周:對論文進行修改及進行仿真實驗; 第 11 周:對畢業(yè)論文進行排版; 第 12 周:檢查排版及內(nèi)容; 第 13 周:加深對畢業(yè)論文的理解準備答辯; 第 14 周:檢查畢業(yè)設計論文的地方準備答辯; 第 15 周:答辯。 主要參考文獻、資料(寫清楚參考文獻名稱、作者

3、、出版單位): 1蘇平.單片機原理與接口技術.北京:電子工業(yè)出版社,2003 2林伸茂.8051 單片機徹底研究實習篇.北京:人民郵電出版社,2005 3韓志軍.單片機應用系統(tǒng)設計.北京:機械工業(yè)出版社,2005 4陳坤.電子設計技術.成都:電子科技大學出版社,1997 5鄭應光.模擬電子線路(一).南京:東南大學出版社,2005 6李秀忠.單片機應用技術.北京:人民郵電出版社,2007 審 批 意 見 教研室負責人: 年 月 日 備注:任務書由指導教師填寫,一式二份。其中學生一份,指導教師一份。 目 錄 摘要 .1 第 1 章緒論 .2 第 2 章方案設計與論證 .3 2.1 系統(tǒng)方案選擇與

4、比較 .3 2.1.1 控制模塊方案選擇.3 2.1.2 顯示模塊方案選擇.4 2.2.3 存儲模塊方案選擇.4 2.2 總體方案設計思想 .5 第 3 章硬件電路設計 .6 3.1 控制模塊設計 .6 3.1.1 單片機 at89c51 簡介.6 3.1.2 單片機時鐘電路復位電路介紹.7 3.2 打鈴模塊 .8 3.3 存儲模塊 .8 3.3.1 實時時鐘 ds1302 簡介.8 3.3.2 存儲器 24c02c .10 3.4 鍵控模塊 .12 3.4.1 獨立式鍵盤介紹.12 3.4.2 鍵盤接口及鍵位的功能介紹.13 3.5 顯示模塊 .13 3.5.1 數(shù)碼管的組成及工作原理.14

5、 3.5.2 數(shù)碼管的顯示.14 第 4 章整機原理 .16 4.1 整機原理圖 .16 4.2 整機電路原理 .16 第 5 章軟件設計 .18 5.1 打鈴系統(tǒng)流程圖 .18 5.2 讀時間日期顯示流程圖 .18 5.3 led 顯示流程圖 .19 5.4 主程序流程圖 .20 第 6 章仿真和調(diào)試 .21 6.1 調(diào)試軟件的介紹 .21 6.2 調(diào)試的操作步驟 .21 6.3 仿真軟件對于本設計的仿真 .22 結論 .25 參考文獻 .26 附錄 1 整機原理圖.27 附錄 2元件明細表.28 附錄 3 源程序.29 摘要 本設計以單片機 at89c51 為控制核心,與 ds1302、2

6、4c02c 和 led 等組成校園打鈴 系統(tǒng),運用實時時鐘芯片 ds1302 實現(xiàn)時間控制,同時運用 led 七段數(shù)碼管完成當前的 年、月、日、時、分、秒和星期以及打鈴時間的顯示,再利用鍵盤可以對系統(tǒng)當前時 間以及打鈴時間進行調(diào)節(jié)、存儲、清空操作,并且使用外部存儲器 24c02c 完成打鈴時 間的存儲。此設計在系統(tǒng)掉電狀態(tài)下仍可以正常的打鈴、時間設定、數(shù)據(jù)保持,整體 性好、人性化強、可靠性高、功能強,體積小,功耗低,價格便宜,工作可靠,使用 方便等特點。 關鍵詞關鍵詞單片機;at89c51;ds1302;24c02c 打鈴 第 1 章緒論 校園打鈴系統(tǒng)就是利用現(xiàn)代計算機、通訊等技術,以傳統(tǒng)的鈴

7、聲系統(tǒng)為基礎,根 據(jù)用戶對鈴聲系統(tǒng)功能的要求,由單片機來控制、管理、播放的系統(tǒng)。 通過把播放的內(nèi)容以數(shù)字形式存放在存儲器中,然后單片機通過控制軟件,按照 學校設定的播放時間和內(nèi)容控制單片機自動將存儲器中的數(shù)字音樂文件播放出來。鈴 聲控制系統(tǒng)整體由兩部分組成:主控中心和終端電鈴。主控中心以單片機為核心,包 括控制電路、顯示電路、鍵盤電路和存儲電路。終端電鈴為響應控制設備,通過其自 身的控制系統(tǒng)可以獲得清晰、響亮的聲響。 單片機在電子產(chǎn)品中的應用已經(jīng)越來越廣泛,并且在很多電子產(chǎn)品中也將其用到 校園鈴聲和廣播控制。單片機又稱單片微控制器,是把一個計算機系統(tǒng)集成到一個芯 片上。概括的講:一塊芯片就成了

8、一臺計算機。它的體積小、質(zhì)量輕、價格便宜、為 學習、應用和開發(fā)提供了便利條件。 現(xiàn)在,這種單片機的使用領域已十分廣泛,如智 能儀表、實時工控、通訊設備、導航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機, 就能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型” ,如智能型 洗衣機等。 本次設計是實現(xiàn)一個單片機的校園打鈴系統(tǒng),能過設置打鈴時間,同時要求能夠 在系統(tǒng)掉電時,時間能夠繼續(xù),數(shù)據(jù)能夠保持,能夠?qū)崿F(xiàn)打鈴。 第 2 章方案設計與論證 2.1 系統(tǒng)方案選擇與比較 2.1.1 控制模塊方案選擇 校園打鈴系統(tǒng)設計方案有多種,下面提出兩種電路方案。 方案一:主要是由石英晶體振蕩電路和分頻器電

9、路組成的脈沖發(fā)生器、校時電路、 報時電路以及時、分、秒計數(shù)器和譯碼顯示電路等電路組成,其中采用計數(shù)器 74ls290、譯碼器 74ls49、分頻器和八段數(shù)碼管顯示器等器件組成的校園打鈴系統(tǒng),整 個系統(tǒng)有控制簡單,調(diào)試容易等優(yōu)點,但是其顯示功能單一、電路復雜。其組成方框 圖如下 2-1 所示: 顯示器顯示器顯示器 譯碼器譯碼器譯碼器 二十四進 制時計數(shù) 器 六十進制 分計數(shù)器 六十進制 秒計數(shù)器 校時電路報時電路晶體振蕩 器 單刀雙 置開關 單刀雙 置開關 分頻器 圖 2-1 方案一組成方框圖 方案二:采用 atc 公司的單片機 atc89c51 作為控制器。單片機運算能力強,軟件 編程靈活,自

10、由度大。它是 mcs-51 系列單片機的派生產(chǎn)品,在指令系統(tǒng)、硬件結構和 片內(nèi)資源上與標準 8051 單片機完全兼容,使用時容易掌握;采用 atc89s52 單片機穩(wěn) 定可靠、應用廣泛、通用性強。 單片機 時鐘電路 復位電路 鍵盤電路 顯示電路 存儲電路 聲音驅(qū)動輸出電路 圖 2-2 方案二組成方框圖 方案選擇:采用方案一實現(xiàn)的校園打鈴控制系統(tǒng)調(diào)試容易,價格相對較為便宜, 但是電路結構復雜,控制單一,且整個系統(tǒng)性能不是很高,倒計時不是非常精確,功 能不完整,如果要求系統(tǒng)調(diào)節(jié)打鈴時間時不容易調(diào)整。采用方案二實現(xiàn)的校園打鈴系 統(tǒng)其電路結構簡單,可實現(xiàn)多功能控制,計時精確,全自動化實現(xiàn)其所用功能,并

11、且 能在斷電的情況下任能正常的實現(xiàn)打鈴。因而對于完成此題目,方案二完全能實現(xiàn)設 計要求,并且容易掌握,此方案是利用編程來實現(xiàn),易于調(diào)整時間,且 i/o 接口很多, 易于擴展外圍電路,故選擇方案二。 2.1.2 顯示模塊方案選擇 該系統(tǒng)要求完成當下年、月、日、時、分、秒、星期的顯示等功能。基于上述原 因,考慮了三種方案。 方案一:完全采用點陣式 led 顯示。這種方案實現(xiàn)復雜,且須完成大量的軟件工 作;但功能強大,可方便的顯示各種英文字符,漢字,圖形等。 方案二:用七段 led 數(shù)碼管完成年、月、日、時、分、秒、星期顯示,這種方案 只能顯示數(shù)字、英文字符及一些簡單的數(shù)學符號,但價格相對便宜。 方

12、案比較:相對比較而言,方案二比方案一更符合此設計要求,方案一采用點陣 式 led 顯示的方法,而設計只要求年、月、日、時、分、秒、星期的顯示輸出。因此 這種方案既軟件工作量大,又價格相對較貴,因此權衡利弊,選擇方案二。 2.2.3 存儲模塊方案選擇 存儲器是整個系統(tǒng)的“連接線” ,它是系統(tǒng)穩(wěn)定工作的保障,為使各個模塊穩(wěn)定工 作,須有可靠存儲器。下面考慮了兩種電源方案。 方案一:采用單片機存儲器。該方案的優(yōu)點是存儲方便,節(jié)約成本;缺點是斷電 后存儲數(shù)據(jù)消失。 方案二:采用存儲器 24c02c。該方案保證設置的打鈴時間數(shù)據(jù)在掉電時也不會丟 失,同時實現(xiàn)在系統(tǒng)運行時能夠修改打鈴時間,采用開關電源作為

13、整個系統(tǒng)的供電, 它具有多路電源輸出,缺點是價格較貴。 方案比較:方案一只采用單片機自身的存儲是不行的,而方案二雖然要給另外購 買,但卻能在斷電的情況下仍能存儲數(shù)據(jù)并且繼續(xù)計數(shù)。故選擇第二種方案。 2.2 總體方案設計思想 根據(jù)校園打鈴系統(tǒng)的設計,可將本系統(tǒng)分為四個模塊,第一個模塊是控制模塊, 主要負責整個系統(tǒng)工作的控制和運算,從而使各模塊正常工作;第二個模塊為顯示模 塊,主要是對現(xiàn)時刻內(nèi)年、月、日、時、分、秒和星期的直觀顯示;第三個模塊是鍵 控模塊,它的主要作用是輔助控制模塊,相當于輸入裝置,利用它可以對打鈴時間進 行調(diào)節(jié);第四個模塊是存儲模塊,它是整個系統(tǒng)的連接線,負責給各模塊提供合適的

14、信息,讓各模塊能穩(wěn)定工作。其系統(tǒng)設計結構如圖 2-3 所示。 控 制 模 塊 顯 示 模 塊 鍵 控 模 塊 存儲模塊 圖 2-3 系統(tǒng)設計結構圖 第 3 章硬件電路設計 3.1 控制模塊設計 at89c51 在此設計中起到非常重要的作用,它就像一個人的大腦,控制著整個設計 的所有系統(tǒng)。此設計的控制模塊由單片機、復位電路、時鐘電路組成的。 3.1.1 單片機 at89c51 簡介 at89c51 是一種帶 4k 字節(jié)閃爍可編程可擦除只讀存儲器(fper-om-flash programmable and erasable read only memory)的低電壓。單片機的可擦除只讀存儲 器可

15、以反復擦除 100 次。該器件采用 atmel 高密度非易失存儲器制造技術制造,與工 業(yè)標準的 mcs-51 指令集和輸出管腳相兼容。由于將多功能 8 位 cpu 和閃爍存儲器組合 在單個芯片中,atmel 的 at89c51 是一種商效微控制器,at89c51 是它的一種精簡版本。 at89c51 單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。 圖 3-1 at89c51 引腳圖 at89c51 單片機引腳分布如圖 3-1 所示。 p0 口:p0 口為一個 8 位漏級開路雙向 i/o 口,每腳可吸收 8ttl 門電流。當 p1 口 的管腳第一次寫 1 時,被定義為高阻輸入。p0

16、能夠用于外部程序數(shù)據(jù)存儲器,它可以 被定義為數(shù)據(jù)/地址的第八位。在 fiash 編程時,p0 口作為原碼輸入口,當 fiash 進行 校驗時,p0 輸出原碼,此時 p0 外部必須被拉高。 p1 口:p1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下拉為 低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在 flash 編程和校驗時,p1 口作 為第八位地址接收。 p3.0(rxd):串行輸入口 p3.1(txd):串行輸出口 3.1.2 單片機時鐘電路復位電路介紹 1.時鐘電路

17、模塊 單片機的時鐘信號用來為單片機芯片內(nèi)部的各種操作提供時間基準。 時鐘電路為單片機產(chǎn)生時鐘脈沖序列,作為單片機工作的時間基準,典型的晶體 管振蕩頻率為 12mhz。 at89c51 單片機內(nèi)有時鐘振蕩電路,只要在單片機的 xtal1 和 xtal2 引腳外接石英 晶體和微調(diào)電容,就構成了自激振蕩器并在單片機內(nèi)部產(chǎn)生時鐘脈沖信號,具體電路 設計如圖 3-2 所示。圖中電容 c1 和 c2 的作用是穩(wěn)定頻率和快速起振,其值為 530pf,在此選擇 30pf;晶振 x1 的振蕩頻率范圍在 1.212mhz 之間選擇。 圖 3-2 單片機時鐘、復位電路 2.復位電路模塊 復位電路使單片機或系統(tǒng)中的其

18、他部件處于某種確定的狀態(tài)。 當在單片機的 rst 引腳處引入高電平并保持 2 個機器周期,單片機內(nèi)部就執(zhí)行復 位操作。實際應用中,復位操作有兩種基本形式:一種是上電復位,另一種是按鍵復 位。在單片機運行期間,可以利用此按鍵完成復位操作。具體電路設計如上圖 3-2 所 示。 3.2 打鈴模塊 電鈴工作在交流電 220v 下,單片機工作電壓為直流電+5v,所以單片機引腳不能 直接控制電鈴工作,因此我們使用單片機控制電鈴工作電路的通斷。由于單片機驅(qū)動 能力有限,因而需要硬件將單片機輸出的高、低電平變成控制電鈴通斷的電路,能夠 具體實現(xiàn)該功能的電路有多種。常見的方式是采用將單片機輸出信號放大后驅(qū)動繼電

19、 器,用繼電器的觸頭控制電鈴電路的接通和斷開,如圖 3-3 所示。 三極管在電路當中起開關作用,管型為 pnp 型。單片機的 p1.7 通過三極管驅(qū)動繼 電器,當 p1.7 腳輸出高電平時,給三極管基極送入高電壓。此時,三極管呈截止狀態(tài), 繼電器不吸合電鈴停止打鈴;當 p1.7 腳輸出低電平時,給三極管基極送入的是低電壓。 此時,三極管呈導通狀態(tài),促使繼電器吸合,電鈴打鈴。 繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng) (又稱輸出回路) ,通常應用于自動控制電路中,它實際上是用較小的電流去控制較大 電流的一種“自動開關” 。當輸入量達到規(guī)定值時,使被控制的輸出電路導通或

20、斷開的 電器。繼電器線圈在斷電時會產(chǎn)生一個很大的反感生電動勢,這個電壓會損失繼電器 或者電路中的元件,在繼電器線圈上反向并聯(lián)一個二極管,可將產(chǎn)生的反感生電動勢 通過二極管回路釋放掉、保護繼電器線圈和電路中的電子元件不受高壓損壞。 p1.6 p1.7 8 p3.7/rd 17 p3.6/wr at89c51 q1 2n2905 r9 200r rl1 5v d1 1n4148 ls1 sounder 圖 3-3 聲音控制電路圖 3.3 存儲模塊 3.3.1 實時時鐘 ds1302 簡介 它可以對年、月、日、星期、時、分、秒進行計時,具有閏年補償功能,工作電 壓為 2.5v5.5v。采用三線接口與

21、 cpu 進行同步通信,并可采用突發(fā)方式一次傳送多 個字節(jié)的時鐘信號或 ram 數(shù)據(jù)。ds1302 內(nèi)部有一個 318 的用于臨時性存放數(shù)據(jù)的 ram 寄存器。ds1302 是 ds1202 的升級產(chǎn)品,與 ds1202 兼容,但增加了主電源/后備電 源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。 1.引腳功能及結構 圖 3-4 ds1302 引腳圖 如圖 3-4 所示,ds1302 的引腳排列,其中 vcc1 為后備電源,vcc2 為主電源。在主 電源關閉的情況下,也能保持時鐘的連續(xù)運行。ds1302 由 vcc1 或 vcc2 兩者中的較大 者供電。當 vcc2 大于 vcc1

22、0.2v 時,vcc2 給 ds1302 供電。當 vcc2 小于 vcc1 時, ds1302 由 vcc1 供電。x1 和 x2 是振蕩源,外接 32.768khz 晶振。rst 是復位/片選線, 通過 rst 輸入高電平來啟動所有的數(shù)據(jù)傳送。rst 輸入有兩種功能:首先,rst 接通控 制邏輯,允許地址/命令序列送入移位寄存器;其次,rst 提供終止單字節(jié)或多字節(jié)數(shù) 據(jù)的傳送手段。當 rst 為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對 ds1302 進行操 作。如果在傳送過程中 rst 置為低電平,則會終止此次數(shù)據(jù)傳送,i/o 引腳變?yōu)楦咦钁B(tài)。 上電運行時,在 vcc2.5v 之前,rs

23、t 必須保持低電平。只有在 sclk 為低電平時,才 能將 rst 置為高電平。i/o 為串行數(shù)據(jù)輸入輸出端(雙向),sclk 始終是輸入端。 2.實時時鐘 ds1302 的控制字節(jié) ds1302 的控制字節(jié)的最高有效位(位 7)必須是邏輯 1,如果它為 0,則不能把數(shù)據(jù) 寫入 ds1302 中,位 6 如果為 0,則表示存取日歷時鐘數(shù)據(jù),為 1 表示存取 ram 數(shù)據(jù); 位 5 至位 1 指示操作單元的地址;最低有效位(位 0)如為 0 表示要進行寫操作,為 1 表 示進行讀操作,控制字節(jié)總是從最低位開始輸出。 3.數(shù)據(jù)輸入輸出(i/o) 在控制指令字輸入后的下一個 sclk 時鐘的上升沿時

24、,數(shù)據(jù)被寫入 ds1302,數(shù)據(jù)輸 入從低位即位 0 開始。同樣,在緊跟 8 位的控制指令字后的下一個 sclk 脈沖的下降沿 讀出 ds1302 的數(shù)據(jù),讀出數(shù)據(jù)時從低位 0 位到高位 7。 4.實時時鐘 ds1302 的寄存器 ds1302 有 12 個寄存器,其中有 7 個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為 bcd 碼形式,其日歷、時間寄存器及其控制字。 此外,ds1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與 ram 相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器 內(nèi)容。ds1302 與 ram 相關的寄存器分為兩類:一類是單個 ra

25、m 單元,共 31 個,每個單 元組態(tài)為一個 8 位的字節(jié),其命令控制字為 c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫 操作;另一類為突發(fā)方式下的 ram 寄存器,此方式下可一次性讀寫所有的 ram 的 31 個 字節(jié),命令控制字為 feh(寫)、ffh(讀)。 5.引腳連接圖 圖 3-5 ds1302 引腳連接圖 在學校正常上課中,不可能保證學校隨時都有電,為了不影響學校的正常運轉(zhuǎn), 同學們能夠正常的上、下課。所以就采用能在學校停電時借助電池也能工作的芯片, 而 ds1302 能夠在學校掉電時,vcc2 無法給實時時鐘 ds1302 供電,只有通過干電池 b1 給實時時鐘 ds1302 的 v

26、cc1 提供電量讓 ds1302 繼續(xù)工作,系統(tǒng)能夠繼續(xù)計時。而這時 的其它電路停止工作,但存儲器中的打鈴時間不會因為沒有電而丟失。其與單片機連 接方式如上圖 3-5 所示。 3.3.2 存儲器 24c02c 要保證設置的打鈴時間數(shù)據(jù)在掉電時也不會丟失,同時實現(xiàn)在系統(tǒng)運行時能夠修 改打鈴時間,在本系統(tǒng)中采用 i2c 總線的串行存儲器 24c02c 存儲打鈴數(shù)據(jù)。 1.存儲器 24c02c 的引腳介紹 考慮到串口線、穩(wěn)定性等方面,本系統(tǒng)采用串行數(shù)據(jù)傳輸存儲器。其容量計算如 下:若以打鈴次數(shù)較多的校園為例,每天按 12 節(jié)課計算,每節(jié)課打鈴 2 次,再加上起 床和熄燈的次數(shù),打鈴大約在 20 次左

27、右。這樣每個信息單元占 8 個字節(jié),存儲時均按 照非壓縮型 bcd 碼存儲,則需要存儲空間大約在 160 個字節(jié)左右,選用 256 字節(jié)的存 儲器就能夠滿足容量的要求,可以采用 atmel 公司的 24c02c。根據(jù)硬件電路的設計可 得 24c02c 的 i2c 硬件地址為:0a2h/0a3h。 (1)行數(shù)據(jù)(sda)引腳 串行數(shù)據(jù)引腳為雙向引腳,用于把地址和數(shù)據(jù)輸入/輸出期間。該引腳為漏極開路。 因此,sda 總線要求在該引腳與 vcc之間接入上拉電阻(通常頻率為 100khz 時該電阻 阻值為 10k,頻率為 400khz 和 1mhz 時,阻值為 2k) 。 對于正常的數(shù)據(jù)傳輸,只允許在

28、 scl 為低電平期間改變 sda 電平。而 sda 電平在 scl 高電平期間若發(fā)生變化,表明起始和停止條件產(chǎn)生。 (2)寫保護(wp)引腳 該引腳必須連接到 vss或者 vcc。如果連接到 vss,寫操作使能。如果連接到 vcc, 寫操作被禁止,但讀操作不受影響 2.引腳連接方法 引腳采用 i2c 總線連接方法,這種方法能夠節(jié)約 i/o 輸出端口。它主要的特點有: (1)總線只有兩根線,即串行時鐘線和串行數(shù)據(jù)線,這在設計中大大簡化了硬件 接口; (2)每個連接到總線上的器件地址同時由芯片內(nèi)部硬件電路和外部地址引腳決定, 避免了片選線的線連接方法,并建立簡單的主從關系,主器件既可以作為發(fā)送器

29、,又 可作為接收器; (3)它是一個真正的多主總線,帶有競爭監(jiān)測和仲裁電路,多個主機可以任意發(fā) 送而不破壞總線上的數(shù)據(jù); (4)同步時鐘可以作為停止或重新啟動串行口發(fā)送的握手方式; (5)連接到同一總線的集成電路數(shù)量只受 400pf 最大總線電容的限制。 學校設定的系統(tǒng)時間和打鈴時間存儲在 24c02c 中。24c02c 的三個地址端口 a0、a1、a2 都接地,因而其存儲地址為 a000h-a6ffh,共 1kb 的存儲空間。其中,wp 是 24c02c 的寫保護控制引腳,wp 為低電平時,串行存儲器可以正常地讀/寫;wp 為高 電平時,對串行存儲器內(nèi)部的數(shù)據(jù)進行寫保護。在系統(tǒng)掉電時不會丟失

30、其中的內(nèi)容, 保證了設置的打鈴時間不會因系統(tǒng)掉電而需要重新設置。如圖 3-6 所示。 圖 3-6 24c02c 引腳連接圖 3.4 鍵控模塊 鍵盤是一組按鍵的組合,它是各種儀表中最常用的輸入設備。操作人員可通過鍵 盤輸入數(shù)據(jù)或命令,實現(xiàn)簡單的人機對話。在單片機應用系統(tǒng)中,有的是單個按鍵, 有的是矩陣式的按鍵,即行列式按鍵。按鍵是一種常開型按鈕開關,常態(tài)時按鍵的兩 個觸點處于斷開狀態(tài),按下鍵時它們才閉合。根據(jù)本設計本的要求,我們選用獨立式 鍵盤實現(xiàn)整個功能。 3.4.1 獨立式鍵盤介紹 圖 3-7 獨立式按鍵結構 獨立式鍵盤的按鍵相互獨立,每個按鍵占用一根 i/o 口線,每根 i/o 口線上的按

31、 鍵工作狀態(tài)不會影響其他按鍵的工作狀態(tài)。這種按鍵軟件程序簡單,但占用 i/o 口線 較多(一根口線只能接一個鍵) ,適用于鍵盤應用數(shù)量較少的系統(tǒng)中。獨立式按鍵電路 配置靈活,軟件結構簡單,但每個按鍵必須占用一根 i/o 口線,因此,在按鍵較多時, i/o 口線浪費較大,不宜采用。獨立式按鍵結構圖如圖 3-7 所示。 3.4.2 鍵盤接口及鍵位的功能介紹 按鍵功能介紹: 模式按鍵:它的主要功能就是選擇時鐘芯片里的年、月、日、時、分、秒,當按 下模式這個鍵時,它從年到月依次往后的選中,這時按調(diào)節(jié)按鈕就能從當前的時間往 上調(diào)。 調(diào)節(jié)按鍵:它的主要功能就是想改變當前的系統(tǒng)時間首先要按模式鍵,選中要修

32、改的時間,再按調(diào)節(jié)鍵就能控制當前系統(tǒng)時間遞增。 存入按鍵:它的主要功能就是把系統(tǒng)不正確的時間修改后按下存入鍵,系統(tǒng)的時 間就為按下那瞬間的時間。 清空按鍵:它的主要功能就是當學校要重新輸入打鈴時間的時候,就先按下清空 鍵,再輸入新的時間。 通過上述每個按鍵的功能介紹,實現(xiàn)對打鈴系統(tǒng)的打鈴時間設置。與單片機具體 鏈接圖,如圖 3-8 所示。 圖 3-8 鍵盤的接口連接 3.5 顯示模塊 在本系統(tǒng)中因為要顯示年、月、日、星期、時、分、秒,如果用發(fā)光二極管不能 具體的顯示出來,所以采用了七段數(shù)碼顯示管來作為顯示元件。 3.5.1 數(shù)碼管的組成及工作原理 數(shù)碼管由 8 個發(fā)光二極管構成,可以用來顯示數(shù)

33、字、字符等它在家電及工業(yè)控制 中有著很廣泛的應用。數(shù)碼管實際上是由 7 個發(fā)光管組成“8”字形構成的,加上小數(shù) 點就是 8 個。這些段分別由字母 a、b、c、d、e、f、g、dp 來表示。數(shù)碼管的引腳結 構如圖 3-9 所示,其中 com 引腳為公共端,用來控制數(shù)碼管顯示的打開或關閉,既起 到“使能”作用。當數(shù)碼管特定的段加上電壓后,這些特定的段就會發(fā)亮,以形成我 們眼睛看到的字樣。 根據(jù)公共端接法方式的不同,數(shù)碼管又分為共陰極和共陽極兩種結構的二極管, 分別如下: 共陽極就是將 8 個 led 的陽極連接到一起組成公共端 com,接到正極,當相應字段 為低電平“0”時,可以點亮該字段;但相應

34、字段為高電平“1”時,該字段不亮。 共陰極就是將 8 個 led 的陰極連接到一起組成公共端 com,接負極,當相應字段為 高電平“1”時,可以點亮該字段;當相應字段為低電平“0”時,該字段不亮。 圖 3-9 led 數(shù)碼管引腳 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā) 光二極管單元(多一個小數(shù)點顯示) ;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和 共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com) 的數(shù)碼管。共陽數(shù)碼管在應用時應將公共極 com 接到+5v,當某一字段發(fā)光二極管的陰 極為低電平時,相應字段就點亮。當某一字段的陰極為高

35、電平時,相應字段就不亮。 3.5.2 數(shù)碼管的顯示 數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們 要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 圖 3-10 數(shù)碼管動態(tài)顯示電路 動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之 一,動態(tài)驅(qū)動是將所有數(shù)碼管的 8 個顯示筆劃“a、b、c、d、e、f、g、dp”的同名端 連在一起,另外為每個數(shù)碼管的公共極 com 增加位選通控制電路,位選通由各自獨立 的 i/o 線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟 是那個數(shù)碼管會顯示出字形,取決于單片機對位選

36、通 com 端電路的控制,我們只要將 需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。 通過分時輪流控制各個數(shù)碼管的的 com 端,就使各個數(shù)碼管輪流受控顯示,這就是動 態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為 12ms,由于人的視覺暫留現(xiàn) 象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速 度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和 靜態(tài)顯示是一樣的,能夠節(jié)省大量的 i/o 端口,而且功耗更低。數(shù)碼管動態(tài)顯示連接, 如圖 3-10 所示。 第 4 章整機原理 4.1 整機原理圖 圖 4-1 整機原理圖

37、 4.2 整機電路原理 電路中采用 i2c 總線的串行存儲器 24c02c,在系統(tǒng)掉電時不會丟失其中的內(nèi)容, 保證了設置的打鈴時間不會因系統(tǒng)掉電而需要重新設置。24c02c 的三個地址端口 a0、a1、a2 都接地,因而其存儲地址為 a000h-a6ffh,共 1kb 的存儲空間。其中,wp 是 24c02c 的寫保護控制引腳,wp 為低電平時,串行存儲器可以正常地讀/寫;wp 為高 電平時,對串行存儲器內(nèi)部的數(shù)據(jù)進行寫保護。 實時時鐘芯片 ds1302 采用 3v 的電池作為后備電源,使 ds1302 內(nèi)部的時鐘不會因 為系統(tǒng)掉電而停止。在系統(tǒng)正常供電時,ds1302 通過內(nèi)部的涓流充電電阻

38、給后備電池 充電,能保證系統(tǒng)電池的長時間工作。 掉電情況下:由 bat1 干電池通過 ds1302 的引腳 vcc1 供電,系統(tǒng)時間不會因為沒 有電而停止工作,顯示電路、鍵盤電路、存儲電路、聲音控制電路因為 at89c51 沒有 電,所以停止工作。來電時,數(shù)碼管上顯示的系統(tǒng)時間不會是停電時刻的時間,系統(tǒng) 繼續(xù)工作。 正常情況下:按鍵按鈕通過 at89c51 的 p1.3、p1.4、p1.5、p1.6 腳進行調(diào)節(jié)、存 入、清空系統(tǒng)當前時間和打鈴時間和模式選擇。當前系統(tǒng)時間在數(shù)碼管上顯示系統(tǒng)時 間和打鈴時間,學校設置的打鈴時間存儲在外部存儲器 24c02c 中。ds1302 時鐘芯片為 單片機提供

39、實時時間并與 24c02c 中的打鈴時間進行比較來控制 at89c51 的 p1.7 腳輸 出高、低電平。如果當前系統(tǒng)與打鈴時間不一致,at89c51 中的 p1.7 腳就輸出高電平, 三極管 q1 截止,繼電器斷開,電鈴電路不導通。如果當前系統(tǒng)時間與打鈴時間一致, at89c51 中的 p1.7 腳就輸出低電平,三極管 q1 導通,繼電器閉合,電鈴電路導通打鈴。 第 5 章軟件設計 本系統(tǒng)中軟件部分應承擔日期時間顯示、按鍵掃描、系統(tǒng)狀態(tài)設置、打鈴時間判 斷等功能。 5.1 打鈴系統(tǒng)流程圖 打鈴系統(tǒng)程序打鈴是是調(diào)用存儲器中存儲的打鈴時間,把鬧鈴值與計時值的時、 分單元比較,看是否相等,如果不相

40、等就不打鈴,如果相等就啟動鬧鈴,鬧鈴延時時 間為 12 秒。程序流程圖如圖 5-1 所示。 鬧鐘值與計數(shù)值時, 分單元相等? 開始 初始化 停鬧、清除鬧鐘標 志和 2 秒計時標志 啟動鬧鐘 標志置位 返回 鬧鐘計時 12 秒? y y n 圖 5-1 打鈴系統(tǒng)流程圖 5.2 讀時間日期顯示流程圖 讀時間日期顯示程序是先對時間日期進行初始化,再對是顯示年月日還是顯示時 分秒進行判斷,并利用總線加以顯示。程序流程圖如圖 5-2 所示。 顯示時、分、 秒、星期 開始 返回 開始 顯示年、月、日 開始 賦初值 開始 timetodisplay 開始 if(yh | mode_n3) y n n 圖 5

41、-2 讀時間日期顯示流程圖 5.3 led 顯示流程圖 顯示子程序采用動態(tài)掃描法實現(xiàn)三位數(shù)碼管的數(shù)值顯示。測量數(shù)據(jù)在顯示時需轉(zhuǎn) 換成 10 進制 bcd 碼放在 24c02c 存儲器中,再轉(zhuǎn)換成十進制進過總線輸出,經(jīng)由單片 機控制 led 顯示。程序流程圖如圖 5-3 所示。 圖 5-3 led 顯示的流程圖 n y 5.4 主程序流程圖 主程序比較簡單,初始化完成后,調(diào)用按鍵掃描程序,取得鍵值,并根據(jù)當前系 統(tǒng)狀態(tài)調(diào)用相應的子程序。這里有五個基本的子程序供調(diào)用,分別對應系統(tǒng)的各種功 能狀態(tài)。分別是打鈴時間設置子程序、當前時間顯示子程序、鍵盤模塊子程序、打鈴 校準子程序等。程序流程圖如圖 5-

42、4 所示。 main( ) 賦初值年、月、日、 時、分、秒、星期 while(1) 模式鍵? 調(diào)節(jié)鍵? 校正 led 顯示模式 主循環(huán)計數(shù) 打鈴點設置 打鈴 返回 圖 5-4 控制模塊的流程圖 n y n y 第 6 章仿真和調(diào)試 下面用 keil 與 porteus 仿真軟件實現(xiàn)校園打鈴的仿真與調(diào)試。 6.1 調(diào)試軟件的介紹 keil 軟件是目前最流行開發(fā) mcs-51 系列單片機的軟件,keil 提供了包括 c 編譯 器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案, 通過一個集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。 keil c51 vision2 集

43、成開發(fā)環(huán)境是 keil software,inc/keil elektronik gmbh 開發(fā)的基于 80c51 內(nèi)核的微處理器軟件開發(fā)平臺,內(nèi)嵌多種符合當前工業(yè)標準的開發(fā) 工具,可以完成從工程建立到管理、編譯、鏈接、目標代碼的生成、軟件仿真、硬件 仿真等完整的開發(fā)流程尤其是 c 編譯工具在產(chǎn)生代碼的準確性和效率方面達到了較高 的水平,而且可以附加靈活的控制選項,在開發(fā)大型項目時非常理想。 proteus 是目前最好的模擬單片機外圍器件的工具,它不僅能仿真單片機 cpu 的工 作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況??梢苑?真 51 系列、avr,pic 等常用的

44、 mcu 及其外圍電路(如 lcd,ram,rom,鍵盤,馬達, led,ad/da,部分 spi 器件,部分 iic 器件) 。 6.2 調(diào)試的操作步驟 1.在 uvision 集成開發(fā)環(huán)境中創(chuàng)建新項目(project) ,擴展文件名為 uv2,并為該 項目選定合適的單片機 cpu 器件。 2.用 uvision 的文本編輯器編寫源文件,可以是匯編文件(.asm) ,也可以使 c 語 言文件(擴展名.c) ,并將該文件添加到項目中去。一個項目文件可以包含多個文件, 除了源程序文件外,還可以是庫文件、頭文件或文本說明文件。 3.通過 uvision2 的相關選擇項,配置編譯環(huán)境、連接定位器以及

45、 debug 調(diào)試器的 功能。 4.對項目中的源文件進行編譯連接,生成絕對目標代碼和可選的 hex 文件,如果 出現(xiàn)編譯連接錯誤則返回到第 2 步,修改源文件中的錯誤后重構整個項目。 5.對沒有語法錯誤的程序進行仿真調(diào)試,調(diào)試成功后將 hex 文件寫入到單片機應 用系統(tǒng)的 rom 中。 6.下一步就可以在 proteus 軟件中將 hex 文件燒入單片機。 6.3 仿真軟件對于本設計的仿真 通過以上步驟,來實現(xiàn)校園打鈴系統(tǒng)設計的仿真: 狀態(tài) 1:led 數(shù)碼管對年、月、日顯示的仿真效果如圖 6-1 所示。 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9

46、 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a1

47、1 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 r1 200r r2 200r r3 200r r4 200r r5 200r r6 200r r7 200r r8 200r a b c d e f g dp 1 2 3 4 5 6 7 8 a b c d e f g dp 1 2 3 4 5 6 7 8 rst 5 sclk 7 i/o 6 x1 2 x2 3 vcc1 8 vcc2 1 u2 ds1302 模式 調(diào)節(jié) sck 6 sda 5 wp 7 a0 1 a1 2 a2 3 u3 24c02c q1 2n2905 r9 200r

48、 清空 存入 i2c sda scl rl1 5v d1 1n4148 bat1 3v ls1 sounder 圖 6-1 當前年、月、日的顯示 狀態(tài) 2:led 數(shù)碼管對時、分、秒和星期顯示的仿真效果如圖 6-2 所示。 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6

49、7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 r1 200r r2 200r r3 200r r4 200r r5 200r r6 200r r7 200r r8 200r a b c d e f g dp 1 2 3 4 5 6

50、 7 8 a b c d e f g dp 1 2 3 4 5 6 7 8 rst 5 sclk 7 i/o 6 x1 2 x2 3 vcc1 8 vcc2 1 u2 ds1302 模式 調(diào)節(jié) sck 6 sda 5 wp 7 a0 1 a1 2 a2 3 u3 24c02c q1 2n2905 r9 200r 清空 存入 i2c sda scl rl1 5v d1 1n4148 bat1 3v ls1 sounder 圖 6-2 當前年、月、日的顯示 proteus 的 isis 是一款 labcenter 出品的電路分析實物仿真系統(tǒng),可仿真各種電 路和 ic,并支持單片機,元件庫齊全,使用

51、方便,是不可多得的專業(yè)的單片機軟件仿 真系統(tǒng)。 表 6-1 器件庫及所選器件 器件庫器件名稱 microprocessor ics89c51 memory ics24c02c switches sbit key_change=p14; sbit key_wr_2402=p15; sbit key_clr_2402=p16; sbit l_out=p17; /數(shù)碼管顯示: 0 1 2 3 4 5 6 7 8 9 a b c d e f uchar code dis=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,

52、0 x83,0 xc6,0 xa 1,0 x86,0 x8e, / 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. a. b. c. d. e. f. 0 x40,0 x79,0 x24,0 x30,0 x19,0 x12,0 x02,0 x78,0 x00,0 x10,0 x08,0 x03,0 x46,0 x21,0 x06, 0 x0e, / y l j 黑 全亮 點 - 0 x91,0 xc7,0 xe1,0 xff,0 x00, 0 x7f, 0 xbf; uchar disp_buf8; /顯示緩沖區(qū) uchar time7; /時間緩沖區(qū) /延時子程序 void de

53、lay(unsigned int a) while(-a); /顯示子程序 void display() uchar i; uchar ik; /賦初值 ik=0 x01; /初始化為 1 for(i=0;i8;i+) led_abc=disdisp_bufi; /顯示數(shù)碼管數(shù)字 led_123=ik; delay(100); /選擇數(shù)碼管位數(shù) 延時 led_123=0 x00; /賦值為 0 ik4)*10+(a /變成 16 進制并加 1 temp=temp/10*0 x10+temp%10; /轉(zhuǎn)回 bcd 碼 return temp; /退出 bit yh; /顯示標志,0=時分鈔星期

54、,1=年月日 uchar mode_n=0; /工作模式,0=常態(tài),1=校分,2=校時,3=星期,4=校日,5=校月,6=校 年 void timetodisplay() /讀時間日期送顯示緩 time0=read_ds1302(year); /年 year time1=read_ds1302(month); /月 month time2=read_ds1302(date); /日 date time3=read_ds1302(week); /星期 week time4=read_ds1302(hour); /時 hour time5=read_ds1302(minute); /分 minut

55、e time6=read_ds1302(second); /秒 second if(yh | mode_n3) disp_buf0=0 x02; /顯示年月日 disp_buf1=0 x00; disp_buf2=time0/0 x10; disp_buf3=time0%0 x10|0 x10; disp_buf4=time1/0 x10; disp_buf5=time1%0 x10|0 x10; disp_buf6=time2/0 x10; disp_buf7=time2%0 x10; else disp_buf0=time4/0 x10; /顯示時分鈔星期 disp_buf1=time4%0 x10|0 x10; disp_buf2=time5/0 x10; disp_buf3=time5%0 x10|0 x10; disp_buf4=time6/0 x10; disp_buf5=time6%0 x10; disp_buf6=0 x23; disp_buf7=(time3-1)%0 x10; /分析是否打鈴 bit dll_ok() uchar i,j,k2; rw24xx( /讀指針 for(j=1;j0 x60) /如果秒大于

溫馨提示

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

最新文檔

評論

0/150

提交評論