基于ARM7与DS18B20的数字温度计的设计课程设计总结报告_第1页
基于ARM7与DS18B20的数字温度计的设计课程设计总结报告_第2页
基于ARM7与DS18B20的数字温度计的设计课程设计总结报告_第3页
基于ARM7与DS18B20的数字温度计的设计课程设计总结报告_第4页
基于ARM7与DS18B20的数字温度计的设计课程设计总结报告_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1课程设计综合电子课程设计总 结 报 告设计项目: 基于arm7与ds18b20的数字温度计的设计 项目完成人: 指导教师: 学 院: 信息与计算机工程学院 专 业: 2011年7月7日综合电子课程设计任务书学生姓名 学号 专业(班级)08级电信3班同组成员 设计项目基于arm7与ds18b20的数字温度计的设计设计内容本设计利用ds18b20智能温度传感器、arm7 lpc2131嵌入式系统、ms12864lcd液晶屏,设计一个数字温度采集系统。人机接口电路的设计:控制系统采用arm7 lpc2131,键盘采用独立按键,显示器采用ms12864液晶屏,温度超限报警采用led。主要技术指标和要

2、求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日:电路焊接与组装、软件结构化编程、单元调试、系统联调、撰写课程设计总结报告;62011年7月10日: 课程设计结题验收

3、,提交数字温度计系统一套、总结报告一份。参考资料温度传感器ds18b20芯片资料液晶屏ms12864r中文资料嵌入式arm7 lpc2131开发板系统原理指导教师签子系主任签字数字温度计的设计摘 要本系统用arm7 lpc2131、温度传感器ds18b20、液晶屏12864、led等组成,系统可实现实时显示当前室内温度功能。系统除基本数字温度计功能外,还具有显示当前时间和日期、温度超限报警、设置时间和日期初值功能。在设计中我们应用arm7开发板。arm7开发板具有丰富的硬件资源。本设计采用lpc2131控制可编程芯片ds18b20实现对温度的采集。利用lpc213内部时钟资源采集时间和日期。温

4、度、时间和日期通过液晶屏12864显示,温度超限报警通过led闪烁提示。本文详细介绍了如何实现对ds18b20编程采集温度功能,以及如何采集arm7 lpc2131内部时钟资源,并实现键盘输入修改日期时间、温度超限报警等功能。关键词:lpc2131;ds18b20;12864;温度超限报警; 52目 录1 绪论2 1.1 引言.21.2 系统方案设计31.3 方案论证32系统主要器件选型与依据42.1 easyarm2131 开发板.42.2温度传感器ds18b20.52.3 ms12864r液晶屏简介.63系统的硬件设计93.1 arm7开发板硬件设计.93.2 lcd液晶屏显示设计.93.

5、3 ds18b20温度传感器的设计. .104 系统的软件设计114.1系统主流程图114.2温度传感器功能模块124.3液晶显示功能模块125 总结13参考文献附录a 数字温度计设计1绪论 1.1引言近年来随着科技的飞速发展,嵌入式的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的嵌入式应用系统中,嵌入式往往作为一个核心部件来使用,仅嵌入式方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。温度是一种最基本的环境参数,人们生活与环境温度息息相关,在工业生产过程中需要实时测量温度,在工业生产中也离不开温度的测量,因此研究温度的测量方法和控制具有重要的意义。ds

6、18b20是美国dallas半导体公司继ds1820之后最新推出的一种改进型智能温度传感器,通过此次项目设计,可以在原有的理论基础上,更加深入的了解传感器的工作原理特别是ds18b20温度传感器的工作原理,同时提高我们的实践动手能力以及逻辑思维能力,特别是拓宽了对arm控制器的使用视野。数字温度计的控制方式很多。本系统采用lpc2000系列arm芯片和可编程串行i/o接口芯片ds18b20为中心器件来设计数字温度计,实现了设计一个数字温度采集系统,利用lcd液晶屏显示当前温度、时间和日期,并具有温度超限报警功能1.2 系统方案设计 利用控制芯片、温度传感器、lcd液晶屏、时钟资源、led等分别

7、实现:(1)实时显示当前室内温度(2)显示年、月、日、星期、时、分、秒;(3)能够通过键盘输入日期和时间的初值;(4)温度超限报警;图1-1为设计方案总体框图温度传感器显示arm7lpc2131报警模块按键图1-1设计方案总体框图系统初始化后,lcd上显示当前室内温度 ,同时lcd上显示时间和日期,通过功能键能实现日期和时间的初值设定,如果温度超过预先设定的温度值,八个led灯会闪烁提示温度超限。1.3方案论证(1)显示模块方案一:使用lcd液晶屏12864作为时间日期显示,lcd 液晶显示器的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制

