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