ARM與DSB的數(shù)字溫計(jì)的設(shè)計(jì)_第1頁(yè)
ARM與DSB的數(shù)字溫計(jì)的設(shè)計(jì)_第2頁(yè)
ARM與DSB的數(shù)字溫計(jì)的設(shè)計(jì)_第3頁(yè)
ARM與DSB的數(shù)字溫計(jì)的設(shè)計(jì)_第4頁(yè)
ARM與DSB的數(shù)字溫計(jì)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、作者:PanHongliang封面僅供個(gè)人學(xué)習(xí)東北林業(yè)大學(xué)綜合電子課程設(shè)計(jì)總結(jié)報(bào)告設(shè)計(jì)工程:基于ARM7與DS18B20地?cái)?shù)字溫度計(jì)地設(shè)計(jì) 工程完成人:指導(dǎo)教師:學(xué) 院:信息與計(jì)算機(jī)工程學(xué)院專 業(yè):電子信息工程2008級(jí)3班2011年7月7日綜合電子課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名學(xué)號(hào)專業(yè)(班級(jí))08級(jí)電信3班同組成員設(shè)計(jì)工程基于ARM7與DS18B20地?cái)?shù)字溫度計(jì)地設(shè)計(jì)設(shè)計(jì)內(nèi)容本設(shè)計(jì)利用DS18B20智能溫度傳感器.ARM7 LPC2131快入式系統(tǒng).MS12864LCD液 晶屏,設(shè)計(jì)一個(gè)數(shù)字溫度采集系統(tǒng)人機(jī)接口電路地設(shè)計(jì):控制系統(tǒng)采用ARM7 LPC2131, 鍵盤(pán)采用獨(dú)立按鍵,顯示器采用MS128

2、64液晶屏,溫度超限報(bào)警采用LED.主要技術(shù)指標(biāo)和要求1. 測(cè)疑溫度范圍:-50C150C;2. 精度:0.5C:3. 線性度:0.39:4. 超限報(bào)警功能;5. 具有溫度和時(shí)間顯示功能:6. 工作電壓:總線供電.設(shè)計(jì)所用儀器設(shè)備1. ARM7 LPC2138 小系統(tǒng);2. 高精度溫度計(jì);3. 數(shù)字萬(wàn)用表;4. 示波器.工作計(jì)劃1. 2011年6月22日:下達(dá)課程設(shè)計(jì)任務(wù)書(shū);2. 2011年6月23日:撰寫(xiě)開(kāi)題報(bào)告:3. 2011年6月25 B:開(kāi)題答辯PPT:4. 2011年6月26日6月27日:硬件分析與設(shè)計(jì).軟件結(jié)構(gòu)化設(shè)計(jì):5. 2011年6月28日7月9日:電路焊接與組裝.軟件結(jié)構(gòu)化編

3、程.單元調(diào)試.系統(tǒng)聯(lián) 調(diào)撰寫(xiě)課程設(shè)計(jì)總結(jié)報(bào)告:6. 2011年7月10日:課程設(shè)計(jì)結(jié)題驗(yàn)收,提交數(shù)字溫度計(jì)系統(tǒng)一套.總結(jié)報(bào)告一份.參考資料溫度傳感器DS18B20芯片資料 液晶屏MS12864R中文資料 嵌入式ARM7 LPC2131開(kāi)發(fā)板系統(tǒng)原理指導(dǎo)教師簽子系主任簽字?jǐn)?shù)字溫度計(jì)地設(shè)計(jì)摘要本系統(tǒng)用ARM7 LPC2131.溫度傳感器DS18B20.液晶屏12864. LED等組成,系統(tǒng)可實(shí)現(xiàn) 實(shí)時(shí)顯示當(dāng)前室內(nèi)溫度功能系統(tǒng)除基本數(shù)字溫度計(jì)功能外,還具有顯示當(dāng)前時(shí)間和日期. 溫度超限報(bào)警設(shè)置時(shí)間和日期初值功能.在設(shè)計(jì)中我們應(yīng)用ARM7開(kāi)發(fā)板.ARM7開(kāi)發(fā)板具有豐富地硬件資源.本設(shè)計(jì)采用 LPC21