8、杆状水晶分子改变方向,将光线折射出来产生画面。显示清晰,实现功能全。方案二:使用8为数码管作为显示,通过芯片hd7279控制数码管,可实现时间和日期还有当前温度显示,缺点是数码管显示数字,显示不灵活多变。由于lcd可同时显示温度和时间,显示清晰,实现功能全。故选用方案一lcd12864作为显示模块。(2) 温度传感器ds18b20数字温度传感器,该产品采用美国dallas公司生产的 ds18b20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。由于ds18b20性能已经够好,控制起来也比较方便,故不需要对比,直接选用ds

9、18b20作为温度传感器(3) 时钟电路模块方案一:ds1302一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时性存放数据的ram寄存器。方案二:arm7lpc2131具有丰富的硬件资源,直接编程即可使用内部时钟资源由于使用ds1302还得外接电路而且编程比较麻烦,故选用arm7内部时钟资源(4)报警电路报警电路采用8只led,控制方便、准确。2 系统主要器件选型及依据2.1 ea

10、syarm2131 开发板easyarm2131 开发板是广州周立功公司设计的 easyarm 系列开发套件之一,采用 了 philips 公司基于 arm7tdmi-s 核、单电源供电、lqfp64 封装的 lpc2131,具有 jtag 仿真调试、isp 编程等功能。开发板上提供了一些键盘、led、蜂鸣器等常用功能部件,还具有rs232 接口电路、 i2c存储器电路。另外,用户也可以更换兼容的cpu进行仿真调试,如lpc2132、lpc2138、 lpc2142 等。灵活的跳线组合(开发板内使用的所有i/o均可断开连接),还有用户i/o接 口,极大地方便了用户进行 32 位arm嵌入式系统

11、的开发实验。easyarm2131 实验板功能特点:* 完全自主设计的软硬件、拥有自主版权的 jtag 仿真技术;* 支持 ads1.2 集成开发环境及其 philips 所有型号 arm 微控制器的仿真与开发;* 采用“主板cpu pack 适配器sd 卡适配器(标准配置)多种可选配置适配器”* 的 形 式构成 easyarm2131 开发 套 件,标 准 配置的 cpu pack 主 芯片为 lpc2131fbd;* 板上的功能部件与 cpu 之间,可以使用跳线器选择连接;* 全面支持 9 种型号的 64 pin 小管脚 arm7 微控制器:lpc213x(lpc2131/2132/213

12、4/2136/2138)内置 usb 接口的 lpc214x(lpc2142/2144/2146/2148)* 多种免费商业化软件包及其详细的开发文档:* 移植c/osii到arm7 软件包* 数据队列软件包* 串口驱动软件包* modem接口软件包* spi总线软件包* i2c总线软件包* zlg/fs v1.0 版本文件管理系统软件包* zlg/gui图形用户界面软件包* zlg/sd卡读写软件包* zlg/usb固件程序及其驱动程序软件包* 多种可选配置适配器:各种型号的 cpu pack,用户可按需求和喜好配置主 arm 芯片mg12864 点阵图型液晶模块* 所有 i/o 口全部引出

13、,方便用户连接外部电路的开发与使用;* 可进行 gpio 的控制实验,如键盘输入、蜂鸣器控制、模拟 spi 等;* 6 个独立按键(可用于外部中断、定时器捕获输入),8 个 led 指示灯;* 具有 rs232 转换电路,可与上位机进行通讯,完成 uart 通讯实验;* 可以与标准串行 modem 直接接口,方便远程通讯;* 具有i2c接口和spi/ssp接口输出;* 提供基于 pc 的人机界面,方便调试实时时钟、串口通信等功能;* 可进行外部中断实验,学习向量中断控制器(vic);* 定时器控制实验,如定时控制 led、定时器捕获等;* 使用板内的cat1025(内含复位功能),完成i2c总

14、线的实验;* 使用 74hc595 芯片,实现 spi 接口数据发送、接收实验;* a/d 转换实验;dac 转换实验(更换 cpu 为 lpc2132 及以上);* 实时时钟控制实验;* wdt 及低功耗控制实验;* 54 个基础实验及其大量的中间件软件包,完整地验证了几乎所有的硬件功能资源;* 详细的配套资料(深入浅出 arm7lpc213x/214x(上/下册),北航出版社,其 中上册为标准配置)。2.2 温度传感器ds18b20ds18b20数字温度计是dallas公司生产的1wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可

