基于ARM7与DS18B20的数字温度计的方案设计书.docx
《基于ARM7与DS18B20的数字温度计的方案设计书.docx》由会员分享,可在线阅读,更多相关《基于ARM7与DS18B20的数字温度计的方案设计书.docx(34页珍藏版)》请在冰豆网上搜索。
基于ARM7与DS18B20的数字温度计的方案设计书
综合电子课程设计
总结报告
设计项目:
基于ARM7与DS18B20的数字温度计的设计
项目完成人:
指导教师:
学院:
信息与计算机工程学院
专业:
电子信息工程2008级3班
2011年7月7日
综合电子课程设计任务书
学生姓名
学号
专业(班级)
08级电信3班
同组成员
设计项目
基于ARM7与DS18B20的数字温度计的设计
设计内容
本设计利用DS18B20智能温度传感器、ARM7LPC2131嵌入式系统、MS12864LCD液晶屏,设计一个数字温度采集系统。
人机接口电路的设计:
控制系统采用ARM7LPC2131,键盘采用独立按键,显示器采用MS12864液晶屏,温度超限报警采用LED。
主要技
术指标
和要求
1.测量温度范围:
-50℃~150℃;
2.精度:
±0.5℃;
3.线性度:
±0.3℃;
4.超限报警功能;
5.具有温度和时间显示功能;
6.工作电压:
总线供电。
设计所用仪器设备
1.ARM7LPC2138小系统;
2.高精度温度计;
3.数字万用表;
4.示波器。
工作计划
1.2011年6月22日:
下达课程设计任务书;
2.2011年6月23日:
撰写开题报告;
3.2011年6月25日:
开题答辩PPT;
4.2011年6月26日~6月27日:
硬件分析与设计、软件结构化设计;
5.2011年6月28日~7月9日:
电路焊接与组装、软件结构化编程、单元调试、系统联调、撰写课程设计总结报告;
6.2011年7月10日:
课程设计结题验收,提交数字温度计系统一套、总结报告一份。
参考资料
温度传感器DS18B20芯片资料
液晶屏MS12864R中文资料
嵌入式ARM7LPC2131开发板系统原理
指导教师签子
系主任签字
数字温度计的设计
摘要
本系统用ARM7LPC2131、温度传感器DS18B20、液晶屏12864、LED等组成,系统可实现实时显示当前室内温度功能。
系统除基本数字温度计功能外,还具有显示当前时间和日期、温度超限报警、设置时间和日期初值功能。
在设计中我们应用ARM7开发板。
ARM7开发板具有丰富的硬件资源。
本设计采用LPC2131控制可编程芯片DS18B20实现对温度的采集。
利用LPC213内部时钟资源采集时间和日期。
温度、时间和日期通过液晶屏12864显示,温度超限报警通过LED闪烁提示。
本文详细介绍了如何实现对DS18B20编程采集温度功能,以及如何采集ARM7LPC2131内部时钟资源,并实现键盘输入修改日期时间、温度超限报警等功能。
关键词:
LPC2131;DS18B20;12864;温度超限报警;
2.1EasyARM2131开发板.........................................................................................................4
2.2温度传感器DS18B20..........................................................................................................5
2.3MS12864R液晶屏简介.....................................................................................................6
3.1ARM7开发板硬件设计......................................................................................................9
3.2LCD液晶屏显示设计........................................................................................................9
3.3DS18B20温度传感器的设计..........................................................................................10
数字温度计设计
1绪论
1.1引言
近年来随着科技的飞速发展,嵌入式的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的嵌入式应用系统中,嵌入式往往作为一个核心部件来使用,仅嵌入式方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
温度是一种最基本的环境参数,人们生活与环境温度息息相关,在工业生产过程中需要实时测量温度,在工业生产中也离不开温度的测量,因此研究温度的测量方法和控制具有重要的意义。
DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器,通过此次项目设计,可以在原有的理论基础上,更加深入的了解传感器的工作原理特别是DS18B20温度传感器的工作原理,同时提高我们的实践动手能力以及逻辑思维能力,特别是拓宽了对ARM控制器的使用视野。
数字温度计的控制方式很多。
本系统采用LPC2000系列ARM芯片和可编程串行I/O接口芯片DS18B20为中心器件来设计数字温度计,实现了设计一个数字温度采集系统,利用LCD液晶屏显示当前温度、时间和日期,并具有温度超限报警功能
1.2系统方案设计
利用控制芯片、温度传感器、LCD液晶屏、时钟资源、LED等分别实现:
(1)实时显示当前室内温度
(2)显示年、月、日、星期、时、分、秒;
(3)能够通过键盘输入日期和时间的初值;
(4)温度超限报警;
图1-1为设计方案总体框图
图1-1设计方案总体框图
系统初始化后,LCD上显示当前室内温度,同时LCD上显示时间和日期,通过功能键能实现日期和时间的初值设定,如果温度超过预先设定的温度值,八个LED灯会闪烁提示温度超限。
1.3方案论证
(1)显示模块
方案一:
使用LCD液晶屏12864作为时间日期显示,LCD液晶显示器的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。
显示清晰,实现功能全。
方案二:
使用8为数码管作为显示,通过芯片HD7279控制数码管,可实现时间和日期还有当前温度显示,缺点是数码管显示数字,显示不灵活多变。
由于LCD可同时显示温度和时间,显示清晰,实现功能全。
故选用方案一LCD12864作为显示模块。
(2)温度传感器
DS18B20数字温度传感器,该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
由于DS18B20性能已经够好,控制起来也比较方便,故不需要对比,直接选用DS18B20作为温度传感器
(3)时钟电路模块
方案一:
DS1302一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
方案二:
ARM7LPC2131具有丰富的硬件资源,直接编程即可使用内部时钟资源
由于使用DS1302还得外接电路而且编程比较麻烦,故选用ARM7内部时钟资源
(4)报警电路
报警电路采用8只LED,控制方便、准确。
2系统主要器件选型及依据
2.1EasyARM2131开发板
EasyARM2131开发板是广州周立功公司设计的EasyARM系列开发套件之一,采用了PHILIPS公司基于ARM7TDMI-S核、单电源供电、LQFP64封装的LPC2131,具有JTAG仿真调试、ISP编程等功能。
开发板上提供了一些键盘、LED、蜂鸣器等常用功能部件,还具有RS232接口电路、I2C存储器电路。
另外,用户也可以更换兼容的CPU进行仿真调试,如LPC2132、LPC2138、LPC2142等。
灵活的跳线组合(开发板内使用的所有I/O均可断开连接),还有用户I/O接口,极大地方便了用户进行32位ARM嵌入式系统的开发实验。
EasyARM2131实验板功能特点:
*完全自主设计的软硬件、拥有自主版权的JTAG仿真技术;
*支持ADS1.2集成开发环境及其PHILIPS所有型号ARM微控制器的仿真与开发;
*采用“主板+CPUPACK适配器+SD卡适配器(标准配置)+多种可选配置适配器”
*的形式构成EasyARM2131开发套件,标准配置的CPUPACK主芯片为
LPC2131FBD;
*板上的功能部件与CPU之间,可以使用跳线器选择连接;
*全面支持9种型号的64PIN小管脚ARM7微控制器:
-LPC213x(LPC2131/2132/2134/2136/2138)
-内置USB接口的LPC214x(LPC2142/2144/2146/2148)
*多种免费商业化软件包及其详细的开发文档:
*移植μC/OS-II到ARM7软件包
*数据队列软件包
*串口驱动软件包
*MODEM接口软件包
*SPI总线软件包
*I2C总线软件包
*ZLG/FSV1.0版本文件管理系统软件包
*ZLG/GUI图形用户界面软件包
*ZLG/SD卡读写软件包
*ZLG/USB固件程序及其驱动程序软件包
*多种可选配置适配器:
-各种型号的CPUPACK,用户可按需求和喜好配置主ARM芯片
-MG12864点阵图型液晶模块
*所有I/O口全部引出,方便用户连接外部电路的开发与使用;
*可进行GPIO的控制实验,如键盘输入、蜂鸣器控制、模拟SPI等;
*6个独立按键(可用于外部中断、定时器捕获输入),8个LED指示灯;
*具有RS232转换电路,可与上位机进行通讯,完成UART通讯实验;
*可以与标准串行modem直接接口,方便远程通讯;
*具有I2C接口和SPI/SSP接口输出;
*提供基于PC的人机界面,方便调试实时时钟、串口通信等功能;
*可进行外部中断实验,学习向量中断控制器(VIC);
*定时器控制实验,如定时控制LED、定时器捕获等;
*使用板内的CAT1025(内含复位功能),完成I2C总线的实验;
*使用74HC595芯片,实现SPI接口数据发送、接收实验;
*A/D转换实验;DAC转换实验(更换CPU为LPC2132及以上);
*实时时钟控制实验;
*WDT及低功耗控制实验;
*54个基础实验及其大量的中间件软件包,完整地验证了几乎所有的硬件功能资源;
*详细的配套资料(《深入浅出ARM7—LPC213x/214x》(上/下册),北航出版社,其中上册为标准配置)。
2.2温度传感器DS18B20
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20产品的特点
(1)、只要求一个端口即可实现通信。
(2)、在DS18B20中的每个器件上都有独一无二的序列号。
(3)、实际应用中不需要外部任何元器件即可实现测温。
(4)、测量温度范围在-55。
C到+125。
C之间。
(5)、数字温度计的分辨率用户可以从9位到12位选择。
(6)、内部有温度上、下限告警设置。
DS18B20的引脚介绍
TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。
DS18B20的使用方法
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的复位时序
DS18B20的读时序
对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60us才能完成。
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)。
主要技术参数和显示特性:
电源:
VDD3.3V~+5V(内置升压电路,无需负压);
显示内容:
128列×64行
显示颜色:
黄绿
显示角度:
6:
00钟直视
LCD类型:
STN
与MCU接口:
8位或4位并行/3位串行
配置LED背光
多种软件功能:
光标显示、画面移位、自定义字符、睡眠模式等
模块引脚说明
MS128X64R引脚说明
引脚号
引脚名称
方向
功能说明
1
VSS
-
模块的电源地
2
VDD
-
模块的电源正端
3
V0
-
LCD驱动电压输入端
4
RS(CS)
H/L
并行的指令/数据选择信号;串行的片选信号
5
R/W(SID)
H/L
并行的读写选择信号;串行的数据口
6
E(CLK)
H/L
并行的使能信号;串行的同步时钟
7
DB0
H/L
数据0
8
DB1
H/L
数据1
9
DB2
H/L
数据2
10
DB3
H/L
数据3
11
DB4
H/L
数据4
12
DB5
H/L
数据5
13
DB6
H/L
数据6
14
DB7
H/L
数据7
15
PSB
H/L
并/串行接口选择:
H-并行;L-串行
16
NC
空脚
17
/RET
H/L
复位低电平有效
18
VOUT
19
LED_K
-
背光源负极(LED-OV)
20
LED_A
-
背光源正极(LED+5V)
逻辑工作电压(VDD):
4.5~5.5V
电源地(GND):
0V
工作温度(Ta):
0~60℃(常温)/-20~75℃(宽温)
接口时序
模块有并行和串行两种连接方法(时序如下):
8位并行连接时序图
MPU写资料到模块
MPU从模块读出资料
串行连接时序图
串行数据传送共分三个字节完成:
第一字节:
串口控制—格式11111ABC
A为数据传送方向控制:
H表示数据从LCD到MCU,L表示数据从MCU到LCD
B为数据类型选择:
H表示数据是显示数据,L表示数据是控制指令
C固定为0
第二字节:
(并行)8位数据的高4位—格式DDDD0000
第三字节:
(并行)8位数据的低4位—格式0000DDDD
串行接口时序参数:
(测试条件:
T=25℃VDD=4.5V)
3硬件设计
3.1ARM7开发板硬件设计
系统原理图设计如图3-1所示,ARM7LPC213系统实现如下功能:
(1)控制温度传感器DS18B20读取当前温度值;
(2)控制ARM7内部时钟资源读取时间和日期;
(3)控制LCD液晶屏显示当前温度、时间和日期;
(4)控制LED温度超限报警。
图3-1系统原理图
3.2LCD液晶屏显示设计:
LCD液晶屏显示电路如图3-2所示。
该液晶可实现显示当前年、月、日、周、时、分秒和温度值,具体控制和实现方法如下:
(1)ARM7的P0.0-P0.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口,实现对液晶屏的复位,低电平有效;
图3-2LCD液晶屏电路图
3.3DS18B20温度传感器的设计
电路如图3-3所示,该温度传感器电路可实现对温度传感器DS18B20数据的读写,具体控制方法如下:
(1)ARM7的P0.30口连接DS18B20的DQ口,控制串行数据的读和写;
(2)DS18B20的VDD连接到ARM7开发板的VDD上;
(3)DS18B20的GND连接到ARM7开发板的GND上;
图3-3温度传感器电路
4系统的软件设计
4.1系统主流程图
图4-1为系统主流程图,主流程图具体介绍如下:
(1)系统初始化包括对DS18B20进行初始化、设定GPIO、RTC初始化、液晶屏初始化;
(2)初始化之后显示当前室内温度同时显示日期和时间;
(3)与此同时进行按键判断,如果有按键继续判断是什么按键,如果是修改时间按键那么修改时间;如果是修改日期按键那么修改日期。
如没有按键按下,那么判断室内温度是否超过预先设定值,如果超过驱动LED闪烁报警。
图4-1系统主流程图
4.2温度传感器功能模块
图4-2为温度传感器功能模块流程图;
图4-2温度传感器功能模块流程图
4.3液晶显示功能模块
图4-3为液晶显示功能模块流程图;
图4-3液晶显示功能模块流程图
5总结
本系统利用控制芯片、温度传感器、LCD液晶屏、LED等分别实现:
(1)实时显示当前室内温度
(2)显示年、月、日、星期、时、分、秒;
(3)能够通过键盘输入日期和时间的初值;
(4)温度超限报警;
系统设计简便、实用性强、操作简单、程序设计简便。
系统不足:
时间和日期初值设定中利用按键较多,此外还没有充分考虑到温度超限报警的多变性,温度报警上限不可调节,只能预先程序中设定超限报警温度值。
一周的综合电子工艺课程设计结束了,可能在别人看来,这或许只是一个小的设计,可是它给于我的却不仅仅是这样,认真的做课程设计,运用ARM做一个系统的东西,我从心里给予了足够的重视。
刚开始做总是出问题,多次重新分析,从细节着手寻找问题,最后找到了。
发现自己想象的太多、太复杂,实际上只需要很简单的一种方法就可以的,问题解决了,也给我很多收获。
我觉得自己的方法不可行,关键的原因在于自己对ARM的工作原理没有透彻的理解,所以就不能很好的理解老师的设计要求,结果就造成了很多的弯路,找不到一种合理的途径去解决问题。
希望以后有机会可以多做一些这样的设计,增强自己的设计意识,加深所学的知识。
参考文献
[1]郁有文传.感器原理及工程应用(第三版).西安电子科技出版社,2008.7
[2]阎石.数字电子技术基础(第四版).高等教育出版社,1998.11
[3]周立功.ARM嵌入式系统基础教程(第二版).北京航空航天大学出版社,2008.9
[4]汪建军.基于非平衡电桥的电阻数字温度计设计[J].浙江万里学院学报,2009
[5]老虎工作室.电路设计与制板protel99se典型实例.人民邮电出版社
[6]宋文绪、杨帆.传感器与检测技术[M].高等教育出版社,2004:
附录A
/**********************************************************************************
*描述:
*
*
(1)此程序所有延时采用定时器做
(2)开发板上的P0.30口连接温度传感器DQ口线
(3)开发板上P0.0-P0.7口连接液晶屏的DBO-DB7,其他液晶口线连接详见程序中宏定义
(4)如需液晶显示的更清楚,需在液晶屏上加10K电位器,调节液晶屏输入参考电压
**
*******************************************************************************/
#include
#defineeq1<<30
#defineuint8unsignedchar
#defineFpclk11059200
#definekey11<<16
#definekey21<<17
#definekey31<<18
#definekey41<<19
#definekey51<<20
#definekey61<<21
intnn=0,yy=0,rr=0,zz=0,ss=0,ff=0,mm=0;
/*******************定义与LCD相关的宏*******************/
#defineLCD_DATA0xFF
#defineLCD_DI1<<8//与p0.8对应
#defineLCD_RW1<<9//与p0.9对应
#defineLCD_EN1<<10//与p0.10对应.
#defineLCD_PSB1<<11//与p0.11对应//电路直接拉高
#defineLCD_RST1<<12//与p0.12对应//上电自动复位,一般也可以不接*
#defineclear_screen0x01
#definereset_address0x02
#defineset_point0x06//0000_0110
#definedisplay_set0x0c//显示设定
#definecursor_shift_control0x1c//0001_1100
#definefunction_set0x30//功能设定基本