4、31控制可編程芯片DS18B20實(shí)現(xiàn)對(duì)溫度地釆集利用LPC213內(nèi)部時(shí)鐘資源釆集時(shí)間 和日期.溫度.時(shí)間和日期通過(guò)液晶屏12864顯示,溫度超限報(bào)警通過(guò)LED閃爍提示.本文詳細(xì)介紹了如何實(shí)現(xiàn)對(duì)DS18B20編程釆集溫度功能,以及如何采集ARM7 LPC2131 內(nèi)部時(shí)鐘資源,并實(shí)現(xiàn)鍵盤(pán)輸入修改日期時(shí)間溫度超限報(bào)警等功能.關(guān)鍵詞:LPC2131; DS18B20; 12864;溫度超限報(bào)警;1緒論21.1引言.21.2系統(tǒng)方案設(shè)計(jì)31.3方案論證32系統(tǒng)主要器件選型與依據(jù)42. lEasyARM2131 開(kāi)發(fā)板42. 2溫度傳感器DS18B2052. 3MS12864R液晶屏簡(jiǎn)介63系統(tǒng)地硬件設(shè)

5、計(jì)93.1ARM7開(kāi)發(fā)板硬件設(shè)計(jì)93. 2LCD液晶屏顯示設(shè)計(jì)93. 3DS18B20溫度傳感器地設(shè)計(jì)104系統(tǒng)地軟件設(shè)計(jì)114.1系統(tǒng)主流程圖114.2溫度傳感器功能模塊124.3液晶顯示功能模塊125總結(jié)13參考文獻(xiàn)附錄A數(shù)字溫度計(jì)設(shè)計(jì)1緒論1. 1引言近年來(lái)隨著科技地飛速發(fā)展,嵌入式地應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控 制檢測(cè)技術(shù)日益更新.在實(shí)時(shí)檢測(cè)和自動(dòng)控制地嵌入式應(yīng)用系統(tǒng)中,嵌入式往往 作為一個(gè)核心部件來(lái)使用,僅嵌入式方面知識(shí)是不夠地,還應(yīng)根據(jù)具體硬件結(jié)構(gòu) 軟硬件結(jié)合,加以完善.溫度是一種最基本地環(huán)境參數(shù),人們生活與環(huán)境溫度息息相關(guān),在工業(yè)生產(chǎn) 過(guò)程中需要實(shí)時(shí)測(cè)量溫度,在工業(yè)生產(chǎn)中也離

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

7、2系統(tǒng)方案設(shè)計(jì)利用控制芯片溫度傳感器LCD液晶屏?xí)r鐘資源LED等分別實(shí)現(xiàn):(1) 實(shí)時(shí)顯示當(dāng)前室內(nèi)溫度(2) 顯示年月.日星期時(shí)分.秒;(3) 能夠通過(guò)鍵盤(pán)輸入日期和時(shí)間地初值;(4) 溫度超限報(bào)警; 圖1-1為設(shè)計(jì)方案總體框圖按鍵溫度 傳感器、報(bào)警/模塊ARM7LPC2131X顯亦圖1-1設(shè)計(jì)方案總體框圖系統(tǒng)初始化后丄CD上顯示當(dāng)前室內(nèi)溫度,同時(shí)LCD上顯示時(shí)間和日期,通過(guò) 功能鍵能實(shí)現(xiàn)日期和時(shí)間地初值設(shè)定,如果溫度超過(guò)預(yù)先設(shè)定地溫度值,八個(gè) LED燈會(huì)閃爍提示溫度超限.1. 3方案論證(1) 顯示模塊方案一:使用LCD液晶屏12864作為時(shí)間日期顯示,LCD液晶顯示器地構(gòu) 造是在兩片平行地

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

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

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

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

12、2134/2136/2138) 一內(nèi)置 USB 接口地 LPC214x(LPC2142/2144/2146/2148) *多種免費(fèi)商業(yè)化軟件包及其詳細(xì)地開(kāi)發(fā)文檔: *移植U C/OS-II到ARM7軟件包*數(shù)據(jù)隊(duì)列軟件包*串口驅(qū)動(dòng)軟件包* MODEM接口軟件包* SPI總線軟件包* I2C總線軟件包*ZLG/FS V1.0版本文件管理系統(tǒng)軟件包* ZLG/GUI圖形用戶界面軟件包* ZLG/SD卡讀寫(xiě)軟件包* ZLG/USB固件程序及其驅(qū)動(dòng)程序軟件包*多種可選配置適配器:一各種型號(hào)地CPU PACK,用戶可按需求和喜好配置主ARM芯片-MG12864點(diǎn)陣圖型液晶模塊水所有I/O 口全部引岀,方

