基于arm的lcd顯示設計與實現(xiàn)_第1頁
已閱讀1頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  西安工業(yè)大學北方信息工程學院</p><p>  本科畢業(yè)設計(論文)</p><p>  題目:基于ARM的LCD顯示設計與實現(xiàn)</p><p>  系 別: 電子信息系 </p><p>  專 業(yè): 通信工程 </p><p>  班 級:

2、 B090310 </p><p>  學 生: 楊海竹 </p><p>  學 號: B09031044 </p><p>  指導教師: 任安虎 </p><p><b>  2013年06月</b></p><p&g

3、t;  畢業(yè)設計(論文)任務書</p><p>  系別 電子信息系 專業(yè) 通信工程 班級 B090310 姓名 楊海竹 學號 B09031044 </p><p>  1.畢業(yè)設計(論文)題目:基于ARM的LCD顯示設計與實現(xiàn) </p><p>  2.題目背景和意義:隨著科技的發(fā)展,ARM在

4、社會各個方面的應用越來越廣。液晶顯示是嵌入式系統(tǒng)中反映系統(tǒng)輸入/輸出的人機交互界面,液晶顯示以其微功耗、體積小、顯示內(nèi)容豐富、模塊化,接口電路簡單等諸多優(yōu)點得到廣泛應用。因此,研究基于ARM的LCD顯示有其實際應用意義。 </p><p>  3.設計(論文)的主要內(nèi)容(理工科含技術指標):

5、基于LPC2000系列的ARM處理器實現(xiàn)控制液晶屏LCD顯示。進行ARM處理器最小系統(tǒng)設計,ARM與LCD接口、控制按鍵電路設計,并進行軟件設計完成輸入數(shù)據(jù)的顯示。 </p><p>  4.設計的基本要求及進度安排: </p>

6、;<p>  基本要求: </p><p> ?、?查閱國內(nèi)外相關文獻,了解系統(tǒng)的工作原理; </p><p> ?、?進行系統(tǒng)方案設計;

7、 </p><p> ?、?進行系統(tǒng)硬件原理圖設計; </p><p>  ④ 編寫程序并調試;

8、 </p><p> ?、?完成畢業(yè)設計論文及答辯。 </p><p>  進度安排: </p><p>  第16-17

9、周:學習相關參考文獻,對課題做初步了解; </p><p>  第18-19周:整理思路,構思開題報告,準備開題答辯; </p><p>  第1-3周:查閱相關資料,完成硬件模塊框圖;

10、 </p><p>  第4-8周:搭建硬件環(huán)境; </p><p>  第9-11周:完成LCD液晶屏驅動程序設計及調試; </p><p>  第12-1

11、3周:系統(tǒng)調試,實現(xiàn)所有編程,達到設計功能要求; </p><p>  第14-15周:撰寫論文,定稿、打印、準備畢業(yè)答辯。 </p><p>  5.畢業(yè)設計(論文)的工作量要求

12、</p><p>  ① 實驗(時數(shù))*或實習(天數(shù)): 不少于200學時 </p><p> ?、?圖紙(幅面和張數(shù))*: 2張 </p><p>  ③ 其他要求:完成與課題相關的3000字左右

13、的英文文獻資料翻譯。 </p><p>  指導教師簽名: 年 月 日</p><p>  學生簽名: 年 月 日</p><p>  

14、系主任審批: 年 月 日</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p><b>  1.1前言1</b></p><p>  1.2課題研究背景1</p

15、><p>  1.3課題研究意義1</p><p>  1.4國內(nèi)外相關研究情況2</p><p>  1.5論文結構安排3</p><p>  2 相關技術及系統(tǒng)方案設計4</p><p>  2.1 ARM技術簡介4</p><p>  2.2 硬件設計原理4</p>

16、<p>  2.2.1 系統(tǒng)設計方案4</p><p>  2.2.2 硬件設計原理框圖4</p><p>  3 單元電路設計6</p><p>  3.1 LPC21036</p><p>  3.1.1 LPC2103介紹6</p><p>  3.1.2 LPC2103 電路設計圖6<

17、;/p><p>  3.2 外圍電路設計7</p><p>  3.2.1電源電路7</p><p>  3.2.2 系統(tǒng)時鐘電路7</p><p>  3.2.3 復位電路8</p><p>  3.2.4 JTAG 接口電路8</p><p>  3.3 LCD 顯示電路設計9<

18、;/p><p>  3.3.1 LCD12864液晶顯示屏簡介9</p><p>  3.3.2 顯示模塊的設計9</p><p>  3.4按鍵控制接口電路設計9</p><p>  3.5 DS18B20溫度采集模塊10</p><p>  3.5.1數(shù)字溫度傳感器DS18B20的介紹10</p>

19、<p>  3.5.2 溫度采集電路的設計11</p><p><b>  4 軟件設計12</b></p><p>  4.1 軟件開發(fā)環(huán)境12</p><p>  4.1.1 ADS集成開發(fā)環(huán)境簡介12</p><p>  4.1.2 ADS1.2開發(fā)環(huán)境搭建12</p><

