[工学]基于stm32开发板的多功能温度计设计报告

上传人:自*** 文档编号:80496693 上传时间:2019-02-19 格式:DOC 页数:43 大小:8.81MB
返回 下载 相关 举报
[工学]基于stm32开发板的多功能温度计设计报告_第1页
第1页 / 共43页
[工学]基于stm32开发板的多功能温度计设计报告_第2页
第2页 / 共43页
[工学]基于stm32开发板的多功能温度计设计报告_第3页
第3页 / 共43页
[工学]基于stm32开发板的多功能温度计设计报告_第4页
第4页 / 共43页
[工学]基于stm32开发板的多功能温度计设计报告_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《[工学]基于stm32开发板的多功能温度计设计报告》由会员分享,可在线阅读,更多相关《[工学]基于stm32开发板的多功能温度计设计报告(43页珍藏版)》请在金锄头文库上搜索。

1、生产实习设计报告设计题目:基于STM32F107开发板的多功能温度计设计生产组长姓名:张家明 设计组长姓名:张家明设计小组成员:孙凯强、魏国祥、温琛林、王学良、王植阳 王如胜、王江、王圣南、魏征、田开 日期:2012年9月15日一、概述本设计基于STM32F107开发板,利用核心板上的STM32控制基板上的温度传感器DS18B20,实现DS18B20与STM32的双向通信;通过DS18B20实现温度测量,然后STM32对DS18B20转换后的数据进行读取和处理,转换成实际温度值后得到温度显示码,最后在OLED显示测得的温度(显示出温度值的符号位和整数位,以及一位小数)。该多功能温度计除具备测温

2、功能外,还有如下附加功能:可手动切换显示温度、日期、星期和时间;手动校时、调整日期;最高最低温度记忆功能;切换显示;每日闹钟功能;可通过RS232串口传输当前温度和时间至PC机。本设计最终通过Matlab实现了温度标定,提高了测温准确度。二、总体设计1总体系统结构DS18B20MCUMCUOLED按键、拨码开关MCU2模块划分测温模块OLED显示模块按键、拨码开关模块蜂鸣器模块串行通信模块3人员分工张家明完成源程序的编写,以及代码的修改、编译、下载、调试等工作;孙凯强、魏国祥、温琛林、王学良负责DS18B20、OLED相关资料的搜集和整理;王植阳、魏征、田开负责日历时钟芯片PCF8563相关资

3、料的搜集和整理;王如胜、王江、王圣南负责最后产品各项功能的验证。三、关键模块设计测温模块DS18B20是由DALLAS半导体公司推出的一种“一线总线”接口的温度传感器。DS18B20工作在3V5.5V 的电压范围,可以程序设定912位的分辨,测温范围55125,在-10+85时精为0.5。本设计中,DS18B20通过程序将其分辨率设为12位(温度分辨为0.0625)。DS18B20与STM32的连接电路OLED显示模块OLED使用的控制器为SSD1305,可通过写入不同的命令字来设置对比度、显示开关、电荷泵、页地址等。OLED被配置为使用I2C的方式。I2C的地址二进制位为0111100X,1

4、6进制为0x78(写地址),0x79(读地址)。OLED的Reset平时应该拉高,在初始化的时候,应该有一个从低电平到高电平的跳变。使用的MCU端口为PB6 CLK I2CPB7 SDA I2CPE6 RESET (低有效)按键、拨码开关模块基板一共有4个按键,分别为KEY1,KEY2,KEY3,KEY4。其中,按键未按下,对应的GPIO口为高电平,按键按下后变为低电平。使用的MCU端口为PE2 KEY4 GPIOPE3 KEY3 GPIOPE4 KEY2 GPIOPE5 KEY1 GPIO平拨开关一种有4个。开关拨到上方为低电平,拨到中间和下方为高电平。使用的MCU 端口为PD11 SW4

5、GPIOPC15 SW3 GPIOPC14 SW2 GPIOPC13 SW1 GPIO 拨码开关电路图蜂鸣器模块当PD15 为高电平的时候,蜂鸣器响。低电平的时候,蜂鸣器没有声音。使用的MCU端口为PD15 BUZZ GPIO串行通信模块RS232的电平转换芯片为MAX232CE。外部接口为DB9。有两个LED指示灯,TXD用来显示接受到数据,RXD用来显示正在发送数据。对外接口为DB9接口,定义为:2RXD,3TXD,5GND。因此,基板可以通过串口线直接连接到PC机,和PC机进行通信。使用的MCU端口为:PD5 UART2_TX(Remap)PD6 UART2_RX(remap)四、测试结

6、果1开机上电后显示“中国海洋大学”图标、“中国海洋大学 09级自动化”、“多功能温度计”等文字,显示过后自动进入温度显示模式;2进入温度显示模式后,OLED显示出当前所测温度(摄氏+华氏); 此时拨动SW1可显示自开机上电或复位后所记录的摄氏最高最低温度值;拨动SW2可显示相对应的华氏最高最低温度值;拨动SW3可启动串行传输功能,即通过RS232串口传输当前温度和时间至PC机;将拨码开关拨回原位即可返回温度显示界面;3. 按下KEY1可在温度显示模式和日期、星期和时间显示模式之间来回切换;4进入日期、星期和时间显示模式后,按下KEY2进入校时模式,此时可通过KEY1选择校准小时、分钟、秒;每次

