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