20、;p>  4.2主程序流程圖設計16</p><p>  4.3子程序流程圖設計20</p><p>  4.3.1 DS18B20程序流程圖設計20</p><p>  4.3.2 LCD12864程序流程圖設計21</p><p>  4.3.3 KEY程序流程圖設計30</p><p><b

21、>  5 系統(tǒng)調試24</b></p><p>  5.1硬件調試30</p><p>  5.1.1 Protel99簡介30</p><p>  5.1.2原理圖調試31</p><p>  5.2軟件調試31</p><p><b>  6結論34</b><

22、;/p><p><b>  6.1 總結34</b></p><p><b>  6.2 體會34</b></p><p><b>  致謝35</b></p><p><b>  參考文獻36</b></p><p>  畢業(yè)

23、設計(論文)知識產(chǎn)權聲明37</p><p>  畢業(yè)設計(論文)獨創(chuàng)性聲明38</p><p>  附錄1硬件原理圖39</p><p>  附錄2源程序設計40</p><p>  基于ARM的LCD顯示設計與實現(xiàn)</p><p><b>  摘 要</b></p>&

24、lt;p>  在當前的數(shù)字信息技術和網(wǎng)絡技術高速發(fā)展的后PC時代,嵌入式系統(tǒng)技術已經(jīng)廣泛地滲透到人們生活的各個方面。由于嵌入式系統(tǒng)的交互性比較強,液晶屏做為輸出設備對漢字顯示又尤為重要,但很多關于嵌入式系統(tǒng)開發(fā)、應用的教材中,對于液晶屏的程序設計也只是初始化和測試的編程,沒有進一步的應用開發(fā)。所以選擇了該畢業(yè)設計題目,以完善液晶屏的漢字顯示功能。在選定了畢業(yè)設計題目之后,隨著開發(fā)研究的不斷深入,主要完成了以下工作:</p&g

25、t;<p>  首先,對三種常用的嵌入式操作系統(tǒng)進行了分析比較,對項目開發(fā)是否選用操作系統(tǒng)提出了自己的見解,結合本次畢業(yè)設計的實際應用,選擇了不使用操作系統(tǒng)的方法。</p><p>  其次,選定硬件開發(fā)系統(tǒng)后,把單片機的傳統(tǒng)調試方法與ARM的邊界掃描技術進行了分析比較,并在實際應用開發(fā)中采用了邊界掃描技術。 </p><p>  再次,由于在C語言程序運行前需要加入一些必要

26、的初始化代碼,于是又完成了對LCD初始化程序的分析與設計。 </p><p>  最后,在編寫漢字顯示程序時,采用了讀取字庫法顯示漢字方案和讀取字模數(shù)據(jù)輸出漢字方案分別實現(xiàn)了液晶屏的漢字顯示,并取得了良好的效果。本文不但說明了如何利用ARM處理器實現(xiàn)液晶屏的漢字顯示,還講述了開發(fā)ARM處理器應用程序的一個完整的過程。隨著嵌入式技術的不斷普及,對ARM處理器的學習、應用、開發(fā)都有一定的幫助作用。</p>

27、<p>  關鍵詞:ARM;LCD;嵌入式;C語言 </p><p>  Design and Implementation of the LCD Based on ARM </p><p><b>  Abstract</b></p><p>  With the rapid development of digital inf

28、ormation technology and network technology,embedded system technology has been widely applied to various aspects of our life.Embedded systems have rather strong interactivityand LCD is especially important for Chinese ch

29、aracters as display equipment,but many teaching materials on the development and application of embedded systems only covered the initialization and testing programming about LCD screen without further application progra

30、mming.Due to above </p><p>  First of all, on the three kinds of commonly used embedded operating system are analyzed and compared, in project development whether choose operating system put forward its own

31、views, combined with the practical application of this graduation design, chose not to use the operating system. Second, the selected hardware development system, the traditional method of debugging MCU and ARM of bounda

32、ry scan technology are analyzed and compared, and the boundary scan technology is adopted in the actua</p><p>  Key Words:ARM;LCD;Embedded Systems Technology;C Language</p><p><b>  1 緒論&l

33、t;/b></p><p><b>  1.1前言</b></p><p>  采用模塊化分析,以ARM7為控制核心,設計了系統(tǒng)對溫度傳感器DS18B20實測數(shù)據(jù)讀取的溫度傳感器模塊,建立了在12864液晶上顯示時間、日期和實時溫度值的顯示模塊。系統(tǒng)采用獨立式鍵盤模塊設定初始時間、日期。</p><p><b>  1.2課題研

34、究背景</b></p><p>  在當前的數(shù)字信息技術和網(wǎng)絡技術高速發(fā)展的后PC時代,嵌入式系統(tǒng)技術已經(jīng)廣泛地滲透到人們生活的各個方面。由于嵌入式系統(tǒng)的交互性比較強,液晶屏做為輸出設備對漢字顯示又尤為重要,但很多關于嵌入式系統(tǒng)開發(fā)、應用的教材中,對于液晶屏的程序設計也只是初始化和測試的編程,沒有進一步的應用開發(fā)。所以選擇了該畢業(yè)設計題目,以完善液晶屏的漢字顯示功能。在選定了畢業(yè)設計題目之后,隨著開發(fā)

