基于ARM7與DS18B20的數字溫度計的設計_第1頁
基于ARM7與DS18B20的數字溫度計的設計_第2頁
基于ARM7與DS18B20的數字溫度計的設計_第3頁
基于ARM7與DS18B20的數字溫度計的設計_第4頁
基于ARM7與DS18B20的數字溫度計的設計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 東北林業(yè)大學課程設計 東北林業(yè)大學綜合電子課程設計總 結 報 告設計項目:基于ARM7與DS18B20的數字溫度計的設計項目完成人:指導教師:學 院:信息與計算機工程學院專 業(yè):電子信息工程2008級3班 2011年7月7日綜合電子課程設計任務書學生姓名學號專業(yè)(班級)08級電信3班同組成員設計項目基于ARM7與DS18B20的數字溫度計的設計設計內容本設計利用DS18B20智能溫度傳感器、ARM7 LPC2131嵌入式系統(tǒng)、MS12864LCD液晶屏,設計一個數字溫度采集系統(tǒng)。人機接口電路的設計:控制系統(tǒng)采用ARM7 LPC2131,鍵盤采用獨立按鍵,顯示器采用MS12864液晶屏,溫度

2、超限報警采用LED。主要技術指標和要求1. 測量溫度范圍:50150;2. 精度:±0。5;3. 線性度:±0。3;4. 超限報警功能;5. 具有溫度和時間顯示功能;6. 工作電壓:總線供電。設計所用儀器設備1 ARM7 LPC2138小系統(tǒng);2 高精度溫度計;3 數字萬用表;4 示波器。工作計劃12011年6月22日:下達課程設計任務書;22011年6月23日:撰寫開題報告;32011年6月25日:開題答辯PPT;42011年6月26日 6月27日:硬件分析與設計、軟件結構化設計;52011年6月28日 7月9日:電路焊接與組裝、軟件結構化編程、單元調試、系統(tǒng)聯調、撰寫課

3、程設計總結報告;62011年7月10日: 課程設計結題驗收,提交數字溫度計系統(tǒng)一套、總結報告一份.參考資料溫度傳感器DS18B20芯片資料液晶屏MS12864R中文資料嵌入式ARM7 LPC2131開發(fā)板系統(tǒng)原理指導教師簽子系主任簽字數字溫度計的設計摘 要本系統(tǒng)用ARM7 LPC2131、溫度傳感器DS18B20、液晶屏12864、LED等組成,系統(tǒng)可實現實時顯示當前室內溫度功能.系統(tǒng)除基本數字溫度計功能外,還具有顯示當前時間和日期、溫度超限報警、設置時間和日期初值功能.在設計中我們應用ARM7開發(fā)板。ARM7開發(fā)板具有豐富的硬件資源。本設計采用LPC2131控制可編程芯片DS18B20實現對

4、溫度的采集。利用LPC213內部時鐘資源采集時間和日期。溫度、時間和日期通過液晶屏12864顯示,溫度超限報警通過LED閃爍提示。本文詳細介紹了如何實現對DS18B20編程采集溫度功能,以及如何采集ARM7 LPC2131內部時鐘資源,并實現鍵盤輸入修改日期時間、溫度超限報警等功能.關鍵詞:LPC2131;DS18B20;12864;溫度超限報警;28目 錄1 緒論21。1 引言.21.2 系統(tǒng)方案設計31.3方案論證32系統(tǒng)主要器件選型與依據42。1EasyARM2131開發(fā)板.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。42。2溫度傳感

5、器DS18B20.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。52。3MS12864R液晶屏簡介。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.63系統(tǒng)的硬件設計93。1ARM7開發(fā)板硬件設計。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。93。2LCD液晶屏顯示設計。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。93。3DS18B20溫度傳感器的設計。.。.。. 。.。.。.。.。.。.。.。.。.。.。.。.。.。10

