




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 ARM課程設計報告嵌入式系統原理及應用課程設計 題目: 基于ARM7溫度監測系統設計 班 級 學 號 姓 名 二一三年十一月 12基于ARM7的溫度監測系統的設計 摘要 本系統基于ARM7LPC2210、溫度傳感器DS18B20、液晶屏LCD1302、LED顯示燈,開關等組成,系統可以實現對溫度的初值設定、環境溫度監控以及當溫度超限時,產生報警LED閃爍)同時通過串口通信發送上位機顯示,從而實現對溫度的監控。該系統硬件結構簡單,監控溫度范圍大,精度高,能廣泛應用于對溫度控制要求較高的各種場合,市場前景廣闊。關鍵詞:LPC2210 DS18B20 LCD 1602 溫度超限報警 目錄 1引言.
2、3 2系統總體方案.3 3硬件設計 3.1DS18B20溫度傳感器的設計.4 3.2LCD1602液晶顯示屏的設計.5 3.3串口設計.6 3.4程序硬件接線圖.6 4程序代碼設計及調試仿真 4.2 液晶顯示功能模塊.7 4.3 串口通信模塊.8 4.4主函數功能模塊.9 6設計結果演示.9-10 7設計體會.111 引言近年來隨著科技的飛速發展,嵌入式的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的嵌入式應用系統中,嵌入式往往作為一個核心部件來使用,僅嵌入式方面知識是不夠的,還應根據具體硬件結構軟硬件結合,加以完善。溫度是一種最基本的環境參數,人們生活與環境溫度息
3、息相關,在工業生產過程中需要實時測量溫度,在工業生產中也離不開溫度的測量,因此研究溫度的測量方法和控制具有重要的意義。DS18B20是美國DALLAS半導體公司繼DS1820之后最新推出的一種改進型智能溫度傳感器,通過此次項目設計,可以在原有的理論基礎上,更加深入的了解傳感器的工作原理特別是DS18B20溫度傳感器的工作原理,同時提高我們的實踐動手能力以及邏輯思維能力,特別是拓寬了對ARM控制器的使用視野。本系統采用LPC2210系列ARM芯片和可編程串行I/O接口芯片DS18B20為中心器件來設計溫度監測系統,實現了設計一個數字溫度采集并監控的系統,利用LCD液晶屏和上位機顯示溫度,并具有溫
4、度超限報警功能,該系統能廣泛應用于各種行業,例如智能家居系統,化工廠和釀酒廠,市場前景廣闊,具有很高的實用價值。 2 系統的總體方案系統初始化后,LCD和上位機上顯示當前室內溫度 ,通過功能鍵能實現對溫度初值的設定,如果溫度超過預先設定的溫度值,LED燈會閃爍提示溫度超限,上位機會顯示警告,提醒值班人員檢查溫度異常的原因。1. 液晶顯示模塊LCD1602資料介紹 使用LCD液晶屏1602作為溫度的顯示,LCD 液晶顯示器的構造是在兩片平行的玻璃當中放置液態的晶體,兩片玻璃中間有許多垂直和水平的細小電線,透過通電與否來控制桿狀水晶分子改變方向,將光線折射出來產生畫面。顯示清晰,實現功能全,如果利
5、用數碼管顯示溫度,則不能順利顯示英文而且還會用到鎖存器,這會導致系統更加繁雜,綜合各種考慮,我們選用1602液晶顯示。此外,此液晶的功耗小,顯示內容豐富。如果要想液晶顯示漢字,我們可以選擇另外一種芯片LCD12864。1602液晶模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。1602采用標準的16腳接口,其中:第1腳:VSS為電源地第2
6、腳:VCC接5V電源正極第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高。第4腳:RS為寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負跳變時 執行指令。第714腳:D0D7為8位雙向數據端。 第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負極。 LCD1602最重要的部分是第4,5,6三個引腳。這三個引腳決定了數據的讀和寫,我們寫程序的重點是控制這三個引腳的狀態2. 溫度傳感器設計 D
7、S18B20數字溫度傳感器,該產品采用美國DALLAS公司生產的 DS18B20可組網數字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數字測溫和控制領域。由于DS18B20性能已經夠好,控制起來也比較方便,故我們直接選用DS18B20作為溫度傳感器。 在仿真圖中的引腳安裝 DS13820采用獨特的單口接線方式傳輸,在與微處理器連接時只需要一條口線即可實現微處理器與DS1380的雙向通信,不需要外圍元件,外加電壓范圍是3.05.5V,測量溫度范圍是-55125.在-10到+85的范圍內的固有分辨率是0.5,測量結果以9位到12位的數字量方式直接輸出
8、數字信號,以“一線總線”方式傳給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾能力,適用于環境惡劣的現場溫度測量。由于它的這種特性,我們只需要把它的引腳與ARMP1.25相連即可,VCC接電源,GND接地(如在仿真中的接線圖)整個操作主要包括三個關鍵過程:主機搜索DS18B20序列號、啟動在線DS18B20做溫度轉換、讀取溫度值。DS18B20嚴格遵循單總線協議,工作時,主機先發一復位脈沖,使總線上的所有DS18B20都被復位,接著發送ROM操作指令,使序列號編碼匹配的DS18B20被激活,準備接受下面的RAM訪問指令。RAM訪問指令控制選中的DS18B20工作狀態,完成整個溫度轉換,讀取等
9、工作。在ROM命令發送之前,RAM命令命令不起作用。3. 串口的設計 LPC2210含有兩個符合工業標準的異步串行口,UART0和UART1。 系統仿真接線圖RXD和TXD分別連接ARM的P0.1和P0.0 上位機的RXD和也和ARM的P0.0相連。系統報警模塊用一個LED燈模擬,當出現狀況時,LED燈會不停的閃爍,達到報警的目的。 系統硬件總設計圖4軟件代碼設計及調試仿真結果軟件設計時用到了模塊化設計思想,代碼包含了若干個頭文件,包括lpc2100.h ,stdio.h ,ds18b20.h, lcd.h,uart.h下面我們截取重要的幾個頭文件程序進行并分析LCD液晶模塊程序設計(部分)v
10、oid ChkBusy()IO0DIR=0xf0;while(1)IO0CLR=rs;IO0SET=rw;IO0SET=en;if(!(IO0PIN & busy)break;IO0CLR=en;IO0DIR=0xffffffff;void WrOp(uint8 dat)ChkBusy();IO0CLR=rs;IO0CLR=rw;IO0CLR=IO0CLR|0xff00;/先清零IO0SET=dat<<8;/再送數IO0SET=en;IO0CLR=en;void WrDat(uint8 dat)ChkBusy();IO0SET=rs;IO0CLR=rw;IO0CLR=IO0
11、CLR|0xff00;/先清零IO0SET=dat<<8;/再送數IO0SET=en;IO0CLR=en;void lcd_init(void)WrOp(0x38);WrOp(0x06);WrOp(0x0c);第一個函數作用是監測lcd是否忙碌,第二個函數是用來寫數據的,rs,rw,en的狀態很重要,是正確讀數據的關鍵,第三個函數是寫指令的函數,和前一個一樣,rs,rw,en狀態是很關鍵的,最后一個是lcd的初始化函數,其他函數在這里不做介紹。UART串口程序設計(部分)void UART0_Init(void) uint Fdiv; U0LCR = 0x83;/ 8位數據,無效驗
12、,一個停止位, 除數鎖存訪問(DLAB = 1,可設置波特率) Fdiv = (Fpclk / 16) / UART_Baud; / 設置波特率, Fpclk=11059200 U0DLM = Fdiv / 256; / 設置分頻寄存器高字節 U0DLL = Fdiv % 256; / 設置分頻寄存器低字節 /U0DLL=72;/ 12MHz 或 11.0592MHz /U0DLL=97;/ 15MHZ U0LCR = 0x03;uint8 UART0_GetByte (void) uint8 rcv_dat;while (U0LSR & 0x01) = 0); / 等待接收標志置位r
13、cv_dat = U0RBR; / 讀取數據return (rcv_dat);void UART0_SendByte(uint8 data) U0THR = data; / 發送數據 while (U0LSR&0x20)=0); / 等待數據發送完畢 0x40void UART0_SendStr(uint8 const *str) while(1) if(*str='0') break; UART0_SendByte(*str+); / 發送數據 void UART0_GetStr(uint8 *s, uint32 n) for ( ; n>0; n-) *s+
14、= UART0_GetByte(); void UART0_SendChar(int ch) if (ch = 'n') while (!(U0LSR & 0x20); U0THR = 0x0D; while (!(U0LSR & 0x20); U0THR = ch;主函數程序設計(部分)#define UART_Baud 9600#include "DS18B20.h"#include "LCD.h"#include "UART.h"#define LED1(1<<17)/ uint16
15、set_temp=150; /設定溫度為15度,超過的話則報警,串口出現warning LED1開始閃爍。uint16 measure_temp=0;void _irq IRQ_T0(void)T0TCR = 0;/ 計數器使能 measure_temp=ReadTemp();ConvertTemperature(measure_temp); / 溫度轉換 if(measure_temp>set_temp) IO1CLR |= LED1;Delayms(100);IO1SET|=LED1;Delayms(100); UART0_SendStr("WARNING!! TOO HI
16、GH!! "); DisText(0xc4,Tp);else if(measure_temp<100) / 小于10度,則報警IO1CLR |= LED1;Delayms(100);IO1SET|=LED1;Delayms(100); UART0_SendStr("WARNING!! TOO LOW!"); DisText(0xc4,Tp);else UART0_SendStr(" NORMOL!");UART0_SendStr(Tp);/ 發送溫度UART0_SendStr("rn");/ 回車DisText(0xc4,Tp);/ 顯示當前溫度T0IR=0x02;/清除MR1中斷標志VICVectAddr=0x00;/通知VIC中斷處理結束T0TCR = 1;/ 計數器使能 在以上程序是環境溫度起判斷作用的關鍵,設定安全溫度為15和10,當環境溫度高于15或者
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國女裝市場發展分析及市場趨勢與投資方向研究報告2025-2028版
- 大呼吸控制法詳解
- 新生兒護理進修實踐與提升
- 葡萄胎術后護理查房講課件
- 因數中間或末尾有零的乘法競賽練習練習題帶答案
- 小學三年級數學兩位數乘兩位數筆算能力考核模擬題帶答案
- 三年級數學因數中間或末尾有零的乘法能力測試例題帶答案
- 幾百幾十數乘以一位數綜合自測模擬題帶答案
- 電子競技保證金合同樣本
- 端午民俗活動協議
- 2025年四川省自貢市中考物理試卷及答案
- 2025年6月14日萍鄉市事業單位面試真題及答案解析
- 2025年高考真題-語文(全國二卷) 含解析
- 2025年廬山市國有投資控股集團有限公司招聘筆試沖刺題(帶答案解析)
- 2024年深圳市中考生物試卷真題(含答案解析)
- 溝通與演講2023學習通超星課后章節答案期末考試題庫2023年
- 斷路器的控制回路和信號回路
- 內部控制專項審計實施方案
- 硅膠管檢驗管理規定
- 勞動工資統計培訓PPT課件
- DSP課設——正弦波發生器
評論
0/150
提交評論