35、研究的不斷深入,主要完成了以下工作:首先,對三種常用的嵌入式操作系統(tǒng)進行了分析比較,對項目開發(fā)是否選用操作系統(tǒng)提出了自己的見解,結合本次畢業(yè)設計的實際應用,選擇了不使用操作系統(tǒng)的方法。其次,選定硬件開發(fā)系統(tǒng)后,把單片機的傳統(tǒng)調試方法與ARM的邊界掃描技術進行了分析比較,并在實際應用開發(fā)中采用了邊界掃描技術。再次,由于在C語言程序運行前需要加入一些必要的初始化代碼,于是又完成了對LCD初始化程序的分析與設計。最后,在編寫漢字顯示程序時,采

36、用了讀取字庫法顯示漢字方案和讀取字模數(shù)據(jù)輸出漢字方案分別實現(xiàn)了液晶屏的漢字顯示,并取得了良好的效果。本文不但說明了如何利用ARM處理器實現(xiàn)液晶屏的漢字顯示,還講述了開發(fā)ARM處理器應用程序的一</p><p><b>  1.3課題研究意義</b></p><p>  踏著改革的開放,社會的進步的步伐,各種顯示類技術也發(fā)生了翻天覆地的變化,其發(fā)展經(jīng)歷了起步階段、數(shù)量型

37、發(fā)展階段、規(guī)?;l(fā)展階段以及品牌建設階段,至此已取得了令人矚目的成績,初步形成了投資主多元化、經(jīng)營業(yè)態(tài)多元化、經(jīng)營方式連鎖化、品牌建設特色化、市場需求大眾化、從傳統(tǒng)產(chǎn)業(yè)向現(xiàn)代產(chǎn)業(yè)轉型的發(fā)展新格局。最大限度的滿足廣大消費者的不同需求。</p><p>  隨著經(jīng)濟的復蘇和市場的進一步改革開放,人民的生活水平在不斷的奔向小康,促進著電子顯示的快速發(fā)展,同時許多電子類產(chǎn)品商家也敏銳地嗅到了這一產(chǎn)業(yè)的商機,注定著這個行業(yè)

38、的競爭越來越激烈。因此,要在這個競爭激烈的市場中獲勝并且穩(wěn)步前進就要降低的成本,提高效益。雖然不同的電子類產(chǎn)品所要顯示的內(nèi)容和格式的標準不同,但是每個顯示方向都可以使用管理信息工具來提高本企業(yè)的核心競爭力。</p><p>  綜上所述,LCD顯示運用嵌入式系統(tǒng)設計的思想,采用目前最先進的嵌入式技術,從而實現(xiàn)實時顯示的要求。</p><p>  1.4國內(nèi)外相關研究情況</p>

39、<p>  雖然嵌入式系統(tǒng)是近幾年才風靡起來的,但是這個概念并非新近才出現(xiàn)。從20世紀70年代單片機的出現(xiàn)到今天各種各樣的嵌入式處理器、微控制器的大規(guī)模應用,嵌入式系統(tǒng)已經(jīng)有了30多年的發(fā)展歷史。綜觀嵌入式技術的發(fā)展,大致經(jīng)歷了以下4個階段: </p><p>  第一階段是以單芯片為核心的可編程控制器形式的系統(tǒng),同時具有與監(jiān)測、伺服、指示設備相配合的功能,應用于一些專業(yè)性強的工業(yè)控制系統(tǒng)中。這種系

40、統(tǒng)一般沒有操作系統(tǒng)的支持,通過匯編語言編程對系統(tǒng)進行直接控制。這一階段系統(tǒng)的主要特點是:系統(tǒng)結構和功能都相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。</p><p>  第二階段是以嵌入式CPU為基礎、以簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點是:CPU種類繁多,通用性比較弱;系統(tǒng)開銷小,效率高;操作系統(tǒng)達到了一定的兼容性和擴展性;應用軟件較專業(yè)化,用戶界面不夠友好;主要用于控制系統(tǒng)負載

41、的運行以及監(jiān)控應用程序的運行。</p><p>  第三階段是以嵌入式操作系統(tǒng)為標志的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點是:嵌入式操作系統(tǒng)能運行于各種不同類型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核小、效率高,并且具有高度的模塊化和擴展性;具備文件和目錄管理、多任務、設備支持、網(wǎng)絡支持、圖形窗口以及用戶界面等功能;具有大量的應用程序接口API,開發(fā)應用程序簡單;嵌入式應用軟件豐富。</p><p&

42、gt;  第四階段是以基于Intemet為標志的嵌入式系統(tǒng),這是一個正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Intemet的發(fā)展以及Intemet技術與信息家電、工業(yè)控制技術等結合日益密切,嵌入式設備與Internet 的結合將代表著嵌入式技術的真正未來。</p><p><b>  1.5論文結構安排</b></p><p>  

43、采用模塊化分析,以ARM7為控制核心,設計了系統(tǒng)對溫度傳感器DS18B20實測數(shù)據(jù)讀取的溫度傳感器模塊,建立了在12864液晶上顯示時間、日期和實時溫度值的顯示模塊。系統(tǒng)采用獨立式鍵盤模塊設定初始時間、日期。</p><p>  本設計的論文內(nèi)容結構安排為:</p><p>  第一章:緒論對整個設計進行綜述,大體介紹本系統(tǒng)的實際應用及前景;</p><p>  第