13、便用戶連接外部電路地開(kāi)發(fā)與使用;*可進(jìn)行GPIO地控制實(shí)驗(yàn),如鍵盤(pán)輸入蜂鳴器控制模擬SPI等; *6個(gè)獨(dú)立按鍵(可用于外部中斷定時(shí)器捕獲輸入)$個(gè)LED指示燈; *具有RS232轉(zhuǎn)換電路,可與上位機(jī)進(jìn)行通訊,完成UART通訊實(shí)驗(yàn)。*可以與標(biāo)準(zhǔn)串行modem直接接口,方便遠(yuǎn)程通訊; 水具有I2C接口和SPI/SSP接口輸出;*提供基于PC地人機(jī)界面,方便調(diào)試實(shí)時(shí)時(shí)鐘.串口通信等功能;水可進(jìn)行外部中斷實(shí)驗(yàn),學(xué)習(xí)向量中斷控制器(VIC);*定時(shí)器控制實(shí)驗(yàn),如定時(shí)控制LED定時(shí)器捕獲等;*使用板內(nèi)地CAT 1025 (內(nèi)含復(fù)位功能),完成I2C總線地實(shí)驗(yàn);*使用74HC595芯片,實(shí)現(xiàn)SPI接口數(shù)據(jù)發(fā)

14、送.接收實(shí)驗(yàn);*A/D轉(zhuǎn)換實(shí)驗(yàn);DAC轉(zhuǎn)換實(shí)驗(yàn)(更換CPU為L(zhǎng)PC2132及以上);*實(shí)時(shí)時(shí)鐘控制實(shí)驗(yàn);*WDT及低功耗控制實(shí)驗(yàn);* 54個(gè)基礎(chǔ)實(shí)驗(yàn)及其大量地中間件軟件包,完整地驗(yàn)證了兒乎所有地硬件功能資 源;水詳細(xì)地配套資料(深入淺出ARM7LPC213x/214x (上/下冊(cè)),北航出版社,其 中上冊(cè)為標(biāo)準(zhǔn)配置).2. 2溫度傳感器DS18B20DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)地1-Wire,即單總線器件,具有線 路簡(jiǎn)單,體積小地特點(diǎn)因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信 線,可以掛很多這樣地?cái)?shù)字溫度計(jì)汁分方便.DS18B20產(chǎn)品地特點(diǎn)(1).只要求一個(gè)端口即可

15、實(shí)現(xiàn)通信.(2)在DS18B20中地每個(gè)器件上都有獨(dú)一無(wú)二地序列號(hào).(3).實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫.(4)測(cè)量溫度范圉在一55.C到+125.C之間.(5)擻字溫度計(jì)地分辨率用戶可以從9位到12位選擇.(6).內(nèi)部有溫度上.下限告警設(shè)置.DS18B20地引腳介紹TO 92封裝地DS18B20地引腳排列見(jiàn)圖1,其引腳功能描述見(jiàn)表1.DS18B20地使用方法山于DS18B20采用地是1 Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)地 雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須 采用軟件地方法來(lái)模擬單總線地協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片地

16、訪問(wèn).山于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)地?cái)?shù)據(jù)位有著嚴(yán)格地 時(shí)序要求D S18B20有嚴(yán)格地通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)卣_性和完整性該 協(xié)議定義了兒種信號(hào)地時(shí)序:初始化時(shí)序讀時(shí)序?qū)憰r(shí)序所有時(shí)序都是將主機(jī)作 為主設(shè)備,單總線器件作為從設(shè)備而每一次命令和數(shù)據(jù)地傳輸都是從主機(jī)主動(dòng)啟 動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí) 序完成數(shù)據(jù)接收數(shù)據(jù)和命令地傳輸都是低位在先.DS18B20地復(fù)位時(shí)序DS18B20地讀時(shí)序?qū)τ贒S18B20地讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程.對(duì)于DS18B20地讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放