6、4 系統(tǒng)的軟件設計114。1系統(tǒng)主流程圖114.2溫度傳感器功能模塊124.3液晶顯示功能模塊125 總結13參考文獻附錄A數字溫度計設計1緒論1。1引言近年來隨著科技的飛速發(fā)展,嵌入式的應用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術日益更新。在實時檢測和自動控制的嵌入式應用系統(tǒng)中,嵌入式往往作為一個核心部件來使用,僅嵌入式方面知識是不夠的,還應根據具體硬件結構軟硬件結合,加以完善。溫度是一種最基本的環(huán)境參數,人們生活與環(huán)境溫度息息相關,在工業(yè)生產過程中需要實時測量溫度,在工業(yè)生產中也離不開溫度的測量,因此研究溫度的測量方法和控制具有重要的意義。DS18B20是美國DALLAS半導體公司繼DS18

7、20之后最新推出的一種改進型智能溫度傳感器,通過此次項目設計,可以在原有的理論基礎上,更加深入的了解傳感器的工作原理特別是DS18B20溫度傳感器的工作原理,同時提高我們的實踐動手能力以及邏輯思維能力,特別是拓寬了對ARM控制器的使用視野。數字溫度計的控制方式很多.本系統(tǒng)采用LPC2000系列ARM芯片和可編程串行I/O接口芯片DS18B20為中心器件來設計數字溫度計,實現了設計一個數字溫度采集系統(tǒng),利用LCD液晶屏顯示當前溫度、時間和日期,并具有溫度超限報警功能1。2 系統(tǒng)方案設計 利用控制芯片、溫度傳感器、LCD液晶屏、時鐘資源、LED等分別實現:(1)實時顯示當前室內溫度(2)顯示年、月

8、、日、星期、時、分、秒;(3)能夠通過鍵盤輸入日期和時間的初值;(4)溫度超限報警;圖11為設計方案總體框圖溫度傳感器顯示ARM7LPC2131報警模塊按鍵圖11設計方案總體框圖系統(tǒng)初始化后,LCD上顯示當前室內溫度 ,同時LCD上顯示時間和日期,通過功能鍵能實現日期和時間的初值設定,如果溫度超過預先設定的溫度值,八個LED燈會閃爍提示溫度超限.1.3方案論證(1)顯示模塊方案一:使用LCD液晶屏12864作為時間日期顯示,LCD 液晶顯示器的構造是在兩片平行的玻璃當中放置液態(tài)的晶體,兩片玻璃中間有許多垂直和水平的細小電線,透過通電與否來控制桿狀水晶分子改變方向,將光線折射出來產生畫面.顯示清

9、晰,實現功能全。方案二:使用8為數碼管作為顯示,通過芯片HD7279控制數碼管,可實現時間和日期還有當前溫度顯示,缺點是數碼管顯示數字,顯示不靈活多變。由于LCD可同時顯示溫度和時間,顯示清晰,實現功能全。故選用方案一LCD12864作為顯示模塊.(2) 溫度傳感器DS18B20數字溫度傳感器,該產品采用美國DALLAS公司生產的 DS18B20可組網數字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數字測溫和控制領域。由于DS18B20性能已經夠好,控制起來也比較方便,故不需要對比,直接選用DS18B20作為溫度傳感器(3) 時鐘電路模塊方案一:

10、DS1302一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2。5V5。5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數據。DS1302內部有一個31×8的用于臨時性存放數據的RAM寄存器.方案二:ARM7LPC2131具有豐富的硬件資源,直接編程即可使用內部時鐘資源由于使用DS1302還得外接電路而且編程比較麻煩,故選用ARM7內部時鐘資源(4)報警電路報警電路采用8只LED,控制方便、準確.2 系統(tǒng)主要器件選型及依據2.1EasyARM2131開發(fā)板EasyARM21