44、二章:系統(tǒng)設計準備為本系統(tǒng)的軟件設計做好設計前的理論準備,LPC2103的結構及原理、編程語言,并對ADS1.2軟件平臺進行大概介紹;</p><p>  第三章:系統(tǒng)硬件設計對系統(tǒng)硬件設計的原理及方法進行了介紹;</p><p>  第四章:程序設計重點研究闡述實現(xiàn)功能的各個模塊的程序設計;</p><p>  第五章:結論對本次畢業(yè)設計的過程和經(jīng)歷進行深刻總結。

45、</p><p>  最后在論文背后附上參考文獻以及附件。</p><p>  2 相關技術及系統(tǒng)方案設計</p><p>  2.1 ARM技術簡介</p><p>  ARM是微處理器行業(yè)的一家知名企業(yè),設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟件。技術具有性能高、成本低和能耗省的特點。適用于多種領域,比如嵌入控制、消

46、費/教育類多媒體、DSP和移動式應用等。</p><p>  采用RISC體系架構的ARM微處理器一般有如下特點:</p><p>  a. 體積小、低功耗、低成本、高性能;</p><p>  b. 支持Thumb( 16位) /ARM(32位) 雙指令集,能很好的兼容8/16位器件;</p><p>  c. 大量使用寄存器,指令執(zhí)行速度

47、更快;</p><p>  d. 大多數(shù)數(shù)據(jù)操作都在寄存器中完成;</p><p>  e. 尋址方式靈活簡單,執(zhí)行效率高;</p><p>  f. 指令長度固定。</p><p>  2.2 硬件設計原理</p><p>  硬件設計主要是對系統(tǒng)原理圖的設計,主要是在Protel SE 99環(huán)境下繪制原理圖。設計中

48、的框圖繪制使用Visio軟件繪制。</p><p>  2.2.1 系統(tǒng)設計方案</p><p>  采用模塊化分析,以ARM7為控制核心,設計了系統(tǒng)對溫度傳感器DS18B20實測數(shù)據(jù)讀取的溫度傳感器模塊,建立了在LCD12864液晶上顯示時間、日期和實時溫度值的顯示模塊。系統(tǒng)采用獨立式鍵盤模塊設定初始時間、日期。</p><p>  2.2.2 硬件設計原理框圖&

49、lt;/p><p>  系統(tǒng)直接控制設備運行,硬件部分包括微處理器,存儲部分,LCD顯示屏模塊,以及其他基本的外圍電路部分(復位模塊,電源模塊,晶振模塊等)。根據(jù)下位機要實現(xiàn)的功能,系統(tǒng)方框圖如圖2.1所示。</p><p><b>  圖2.1硬件框圖</b></p><p><b>  3 單元電路設計</b></

50、p><p>  3.1 LPC2103</p><p>  3.1.1 LPC2103介紹</p><p>  LPC2103的10位A/D轉換器提供8路模擬輸入,低功耗實時時鐘具有獨立的電源和特定的32768HZ時鐘輸入,多達32個通用I/O口(可承受5V電壓),可通過個別使能禁止外圍功能外圍時鐘分頻來優(yōu)化額外功耗。較小的封裝和很低的功耗使LPC2103特別適用于訪問

51、控制和POS機等小型應用中;由于內(nèi)置了寬范圍的串行通信接口和8KB的片內(nèi)SRAM,它也非常適合于通信網(wǎng)關和協(xié)議轉換器。高級性能還使它適合用作數(shù)學協(xié)處理器,此外也特別適用于工業(yè)控制和醫(yī)療系統(tǒng)。</p><p>  LPC2103設計主要有電源模塊,時鐘電路,復位電路,JTAG下載調試接口。</p><p>  3.1.2LPC2103 電路設計圖</p><p>  

52、LPC2103接口電路如圖3.1所示。</p><p>  圖3.1 LPC2103最小系統(tǒng)</p><p>  3.2 外圍電路設計</p><p>  外圍電路設計主要有電源模塊,時鐘電路,復位電路,JTAG下載調試接口。</p><p><b>  3.2.1電源電路</b></p><p>

53、;  LPC2103要使用兩組電源,I/O口供電電源為3.3V,內(nèi)核及片內(nèi)外設供電電源為1.8V,所以系統(tǒng)設計為3.3V應用系統(tǒng)。首先,由CZ1電源接口輸入9V直流電源,二極管D2防止電源反接,經(jīng)過C1、C3濾波,然后通過78M05將電源穩(wěn)壓至5V,再使用LDO芯片穩(wěn)壓輸出3.3V及1.8V電壓。LDO芯片采用了LM1117MPX-1.8和LM1117MPX-3.3,其特點為輸出電流大,輸出電壓精度高,穩(wěn)定性高。系統(tǒng)電源電路如圖3.2所