17、單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上.DS18B20在完成一個(gè)讀時(shí)序過(guò)程, 至少需要60us才能完成.DS18B20地寫(xiě)時(shí)序?qū)τ贒S18B20地寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程.對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序地要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被 拉低至少60US,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線 上地“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15US之內(nèi)就得釋放單總線.2. 3MS12864R液晶屏簡(jiǎn)介MS12864R漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字 (16X16點(diǎn)陣).128個(gè)字符(8X16

18、點(diǎn)陣)及64X256點(diǎn)陣顯示RAM (GDRAM).主要技術(shù)參數(shù)和顯示特性:電源:VDD 3.3V、+5V(內(nèi)置升壓電路,無(wú)需負(fù)壓);顯示內(nèi)容:128列X 64行顯示顏色:黃綠顯示角度:6: 00鐘直視LCD 類型:STX與MCU接口: 8位或4位并行/3位串行配置LED背光多種軟件功能:光標(biāo)顯示.畫(huà)面移位.自定義字符.睡眠模式等 模塊引腳說(shuō)明MS128X64R引腳說(shuō)明引腳 號(hào)引腳名稱方向功能說(shuō)明1VSS模塊地電源地2VDD模塊地電源正端3V0LCD驅(qū)動(dòng)電壓輸入端4RS(CS)H/L并行地指令/數(shù)據(jù)選擇信號(hào);串行地片選信 號(hào)5R/W(SID)H/L并行地讀寫(xiě)選擇信號(hào);串行地?cái)?shù)據(jù)口6E(CLK)

19、HL并行地使能信號(hào);串行地同步時(shí)鐘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并/串行接口選擇:H-并行;L-串行16NC空腳17/RETH/L復(fù)位低電平有效18VOUT19LED K背光源負(fù)極(LED-0V)20LED A背光源正極(LED+5V)邏輯工作電壓(VDD): 4. 55. 5V電源地(GND): 0V工作溫度(Ta): 060C(常溫)/ -2075C (寬溫)接口時(shí)序模塊有并行和吊行兩種連接方法(時(shí)序如下):8位并行連接時(shí)序圖MPU寫(xiě)資

20、料到模塊MPU從模塊讀出資料串行連接時(shí)序圖串行數(shù)據(jù)傳送共分三個(gè)字節(jié)完成:第一字節(jié):串口控制一格式11111ABCA為數(shù)據(jù)傳送方向控制:H表示數(shù)據(jù)從LCD到MCU, L表示數(shù)據(jù)從MCU 到LCDB為數(shù)據(jù)類型選擇:H表示數(shù)據(jù)是顯示數(shù)據(jù),L表示數(shù)據(jù)是控制指令C固定為0第二字節(jié):(并行)8位數(shù)據(jù)地高4位一格式DDDD0000第三字節(jié):(并行)8位數(shù)據(jù)地低4位一格式0000DDDD串行接口時(shí)序參數(shù):(測(cè)試條件:T二25C VDD二4.5V)3硬件設(shè)計(jì)3. 1 ARM7開(kāi)發(fā)板硬件設(shè)計(jì)系統(tǒng)原理圖設(shè)計(jì)如圖3-1所示,ARM7 LPC213系統(tǒng)實(shí)現(xiàn)如下功能:(1)控制溫度傳感器DS18B20讀取當(dāng)前溫度值;(2

21、)控制ARM7內(nèi)部時(shí)鐘資源讀取時(shí)間和日期;(3)控制LCD液晶屏顯示當(dāng)前溫度時(shí)間和日期;(4)控制LED溫度超限報(bào)警.圖3-1系統(tǒng)原理圖3.2 LCD液晶屏顯示設(shè)計(jì):LCD液晶屏顯示電路如圖3-2所示該液晶可實(shí)現(xiàn)顯示當(dāng)前年.月日周. 時(shí).分秒和溫度值,具體控制和實(shí)現(xiàn)方法如下:(1)ARM7地PO. 0-P0. 7 口連接液晶屏地DB0-DB7,控制對(duì)液晶屏并行數(shù)據(jù)讀 和寫(xiě);(2)ARM7地P0.8 口連接液晶屏地RS 口,控制并行地指令/數(shù)據(jù)選擇信號(hào);(3)ARM7地P0.9 口連接液晶屏地R/W 口,控制并行地讀寫(xiě)選擇信號(hào);(4)ARM7地P0. 10 口連接液晶屏地EN 口,控制并行地使能