11、31開發(fā)板是廣州周立功公司設計的EasyARM系列開發(fā)套件之一,采用了PHILIPS公司基于ARM7TDMI-S核、單電源供電、LQFP64封裝的LPC2131,具有JTAG仿真調試、ISP編程等功能。開發(fā)板上提供了一些鍵盤、LED、蜂鳴器等常用功能部件,還具有RS232接口電路、I2C存儲器電路。另外,用戶也可以更換兼容的CPU進行仿真調試,如LPC2132、LPC2138、LPC2142等。靈活的跳線組合(開發(fā)板內使用的所有I/O均可斷開連接),還有用戶I/O接口,極大地方便了用戶進行32位ARM嵌入式系統(tǒng)的開發(fā)實驗.EasyARM2131 實驗板功能特點:完全自主設計的軟硬件、擁有自主版

12、權的 JTAG 仿真技術;*支持 ADS1。2 集成開發(fā)環(huán)境及其 PHILIPS 所有型號 ARM 微控制器的仿真與開發(fā);*采用“主板CPU PACK 適配器SD 卡適配器(標準配置)多種可選配置適配器"的形式構成 EasyARM2131 開發(fā)套件,標準配置的 CPU PACK 主芯片為LPC2131FBD;板上的功能部件與 CPU 之間,可以使用跳線器選擇連接;*全面支持 9 種型號的 64 PIN 小管腳 ARM7 微控制器:LPC213x(LPC2131/2132/2134/2136/2138)內置 USB 接口的 LPC214x(LPC2142/2144/2146/2148)

13、*多種免費商業(yè)化軟件包及其詳細的開發(fā)文檔: 移植C/OSII到ARM7 軟件包 數據隊列軟件包串口驅動軟件包 MODEM接口軟件包 SPI總線軟件包* I2C總線軟件包 ZLG/FS V1。0 版本文件管理系統(tǒng)軟件包 ZLG/GUI圖形用戶界面軟件包 ZLG/SD卡讀寫軟件包* ZLG/USB固件程序及其驅動程序軟件包多種可選配置適配器:各種型號的 CPU PACK,用戶可按需求和喜好配置主 ARM 芯片MG12864 點陣圖型液晶模塊*所有 I/O 口全部引出,方便用戶連接外部電路的開發(fā)與使用;*可進行 GPIO 的控制實驗,如鍵盤輸入、蜂鳴器控制、模擬 SPI 等; 6 個獨立按鍵(可用于

14、外部中斷、定時器捕獲輸入),8 個 LED 指示燈;具有 RS232 轉換電路,可與上位機進行通訊,完成 UART 通訊實驗;可以與標準串行 modem 直接接口,方便遠程通訊;*具有I2C接口和SPI/SSP接口輸出;提供基于 PC 的人機界面,方便調試實時時鐘、串口通信等功能;可進行外部中斷實驗,學習向量中斷控制器(VIC);*定時器控制實驗,如定時控制 LED、定時器捕獲等;使用板內的CAT1025(內含復位功能),完成I2C總線的實驗;使用 74HC595 芯片,實現 SPI 接口數據發(fā)送、接收實驗; A/D 轉換實驗;DAC 轉換實驗(更換 CPU 為 LPC2132 及以上);實時

15、時鐘控制實驗;* WDT 及低功耗控制實驗;* 54 個基礎實驗及其大量的中間件軟件包,完整地驗證了幾乎所有的硬件功能資源;詳細的配套資料(深入淺出 ARM7LPC213x/214x(上/下冊),北航出版社,其中上冊為標準配置)。2。2溫度傳感器DS18B20DS18B20數字溫度計是DALLAS公司生產的1Wire,即單總線器件,具有線路簡單,體積小的特點.因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。DS18B20產品的特點(1)、只要求一個端口即可實現通信。(2)、在DS18B20中的每個器件上都有獨一無二的序列號。(3)、實際應用中不需要