54、示。</p><p><b>  圖3.2電源電路</b></p><p>  3.2.2 系統(tǒng)時鐘電路</p><p>  LPC2103可使用外部晶振或外部時鐘源,內(nèi)部PLL電路可調整系統(tǒng)時鐘,使系統(tǒng)運行速度更快(CPU最大操作時鐘為60MHz)。倘若不使用片內(nèi)PLL功能及ISP下載功能,則外部晶振頻率范圍是1MHz~30MHz,外部時鐘頻

55、率范圍是1MHz~50MHz;若使用了片內(nèi)PLL功能或ISP下載功能,則外部晶振頻率范圍是10MHz~25MHz,外部時鐘頻率范圍是10MHz~25MHz。使用了外部11.0592MHz晶振,用1MΩ電阻R6并接到晶振的兩端,使系統(tǒng)更容易起振。用11.0592MHz晶振的原因是使串口波特率更精確,同時能夠支持LPC2103芯片內(nèi)部PLL功能及ISP功能。時鐘電路圖如圖3.3所示。</p><p>  圖3.3系統(tǒng)

56、時鐘電路</p><p>  3.2.3 復位電路</p><p>  復位電路是對整個系統(tǒng)進行復位,電路如圖3.4所示。</p><p><b>  圖3.4復位電路</b></p><p>  3.2.4 JTAG 接口電路</p><p>  采用ARM公司提出的標準20腳JTAG仿真調試接

57、口,JTAG信號的定義及與LPC2103的連接如圖3.5所示。JTAG接口上的信號nRST、nTRST與復位電路連接,形成線與的關系,達到共同控制系統(tǒng)復位的目的。</p><p>  圖3.5 JTAG接口電路</p><p>  3.3 LCD 顯示電路設計</p><p>  3.3.1 LCD12864液晶顯示屏簡介</p><p> 

58、 LCD顯示屏采用12864液晶顯示屏。此屏滿足帶中文字庫的LCD12864是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個16×16點漢字,和128個16×8點ASCII字符集利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示8×4行16×16點

59、陣的漢字也可完成圖形顯示低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。</p><p>  3.3.2 顯示模塊的設計</p><p>  LCD顯示電路如圖3.6所示。</p><p>  圖3.6 LCD顯示電路</p>

60、<p>  3.4按鍵控制接口電路設計</p><p>  按鍵設計了八個,即KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY,CLR。按住KEY鍵時,可以對時間日期進行調整,KEY1鍵可為秒加1,KEY2可為1加1,KEY3可以對時加1,KEY4可為日期加1,KEY5可為月加1,KEY6可以為年加1,CLR為清除鍵,如圖3.7所示。</p><p>  圖

61、3.7按鍵控制接口電路</p><p>  3.5DS18B20溫度采集模塊</p><p>  3.5.1數(shù)字溫度傳感器DS18B20的介紹</p><p>  傳統(tǒng)的測溫系統(tǒng)一般都是由溫度傳感器、A/D轉換、單片機處理、顯示驅動芯片和LED顯示組成,而本測溫系統(tǒng)則是用一線測溫器件DS18B20與ARM單片機共同組成了最小的測溫系統(tǒng)。DS18B20是美國DALLA

62、S公司生產(chǎn)的一線數(shù)字溫度傳感器,它的測溫范圍從-55℃到+125℃,分辨力為0.0625℃,在-10℃到+85℃范圍內(nèi)其測溫準確度為±0.5℃。它體積小、功耗低、抗干擾能力強、易與微處理器連結,它無需任何外圍硬件即可方便地進行溫度測量,與單片機交換信息僅需要一根I/O口線,其讀寫及溫度轉換的功率也可來源于數(shù)據(jù)總線,而無需額外電源。</p><p>  單總線數(shù)字溫度傳感器DS18B20簡介:</p

63、><p>  采用單總線專用技術,既可通過串行口線,也可通過其他I/O口線與微機接口,無須經(jīng)過其他的變換電路,直接輸出被測溫度值(9位二進制數(shù),含符號位),測溫范圍為-55℃到+125℃,測量分辨率為0.0625℃,內(nèi)含64位經(jīng)過激光修正的只讀寄存器ROM,適配各種單片機或系統(tǒng)機,用戶可分別設定各路溫度的上、下限,內(nèi)含寄生電源。</p><p>  DS18B20內(nèi)部結構,主要由四部分組成:6

64、4位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL高速暫存器。64位光刻ROM是出廠前被光刻好的,它可以看做是該DS18B20的地址序列號。</p><p>  3.5.2 溫度采集電路的設計</p><p>  電路設計如圖3.8所示。</p><p>  圖3.8 DS18B20溫度傳感模塊</p><p><b> 

65、 4 軟件設計</b></p><p>  4.1 軟件開發(fā)環(huán)境</p><p>  4.1.1 ADS集成開發(fā)環(huán)境簡介</p><p>  本系統(tǒng)的程序設計將基于ADS1.2開發(fā)系統(tǒng),所以有必要對這個軟件系統(tǒng)有所認識。本節(jié)將介紹有關這個系統(tǒng)的基本知識。ADS集成開發(fā)環(huán)境是ARM公司推出的ARM核微控制器集成開發(fā)工具,英文全稱為ARM Develope

