版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 1引言</b></p><p> 1.1 課題研究背景與現(xiàn)狀</p><p> 時間是科學技術(shù)中最基本的物理量之一,無論是農(nóng)業(yè)生產(chǎn),還是工業(yè)自動控制,都與時間息息相關(guān),尤其是中國的農(nóng)業(yè)生產(chǎn),和農(nóng)歷日期聯(lián)系緊密,準確的農(nóng)歷日期,為農(nóng)業(yè)生產(chǎn)、農(nóng)民生活帶來極大方便。工業(yè)生產(chǎn)中的延時動作,定時動作等對時間的精確度要求較高。小到運動員的百米賽跑
2、,大到一項工程的實施,都和時間密不可分,所以,萬年歷隨處可見。但是,隨著科技的發(fā)展,人們生活水平不斷提高,人們所關(guān)心的不僅僅是時間,還有其他一些像室內(nèi)溫度、農(nóng)歷日期、星期等和人們生活聯(lián)系緊密的數(shù)據(jù),甚至對數(shù)字萬年歷的外觀也提出新的要求,這就對萬年歷的功能提出新的更高的要求。</p><p> 近年來隨著計算機在社會各領(lǐng)域的滲透, 單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制方式日新月益。控制方式有從模擬控制
3、向數(shù)字控制轉(zhuǎn)變的發(fā)展趨勢。微控制芯片具有強大的邏輯運算能力,它的出現(xiàn),使得數(shù)字萬年歷不僅能給人們提供時間,而且還能提供很多新的功能,例如:溫度顯示、農(nóng)歷顯示、節(jié)氣提示、語音提示、日程表、生日提示、星座查詢、錄音放音、風景控制等?,F(xiàn)在的好多數(shù)字萬年歷產(chǎn)品都通過控制內(nèi)置燈光對萬年歷表面裝飾圖片進行掃描,實現(xiàn)動態(tài)風景;通過控制語音芯片發(fā)出各類鳥叫的聲音,使人們生活在自己的房間里,仿佛身處大自然!可見,現(xiàn)在的數(shù)字萬年歷不僅僅是一個智能化的、可以
4、提供多信息的器件,更是室內(nèi)的一道風景。</p><p> 上海禮品公司生產(chǎn)的多功能萬年歷具有LED燈顯示、年歷、月歷、時間顯示、12小時或24小時制式、選擇四組定時鬧鈴、整點鈴響、按鍵音、小于100小時倒計時、世界16個城市現(xiàn)在時查詢、1900年到2099年月歷查詢、八位數(shù)四則運算、百分比計算 M+、M-和MRC存儲運算功能貨幣換匯計算??梢?,多功能智能化數(shù)字萬年歷是以后萬年歷發(fā)展的方向,基于微控制芯片的數(shù)字萬
5、年歷可以滿足人們對萬年歷的多功能、界面友好和智能化的要求,數(shù)字控制技術(shù)將引起萬年歷新的重大改變。</p><p> 1.2本課題所做的工作</p><p> 首先,本課題對系統(tǒng)主要功能進行分析,確定該系統(tǒng)的主要功能是:陽歷日期、時間顯示、農(nóng)歷日期顯示、星期顯示、環(huán)境溫度顯示和定時鬧鈴,并可以修改時間,在修改時間的過程中,可以對月份天數(shù)自動判斷。</p><p>
6、 其次,系統(tǒng)設(shè)計要做的工作是電源分析和設(shè)計,該設(shè)計選用的集成芯片都采用+5V電源供電,所以,要先對常見220V交流電源進行變換,得到較為穩(wěn)定的、可以滿足系統(tǒng)要求的+5V穩(wěn)壓電源。</p><p> 最后,要對選用的芯片進行學習,尤其是其工作時序,這是實現(xiàn)系統(tǒng)的關(guān)鍵。溫度檢測采用DS18B20,由于DS18B20是單總線溫度傳感器,所以,對其控制需要較嚴格的時序。通過查閱資料和仿真掌握單總線數(shù)字溫度傳感器的時序
7、要求和工作流程,該系統(tǒng)主要應(yīng)用了DS18B20的跳過ROM匹配、溫度轉(zhuǎn)換、讀取溫度指令等。</p><p> 時鐘芯片采用DS1302,為三總線時鐘芯片,為了能夠使其正常工作,要學習其中的寄存器格式、寄存器特殊位作用、讀取時間寄存器數(shù)據(jù)、寫入時間寄存器數(shù)據(jù)等。DS1302時鐘芯片內(nèi)部沒有集成備用電源,所以,要對其掉電保護環(huán)節(jié)進行考慮和設(shè)計。</p><p> 顯示器件選用點陣帶字庫型1
8、2864液晶模塊,由于液晶模塊在寫入指令或數(shù)據(jù)后,要經(jīng)過一段時間才能完成內(nèi)部動作,所以,對其讀寫控制時要有必要的延時,以等待液晶模塊完成內(nèi)部動作,才能使寫入的數(shù)據(jù)或指令有效。帶字庫型液晶模塊有基本指令集和擴充指令集,本設(shè)計不需要顯示圖片,所以,采用基本指令集。在時間設(shè)定環(huán)節(jié),要有設(shè)定提示,本系統(tǒng)以游標閃爍方式提示用戶當前所修改的數(shù)據(jù),為此,要對游標閃爍控制方式進行學習。</p><p> 2數(shù)字萬年歷硬件設(shè)計&
9、lt;/p><p> 該系統(tǒng)采用220V交流電供電,自帶電源變換電路,在交流斷電的情況下,仍能保持正確走時。微控制芯片采用Atmel公司的AT89S52,其內(nèi)部含有8k字節(jié)Flash,支持USBISP編程,十分方便。溫度傳感器選用DS18B20,它支持3V~5.5V的電壓范圍,使系統(tǒng)設(shè)計更靈活、方便。時鐘芯片選用美國Dallas公司推出的具有涓細電流充電能力的低功耗實時時鐘芯片DS1302。顯示部分選用界面友好的Y
10、M12864R液晶模塊,其內(nèi)部采用ST7920A控制器,內(nèi)置8192個中文漢字(16×16),編程方便,可以節(jié)約很多的程序存儲器空間。穩(wěn)壓芯片選用三端穩(wěn)壓器件7805,簡單易用、價格低廉。</p><p> 2.1 電源電路設(shè)計</p><p> 電源是系統(tǒng)能夠工作的基礎(chǔ),電源的好壞直接影響到系統(tǒng)的性能。一個好的電源,可以給系統(tǒng)提供足夠的能量,從而使系統(tǒng)運行穩(wěn)定。我們常見的、
11、也比較容易獲得的電源是220V交流電,而該系統(tǒng)以集成芯片為硬件基礎(chǔ),其需要大約+5V的直流電源。如何對易得的220V交流電進行變換,使其符合系統(tǒng)+5V的電壓、功率需求,是首先要解決的問題。</p><p> 圖2-1 7805管腳</p><p> 7805為三端正穩(wěn)壓電路,TO-220封裝,如圖2-1所示。在輸入電壓范圍為7V-15V時,輸出端輸出較為穩(wěn)定的+5V電壓。內(nèi)含過流、過
12、熱和過載保護電路。帶散熱片時,輸出電流可達1A,且價格低廉,應(yīng)用十分廣泛,能夠滿足該系統(tǒng)+5V工作電壓需求,所以該系統(tǒng)選取7805作為穩(wěn)壓元件。220V交流電經(jīng)過9V變壓器,再經(jīng)過DB107全橋整流芯片,經(jīng)過2200uf電容濾波作為7805的輸入電壓,在7805輸出端就可以得到系統(tǒng)所需要的+5V電源,其硬件電路原理如圖2-2所示。</p><p> 圖2-2 電源電路硬件原理</p><p
13、> 2.2微控制器選擇</p><p> 今天,微處理器已經(jīng)無處不在,無論是錄像機、智能洗衣機、移動電話等家電產(chǎn)品,還是汽車引擎控制,以及數(shù)控機床、導彈精確制導等都要嵌入各類不同的微處理器。微處理器不僅是微型計算機的核心部件,也是各種數(shù)字化智能設(shè)備的關(guān)鍵部件,其芯片管腳如圖2-3所示。</p><p> 圖2-3 AT89S52芯片管腳</p><p&g
14、t; AT89S52是一種低功耗、高性能CMOS8位微控制器。AT89S52具有8K在線系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在線系統(tǒng)可編程,亦適于常規(guī)編程器。在芯片上,具有靈巧的8 位CPU 和在線系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字
15、節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。</p>&
16、lt;p> P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用口,在這種模式下,P0口具有內(nèi)部上拉電阻。在Flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。 </p><p> P1口:P1口是一個具有內(nèi)
17、部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入口使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。 </p><p><b> 引腳號第二功能:</b></p><p> P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 </p
18、><p> P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) </p><p> P1.5 MOSI(系統(tǒng)編程用) </p><p> P1.6 MISO(系統(tǒng)編程用) </p><p> P1.7 SCK(系統(tǒng)編程用) </p><p> P2口:P2口是一個具有內(nèi)部上拉電阻的8 位雙向I
19、/O 口,P2 輸出緩沖器能驅(qū)動4個TTL 邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入口使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。 </p><p> 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)
20、據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在Flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 </p><p> P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入口使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。 </p><p> P3
21、口亦作為AT89S52特殊功能(第二功能)使用,如下所示。 </p><p> 在Flash編程和校驗時,P3口也接收一些控制信號。 </p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 INTO(外中斷0)</p><p> P3.
22、3 INT1(外中斷1)</p><p> P3.4 TO(定時/計數(shù)器0)</p><p> P3.5 T1(定時/計數(shù)器1)</p><p> P3.6 WR(外部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 RD(外部數(shù)據(jù)存儲器讀選通)</p><p> 此外,P3口還接收一些用于Flash閃存編程和
23、程序校驗的控制信號。</p><p> RST——復(fù)位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位,其上電復(fù)位硬件原理如圖2-4所示。</p><p> 圖2-4 上電復(fù)位硬件原理</p><p> ALE/PROG——當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍
24、以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。</p><p> 對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時
25、,應(yīng)設(shè)置ALE禁止位無效。</p><p> PSEN——程序存儲器允許(PSEN)輸出,是外部程序存儲器的讀選通信號,當AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。</p><p> EA/Vpp——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),
26、EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。</p><p> 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。該系統(tǒng)主控制電路硬件原理如圖2-5所示。</p><p> 圖2-5 系統(tǒng)主控制電路硬件原理&l
27、t;/p><p> 2.3溫度測量環(huán)節(jié)設(shè)計</p><p> 如今,溫度傳感器的總類可謂五花八門,各溫度傳感器的精度和控制方式都有所不同,價格也相差很大。如何選擇滿足該系統(tǒng)測量室溫的精度要求,并且價格低廉的溫度傳感器,是一個重要問題。</p><p> Dallas半導體公司的數(shù)字化溫度傳感器DS18B20是一線總線接口的溫度傳感器,一線總線具有獨特而經(jīng)濟的特點,
28、性能價格比非常出色。該系統(tǒng)需要測量室溫,精度要求不是太高,所以,該系統(tǒng)選用DS18B20作為溫度傳感器,其管腳排列如圖2-6所示。</p><p> 圖2-6 DS18B20管腳</p><p> 微控制器控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前要對DS18B20進行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預(yù)定的操作。
29、復(fù)位要求微控制器將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待16~60微秒左右,然后發(fā)出60~240微秒的存在低脈沖,微控制器收到此信號表示復(fù)位成功,如果沒有收到復(fù)位成功信號,則表示DS18B20出現(xiàn)問題,可以用來作為系統(tǒng)設(shè)計時的故障提示、判斷信號。</p><p> DS18B20的單總線數(shù)據(jù)傳輸特點,決定了它嚴格的控制時序。微控制器寫1時,數(shù)據(jù)線必須先被拉至低電平,然后就被釋放,使數(shù)據(jù)線在
30、寫時間片開始之后的15微秒之內(nèi)拉至高電平。微控制器寫0時,數(shù)據(jù)線必須先被拉至低電平且至少保持邏輯低電平60微秒。微控制器把數(shù)據(jù)線從高電平拉至低電平時,產(chǎn)生讀時間片,數(shù)據(jù)線必須保持在邏輯低電平至少1微秒;來自DS18B20的輸出數(shù)據(jù)在讀時間片下降沿之后15微秒有效。因此,為了讀取從時間片開始算起15微秒的數(shù)據(jù)線狀態(tài),微控制器必須停止把數(shù)據(jù)線驅(qū)動至低電平。在讀時間片結(jié)束時,數(shù)據(jù)線經(jīng)過外部的上拉電阻拉回至高電平。所有讀時間片的最短持續(xù)期限為6
31、0微秒,各個讀時間片之間必須有最短為1微秒的恢復(fù)時間。其讀寫時序如圖2-7所示。</p><p> 圖2-7 DS18B20讀寫時間間隙</p><p> 該系統(tǒng)對DS18B20進行操作用到的指令為:跳過ROM匹配,命令字為0CCH;溫度轉(zhuǎn)換指令,命令字為44H;讀溫度指令,命令字為0BEH。系統(tǒng)溫度檢測部分硬件原理如圖2-8所示。</p><p> 圖2-
32、8 系統(tǒng)溫度檢測部分硬件電路</p><p><b> 2.4時鐘芯片環(huán)節(jié)</b></p><p> DS1302 是美國Dallas公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個
33、31×8的用于臨時存放數(shù)據(jù)的RAM寄存器。DS1302采用主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力。DS1302電路的接口簡單、價格低廉、工作電壓為2.5V~5.5V,使用方便,被廣泛地采用,所以,該系統(tǒng)選用DS1302。</p><p> 圖2-9 DS1302管腳</p><p> 圖2-9所示為DS1302的引腳排列,其中Vcc1為后備電
34、源,Vcc2為主電源,在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動至高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;
35、其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送。</p><p> I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平,只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK始終是輸入端。</p>&l
36、t;p> 在對DS1302進行讀寫操作時,要首先了解它的控制字。DS1302 的控制字如圖2-10所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1表示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。在控制指令字輸入后的下一個SCLK時鐘的上升沿,數(shù)據(jù)被寫入
37、DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0到高位7。</p><p> 圖2-10 DS1302控制字</p><p> 該系統(tǒng)需要對時間進行讀取和設(shè)定,所以,在掌握控制字之后,還必須熟悉DS1302內(nèi)部各寄存器的地址和特殊狀態(tài)位,其內(nèi)部各寄存器的地址和特殊狀態(tài)位如表2-1所示。</
38、p><p> 表2-1 日歷、時間寄存器及其控制字</p><p> 系統(tǒng)時鐘芯片部分硬件原理如圖2-11所示。</p><p> 圖2-11 系統(tǒng)時鐘芯片部分硬件原理</p><p><b> 2.5顯示電路設(shè)計</b></p><p> 現(xiàn)在,大多數(shù)字萬年歷都采用LED顯示數(shù)據(jù),但是
39、,LED只能顯示數(shù)字,不能顯示漢字。要想實現(xiàn)更好的人機界面,用液晶顯示器顯示數(shù)據(jù)是最佳選擇。YM12864R點陣帶字庫液晶顯示模塊可顯示漢字及圖形,內(nèi)置8192個中文漢字(16×16點陣)、128個字符(8×16點陣),其引腳功能如表2-2所示。</p><p> 該系統(tǒng)中,微控制芯片采用8位并口的方式對YM12864R進行控制,所以PSB引腳接固定高電平。在對YM12864R進行控制時,要
40、清楚它的讀寫時序,在本設(shè)計中,主要是對YM12864R進行寫操作,所以,下面介紹YM12864R的寫控制時序,其寫控制時序如圖2-12所示。</p><p> 表2-2 YM12864R引腳功能說明</p><p> 圖2-12 YM12864寫時序</p><p> 圖2-12給出YM12864R的寫控制時序,對YM12864R寫控制時,在使能信號E下降
41、沿有效。在使能信號E下降沿后,為了保證數(shù)據(jù)或指令可靠寫入,需要在使能信號E下降沿后有一段延時,使YM12864R完成內(nèi)部動作。YM12864R的指令集分為基本指令集和擴充指令集,擴充指令集提供繪圖功能,可以顯示圖片;在本設(shè)計當中,僅需要基本指令集以顯示漢字、數(shù)字和字母,表2-3給出YM12864R的基本指令集。清除顯示指令將DDRAM填滿“20H”,并且設(shè)定DDRAM的地址計數(shù)器(AC)為“00H”。 地址歸位指令設(shè)定DDRAM的地址計
42、數(shù)器(AC)為“00H”,并且將游標移到開頭原點位置,這個指令并不改變DDRAM的內(nèi)容。在顯示狀態(tài)開/關(guān)指令中,D=1,整體顯示ON,C=1,游標ON,B=1,游標位置ON。在功能設(shè)定指令中DL=1(必須為1),RE=1,擴充指令集動作,RE=0,基本指令集動作。</p><p> 表2-3 YM12864R基本指令</p><p> 對YM12864操作時需要注意的問題:</
43、p><p> 1:對YM12864R操作前,要初始化,本設(shè)計在初始化時主要是進行DDRAM地址設(shè)定,基本指令集選擇,顯示狀態(tài)開,游標顯示開等。</p><p> 2:在對YM12864R寫控制時,必須保證在使能信號E的下降沿后有一段的延時才能寫入有效的數(shù)據(jù)或指令。</p><p> 3:在顯示中文字型時,將兩字節(jié)編碼連續(xù)寫入DDRAM中,范圍為A140H-F7FF
44、H(GB碼)或A140H-D75FH(BIG5碼)。顯示半寬字形時將一字節(jié)編碼寫入DDRAM中,范圍為02H-7FH,系統(tǒng)顯示部分硬件電路原理如圖2-13所示。</p><p> 圖2-13 系統(tǒng)顯示部分硬件電路</p><p> 2.6 定時鬧鈴、按鍵電路設(shè)計</p><p> 該系統(tǒng)具有定時鬧鈴功能,當定時到的時候,微控制器由P1.7發(fā)出控制信號,控制三
45、極管導通關(guān)斷,從而控制蜂鳴器發(fā)出時長一分鐘的鬧鈴聲。蜂鳴器采用+5V供電,所以需要三極管驅(qū)動,其驅(qū)動控制電路如圖2-14所示。</p><p> 圖2-14 系統(tǒng)鬧鈴部分硬件電路</p><p> 在該系統(tǒng)中,用戶可以通過按鍵對日期、時間、定時時間進行修改。系統(tǒng)提供四個按鍵,分別為:設(shè)定、選擇、調(diào)節(jié)、確定。四個按鍵分別接到微控制器P3.0、P3.1、P3.2、P3.3引腳,在按鍵沒有
46、被按下時,引腳為邏輯低電平,按下則為邏輯高電平,系統(tǒng)按鍵部分硬件原理如圖2-15所示。</p><p> 圖2-15 系統(tǒng)按鍵部分硬件電路</p><p> 3 數(shù)字萬年歷軟件設(shè)計</p><p> 一個系統(tǒng),硬件的設(shè)計往往只是其中的一部分,或者說一小部分。尤其隨著微電子技術(shù)、大規(guī)模集成電路制作技術(shù)的發(fā)展,很多我們所需要的元件都可以在市場上找到。集成芯片系統(tǒng)
47、的硬件電路往往非常簡單,因為它們都采用總線和微控制器對話。硬件電路設(shè)計完成后,要讓系統(tǒng)按照我們設(shè)計的要求工作,就需要軟件來控制微控制器和外圍芯片對話,軟件是該系統(tǒng)的靈魂!</p><p> 3.1 軟件總體設(shè)計</p><p> 該系統(tǒng)軟件采用匯編語言設(shè)計,模塊化的設(shè)計方法使得該系統(tǒng)以后的升級改動更為靈活。系統(tǒng)軟件流程為:上電顯示制作者開機界面、送開始轉(zhuǎn)換溫度指令、讀取溫度值到緩沖區(qū)、
48、讀取全部時鐘日歷數(shù)據(jù)到緩沖區(qū)、顯示陽歷日期和時間、陽歷農(nóng)歷轉(zhuǎn)換、顯示農(nóng)歷日期、顯示溫度、定時判斷、判斷是否有按鍵被按下、返回到開始。本系統(tǒng)采用四個按鍵和微處理器對話,可以修改時間,設(shè)定定時時間。微處理器采用查詢方式掃描按鍵狀態(tài)。主程序執(zhí)行流程如圖3-1所示。</p><p> 圖3-1 主程序流程</p><p> 3.2按鍵掃描并處理程序流程</p><p>
49、; 要設(shè)定鬧鈴時間,就要求外界和微處理器對話,以告知微處理器人們的意愿。按鍵輸入方便、簡單,應(yīng)用廣泛,例如電腦鍵盤。,按鍵掃描并處理程序流程如圖3-2所示。</p><p> 圖3-2 按鍵掃描并處理程序流程</p><p> 3.3 相應(yīng)數(shù)據(jù)加一程序流程</p><p> 圖3-3 相應(yīng)數(shù)據(jù)加一程序流程</p><p> 相應(yīng)
50、數(shù)據(jù)加一程序流程如圖3-3所示,在對數(shù)據(jù)加一處理程序中,需要對各數(shù)據(jù)范圍進行判斷,年的最大值為99,即該系統(tǒng)最長可顯示到2099年的日期、時間。月的最大值為12,時的最大值為23,分的最大值為59,秒的最大值為59。該系統(tǒng)能夠?qū)γ吭碌奶鞌?shù)進行自動判斷,陽歷的月份信息為:1、3、5、7、8、10、12月,每月31天;4、6、9、11月,每月30天;二月最為特殊,非閏年為28天,閏年為29天,所以,要想實現(xiàn)日期加一,除了要判斷月份值外,還需
51、要判斷年份是否為閏年。日期加一的程序流程如圖3-4所示。</p><p> 圖3-4 日期加一程序流程</p><p> 3.4 游標顯示控制程序流程</p><p> 該數(shù)字萬年歷可以對時間進行修改、鬧鈴設(shè)定。當需要修改時間和鬧鈴設(shè)定時,系統(tǒng)以游標閃爍的方式提示用戶當前修改的數(shù)據(jù)。游標指針是連續(xù)加一的,要能正確顯示游標的位置,需要對其進行變換,得到Y(jié)M12
52、864R的實際游標閃爍地址,游標閃爍控制程序流程如圖3-6所示。</p><p> 3.5 溫度測量元件控制程序流程</p><p> 室內(nèi)環(huán)境溫度和人們的生活息息相關(guān),隨著人們生活水平的提高,人們對和氣候相關(guān)的數(shù)據(jù)越來越關(guān)心。本系統(tǒng)具有室內(nèi)溫度測量功能,并且通過液晶顯示器顯示出來,界面直觀,可以讓人們很方便的了解當前的環(huán)境溫度。該系統(tǒng)采用DS18B20作為溫度傳感器,一個微控制器引腳
53、可以掛接多個DS18B20,在微控制器發(fā)送指令時,究竟哪一個DS18B20接收指令,由ROM匹配環(huán)節(jié)確定。本設(shè)計只用到一片DS18B20,所以不需要ROM匹配,直接發(fā)送跳過ROM匹配指令即可。溫度傳感器DS18B20控制程序流程如圖3-5所示。</p><p> 圖3-5 DS18B20控制程序流程</p><p> 圖3-6 游標閃爍控制程序流程</p><p
54、> 3.6 時鐘芯片讀寫程序流程</p><p> 在該系統(tǒng)中,微控制器所做的主要工作就是不斷的讀取時鐘芯片內(nèi)部的日歷寄存器數(shù)據(jù)并將其顯示在液晶屏幕上。DS1302采用三總線與微控制器對話,微控制器讀寫時鐘芯片內(nèi)日歷寄存器數(shù)據(jù)的程序流程如圖3-7、3-8所示。</p><p><b> 4系統(tǒng)調(diào)試</b></p><p> 一個完
55、整的系統(tǒng)在開始著手設(shè)計的時候往往要考慮很多的環(huán)節(jié),該系統(tǒng)在設(shè)計的時候就要考慮溫度檢測、時鐘準確走時、數(shù)據(jù)顯示、鬧鈴、按鍵識別與處理等很多環(huán)節(jié)。假如我們直接把所有硬件焊接起來,倘若系統(tǒng)不能正常工作,那么檢查起來將非常麻煩,所以,該系統(tǒng)在進行調(diào)試的時候,采用模塊化,分步驟進行的方式,把一塊一塊的功能實現(xiàn)了,再組裝起來進行聯(lián)合調(diào)試,可以取得事半功倍的效果。</p><p><b> 4.1系統(tǒng)硬件調(diào)試<
56、;/b></p><p> 硬件是系統(tǒng)的載體,沒有硬件,系統(tǒng)根本無法實現(xiàn)。在硬件焊接的過程中,難免會出現(xiàn)一些問題,在微控制器控制系統(tǒng)中,對硬件每一部分的細節(jié)都要求很高,任何一個環(huán)節(jié)出現(xiàn)很小的問題都將導致系統(tǒng)不能正常工作,系統(tǒng)功能無法實現(xiàn)。</p><p> 4.1.1微控制器硬件調(diào)試</p><p> 在本系統(tǒng)硬件調(diào)試過程中,首先確定微控制器各引腳能夠正
57、常輸出邏輯高低電平。在微控制器硬件電路焊接完畢之后,裝入簡單測試程序,讓微控制器所有管腳輸出邏輯高電平,然后,用萬用表測量各管腳是否為高電平;再裝入測試程序,讓所有微控制器管腳輸出邏輯低電平,用萬用表測量各管腳是否為低電平。這種裝入簡單測試程序以測量部分硬件電路是否工作正常的方式在該系統(tǒng)的調(diào)試過程中顯得非常有用。</p><p> 4.1.2時鐘芯片硬件調(diào)試</p><p> 時鐘芯片
58、在該系統(tǒng)中有著非常重要的地位。在時鐘芯片硬件電路焊接好之后,裝入測試程序,發(fā)現(xiàn)不能正常工作,如果拿金屬物接觸DS1302數(shù)據(jù)管腳,就能正常工作,這種現(xiàn)象很少見,因為只拿金屬物接觸時鐘芯片數(shù)據(jù)管腳,并沒有構(gòu)成任何回路,所以這個問題非常隱蔽。</p><p> 開始猜測這種現(xiàn)象是由于杜邦線插頭接觸不良造成,所以用手接觸所有杜邦線,發(fā)現(xiàn)畫面閃爍,有時時鐘芯片可以正常工作,有時又不能正常工作。經(jīng)過多次觸摸杜邦線試驗,發(fā)
59、現(xiàn)接觸時鐘芯片數(shù)據(jù)線之后,畫面閃爍最為厲害。由于時鐘芯片的三根杜邦線是一排線,并沒有拆開,所以試著把這三根杜邦線拆開,結(jié)果發(fā)現(xiàn)畫面穩(wěn)定,說明時鐘芯片工作正常。由此看來,杜邦線的距離非常近,相互干擾是結(jié)果不正常的原因,這將是一個寶貴的經(jīng)驗。</p><p> 時鐘芯片DS1302沒有掉電保護功能,為了在系統(tǒng)主電源斷開后系統(tǒng)仍能保持正常走時,需要對DS1302加后備電源。該系統(tǒng)采用兩節(jié)1.5V電池作為時鐘芯片DS1
60、302的后備電源。對后備電源調(diào)試的時候,是先切斷主電源,等一段時間再接通主電源,觀察時間是否仍然正確。開始,在切斷主電源的時候,發(fā)現(xiàn)有的時候時鐘芯片能夠正常走時,有的時候不能正常走時。當按下電源開關(guān)速度比較快的時候,能夠正常走時;當按下電源開關(guān)速度比較慢的時候不能正常走時,時鐘數(shù)據(jù)混亂。開始猜測是由于電壓突變,時鐘芯片不能正確切換到備用電源造成的,所以,考慮在時鐘芯片電源管腳加電容,但是仍不能滿足要求。最后經(jīng)過多次閱讀時鐘芯片說明書,發(fā)
61、現(xiàn)主電源和備用電源焊顛倒了,這說明我們在焊接硬件電路的時候一定要準確了解各個管腳的功能。</p><p> 4.1.3蜂鳴器硬件電路調(diào)試</p><p> 定時鬧鈴在萬年歷中屬于基本功能,本系統(tǒng)在鬧鈴環(huán)節(jié)采用5V有源蜂鳴器發(fā)出鬧鈴信號。在對蜂鳴器環(huán)節(jié)初次試驗時,直接接到單片機引腳,發(fā)現(xiàn)無聲響,直接接到電源端,發(fā)出聲響,可見需要驅(qū)動電路。在本系統(tǒng)中,蜂鳴器采用一個PNP三極管驅(qū)動,微控制
62、器發(fā)出低電平控制信號有效。</p><p><b> 4.2系統(tǒng)軟件調(diào)試</b></p><p> 在本系統(tǒng)中,硬件電路看上去非常簡單,全部采用集成芯片設(shè)計。每一個集成芯片都有相應(yīng)的控制方法,即工作時序。我們在應(yīng)用一個集成芯片的時候,首先要認真閱讀其讀寫時序,再了解它的初始化流程及指令集。該系統(tǒng)除含有單總線溫度傳感器芯片外,還含有液晶顯示模塊,其控制方式都非常麻煩
63、,對軟件的設(shè)計要求很嚴格,尤其是溫度傳感器芯片,在對其讀寫過程中,要求有嚴格的延時。</p><p> 4.2.1時鐘芯片軟件調(diào)試</p><p> 在開始的時鐘芯片讀寫過程中,發(fā)現(xiàn)不能正確讀出時鐘芯片數(shù)據(jù),讀出的時鐘芯片數(shù)據(jù)全部為0FFH。經(jīng)仔細閱讀資料發(fā)現(xiàn)時鐘芯片DS1302內(nèi)部含有寫保護寄存器,當其最高位為0時,可以寫入移位寄存器,反之則不能寫入,而在開始初始化DS1302時,并
64、沒有包含寫保護寄存器最高位清零的環(huán)節(jié),所以程序中的所有寫入、讀出語句全部無效,不能被DS1302所接收。在程序設(shè)計的開始加入關(guān)閉寫保護語句,可以正確寫入、讀出時鐘芯片日歷寄存器數(shù)據(jù)。</p><p> 4.2.2顯示部分軟件調(diào)試</p><p> 為了使系統(tǒng)具有良好的人機交互界面,該系統(tǒng)采用液晶顯示器顯示所有數(shù)據(jù),但是,液晶顯示模塊的控制要比LED數(shù)碼管復(fù)雜得多。不同的液晶顯示模塊可能
65、采用不同的控制器,在選用液晶模塊的時候,要對其進行控制,首先要學習它的控制器,該系統(tǒng)所選液晶模塊采用ST7920控制器。</p><p> 液晶模塊采用8位并口和微控制器對話,在時鐘下降沿有效。在開始的顯示部分軟件調(diào)試過程中,液晶顯示模塊白屏,即所送指令和數(shù)據(jù)根本沒有被液晶模塊所接收。</p><p> 圖4-1 液晶顯示模塊寫時序</p><p> 閱讀液
66、晶模塊寫入時序,如圖4-1所示,發(fā)現(xiàn)在E下降沿后,要保持數(shù)據(jù)一段時間,以等待液晶模塊完成內(nèi)部動作。在每一個E下降沿之后加一段延時程序,發(fā)現(xiàn)顯示部分工作正常。</p><p> 4.2.3按鍵部分軟件調(diào)試</p><p> 在本系統(tǒng)中,用戶可以使用鍵盤修改時間、設(shè)定鬧鈴時間。以前學習過讀取微控制器引腳狀態(tài)的基本語句。按照理論設(shè)計程序,并觀察按鍵按下之后顯示界面是否按照理論設(shè)計的結(jié)果變化,
67、發(fā)現(xiàn)在按下一次“選擇”鍵之后,游標不是移動一位,而是移動很多位,這說明硬件有抖動。本設(shè)計在最后按鍵部分軟件設(shè)計過程中,采用軟件消抖和按鍵釋放判斷,很好的解決了這個問題。</p><p><b> 5 總結(jié)</b></p><p> 在該系統(tǒng)設(shè)計、調(diào)試完成之后,對最后的成功進行分析,同時結(jié)合在調(diào)試過程中出現(xiàn)的錯誤進行綜合分析,總結(jié)在實際系統(tǒng)設(shè)計和調(diào)試過程中的寶貴經(jīng)驗
68、。</p><p> 在系統(tǒng)硬件設(shè)計之前,要結(jié)合當前系統(tǒng)的發(fā)展趨勢和現(xiàn)狀對系統(tǒng)功能進行定位,使系統(tǒng)在實際應(yīng)用中具有競爭力。該系統(tǒng)最大的特點就是界面友好,走時準確,和現(xiàn)在使用LED顯示數(shù)據(jù)的萬年歷相比,體積更小,可以作為轎車車載顯示裝置。系統(tǒng)采用液晶顯示器,可以使該系統(tǒng)應(yīng)用到更加現(xiàn)代化的地方。該系統(tǒng)采用模塊化程序設(shè)計方法,同時保留了很多的微控制器I/O口,擴展十分方便。以往的采用LED顯示數(shù)據(jù)的萬年歷要想實現(xiàn)功能
69、擴展,除需要對系統(tǒng)程序進行修改外,還必須增加或刪減LED數(shù)碼管,同時要對LED圖片界面進行更換,硬件改動較大;該系統(tǒng)的顯示部分除可以顯示數(shù)據(jù)外,還可以顯示圖片,所以說,其界面改動非常靈活,僅僅改動程序就能實現(xiàn)界面的修改,用戶還可以選擇自己喜歡的界面,這是以LED作為顯示裝置的數(shù)字萬年歷所不能實現(xiàn)的。</p><p> 系統(tǒng)具有溫度檢測功能,可以作為工業(yè)溫度檢測裝置,我們只要坐在辦公室,就可以從液晶顯示器上觀察到
70、機器設(shè)備的溫度值,同時可提供溫度報警。系統(tǒng)的按鍵輸入功能,可以讀取決策,我們可以通過按鍵發(fā)送指令,控制工業(yè)現(xiàn)場機器的動作,實現(xiàn)遠程控制。</p><p> 可見,該系統(tǒng)本身不僅具有很大的靈活性、友好的界面、方便的可擴展性,同時,在其基礎(chǔ)上的系統(tǒng)的市場需求也很可觀。工業(yè)控制的很多場合對時間要求比較嚴格,在實際應(yīng)用系統(tǒng)中,系統(tǒng)各裝置需要按照預(yù)定的時間動作,比如我們要在春節(jié)零晨向廣大客戶發(fā)送祝福短信,就要判斷時間;我
71、們在孵化系統(tǒng)中,除了要對孵化溫度進行控制外,還要對時間進行控制。學校的電鈴,要根據(jù)時間進行動作;自動配電系統(tǒng),要根據(jù)時間進行通電或斷電,等很多場合需要根據(jù)時間量進行控制,本系統(tǒng)可以很好的滿足這些系統(tǒng)的要求。</p><p> 該系統(tǒng)在進行軟件設(shè)計的時候,采用模塊化設(shè)計方法,除了便于升級外,在調(diào)試過程中,模塊化的程序設(shè)計將使系統(tǒng)更容易調(diào)試。我們在調(diào)試過程中,可以分塊調(diào)試,最后總組裝。如果不采用模塊化設(shè)計方法,將很
72、難找出調(diào)試中的錯誤。無論是在系統(tǒng)硬件焊接還是在軟件編程時,都要細心,比如在開始的時候,時鐘芯片主電源和備用電源焊顛倒,12864不能寫入數(shù)據(jù)等,都是很小的錯誤,卻很大的影響了系統(tǒng)的性能,甚至導致系統(tǒng)根本無法工作。</p><p><b> 致謝</b></p><p> 本設(shè)計做出了實物,在實際電路設(shè)計的過程當中遇到很多問題。在此,首先要感謝我的指導老師——xx
73、老師,他淵博的專業(yè)知識和熱心的指導給我留下深刻的印象。在設(shè)計本系統(tǒng)的過程中,曾經(jīng)在遇到困難的時候很迷茫,是xx老師一次次的鼓勵我,并且嚴格要求、指導我完成設(shè)計。在此謹向敬愛的xx老師表示衷心的感謝。</p><p> 在該系統(tǒng)設(shè)計過程中,還得到其他老師的幫助和同學的鼓勵。在此,向他們和所有熱心幫助過我的朋友表示衷心的感謝!</p><p> 衷心地感謝在百忙之中參加評閱論文和答辯的各位
74、專家、教授!</p><p><b> 參考文獻</b></p><p> [1] 祝木田. 單片機原應(yīng)用教程.北京:中國財經(jīng)經(jīng)濟出版社,2005.8</p><p> [2] 李廣弟.單片機基礎(chǔ).北京:北京航空航天大學出版社,1999.10</p><p> [3] 沈德金.單片機應(yīng)用程序?qū)嵗?北京:北京
75、航空航天大學出版社,1990</p><p> [4] 胡漢才.單片機原理及接口技術(shù). 北京:清華大學出版社,1996</p><p> [5] 康華光.模擬電子技術(shù)基礎(chǔ).北京:高等教育出版社,2006</p><p> [6] 余修武.單片機原理及應(yīng)用.成都:電子科技大學出版社,2008.1</p><p> [7] 李秀忠
76、.單片機應(yīng)用技術(shù).北京:人民郵電出版社,2007.12</p><p> [8] 三恒星科技.MCS-51單片機原理與應(yīng)用實例.北京:電子工業(yè)出版設(shè),2008.1</p><p> [9] 王為青.51單片機應(yīng)用開發(fā)案例精選.北京:人民郵電出版社,2007.8</p><p> [10] 歐陽文.ATMEL89系列單片機的原理與開發(fā)實踐.北京:中國電力出版
77、社,2007.6</p><p> [11] 林伸茂.8051單片機徹底研究——實習篇.北京:中國電力出版社,2006</p><p> [12] 黃嘉寧.數(shù)字電子基礎(chǔ).北京:中國計量出版社,2008.1</p><p> [13] 郭強.最新液晶顯示應(yīng)用.北京;電子工業(yè)出版社,2006.10</p><p> [14] 李宏.液晶顯
78、示器件應(yīng)用技術(shù).北京:機械工業(yè)出版社,2007.6</p><p> [15] 李志廣、李曉泉、淮俊霞. 中文圖形12864點陣液晶顯示模塊與51單片機的并行接口電路及C51程序設(shè)計.現(xiàn)代顯示, 2008年07期 </p><p> [16] 孫鵬. 51單片機綜合學習系統(tǒng)——12864點陣型液晶顯示篇.電子制作,2008年02期</p><p
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子萬年歷畢業(yè)設(shè)計
- 電子萬年歷畢業(yè)設(shè)計
- 電子萬年歷畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---電子萬年歷設(shè)計
- 電子萬年歷畢業(yè)設(shè)計稿
- 電子萬年歷畢業(yè)設(shè)計2
- 畢業(yè)設(shè)計---電子萬年歷的設(shè)計
- 畢業(yè)設(shè)計---電子萬年歷的設(shè)計
- 畢業(yè)論文——電子萬年歷設(shè)計
- 電子萬年歷設(shè)計-畢業(yè)論文
- 畢業(yè)論文——電子萬年歷設(shè)計
- 電子萬年歷設(shè)計
- 電子鐘萬年歷畢業(yè)設(shè)計
- 數(shù)字萬年歷畢業(yè)設(shè)計
- 萬年歷課程設(shè)計--萬年歷電子時鐘
- 萬年歷設(shè)計畢業(yè)論文
- 電子萬年歷畢業(yè)論文
- 電子萬年歷的設(shè)計畢業(yè)論文
- 萬年歷電子時鐘溫度畢業(yè)設(shè)計
- 畢業(yè)設(shè)計論文車載可測溫式電子萬年歷
評論
0/150
提交評論