16、外部任何元器件即可實現測溫。(4)、測量溫度范圍在55。C到125。C之間。(5)、數字溫度計的分辨率用戶可以從9位到12位選擇.(6)、內部有溫度上、下限告警設置。 DS18B20的引腳介紹TO92封裝的DS18B20的引腳排列見圖1,其引腳功能描述見表1。DS18B20的使用方法由于DS18B20采用的是1Wire總線協議方式,即在一根數據線實現數據的雙向傳輸,而對AT89S51單片機來說,硬件上并不支持單總線協議,因此,我們必須采用軟件的方法來模擬單總線的協議時序來完成對DS18B20芯片的訪問。由于DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求.DS1

17、8B20有嚴格的通信協議來保證各位數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數據的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數據,在進行寫命令后,主機需啟動讀時序完成數據接收.數據和命令的傳輸都是低位在先。 DS18B20的復位時序DS18B20的讀時序對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程.對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內就得釋放單總線,以讓DS18B20把數據傳輸到單總線上.DS18B20在完成一個讀時序過程,至少需要60

18、us才能完成.DS18B20的寫時序對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。對于DS18B20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內就得釋放單總線。2.3MS12864R液晶屏簡介MS12864R漢字圖形點陣液晶顯示模塊,可顯示漢字及圖形,內置8192個中文漢字(16X16點陣)、128個字符(8X16點陣)及64X256點陣顯示RAM(GDRAM)。主要技術參數和顯示特性:電源:VDD 3.3V+5V(內

19、置升壓電路,無需負壓);顯示內容:128列× 64行顯示顏色:黃綠顯示角度:6:00鐘直視LCD類型:STN與MCU接口:8位或4位并行/3位串行配置LED背光多種軟件功能:光標顯示、畫面移位、自定義字符、睡眠模式等模塊引腳說明MS128X64R引腳說明引腳號引腳名稱方向功能說明1VSS-模塊的電源地2VDD模塊的電源正端3V0LCD驅動電壓輸入端4RS(CS)H/L并行的指令/數據選擇信號;串行的片選信號5R/W(SID)H/L并行的讀寫選擇信號;串行的數據口6E(CLK)H/L并行的使能信號;串行的同步時鐘7DB0H/L數據08DB1H/L數據19DB2H/L數據210DB3H/

20、L數據311DB4H/L數據412DB5H/L數據513DB6H/L數據614DB7H/L數據715PSBH/L并/串行接口選擇:H并行;L-串行16NC空腳17/RETH/L復位 低電平有效18VOUT19LED_K背光源負極(LEDOV)20LED_A-背光源正極(LED+5V)邏輯工作電壓(VDD):4.55。5V電源地(GND):0V工作溫度(Ta):060(常溫) / 2075(寬溫)接口時序模塊有并行和串行兩種連接方法(時序如下):8位并行連接時序圖MPU寫資料到模塊MPU從模塊讀出資料串行連接時序圖串行數據傳送共分三個字節(jié)完成:第一字節(jié):串口控制格式 11111ABC A為數據傳

21、送方向控制:H表示數據從LCD到MCU,L表示數據從MCU到LCD B為數據類型選擇:H表示數據是顯示數據,L表示數據是控制指令 C固定為0第二字節(jié):(并行)8位數據的高4位格式 DDDD0000第三字節(jié):(并行)8位數據的低4位格式 0000DDDD串行接口時序參數:(測試條件:T=25 VDD=4。5V)3 硬件設計3。1 ARM7開發(fā)板硬件設計系統(tǒng)原理圖設計如圖3-1所示,ARM7 LPC213系統(tǒng)實現如下功能:(1)控制溫度傳感器DS18B20讀取當前溫度值;(2)控制ARM7內部時鐘資源讀取時間和日期;(3)控制LCD液晶屏顯示當前溫度、時間和日期;(4)控制LED溫度超限報警。 圖