66、r Suite,成熟版本為ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,支持軟件調試及JTAG硬件仿真調試,支持匯編、C 、C++源程序,具有編譯效率高、系統(tǒng)庫功能強等特點,可以在Windows98、Windows XP、Windows2000以及Red Hat Linux上運行。 </p><p>  這里將簡單介紹使用ADS1.2建立工程,編譯連接設置,調試操作等等。最后還介紹了基于L

67、PC2200系列ARM7微控制器的工程模板的使用,EasyJTAG仿真器的安裝與使用。</p><p>  由于用戶一般直接操作的CodeWarrior IDE集成開發(fā)環(huán)境和AXD調試器,所以我們只介紹這兩部分軟件的使用,其它部分的詳細說明參考ADS1.2的在線幫助文檔或相關資料。</p><p>  4.1.2 ADS1.2開發(fā)環(huán)境搭建</p><p><b

68、>  a. 建立工程</b></p><p>  點擊WINDOWS操作系統(tǒng)的開始程序ARM Developer Suitev1.2 CodeWarrior for ARM Developer Suite起動Metrowerks CodeWarrior,或雙擊“CodeWarrior for ARM Developer Suite”快捷方式起動。啟動ADS1.2 IDE如圖4.1所示。</

69、p><p>  圖4.1 啟動ADS1.2</p><p>  點擊File菜單,選擇New…即彈出New對話框,如圖4.2所示。</p><p>  圖4.2 New對話框</p><p>  選擇工程模板為ARM可執(zhí)行映象(ARM Executable Image )或Thumb可執(zhí)行映象(Thumb Executable Image) ,或

70、Thumb、ARM交織映象(Thumb ARM Interworking Image),然后在Location項選擇工程存放路徑,并在Project name項輸入工程名稱,點擊確定按鈕即可建立相應工程,工程文件名后綴為mcp(下文有時也把工程稱為項目) 。</p><p><b>  b. 建立文件</b></p><p>  建立一個文本文件,以便輸入用戶程序。點

71、擊“New Text File ”圖標按鈕,如圖4.3所示。</p><p>  圖4.3 New Text File</p><p>  然后在新建的文件中編寫程序,點擊“Save”圖標按鈕將文件存盤(或從File菜單選擇Save) ,輸入文件全名,yanghaizhu.S。注意,請將文件保存到相應工程的目錄下,以便于管理和查找。 </p><p>  c. 添加

72、文件到工程</p><p>  如圖4.4所示,在工程窗口中Files頁空白處點擊鼠標右鍵,彈出浮動菜單,選擇“Add Files…”即可彈出“Select files to add…”對話框,選擇相應的源文件(可按著Ctrl鍵一次選擇多個文件),點擊打開按鈕即可。</p><p>  另外,用戶也可以在Project菜單中選擇Add Files來添加源文件,或使用 New對話框選擇Fil

73、e頁來建立源文件時選擇加入工程(即選中“Add to Project”項)。添加文件操作如圖4.4、圖4.5所示。</p><p>  圖4.4選擇Add Files</p><p>  圖4.5 彈出Select files to add…對話框</p><p><b>  d. 編譯連接工程</b></p><p>

74、  如圖4.6所示為工程窗口中的圖標按鈕,通過這些圖標按鈕,您可以快速的進行工程設置、編譯連接、啟動調試等等(在不同的菜單項上可以分別找到對應的菜單命令)。它們從左至右分別為:</p><p>  DebugRel Settings工程設置,如地址設置、輸出文件設置、編譯選項等,其中DebugRel為當前的生成目標(target system)。</p><p>  Synchronize

75、 Modification Dates同步修改日期,檢查工程中每個文件的修改日期,若發(fā)現(xiàn)有更新(如使用其它編輯器編輯源文件),則在Touch欄標記“√”。 Make編譯連接(快捷鍵為F7)。</p><p>  Debug啟動AXD進行調試(快捷鍵為F5)。</p>&

76、lt;p>  Run啟動AXD進行調試,并直接運行程序。Project Inspector工程檢查,查看和配置工程中源文件的信息。</p><p>  圖4.6 工程窗口中的圖標按鍵</p><p>  點擊“DebugRel Settings…”圖標按鈕,即可進行工程的地址設置、輸出文件設置、編譯選項等,如圖4.7所示。在“ARM Linker”對話框設置連接地址,在“Langua

77、ge Settings”中設置各編譯器的編譯選項。</p><p>  圖4.7 DebugRel Settings 窗口</p><p>  對于簡單的軟件調試,可以不進行連接地址的設置,直接點擊工程窗口的“Make”圖標按鈕,即可完成編譯連接。若編譯出錯,會有相應的出錯提示,雙擊出錯提示行信息,編輯窗即會使用光標指出當前出錯的源代碼行,編譯連接輸出窗口如圖4.8所示。同樣,您可以在P

78、roject菜單中找到相應的命令。</p><p>  圖4.8 編譯連接輸出窗口</p><p>  如圖4.9所示,Touch欄用于標記文件是否已編譯,若打上“√”則表明對應文件需要重新編譯。Touch欄用于標記文件是否已編譯,若打上“√”則表明對應文件需要重新編譯??梢酝ㄟ^單擊該欄位置來設置取消符號“√”,或將工程目錄下的*.tdt 文件刪除也可以使整個工程源文件均打上“√”。&l