22、信號(hào);(5)ARM7地P0. 11 口連接液晶屏地PSB 口,控制并/串行接口選擇:H併行; L串行;(6)ARM7地P0. 12 口連接液晶屏地RET 口,實(shí)現(xiàn)對(duì)液晶屏地復(fù)位,低電平有 效;圖3-2LCD液晶屏電路圖3. 3 DS18B20溫度傳感器地設(shè)計(jì)電路如圖3-3所示,該溫度傳感器電路可實(shí)現(xiàn)對(duì)溫度傳感器DS18B20數(shù)據(jù)地讀 寫(xiě),具體控制方法如下:(1)ARM7地P0. 30 口連接DS18B20地DQ 口,控制串行數(shù)據(jù)地讀和寫(xiě);(2)DS18B20地VDD連接到ARM7開(kāi)發(fā)板地VDD上;(3)DS18B20地GND連接到ARM7開(kāi)發(fā)板地GND上;圖3-3溫度傳感器電路4系統(tǒng)地軟件設(shè)計(jì)

23、4.1系統(tǒng)主流程圖圖4-1為系統(tǒng)主流程圖,主流程圖具體介紹如下:(1)系統(tǒng)初始化包括對(duì)DS18B20進(jìn)行初始化.設(shè)定GPIO. RTC初始化.液晶屏 初始化;(2)初始化之后顯示當(dāng)前室內(nèi)溫度同時(shí)顯示日期和時(shí)間;(3)與此同時(shí)進(jìn)行按鍵判斷,如果有按鍵繼續(xù)判斷是什么按鍵,如果是修改 時(shí)間按鍵那么修改時(shí)間;如果是修改日期按鍵那么修改日期.如沒(méi)有按鍵按下, 那么判斷室內(nèi)溫度是否超過(guò)預(yù)先設(shè)定值,如果超過(guò)驅(qū)動(dòng)LED閃爍報(bào)警.圖4-1系統(tǒng)主流程圖4. 2溫度傳感器功能模塊圖4-2為溫度傳感器功能模塊流程圖;圖4-2溫度傳感器功能模塊流程圖4. 3液晶顯示功能模塊圖4-3為液晶顯示功能模塊流程圖;圖4-3液晶

24、顯示功能模塊流程圖5總結(jié)本系統(tǒng)利用控制芯片溫度傳感器.LCD液晶屏.LED等分別實(shí)現(xiàn):(1) 實(shí)時(shí)顯示當(dāng)前室內(nèi)溫度(2) 顯示年月.日星期時(shí)分.秒;(3) 能夠通過(guò)鍵盤(pán)輸入日期和時(shí)間地初值;(4) 溫度超限報(bào)警;系統(tǒng)設(shè)計(jì)簡(jiǎn)便實(shí)用性強(qiáng)操作簡(jiǎn)單.程序設(shè)計(jì)簡(jiǎn)便.系統(tǒng)不足:時(shí)間和日期初值設(shè)定中利用按鍵較多,此外還沒(méi)有充分考慮到溫 度超限報(bào)警地多變性,溫度報(bào)警上限不可調(diào)節(jié),只能預(yù)先程序中設(shè)定超限報(bào)警溫 度值.一周地綜合電子工藝課程設(shè)計(jì)結(jié)束了,可能在別人看來(lái),這或許只是一個(gè)小 地設(shè)計(jì),可是它給于我地卻不僅僅是這樣,認(rèn)真地做課程設(shè)計(jì),運(yùn)用ARM做一個(gè)系 統(tǒng)地東西,我從心里給予了足夠地重視剛開(kāi)始做總是出問(wèn)題,

25、多次重新分析,從 細(xì)節(jié)著手尋找問(wèn)題,最后找到了發(fā)現(xiàn)自己想象地太多太復(fù)雜,實(shí)際上只需要很 簡(jiǎn)單地一種方法就可以地,問(wèn)題解決了,也給我很多收獲.我覺(jué)得自己地方法不可 行,關(guān)鍵地原因在于自己對(duì)ARM地工作原理沒(méi)有透徹地理解,所以就不能很好地 理解老師地設(shè)計(jì)要求,結(jié)果就造成了很多地彎路,找不到一種合理地途徑去解決 問(wèn)題.希望以后有機(jī)會(huì)可以多做一些這樣地設(shè)計(jì),增強(qiáng)自己地設(shè)計(jì)億識(shí),加深所學(xué) 地知識(shí).參考文獻(xiàn)1 郁有文傳感器原理及工程應(yīng)用(第三版)西安電子科技出版社,2008.72 閻石數(shù)字電子技術(shù)基礎(chǔ)(第四版).高等教冇岀版社998.113 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程(第二版)北京航空航天大學(xué)岀版社