22、31 系統(tǒng)原理圖3。2 LCD液晶屏顯示設計:LCD液晶屏顯示電路如圖32所示.該液晶可實現顯示當前年、月、日、周、時、分秒和溫度值,具體控制和實現方法如下:(1)ARM7的P0。0P0.7口連接液晶屏的DBO-DB7,控制對液晶屏并行數據讀和寫;(2)ARM7的P0.8口連接液晶屏的RS口,控制并行的指令/數據選擇信號;(3)ARM7的P0。9口連接液晶屏的R/W口,控制并行的讀寫選擇信號;(4)ARM7的P0.10口連接液晶屏的EN口,控制并行的使能信號;;(5)ARM7的P0。11口連接液晶屏的PSB口,控制并/串行接口選擇:H并行;L串行;(6)ARM7的P0。12口連接液晶屏的RET

23、口,實現對液晶屏的復位,低電平有效; 圖32LCD液晶屏電路圖3。3 DS18B20溫度傳感器的設計電路如圖3-3所示,該溫度傳感器電路可實現對溫度傳感器DS18B20數據的讀寫,具體控制方法如下:(1) ARM7的P0。30口連接DS18B20的DQ口,控制串行數據的讀和寫;(2) DS18B20 的VDD連接到ARM7開發(fā)板的VDD上;(3) DS18B20 的GND連接到ARM7開發(fā)板的GND上;圖33溫度傳感器電路4 系統(tǒng)的軟件設計4。1系統(tǒng)主流程圖圖41為系統(tǒng)主流程圖,主流程圖具體介紹如下:(1)系統(tǒng)初始化包括對DS18B20進行初始化、設定GPIO、RTC初始化、液晶屏初始化;(2

24、)初始化之后顯示當前室內溫度同時顯示日期和時間;(3)與此同時進行按鍵判斷,如果有按鍵繼續(xù)判斷是什么按鍵,如果是修改時間按鍵那么修改時間;如果是修改日期按鍵那么修改日期。如沒有按鍵按下,那么判斷室內溫度是否超過預先設定值,如果超過驅動LED閃爍報警.開始系統(tǒng)初始化顯示時間、日期、溫度有按鍵?NYNY修改年?修改年值NY修改月?修改月值NY修改日?修改日值NY修改周?修改周值NY修改時?修改時值NY修改分?修改分值溫度超過限?YNLED閃爍報警圖4-1 系統(tǒng)主流程圖4.2溫度傳感器功能模塊圖4-2為溫度傳感器功能模塊流程圖;開始初始化溫度傳感器向溫度傳感器寫指令讀取溫度傳感器數據數據轉化為溫度顯

25、示結束圖4-2溫度傳感器功能模塊流程圖4.3液晶顯示功能模塊圖4-3為液晶顯示功能模塊流程圖;開始LCD初始化寫命令到LCD寫數據到LCD顯示圖43 液晶顯示功能模塊流程圖5總結本系統(tǒng)利用控制芯片、溫度傳感器、LCD液晶屏、LED等分別實現:(1)實時顯示當前室內溫度(2)顯示年、月、日、星期、時、分、秒;(3)能夠通過鍵盤輸入日期和時間的初值;(4)溫度超限報警;系統(tǒng)設計簡便、實用性強、操作簡單、程序設計簡便. 系統(tǒng)不足:時間和日期初值設定中利用按鍵較多,此外還沒有充分考慮到溫度超限報警的多變性,溫度報警上限不可調節(jié),只能預先程序中設定超限報警溫度值.一周的綜合電子工藝課程設計結束了,可能在

26、別人看來,這或許只是一個小的設計,可是它給于我的卻不僅僅是這樣,認真的做課程設計,運用ARM做一個系統(tǒng)的東西,我從心里給予了足夠的重視。剛開始做總是出問題,多次重新分析,從細節(jié)著手尋找問題,最后找到了.發(fā)現自己想象的太多、太復雜,實際上只需要很簡單的一種方法就可以的,問題解決了,也給我很多收獲。我覺得自己的方法不可行,關鍵的原因在于自己對ARM的工作原理沒有透徹的理解,所以就不能很好的理解老師的設計要求,結果就造成了很多的彎路,找不到一種合理的途徑去解決問題。希望以后有機會可以多做一些這樣的設計,增強自己的設計意識,加深所學的知識。參考文獻1 郁有文傳.感器原理及工程應用(第三版)。西安電子科