79、t;/p><p>  圖4.9 工程窗口中Make操作</p><p>  4.2主程序流程圖設計</p><p>  開始,初始化時間日期,采集溫度,讀取時間,在屏幕上顯示溫度和時間,判斷KEY是否為低電平,如果是就對時間日期進行設定,否就回到初始化狀態(tài)。如果設定了時間,再判定是否按下清除鍵,如果按下,則清除LCD屏時間日期,回到溫度采集。沒有按下清除鍵,則直接回到采

80、集溫度。如圖4.10所示。</p><p>  圖4.10 主程序流程圖</p><p><b>  主程序:</b></p><p>  int main (void)</p><p><b>  {</b></p><p>  char str[20];</p>

81、;<p>  uint32 bak;</p><p>  PINSEL0 = PINSEL0 & (~0x0F); </p><p>  PINSEL0 = PINSEL0 | 0x05; //設置I/O連接到UART </p><p>  UARTIni

82、t (); //串口初始化 </p><p>  Temp_init();</p><p>  LCD_Initial();</p><p>  RTCInit(); // RTC初始化 </p><p><b>  

83、while (1)</b></p><p><b>  {</b></p><p>  Read_18B20();// 讀取溫度值 </p><p>  sprintf(str, "\nTEMP = %f", ftemperature);</p><

84、p>  LCD_Disp_Strs(1, 1, str);// 將溫度值顯示在LCD屏上 </p><p>  while (0 == (ILR & 0x01));// 等待RTC增量中斷 </p><p>  ILR = 0x01;// 清除中斷標志 </p><p&g

85、t;  Disp_Time();// 讀取時鐘值,并顯示在LCD屏上 </p><p>  while(!(IO0PIN&KEY))//控制按鍵KEY按下不松手,說明當前進入設置時間狀態(tài)</p><p><b>  {</b></p><p>  CCR = 0x00; //禁止時間計數(shù)器 </p&g

86、t;<p>  if(checkKEY1()) //按鍵2按下調整分針分鐘加1</p><p><b>  {</b></p><p>  bak = (uiTimes >> 8) & 0x3f; // 獲取分鐘 </p><p>  MIN = bak+1;//設置分

87、</p><p>  LCD_Disp_NUM(3,5, MIN);</p><p>  LCD_Disp_Ascii(3,7, ':');</p><p><b>  }</b></p><p>  if(checkKEY2()) //按鍵3按下,調整時針小時加1</p><p&g

88、t;<b>  {</b></p><p>  bak = (uiTimes >> 16) & 0x1f; // 獲取小時 </p><p>  HOUR = bak+1;// 設置時</p><p>  LCD_Disp_NUM(3,6, HOUR);</p>&

89、lt;p>  LCD_Disp_Ascii(3,7, ':');</p><p><b>  }</b></p><p>  if(checkKEY3()) //按鍵2按下調整分針分鐘加1</p><p><b>  {</b></p><p>  bak = (uiTime

90、s >> 8) & 0x3f; // 獲取星期 </p><p>  MIN = bak+1;// 設置星期 </p><p>  LCD_Disp_NUM(3,5, MIN);</p><p>  LCD_Disp_Ascii(3,7, ':');</p><p&

91、gt;<b>  }</b></p><p>  if(checkKEY4())//按鍵4按下,調整日期 日期加1</p><p><b>  {</b></p><p>  bak = uiDatas & 0x1f; // 獲取日 </p><p>  DOW= bak+

92、1;// 設置日期</p><p>  LCD_Disp_NUM(2,8, bak);</p><p><b>  }</b></p><p>  if(checkKEY5())//按鍵5按下,調整月份 月份加1</p><p><b>  {</b></p><

93、p>  bak = (uiDatas >> 8) & 0x0f; // 獲取月 </p><p>  MONTH= bak+1;// 設置月</p><p>  LCD_Disp_NUM(2,6, MONTH);</p><p>  LCD_Disp_Ascii(2,7, '-');</p

94、><p><b>  }</b></p><p>  if(checkKEY6())//按鍵6按下,調整年份 年份加1</p><p><b>  {</b></p><p>  LCD_Disp_Strs(2,1, "日期:");</p><p>  ba

95、k = (uiDatas >> 16) & 0xfff; // 獲取年 </p><p>  YEAR = bak+1;// 設置年</p><p>  LCD_Disp_NUM(2,4, bak);</p><p>  LCD_Disp_Ascii(2,5, '-')

96、; </p><p><b>  }</b></p><p>  CIIR = 0x01; // 設置秒值的增量產(chǎn)生1次中斷 </p><p>  CCR = 0x01;// 啟動RTC </p><p><b>  }</b></p><p

97、>  if(checkKEYCLR())//如果清除按鍵按下 則清屏</p><p><b>  {</b></p><p>  LCD_Erase();//清屏</p><p>  RTCInit();// RTC初始化 重新計時 </p><p><b>  }</b&