26、,2008.94 汪建軍.基于非平衡電橋地電阻數(shù)字溫度訃設(shè)計(jì)J.浙江萬(wàn)里學(xué)院學(xué)報(bào).20095 老虎工作室.電路設(shè)計(jì)與制板prote!99se典型實(shí)例人民郵電岀版社6 宋文緒.楊帆.傳感器與檢測(cè)技術(shù)M.高等教育出版社,2004:附錄A/* 描述:* (1)此程序所有延時(shí)采用定時(shí)器做(2)開(kāi)發(fā)板上地P0.30 口連接溫度傳感器DQ 口線(3)開(kāi)發(fā)板上P0.0-P0.7 口連接液晶屏地DB0-DB7,其他液晶口線連接詳見(jiàn)程 序中宏定義(4)如需液晶顯示地更清楚需在液晶屏上加10K電位器調(diào)節(jié)液晶屏輸入?yún)⒖?電壓* */include #define eq l30#dcfine uint8 unsign

27、ed char#dcfine Fpclk 11059200#define keyl 116#define key2 117#define key3 118#dcfine key4 119#dcfine key5 l20#define key6 121int nn=0,yy=0.rr=0.zz=0.ss=0.ff=0,mm=0o#define LCD.DATA OxFFvoid delay lu(unsigned long t) T1PR = 0x00000000oT1TCR = 0x00000003 oT1MCR = 0x00000003 oT1MR0 = t*OxOf oT1TCR = 0x

28、0000000 lo/enable timer#define LCD_DI18與p0.8對(duì)應(yīng)#dcfine LCD.RW19與p0.9對(duì)應(yīng)#dcfine LCD_ENl10與p00對(duì)應(yīng).#define LCD_PSB111與p0.ll對(duì)應(yīng)電路直接拉高#dcfine LCD.RST 112與pO.12對(duì)應(yīng)上電自動(dòng)復(fù)位一般也可以不接#dcfine clear_screen0x01#dcfine reset_address0x02#dcfine set_point0x06 / 0000.0110#define display_set0x0c 顯示設(shè)定#define cursor_shift_cont

29、rol Oxlc /OOO1_11OO#dcfine functionset 0x30 功能設(shè)定基本指令集#dcfine function_set_ext 0x36 功能設(shè)定 擴(kuò)充指令集 繪圖開(kāi) /define set_CGRAM_ADD#define set_DDRAM_ADD 0x80/define write_dataJntena!RAMunsigned char digitf 10=H0123456789”。定義字符數(shù)組顯示數(shù)字/Load prescaler/Reset counter and prescaler/On match reset the counter and gener

30、ate an internipt /Set the cycle timewhile(THR&0 x01) = 0)TlIR = 0x01oT1TCR = 0x00000000o/* * * * */* *$*$*$*$ * *#$“* */void LCD_DATA_input()IO0DIR = IO0DIR & (LCD_DATA)。 把 pl.16-pl.23 設(shè)定為輸入/* *導(dǎo)*$* * * *“$* *$*$*#*$*/void LCD_DATA_output()IOODIR = IOODIR I LCD_DATAo 設(shè)定 pO.O-pO.7 為輸出/*$ * *#$“* *$*$

31、*#$“*$*$*$*/void CheckState()/狀態(tài)檢查丄CD是否忙?delay 1 u(200) o/while(readnstruct()。/* * * */*$*奪*$*函數(shù)名稱:GPIO_Init()*函數(shù)功能:初始化IO端口.包含一個(gè)uartO.三個(gè)按鍵輸入.以及幾個(gè)普通地輸入輸岀端口.*入口參數(shù):無(wú)*岀口參數(shù):無(wú)*$*$*$*$*$*/*void GPIO_init() PINSEL0 = 0oIOODIR = 0xFF8o*/* 函數(shù)名稱:w_dala(unsigned char data_Lcm)*函數(shù)功能:給LCD發(fā)送數(shù)據(jù)或者命令.於*入口參數(shù):dataLcm*岀

