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

下載本文檔

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

文檔簡介

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

2、晶屏,溫度超限報警采用LED。1.2.3.4.5.6.1.2.3.4.測量溫度范圍:-50 C150C; 精度:± 0.5 C;線性度:± 0.3 C;超限報警功能;具有溫度和時間顯示功能; 工作電壓:總線供電。ARM7 LP C2138小系統(tǒng);高精度溫度計; 數(shù)字萬用表;示波器。1. 2011年6月2. 2011年6月3. 2011年6月4. 2011年6月22232526日:下達課程設計任務書;日:撰寫開題報告;日:開題答辯PPT;日6月27日:硬件分析與設計、軟件結構化設計;7月9日:電路焊接與組裝、軟件結構化編程、單元調(diào)試、系5. 2011年6月28日統(tǒng)聯(lián)調(diào)、撰寫課

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

4、集。利用 LP C213內(nèi)部時鐘資源采集時 間和日期。溫度、時間和日期通過液晶屏12864顯示,溫度超限報警通過LED閃爍提示。本文詳細介紹了如何實現(xiàn)對 DS18B2(編程采集溫度功能,以及如何采集ARMHPC2131 內(nèi)部時鐘資源,并實現(xiàn)鍵盤輸入修改日期時間、溫度超限報警等功能。關鍵詞:LPC2131 DS18B20 12864;溫度超限報警;1緒論1.1引言1.2系統(tǒng)方案設計1.3方案論證2系統(tǒng)主要器件選型與依據(jù).2.1 EasyARM2131 開發(fā)板2.2溫度傳感器DS18B202.3 MS12864R 液晶屏簡介.3系統(tǒng)的硬件設計3.1 ARM7開發(fā)板硬件設計.3.2 LCD液晶屏顯示

5、設計3.3 DS18B20溫度傳感器的設計4系統(tǒng)的軟件設計4.1系統(tǒng)主流程圖4.2溫度傳感器功能模塊 4.3液晶顯示功能模塊 5總結參考文獻附錄A.2233.4.4.991011.11121213.數(shù)字溫度計設計1緒論1.1弓i=r近年來隨著科技的飛速發(fā)展,嵌入式的應用正在不斷深入,同時帶動傳統(tǒng)控制檢測技 術日益更新。在實時檢測和自動控制的嵌入式應用系統(tǒng)中,嵌入式往往作為一個核心部件 來使用,僅嵌入式方面知識是不夠的,還應根據(jù)具體硬件結構軟硬件結合,加以完善。溫度是一種最基本的環(huán)境參數(shù),人們生活與環(huán)境溫度息息相關,在工業(yè)生產(chǎn)過程中需 要實時測量溫度,在工業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度

6、的測量方法和控制具 有重要的意義。DS18B20是美國DALLAS半導體公司繼DS1820之后最新推出的一種改進 型智能溫度傳感器,通過此次項目設計,可以在原有的理論基礎上,更加深入的了解傳感 器的工作原理特別是DS18B20溫度傳感器的工作原理,同時提高我們的實踐動手能力以及 邏輯思維能力,特別是拓寬了對 ARM控制器的使用視野。數(shù)字溫度計的控制方式很多。本系統(tǒng)采用LPC2000系列ARM芯片和可編程串行I/O接口芯片DS18B20為中心器件來設計數(shù)字溫度計,實現(xiàn)了設計一個數(shù)字溫度采集系統(tǒng),利 用LCD液晶屏顯示當前溫度、時間和日期,并具有溫度超限報警功能1.2系統(tǒng)方案設計實時顯示當前室內(nèi)溫

7、度顯示年、月、日、星期、時、分、秒; 能夠通過鍵盤輸入日期和時間的初值; 溫度超限報警;利用控制芯片、溫度傳感器、LCD液晶屏、時鐘資源、LED等分別實現(xiàn):(1)(2)(3)(4)圖1-1為設計方案總體框圖按鍵溫度ARM7報警傳感器、模塊LP C2131V 7顯示圖1-1設計方案總體框圖系統(tǒng)初始化后,LCD上顯示當前室內(nèi)溫度,同時LCD上顯示時間和日期,通過功能鍵 能實現(xiàn)日期和時間的初值設定,如果溫度超過預先設定的溫度值,八個LED燈會閃爍提示溫度超限。1.3方案論證(1)顯示模塊方案一:使用LCD液晶屏12864作為時間日期顯示,LCD液晶顯示器的構造是在兩 片平行的玻璃當中放置液態(tài)的晶體,

8、兩片玻璃中間有許多垂直和水平的細小電線,透過通 電與否來控制桿狀水晶分子改變方向,將光線折射出來產(chǎn)生畫面。顯示清晰,實現(xiàn)功能全。方案二:使用8為數(shù)碼管作為顯示,通過芯片 HD7279控制數(shù)碼管,可實現(xiàn)時間和日 期還有當前溫度顯示,缺點是數(shù)碼管顯示數(shù)字,顯示不靈活多變。由于LCD可同時顯示溫度和時間,顯示清晰,實現(xiàn)功能全。故選用方案一LCD12864作為顯示模塊。(2) 溫度傳感器DS18B20數(shù)字溫度傳感器,該產(chǎn)品采用美國 DALLAS公司生產(chǎn)的 DS18B20可組 網(wǎng)數(shù)字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣, 適用于各種狹小空間設備數(shù)字測溫和控制領域。由于DS

9、18B20性能已經(jīng)夠好,控制起來也比較方便,故不需要對比,直接選用 DS18B20作為溫度傳感器(3) 時鐘電路模塊方案一:DS1302一種高性能、低功耗、帶RAM勺實時時鐘電路,它可以對年、月、日、 周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V5.5V。采用三線接口RAM數(shù)據(jù)。DS1302與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 內(nèi)部有一個31X8的用于臨時性存放數(shù)據(jù)的RAM寄存器。方案二:ARM7LPC2131具有豐富的硬件資源,直接編程即可使用內(nèi)部時鐘資源由于使用DS1302還得外接電路而且編程比較麻煩,故選用 ARM7內(nèi)部時鐘資源(4 )報警

10、電路 報警電路采用8只LED,控制方便、準確。2系統(tǒng)主要器件選型及依據(jù)2.1 EasyARM2131 開發(fā)板EasyARM2131開發(fā)板是廣州周立功公司設計的 EasyARM系列開發(fā)套件之一,采用LED蜂鳴器等常用功能部件,還具有P HILI PS公司基于ARM7TDMI-S核、單電源供電、LQF P64封裝的LP C2131具有JTAG仿真 調(diào)試、ISP編程等功能。開發(fā)板上提供了一些鍵盤、RS232接口電路、I 2C存儲器電路。另外,用戶也可以更換兼容的CPU進行仿真調(diào)試,如LPC2132LPC2138 LPC2142等。靈活的跳線組合(開發(fā)板內(nèi)使用的所有I/O均可斷開連接),還有用戶I/O

11、接口,極大地方便了用戶進行32位ARM嵌入式系統(tǒng)的開發(fā)實驗。EasyARM2131實驗板功能特點:微控制器的仿真與開發(fā); +多種可選配置適配器”CPU PACK 主芯片為*完全自主設計的軟硬件、擁有自主版權的JTAG仿真技術;*支持ADS1.2集成開發(fā)環(huán)境及其 PHILIPS所有型號ARM*采用“主板+ CPU PACK適配器+ SD卡適配器(標準配置)*的形式構成EasyARM2131開發(fā)套件,標準配置的LP C2131FBD;*板上的功能部件與 CPU之間,可以使用跳線器選擇連接;*全面支持9種型號的64 PIN小管腳ARM7微控制器:LPC213x (LPC2131/2132/2134/

12、2136/2138內(nèi)置 USB 接口的 LPC214x(LPC2142/2144/2146/2148)*多種免費商業(yè)化軟件包及其詳細的開發(fā)文檔:*移植卩C/OS II到ARM7軟件包*數(shù)據(jù)隊列軟件包*串口驅動軟件包* MODEM接口軟件包* SPI總線軟件包* I2C總線軟件包* ZLG/FS V1.0版本文件管理系統(tǒng)軟件包* ZLG/GUI圖形用戶界面軟件包* ZLG/SD卡讀寫軟件包* ZLG/USB固件程序及其驅動程序軟件包*多種可選配置適配器:心片各種型號的CPU PACK,用戶可按需求和喜好配置主 ARMMG12864點陣圖型液晶模塊*所有I/O 口全部引出,方便用戶連接外部電路的開

13、發(fā)與使用;SPI 等;*可進行GPIO的控制實驗,如鍵盤輸入、蜂鳴器控制、模擬* 6個獨立按鍵(可用于外部中斷、定時器捕獲輸入),8個LED指示燈;*具有RS232轉換電路,可與上位機進行通訊,完成UART通訊實驗;*可以與標準串行 modem直接接口,方便遠程通訊;*具有I2C接口和SPI/SSP接口輸出;*提供基于PC的人機界面,方便調(diào)試實時時鐘、串口通信等功能;*可進行外部中斷實驗,學習向量中斷控制器 (VIC);*定時器控制實驗,如定時控制LED、定時器捕獲等;*使用板內(nèi)的CAT1025 (內(nèi)含復位功能),完成I2C總線的實驗;*使用74HC595芯片,實現(xiàn)SPI接口數(shù)據(jù)發(fā)送、接收實驗

14、;* A/D轉換實驗;DAC轉換實驗(更換 CPU為LPC2132及以上);*實時時鐘控制實驗;* WDT及低功耗控制實驗;* 54個基礎實驗及其大量的中間件軟件包,完整地驗證了幾乎所有的硬件功能資源;*詳細的配套資料(深入淺出ARM7 LPC213X/214X(上/下冊),北航出版社,其 中上 冊為標準配置)。2.2溫度傳感器DS18B20DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡單, 體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很 多這樣的數(shù)字溫度計,十分方便。DS18B20產(chǎn)品的特點(1)、只要求一個端口即可實現(xiàn)

15、通信。(3) 、(4) 、(5) 、(6) 、(2)、在DS18B20中的每個器件上都有獨一無二的序列號。 實際應用中不需要外部任何元器件即可實現(xiàn)測溫。 測量溫度范圍在一55。C到+ 125。C之間。數(shù)字溫度計的分辨率用戶可以從 9位到12位選擇。 內(nèi)部有溫度上、下限告警設置。DS18B20的引腳介紹TO 92封裝的DS18B20的引腳排列見圖1,其引腳功能描述見表1。値詼圖1*1媲引血旋as述岸號引W功C赫屯1am3M數(shù)要嘰蟹密引丼囁總射口引也團!商ft帚淇3時as:的fl砒引臥爭工住于V生載醐T.歧別亟富.1DS18B20的使用方法由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一

16、根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸, 而對AT89S51單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法 來模擬單總線的協(xié)議時序來完成對 DS18B20芯片的訪問。由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要 求。DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾 種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線 器件作為從設備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求 單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的 傳輸都是低位在先

17、。DS18B20的復位時序25S |VD£:1SB2O 炭出50ubvro"S機賞出旦位脈_ 機按慎廚瑋卿時ra 購最小值! 43015ZiOus*最大值:9601315秒之內(nèi)就得釋放單總線,DS18B20在完成一個讀時序過程,至少需要 60usatrLr±叩DS18B20的讀時序對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。 對于DS18B20的讀時隙是從主機把單總線拉低之后,在 以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。 才能完成。DS18B20的寫時序對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。對于DS18B20寫0時序和寫1時序

18、的要求不同,當要寫0時序時,單總線要被拉低至 少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣10總線上的“0”平,當 要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。e.1 wiring2.3 MS12864R液晶屏簡介MS12864取字圖形點陣液晶顯示模塊,點陣)、128個字符(8X16點陣)及64X256點陣顯示RAM(GDRA) 主要技術參數(shù)和顯示特性:電源:VDD 3.3V+5V內(nèi)置升壓電路,無需負壓);顯示內(nèi)容:顯示顏色:顯示角度:LCD類型:128列X 64行6: 00鐘直視STN可顯示漢字及圖形,內(nèi)置8192個中文漢字(16X16與MCI接

19、口: 8位或4位并行/3位串行配置LED背光多種軟件功能:光標顯示、畫面移位、自定義字符、睡眠模式等 模塊引腳說明MS128X64R引腳說明引腳號引腳名稱方向功能說明1VSS-模塊的電源地2VDD-模塊的電源正端3V0-LCD驅動電壓輸入端4RS(CS)H/L并行的指令/數(shù)據(jù)選擇信號;串行的片選信號5R/W(SID)H/L并行的讀寫選擇信號;串行的數(shù)據(jù)口6E(CLK)H/L并行的使能信號;串行的同步時鐘7DB0H/L數(shù)據(jù)08DB1H/L數(shù)據(jù)19DB2H/L數(shù)據(jù)210DB3H/L數(shù)據(jù)311DB4H/L數(shù)據(jù)412DB5H/L數(shù)據(jù)513DB6H/L數(shù)據(jù)614DB7H/L數(shù)據(jù)715PSBH/L并/串行

20、接口選擇:H-并行;L-串行16NC空腳17/RETH/L復位低電平有效18VOUT19LED K-背光源負極(LED-OV20LED A-背光源正極(LED+5V邏輯工作電壓(VDD): 4.55.5V電源地(GND): 0V工作溫度(Ta) : 060r (常溫)/ -2075C(寬溫)接口時序模塊有并行和串行兩種連接方法(時序如下):8位并行連接時序圖MPU寫資料到模塊MPl從模塊讀出資料串行連接時序圖CS1234567 B 9 I'O 11 12 13 14 15 i,17 IS 迫 20 21 22 23 24串行數(shù)據(jù)傳送共分三個字節(jié)完成: 第一字節(jié):ABC第二字節(jié):第三字節(jié)

21、:scLKjrmjwnminwMJLynchr oni zing Bit stringdataJ_' Lower_* data r' byts >蝶2, byte>0 C 00 tD31E2lDlID01 0000SIDF""1""1""1""ilOO 0串口控制一格式 11111ABC為數(shù)據(jù)傳送方向控制:H表示數(shù)據(jù)從LCD到MCU L表示數(shù)據(jù)從MCI® LCD 為數(shù)據(jù)類型選擇:H表示數(shù)據(jù)是顯示數(shù)據(jù),L表示數(shù)據(jù)是控制指令 固定為0(并行)8位數(shù)據(jù)的高4位一格式DDDD0000(

22、并行)8位數(shù)據(jù)的低4位一格式0000DDDD串行接口時序參數(shù):(測試條件:T=25C VDD=4.5V)3硬件設計3.1 ARM7開發(fā)板硬件設計控制溫度傳感器DS18B20賣取當前溫度值; 控制ARM7內(nèi)部時鐘資源讀取時間和日期; 控制LCD液晶屏顯示當前溫度、時間和日期; 控制LED溫度超限報警。系統(tǒng)原理圖設計如圖3-1所示,ARM7 LPC21系統(tǒng)實現(xiàn)如下功能:(1)(2)(3)(4)EE ttiD*r »RST libb 4 r斤°!>C. F- BAIhjjrs-I" I . > >Ibl1: Elb:-bTTWFTrZJ-;':

23、u =- iUL-IWkl0. X irm.'7當"ZdI u I ,f iI W ' I *>II hii ati r L jBi汙3EV =R= !器.nT IV R'二A 卜f只,忙1f耕駕皐a yt5 上1*2迂 咗旱; c匚; u1 h llHta r卜 diTibiir kviII.Jjjii te F -R備jfta 診 iim ; 0 "q n I- MNa= 44-HTIUCT.二r Iina dotII III 體I IZ. TT可二 F g ;仕""=j 'E 節(jié)T=?=Wi-p n 聲i_b

24、1 d-f 廠:弋'll4_ u,£ r :111(1)(2)(3)(4)(5)(6)圖3-1系統(tǒng)原理圖3.2 LCD液晶屏顯示設計:LCD液晶屏顯示電路如圖3-2所示。該液晶可實現(xiàn)顯示當前年、月、日、周、時、分 秒和溫度值,具體控制和實現(xiàn)方法如下:ARM7的P0.0-P0.7 口連接液晶屏的DBO-DB7控制對液晶屏并行數(shù)據(jù)讀和寫;ARM7的P0.8 口連接液晶屏的RS口,控制并行的指令/數(shù)據(jù)選擇信號;ARM7的P0.9 口連接液晶屏的R/W 口,控制并行的讀寫選擇信號;ARM7的P0.10 口連接液晶屏的EN 口,控制并行的使能信號;ARM7的P0.11 口連接液晶屏的P

25、SB 口,控制并/串行接口選擇:H-并行;L-串行;ARM7的P0.12 口連接液晶屏的RET 口,實現(xiàn)對液晶屏的復位,低電平有效;to1In A陌CON 19E f 9 A.J9 CON9gl3 口alsg 一*or6聖PS -囹gsgTsg茗目-SBJS CONS圖3-2LCD液晶屏電路圖3.3 DS18B20溫度傳感器的設計電路如圖3-3所示,該溫度傳感器電路可實現(xiàn)對溫度傳感器 DS18B2(數(shù)據(jù)的讀寫,具體 控制方法如下:(1)ARM7的P0.30 口連接DS18B20勺DQ口,控制串行數(shù)據(jù)的讀和寫;(2)DS18B20 的 VDD連接至U ARMW發(fā)板的 VDD±(3)DS

26、18B20 的 GND連接至U ARMW發(fā)板的 GNDt;DS1SB20圖3-3 Q§【三>溫度傳感器電路4系統(tǒng)的軟件設計4.1系統(tǒng)主流程圖圖4-1為系統(tǒng)主流程圖,主流程圖具體介紹如下:(1)系統(tǒng)初始化包括對DS18B204行初始化、設定GPIO RTC初始化、液晶屏初始化;(2)初始化之后顯示當前室內(nèi)溫度同時顯示日期和時間;(3)與此同時進行按鍵判斷,如果有按鍵繼續(xù)判斷是什么按鍵,如果是修改時間按鍵 那么修改時間;如果是修改日期按鍵那么修改日期。如沒有按鍵按下,那么判斷室內(nèi)溫度 是否超過預先設定值,如果超過驅動 LED閃爍報警。開始系統(tǒng)初始化圖4-1系統(tǒng)主流程圖4.2溫度傳感

27、器功能模塊圖4-2為溫度傳感器功能模塊流程圖;(開始初始化溫度傳感器圖4-2溫度傳感器功能模塊流程圖4.3液晶顯示功能模塊圖4-3為液晶顯示功能模塊流程圖;開始II LCD初始化I圖4-3液晶顯示功能模塊流程圖5總結(1)(2)(3)(4)本系統(tǒng)利用控制芯片、溫度傳感器、LCD液晶屏、LED等分別實現(xiàn): 實時顯示當前室內(nèi)溫度顯示年、月、日、星期、時、分、秒; 能夠通過鍵盤輸入日期和時間的初值; 溫度超限報警;系統(tǒng)設計簡便、實用性強、操作簡單、程序設計簡便。系統(tǒng)不足:時間和日期初值設定中利用按鍵較多,此外還沒有充分考慮到溫度超限報 警的多變性,溫度報警上限不可調(diào)節(jié),只能預先程序中設定超限報警溫度

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

29、參考文獻郁有文傳.感器原理及工程應用(第三版).西安電子科技出版社,2008.7閻石.數(shù)字電子技術基礎(第四版).高等教育出版社,1998.11周立功.ARM嵌入式系統(tǒng)基礎教程(第二版).北京航空航天大學出版社,2008.9汪建軍.基于非平衡電橋的電阻數(shù)字溫度計設計 J.浙江萬里學院學報,2009老虎工作室.電路設計與制板Protel99se典型實例.人民郵電出版社宋文緒、楊帆.傳感器與檢測技術M.高等教育出版社,2004:附錄A/*( 1)此程序所有延時采用定時器做(2)開發(fā)板上的P0.30 口連接溫度傳感器DQ 口線(3)開發(fā)板上P0.0-P0.7 口連接液晶屏的DBO-DB7其他液晶口線

30、連接詳見程序中宏定義(4) 如需液晶顯示的更清楚,需在液晶屏上加10K電位器,調(diào)節(jié)液晶屏輸入?yún)⒖茧妷?/#in elude <LP C213X.H> #defi ne eq 1<<30#defi ne uint8un sig ned char#defi ne Fp clk 11059200#defi nekey1 1<<16#defi ne#defi ne#defi nekey2 1<<17key3 1<<18key4 1<<19#defi ne#defi nekey5 1<<20key6 1<<2

31、1/*int nn=0,y y=0,rr=0,zz=0,ss=0,ff=0,mm=0;定義與 LCD 相關的宏 *#defi ne LCD_DATA 0xFF#defi ne LCD_DI1<<8#defi ne LCD_RW #defi ne LCD_EN1<<91<<10#defi ne LCD_ PSB 1<<11#define LCD RST 1<<12與p0.8對應/與p0.9對應/與p0.10對應.與p0.11對應/電路直接拉高與P0.12對應/上電自動復位,一般也可以不接#defi ne#defi neclear_scr

32、ee n reset address0x010x02#defi ne#defi ne#defi neset_ point dis play_set cursor_shift-0x06 /0000_01100x0c 顯示設定#defi nefunction set#defi nefunction set ext.control 0x1c/0001_11000x30功能設定基本指令集0x36功能設定擴充指令集繪圖開/#defi neset CGRAM ADD#defi ne/#defi neset_DDRAM_ADD write_data_i nte nalRAM0x80定義字符數(shù)組顯示數(shù)字un

33、sig ned char digit10="0123456789"void delay1u (un sig ned long t)T1PR0x00000000;/Load p rescalerT1TCR0x00000003;T1MCR0x00000003;T1MR0t*0x0f;T1TCR0x00000001;/Reset coun ter and p rescaler/On match reset the coun ter and gen erate an in terru pt/Set the cycle time/en able timerwhile(T1IR &am

34、p; 0x01) = 0);T1IR = 0x01;T1TCR = 0x00000000;/*幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*/ /*幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*/ void LCD_DATA_i nput()IO0DIR = IO0DIR & (LCD_DA TA); /把 p1.16-p 1.23 設定為輸入 /*幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*

35、卄*/ void LCD_DATA_out put() IO0DIR = IO0DIR | LCD_DA TA; /設定 p0.0-p0.7 為輸出 /*幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*/void CheckState()II狀態(tài)檢查,LCD是否忙?delay1u(200);/while(read _in struct。);/* */*函數(shù)名稱:GPIO_ln it()*函數(shù)功能:初始化IO端口,包含一個uart0,三個按鍵輸入,以及幾個普通的輸入輸出端口*入口參數(shù):出口參數(shù):幵*卄*卄*卄*卄*卄*卄*卄*卄*卄

36、*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*/*void GPI O_i nit()PI NSEL0 = 0;IO0DIR = 0xFF<<8;*/*函數(shù)名稱:w_data( un sig ned char data_Lcm)*函數(shù)功能:給LCD發(fā)送數(shù)據(jù)或者命令*入口參數(shù):data_Lcm*出口參數(shù):幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*/voidW_data(ui nt8 data_Lcm)CheckStateO; LCD_DATA_out put(); lOOSET = LC

37、D_DI; IO0CLR = LCD_RW; IO0CLR = 0xFF;IO0SET = data_Lcm;IO0SET = LCD_EN;IO0CLR = LCD_EN;/*函數(shù)名稱:*函數(shù)功能:*入口參數(shù):*出口參數(shù):幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*void*/W_i nstruct(ui nt8 data_Lcm)CheckState(); LCD_DATA_out put();IO0CLR = LCD_DI;IO0CLR = LCD_RW;IO0CLR = 0xFF;IO0SET = data_Lcm;I

38、O0SET = LCD_EN;IO0CLR = LCD_EN;/*函數(shù)名稱函數(shù)功能:入口參數(shù):出口參數(shù):LCD_lnit()初始化led顯示屏W_i nstruct(x_add); /1xxx,xxxx到地址計數(shù)器 AC幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*/ void ini t_lcd(void)lOOSET = LCD_RST;IO0CLR = LCD_RST;IO0SET = LCD_RST;IO0SET = LCD_ PSB;IO0SET = LCD_ PSB;W_i nstruct(fu nctio n_se

39、t);W_in struct(dis play_set);W_in struct(clear_scree n);W_in struct(reset_address);W_in struct(set_DDRAM_ADD);/*函數(shù)名稱:*入口參數(shù):*出口參數(shù):函數(shù)功能: 寫漢字到LCDx add顯示RAM的地址dat1/dat2顯示漢字編碼指定的位置幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*/*void dis play(ui nt8 x_add,ui nt8 dat1,ui nt8 dat2) W_data(dat1);W_

40、data(dat2);*/ /*/*/ void write( un sig ned char date) un sig ned char i=0;for (i=8; i>0; i-)改回輸出II釋放總線lOODIR |= eq; lOOSET |= eq; delay1u(2); IO0CLR = eq; if(date&0x01) IO0SET |= eq; delay1u(80);elseIO0CLR = eq; delay1u(80); delay1u(30); IO0SET |= eq; delay1u (3);date>>=1;delay1u(6);un

41、sig ned char read()un sig ned char i=0; un sig ned char date = 0; for (i=8;i>0;i-)date>>=1;IO0DIR |= eq;IO0SET |= eq; delay1u(2);IO0CLR = eq; delay1u(2);IO0SET |= eq;delay1u(13);IO0DIR = IO0DIR&0XBFFFFFFF; / 拉高總線輸入 delay1u(12);if(IO0 PIN &eq)date |=0x80;delay1u (3);return date;/改回輸出

42、/給脈沖信號un sig ned char inn it()un sig ned char num;IO0DIR |= eq;/稍做延時IO0CLR = eq;delay1u(600);IO0SET = eq;delay1u(30);IO0DIR &= 0XBFFFFFFF;delay1u(30);將DQ拉低/精確延時大于480us 480II拉高總線輸入if(IOO PIN &eq) =0) num=0;elsenum=1;IO0SET = num; delay1u(200); return num;void zhun()inni t(); write(0xCC); writ

43、e(0x44);300delay1u(900000);inni t();write(0xCC);write(0xBE);void dis pl ay_te mp1(un sig ned char x)int i;unsigned char a,b,c;/j,k,l分別儲存溫度的百位、十位和個位unsigned char k9 = "溫度是:"unsigned char l16=("數(shù)字溫度計姚-連");W_in struct(0x88);for(i=0;i<9;i+)W_data(ki);W_in struct(0x98);for(i=0;i<

44、;16;i+)取百位/取十位/取個位寫顯示地址,將在第2行第7列開始顯示 /將百位數(shù)字的字符常量寫入 /將十位數(shù)字的字符常量寫入 /將個位數(shù)字的字符常量寫入W_data(li);a=x/100;b=(x%100)/10;c=x%10;LCDW_i nstruct(0x8C);W_data(digita);LCDLCDW_data(digitb);/延時1ms給硬件一點反應時間W_data(digitc);delay1u(100);void dis play_te mp2(un sig ned char x)unsigned char t =" C "/寫顯示地址,將在第2行

45、第11列開始顯示將小數(shù)部分的第一位數(shù)字字符常量寫入LCDW_data('.');W_data(digit x);W_i nstruct(0x8F);W_data(t0);W_data(t1);/延時1ms給硬件一點反應時間W_data(t2);delay1u(100); /*函數(shù)名稱:RTCInit()*函數(shù)功能:初始化實時時鐘*入口參數(shù):無*出口參數(shù):無幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*/void RTCI nit (void)P REINT = Fpcik / 32768 - 1; / 設置基準時鐘分頻器P REFRAC = Fp clk - (Fpcik / 32768) * 32768;CCR = 0x00;/禁止時間計數(shù)器YEAR = 2008+nn;MONTH = 04+yy; DOMDOWHOURMINSEC=01+rr;=4+ZZ;=8+SS;=30+ff;=59+mm;CIIR = 0x01; /設置秒值的增量產(chǎn)生1次中斷CCR = 0x01;啟動 RTC/*幵*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*函數(shù)名稱 函數(shù)功能 入口參數(shù) 出口參數(shù):SendTimeRtcO:讀取RTC的時間值,并將

溫馨提示

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

評論

0/150

提交評論