98、gt;</p><p>  DelayNS(10);</p><p><b>  } </b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  4.3子程序流程圖設計</p>

99、<p>  4.3.1 DS18B20程序流程圖設計</p><p>  開始,復位DS18B20,判斷復位是否成功,是就發(fā)送讀取命令、讀取溫度值,后結束,否就直接結束。如圖4.11所示。</p><p>  圖4.11 DS18B20</p><p>  DS18B20程序:</p><p>  void Read_18B20

100、(void) //讀取ds18b20</p><p><b>  {</b></p><p>  unsigned char temp1 = 0, temp2 = 0;</p><p>  int16 temperature = 0; </p><p>  if(Reset_18B20())//

101、DS18B20復位</p><p><b>  {</b></p><p>  DelayNS_us(7200);</p><p>  Writebyte_18B20(0xcc);//跳過序列號脈沖</p><p>  DelayNS_us(7200);</p><p>  Writeb

102、yte_18B20(0x44);//轉換命令</p><p>  DelayNS_us(8000);//延時800ms</p><p>  if(Reset_18B20())</p><p><b>  {</b></p><p>  DelayNS_us(8000);</p><

103、;p>  Writebyte_18B20(0xcc);//跳過ROM</p><p>  DelayNS_us(8000);</p><p>  Writebyte_18B20(0xbe); //發(fā)送讀取命令</p><p>  temp1 = Readbyte_18B20();//讀取低八位數(shù)據(jù)</p><p&

104、gt;  DelayNS_us(720);</p><p>  temp2 = Readbyte_18B20();//讀取高八位數(shù)據(jù)</p><p>  Reset_18B20();//DS18B20復位</p><p>  if(temp2 & 0xf8)</p><p><b>  {</b&

105、gt;</p><p>  temperature = ((temp2 << 8) | temp1);</p><p>  temperature = ((~temperature) + 1);</p><p>  ftemperature = temperature * (-0.0625);</p><p><b> 

106、 }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  temperature = ((temp2 << 8) | temp1);</p><p>  ftemperature = (fp64)(temperat

107、ure * 0.0625);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b> 

108、 ;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.3.2LCD12864程序流程圖設計</p><p>  開始,確定LCD的寫入位

109、置,發(fā)送命令到地址,判斷是否有字符需要發(fā)送,是則發(fā)送字符到地址,結束,否則直接結束。如圖4.12所示。</p><p>  圖4.12 LCD12864流程圖</p><p>  LCD12864程序:</p><p>  void LCD_Disp_NUM(uint8 x,uint8 y,uint32 Num)</p><p><b&

110、gt;  {</b></p><p>  int i,j,k,m;</p><p>  if(x==1) LCD_Serial_Send(0x80+y,1);</p><p>  else if(x==2) LCD_Serial_Send(0x90+y,1);</p><p>  else if(x==3) LCD_Seria

111、l_Send(0x88+y,1);</p><p>  else if(x==4) LCD_Serial_Send(0x98+y,1);</p><p>  i = (int)Num/1000;</p><p>  Num %= 1000;</p><p>  j = (int)Num/100;</p><p>  N

112、um %= 100;</p><p>  k = (int)Num/10;</p><p>  m = (int)Num%10;</p><p><b>  if(i==0)</b></p><p><b>  {</b></p><p><b>  if(j==0

113、)</b></p><p><b>  {</b></p><p>  if(k==0) LCD_Serial_Send(m+0x30,0);</p><p><b>  else </b></p><p><b>  {</b></p><p&

114、gt;  LCD_Serial_Send(k+0x30,0);</p><p>  LCD_Serial_Send(m+0x30,0);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p&g

115、t;<p><b>  {</b></p><p>  LCD_Serial_Send(j+0x30,0);</p><p>  LCD_Serial_Send(k+0x30,0);</p><p>  LCD_Serial_Send(m+0x30,0);</p><p><b>  }</

116、b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  LCD_Serial_Send(i+0x30,0);</p><p>  LCD_Serial_

117、Send(j+0x30,0);</p><p>  LCD_Serial_Send(k+0x30,0);</p><p>  LCD_Serial_Send(m+0x30,0);</p><p><b>  }</b></p><p>  LCD_Serial_Send(0x6d,1);</p><p

118、>  LCD_Serial_Send(0x56,1);</p><p><b>  }</b></p><p>  4.3.3KEY程序流程圖設計</p><p>  按下KEY鍵時禁止時間計數(shù),判斷是否KEY1按下,按下則對秒加1,否則判斷KEY2是否按下,按下則對分加1,否則判斷是否KEY3按下,是則對時進行加1同理,分別對年月日進行

119、判定。如圖4.13所示。</p><p>  圖4.13 KEY按鍵流程圖</p><p><b>  按鍵程序:</b></p><p>  void keyInit(void)</p><p><b>  {</b></p><p>  PINSEL0 |= (PINSE

120、L0 & ~(0x03<< 28)) | (0x00 << 28);//KEY</p><p>  PINSEL0 |= (PINSEL0 & ~(0x03<< 30)) | (0x00 << 30);//KEY1</p><p>  PINSEL0 |= (PINSEL0 & ~(0x03<< 3

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論