32、口參數(shù):無(wú)*$*$* * *$* * *$*/void W_data(uint8 data_Lcm) CheckStateOoLCD_D ATA_output()。IOOSET=LCD_DLIOOCLR = LCD_RWo IOOCLR = OxFFoIOOSET = data_Lcnio IOOSET=LCD_ENoIOOCLR = LCD.ENo/* *$*$*$*函數(shù)名稱:*函數(shù)功能:*入口參數(shù):*出口參數(shù):*$* *$*#*$*/void W_instruct(uint8 data_Lcm) CheckState()oLCD_D ATA_output()。IOOCLR = LCD_DL

33、IOOCLR = LCD_RWoIOOCLR = OxFFoIOOSET = data_LcnioIOOSET =LCD_ENoIOOCLR = LCD.ENo/* *導(dǎo)*$* * * * *“$* *函數(shù)名稱 LCDnit()*函數(shù)功能:初始化led顯示屏*入口參數(shù):無(wú)*出口參數(shù):無(wú)*$*#$“*$*$* $*#*$*$*/void initjcd(void)IOOSET =LCD_RSTo IOOCLR = LCD_RSToIOOSET =LCD_RSToIOOSET =LCD_PSBo IOOSET =LCD_PSBoWJnstruct(function_set)o W_instruct

34、(display_set)oW_instruct(clear_screen)。W_instruct(reset_address)0W_instruct(set_DDRAM_ADD) o *函數(shù)名稱:*函數(shù)功能:寫(xiě)漢字到LCDx_add顯示RAM地地址datl/dat2顯示漢字編碼指定地位 置*入口參數(shù):*出口參數(shù):* * * *$* * *$*/ /*void display(uint8 x_add.uint8 datl,uint8 dat2)W_instnict(x_add)o 1 xxx.xxxx 到地址計(jì)數(shù)器 ACW_data(datl)0W_data(dat2)o */ /*#*$*$

35、* /* */void write(unsigned char date)unsigned char i=0。for (i=8o i0o i-jIOODIR 1= eq改回輸出IOOSET1= eqodelay lu(2)oIOOCLR = eqoif(date&0x01)IOOSET 1= eqo 釋放總線 delay 1 u( 80) oelseIOOCLR = eq。delay lu(80)odelaylu(30)oIOOSET 1= eqodelaylu(3)o date=lodelay lu(6)o)unsigned char read()unsigned char i=0ounsi

36、gned char date = 0。for (i=8o i0o i-)date=loIOODIR 1= eq改回輸出IOOSET1= eq.delay lu(2)oIOOCLR = eqo給脈沖信號(hào)delay lu(2)oIOOSET 1= eqodelay lu(13)oIOODIR = IOODIR&0xBFFFFFFF。/ 拉高總線輸入delay lu(12)o if(IOOPIN&cq) date I=0x80o delay lu(3)oreturn dateo unsigned char innit()unsigned char nunuIOODIR 1= eqo將DQ拉低精確延時(shí)

37、大于480us 480拉高總線輸入稍做延時(shí)IOOCLR = cq。delay lu(600)oIOOSET = eq0delay lu(30)oIOODIR &= OxBFFFFFFFodelay lu( 30) oif(IOOPIN &cq) =0)num=0onum=lo/300IOOSET = nunio delay lu(200)o return nunio void zhun()innit()o write(OxCC)o write(0x44)o delay lu(900000)oinnit()o write(OxCC)o write(OxBE)o)void display_temp