27、技出版社,2008.72 閻石。數字電子技術基礎(第四版)。高等教育出版社,1998。113 周立功.ARM嵌入式系統(tǒng)基礎教程(第二版)。北京航空航天大學出版社,2008。94 汪建軍?;诜瞧胶怆姌虻碾娮钄底譁囟扔嬙O計J.浙江萬里學院學報,20095 老虎工作室。電路設計與制板protel99se典型實例。人民郵電出版社6 宋文緒、楊帆。傳感器與檢測技術M。高等教育出版社,2004:附錄A/* * 描述: (1)此程序所有延時采用定時器做(2)開發(fā)板上的P0。30口連接溫度傳感器DQ口線(3)開發(fā)板上P0。0-P0。7口連接液晶屏的DBO-DB7,其他液晶口線連接詳見程序中宏定義(4)如需液

28、晶顯示的更清楚,需在液晶屏上加10K電位器,調節(jié)液晶屏輸入參考電壓 */#include <LPC213X。H#define eq 1<30#define uint8 unsigned char define Fpclk 11059200define key1 1<<16define key2 117define key3 1<18#define key4 119define key5 120define key6 121int nn=0,yy=0,rr=0,zz=0,ss=0,ff=0,mm=0;/*定義與LCD相關的宏*/#define LCD_DATA 0x

29、FF define LCD_DI 1<8 /與p0。8對應 #define LCD_RW 19 /與p0。9對應define LCD_EN 1<10 /與p0.10對應。#define LCD_PSB 1<<11 /與p0。11對應/電路直接拉高define LCD_RST 112 /與p0。12對應/上電自動復位,一般也可以不接define clear_screen 0x01#define reset_address 0x02#define set_point 0x06 / 0000_0110define display_set 0x0c /顯示設定define cu

30、rsor_shift_control 0x1c /0001_1100define function_set 0x30 /功能設定 基本指令集define function_set_ext 0x36 /功能設定 擴充指令集 繪圖開/define set_CGRAM_ADD define set_DDRAM_ADD 0x80/define write_data_intenalRAM unsigned char digit10="0123456789”; /定義字符數組顯示數字void delay1u(unsigned long t) T1PR = 0x00000000; /Load pr

31、escaler T1TCR = 0x00000003; /Reset counter and prescaler T1MCR = 0x00000003; /On match reset the counter and generate an interrupt T1MR0 = t*0x0f; /Set the cycle timeT1TCR = 0x00000001; /enable timer while(T1IR 0x01) = 0); T1IR = 0x01; T1TCR = 0x00000000;/*/*/void LCD_DATA_input() IO0DIR = IO0DIR (L

32、CD_DATA); /把p1。16p1.23設定為輸入/*/void LCD_DATA_output() IO0DIR = IO0DIR LCD_DATA; /設定p0。0p0。7為輸出/*/void CheckState( )/狀態(tài)檢查,LCD是否忙? delay1u(200);/while(read_instruct());/*/* 函數名稱:GPIO_Init() 函數功能:初始化IO端口,包含一個uart0,三個按鍵輸入,以及幾個普通的輸入輸出端口.* 入口參數:無* 出口參數:無 */void GPIO_init() PINSEL0 = 0; IO0DIR = 0xFF8; /* 函

33、數名稱: w_data(unsigned char data_Lcm) 函數功能:給LCD發(fā)送數據或者命令。* 入口參數:data_Lcm 出口參數:無*/void W_data(uint8 data_Lcm)CheckState();LCD_DATA_output(); IO0SET = LCD_DI;IO0CLR = LCD_RW;IO0CLR = 0xFF;IO0SET = data_Lcm;IO0SET = LCD_EN;IO0CLR = LCD_EN;/* 函數名稱:* 函數功能: 入口參數:* 出口參數: */void W_instruct(uint8 data_Lcm)Check

