1.1功能分析
1.1.1功能分析当小车温度降在警报温度以下,LCD屏显示“zheng chang”小车正常转动。 当芯片达到一定温度时候发出报警,Led灯亮,LCD屏显示“wen du gao !”小车停止转动; 1.1.2工作原理STM32单片机内置了一个温度传感器,这个温度传感器产生一个随温度性变化的电压,测量范围为-40 - +125摄氏度。在内部被链接到输出通道ADC_IN16上,用于将传感器的输出转换成数字量。
第二章 硬件设计
2.1设计原理
图2.1温度传感器结构图 STM32单片机内置了一个温度传感器,这个温度传感器产生一个随温度性变化的电压,测量范围为-40 - +125摄氏度。在内部被链接到输出通道ADC_IN16上,用于将传感器的输出转换成数字量。温度传感器模拟输入的采样时间需大于2.2us。在STM32单片机教学开发板上,模拟部分的供电电源VDDA接3.3V,模拟地与系统GND相连。 若要使用STM32自带的温度传感器,需设置ADC控制器2(ADC_CR2)中的TSVREFE控制位,以使能温度传感器Vsense输入通道ADC_IN16和内部参考电压Vrefint输入通道ADC_IN17。通过固件库函数来完成这两个通道的使能。 当fADC = 14MHz,采样时间设为239.5个周期时,则采样时间位39.5/17.1us,这是推荐的采样时间。实际系统时钟往往为72MHz,fADC = 12MHz,可设采样时间位71.5个周期。 ADC_IN16通道上读出温度传感器电压与实际温度的对应关系如下: Temperature = ((V25 - Vsense) / Avg_Slope)+25 Temoerature = (14.3 – 14.0)*1000/4.3 + 25 = 31.9 由于STM32单片机的ADC是12位的,模拟部分电路的供应电源VDDA接3.3V,所以温度传感器的电压值与转换后数字量关系为: V = AD_value*3.3 / 4095 2.2设计的结构图
图2.2 结构框图 
图2.3 1602LCD与STM32单片机连接图 最终按照原理进行连线得到下图实物图:
图2.4 实物图 第三章 软件设计
3.1软件设计原理利用STM32单片机内置温度传感器检测环境温度的步骤如下: - 初始化ADC:选择ADC_IN16输入通道,设置采样时间等参数。
- 设置控制寄存器2(ADC_CR2)中的TSVREFE位,开启内置温度传感器和内部参考电压通道。
- 设置控制寄存器2(ADC_CR2)中的ADNO位,软件启动ADC转换,也可以用外部触发。
- 读取寄存器(ADC_DR)中的结果,如果有必要,可进行数字滤波。
- 计算温度值。
- 判断测量温度与设定值的大小关系。若测量值小于设定值,则小车正常运行且PE4输出高电平,LCD显示”zheng chang”;若测量值大于设定值,则只有PE3输出低电平,LCD显示”wen du gao !”。
3.2软件设计流程图图3.2设计流程图 3.3主要代码
第四章 调试与运行结果经过一次次的调试与改进,我们将程序编译下载操作,最终结果如下显示: 4.1串口显示出当前芯片的温度为40.73 图4.1 串口显示图 4.2当我们设定温度为50时,这是我们的温度是不超过我们设定的警戒值,所以LCD显示“zhang chang”电机正常转动。 图4.2温度未达到警戒值时状态图 4.3当我们设定温度为20时,这是我们的温度是超过我们设定的警戒值,所以LCD显示“wen du gao !”这时我们LED警示灯常亮,电机不转。

图4.3温度达到警戒值时状态图
第五章 实验总结利用STM32单片机内部温度传感器监测温度的程序运行结果如图,实际从测量出来的温度值超过正常值太多,找到以下原因: 1、ADC的参考电压不稳定,这是测控问题常见问题; 2、使能ADC前未做校准,校准可以防止内部电容器的不一致性问题; 3、ADC采样转换过程中受到干扰 图5.1 串口显示图
第六章 心得体会在本次ARM课设—-基于ARM的温度采集系统中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我们所学到的知识运用到实践中去。在大学课堂的学习只是给我们灌输专业知识,而我们应把所学的知识应用到我们现实的生活中去。通过此次设计,充分认识到动手实践的重要性,在几基本的实验课以及本次课设中都会出现一些问题,而我们正是要发现这些问题,去解决他们。也同时让我感受到ARM在生活中的作用以及一些应用拓展。让我学到很多,不仅仅来自课本中的知识。
以上的Word格式文档51黑下载地址:
文档.doc
(10.03 MB, 下载次数: 20)
|