15、以挂很多这样的数字温度计,十分方便。 ds18b20产品的特点(1)、只要求一个端口即可实现通信。(2)、在ds18b20中的每个器件上都有独一无二的序列号。(3)、实际应用中不需要外部任何元器件即可实现测温。(4)、测量温度范围在55。c到125。c之间。(5)、数字温度计的分辨率用户可以从9位到12位选择。(6)、内部有温度上、下限告警设置。 ds18b20的引脚介绍to92封装的ds18b20的引脚排列见图1,其引脚功能描述见表1。ds18b20的使用方法由于ds18b20采用的是1wire总线协议方式,即在一根数据线实现数据的双向传输,而对at89s51单片机来说,硬件上并不支持单总线

16、协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对ds18b20芯片的访问。由于ds18b20是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 ds18b20的复位时序ds18b20的读时序对于ds18b20的读时序分为读0时序和读1

17、时序两个过程。对于ds18b20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让ds18b20把数据传输到单总线上。ds18b20在完成一个读时序过程,至少需要60us才能完成。ds18b20的写时序对于ds18b20的写时序仍然分为写0时序和写1时序两个过程。对于ds18b20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证ds18b20能够在15us到45us之间能够正确地采样io总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。2.3 ms12864r液晶屏简介ms12864r汉字图形点阵液晶显示模块,可显

18、示汉字及图形,内置8192个中文汉字(16x16点阵)、128个字符(8x16点阵)及64x256点阵显示ram(gdram)。主要技术参数和显示特性:电源:vdd 3.3v+5v(内置升压电路,无需负压);显示内容:128列 64行显示颜色:黄绿显示角度:6:00钟直视lcd类型:stn与mcu接口:8位或4位并行/3位串行配置led背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等模块引脚说明ms128x64r 引脚说明引脚号引脚名称方向功能说明1vss-模块的电源地2vdd-模块的电源正端3v0-lcd驱动电压输入端4rs(cs)h/l并行的指令/数据选择信号;串行的片选信号5

19、r/w(sid)h/l并行的读写选择信号;串行的数据口6e(clk)h/l并行的使能信号;串行的同步时钟7db0h/l数据08db1h/l数据19db2h/l数据210db3h/l数据311db4h/l数据412db5h/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(宽温)接口时序模块有并

20、行和串行两种连接方法(时序如下):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.1 arm7开发板硬件设计系统原理图设计如图3-1所示,arm7 lpc213系统实现如

21、下功能:(1)控制温度传感器ds18b20读取当前温度值;(2)控制arm7内部时钟资源读取时间和日期;(3)控制lcd液晶屏显示当前温度、时间和日期;(4)控制led温度超限报警。 图3-1 系统原理图3.2 lcd液晶屏显示设计:lcd液晶屏显示电路如图3-2所示。该液晶可实现显示当前年、月、日、周、时、分秒和温度值,具体控制和实现方法如下:(1)arm7的p0.0-p0.7口连接液晶屏的dbo-db7,控制对液晶屏并行数据读和写;(2)arm7的p0.8口连接液晶屏的rs口,控制并行的指令/数据选择信号;(3)arm7的p0.9口连接液晶屏的r/w口,控制并行的读写选择信号;(4)arm

22、7的p0.10口连接液晶屏的en口,控制并行的使能信号;(5)arm7的p0.11口连接液晶屏的psb口,控制并/串行接口选择:h-并行;l-串行;(6)arm7的p0.12口连接液晶屏的ret口,实现对液晶屏的复位,低电平有效; 图3-2lcd液晶屏电路图3.3 ds18b20温度传感器的设计电路如图3-3所示,该温度传感器电路可实现对温度传感器ds18b20数据的读写,具体控制方法如下:(1) arm7的p0.30口连接ds18b20的dq口,控制串行数据的读和写;(2) ds18b20 的vdd连接到arm7开发板的vdd上;(3) ds18b20 的gnd连接到arm7开发板的gnd上

23、;图3-3 温度传感器电路4 系统的软件设计4.1系统主流程图图4-1为系统主流程图,主流程图具体介绍如下:(1)系统初始化包括对ds18b20进行初始化、设定gpio、rtc初始化、液晶屏初始化;(2)初始化之后显示当前室内温度同时显示日期和时间;(3)与此同时进行按键判断,如果有按键继续判断是什么按键,如果是修改时间按键那么修改时间;如果是修改日期按键那么修改日期。如没有按键按下,那么判断室内温度是否超过预先设定值,如果超过驱动led闪烁报警。开始系统初始化显示时间、日期、温度有按键?nyny修改年?修改年值ny修改月?修改月值ny修改日?修改日值ny修改周?修改周值ny修改时?修改时值n