34、State();LCD_DATA_output(); IO0CLR = LCD_DI;IO0CLR = LCD_RW;IO0CLR = 0xFF;IO0SET = data_Lcm;IO0SET = LCD_EN;IO0CLR = LCD_EN;/* 函數名稱LCD_Init() 函數功能:初始化lcd顯示屏 入口參數:無* 出口參數:無 */void init_lcd(void)IO0SET = LCD_RST;IO0CLR = LCD_RST;IO0SET = LCD_RST;IO0SET = LCD_PSB;IO0SET = LCD_PSB;W_instruct(function_set

35、);W_instruct(display_set);W_instruct(clear_screen);W_instruct(reset_address);W_instruct(set_DDRAM_ADD);/* 函數名稱:* 函數功能: 寫漢字到 LCDx_add 顯示 RAM 的地址dat1/dat2 顯示漢字編碼指定的位置* 入口參數: 出口參數: */void display(uint8 x_add,uint8 dat1,uint8 dat2) W_instruct(x_add); /1xxx,xxxx 到地址計數器 ACW_data(dat1);W_data(dat2);/*/*/vo

36、id write(unsigned char date) unsigned char i=0; for (i=8; i0; i) IO0DIR = eq; /改回輸出IO0SET = eq;delay1u(2); IO0CLR = eq; if(date&0x01) IO0SET |= eq; /釋放總線 delay1u(80); else IO0CLR = eq; delay1u(80); delay1u(30); IO0SET = eq; delay1u(3); date>=1; delay1u(6);unsigned char read() unsigned char i=

37、0; unsigned char date = 0; for (i=8;i0;i) date=1; IO0DIR |= eq; /改回輸出IO0SET = eq;delay1u(2); IO0CLR = eq; / 給脈沖信號 delay1u(2);IO0SET = eq; delay1u(13); IO0DIR = IO0DIR0xBFFFFFFF; / 拉高總線輸入 delay1u(12); if(IO0PINeq) date =0x80; delay1u(3); return date; unsigned char innit() unsigned char num; IO0DIR =

38、eq; /稍做延時 IO0CLR = eq; /將DQ拉低 delay1u(600); /精確延時大于 480us 480 IO0SET = eq; delay1u(30); IO0DIR &= 0xBFFFFFFF; /拉高總線輸入delay1u(30); if(IO0PIN &eq) =0) num=0; else num=1; IO0SET = num; delay1u(200); /300return num; void zhun() innit(); write(0xCC); write(0x44); delay1u(900000); innit();write(0x

39、CC); write(0xBE);void display_temp1(unsigned char x) int i; unsigned char a,b,c; /j,k,l分別儲存溫度的百位、十位和個位 unsigned char k9 = ”溫度是:”;unsigned char l16=(”數字溫度計姚連"); W_instruct(0x88);for(i=0;i9;i+)W_data(ki); W_instruct(0x98); for(i=0;i16;i+) W_data(li); a=x/100; /取百位 b=(x%100)/10; /取十位 c=x10; /取個位 W

40、_instruct(0x8C); /寫顯示地址,將在第2行第7列開始顯示 W_data(digita); /將百位數字的字符常量寫入LCD W_data(digitb); /將十位數字的字符常量寫入LCD W_data(digitc); /將個位數字的字符常量寫入LCD delay1u(100); /延時1ms給硬件一點反應時間 void display_temp2(unsigned char x) unsigned char t =”; /寫顯示地址,將在第2行第11列開始顯示 W_data(.); W_data(digitx); /將小數部分的第一位數字字符常量寫入LCD W_instruct(0x8F); W_data(t0); W_data(t1); W_data(t2); delay1u(100); /延時1ms給硬件

溫馨提示

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

評論

0/150

提交評論