《2022年基于ARM与DSB的数字温度计的设计.docx》由会员分享,可在线阅读,更多相关《2022年基于ARM与DSB的数字温度计的设计.docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源综合电子课程设计总 结 报 告设计工程:基于 ARM7 与 DS18B20 地数字温度计地设计工程完成人:指导老师:学院:信息与运算机工程学院专业:电子信息工程2021 级 3 班2021 年 7 月 7 日综合电子课程设计任务书同学姓名学号专业(班级)08 级电信 3 班同组成员设计工程基于 ARM7 与 DS18B20 地数字温度计地设计欢迎下载精品学习资源设计内容本 设 计 利 用 DS18B20智 能 温 度 传 感 器 、 ARM7LPC2131嵌 入 式 系 统 、MS12864LCD液晶屏 ,设计一个数字温度采集系统.人机接口电路地设计:掌握系统采纳ARM7LPC21
2、31, 键盘采纳独立按键,显示器采纳MS12864液晶屏 , 温度超限报警采纳LED.欢迎下载精品学习资源欢迎下载精品学习资源主要技术指标和要求1.测量温度范畴: -50 150;2.精度: 0.5;3.线性度: 0.3;4. 超限报警功能;5. 具有温度和时间显示功能;6. 工作电压:总线供电 .欢迎下载精品学习资源设计所用仪器设备1. ARM7 LPC2138小系统;2. 高精度温度计;3. 数字万用表;4. 示波器 .1. 2021 年 6 月 22 日:下达课程设计任务书;2. 2021 年 6 月 23 日:撰写开题报告;3. 2021 年 6 月 25 日:开题答辩PPT;工作方案
3、4. 2021 年 6 月 26 日 6 月 27 日:硬件分析与设计、软件结构化设计;5. 2021 年 6 月 28 日 7 月 9 日:电路焊接与组装、软件结构化编程、单元调试、系统联调、撰写课程设计总结报告;6. 2021 年 7 月 10 日: 课程设计结题验收,提交数字温度计系统一套、总结报告一份.参考资料温度传感器 DS18B20 芯片资料液晶屏 MS12864R 中文资料嵌入式 ARM7 LPC2131开发板系统原理指导老师签子系主任签字数字温度计地设计摘 要本系统用 ARM7LPC2131 、温度传感器DS18B20 、液晶屏12864、LED 等组成 ,系统可实现实时显示当
4、前室内温度功能.系统除基本数字温度计功能外,仍具有显示当前时间和日期、温度超限报 警、设置时间和日期初值功能.在设计中我们应用ARM7 开发板 .ARM7 开发板具有丰富地硬件资源.本设计采纳LPC2131 掌握可编程芯片 DS18B20 实现对温度地采集 .利用 LPC213 内部时钟资源采集时间和日期.温度、时间和日期通过液晶屏 12864 显示,温度超限报警通过LED 闪耀提示 .本文具体介绍了如何实现对DS18B20 编程采集温度功能 ,以及如何采集 ARM7LPC2131 内部时钟资源 ,并实现键盘输入修改日期时间、温度超限报警等功能.关键词: LPC2131 ; DS18B20 ;
5、 12864;温度超限报警;欢迎下载精品学习资源欢迎下载精品学习资源目 录1 绪论.2.1.1 引言21.2 系统方案设计31.3 方案论证32 系统主要器件选型与依据 .4.2.1 EasyARM2131 开发板42.2 温度传感器 DS18B20.52.3 MS12864R 液晶屏简介63 系统地硬件设计 .9.3.1 ARM7 开发板硬件设计93.2 LCD 液晶屏显示设计93.3 DS18B20 温度传感器地设计104 系统地软件设计 .1 1.4.1 系统主流程图114.2 温度传感器功能模块124.3 液晶显示功能模块125 总结.1.3.参考文献附录 A数字温度计设计1 绪论1.
6、1 引言近年来随着科技地飞速进展,嵌入式地应用正在不断深化,同时带动传统掌握检测技术日益更新.在实时检测和自动掌握地嵌入式应用系统中,嵌入式往往作为一个核心部件来使用,仅嵌入式方面学问是不够地, 仍应依据具体硬件结构软硬件结合,加以完善 .温度是一种最基本地环境参数,人们生活与环境温度息息相关,在工业生产过程中需要实时测量温度,欢迎下载精品学习资源在工业生产中也离不开温度地测量 ,因此讨论温度地测量方法和掌握具有重要地意义 .DS18B20 是美国DALLAS 半导体公司继 DS1820 之后最新推出地一种改进型智能温度传感器 ,通过此次工程设计 ,可以在原有地理论基础上 ,更加深化地明白传感
7、器地工作原理特殊是 DS18B20 温度传感器地工作原理 ,同时提高我们地实践动手才能以及规律思维才能 ,特殊是拓宽了对 ARM 掌握器地使用视野 .数字温度计地掌握方式很多 .本系统采纳 LPC2000 系列 ARM 芯片和可编程串行 I/O 接口芯片 DS18B20 为中心器件来设计数字温度计 ,实现了设计一个数字温度采集系统 ,利用LCD 液晶屏显示当前温度、时间和日期 ,并具有温度超限报警功能1.2 系统方案设计利用掌握芯片、温度传感器、LCD 液晶屏、时钟资源、 LED 等分别实现:( 1)实时显示当前室内温度( 2)显示年、月、日、星期、时、分、秒;( 3)能够通过键盘输入日期和时
8、间地初值;( 4)温度超限报警;图 1-1 为设计方案总体框图按键欢迎下载精品学习资源温度 传感器ARM7报警LPC2131模块欢迎下载精品学习资源显示欢迎下载精品学习资源图 1-1 设计方案总体框图系统初始化后 ,LCD上显示当前室内温度,同时 LCD上显示时间和日期,通过功能键能实现日期和时间地初值设定 ,假如温度超过预先设定地温度值,八个 LED 灯会闪耀提示温度超限.1.3 方案论证(1) 显示模块方案一:使用 LCD 液晶屏 12864 作为时间日期显示 ,LCD 液晶显示器地构造是在两片平行地玻璃当中放置液态地晶体 ,两片玻璃中间有很多垂直和水平地细小电线 ,透过通电与否来掌握杆状
9、水晶分子转变方向,将光线折射出来产生画面 .显示清晰 ,实现功能全 .方案二:使用 8 为数码管作为显示 ,通过芯片 HD7279 掌握数码管 ,可实现时间和日期仍有当前温度显示,缺点是数码管显示数字 ,显示不敏捷多变 .由于 LCD 可同时显示温度和时间 ,显示清晰 ,实现功能全 .应选用方案一 LCD12864 作为显示模块 .(2) 温度传感器DS18B20 数字温度传感器 ,该产品采纳美国DALLAS公司生产地 DS18B20 可组网数字温度传感器芯片封装而成 ,具有耐磨耐碰 ,体积小 ,使用便利 ,封装形式多样 ,适用于各种狭小空间设备数字测温顺掌握领域.由于 DS18B20 性能已
10、经够好 ,掌握起来也比较便利 ,故不需要对比 ,直接选用 DS18B20 作为温度传感器( 3 时钟电路模块方案一: DS1302 一种高性能、低功耗、带RAM 地实时时钟电路 ,它可以对年、月、日、周日、时、分、秒进行计时 ,具有闰年补偿功能,工作电压为 2.5V 5.5V.采纳三线接口与 CPU 进行同步通信 ,并可采纳突发方式一次传送多个字节地时钟信号或RAM 数据 .DS1302 内部有一个 318 地用于暂时性存放数据地RAM 寄存器 .方案二: ARM7LPC2131 具有丰富地硬件资源 ,直接编程即可使用内部时钟资源由于使用 DS1302 仍得外接电路而且编程比较麻烦,应选用 A
11、RM7 内部时钟资源( 4)报警电路报警电路采纳 8 只 LED, 掌握便利、精确 .2 系统主要器件选型及依据2.1 EasyARM2131 开发板EasyARM2131开发板是广州周立功公司设计地EasyARM系列开发套件之一 ,采纳 了 PHILIPS公司基于 ARM7TDMI-S核、单电源供电、LQFP64 封装地 LPC2131, 具有 JTAG 仿真调试、 ISP 编程等功能 .开发板上供应了一些键盘、LED 、蜂鸣器等常用功能部件,仍具有 RS232 接口电路、 I2C 储备器电路 .另外 , 用户也可以更换兼容地CPU 进行仿真调试 ,如 LPC2132 、LPC2138 、
12、LPC2142 等.敏捷地跳线组合(开发 板内使用地全部 I/O 均可断开连接) ,仍有用户 I/O 接 口,极大地便利了用户进行32 位 ARM 嵌入式系统地开发试验 .EasyARM2131 试验板功能特点:* 完全自主设计地软硬件、拥有自主版权地JTAG 仿真技术;* 支持 ADS1.2 集成开发环境及其PHILIPS 全部型号 ARM 微掌握器地仿真与开发;* 采纳 “主板 CPU PACK 适配器 SD 卡适配器(标准配置)多种可选配置适配器”* 地 形 式构成 EasyARM2131开发 套 件,标 准 配置地 CPU PACK主 芯片为LPC2131FBD ;* 板上地功能部件与
13、CPU 之间 ,可以使用跳线器挑选连接;* 全面支持 9 种型号地 64 PIN 小管脚 ARM7 微掌握器: LPC213x ( LPC2131/2132/2134/2136/2138 )内置 USB 接口地 LPC214xLPC2142/2144/2146/2148* 多种免费商业化软件包及其具体地开发文档:* 移植 C/OS II 到 ARM7 软件包* 数据队列软件包欢迎下载精品学习资源* 串口驱动软件包* MODEM接口软件包* SPI 总线软件包* I2C 总线软件包* ZLG/FS V1.0版本文件治理系统软件包* ZLG/GUI图形用户界面软件包* ZLG/SD卡读写软件包*
14、ZLG/USB固件程序及其驱动程序软件包* 多种可选配置适配器:各种型号地 CPU PACK, 用户可按需求和喜好配置主ARM 芯片 MG12864 点阵图型液晶模块* 全部 I/O 口全部引出 ,便利用户连接外部电路地开发与使用;* 可进行 GPIO 地掌握试验 ,如键盘输入、蜂鸣器掌握、模拟SPI 等;* 6 个独立按键 可用于外部中断、定时器捕捉输入,8 个 LED 指示灯;* 具有 RS232 转换电路 ,可与上位机进行通讯 ,完成 UART 通讯试验;* 可以与标准串行modem 直接接口 ,便利远程通讯;* 具有 I2C 接口和 SPI/SSP接口输出;* 供应基于 PC 地人机界
15、面 ,便利调试实时时钟、串口通信等功能;* 可进行外部中断试验 ,学习向量中断掌握器 VIC ;* 定时器掌握试验,如定时掌握 LED 、定时器捕捉等;* 使用板内地CAT1025 (内含复位功能),完成 I2C 总线地试验;* 使用 74HC595 芯片 ,实现 SPI 接口数据发送、接收试验;* A/D转换试验; DAC 转换试验(更换 CPU 为 LPC2132 及以上);* 实时时钟掌握试验;* WDT及低功耗掌握试验;* 54 个基础试验及其大量地中间件软件包,完整地验证了几乎全部地硬件功能资源;* 具体地配套资料深化浅出 ARM7 LPC213x/214x 上/下册 ,北航出版社
16、,其 中上册为标准配置.2.2 温度传感器 DS18B20DS18B20 数字温度计是 DALLAS公司生产地 1 Wire, 即单总线器件 ,具有线路简洁 ,体积小地特点 .因此用它来组成一个测温系统, 具有线路简洁, 在一根通信线,可以挂很多这样地数字温度计, 非常便利 .DS18B20产品地特点(1)、只要求一个端口即可实现通信.( 2) 、 在DS18B20中 地 每 个 器 件 上 都 有 独 一 无 二 地 序 列 号 .( 3) 、 实 际 应 用 中 不 需 要 外 部 任 何 元 器 件 即 可 实 现 测 温 .(4)、测量温度范围在55.C到125.C之间.( 5) 、
17、数 字 温 度 计 地 分 辨 率 用 户 可 以 从9位 到12位 选 择 .( 6)、内部有温度上、下限告警设置.DS18B20地引脚介绍TO 92 封装地 DS18B20 地引脚排列见图 1,其引脚功能描述见表1.欢迎下载精品学习资源DS18B20地使用方法由于 DS18B20 采纳地是1 Wire 总线协议方式 ,即在一根数据线实现数据地双向传输,而对 AT89S51单片机来说 ,硬件上并不支持单总线协议,因此 ,我们必需采纳软件地方法来模拟单总线地协议时序来完成对DS18B20芯片地访问.由于 DS18B20 是在一根I/O 线上读写数据 ,因此 ,对读写地数据位有着严格地时序要求.
18、DS18B20 有严格地通信协议来保证各位数据传输地正确性和完整性.该协议定义了几种信号地时序:初始化时序、读时序、写时序 .全部时序都是将主机作为主设备,单总线器件作为从设备.而每一次命令和数据地传输都是从主机主动启动写时序开头,假如要求单总线器件回送数据,在进行写命令后 ,主机需启动读时序完成数据接收.数据和命令地传输都是低位在先. DS18B20 地复位时序DS18B20地读时序对 于DS18B20地 读 时 序 分 为 读0时 序 和 读1时 序 两 个 过 程 .对于 DS18B20 地读时隙是从主机把单总线拉低之后,在 15 秒之内就得释放单总线 ,以让 DS18B20 把数据传输
19、到单总线上 .DS18B20 在完成一个读时序过程 ,至少需要 60us 才能完成 .DS18B20地写时序对 于DS18B20地 写 时 序 仍 然 分 为 写0时 序 和 写1时 序 两 个 过 程 . 对于 DS18B20 写 0 时序和写 1 时序地要求不同,当要写0 时序时 ,单总线要被拉低至少60us,保证DS18B20 能够在 15us 到 45us 之间能够正确地采样IO 总线上地 “ 0电”平 ,当要写 1 时序时 ,单总线被拉低之后,在 15us 之内就得释放单总线 .欢迎下载精品学习资源2.3 MS12864R 液晶屏简介MS12864R 汉字图形点阵液晶显示模块,可显示
20、汉字及图形,内置 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 驱动电压输
21、入端4RSCSH/L并行地指令 /数据挑选信号;串行地片选信号5R/WSIDH/L并行地读写挑选信号;串行地数据口6ECLKH/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.5 5.5V电源
22、地 GND : 0V工作温度 Ta:0 60 常温 / -20 75(宽温) 接口时序模块有并行和串行两种连接方法(时序如下):欢迎下载精品学习资源8 位并行连接时序图MPU 写资料到模块MPU 从模块读出资料串行连接时序图串行数据传送共分三个字节完成:第一字节:串口掌握 格式 11111ABCA 为数据传送方向掌握: H 表示数据从 LCD 到 MCU,L 表示数据从 MCU 到 LCD B 为数据类型挑选:H 表示数据是显示数据 ,L 表示数据是掌握指令C 固定为 0欢迎下载精品学习资源其次字节: 并行 8 位数据地高 4 位 格式 DDDD0000 第三字节: 并行 8 位数据地低 4
23、位 格式 0000DDDD 串行接口时序参数: 测试条件: T=25 VDD=4.5V3 硬件设计3.1 ARM7 开发板硬件设计系统原理图设计如图3-1 所示 ,ARM7 LPC213 系统实现如下功能:( 1)掌握温度传感器DS18B20 读取当前温度值;( 2)掌握 ARM7 内部时钟资源读取时间和日期;( 3)掌握 LCD 液晶屏显示当前温度、时间和日期;( 4)掌握 LED 温度超限报警 .图 3-1 系统原理图3.2 LCD 液晶屏显示设计:LCD 液晶屏显示电路如图3-2 所示 .该液晶可实现显示当前年、月、日、周、时、分秒和温度值,具体掌握和实现方法如下:欢迎下载精品学习资源(
24、 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
25、.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
26、 初始化、液晶屏初始化;( 2)初始化之后显示当前室内温度同时显示日期和时间;( 3)与此同时进行按键判定,假如有按键连续判定是什么按键,假如是修改时间按键那么修改时间; 假如是修改日期按键那么修改日期.如没有按键按下 ,那么判定室内温度是否超过预先设定值,假如超过驱动 LED 闪耀报警 .欢迎下载精品学习资源开头系统初始化显示时间、日期、温度N有按键?Y修改年?Y修改年值N修改月?Y修改月值NY修改日?修改日值N修改周?Y修改周值N修改时?Y修改时值N修改分?Y修改分值N温度超过限?YLED 闪烁报警N图 4-1 系统主流程图4.2 温度传感器功能模块图 4-2 为温度传感器功能模块流程图;
27、欢迎下载精品学习资源开头初始化温度传感器向温度传感器写指令读取温度传感器数据数据转化为温度显示终止图 4-2 温度传感器功能模块流程图4.3 液晶显示功能模块图 4-3 为液晶显示功能模块流程图;开头LCD 初始化写命令到 LCD写数据到 LCD显示图 4-3 液晶显示功能模块流程图5 总结本系统利用掌握芯片、温度传感器、LCD 液晶屏、 LED 等分别实现:( 1)实时显示当前室内温度( 2)显示年、月、日、星期、时、分、秒;( 3)能够通过键盘输入日期和时间地初值;( 4)温度超限报警;欢迎下载精品学习资源系统设计简便、有用性强、操作简洁、程序设计简便.系统不足:时间和日期初值设定中利用按
28、键较多,此外仍没有充分考虑到温度超限报警地多变性 ,温度报警上限不行调剂 ,只能预先程序中设定超限报警温度值 .一周地综合电子工艺课程设计终止了,可能在别人看来 ,这或许只是一个小地设计, 可是它给于我地却不仅仅是这样 ,仔细地做课程设计 ,运用 ARM做一个系统地东西 ,我从心里赐予了足够地重视.刚开头做总是出问题 ,多次重新分析 ,从细节着手查找问题 ,最终找到了 .发觉自己想象地太多、太复杂,实际上只需要很简洁地一种方法就可以地,问题解决了 ,也给我很多收成.我觉得自己地方法不行行,关键地缘由在于自己对ARM地工作原理没有透彻地懂得,所以就不能很好地懂得老师地设计要求,结果就造成了很多地
29、弯路,找不到一种合理地途径去解决问题.期望以后有机会可以多做一些这样地设计,增强自己地设计意识,加深所学地学问 .参考文献1 郁有文传 .感器原理及工程应用(第三版).西安电子科技出版社 ,2021.72 阎石 .数字电子技术基础(第四版).高等训练出版社 ,1998.113 周立功 .ARM 嵌入式系统基础教程(其次版).北京航空航天高校出版社,2021.9欢迎下载精品学习资源4 汪建军 .基于非平稳电桥地电阻数字温度计设计J. 浙江万里学院学报,20215 老虎工作室 .电路设计与制板 protel99se 典型实例 .人民邮电出版社6 宋文绪、杨帆 .传感器与检测技术M. 高等训练出版社
30、 ,2004:欢迎下载精品学习资源附录 A/* 描述 :* ( 1)此程序全部延时采纳定时器做( 2)开发板上地P0.30 口连接温度传感器DQ 口线( 3)开发板上 P0.0-P0.7 口连接液晶屏地 DBO-DB7, 其他液晶口线连接详见程序中宏定义( 4)如需液晶显示地更清晰,需在液晶屏上加 10K 电位器 ,调剂液晶屏输入参考电压*/ #include #define eq 130#define uint8unsigned char #define Fpclk 11059200#definekey1 116#definekey2 117#definekey3 118#definekey
31、4 119#definekey5 120#definekey6 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
32、clear_screen0x01 #define reset_address0x02#define set_point0x06 / 0000_0110 #define display_set0x0c / 显示设定#define cursor_shift_control 0x1c /0001_1100#define function_set0x30 / 功能设定 基本指令集#define function_set_ext0x36 / 功能设定 扩充指令集 绘图开/#define set_CGRAM_ADD #define set_DDRAM_ADD0x80/#define write_data_
33、intenalRAMunsigned char digit10=0123456789;/定义字符数组显示数字void delay1uunsigned long t欢迎下载精品学习资源T1PR= 0x00000000 ; /Load prescalerT1TCR = 0x00000003 ; /Reset counter and prescalerT1MCR = 0x00000003 ; /On match reset the counter and generate an interrupt T1MR0 = t*0x0f;/Set the cycle timeT1TCR = 0x0000000
34、1 ; /enable timerwhileT1IR & 0x01 = 0;T1IR = 0x01 ;T1TCR = 0x00000000 ;/*/*/void LCD_DATA_inputIO0DIR = IO0DIR & LCD_DATA; /把 p1.16-p1.23 设定为输入/*/void LCD_DATA_outputIO0DIR = IO0DIR | LCD_DATA; /设定 p0.0-p0.7 为输出/*/void CheckState /状态检查 ,LCD 是否忙?delay1u200 ;欢迎下载精品学习资源/whileread_instruct ;/*/*函数名称: GPIO_Init*函数功能:初始化IO 端口 ,包含一个 uart0, 三个按键输入 ,以及几个一般地输入输出端口.*入口参数:无*出口参数:无*/*void GPIO_initPINSEL0 = 0 ;IO0DIR = 0xFF8 ;*/*函数名称: w_dataunsigned char data_Lcm*函数功能:给 LCD 发送数据或者命令 .*入口参数: data_Lcm*出口参数:无*/vo