24、y修改分?修改分值温度超过限?ynled闪烁报警图4-1 系统主流程图4.2温度传感器功能模块图4-2为温度传感器功能模块流程图; 开始初始化温度传感器向温度传感器写指令读取温度传感器数据数据转化为温度显示结束图4-2 温度传感器功能模块流程图4.3液晶显示功能模块图4-3为液晶显示功能模块流程图; 开始lcd初始化写命令到lcd写数据到lcd显示图4-3 液晶显示功能模块流程图5总结本系统利用控制芯片、温度传感器、lcd液晶屏、led等分别实现:(1)实时显示当前室内温度(2)显示年、月、日、星期、时、分、秒;(3)能够通过键盘输入日期和时间的初值;(4)温度超限报警;系统设计简便、实用性强

25、、操作简单、程序设计简便。 系统不足:时间和日期初值设定中利用按键较多,此外还没有充分考虑到温度超限报警的多变性,温度报警上限不可调节,只能预先程序中设定超限报警温度值。一周的综合电子工艺课程设计结束了,可能在别人看来,这或许只是一个小的设计,可是它给于我的却不仅仅是这样,认真的做课程设计,运用arm做一个系统的东西,我从心里给予了足够的重视。刚开始做总是出问题,多次重新分析,从细节着手寻找问题,最后找到了。发现自己想象的太多、太复杂,实际上只需要很简单的一种方法就可以的,问题解决了,也给我很多收获。我觉得自己的方法不可行,关键的原因在于自己对arm的工作原理没有透彻的理解,所以就不能很好的理

26、解老师的设计要求,结果就造成了很多的弯路,找不到一种合理的途径去解决问题。希望以后有机会可以多做一些这样的设计,增强自己的设计意识,加深所学的知识。参考文献1 郁有文传.感器原理及工程应用(第三版).西安电子科技出版社,2008.72 阎石.数字电子技术基础(第四版).高等教育出版社,1998.113 周立功.arm嵌入式系统基础教程(第二版).北京航空航天大学出版社,2008.94 汪建军.基于非平衡电桥的电阻数字温度计设计j.浙江万里学院学报,20095 老虎工作室.电路设计与制板protel99se典型实例.人民邮电出版社6 宋文绪、杨帆.传感器与检测技术m.高等教育出版社,2004:附

27、录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 key4 119#define key5 120#def

28、ine 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 0x0

29、2#define set_point 0x06 / 0000_0110#define display_set 0x0c /显示设定#define cursor_shift_control 0x1c /0001_1100#define function_set 0x30 /功能设定 基本指令集#define function_set_ext 0x36 /功能设定 扩充指令集 绘图开/#define set_cgram_add #define set_ddram_add 0x80/#define write_data_intenalram unsigned char digit10=0123456

30、789; /定义字符数组显示数字void delay1u(unsigned long t) t1pr = 0x00000000; /load prescaler t1tcr = 0x00000003; /reset counter and prescaler t1mcr = 0x00000003; /on match reset the counter and generate an interrupt t1mr0 = t*0x0f; /set the cycle time t1tcr = 0x00000001; /enable timer while(t1ir & 0x01) = 0); t

31、1ir = 0x01; t1tcr = 0x00000000;/*/*/void lcd_data_input() io0dir = io0dir & (lcd_data); /把p1.16-p1.23设定为输入/*/void lcd_data_output() io0dir = io0dir | lcd_data; /设定p0.0-p0.7为输出/*/void checkstate( )/状态检查,lcd是否忙? delay1u(200);/while(read_instruct();/*/* 函数名称:gpio_init()* 函数功能:初始化io端口,包含一个uart0,三个按键输入,以

32、及几个普通的输入输出端口.* 入口参数:无* 出口参数:无 */*void gpio_init() pinsel0 = 0; io0dir = 0xff0; i-) io0dir |= eq; /改回输出io0set |= eq;delay1u(2); io0clr = eq; if(date&0x01) io0set |= eq; /释放总线 delay1u(80); else io0clr = eq; delay1u(80); delay1u(30); io0set |= eq; delay1u(3); date=1; delay1u(6);unsigned char read() uns

33、igned char i=0; unsigned char date = 0; for (i=8;i0;i-) date=1; io0dir |= eq; /改回输出io0set |= eq;delay1u(2); io0clr = eq; / 给脉冲信号 delay1u(2);io0set |= eq; delay1u(13); io0dir = io0dir&0xbfffffff; / 拉高总线输入 delay1u(12); if(io0pin&eq) date |=0x80; delay1u(3); return date; unsigned char innit() unsigned char num; io0dir |= eq; /稍做延时 io0clr = eq; /将dq拉低 delay1u(600); /精确延时 大于 480us 480 io0set = eq; delay1u(30); io0dir &= 0xbfffffff; /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论