基于ARM7的温度报警系统的设计.docx

上传人:b****5 文档编号:6096633 上传时间:2023-01-03 格式:DOCX 页数:11 大小:282.57KB
下载 相关 举报
基于ARM7的温度报警系统的设计.docx_第1页
第1页 / 共11页
基于ARM7的温度报警系统的设计.docx_第2页
第2页 / 共11页
基于ARM7的温度报警系统的设计.docx_第3页
第3页 / 共11页
基于ARM7的温度报警系统的设计.docx_第4页
第4页 / 共11页
基于ARM7的温度报警系统的设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

基于ARM7的温度报警系统的设计.docx

《基于ARM7的温度报警系统的设计.docx》由会员分享,可在线阅读,更多相关《基于ARM7的温度报警系统的设计.docx(11页珍藏版)》请在冰豆网上搜索。

基于ARM7的温度报警系统的设计.docx

基于ARM7的温度报警系统的设计

 

《嵌入式系统原理及应用》

课程设计

题目:

基于ARM7温度监测系统设计

物联网工程学院

班级自动化1002

学号**********

姓名李家成

二〇一三年十一月

基于ARM7的温度监测系统的设计

摘要

 

本系统基于ARM7LPC2210、温度传感器DS18B20、液晶屏LCD1302、LED显示灯,开关等组成,系统可以实现对温度的初值设定、环境温度监控以及当温度超限时,产生报警LED闪烁)同时通过串口通信发送上位机显示,从而实现对温度的监控。

该系统硬件结构简单,监控温度范围大,精度高,能广泛应用于对温度控制要求较高的各种场合,市场前景广阔。

关键词:

LPC2210DS18B20LCD1602温度超限报警

 

1引言...................................................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设计体会.................................................11

1引言

近年来随着科技的飞速发展,嵌入式的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的嵌入式应用系统中,嵌入式往往作为一个核心部件来使用,仅嵌入式方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

温度是一种最基本的环境参数,人们生活与环境温度息息相关,在工业生产过程中需要实时测量温度,在工业生产中也离不开温度的测量,因此研究温度的测量方法和控制具有重要的意义。

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器,通过此次项目设计,可以在原有的理论基础上,更加深入的了解传感器的工作原理特别是DS18B20温度传感器的工作原理,同时提高我们的实践动手能力以及逻辑思维能力,特别是拓宽了对ARM控制器的使用视野。

本系统采用LPC2210系列ARM芯片和可编程串行I/O接口芯片DS18B20为中心器件来设计温度监测系统,实现了设计一个数字温度采集并监控的系统,利用LCD液晶屏和上位机显示温度,并具有温度超限报警功能,该系统能广泛应用于各种行业,例如智能家居系统,化工厂和酿酒厂,市场前景广阔,具有很高的实用价值。

2系统的总体方案

 

系统初始化后,LCD和上位机上显示当前室内温度,通过功能键能实现对温度初值的设定,如果温度超过预先设定的温度值,LED灯会闪烁提示温度超限,上位机会显示警告,提醒值班人员检查温度异常的原因。

1.液晶显示模块

LCD1602资料介绍

使用LCD液晶屏1602作为温度的显示,LCD液晶显示器的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。

显示清晰,实现功能全,如果利用数码管显示温度,则不能顺利显示英文而且还会用到锁存器,这会导致系统更加繁杂,综合各种考虑,我们选用1602液晶显示。

此外,此液晶的功耗小,显示内容丰富。

如果要想液晶显示汉字,我们可以选择另外一种芯片LCD12864。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

 

1602采用标准的16脚接口,其中:

第1脚:

VSS为电源地

第2脚:

VCC接5V电源正极

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。

第4脚:

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:

RW为读写信号线,高电平

(1)时进行读操作,低电平(0)时进行写操作。

第6脚:

E(或EN)端为使能(enable)端,高电平

(1)时读取信息,负跳变时执行指令。

第7~14脚:

D0~D7为8位双向数据端。

第15~16脚:

空脚或背灯电源。

15脚背光正极,16脚背光负极。

LCD1602最重要的部分是第4,5,6三个引脚。

这三个引脚决定了数据的读和写,我们写程序的重点是控制这三个引脚的状态

 

2.温度传感器设计

DS18B20数字温度传感器,该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

由于DS18B20性能已经够好,控制起来也比较方便,故我们直接选用DS18B20作为温度传感器。

在仿真图中的引脚安装

DS13820采用独特的单口接线方式传输,在与微处理器连接时只需要一条口线即可实现微处理器与DS1380的双向通信,不需要外围元件,外加电压范围是3.0——5.5V,测量温度范围是-55℃——125℃.在-10℃到+85℃的范围内的固有分辨率是0.5℃,测量结果以9位到12位的数字量方式直接输出数字信号,以“一线总线”方式传给CPU,,同时可传送CRC校验码,具有极强的抗干扰能力,适用于环境恶劣的现场温度测量。

