

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 隨著電子技術(shù)的迅速發(fā)展,特別是大規(guī)模集成電路的出現(xiàn),人類生活發(fā)生了根本性的變化。以單片機(jī)技術(shù)為核心的產(chǎn)品已走進(jìn)了千家萬戶,數(shù)字萬年歷的出現(xiàn)更是給人們的生活帶來諸多方便,本文就實(shí)現(xiàn)了基于AT89S52單片機(jī)的多功能數(shù)字萬年歷的設(shè)計(jì)。</p><p> 本設(shè)計(jì)以AT89S52單片機(jī)技術(shù)為核心,以各種硬件電路
2、為基礎(chǔ),軟件采用匯編語言進(jìn)行編寫,為了便于擴(kuò)展和更改,采用模塊化的程序設(shè)計(jì)方法,使程序設(shè)計(jì)的邏輯關(guān)系更加簡潔明了,系統(tǒng)升級更加簡單方便。系統(tǒng)以點(diǎn)陣式帶字庫12864液晶模塊為載體顯示數(shù)據(jù),所以具有人性化的操作界面和美觀的頁面效果,可以顯示公歷日期、時(shí)間、農(nóng)歷日期、星期、溫度,并有鬧鈴功能。用戶可以通過按鍵調(diào)節(jié)系統(tǒng)時(shí)間、設(shè)定鬧鈴時(shí)間。最后完成了組裝與調(diào)試。</p><p> 關(guān)鍵詞:AT89S52單片機(jī);數(shù)字萬年
3、歷;12864液晶模塊 </p><p><b> Abstract</b></p><p> With the rapid development of electronic technology, especially the emergence of large-scale integrated circuits, human life there has
4、been a fundamental change. The products have entered tens of thousands of households whose core is single-chip technology, the emergence of digital calendar is to bring a lot of people's lives easy, This article work
5、ed out a design of multi-functional digital calendar based on the single chip AT89S52.</p><p> The design of single-chip AT89S52 technology as the core, based on a variety of hardware circuitry and used ass
6、embly language for the preparation of software, In order to facilitate the expansion and changes to the design, procedures for the use of modular design method so that the logic of the relationship between program design
7、 more concise, the system more simple and convenient to upgrade. System use dot-matrix LCD Module 12864 font display as the data carrier and therefore have a human inter</p><p> Key words: Single-chip AT89S
8、52 Digital Calendar LCD Module 12864</p><p><b> 目錄</b></p><p><b> 1引言1</b></p><p> 1.1 課題研究背景與現(xiàn)狀1</p><p> 1.2本課題所做的工作2</p><p
9、> 2數(shù)字萬年歷硬件設(shè)計(jì)3</p><p> 2.1 電源電路設(shè)計(jì)3</p><p> 2.2微控制器選擇4</p><p> 2.3溫度測量環(huán)節(jié)設(shè)計(jì)8</p><p> 2.4時(shí)鐘芯片環(huán)節(jié)10</p><p> 2.5顯示電路設(shè)計(jì)13</p><p> 2.6
10、定時(shí)鬧鈴、按鍵電路設(shè)計(jì)16</p><p> 3 數(shù)字萬年歷軟件設(shè)計(jì)18</p><p> 3.1 軟件總體設(shè)計(jì)18</p><p> 3.2按鍵掃描并處理程序流程19</p><p> 3.3 相應(yīng)數(shù)據(jù)加一程序流程20</p><p> 3.4 游標(biāo)顯示控制程序流程22</p>&
11、lt;p> 3.5 溫度測量元件控制程序流程22</p><p> 3.6 時(shí)鐘芯片讀寫程序流程23</p><p><b> 4系統(tǒng)調(diào)試25</b></p><p> 4.1系統(tǒng)硬件調(diào)試25</p><p> 4.1.1微控制器硬件調(diào)試25</p><p> 4.1.
12、2時(shí)鐘芯片硬件調(diào)試25</p><p> 4.1.3蜂鳴器硬件電路調(diào)試26</p><p> 4.2系統(tǒng)軟件調(diào)試26</p><p> 4.2.1時(shí)鐘芯片軟件調(diào)試27</p><p> 4.2.2顯示部分軟件調(diào)試27</p><p> 4.2.3按鍵部分軟件調(diào)試28</p><
13、p><b> 5 總結(jié)29</b></p><p><b> 致謝31</b></p><p><b> 參考文獻(xiàn)32</b></p><p><b> 附錄33</b></p><p> 附1:系統(tǒng)原理總圖33</p>
14、;<p> 附2: 系統(tǒng)實(shí)物圖片34</p><p> 附件3:系統(tǒng)程序35</p><p><b> 1引言</b></p><p> 1.1 課題研究背景與現(xiàn)狀</p><p> 時(shí)間是科學(xué)技術(shù)中最基本的物理量之一,無論是農(nóng)業(yè)生產(chǎn),還是工業(yè)自動控制,都與時(shí)間息息相關(guān),尤其是中國的農(nóng)業(yè)生產(chǎn),
15、和農(nóng)歷日期聯(lián)系緊密,準(zhǔn)確的農(nóng)歷日期,為農(nóng)業(yè)生產(chǎn)、農(nóng)民生活帶來極大方便。工業(yè)生產(chǎn)中的延時(shí)動作,定時(shí)動作等對時(shí)間的精確度要求較高。小到運(yùn)動員的百米賽跑,大到一項(xiàng)工程的實(shí)施,都和時(shí)間密不可分,所以,萬年歷隨處可見。但是,隨著科技的發(fā)展,人們生活水平不斷提高,人們所關(guān)心的不僅僅是時(shí)間,還有其他一些像室內(nèi)溫度、農(nóng)歷日期、星期等和人們生活聯(lián)系緊密的數(shù)據(jù),甚至對數(shù)字萬年歷的外觀也提出新的要求,這就對萬年歷的功能提出新的更高的要求。</p>
16、<p> 近年來隨著計(jì)算機(jī)在社會各領(lǐng)域的滲透, 單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動傳統(tǒng)控制方式日新月益??刂品绞接袕哪M控制向數(shù)字控制轉(zhuǎn)變的發(fā)展趨勢。微控制芯片具有強(qiáng)大的邏輯運(yùn)算能力,它的出現(xiàn),使得數(shù)字萬年歷不僅能給人們提供時(shí)間,而且還能提供很多新的功能,例如:溫度顯示、農(nóng)歷顯示、節(jié)氣提示、語音提示、日程表、生日提示、星座查詢、錄音放音、風(fēng)景控制等。現(xiàn)在的好多數(shù)字萬年歷產(chǎn)品都通過控制內(nèi)置燈光對萬年歷表面裝飾圖片進(jìn)行
17、掃描,實(shí)現(xiàn)動態(tài)風(fēng)景;通過控制語音芯片發(fā)出各類鳥叫的聲音,使人們生活在自己的房間里,仿佛身處大自然!可見,現(xiàn)在的數(shù)字萬年歷不僅僅是一個(gè)智能化的、可以提供多信息的器件,更是室內(nèi)的一道風(fēng)景。</p><p> 上海禮品公司生產(chǎn)的多功能萬年歷具有LED燈顯示、年歷、月歷、時(shí)間顯示、12小時(shí)或24小時(shí)制式、選擇四組定時(shí)鬧鈴、整點(diǎn)鈴響、按鍵音、小于100小時(shí)倒計(jì)時(shí)、世界16個(gè)城市現(xiàn)在時(shí)查詢、1900年到2099年月歷查詢、
18、八位數(shù)四則運(yùn)算、百分比計(jì)算 M+、M-和MRC存儲運(yùn)算功能貨幣換匯計(jì)算??梢姡喙δ苤悄芑瘮?shù)字萬年歷是以后萬年歷發(fā)展的方向,基于微控制芯片的數(shù)字萬年歷可以滿足人們對萬年歷的多功能、界面友好和智能化的要求,數(shù)字控制技術(shù)將引起萬年歷新的重大改變。</p><p> 1.2本課題所做的工作</p><p> 首先,本課題對系統(tǒng)主要功能進(jìn)行分析,確定該系統(tǒng)的主要功能是:陽歷日期、時(shí)間顯示、農(nóng)歷
19、日期顯示、星期顯示、環(huán)境溫度顯示和定時(shí)鬧鈴,并可以修改時(shí)間,在修改時(shí)間的過程中,可以對月份天數(shù)自動判斷。</p><p> 其次,系統(tǒng)設(shè)計(jì)要做的工作是電源分析和設(shè)計(jì),該設(shè)計(jì)選用的集成芯片都采用+5V電源供電,所以,要先對常見220V交流電源進(jìn)行變換,得到較為穩(wěn)定的、可以滿足系統(tǒng)要求的+5V穩(wěn)壓電源。</p><p> 最后,要對選用的芯片進(jìn)行學(xué)習(xí),尤其是其工作時(shí)序,這是實(shí)現(xiàn)系統(tǒng)的關(guān)鍵。
20、溫度檢測采用DS18B20,由于DS18B20是單總線溫度傳感器,所以,對其控制需要較嚴(yán)格的時(shí)序。通過查閱資料和仿真掌握單總線數(shù)字溫度傳感器的時(shí)序要求和工作流程,該系統(tǒng)主要應(yīng)用了DS18B20的跳過ROM匹配、溫度轉(zhuǎn)換、讀取溫度指令等。</p><p> 時(shí)鐘芯片采用DS1302,為三總線時(shí)鐘芯片,為了能夠使其正常工作,要學(xué)習(xí)其中的寄存器格式、寄存器特殊位作用、讀取時(shí)間寄存器數(shù)據(jù)、寫入時(shí)間寄存器數(shù)據(jù)等。DS13
21、02時(shí)鐘芯片內(nèi)部沒有集成備用電源,所以,要對其掉電保護(hù)環(huán)節(jié)進(jìn)行考慮和設(shè)計(jì)。</p><p> 顯示器件選用點(diǎn)陣帶字庫型12864液晶模塊,由于液晶模塊在寫入指令或數(shù)據(jù)后,要經(jīng)過一段時(shí)間才能完成內(nèi)部動作,所以,對其讀寫控制時(shí)要有必要的延時(shí),以等待液晶模塊完成內(nèi)部動作,才能使寫入的數(shù)據(jù)或指令有效。帶字庫型液晶模塊有基本指令集和擴(kuò)充指令集,本設(shè)計(jì)不需要顯示圖片,所以,采用基本指令集。在時(shí)間設(shè)定環(huán)節(jié),要有設(shè)定提示,本系
22、統(tǒng)以游標(biāo)閃爍方式提示用戶當(dāng)前所修改的數(shù)據(jù),為此,要對游標(biāo)閃爍控制方式進(jìn)行學(xué)習(xí)。</p><p> 2數(shù)字萬年歷硬件設(shè)計(jì)</p><p> 該系統(tǒng)采用220V交流電供電,自帶電源變換電路,在交流斷電的情況下,仍能保持正確走時(shí)。微控制芯片采用Atmel公司的AT89S52,其內(nèi)部含有8k字節(jié)Flash,支持USBISP編程,十分方便。溫度傳感器選用DS18B20,它支持3V~5.5V的電壓
23、范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便。時(shí)鐘芯片選用美國Dallas公司推出的具有涓細(xì)電流充電能力的低功耗實(shí)時(shí)時(shí)鐘芯片DS1302。顯示部分選用界面友好的YM12864R液晶模塊,其內(nèi)部采用ST7920A控制器,內(nèi)置8192個(gè)中文漢字(16×16),編程方便,可以節(jié)約很多的程序存儲器空間。穩(wěn)壓芯片選用三端穩(wěn)壓器件7805,簡單易用、價(jià)格低廉。</p><p> 2.1 電源電路設(shè)計(jì)</p><
24、;p> 電源是系統(tǒng)能夠工作的基礎(chǔ),電源的好壞直接影響到系統(tǒng)的性能。一個(gè)好的電源,可以給系統(tǒng)提供足夠的能量,從而使系統(tǒng)運(yùn)行穩(wěn)定。我們常見的、也比較容易獲得的電源是220V交流電,而該系統(tǒng)以集成芯片為硬件基礎(chǔ),其需要大約+5V的直流電源。如何對易得的220V交流電進(jìn)行變換,使其符合系統(tǒng)+5V的電壓、功率需求,是首先要解決的問題。</p><p> 圖2-1 7805管腳</p><p&
25、gt; 7805為三端正穩(wěn)壓電路,TO-220封裝,如圖2-1所示。在輸入電壓范圍為7V-15V時(shí),輸出端輸出較為穩(wěn)定的+5V電壓。內(nèi)含過流、過熱和過載保護(hù)電路。帶散熱片時(shí),輸出電流可達(dá)1A,且價(jià)格低廉,應(yīng)用十分廣泛,能夠滿足該系統(tǒng)+5V工作電壓需求,所以該系統(tǒng)選取7805作為穩(wěn)壓元件。220V交流電經(jīng)過9V變壓器,再經(jīng)過DB107全橋整流芯片,經(jīng)過2200uf電容濾波作為7805的輸入電壓,在7805輸出端就可以得到系統(tǒng)所需要的+5
26、V電源,其硬件電路原理如圖2-2所示。</p><p> 圖2-2 電源電路硬件原理</p><p> 2.2微控制器選擇</p><p> 今天,微處理器已經(jīng)無處不在,無論是錄像機(jī)、智能洗衣機(jī)、移動電話等家電產(chǎn)品,還是汽車引擎控制,以及數(shù)控機(jī)床、導(dǎo)彈精確制導(dǎo)等都要嵌入各類不同的微處理器。微處理器不僅是微型計(jì)算機(jī)的核心部件,也是各種數(shù)字化智能設(shè)備的關(guān)鍵部件
27、,其芯片管腳如圖2-3所示。</p><p> 圖2-3 AT89S52芯片管腳</p><p> AT89S52是一種低功耗、高性能CMOS8位微控制器。AT89S52具有8K在線系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在線系統(tǒng)可編程,亦適于常規(guī)編程器。在芯片上,具有靈巧的8 位
28、CPU 和在線系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器
29、、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。</p><p> P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個(gè)TTL邏輯電平。對P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用口,在這種模式下,P0口具有內(nèi)部上拉電阻。在Flash編程時(shí),P0口也用來接收
30、指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。 </p><p> P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4個(gè)TTL 邏輯電平。對P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入口使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。 </p><p><b> 引腳號第二
31、功能:</b></p><p> P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出 </p><p> P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) </p><p> P1.5 MOSI(系統(tǒng)編程用) </p><p> P1.6 MISO(系統(tǒng)編程用) </p>&l
32、t;p> P1.7 SCK(系統(tǒng)編程用) </p><p> P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4個(gè)TTL 邏輯電平。對P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入口使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。 </p><p> 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例
33、如執(zhí)行MOVX @DPTR)時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時(shí),P2口輸出P2鎖存器的內(nèi)容。在Flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號。 </p><p> P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個(gè)TTL邏輯電平。對P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉
34、高,此時(shí)可以作為輸入口使用。作為輸入口使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。 </p><p> P3口亦作為AT89S52特殊功能(第二功能)使用,如下所示。 </p><p> 在Flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號。 </p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 T
35、XD(串行輸出口)</p><p> P3.2 INTO(外中斷0)</p><p> P3.3 INT1(外中斷1)</p><p> P3.4 TO(定時(shí)/計(jì)數(shù)器0)</p><p> P3.5 T1(定時(shí)/計(jì)數(shù)器1)</p><p> P3.6 WR(外部數(shù)據(jù)存儲器寫選通)</p><
36、;p> P3.7 RD(外部數(shù)據(jù)存儲器讀選通)</p><p> 此外,P3口還接收一些用于Flash閃存編程和程序校驗(yàn)的控制信號。</p><p> RST——復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位,其上電復(fù)位硬件原理如圖2-4所示。</p><p> 圖2-4 上電復(fù)位硬件原理</p><
37、p> ALE/PROG——當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時(shí)將跳過一個(gè)ALE脈沖。</p><p> 對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中
38、的8EH單元的D0位置位禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。</p><p> PSEN——程序存儲器允許(PSEN)輸出,是外部程序存儲器的讀選通信號,當(dāng)AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN
39、信號。</p><p> EA/Vpp——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會鎖存EA端狀態(tài)。</p><p> 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。Flash存儲器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用
40、12V編程電壓Vpp。該系統(tǒng)主控制電路硬件原理如圖2-5所示。</p><p> 圖2-5 系統(tǒng)主控制電路硬件原理</p><p> 2.3溫度測量環(huán)節(jié)設(shè)計(jì)</p><p> 如今,溫度傳感器的總類可謂五花八門,各溫度傳感器的精度和控制方式都有所不同,價(jià)格也相差很大。如何選擇滿足該系統(tǒng)測量室溫的精度要求,并且價(jià)格低廉的溫度傳感器,是一個(gè)重要問題。</p
41、><p> Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是一線總線接口的溫度傳感器,一線總線具有獨(dú)特而經(jīng)濟(jì)的特點(diǎn),性能價(jià)格比非常出色。該系統(tǒng)需要測量室溫,精度要求不是太高,所以,該系統(tǒng)選用DS18B20作為溫度傳感器,其管腳排列如圖2-6所示。</p><p> 圖2-6 DS18B20管腳</p><p> 微控制器控制DS18B20完成溫度轉(zhuǎn)換必須
42、經(jīng)過三個(gè)步驟:每一次讀寫之前要對DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求微控制器將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待16~60微秒左右,然后發(fā)出60~240微秒的存在低脈沖,微控制器收到此信號表示復(fù)位成功,如果沒有收到復(fù)位成功信號,則表示DS18B20出現(xiàn)問題,可以用來作為系統(tǒng)設(shè)計(jì)時(shí)的故障提示、判斷信號。</p>&
43、lt;p> DS18B20的單總線數(shù)據(jù)傳輸特點(diǎn),決定了它嚴(yán)格的控制時(shí)序。微控制器寫1時(shí),數(shù)據(jù)線必須先被拉至低電平,然后就被釋放,使數(shù)據(jù)線在寫時(shí)間片開始之后的15微秒之內(nèi)拉至高電平。微控制器寫0時(shí),數(shù)據(jù)線必須先被拉至低電平且至少保持邏輯低電平60微秒。微控制器把數(shù)據(jù)線從高電平拉至低電平時(shí),產(chǎn)生讀時(shí)間片,數(shù)據(jù)線必須保持在邏輯低電平至少1微秒;來自DS18B20的輸出數(shù)據(jù)在讀時(shí)間片下降沿之后15微秒有效。因此,為了讀取從時(shí)間片開始算起
44、15微秒的數(shù)據(jù)線狀態(tài),微控制器必須停止把數(shù)據(jù)線驅(qū)動至低電平。在讀時(shí)間片結(jié)束時(shí),數(shù)據(jù)線經(jīng)過外部的上拉電阻拉回至高電平。所有讀時(shí)間片的最短持續(xù)期限為60微秒,各個(gè)讀時(shí)間片之間必須有最短為1微秒的恢復(fù)時(shí)間。其讀寫時(shí)序如圖2-7所示。</p><p> 圖2-7 DS18B20讀寫時(shí)間間隙</p><p> 該系統(tǒng)對DS18B20進(jìn)行操作用到的指令為:跳過ROM匹配,命令字為0CCH;溫度轉(zhuǎn)
45、換指令,命令字為44H;讀溫度指令,命令字為0BEH。系統(tǒng)溫度檢測部分硬件原理如圖2-8所示。</p><p> 圖2-8 系統(tǒng)溫度檢測部分硬件電路</p><p><b> 2.4時(shí)鐘芯片環(huán)節(jié)</b></p><p> DS1302 是美國Dallas公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、周日、時(shí)、
46、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)存放數(shù)據(jù)的RAM寄存器。DS1302采用主電源/后備電源雙電源引腳,同時(shí)提供了對后備電源進(jìn)行涓細(xì)電流充電的能力。DS1302電路的接口簡單、價(jià)格低廉、工作電壓為2.5V~5.5V,使用方便,被廣泛地采用,所以,該系統(tǒng)選用DS1302。</p><
47、p> 圖2-9 DS1302管腳</p><p> 圖2-9所示為DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源,在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是
48、復(fù)位/片選線,通過把RST輸入驅(qū)動至高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送。</p><p> I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.5V之前,RST必須保
49、持低電平,只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK始終是輸入端。</p><p> 在對DS1302進(jìn)行讀寫操作時(shí),要首先了解它的控制字。DS1302 的控制字如圖2-10所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1表示操作單元的地址;最低
50、有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0到高位7。</p><p> 圖2-10 DS1302控制字</p><p> 該系統(tǒng)需要對時(shí)間進(jìn)行讀
51、取和設(shè)定,所以,在掌握控制字之后,還必須熟悉DS1302內(nèi)部各寄存器的地址和特殊狀態(tài)位,其內(nèi)部各寄存器的地址和特殊狀態(tài)位如表2-1所示。</p><p> 表2-1 日歷、時(shí)間寄存器及其控制字</p><p> 系統(tǒng)時(shí)鐘芯片部分硬件原理如圖2-11所示。</p><p> 圖2-11 系統(tǒng)時(shí)鐘芯片部分硬件原理</p><p><
52、;b> 2.5顯示電路設(shè)計(jì)</b></p><p> 現(xiàn)在,大多數(shù)字萬年歷都采用LED顯示數(shù)據(jù),但是,LED只能顯示數(shù)字,不能顯示漢字。要想實(shí)現(xiàn)更好的人機(jī)界面,用液晶顯示器顯示數(shù)據(jù)是最佳選擇。YM12864R點(diǎn)陣帶字庫液晶顯示模塊可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16×16點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣),其引腳功能如表2-2所示。</p>&l
53、t;p> 該系統(tǒng)中,微控制芯片采用8位并口的方式對YM12864R進(jìn)行控制,所以PSB引腳接固定高電平。在對YM12864R進(jìn)行控制時(shí),要清楚它的讀寫時(shí)序,在本設(shè)計(jì)中,主要是對YM12864R進(jìn)行寫操作,所以,下面介紹YM12864R的寫控制時(shí)序,其寫控制時(shí)序如圖2-12所示。</p><p> 表2-2 YM12864R引腳功能說明</p><p> 圖2-12 YM12
54、864寫時(shí)序</p><p> 圖2-12給出YM12864R的寫控制時(shí)序,對YM12864R寫控制時(shí),在使能信號E下降沿有效。在使能信號E下降沿后,為了保證數(shù)據(jù)或指令可靠寫入,需要在使能信號E下降沿后有一段延時(shí),使YM12864R完成內(nèi)部動作。YM12864R的指令集分為基本指令集和擴(kuò)充指令集,擴(kuò)充指令集提供繪圖功能,可以顯示圖片;在本設(shè)計(jì)當(dāng)中,僅需要基本指令集以顯示漢字、數(shù)字和字母,表2-3給出YM1286
55、4R的基本指令集。清除顯示指令將DDRAM填滿“20H”,并且設(shè)定DDRAM的地址計(jì)數(shù)器(AC)為“00H”。 地址歸位指令設(shè)定DDRAM的地址計(jì)數(shù)器(AC)為“00H”,并且將游標(biāo)移到開頭原點(diǎn)位置,這個(gè)指令并不改變DDRAM的內(nèi)容。在顯示狀態(tài)開/關(guān)指令中,D=1,整體顯示ON,C=1,游標(biāo)ON,B=1,游標(biāo)位置ON。在功能設(shè)定指令中DL=1(必須為1),RE=1,擴(kuò)充指令集動作,RE=0,基本指令集動作。</p><
56、;p> 表2-3 YM12864R基本指令</p><p> 對YM12864操作時(shí)需要注意的問題:</p><p> 1:對YM12864R操作前,要初始化,本設(shè)計(jì)在初始化時(shí)主要是進(jìn)行DDRAM地址設(shè)定,基本指令集選擇,顯示狀態(tài)開,游標(biāo)顯示開等。</p><p> 2:在對YM12864R寫控制時(shí),必須保證在使能信號E的下降沿后有一段的延時(shí)才能寫入
57、有效的數(shù)據(jù)或指令。</p><p> 3:在顯示中文字型時(shí),將兩字節(jié)編碼連續(xù)寫入DDRAM中,范圍為A140H-F7FFH(GB碼)或A140H-D75FH(BIG5碼)。顯示半寬字形時(shí)將一字節(jié)編碼寫入DDRAM中,范圍為02H-7FH,系統(tǒng)顯示部分硬件電路原理如圖2-13所示。</p><p> 圖2-13 系統(tǒng)顯示部分硬件電路</p><p> 2.6
58、定時(shí)鬧鈴、按鍵電路設(shè)計(jì)</p><p> 該系統(tǒng)具有定時(shí)鬧鈴功能,當(dāng)定時(shí)到的時(shí)候,微控制器由P1.7發(fā)出控制信號,控制三極管導(dǎo)通關(guān)斷,從而控制蜂鳴器發(fā)出時(shí)長一分鐘的鬧鈴聲。蜂鳴器采用+5V供電,所以需要三極管驅(qū)動,其驅(qū)動控制電路如圖2-14所示。</p><p> 圖2-14 系統(tǒng)鬧鈴部分硬件電路</p><p> 在該系統(tǒng)中,用戶可以通過按鍵對日期、時(shí)間、
59、定時(shí)時(shí)間進(jìn)行修改。系統(tǒng)提供四個(gè)按鍵,分別為:設(shè)定、選擇、調(diào)節(jié)、確定。四個(gè)按鍵分別接到微控制器P3.0、P3.1、P3.2、P3.3引腳,在按鍵沒有被按下時(shí),引腳為邏輯低電平,按下則為邏輯高電平,系統(tǒng)按鍵部分硬件原理如圖2-15所示。</p><p> 圖2-15 系統(tǒng)按鍵部分硬件電路</p><p> 3 數(shù)字萬年歷軟件設(shè)計(jì)</p><p> 一個(gè)系統(tǒng),硬件
60、的設(shè)計(jì)往往只是其中的一部分,或者說一小部分。尤其隨著微電子技術(shù)、大規(guī)模集成電路制作技術(shù)的發(fā)展,很多我們所需要的元件都可以在市場上找到。集成芯片系統(tǒng)的硬件電路往往非常簡單,因?yàn)樗鼈兌疾捎每偩€和微控制器對話。硬件電路設(shè)計(jì)完成后,要讓系統(tǒng)按照我們設(shè)計(jì)的要求工作,就需要軟件來控制微控制器和外圍芯片對話,軟件是該系統(tǒng)的靈魂!</p><p> 3.1 軟件總體設(shè)計(jì)</p><p> 該系統(tǒng)軟件采
61、用匯編語言設(shè)計(jì),模塊化的設(shè)計(jì)方法使得該系統(tǒng)以后的升級改動更為靈活。系統(tǒng)軟件流程為:上電顯示制作者開機(jī)界面、送開始轉(zhuǎn)換溫度指令、讀取溫度值到緩沖區(qū)、讀取全部時(shí)鐘日歷數(shù)據(jù)到緩沖區(qū)、顯示陽歷日期和時(shí)間、陽歷農(nóng)歷轉(zhuǎn)換、顯示農(nóng)歷日期、顯示溫度、定時(shí)判斷、判斷是否有按鍵被按下、返回到開始。本系統(tǒng)采用四個(gè)按鍵和微處理器對話,可以修改時(shí)間,設(shè)定定時(shí)時(shí)間。微處理器采用查詢方式掃描按鍵狀態(tài)。主程序執(zhí)行流程如圖3-1所示。</p><p&
62、gt; 圖3-1 主程序流程</p><p> 3.2按鍵掃描并處理程序流程</p><p> 要設(shè)定鬧鈴時(shí)間,就要求外界和微處理器對話,以告知微處理器人們的意愿。按鍵輸入方便、簡單,應(yīng)用廣泛,例如電腦鍵盤。,按鍵掃描并處理程序流程如圖3-2所示。</p><p> 圖3-2 按鍵掃描并處理程序流程</p><p> 3.3 相
63、應(yīng)數(shù)據(jù)加一程序流程</p><p> 圖3-3 相應(yīng)數(shù)據(jù)加一程序流程</p><p> 相應(yīng)數(shù)據(jù)加一程序流程如圖3-3所示,在對數(shù)據(jù)加一處理程序中,需要對各數(shù)據(jù)范圍進(jìn)行判斷,年的最大值為99,即該系統(tǒng)最長可顯示到2099年的日期、時(shí)間。月的最大值為12,時(shí)的最大值為23,分的最大值為59,秒的最大值為59。該系統(tǒng)能夠?qū)γ吭碌奶鞌?shù)進(jìn)行自動判斷,陽歷的月份信息為:1、3、5、7、8、10
64、、12月,每月31天;4、6、9、11月,每月30天;二月最為特殊,非閏年為28天,閏年為29天,所以,要想實(shí)現(xiàn)日期加一,除了要判斷月份值外,還需要判斷年份是否為閏年。日期加一的程序流程如圖3-4所示。</p><p> 圖3-4 日期加一程序流程</p><p> 3.4 游標(biāo)顯示控制程序流程</p><p> 該數(shù)字萬年歷可以對時(shí)間進(jìn)行修改、鬧鈴設(shè)定。當(dāng)
65、需要修改時(shí)間和鬧鈴設(shè)定時(shí),系統(tǒng)以游標(biāo)閃爍的方式提示用戶當(dāng)前修改的數(shù)據(jù)。游標(biāo)指針是連續(xù)加一的,要能正確顯示游標(biāo)的位置,需要對其進(jìn)行變換,得到Y(jié)M12864R的實(shí)際游標(biāo)閃爍地址,游標(biāo)閃爍控制程序流程如圖3-6所示。</p><p> 3.5 溫度測量元件控制程序流程</p><p> 室內(nèi)環(huán)境溫度和人們的生活息息相關(guān),隨著人們生活水平的提高,人們對和氣候相關(guān)的數(shù)據(jù)越來越關(guān)心。本系統(tǒng)具有室內(nèi)
66、溫度測量功能,并且通過液晶顯示器顯示出來,界面直觀,可以讓人們很方便的了解當(dāng)前的環(huán)境溫度。該系統(tǒng)采用DS18B20作為溫度傳感器,一個(gè)微控制器引腳可以掛接多個(gè)DS18B20,在微控制器發(fā)送指令時(shí),究竟哪一個(gè)DS18B20接收指令,由ROM匹配環(huán)節(jié)確定。本設(shè)計(jì)只用到一片DS18B20,所以不需要ROM匹配,直接發(fā)送跳過ROM匹配指令即可。溫度傳感器DS18B20控制程序流程如圖3-5所示。</p><p> 圖3
67、-5 DS18B20控制程序流程</p><p> 3.6 時(shí)鐘芯片讀寫程序流程</p><p> 在該系統(tǒng)中,微控制器所做的主要工作就是不斷的讀取時(shí)鐘芯片內(nèi)部的日歷寄存器數(shù)據(jù)并將其顯示在液晶屏幕上。DS1302采用三總線與微控制器對話,微控制器讀寫時(shí)鐘芯片內(nèi)日歷寄存器數(shù)據(jù)的程序流程如圖3-7、3-8所示。</p><p> 圖3-6 游標(biāo)閃爍控制程序流程
68、</p><p><b> 4系統(tǒng)調(diào)試</b></p><p> 一個(gè)完整的系統(tǒng)在開始著手設(shè)計(jì)的時(shí)候往往要考慮很多的環(huán)節(jié),該系統(tǒng)在設(shè)計(jì)的時(shí)候就要考慮溫度檢測、時(shí)鐘準(zhǔn)確走時(shí)、數(shù)據(jù)顯示、鬧鈴、按鍵識別與處理等很多環(huán)節(jié)。假如我們直接把所有硬件焊接起來,倘若系統(tǒng)不能正常工作,那么檢查起來將非常麻煩,所以,該系統(tǒng)在進(jìn)行調(diào)試的時(shí)候,采用模塊化,分步驟進(jìn)行的方式,把一塊一塊的功
69、能實(shí)現(xiàn)了,再組裝起來進(jìn)行聯(lián)合調(diào)試,可以取得事半功倍的效果。</p><p><b> 4.1系統(tǒng)硬件調(diào)試</b></p><p> 硬件是系統(tǒng)的載體,沒有硬件,系統(tǒng)根本無法實(shí)現(xiàn)。在硬件焊接的過程中,難免會出現(xiàn)一些問題,在微控制器控制系統(tǒng)中,對硬件每一部分的細(xì)節(jié)都要求很高,任何一個(gè)環(huán)節(jié)出現(xiàn)很小的問題都將導(dǎo)致系統(tǒng)不能正常工作,系統(tǒng)功能無法實(shí)現(xiàn)。</p>
70、<p> 4.1.1微控制器硬件調(diào)試</p><p> 在本系統(tǒng)硬件調(diào)試過程中,首先確定微控制器各引腳能夠正常輸出邏輯高低電平。在微控制器硬件電路焊接完畢之后,裝入簡單測試程序,讓微控制器所有管腳輸出邏輯高電平,然后,用萬用表測量各管腳是否為高電平;再裝入測試程序,讓所有微控制器管腳輸出邏輯低電平,用萬用表測量各管腳是否為低電平。這種裝入簡單測試程序以測量部分硬件電路是否工作正常的方式在該系統(tǒng)的調(diào)試
71、過程中顯得非常有用。</p><p> 4.1.2時(shí)鐘芯片硬件調(diào)試</p><p> 時(shí)鐘芯片在該系統(tǒng)中有著非常重要的地位。在時(shí)鐘芯片硬件電路焊接好之后,裝入測試程序,發(fā)現(xiàn)不能正常工作,如果拿金屬物接觸DS1302數(shù)據(jù)管腳,就能正常工作,這種現(xiàn)象很少見,因?yàn)橹荒媒饘傥锝佑|時(shí)鐘芯片數(shù)據(jù)管腳,并沒有構(gòu)成任何回路,所以這個(gè)問題非常隱蔽。</p><p> 開始猜測這
72、種現(xiàn)象是由于杜邦線插頭接觸不良造成,所以用手接觸所有杜邦線,發(fā)現(xiàn)畫面閃爍,有時(shí)時(shí)鐘芯片可以正常工作,有時(shí)又不能正常工作。經(jīng)過多次觸摸杜邦線試驗(yàn),發(fā)現(xiàn)接觸時(shí)鐘芯片數(shù)據(jù)線之后,畫面閃爍最為厲害。由于時(shí)鐘芯片的三根杜邦線是一排線,并沒有拆開,所以試著把這三根杜邦線拆開,結(jié)果發(fā)現(xiàn)畫面穩(wěn)定,說明時(shí)鐘芯片工作正常。由此看來,杜邦線的距離非常近,相互干擾是結(jié)果不正常的原因,這將是一個(gè)寶貴的經(jīng)驗(yàn)。</p><p> 時(shí)鐘芯片D
73、S1302沒有掉電保護(hù)功能,為了在系統(tǒng)主電源斷開后系統(tǒng)仍能保持正常走時(shí),需要對DS1302加后備電源。該系統(tǒng)采用兩節(jié)1.5V電池作為時(shí)鐘芯片DS1302的后備電源。對后備電源調(diào)試的時(shí)候,是先切斷主電源,等一段時(shí)間再接通主電源,觀察時(shí)間是否仍然正確。開始,在切斷主電源的時(shí)候,發(fā)現(xiàn)有的時(shí)候時(shí)鐘芯片能夠正常走時(shí),有的時(shí)候不能正常走時(shí)。當(dāng)按下電源開關(guān)速度比較快的時(shí)候,能夠正常走時(shí);當(dāng)按下電源開關(guān)速度比較慢的時(shí)候不能正常走時(shí),時(shí)鐘數(shù)據(jù)混亂。開始猜
74、測是由于電壓突變,時(shí)鐘芯片不能正確切換到備用電源造成的,所以,考慮在時(shí)鐘芯片電源管腳加電容,但是仍不能滿足要求。最后經(jīng)過多次閱讀時(shí)鐘芯片說明書,發(fā)現(xiàn)主電源和備用電源焊顛倒了,這說明我們在焊接硬件電路的時(shí)候一定要準(zhǔn)確了解各個(gè)管腳的功能。</p><p> 4.1.3蜂鳴器硬件電路調(diào)試</p><p> 定時(shí)鬧鈴在萬年歷中屬于基本功能,本系統(tǒng)在鬧鈴環(huán)節(jié)采用5V有源蜂鳴器發(fā)出鬧鈴信號。在對蜂
75、鳴器環(huán)節(jié)初次試驗(yàn)時(shí),直接接到單片機(jī)引腳,發(fā)現(xiàn)無聲響,直接接到電源端,發(fā)出聲響,可見需要驅(qū)動電路。在本系統(tǒng)中,蜂鳴器采用一個(gè)PNP三極管驅(qū)動,微控制器發(fā)出低電平控制信號有效。</p><p><b> 4.2系統(tǒng)軟件調(diào)試</b></p><p> 在本系統(tǒng)中,硬件電路看上去非常簡單,全部采用集成芯片設(shè)計(jì)。每一個(gè)集成芯片都有相應(yīng)的控制方法,即工作時(shí)序。我們在應(yīng)用一個(gè)集
76、成芯片的時(shí)候,首先要認(rèn)真閱讀其讀寫時(shí)序,再了解它的初始化流程及指令集。該系統(tǒng)除含有單總線溫度傳感器芯片外,還含有液晶顯示模塊,其控制方式都非常麻煩,對軟件的設(shè)計(jì)要求很嚴(yán)格,尤其是溫度傳感器芯片,在對其讀寫過程中,要求有嚴(yán)格的延時(shí)。</p><p> 4.2.1時(shí)鐘芯片軟件調(diào)試</p><p> 在開始的時(shí)鐘芯片讀寫過程中,發(fā)現(xiàn)不能正確讀出時(shí)鐘芯片數(shù)據(jù),讀出的時(shí)鐘芯片數(shù)據(jù)全部為0FFH。
77、經(jīng)仔細(xì)閱讀資料發(fā)現(xiàn)時(shí)鐘芯片DS1302內(nèi)部含有寫保護(hù)寄存器,當(dāng)其最高位為0時(shí),可以寫入移位寄存器,反之則不能寫入,而在開始初始化DS1302時(shí),并沒有包含寫保護(hù)寄存器最高位清零的環(huán)節(jié),所以程序中的所有寫入、讀出語句全部無效,不能被DS1302所接收。在程序設(shè)計(jì)的開始加入關(guān)閉寫保護(hù)語句,可以正確寫入、讀出時(shí)鐘芯片日歷寄存器數(shù)據(jù)。</p><p> 4.2.2顯示部分軟件調(diào)試</p><p>
78、; 為了使系統(tǒng)具有良好的人機(jī)交互界面,該系統(tǒng)采用液晶顯示器顯示所有數(shù)據(jù),但是,液晶顯示模塊的控制要比LED數(shù)碼管復(fù)雜得多。不同的液晶顯示模塊可能采用不同的控制器,在選用液晶模塊的時(shí)候,要對其進(jìn)行控制,首先要學(xué)習(xí)它的控制器,該系統(tǒng)所選液晶模塊采用ST7920控制器。</p><p> 液晶模塊采用8位并口和微控制器對話,在時(shí)鐘下降沿有效。在開始的顯示部分軟件調(diào)試過程中,液晶顯示模塊白屏,即所送指令和數(shù)據(jù)根本沒有
79、被液晶模塊所接收。</p><p> 圖4-1 液晶顯示模塊寫時(shí)序</p><p> 閱讀液晶模塊寫入時(shí)序,如圖4-1所示,發(fā)現(xiàn)在E下降沿后,要保持?jǐn)?shù)據(jù)一段時(shí)間,以等待液晶模塊完成內(nèi)部動作。在每一個(gè)E下降沿之后加一段延時(shí)程序,發(fā)現(xiàn)顯示部分工作正常。</p><p> 4.2.3按鍵部分軟件調(diào)試</p><p> 在本系統(tǒng)中,用戶可以
80、使用鍵盤修改時(shí)間、設(shè)定鬧鈴時(shí)間。以前學(xué)習(xí)過讀取微控制器引腳狀態(tài)的基本語句。按照理論設(shè)計(jì)程序,并觀察按鍵按下之后顯示界面是否按照理論設(shè)計(jì)的結(jié)果變化,發(fā)現(xiàn)在按下一次“選擇”鍵之后,游標(biāo)不是移動一位,而是移動很多位,這說明硬件有抖動。本設(shè)計(jì)在最后按鍵部分軟件設(shè)計(jì)過程中,采用軟件消抖和按鍵釋放判斷,很好的解決了這個(gè)問題。</p><p><b> 5 總結(jié)</b></p><p
81、> 在該系統(tǒng)設(shè)計(jì)、調(diào)試完成之后,對最后的成功進(jìn)行分析,同時(shí)結(jié)合在調(diào)試過程中出現(xiàn)的錯(cuò)誤進(jìn)行綜合分析,總結(jié)在實(shí)際系統(tǒng)設(shè)計(jì)和調(diào)試過程中的寶貴經(jīng)驗(yàn)。</p><p> 在系統(tǒng)硬件設(shè)計(jì)之前,要結(jié)合當(dāng)前系統(tǒng)的發(fā)展趨勢和現(xiàn)狀對系統(tǒng)功能進(jìn)行定位,使系統(tǒng)在實(shí)際應(yīng)用中具有競爭力。該系統(tǒng)最大的特點(diǎn)就是界面友好,走時(shí)準(zhǔn)確,和現(xiàn)在使用LED顯示數(shù)據(jù)的萬年歷相比,體積更小,可以作為轎車車載顯示裝置。系統(tǒng)采用液晶顯示器,可以使該系統(tǒng)
82、應(yīng)用到更加現(xiàn)代化的地方。該系統(tǒng)采用模塊化程序設(shè)計(jì)方法,同時(shí)保留了很多的微控制器I/O口,擴(kuò)展十分方便。以往的采用LED顯示數(shù)據(jù)的萬年歷要想實(shí)現(xiàn)功能擴(kuò)展,除需要對系統(tǒng)程序進(jìn)行修改外,還必須增加或刪減LED數(shù)碼管,同時(shí)要對LED圖片界面進(jìn)行更換,硬件改動較大;該系統(tǒng)的顯示部分除可以顯示數(shù)據(jù)外,還可以顯示圖片,所以說,其界面改動非常靈活,僅僅改動程序就能實(shí)現(xiàn)界面的修改,用戶還可以選擇自己喜歡的界面,這是以LED作為顯示裝置的數(shù)字萬年歷所不能實(shí)
83、現(xiàn)的。</p><p> 系統(tǒng)具有溫度檢測功能,可以作為工業(yè)溫度檢測裝置,我們只要坐在辦公室,就可以從液晶顯示器上觀察到機(jī)器設(shè)備的溫度值,同時(shí)可提供溫度報(bào)警。系統(tǒng)的按鍵輸入功能,可以讀取決策,我們可以通過按鍵發(fā)送指令,控制工業(yè)現(xiàn)場機(jī)器的動作,實(shí)現(xiàn)遠(yuǎn)程控制。</p><p> 可見,該系統(tǒng)本身不僅具有很大的靈活性、友好的界面、方便的可擴(kuò)展性,同時(shí),在其基礎(chǔ)上的系統(tǒng)的市場需求也很可觀。工業(yè)
84、控制的很多場合對時(shí)間要求比較嚴(yán)格,在實(shí)際應(yīng)用系統(tǒng)中,系統(tǒng)各裝置需要按照預(yù)定的時(shí)間動作,比如我們要在春節(jié)零晨向廣大客戶發(fā)送祝福短信,就要判斷時(shí)間;我們在孵化系統(tǒng)中,除了要對孵化溫度進(jìn)行控制外,還要對時(shí)間進(jìn)行控制。學(xué)校的電鈴,要根據(jù)時(shí)間進(jìn)行動作;自動配電系統(tǒng),要根據(jù)時(shí)間進(jìn)行通電或斷電,等很多場合需要根據(jù)時(shí)間量進(jìn)行控制,本系統(tǒng)可以很好的滿足這些系統(tǒng)的要求。</p><p> 該系統(tǒng)在進(jìn)行軟件設(shè)計(jì)的時(shí)候,采用模塊化設(shè)計(jì)
85、方法,除了便于升級外,在調(diào)試過程中,模塊化的程序設(shè)計(jì)將使系統(tǒng)更容易調(diào)試。我們在調(diào)試過程中,可以分塊調(diào)試,最后總組裝。如果不采用模塊化設(shè)計(jì)方法,將很難找出調(diào)試中的錯(cuò)誤。無論是在系統(tǒng)硬件焊接還是在軟件編程時(shí),都要細(xì)心,比如在開始的時(shí)候,時(shí)鐘芯片主電源和備用電源焊顛倒,12864不能寫入數(shù)據(jù)等,都是很小的錯(cuò)誤,卻很大的影響了系統(tǒng)的性能,甚至導(dǎo)致系統(tǒng)根本無法工作。</p><p><b> 致謝</b&
86、gt;</p><p> 本設(shè)計(jì)做出了實(shí)物,在實(shí)際電路設(shè)計(jì)的過程當(dāng)中遇到很多問題。在此,首先要感謝我的指導(dǎo)老師——喬美英老師,她淵博的專業(yè)知識和熱心的指導(dǎo)給我留下深刻的印象。在設(shè)計(jì)本系統(tǒng)的過程中,曾經(jīng)在遇到困難的時(shí)候很迷茫,是喬老師一次次的鼓勵(lì)我,并且嚴(yán)格要求、指導(dǎo)我完成設(shè)計(jì)。在此謹(jǐn)向敬愛的喬美英老師表示衷心的感謝。</p><p> 在該系統(tǒng)設(shè)計(jì)過程中,還得到其他老師的幫助和同學(xué)的
87、鼓勵(lì)。在此,向他們和所有熱心幫助過我的朋友表示衷心的感謝!</p><p> 衷心地感謝在百忙之中參加評閱論文和答辯的各位專家、教授!</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 祝木田. 單片機(jī)原應(yīng)用教程.北京:中國財(cái)經(jīng)經(jīng)濟(jì)出版社,2005.8</p><p> [2] 李廣弟.單
88、片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,1999.10</p><p> [3] 沈德金.單片機(jī)應(yīng)用程序?qū)嵗?北京:北京航空航天大學(xué)出版社,1990</p><p> [4] 胡漢才.單片機(jī)原理及接口技術(shù). 北京:清華大學(xué)出版社,1996</p><p> [5] 康華光.模擬電子技術(shù)基礎(chǔ).北京:高等教育出版社,2006</p><p
89、> [6] 余修武.單片機(jī)原理及應(yīng)用.成都:電子科技大學(xué)出版社,2008.1</p><p> [7] 李秀忠.單片機(jī)應(yīng)用技術(shù).北京:人民郵電出版社,2007.12</p><p> [8] 三恒星科技.MCS-51單片機(jī)原理與應(yīng)用實(shí)例.北京:電子工業(yè)出版設(shè),2008.1</p><p> [9] 王為青.51單片機(jī)應(yīng)用開發(fā)案例精選.北京:人民
90、郵電出版社,2007.8</p><p> [10] 歐陽文.ATMEL89系列單片機(jī)的原理與開發(fā)實(shí)踐.北京:中國電力出版社,2007.6</p><p> [11] 林伸茂.8051單片機(jī)徹底研究——實(shí)習(xí)篇.北京:中國電力出版社,2006</p><p> [12] 黃嘉寧.數(shù)字電子基礎(chǔ).北京:中國計(jì)量出版社,2008.1</p><p&
91、gt; [13] 郭強(qiáng).最新液晶顯示應(yīng)用.北京;電子工業(yè)出版社,2006.10</p><p> [14] 李宏.液晶顯示器件應(yīng)用技術(shù).北京:機(jī)械工業(yè)出版社,2007.6</p><p> [15] 李志廣、李曉泉、淮俊霞. 中文圖形12864點(diǎn)陣液晶顯示模塊與51單片機(jī)的并行接口電路及C51程序設(shè)計(jì).現(xiàn)代顯示, 2008年07期 </p><
92、;p> [16] 孫鵬. 51單片機(jī)綜合學(xué)習(xí)系統(tǒng)——12864點(diǎn)陣型液晶顯示篇.電子制作,2008年02期</p><p><b> 附錄</b></p><p><b> 附1:系統(tǒng)原理總圖</b></p><p> 附2: 系統(tǒng)實(shí)物圖片</p><p><b> 附件3
93、:系統(tǒng)程序</b></p><p> START_YEAR EQU 100</p><p> B20 EQU P1.6</p><p> RS EQU P1.3</p><p> RW EQU P1.4</p><p> E EQU P1.5</p><p> RST
94、EQU P1.1</p><p> SCLK EQU P1.2</p><p> IO EQU P1.0</p><p> ;p1.7蜂鳴器控制信號</p><p> WENDU1 EQU 20H</p><p> WENDU2 EQU 21H</p><p> MIAO EQU
95、 22H</p><p> FEN EQU 23H</p><p> SHI EQU 24H</p><p> RIQI EQU 25H</p><p> YUE EQU 26H</p><p> XINGQI EQU 27H</p><p> NIAN EQU 28H
96、</p><p> XIEBAOHU EQU 29H</p><p> NONGLINIAN EQU 30H</p><p> NONGLIYUE EQU 31H</p><p> NONGLIRI EQU 32H</p><p> TIME_YEAR DATA 30H</p><p&g
97、t; TIME_MONTH DATA 31H</p><p> TIME_DATE DATA 32H</p><p> CONVERT_YEAR DATA 30H</p><p> CONVERT_MONTH DATA 31H</p><p> CONVERT_DATE DATA 32H</p><p>
98、TEMP_BYTE1 DATA 37H</p><p> TEMP_BYTE2 DATA 38H</p><p> TEMP_BYTE3 DATA 39H</p><p> TEMP_BYTE4 DATA 3AH</p><p> TEMP_BYTE5 DATA 3BH</p><p> TIME_WEEK
99、DATA 40H</p><p> DINGSHI EQU 45H</p><p> DINGFEN EQU 46H</p><p><b> ORG 0000H</b></p><p><b> LJMP MAIN</b></p><p> ;----------
100、--------------------------------------------------------------------------</p><p> ;下面這段程序顯示開機(jī)后的主界面</p><p> ;-----------------------------------------------------------------------------------
101、-</p><p> ;下面設(shè)定基本指令集</p><p><b> ORG 0030H</b></p><p><b> MAIN:</b></p><p> MOV R6,#01H;定時(shí)的計(jì)數(shù)</p><p> MOV 45H,#08H</p>&
102、lt;p> MOV 46H,#00H</p><p><b> CLR RS</b></p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p> LCALL DELAY</p><p>
103、 MOV P2,#30H</p><p><b> SETB E</b></p><p><b> CLR E</b></p><p> LCALL DELAY</p><p><b> ;下面開顯示</b></p><p> LCALL D
104、ELAY</p><p> MOV P2,#00001101B</p><p><b> SETB E</b></p><p><b> CLR E</b></p><p> LCALL DELAY</p><p> ;下面設(shè)定地址為80H</p>&
105、lt;p> LCALL DELAY</p><p> MOV P2,#80H</p><p><b> SETB E</b></p><p><b> CLR E</b></p><p> LCALL DELAY</p><p><b> ;下面送
106、數(shù)據(jù)</b></p><p><b> SETB RS</b></p><p> MOV DPTR,#XIANSHI1</p><p> MOV R2,#64</p><p> YSD:MOV A,#00H</p><p> MOVC A,@A+DPTR</p>
107、<p><b> MOV P2,A</b></p><p><b> SETB E</b></p><p><b> CLR E</b></p><p> LCALL DELAY</p><p><b> INC DPTR</b>&l
108、t;/p><p> DJNZ R2,YSD</p><p> MOV R3,#08H</p><p> MOV R0,#0FH</p><p> YSD_YSD2:MOV R1,#0FFH</p><p> YSD_YSD1:MOV R2,#0FFH</p><p><b>
109、DJNZ R2,$</b></p><p> DJNZ R1,YSD_YSD1</p><p> DJNZ R0,YSD_YSD2</p><p> LJMP ZHUYE</p><p> ;下面是子程序調(diào)用到的程序</p><p><b> XIANSHI1:</b><
110、;/p><p> DB 020H,020H,0BAH,0D3H,0C4H,0CFH,0C0H,0EDH,0B9H,0A4H,0B4H,0F3H,0D1H,0A7H,020H,020H</p><p> DB 020H,020H,0D7H,0D4H,0B6H,0AFH,0BBH,0AFH,030H,035H,02DH,032H,0B0H,0E0H,020H,020H</p>&
111、lt;p> DB 020H,020H,0B5H,0E7H,0C6H,0F8H,0B9H,0A4H,0B3H,0CCH,0D1H,0A7H,0D4H,0BAH,020H,020H</p><p> DB 020H,020H,0D1H,0EEH,0CAH,0F7H,0B5H,0C2H,020H,020H,0D6H,0C6H,0D7H,0F7H,020H,020H</p><p>
112、DELAY:MOV R0,#14H</p><p><b> DJNZ R0,$</b></p><p><b> RET</b></p><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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---制作單片機(jī)at89s52的萬年歷
- 萬年歷畢業(yè)論文---基于at89s52單片機(jī)的電子萬年歷設(shè)計(jì)
- 基于at89s52單片機(jī)的萬年歷設(shè)計(jì)畢業(yè)論文
- 基于at89s52單片機(jī)的電子萬年歷設(shè)計(jì)畢業(yè)論文
- 基于at89s52單片機(jī)的電子萬年歷設(shè)計(jì)1畢業(yè)論文
- 基于at89s52單片機(jī)和ds1302的電子萬年歷畢業(yè)設(shè)計(jì)
- 基于at89s52單片機(jī)和ds1302的電子萬年歷畢業(yè)設(shè)計(jì)開題報(bào)告
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的數(shù)字萬年歷設(shè)計(jì)
- 萬年歷畢業(yè)設(shè)計(jì)---基于stc89c52萬年歷的設(shè)計(jì)
- 基于單片機(jī)的萬年歷畢業(yè)設(shè)計(jì)
- 基于at89s52的電子萬年歷設(shè)計(jì)報(bào)告畢業(yè)論文
- 基于單片機(jī)的數(shù)字萬年歷設(shè)計(jì)
- 基于at89s52的電子萬年歷畢業(yè)論文
- 通信畢業(yè)設(shè)計(jì)--基于單片機(jī)的數(shù)字萬年歷設(shè)計(jì)
- 基于單片機(jī)的萬年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)萬年歷的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)萬年歷的設(shè)計(jì)
- 基于單片機(jī)的萬年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于at89c51單片機(jī)萬年歷畢業(yè)設(shè)計(jì)
- 基于at89c51單片機(jī)萬年歷的畢業(yè)設(shè)計(jì)
評論
0/150
提交評論