7、校准时,按下KEY3则对应项+1,按下KEY4则对应项-1;小时或分钟或秒校准后都需要按下KEY2,此时显示对应项校准完成;所有项目均校准完成后,按下KEY4推出校时模式,返回日期、星期和时间显示模式;5进入日期、星期和时间显示模式后,按下KEY3进入调整日期模式,此时可通过KEY1选择调整年、月、日;每次调整时,按下KEY3则对应项+1,按下KEY4则对应项-1;年或月或日调整后都需要按下KEY2,此时显示对应项校准完成;所有项目均校准完成后,按下KEY4推出日期调整模式,返回日期、星期和时间显示模式;6进入日期、星期和时间显示模式后,拨动SW1进入闹钟设定模式,此时可通过KEY1选择设定小

8、时、分钟以及取消闹钟;每次设定时,按下KEY3则对应项+1,按下KEY4则对应项-1;小时或分钟设定或取消闹钟后都需要按下KEY2,此时显示对应项设定完成;所有项目均设定完成后,将SW1拨回原退位即可出闹钟设定模式,返回日期、星期和时间显示模式;7闹钟响起时,拨动SW2即可停止响铃。五、总结本设计完全基于STM32F107开发板,利用开发板上的DS18B20、OLED、PCF8563日历时钟芯片、按键与拨码开关、蜂鸣器等资源实现了测温,显示温度(摄氏+华氏),最高最低温度记忆,显示日期、星期、时间,手动校时、调整日期,每日闹钟等诸多功能。另外在测温标定方面也通过Matlab进行了实际值与测量值

9、之间的函数关系拟合(详见“附录一”),提高了测温的准确度;在测温精度方面也已经达到了预期要求。附录一Matlab实现温度标定%2012年9月9日2012年9月14日共六天,每天于不同时间、不同地点随机测温50%次,同时记录实际温度值,绘出每日测量温度曲线与实际温度曲线,同时绘制%每日测量值与实际值之间的差值走势图n=1:50;%2012年9月9日temp1_1=26.0 26.1 26.0 25.7 25.5 25.5 25.4 25.6 25.7 25.6. 25.5 25.5 25.4 25.3 25.2 25.2 25.2 25.5 25.4 25.4. 25.3 25.2 25.2 2

10、5.2 25.2 25.2 25.2 25.2 25.2 25.2. 25.2 25.2 25.0 26.1 26.2 26.4 26.5 26.5 26.6 26.6. 26.5 26.3 26.2 26.1 26.1 25.9 25.9 25.9 26.0 26.2; %实际值temp2_1=28.5 28.4 28.4 26.1 27.1 27.4 27.3 27.5 27.6 27.3. 27.3 27.0 27.1 26.8 27.1 27.0 27.1 27.1 27.1 27.2. 27.2 27.4 27.3 27.6 27.5 27.6 27.5 27.5 27.4 27.5

11、. 27.5 27.5 27.1 26.6 26.2 27.1 27.3 27.6 28.1 28.3. 28.2 28.3 28.3 28.2 28.3 27.9 27.9 28.0 27.9 28.0; %测量值temp3_1=zeros(1,50);temp3_1=temp2_1-temp1_1;figure(1)subplot(3,2,1)plot(n,temp1_1,r);axis(1 50 22 30);xlabel(n);ylabel(temperature);title(2012年9月9日)hold onplot(n,temp2_1,b)grid onfigure(2)subp

12、lot(3,2,1)plot(n,temp3_1,r)axis(1 50 -0.5 3)xlabel(n);ylabel(差值);title(2012年9月9日)grid on %2012年9月10日temp1_2=26.5 26.1 25.7 25.4 25.3 25.2 25.3 25.4 25.4 25.5. 25.5 25.6 25.6 25.7 26.7 26.7 26.6 26.6 26.5 26.5. 26.5 26.4 26.5 26.5 26.4 26.4 26.3 26.2 26.1 25.4. 25.5 25.5 25.4 25.5 25.2 25.4 25.4 25.3

13、 25.3 25.2. 25.0 25.2 25.1 25.2 25.1 25.1 25.9 26.0 26.2 26.0; %实际值temp2_2=25.8 26.4 27.1 27.1 27.6 27.4 27.6 27.4 26.9 27.4. 27.3 27.3 27.2 27.2 27.1 27.3 27.6 27.9 28.0 28.1. 28.2 28.2 28.1 28.3 28.4 28.3 28.1 28.2 28.0 25.9. 26.8 27.4 27.3 27.8 26.1 26.9 27.0 27.1 27.4 27.3. 27.2 27.4 26.9 27.4 2

14、7.4 27.1 28.0 28.1 28.3 28.6; %测量值temp3_2=zeros(1,50);temp3_2=temp2_2-temp1_2;figure(1)subplot(3,2,2)plot(n,temp1_2,r);axis(1 50 22 30);xlabel(n);ylabel(temperature);title(2012年9月10日)hold onplot(n,temp2_2,b)grid onfigure(2)subplot(3,2,2)plot(n,temp3_2,r)axis(1 50 -0.5 3)xlabel(n);ylabel(差值);title(2012年9月10日)grid on%2012年9月11日temp1_3=25.9 25.7 26.0 26.4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号