由于它的这种特性,我们只需要把它的引脚与ARMP1.25相连即可,VCC接电源,GND接地(如在仿真中的接线图)整个操作主要包括三个关键过程:

主机搜索DS18B20序列号、启动在线DS18B20做温度转换、读取温度值。

DS18B20严格遵循单总线协议,工作时,主机先发一复位脉冲,使总线上的所有DS18B20都被复位,接着发送ROM操作指令,使序列号编码匹配的DS18B20被激活,准备接受下面的RAM访问指令。

RAM访问指令控制选中的DS18B20工作状态,完成整个温度转换,读取等工作。

在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液晶模块程序设计(部分)

voidChkBusy()

{

IO0DIR=0xf0;

while

(1)

{

IO0CLR=rs;

IO0SET=rw;

IO0SET=en;

if(!

(IO0PIN&busy))break;

IO0CLR=en;

}

IO0DIR=0xffffffff;

}

voidWrOp(uint8dat)

{

ChkBusy();

IO0CLR=rs;

IO0CLR=rw;

IO0CLR=IO0CLR|0xff00;//先清零

IO0SET=dat<<8;//再送数

IO0SET=en;

IO0CLR=en;

}

voidWrDat(uint8dat)

{

ChkBusy();

IO0SET=rs;

IO0CLR=rw;

IO0CLR=IO0CLR|0xff00;//先清零

IO0SET=dat<<8;//再送数

IO0SET=en;

IO0CLR=en;

}

voidlcd_init(void)

{

WrOp(0x38);

WrOp(0x06);

WrOp(0x0c);

}

第一个函数作用是监测lcd是否忙碌,第二个函数是用来写数据的,rs,rw,en的状态很重要,是正确读数据的关键,第三个函数是写指令的函数,和前一个一样,rs,rw,en状态是很关键的,最后一个是lcd的初始化函数,其他函数在这里不做介绍。

UART串口程序设计(部分)

voidUART0_Init(void)

{

uintFdiv;

U0LCR=0x83;//8位数据,无效验,一个停止位,除数锁存访问(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;

}

uint8UART0_GetByte(void)

{uint8rcv_dat;

while((U0LSR&0x01)==0);//等待接收标志置位

rcv_dat=U0RBR;//读取数据

return(rcv_dat);

}

voidUART0_SendByte(uint8data)

{

U0THR=data;//发送数据

while((U0LSR&0x20)==0);//等待数据发送完毕0x40

}

 

voidUART0_SendStr(uint8const*str)

{

while

(1)

{

if(*str=='\0')

{

break;

}

UART0_SendByte(*str++);//发送数据

}

}

voidUART0_GetStr(uint8*s,uint32n)

{for(;n>0;n--)

{*s++=UART0_GetByte();}

}

voidUART0_SendChar(intch)

{

if(ch=='\n'){

while(!

(U0LSR&0x20));

U0THR=0x0D;

}

while(!

(U0LSR&0x20));

U0THR=ch;

}

 

主函数程序设计(部分)

#defineUART_Baud9600

#include"DS18B20.h"

#include"LCD.h"

#include"UART.h"

#defineLED1(1<<17)//

uint16set_temp=150;//设定温度为15度,超过的话则报警,串口出现warningLED1开始闪烁。

uint16measure_temp=0;

void__irqIRQ_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!

TOOHIGH!

");

DisText(0xc4,Tp);

}

else

if(measure_temp<100)//小于10度,则报警

{IO1CLR|=LED1;

Delayms(100);

IO1SET|=LED1;

Delayms(100);

UART0_SendStr("WARNING!

TOOLOW!

");

DisText(0xc4,Tp);

}

else

UART0_SendStr("NORMOL!

");

UART0_SendStr(Tp);//发送温度

UART0_SendStr("\r\n");//回车

DisText(0xc4,Tp);//显示当前温度

T0IR=0x02;//清除MR1中断标志

VICVectAddr=0x00;//通知VIC中断处理结束

T0TCR=1;//计数器使能

}

在以上程序是环境温度起判断作用的关键,设定安全温度为15℃和10℃,当环境温度高于15℃或者低于10℃时,系统报警,LED灯开始闪烁。

当温度正常时,LED的状态为熄灭。

5.程序调试及仿真

1.环境温度在正常范围内时:

2.环境温度过低

(截图原因LED实为闪烁状态)

 

3.环境温度过高

(截图原因LED实为闪烁状态)

 

6设计体会

调试取得成功,达到了设计的目的,系统能够实现温度的超限报警功能,系统不足之处是初始温度只能通过软件方法进行设置,解决办法是可以加入两组按键进行初始温度的设置,可以做的改进有在液晶上加入时间模块,这样会使整个系统的功能更完整,资源得到最大限度的利用,减少资源浪费,产生最大的经济效益。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1