38、 1 (unsigned char x)int iounsigned char a.b,c。jk分別儲(chǔ)存溫度地百位十位和個(gè)位unsigned char k9 =溫度是:”。 unsigned char 1 16=(數(shù)字溫度計(jì)姚-連)。 W_instruct(0x88)ofor(i=Oo i9o i卄)W_data(ki)oW_instruct(0x98)ofor(i=Oo i16o i卄)W_data(l(i)oa=x/100o/取百位b=(x%100)/10o c=x%10oW_instruct(0x8C)o W_data(digita)o W_data(digitb)o W_data(di

39、gitc)o delay lu(l 00) o取十位/取個(gè)位寫(xiě)顯示地址.將在第2行第7列開(kāi)始顯示 /將百位數(shù)字地字符常屋與入LCD /將十位數(shù)字地字符常量寫(xiě)入LCD 將個(gè)位數(shù)子地子符常量與入LCD延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間void display_temp2(unsigncd char x)unsigned char t =N CH。寫(xiě)顯示地址將在第2行第11列開(kāi)始顯示將小數(shù)部分地第一位數(shù)字字符常量寫(xiě)入LCDW_data(7)oW_data(digitx)oWJnstruct(0x8F)oW_data(tO)W_data(tl)oW_data(t2).delaylu(l00)o延時(shí)1ms給硬

40、件一點(diǎn)反應(yīng)時(shí)間)嚴(yán)*$*$*$*$*$*函數(shù)名稱:RTCInitO*函數(shù)功能:初始化實(shí)時(shí)時(shí)鐘*入口參數(shù):無(wú)*出口參數(shù):無(wú)* *奪* * * * *枠* * */void RTCInit (void)PREINT = Fpclk / 32768 - U /設(shè)置基準(zhǔn)時(shí)鐘分頻器PREFRAC = Fpclk - (Fpclk / 32768) * 32768。CCR =0x00o/禁止時(shí)間計(jì)數(shù)器YEAR = 2008+nnoMONTH = 04+yyDOM =01+rrDOW =4+zzHOUR =8+ssMIN = 30+ffoSEC= 59+mm oCIIR = 0x01o/設(shè)置秒值地增呈產(chǎn)生1

41、次中斷CCR =0x01o啟動(dòng) RTC嚴(yán)*$*$*$*$*$* 函數(shù)名稱:SendTimcRtc()*函數(shù)功能:讀取RTC地時(shí)間值并將讀出地時(shí)分秒值通過(guò)串口送到上位機(jī)顯示.*入口參數(shù):無(wú)*出口參數(shù):無(wú)*$*/void SendTinicRtc (void)unsigned char a.b,c.d。int datasoint times0int bakounsigned char t =M年unsigned char s =H月,unsigned char runsigned char m =H周)unsigned char n =M時(shí)” unsigned char p =M 分unsigne

42、d char q =H秒”。times = CTIMEOo/讀取完整地時(shí)鐘寄存器datas = CTINlEloW_instruct(0x80)oW_data(0x02)oW_data(0x02)o顯示笑臉顯示笑臉bak = (datas 16) & Oxfffo / 獲取年a=bak/ lOOOo bak = bak % lOOOo b=bak/ 100obak = bak % 100。c=bak/10od=bak % 10oW_instruct(0x81)oW_data(digita)oW_data(digitb)oW_data(digitc)oW_data(digitd)oW_instn

43、ict(0x83)oW_data(t(0)oW_data(tl)o將千位數(shù)字地字符常量與入LCD /將百位數(shù)字地字符常量寫(xiě)入LCD 將十位數(shù)子地子符常量與入LCD 將個(gè)位數(shù)字地字符常量寫(xiě)入LCDbak = (datas 8) & OxOf。 / 獲取 月 a=bak/ 10ob=bak % 10。/獲取日W_instruct(0x84)o W_data(digita)o W_data(digitb)o W_instruct(0x85)o W_data(s0)o W_data(sl)o bak = datas & Ox If。 c=bak/10oW_data(q0)oW_data(qlJ)o)i

44、nt main()unsigned char abTN.TD。PINSELO = OoPINSELI =OoIOODIR = OxOOOOFFFFoIO 1 DIR = OxFFFFFFFFoRTCInit()o/GPIOJnitOoinitjcd()owhile(l)zhun() ob=read()oa=read()oTN=a* 16+b/16。實(shí)際溫度值=(TH*256+TL)/16.即:TH* 16+TI716這樣得岀地是溫度地整數(shù)部分.小數(shù)部分被丟棄了TD=(b%16)*10/16odisplayjempl(TN)odisplayjemp2(TD)oif(TN=33)IO 1 PIN = IO 1 PIN A OxFFFFFFFFoelseIO 1 SET =OXFFFFFFFFoif(keyl &IO0PIN)=0)nn=nn+loRTCInit()oelse if(key2&IO0PIN)=0)yy=yy+ioRTCInit()oelse

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論