数字温度计设计报告毕业设计论文
数字温度计设计报告
学校:常州大学
院系:信息与电子工程系
班级:自动化141
姓名:肖磊蒋金林
指导老师:郑剑锋
时间:2016年12月1日
摘要
随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术 , 本文主要介绍了一个基于 89S51 单片机的测温系统,详细描述了利用数字温度传感器 DS18B20和时钟芯片DS1302 开发测温系统和时间系统的过程,并且通过芯片AT24C02进行数据掉电保存。重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感器 DS18B20和时钟芯片DS1302 的数据采集过程。对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和时间显示,并可根据需要任意设定上下限报警温度,更改当前时间。它们使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。 DS18B20 、DS1302与 AT89C51 结合实现最简温度,时间检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度时间测量,有广泛的应用前景。
关键词:单片机DS18B20 温度传感器时钟芯片DS1302 AT24C02 AT89S52
目录
1 概述 (4)
1.1 课程设计的意义 (4)
1.2 设计的任务和要求 (4)
2 系统总体方案及硬件设计 (5)
2.1 数字温度计设计方案论证 (5)
2.1.1 方案一 (5)
2.1.2 方案二 (5)
2.2 系统总体设计 (6)
2.3 系统模块 (7)
2.3.1 主控制器 (7)
2.3.2 显示电路 (8)
2.3.3 温度传感器 (8)
2.3.4时钟芯片 ..................................................................................
2.3.5掉电数据保存电路……………………………………………………………..
2.3.6报警温度调整按键 (9)
3 系统软件算法分析 (10)
3.1 主程序流程图 (10)
3.2 读出温度子程序 (10)
3.3 温度转换命令子程序 (11)
3.4 计算温度子程序 (11)
3.5 显示数据刷新子程序 (11)
3.6 按键扫描处理子程序 (12)
4 实验仿真 (13)
5 总结与体会 (14)
参考文献 (15)
附 1 源程序代码 (16)
1概述
1.1数字温度计基本功能
1、能数字显示被测温度,测量温度范围0℃~100℃;
2、分辨率不低于0.5℃
3、带有计时和时间显示功能;
4、至少有高、低两路限温控制输出接口控制外部电路,实际制作时可以发光二
极管模拟显示其控制状态输出;
5、高、低两路限温控制点可在0℃~100℃范围内任意独立设置;
6、当温度达到高、低限温控制点发出声光报警。
扩展部分
1、提高温度测量精度,使分辨率不低于0.1℃;
2、自动顺时测量(测量间隔时间可调)并保存温度值和测量时间;
3、可以查询、回显存储器中自动测量的温度值和测量时刻;
4、多路温度巡检(至少两路)和多路温度、时间保存。
数字温度计框图
2 理论分析与计算
2.1 数字温度计设计方案论证
2.1 单片机的选择:
方案1:采用传统的STC89C52RC作为电机的控制核心。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
方案2:采用STM32F103ZET6微控制器(ARM cortexM3内核),还带有非易失性512k Flash程序存储器。它是一种高性能、低功耗的32位CMOS微处理芯片,市场应用最多。其主要特点如下:512KB Flash ROM,72M的主频,片内集成AD、DA,以及具有DMA、SPI总线。
方案3:采用MSP430单片机,MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。
由于本系统对CPU运算速度要求不高,不需要执行很复杂的运算,加上成本上和队员各自的技术特点考虑,综合起来选STC89C52RC较适合本系统的要求。
2.2.温度传感器的选择
2.21. 方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设
计需要用到 A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。
2.2 2 .方案二
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器 DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
2.2方案选择
从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。
2.3 温度时间显示模块:
2.31. 方案1:使用液晶显示屏显示时间温度数字。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点,但是液晶显示屏使用的温度范围很窄,正常工作温度范围为0℃~+55℃,存储温度范围-20℃~60℃。
2.32. 方案2:使用传统的LED数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。但显示效果很差。
方案3:使用彩屏(TFT)显示时间温度数字,彩屏显示屏幕较大,所需代码冗长,处理不方便。
由于试题上说明显示只能采用数码管显示,故采用传统的LED数码管显示。
三键盘模块:
方案1:使用独立式键盘。独立式键盘是指直接用I/O口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。
方案2:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。
由于考虑到本系统所需的按键的不多,并且为了简化程序,选择独立式按键。
电路与程序设计
主控制器STC89C52RC
STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟、机器周期和6时钟、机器周期可以任意选择。
主要特性如下:
●增强型8051单片机,6时钟、机器周期和12时钟、机器周期可以任意
选择,指令代码完全兼容传统8051单片机。
●工作电压:5.5V~3.3V
●工作频率范围:0~44MHz。
●用户应用程序空间为8K字节
●片上集成512字节RAM
●通用I/O口32个,复位后为:P1/P2/P3/P4是准双向口/弱上位,P0口
是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用
时,需加上拉电阻。
●ISP(在系统可编程)/IAP(再应用可编程),无需专用编程器,无需专用仿
真器,可通过串口(RXD/P3.0,TXD/P3.1 )直接下载用户程序,数秒即可
完成一片。
●具有EEPROM功能
●具有看门狗功能
●共3个16位定时器/计数器。及定时器T0、T1、T2
●外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由
外部中断低电平触发中断方式唤醒
●通用异步串行口(UART),还可用定时器实现多个UART
●工作温度范围:-40℃~+85℃(工业级)/0℃~75℃(商业级)
●PDIP封装
主控制器STC89C52RC电路图
温度探测单元:
DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55~+125 摄氏度,可编程为9位~12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到 3 根或 2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20 的性能特点如下:
●独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
●DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
●DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
●适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电
●测温范围-55℃~+125℃,精度为±0.5℃
●零待机功耗
●测量结果直接输出数字信号,以“一线总线”穿行传送给CPU,同时可传送CRC 校验位,具有极强的抗干扰纠错能力
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使DS18B20非常适用与多点、远距离温度检测系统。
以上特点使DS18B20非常适用与多点、远距离温度检测系统。
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图 4.2 所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。
2
DS18B20温度传感器接线图
外部时钟电路:
系统采用DS1302时钟芯片,DS1302是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。此外,该电子时钟还具有时间校准等功能。
DS1302的性能特性:
●实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行比较;
●用于高速数据暂存的31*8位RAM;
●最少引脚的串行I/O;
● 2.5~5.5V电压工作范围;
● 2.5V时耗小于300nA;
●用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方
式;
●简单的三线接口。
时钟芯片DS1302与外围电路的连接:与MCS-51单片机的接口是由3条线来完成的,MCS-51单片机的P1.0与时钟芯片的数据传输端I/O相连,P1.1用来作为DS1302输入时钟SCLK控制端,P1.2控制DS1302的复位输入端RST。DS1302的X1和X2管脚外接标DS1302的复位引脚通过把RST输入驱动置高电平来启动所有的数据传送。 RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供了终止单字节或多字节
数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。
外部DS1302时钟电路接线图
外部存储电路:
系统兼有时间温度显示功能,对工作数据要进行掉电保护,并需要再硬件上增加掉电检测电路,但存在电池不可靠及拓展存储芯片占用单片机过多口线的缺点。采用具有I2C总线接口的串行EEPROM器件可很好的解决掉电数据保护问题。系统采用AT24C01数据存储芯片。
AT24C01性能特征:
1、与400KHz I2C 总线兼容;
2、1.8 到6.0 伏工作电压范围;
3、低功耗CMOS 技术;
4、写保护功能当WP 为高电平时进入写保护状态;
5、页写缓冲器;
6、自定时擦写周期;
7、1,000,000 编程/擦除周期;
8、可保存数据100 年;
外部AT24C01存储电路接线图
显示电路
设计主要使用数码管功能实现,显示部分硬件用8只数码管为显示管。前四个显示温度,后四个显示温度。这些数码管的共阴相连在一起通过在数码管的阳极加+5V电压或0V电压数码管形成不同的数字。
数码管性能特征:
1、低功耗CMOS 技术;
2、a~p数码管段选;
3、A~D数码管位选;
4、低功耗CMOS 技术;
数码管连线图
声光报警电路接线图:
按键功能:
A:温度,高温报警,低温报警切换。B:报警值加一;
C:报警值减一;
D:返回到当前温度;
E:时分之间切换;
F:时分加一;G:时分减一;
系统软件设计
数字温度计的测量温度程序主要包括5个方面的内容:一是单片机从DS1302中读取数据进行计数,二是利用按键进行时间温度上下限的调整,三是单片机中读取DS1302,EEPROM中的和DS18B20采集的数据在数码管上显示时间温度。
主程序流程图
主程序的主要功能是负责温度,时间的实时显示、读出并处理 DS18B20 的测量的当前温度值,DS1302的时间。
主程序流程图