当前位置:文档之家› 单片机温度检测记录系统

单片机温度检测记录系统


3Байду номын сангаас
3.1
本系统以STM32F103ZET6单片机为核心,采用温度传感器DS18B20进行温度检测,将数字温度信息传输到单片机中,在时钟方面采用外部时钟芯片DS1302,DS1302是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时。单片机通过采集温度时间信息后将温度时间数据传送到LCD上显示出来,并将数据通过串口通信通过MAX232传送到电脑中,硬件总体框图如下:
(4)按键触发串口传输存储的温度和时钟信息;
(5)温度测量精度:±1度。
1.3
本设计题我们小组摒弃了常规做法,加入了两项独特的创新实现方法:
(1)对于数据传送储存显示方面我们不使用24C02存储器,I2C存储器等储存器件,而是直接通过串口将数据传输的电脑中通过VB界面显示数据并将数据记录在电脑硬盘中。
2.1.3时间温度数据显示
方案1:采用数码管显示。
方案2:采用LCD显示器显示。
采用数码管显示时间温度数据操作方便,但需要用到的数码管数量甚多,占用I/O口较多,浪费I/O口的利用率,且只能显示数字。而使用LCD显示虽然在编程上有一定程度比数码管显示的复杂性高,但其占用的I/O资源较少,且能显示的内容比数码管丰富的多,不仅能显示数值还能显示英文。所以使用方案2.
方案3:新型可编程温度传感器DS18B20,精度高,成本低,易于采集信号。
利用热电偶或热敏电阻作为温度传感器,这类传感器至仪表之间通常都要用专用的温度补偿导线,而温度补偿导线的价格很高,并且线路太长,会影响测量精度,这是直接以模拟量形式进行采集的不可避免的问题。采用新型可编程温度传感器DS18B20进行温度检测可以避免热电偶或热敏电阻作为温度传感器所造成的测量精度误差过大等问题,同时DS18B20只需要一个I/O口便可以进行通信,它可以以更低的成本和更高的精确度实现温度检测。所以选择方案3。
图3-4 各寄存器详情
DS1302的控制字如图3-5所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
2
2.1
2.1.1温度传感器
目前使用接触式比较多,主要有热电式传感器,把温度变化转换为电阻变化的叫热电阻传感器,把温度变化转换为热电势变换的叫热电偶传感器。
方案1:热电阻传感器具有高温系数,高电阻率,物理特性稳定,良好的线性输出等优点,常用的有pt100等。
方案2:热电偶传感器具有结构简单,测量范围广,热惯性小,准确度高,输出信号远的优点,但价格较高。
物理与电子信息学院
题目:单片机温度检测记录系统
行政班级:
成员分组名单
学号:姓名:
选课班级:任课教师:成绩:
1
1.1
设计制作一台可检测和记录温度的系统。
1.2
(1) LCD显示实时时钟:年、月、日、时、分、秒;
(2)每30秒采样温度,LCD更新显示温度值;
(3)按键触发存储当前温度和时钟信息(年、月、日、时、分);
2.1.4数据的串口传送与储存显示
方案1:通过串口将数据传送到另一个单片机系统上显示,采用24C02存储器对数据进行储存。
方案2:通过串口将数据传送到PC机上并用VB程序编写的界面显示,采用PC机上的“D盘”对数据进行储存。
通过串口将数据从一个单片机传送到另一个单片机上设置较为简单,将数据存储到24C02存储器上,不易于对任意时间温度数据进行提取,而将数据传送到PC机上并用VB界面显示出来不仅美观而且信息量丰富,将数据储存在“D:\温度.TXT”目录下不仅存储量大,而且便于直观查看。所以使用方案2。
图3-1 硬件总体框图
3.2
3.2.1 时钟显示模块
时钟模块采用外部时钟DS1302进行计时,DS1302是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
(2)在设置时间日期,上限温度上,我们不仅仅采用了硬件按钮控制而且还加入了红外遥控控制。
与此同时,我们的温度测量精度在理论上能达到0.0625实际运行时也能达到0.1度,而实验所要求的仅为1摄氏度。另外,在DS1302芯片上加入了一个备用电源,使得主电源掉电时,时钟芯片仍然在随着时间的移动而实时更新。因此主电源再次上电时,时钟依然是准确的,而不必重新调过。
SCLK:串行时钟,输入,控制数据的输入与输出;
I/O:三线接口时的双向数据线;
CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。
DS1302有下列几组寄存器:
DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如下图3-4所示。
其管脚图以及此模块仿真图如图3-3(a)及3-3(b)所示。
(a) (b)
图3-3 DS1302管脚图与时钟模块仿真图
各引脚的功能为:
Vcc1:备用电源;Vcc2:主电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。在实物中,我们将vcc1与一颗3V的钮扣电池相连,从而实现时钟实时更新功能。
2.1.2时钟显示
方案1:采用内部时钟计时。
方案2:采用外部时钟芯片DS1302。
采用内部时钟计时,可以节省IO引脚,降低成本,但是内部振荡器使用阻容震荡,其精度不高,如果使用了串口、或者PWM等对时钟比较敏感的功能,会对时钟造成混乱。采用外部时钟芯片DS1302,不仅仅能对时间进行计时还可以对年、月、日、周进行计时,具有闰年补偿功能而且对于使用串口、或者PWM等对时钟比较敏感的功能,不会产生影响。如果接入外置电子电池的话在系统掉电的情况下还可以继续计时。所以选择方案2。
相关主题