嵌入式系统课程设计(温度检测报警系统).docx

合集下载

嵌入式系统课程设计温度检测报警系统

嵌入式系统课程设计温度检测报警系统

嵌入式系统课程设计姓名:班级:学号:.目录:一.系统要求二.设计方案三.程序流程图四.软件设计五.课程总结与个人体会.一、系统要求使用STM32F103作为主控CPU设计一个温度综合测控系统,具体要求:1、使用热敏电阻或者内部集成的温度传感器检测环境温度,每0.1秒检测一次温度,对检测到的温度进行数字滤波(可以使用平均法)。

记录当前的温度值和时间。

2、使用计算机,通过串行通信获取STM32F103检测到的温度和所对应的时间。

3、使用计算机进行时间的设定。

4、使用计算机进行温度上限值和下限值的设定。

5、若超过上限值或者低于下限值,则STM32进行报警提示。

.二、设计方案本次课程设计的要求是使用STM32F103设计一个温度测控系统,这款单片机集成了很多的片上资源,功能十分强大,我使用了以下部分来完成课程设计的要求:1、STM32F103内置了3个12位A/D转换模块,最快转换时间为1us。

本次课程设计要求进行温度测定,于是使用了其中一个ADC对片上温度传感器的内部信号源进行转换。

当有多个通道需要采集信号时,可以把ADC配置为按一定的顺序来对各个通道进行扫描转换,本设计只采集一个通道的信号,所以不使用扫描转换模式。

本设计需要循环采集电压值,所以使用连续转换模式。

2、本次课程设计还使用到了DMA。

DMA是一种高速的数据传输操作,允许在外部设备和储存器之间利用系统总线直接读写数据,不需要微处理器干预。

使能ADC的DMA接口后,DMA控制器把转换值从ADC数据寄存器(ADC_DR)中转移到变量ADC_ConvertedValue中,当DMA传输完成后,在main函数中使用的ADC_ConvertedValue的内容就是ADC转换值了。

3、STM32内部的温度传感器和ADCx_IN16输入通道相连接,此通道把传感器输出的电压值转换成数字值。

STM内部的温度传感器支持的温度范围:-40到125摄氏度。

利用下列公式得出温度温度(°C) = {(V25 - VSENSE) / Avg_Slope} + 25式中V25是 VSENSE在25摄氏度时的数值(典型值为1.42V))曲线的平均斜率(典型值为4.3mV/C是温度与Avg_SlopeVSENSE利用均值法对转换后的温度进行滤波,将得到的温度通过串口输出。

嵌入式系统课程设计(基于ARM的温度采集系统设计)

嵌入式系统课程设计(基于ARM的温度采集系统设计)

教师批阅目录一、设计内容............................................................................................................. - 1 -1.1设计目的....................................................................................................... - 3 -1.2设计意义....................................................................................................... - 3 -二、设计方案............................................................................................................. - 5 -2.1设计要求....................................................................................................... - 5 -2.2方案论证....................................................................................................... - 5 -三、硬件设计............................................................................................................. - 6 -3.1设计思路....................................................................................................... - 6 -3.2系统电路设计............................................................................................... - 6 -四、软件设计............................................................................................................. - 8 -4.1设计思路....................................................................................................... - 8 -4.2程序清单..................................................................................................... - 10 -五、心得体会........................................................................................................... - 12 -参考文献................................................................................................................... - 13 -教师批阅基于ARM的温度采集系统摘要:本设计是基于嵌入式技术作为主处理器的温度采集系统,利用S3C44B0xARM微处理器作为主控CPU,辅以单独的数据采集模块采集数据,实现了智能化的温度数据采集、传输、处理与显示等功能,并讨论了如何提高系统的速度、可靠性和可扩展性。

嵌入式系统课程设计温度检测报警系统解读

嵌入式系统课程设计温度检测报警系统解读

嵌入式系统课程设计姓名:班级:学号:目录:一.系统要求二.设计方案三.程序流程图四.软件设计五.课程总结与个人体会一、系统要求使用STM32F103作为主控CPU设计一个温度综合测控系统,具体要求:1、使用热敏电阻或者内部集成的温度传感器检测环境温度,每0.1秒检测一次温度,对检测到的温度进行数字滤波(可以使用平均法)。

记录当前的温度值和时间。

2、使用计算机,通过串行通信获取STM32F103检测到的温度和所对应的时间。

3、使用计算机进行时间的设定。

4、使用计算机进行温度上限值和下限值的设定。

5、若超过上限值或者低于下限值,则STM32进行报警提示。

二、设计方案本次课程设计的要求是使用STM32F103设计一个温度测控系统,这款单片机集成了很多的片上资源,功能十分强大,我使用了以下部分来完成课程设计的要求:1、STM32F103内置了3个12位A/D转换模块,最快转换时间为1us。

本次课程设计要求进行温度测定,于是使用了其中一个ADC对片上温度传感器的内部信号源进行转换。

当有多个通道需要采集信号时,可以把ADC配置为按一定的顺序来对各个通道进行扫描转换,本设计只采集一个通道的信号,所以不使用扫描转换模式。

本设计需要循环采集电压值,所以使用连续转换模式。

2、本次课程设计还使用到了DMA。

DMA是一种高速的数据传输操作,允许在外部设备和储存器之间利用系统总线直接读写数据,不需要微处理器干预。

使能ADC的DMA接口后,DMA控制器把转换值从ADC 数据寄存器(ADC_DR)中转移到变量ADC_ConvertedValue中,当DMA 传输完成后,在main函数中使用的ADC_ConvertedValue的内容就是ADC转换值了。

3、STM32内部的温度传感器和ADCx_IN16输入通道相连接,此通道把传感器输出的电压值转换成数字值。

STM内部的温度传感器支持的温度范围:-40到125摄氏度。

利用下列公式得出温度温度(°C) = {(V25 - VSENSE) / Avg_Slope} + 25式中V25是 VSENSE在25摄氏度时的数值(典型值为1.42V)Avg_Slope是温度与VSENSE曲线的平均斜率(典型值为4.3mV/C)利用均值法对转换后的温度进行滤波,将得到的温度通过串口输出。

单片机课程设计---温度检测报警系统的设计

单片机课程设计---温度检测报警系统的设计

《单片机原理及接口》课程设计报告题目:专业名称:班级:学号:姓名:2010年 12月课程论文首页温度检测报警系统的设计摘要: proteus具有强大的仿真功能,通过proteus仿真可以为更快的对一些系统进行设计和性能测试,直到仿真系统可以运行。

该温度报警系统是用温度传感器18B20对温度进行采集,通过单总线结构与单片机AT89C52进行通信。

在此基础上,添加一个时钟芯片DS1302用来时钟计时。

并用液晶显示器对温度和时间进行显示,同时可以用控制按键可以切换“时间”、“日期”和“温度报警上下限”的显示,而且可以对温度报警上下限进行按键动态调整。

关键词:proteus 温度报警 AT89C52 单片机1、引言Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件。

它运行于 Windows 操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE 电路仿真相结合。

②支持主流单片机系统的仿真。

③提供软件调试功能。

④具有强大的原理图绘制功能。

总之,该软件是一款集单片机和SPICE 分析于一身的仿真软件,功能极其强大。

本文是基于 PROTEUS 的单片机温度采集系统的仿真设计,由单片机对温度进行采集,由温度传感提供温度,然后通过数码管显示温度值,并通过按键设置报警温度的上下限,当温度超出范围时报警。

同时具有时间计时的功能。

2、功能及操作说明2.1 功能说明:a.具有温度采集功能。

b.具有时间计时功能。

c.液晶分两行显示,上一行显示“温度”,下一行可以对“时间”、“日期”和“温度上下限”进行切换显示。

d.可以对温度上下限进行动态设置,在超过温度的上限或低于温度的下限时蜂鸣器会响,进行报警。

e.初始化(复位)功能。

2.2 操作说明:a.按下proteus中的运行按键。

b.按下“K1”键对“时间”、“日期”和“温度上下限”进行切换显示。

图2-1 切换显示c.在显示“温度”和“温度上下限”的时候,按下“K2”键,进入“温度上下限”调整状态,调整位闪烁显示,如(图2)所示。

嵌入式温度监测与报警系统设计设计Word

嵌入式温度监测与报警系统设计设计Word

学号14112200224毕业设计(论文)题目: 嵌入式温度监测与报警系统设计作者易康乐届别 2015届院别信息与通信工程学院专业电子信息指导教师万忠民职称教授完成时间2015年5月10日摘要本设计采用了ARM COTEX—M3 系列芯片STM32F103RCT6为主控芯片,对DS18B20温度传感器进行控制,实现温度采集功能,并在TFTLCD液晶显示屏上显示实时温度。

软件采用μC/OS-Ⅱ嵌入式实时内核与μC/GUI图形界面库来实现多任务管理和UI界面的功能。

利用μC/GUI设计一个具有显示实时温度折线图和控制窗口的UI界面,从而减少按键数量。

同时调用μC/OS-Ⅱ嵌入式实时内核实现多任务管理和利用μC/GUI实现对触摸按键的设置,通过TFTLCD触摸屏上设置的按键进行温度采集的控制。

通过利用软件模拟按键从而简化了系统的软硬件设计,更便于使用人员进行控制操作,同时提高了系统的可维护性和可操作性,达到了节约成本和具有更高效率的目的。

关键词:微控制器;TFTLCD, DS18B20;温度监测;嵌入式AbstractSystem uses ARM COTEX-M3 chips STM32F103RCT6 as main controller that controls the temperature sensor DS18B20 to achieve temperature acquisition function,and displays real-time temperature on the TFT LCD screen. The software uses the μC/OS - Ⅱ embedded real-time kernel and μC/GUI graphical interface library to implement the multiple task management and UI interface functions. Using the μC/GUI design a interface which display a real-time line graph of temperature and control window’s UI to reduce the number of buttons. At the same time, calling the μC/OS - Ⅱsystem manage the multiple task and using μC/GUI implement settings of ing the TFT LCD touch screen buttons control the temperature acquisition. By using simulation keys to simplify the design of system hardware and software,more easier to operator to control the operation.Meanwhile it can improve the maintainability of the system and operability, and achieve the purpose of saving cost and higher efficiency.Keywords:Microcontroller; TFTLCD, DS18B20; Temperature monitoring; Embedded目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题设计背景及意义 (1)1.2 行业技术发展概况 (1)1.3 课题设计的主要内容 (2)第2章温度监测与报警系统总体设计 (4)2.1 系统基本框图 (4)2.2 硬系统工作原理图及工作原理 (4)2.2.1 系统工作原理图 (4)2.2.2 系统工作原理 (4)2.3 硬件元件介绍 (5)2.3.1 STM32F103RCT6介绍 (5)2.3.2 DS18B20介绍 (5)2.3.3 TFT-LCD介绍 (6)2.3.4 蜂鸣器介绍 (7)第3章温度监测与报警系统硬件设计 (8)3.1 硬件接口框图 (8)3.2 MCU设计 (8)3.3 JTAG设计 (9)3.4 TFTLCD电路设计 (10)3.5 蜂鸣器电路设计 (11)3.6 DS18B20设计 (12)第4章软件设计 (13)4.1软件简介 (13)4.2主函数分析 (14)4.3 主要任务分析 (15)4.3.1 Task_wave任务 (15)4.3.2 Task_TOUCH任务 (16)4.3.3 TASK_beep任务 (17)4.3.4 Task_DS18B20任务 (17)第5章调试结果及分析 (19)总结 (22)参考文献 (23)致谢 (24)附录一硬件原理图 (25)附录二程序 (26)第1章绪论1.1 课题设计背景及意义当今现代化建设和国民经济发展迅速。

基于嵌入式系统数字温度的测试系统设计

基于嵌入式系统数字温度的测试系统设计

基于嵌入式系统数字温度的测试系统设计基于嵌入式系统数字温度的测试系统设计温度传感器是一类被广泛应用且被最先开发的传感器。

但大多数温度传感器没有对数字信号分析及处理,达到自动化控制的效果。

因此,本设计基于这种情况,利用相关软硬件提高了温度传感器的实用价值。

下面一起来看看吧!2.总体设计2.1系统功能模块设计从需求分析可以看出,该系统的功能模块应包括以下几个部分:实时温度采集与更新模块、自定义温度警报模块、超温报警模块。

DS18B20采用了单总线方式的传输协议,即只需要一根管脚就可以对输入输出进行控制。

此种单总线传输协议在实际应用中有很大优势,使用此种协议的芯片不需要任何外围电路,对硬件设计时的复杂性大大简化了许多。

2.2系统软件设计方案2.2.1嵌入式操作系统选择在本设计当中,硬件平台完全支持Linux、开发便捷迅速、资料众多、内核小、效率高等优点决定了在本设计当中的稳定性等优点,均使得本设计采用了Linux作为开发的操作系统。

2.2.2应用层程序语言选择应用程序使用C语言进行开发,使用Linux标准C语言接口,与驱动层进行交互。

3.硬件设计3.1整体硬件电路设计根据硬件设计方案,在开发中用到的硬件有Tiny6410开发板、DS18B20数字温度传感器、USB转串口数据线。

3.2硬件连接方式将USB转串口线一端接在Tiny6410的串口1上,另一端连接PC 机USB接口。

两个DS18B20传感器的VCC与GND管脚并联起来,与Tiny6410开放的电源与地线接口相连,两个传感器的数据接口一起连接在S3C6410的GPIO的管脚上。

4.软件设计4.1嵌入式系统架构本系统在软件方面主要由Linux内核裁剪和移植、底层驱动程序开发、上层应用程序开发三部分组成。

其中,Linux内核的运行需要有引导程序BootLoader、内核的配置裁剪与编译、根文件系统的编译三个部分支持。

4.2驱动程序设计在本设计当中,对DS18B20数字温度传感器根据其数据手册上的传输协议及参数进行驱动编写,首先要明确其控制参数及流程。

基于嵌入式技术的温度测量系统设计

基于嵌入式技术的温度测量系统设计

基于嵌入式技术的温度测量系统设计
1.引言
嵌入式系统是能够运行操作系统的软、硬件综合体,且多数系统的应用软件和操作系统
是紧密结合在一起的。

选配好RTOS(Real-Time Operating System)开发平台,就能合理的实现多任务调度,系统资源利用。

嵌入式系统较一般单片机系统而言,软件资源利用率较高,开发周期短;系统精度较高;实时性也更好。

特别适合于数据处理量较大,有联网、通信等要求的场合。

为了利用嵌入式系统构造一个分布式多点温度测控系统,本文做了一些前期的尝试和开
发工作。

结合可编程单总线数字式温度传感器DS18B20,用嵌入式系统构造了一个具有温
度测量、相关数据处理以及与上位机通信等功能的现场温度测量单元,上位机则主要完成系统监控和人机交互等功能。

2.系统组成及工作原理
温度测量系统总体结构如图1所示。

图1 系统总体结构图
本文中,下位机由嵌入式系统组成。

根据实际需要,其核心采用了低端的LPC2104芯片。

它包含一个支持仿真的ARM7TDMI-S CPU,128K 字节FLASH存储器和64K字节SRAM以及片内总线。

数字式温度传感器DS18B20连到LPC2104的一个GPIO管脚P0.8上。

LPC2104通过该管脚发送命令和接收温度值,并对读到的温度值进行数字滤波、二
—十进制转换等数据处理,还设置了温度超限报警等功能。

下位机还可与上位机实时通信,
一方面接受上位机的各种指令,另一方面,将测得的温度值传送到上位机。

温度检测课程设计(含时钟、可报警)

温度检测课程设计(含时钟、可报警)

目录第1章系统总体方案设计 (1)1.1 系统总体设计思路 (1)1.2 系统总体设计框图 (2)第2章系统硬件设计 (2)2.1晶振电路 (2)2.2 复位电路 (3)2.3 LED显示电路 (3)2.4 温度采集电路 (4)2.5 按键控制电路 (4)2.6 存储单元电路 (5)2.7 报警电路 (5)2.8 其他电路 (6)第3章软件设计 (6)3.1 系统设计程序流程图 (7)3.2 按键控制流程图 (7)第4章系统的安装调试说明 (8)4.1 系统编程 (8)4.2 系统仿真 (9)4.3 系统的调试说明 (9)第5章总结 (10)参考文献 (11)附录 (12)电气信息学院课程设计评分表 (23)第1章系统总体方案设计1.1 系统总体设计思路用DS18B20进行温度的采集,然后通过单片机处理,用LED 数码显示管显示出来;采用8段共阳极LED数码显示管;利用单片机内部的时钟信号进行计时,并通过LED数码显示管显示时、分、表;设置高温和低温报警,并采用数码LED数码显示管显示高温或低温设定值;利用蜂鸣器进行报警,当温度高于等于某一温度值或低于某一温度时,蜂鸣器则长鸣;并利用24C02芯片对报警温度及时间(分、时)进行保存;由于设计中要显示的东西较多(如:时间、温度、报警温度等),所以需要用按键进行切换显示;同时,要保证时钟、报警温度可调,也需要按键控制,所以本设计中采用4个独立按键来实现上述功能。

1.2 系统总体设计框图图1-1 系统总体设计框图第2章系统硬件设计2.1晶振电路晶振频率为11.0592MHZ,电容大小为30pf。

如下图所:图2-1 晶振电路原理图2.2 复位电路电阻大小为10K,电容大小为22uF。

如下图所示:图2-2 复位电路原理图2.3 LED显示电路采用4个8段共阳极LED显示管,用单片机P1口控制其段选,P2口低4位控制其位选。

如下图所示:图2-3 LED显示电路原理图2.4 温度采集电路使用DS18B20芯片进行温度采集,接单片机P3.0。

温度测量报警系统设计

温度测量报警系统设计

摘要本论文介绍了一种以单片机为主要控制器件,以DS18B20为温度传感器的温度测量报警系统。

主要包括硬件电路的设计和系统程序的设计。

硬件电路主要包括主控制器,测温电路和温度显示电路等,主控制器采用单片机AT89C51,温度传感器采用美国DALLAS半导体公司生产的DS18B20,显示电路采用3位数码管显示。

本设计中系统程序主要包括DS18B20工作程序、LED显示子程序、键盘输人程序和温度检测报警程序等。

此外,还介绍了系统的调试和性能分析。

由于采用了改进型智能温度传感器DS18B20作为检测元件,与传统的温度报警系统相比,本设计具有低成本和易使用的特点。

DS18B20温度传感器还可以在远距离多点测温控制等方面进行应用开发,具有很好的发展前景。

关键词:89C51,单片机,DS18B20,传感器AbstractThis paper presents a microcontroller to the main control device to DS18B20 temperature sensor for measuring the temperature alarm system. Hardware including main circuit design and system design process. Hardware including main controller circuit, the circuit temperature and temperature display circuit, the main controller using MCU AT89C51, temperature sensors using U.S. DALLAS Semiconductor production DS18B20, showed that three digital circuits used in a dynamic scanning of the Direct Reading Show. The design of the system procedures include DS18B20 procedures, LED display routines, keyboard input process and temperature detection alarm procedures.In addition, it introduced a system of debugging and performance analysis. As a result of the improved intelligence DS18B20 as a temperature sensor detection devices, with the traditional temperature alarm system compared with the established low-cost and easy to use features. DS18B20 temperature sensor can also long-range multi-point temperature control, and other aspects of application development, has good prospects for development.Key words: 89C51MCU DS18B20 Sensor目录第一章绪论 ............................................................................................................ - 1 -1.1本课题研究的意义 ......................................................................................... - 1 -1.2目前发展状况 ................................................................................................. - 1 -第二章系统总体设计 ............................................................................................ - 3 -2.1课题要求简述 ................................................................................................. - 3 -2.2工作原理 ......................................................................................................... - 3 -2.3 课题总体设计思路 ........................................................................................ - 3 -第三章系统硬件设计 ............................................................................................ - 5 -3.1温度测量模块设计 ......................................................................................... - 5 -3.2控制模块设计 ............................................................................................... - 12 -3.3显示输出设计 ............................................................................................... - 15 -3.4报警电路设计 ............................................................................................... - 17 -3.5键盘控制器设计 ........................................................................................... - 18 -3.6电源设计 ....................................................................................................... - 18 -3.7系统硬件连接设计 ....................................................................................... - 19 -第四章系统软件设计 .......................................................................................... - 21 -4.1 系统软件总体工作过程 .............................................................................. - 21 -4.2软件程序 ....................................................................................................... - 21 -4.3 LED数码显示器显示程序 .......................................................................... - 24 -第五章结论 .......................................................................................................... - 25 -参考文献 ................................................................................................................ - 26 -致谢 ................................................................................................................ - 27 -第一章绪论1.1本课题研究的意义在当今科学研究和生产生活中,温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。

温度检测显示与报警系统课程设计

温度检测显示与报警系统课程设计

温度检测显⽰与报警系统课程设计课程设计报告书课设名称:温度检测、显⽰与报警系统年级专业及班级:姓名:学号:指导⽼师:指导⽼师签名:2014年 5⽉4 ⽇摘要温度是⼀种最基本的环境参数,⼈民的⽣活与环境的温度息息相关,在⼯业⽣产过程中需要实时测量温度,在农业⽣产中也离不开温度的测量,因此研究温度的测量⽅法和装置具有重要的意义。

温度是⼀个⼗分重要的物理量,对它的测量与控制有⼗分重要的意义。

随着现代⼯农业技术的发展及⼈们对⽣活环境要求的提⾼,⼈们也迫切需要检测与控制温度:如⼤⽓及空调房中温度的⾼低,直接影响着⼈们的⾝体健康;粮仓温度的检测,防⽌粮⾷发霉,最⼤限度地保持粮⾷原有新鲜品质,达到粮⾷保质保鲜的⽬的;⼯业易燃品的存放。

本次课程设计介绍了以STC89C51单⽚机为核⼼的温度检测报警系统的⼯作原理和设计⽅法。

温度信号由温度传感器芯⽚DS18B20采集,并以数字信号的⽅式传送给单⽚机,单⽚机再控制数码管驱动芯⽚74LS573驱动4位分⽴式数码管显⽰实时温度,当检测到的温度超出了给定的温度范围(默认下限为20℃,默认上限为35℃),系统将输出报警声。

本系统的主要硬件电路包括:温度检测电路,数码管驱动电路,报警电路。

另外本系统的软件部分占了很⼤的⽐重,主要的软件模块包括:温度传感器程序,数码管驱动及显⽰程序,报警程序。

系统的主要功能及⼯作流程总体设计框图:单⽚机STC89C51温度采集(DBS18B20)阈值设定(键盘)报警(蜂鸣器)显⽰主要功能:1、能正确检测温度;2、在数码管上实时显⽰温度;3、当温度超过或低于设定的阈值时,蜂鸣器报警;4、可通过矩阵键盘调整温度报警阈值;5、默认上限报警温度为35℃,默认下限报警温度为20℃。

⼯作流程:系统设计思路为以单⽚机为控制中⼼,通过实时采集温度传感器DBS18B20获得当前的温度值,通过LED显⽰当前温度,同时使⽤键盘设定温度阈值,当测定温度⼤于温度阈值后,利⽤蜂鸣器报警。

嵌入式系统课程设计

嵌入式系统课程设计

《嵌入式系统》课程设计一、目的《嵌入式系统》课程设计为学生提供了一个理论与实践相结合的机会。

既锻炼了学生动手能力,又会加深理解学生在课堂所学习的理论知识。

通过课程设计可以将课本上的理论知识和实际应用有机的结合起来,培养学生又动脑,又动手,独立思考分析问题的能力,提高学生运用所学知识解决实际问题的综合素质。

《嵌入式系统》课程设计的主要目标是:(1)掌握构建嵌入式系统软硬件平台的基本技能;(2)具备基本嵌入式系统下C语言编程能力、嵌入式操作系统基本调试的能力;(3)了解应用嵌入式系统技术开发一套嵌入式系统设备的方法。

二、设计题目基于ARM的滚屏LED广告牌开发三、设计原理1、点阵LED屏硬件原理EMBEST实验平台设计了一个 16×16的点阵屏。

点阵屏由发光LED矩阵块组成。

16×16点阵屏即屏上有 16×16 个LED发光二极管,每个发光二极管可理解为一个像素点,它们被按着行与列的形式整齐地排列,通过控制每个LED(像素点)的亮灭,点阵屏可与计算机同步显示汉字、英文文本和图形。

本实验平台的点阵屏电路如下图:图1 点阵屏的行扫描信号图2 点阵屏的列扫描信号图3 点阵屏的行驱动信号图4 点阵屏的接口电路本实验平台使用的16×16点阵屏上,每一行16个LED,它们采用共阳极的接法;每一列16个LED,它们采用共阴极的接法。

如上图4中,QL1~QL16是点阵屏的行驱动信号,每一个信号控制一行;LR1~LR16是点阵屏的列驱动信号,每一个信号控制一列。

故通过利用相应行线输出高电平,相应列线输出低电平,就可以点亮点阵屏上相应的LED。

如果按着一定的控制或扫描方法,就可以实现汉字、图形的显示。

为了能够稳定地控制点阵屏的显示,本实验平台采用了CD4094作为行线和列线扫描信号的控制芯片。

CD4094芯片简单来说就是一串入并出的功能,将CPU的串行数据转化为并行数据输出。

如上图1与图2,行(列)扫描信号分别采用了两片CD4094级连的方式来构成,第一片的数据溢出信号LQS 连接到第二片的串行数据输入口。

嵌入式课程设计温度传感器-课程设计

嵌入式课程设计温度传感器-课程设计

嵌入式系统原理与应用课程设计—基于ARM9的温度传感器学号: 2012180401**班级: **************1班姓名:李*指导教师:邱*课程设计任务书班级: *************姓名: *****设计周数: 1 学分: 2指导教师: 邱选兵设计题目: 基于ARM9的温度传感器设计目的及要求:目的:1.熟悉手工焊锡的常用工具的使用及其维护与修理。

2.基本掌握手工电烙铁的焊接技术,能够独立的完成简单电子产品的安装与焊接。

熟悉电子产品的安装工艺的生产流程。

3.熟悉印制电路板设计的步骤和方法,熟悉手工制作印制电板的工艺流程,能够根据电路原理图,元器件实物设计并制作印制电路板。

4.熟悉常用电子器件的类别、型号、规格、性能及其使用范围,能查阅有关的电子器件图书。

5.能够正确识别和选用常用的电子器件,并且能够熟练使用普通万用表和数字万用表。

6.掌握和运用单片机的基本内部结构、功能部件、接口技术以及应用技术。

7.各种外围器件和传感器的应用;8.了解电子产品的焊接、调试与维修方法。

要求:1.学生都掌握、单片机的内部结构、功能部件,接口技术等技能;2.根据题目进行调研,确定实施方案,购买元件,并绘制原理图,焊接电路板,调试程序;3.焊接和写汇编程序及调试,提交课程设计系统(包括硬件和软件);.4.完成课程设计报告设计内容和方法:使用温度传感器PT1000,直接感应外部的温度变化。

使用恒流源电路,保证通过PT1000的电流相等,根据PT1000的工作原理与对应关系,得到温度与电阻的关系,将得到的电压放大20倍。

结合ARM9与LCD,将得到的参量显示在液晶屏上。

目录第一章绪论 (1)第二章系统总体结构 (2)2.1 硬件框图 (2)2.2 器件选用 (2)第三章硬件结构 (3)3.1 数据采集模块 (3)3.11 PT1000铂热电阻 (3)3.12 稳压二极管IN4728 (5)3.13 LM324 (6)3.2 数据处理模块 (7)3.21 STM32 (7)3.22TFT- LCD (8)3.23 ADC 控制寄存器 (9)第四章软件结构 (11)第五章总结 (16)第六章参考文献 (17)附录一 (18)附录二 (19)附录三 (20)第一章绪论温度是表征物体冷热程度的物理量、是自然界中和人类打交道最多的两个物理参数,无论是在生产实验场所,还是在居住休闲场所,温湿度的采集或控制都十分频繁和重要,而且,网络化远程采集温湿度并报警是现代科技发展的一个必然趋势。

基于嵌入式系统的无线温度测量系统设计

基于嵌入式系统的无线温度测量系统设计

基于嵌入式系统的无线温度测量系统设计无线温度测量系统是一种基于嵌入式系统的应用,它利用无线通信技术实现对温度的测量和监控。

本文将介绍这个系统的设计,包括硬件和软件的选择、系统的组成和功能等方面。

首先,我们需要选择合适的硬件平台来实现这个系统。

考虑到嵌入式系统需要具有高性能、低功耗和小尺寸等特点,我们选择使用一款低功耗、高性能的嵌入式开发板作为硬件平台。

该开发板需要具备无线通信模块和温度传感器接口,以便进行数据的传输和温度的测量。

其次,我们需要选择合适的软件平台来开发系统的功能。

考虑到系统需要实时监测温度,并将数据传输至远程服务器,我们选择使用一款实时操作系统(RTOS)作为软件平台。

RTOS可以提供对实时任务的支持,确保系统能够及时响应温度变化,并确保数据的准确传输。

系统的组成主要包括温度传感器、嵌入式开发板、无线通信模块和远程服务器。

温度传感器负责测量温度并将数据传输至嵌入式开发板,嵌入式开发板则负责接收并处理温度数据,并通过无线通信模块将数据传输至远程服务器。

远程服务器负责存储温度数据,并提供远程访问和监控功能。

系统的功能主要包括实时温度监测、数据传输和远程访问。

系统能够实时监测温度,并将数据传输至远程服务器,以便后续的分析和处理。

用户可以通过远程服务器对温度进行访问和监控,以便及时了解温度变化情况。

系统的工作流程如下:首先,温度传感器测量温度并将数据传输至嵌入式开发板。

开发板接收到数据后,通过无线通信模块将数据传输至远程服务器。

远程服务器接收到数据后进行存储,并提供远程访问和监控功能。

用户可以通过远程服务器访问和监控温度数据,以便及时了解温度变化情况。

在实际应用中,该系统可以广泛应用于各种领域,如工业生产、能源管理和环境监控等。

例如,在工业生产中,该系统能够实时监测设备温度,以便及时发现和处理异常情况,从而保证生产过程的稳定和安全。

在能源管理中,该系统能够监测房间和建筑物的温度,以便合理调节空调和供暖设备的工作,减少能源浪费。

基于嵌入式的温度检测报警系统设计与实现

基于嵌入式的温度检测报警系统设计与实现

基于嵌入式的温度检测报警系统设计与实现本文设计并实现了一种基于嵌入式系统的温度检测报警系统。

该系统能够检测环境温度,并在温度超过设定阈值时报警。

系统硬件采用了STM32F103C8T6单片机作为主控制器,DS18B20温度传感器作为温度检测模块,继电器控制器作为报警器件。

系统软件采用Keil C编译器进行开发,主要分为温度检测、报警控制、LCD显示三个模块。

温度检测模块利用DS18B20温度传感器检测环境温度,并将温度值通过OneWire接口传输至主控制器。

在Keil C编译器中读取传感器数据,并进行校验和转换,最终得到环境温度值。

为避免出现温度误差,系统采用了多个传感器进行检测,并在软件筛选后进行平均数运算,最终得到一个准确的环境温度值。

报警控制模块利用主控制器控制继电器开关状态,实现对报警器件的控制。

在用户设置温度阈值时,主控制器会对当前温度值进行比较,当温度超过设定阈值时,系统会触发继电器开关,驱动报警器件发出声音和光闪烁,以提醒用户注意环境温度的变化。

LCD显示模块利用主控制器控制LCD屏幕的显示内容,实现对温度、阈值等参数的展示和修改。

用户可以通过按键进行设定,同时屏幕上会显示当前的温度值和设定的阈值。

当温度超过设定阈值时,屏幕上会相应地显示“ALARM”或者“OVERHEAT”等文字提示。

总之,该系统通过简单的硬件和软件设计,实现了对环境温度的准确检测和报警,为用户提供了有效保障。

该系统可以应用于工厂、实验室等对温度要求较高的场合,具有广泛的应用前景。

为了更好地理解和评估基于嵌入式的温度检测报警系统的性能,我们列出了一些相关的数据,并进行了分析。

1. 温度检测精度:系统采用多点传感器同时进行检测,并在软件中进行平均计算,从而减少温度误差,达到了±0.5℃的检测精度。

2. 报警响应速度:当温度超过设定阈值时,系统能够实时触发继电器,驱动报警器件发出声光报警,实现快速响应。

3. 报警器件音量:系统采用继电器控制式蜂鸣器和LED灯作为报警器件,音量较大,且用LED灯进行可视化提醒,可以有效引起用户的注意。

嵌入式温湿度检测系统的设计

嵌入式温湿度检测系统的设计

课程设计(报告)温湿度检测系统的设计教学系:指导教师:专业班级:学生姓名:年 5 月摘要随着嵌入式技术的飞速发展,嵌入式在各个领域得到了广泛的应用。

粮食是人类生存的必需品,温度是保存好粮食的先决条件,储存大量的粮食对稳定国民经济的发展起到至关重要的作用。

粮库一般较大,测量点会很多。

粮仓温湿度测量方法以及相应的智能控制一直是粮食保存的一个重要问题。

本毕业设计是应用嵌入式系统设计的温湿度检测系统,由要由温度、湿度采集、主控单元、TFTLCD屏显示、ADC六部分组成。

本设计是以STM32Fl03ZET6微控制器单片机为控制中心,而温湿度传感器我采用的是CHTM-02/N 温湿度传感器模块,它性价比比较高。

另外该系统除了能显示温湿度以外,还能设置温湿度报警阀值。

关键词:STM32;CHTM-02/N 温湿度传感器;温湿度报警阀由古至今,粮仓粮食的存储是否得当对国家的经济能否正常合理的运行有很大的影响。

但是在以前的经济和科技水平有限,所以我国粮食的存储的环境很差,管理落后。

粮库管理的重点之一就是要合理布置测温点,经常检查温度变化,以便及时发现粮食的发热点,减少粮食的损失。

然而,粮堆的热传递又是那样的缓慢,使人感知极差,需要管理人员经常进入闷热、呛人的仓房内观察温、湿度,不断进行翻仓、通风,这种繁重的体力劳动,不仅对人体有极大地伤害,而且不科学、不及时。

所以,粮食虫蛀、霉变的情况时有发生。

1.设计目标1.1基本功能1.检测温度、湿度2.显示温度、湿度3.过限报警1.2主要技术参数1.温度检测的范围: -30℃±55℃3.湿度检测的范围: 20%-90%RH4.检测精度: 5%RH5.显示方式:温度:四位显示湿度:液晶显示;报警方式:三极管驱动的蜂鸣音报警2 设计方案温湿度监测系统要满足以下条件:温湿度监测系统能完成数据采集和处理、显示、串行通信、输出控制信号等多种功能。

传感器是实现测量首要环节,是监测系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。

(完整word版)嵌入式系统课程设计(温度检测报警系统).docx

(完整word版)嵌入式系统课程设计(温度检测报警系统).docx

嵌入式系统课程设计姓名:班级:学号:目录:一.系统要求二.设计方案三.程序流程图四.软件设计五.课程总结与个人体会一、系统要求使用 STM32F103 作为主控CPU 设计一个温度综合测控系统,具体要求:1、使用热敏电阻或者内部集成的温度传感器检测环境温度,每0.1 秒检测一次温度,对检测到的温度进行数字滤波(可以使用平均法)。

记录当前的温度值和时间。

2、使用计算机,通过串行通信获取STM32F103 检测到的温度和所对应的时间。

3、使用计算机进行时间的设定。

4、使用计算机进行温度上限值和下限值的设定。

5、若超过上限值或者低于下限值,则STM32 进行报警提示。

二、设计方案本次课程设计的要求是使用STM32F103设计一个温度测控系统,这款单片机集成了很多的片上资源,功能十分强大,我使用了以下部分来完成课程设计的要求:1、STM32F103内置了 3 个 12 位 A/D 转换模块,最快转换时间为1us。

本次课程设计要求进行温度测定,于是使用了其中一个 ADC对片上温度传感器的内部信号源进行转换。

当有多个通道需要采集信号时,可以把 ADC配置为按一定的顺序来对各个通道进行扫描转换,本设计只采集一个通道的信号,所以不使用扫描转换模式。

本设计需要循环采集电压值,所以使用连续转换模式。

2、本次课程设计还使用到了DMA。

DMA是一种高速的数据传输操作,允许在外部设备和储存器之间利用系统总线直接读写数据,不需要微处理器干预。

使能 ADC的 DMA接口后,DMA控制器把转换值从 ADC 数据寄存器 (ADC_DR)中转移到变量 ADC_ConvertedValue 中,当 DMA 传输完成后,在 main 函数中使用的 ADC_ConvertedValue 的内容就是ADC转换值了。

3、STM32内部的温度传感器和ADCx_IN16输入通道相连接,此通道把传感器输出的电压值转换成数字值。

STM内部的温度传感器支持的温度范围: -40 到 125 摄氏度。

嵌入式系统课程设计(基于ARM的温度采集系统设计)

嵌入式系统课程设计(基于ARM的温度采集系统设计)

嵌入式系统课程设计(基于ARM的温度采集系统设计)1000

嵌入式系统是一种基于微处理器或微控制器、专用硬件和软件的计算机系统,具有小型化、低功耗、实时性强等特点。

本次课程设计旨在设计一种基于ARM的温度采集系统,实现对温度值的实时监测与显示。

首先,需要选用一款适合嵌入式系统的ARM处理器。

考虑到性能和功耗的平衡,本次选用STM32F103C8T6处理器。

其主要特点有:基于ARM Cortex-M3内核,时钟频率为72MHz,具有64KB闪存和20KB SRAM。

接下来,需要选择温度传感器。

考虑到成本和精度等因素,本次选用DS18B20数字温度传感器。

DS18B20具有以下特点:数字接口,
精度为±0.5℃,温度响应快速,封装为TO-92。

然后,需要编写嵌入式软件。

本次采用Keil MDK-ARM开发环境,编写C语言程序。

程序主要包括以下部分:
1. 初始化:包括STM32外设的初始化,如时钟、GPIO、USART等。

2. 温度采集:通过OneWire协议与DS18B20通信,读取温度值,计算并保存到指定变量中。

3. 温度显示:使用USART串口通信,把温度值转换为ASCII码,并通过串口发送到上位机。

上位机可以使用串口调试助手等软件进行数据接收和显示。

最后,进行实验测试。

将DS18B20连接到STM32,把程序烧录到处
理器中,通过串口调试助手连接上位机,即可实时显示温度值。

实验测试表明,该系统温度采集准确可靠,响应速度快,可广泛应用于各种实时温度监测场景。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统课程设计姓名:________________________班级:________________________ 学号:目录:一•系统要求二•设计方案三.程序流程图四•软件设计五•课程总结与个人体会,、系统要求使用STM32F103作为主控CPU设计一个温度综合测控系统,具体要求:1、使用热敏电阻或者内部集成的温度传感器检测环境温度,每0∙1秒检测一次温度,对检测到的温度进行数字滤波(可以使用平均法)。

记录当前的温度值和时间。

2、使用计算机,通过串行通信获取STM32F103检测到的温度和所对应的时间。

3、使用计算机进行时间的设定。

4、使用计算机进行温度上限值和下限值的设定。

5、若超过上限值或者低于下限值,则STM32进行报警提示。

二、设计方案本次课程设计的要求是使用STM32F10设计一个温度测控系统,这款单片机集成了很多的片上资源,功能十分强大,我使用了以下部分来完成课程设计的要求:1、S TM32F10内置了3个12位AlD转换模块,最快转换时间为Ius。

本次课程设计要求进行温度测定,于是使用了其中一个ADC对片上温度传感器的内部信号源进行转换。

当有多个通道需要采集信号时,可以把ADC配置为按一定的顺序来对各个通道进行扫描转换,本设计只采集一个通道的信号,所以不使用扫描转换模式。

本设计需要循环采集电压值,所以使用连续转换模式。

2、本次课程设计还使用到了DMA DMA是—种高速的数据传输操作,允许在外部设备和储存器之间利用系统总线直接读写数据,不需要微处理器干预。

使能ADC的DMA接口后,DMA空制器把转换值从ADC 数据寄存器(ADC_DR中转移到变量ADC_ConvertedValue中,当DMA 传输完成后,在main函数中使用的ADC_ConvertedValue的内容就是ADC专换值了。

3、S TM32内部的温度传感器和ADCx_IN16输入通道相连接,此通道把传感器输出的电压值转换成数字值。

STM内部的温度传感器支持的温度范围:-40到125摄氏度。

利用下列公式得出温度温度(° C) = {(V25 - VSENSE) / Avg_Slope} + 25式中V25是VSENSEi 25摄氏度时的数值(典型值为1.42V)AVg_Slope是温度与VSENS曲线的平均斜率(典型值为4.3mV∕C)利用均值法对转换后的温度进行滤波,将得到的温度通过串口输出。

4、本设计采用了USART作为串行通信接口,来进行时间、温度的传输,以及进行时间和温度上下限的设定。

5、当温度超过上下限时,开发板上的灯会相应亮起作为警报,使用了GPIo配置引脚。

6、时间计时使用了SyStiCk时钟,并配置其中断,由此进行一秒定时,实现时钟的实时显示。

7、时间设定部分参考了一个两位数字读取的函数,在进入主循环前设定参数,从而避免了在串口中断中输入只能一次性输入所有参数的弊端。

三、程序流程图四、软件设计用到的库文件:stm32f10x_adc.h , stm32f10x_dma.h , stm32f10x_flash.h ,stm32f10x_gpio.h , stm32f10x_rcc.h , stm32f10x_usart.h , misc.h 自己编写的文件:main.c , stm32f10x_it.c , stm32f10x_it.hmain文件:#i nclude "stm32f10x.h"#i nclude "stdarg.h"#i nclude "stdio.h"#defi ne ADC1_DR_Address ((Ui nt32_t)0x4001244C)exter n __IO u16 ADC-CO nvertedValue;exter n __IO u16 CalCUlated_temp;__IO u16 CUrre nt_Temp;Un Sig ned Char sec=0 ,min=0,hour=0;typedef StrUCt{int tm_sec;int tm_mi n;int tm_hoUr;}rtc_time;rtc_time SyStmtime;IO U16 UPPer_bo Und;IO u16 lower_bou nd;//static uint8_t USART_SCa nf(uin t32_t value);void Time_RegUIate(rtc_time *tm);Un Sig ned int Timin gDelay=O;Un Sig ned int KEY_ON;Un Sig ned int KEY_OFF;void DeIay(U32 COUnt){u32 i=0;for(;i<co Un t;i++);}void LED_GPIO_C On fig(){GPIO」n itTypeDef GPIO」ni tStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); //使能PD端口时钟GPIO」ni tStructure.GPIO_Pi n = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;/∕LED0-->PD.8 端口配置GPIO」nitStructure.GPIO_Mode = GPIO_Mode_OUt_PP; // 推挽输出GPIO」ni tStructure.GPIO_SPeed = GPIO_SPeed_50MH z; //IO 速度50MHzGPIO」nit(GPIOD, &GPIO」nitStructure); // 根据设定参数初始化GPIOB.5}void SySTiCk_I nit(){if (SySTiCk_Co nfig(SystemCoreClock / 1000))While(1);}SySTiCk->CTRL &= ~ SySTiCk_CTRL_ENABLE_Msk;〃关闭滴答定时器/∕SysTick->CTRL I= SySTiCk_CTRL_ENABLE_Msk;// 开启滴答定时器}VOid Delay_ms__IO u32 n Time)Timin gDelay=n Time;SySTiCk->CTRL |= SySTiCk_CTRL_ENABLE_Msk;// 打开WhiIe(TimingDelay != 0);}void RCC_Co nfig(void)// 配置时钟{RCC_AHBPeriPhCloCkCmd(RCC_AHBPeriPh_DMA1, ENABLE);//DMARCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPI0C, ENABLE);//ADC1 and GPIOCRCC_APB2PeriphClockCmd(RCC_APB2Periph_USARTI | RCC_APB2Periph_GPIOA, ENABLE);//USARTRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); // 使能PD 端口时钟LED}void GPIO_C on fig(void){GPIO」n itTypeDef GPIO」ni tStructure;/***C onfig PA.01 (ADCI)***/GPIO」ni tStructure.GPIO_Pin = GPIO_Pin_1;GPIO」n itStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO」ni t(GPIOC, & GPIO」n itStructure);/***Co nfig LED ***/GPIo」n itStructure.GPIO_Mode = GPIO_Mode_Out_PP;Zz推挽输出GPIO」ni tStructure.GPIO_SPeed = GPIO_SPeed_50MH z; ZZIO 速度50MHzGPIO」nit(GPIOD, &GPIO」nitStructure); ZZ 根据设定参数初始化GPIOB.5Z***C Onfig USART ***ZZ* COn figure USARTI TX (PA.09) as alternate fu nctio n push-pull *ZGPIO_I nitStructure.GPIO_Pi n = GPIO_Pin_9;GPIO」ni tStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO」ni tStructure.GPIO_SPeed = GPIO_SPeed_50MH z;GPIO」ni t(GPIOA, & GPI O」ni tStructure);Z* COn figure USARTI RX (PA.10) as in PUt floati ng *ZGPIO」n itStructure.GPIO_Pin = GPIO_Pin_10;GPIO」ni tStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO」ni t(GPIOA, & GPI O」ni tStructure);}void DMA_Co nfig(void){Z* DMA Cha nn el1 COn figuration *ZDMA_I nitTypeDef DMA_I ni tStructure;DMA_DeI ni t(DMA1_Cha nn el1);DMA_I nitStructure.DMA_PeriPheraIBaSeAddr = ADC1_DR_AddreSs; Z*ADC??*ZDMA_I nitStructure.DMA_MemOryBaSeAddr = (u32)&ADC_Co nvertedValue;DMA_I nitStructure.DMA_DIR = DMA_DIR_PeriPheralSRC;DMA_I nitStructure.DMA_BUfferSiZe = 16;DMA_I nitStructure.DMA_PeriPheraII nc = DMA_PeriPheraII nc_Disable;DMA_I nitStructure.DMA_MemOryI nc = DMA_MemOryI nc_Disable;DMA_I nitStructure.DMA_PeriPheraIDataSiZe = DMA_PeriPheraIDataSiZe_HalfWord;DMA」nitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;DMA_I nitStructure.DMA_Mode = DMA_Mode_CirCUlar;DMA_I nitStructure.DMA_PriOrity = DMA_PriOrity_High;DMA_I ni tStructure.DMA_M2M = DMA_M2M_DiSable;DMA_I nit(DMA1_Cha nn el1, & DMA_I nitStructure);/* En able DMA Cha nn el1 */DMA_Cmd(DMAI_Cha nn el1, ENABLE);}void ADC1_Co nfig(void){ ADC」n itTypeDef ADC」n itStructure;ADC」ni tStructure.ADC_Mode = ADC_Mode_I ndepe ndent;ADC」ni tStructure.ADC_SCa nCon VMOde = ENABLE ;ADC」ni tStructure.ADC_Co ntin UOuSC On VMOde = ENABLE;ADC」n itStructure.ADC_ExternalTrigCO nv = ADC_EXternaITrigCO nv_No ne;ADC」n itStructure.ADC_DataAlig n = ADC_DataAIign_Right;ADC」ni tStructure.ADC_NbrOfCha nnel = 1;ADC」n it(ADC1, &ADC」ni tStructure);/* ADC1 regular Cha nn el16 con figuration */ADC_RegUIarCha nn elCo nfig(ADC1, ADC_Cha nn el_16, 1, ADC_SamPIeTime_55Cycles5);ADC_TemPSe nsorVrefi ntCmd(ENABLE);ADC_DMACmd(ADC1, ENABLE);ADC_Cmd(ADC1, ENABLE);ADC_ReSetCaIibratiO n(ADC1);WhiIe(ADC_GetReSetCaIibratiO nStatus(ADC1));ADC_StartCaIibratiO n(ADC1);WhiIe(ADC_GetCaIibratiO nStatus(ADC1));ADC_SOftWareStartC on VCmd(ADC1, ENABLE);VOid USARTLCO nfig(void){USART_I ni tTypeDef USART_I ni tStructure;USART_I ni ART_BaUdRate = 9600;USART_I ni ART_WOrdLe ngth = USART_WOrdLe ngth_8b;USART_I ART_StOPBitS = USART_StOPBitS_1;USART_I ni ART_Parity = USART_Parity_No ;USART_I ni ART_HardWareFlowCo ntrol = USART_HardWareFlowCo ntrol_No ne;USART_I ni ART_Mode = USART_Mode_RX | USART_Mode_Tx;USART_I ni t(USART1, & USART_I nitStructure);// USART_ITCo nfig(USART1,USART_IT_RXNE,ENABLE); // 接收使能// USART_ITConfig(USART1,USART_IT_TXE,ENABLE); // 发送使能USART_Cmd(USART1,ENABLE); // 启动串口}StatiC uint8_t USART_SCa nf(ui nt32_t value)// 字符串读取函数{Uin t32_t index = 0;Uin t32_t tmp[2] = {0, 0};while (in dex V 2){/* Loop Un til RXNE = 1 */while (USART_GetFIagStatUS(USART1, USART_FLAG_RXNE) ==RESET) {}tmp[i ndex++] = (USART.ReceiveData(USARTI));if ((tmp[i ndex - 1] V 0x30) || (tmp[i ndex -1] > 0x39)) {Printf("∖n∖r 请输入有效数字O至U 9 -->:");in dex--;}}index = (tmp[1] - 0x30) + ((tmp[O] - 0x30) * 10);/* CheCkS */if (in dex > VaIUe){Printf("∖n∖r 请输入有效数字0 至U %d", value);retur n 0xFF;}retur n in dex;}void Time_RegUIate(rtc_time *tm)// 时间设定函数{Uin t32_t TmPJHH =0xFF, TmP_MI = 0xFF, TmP_SS = 0xFF;Uin t32_t TmP_UP = 0xff,Tmp_lOW = 0xff;Printf("∖r∖ n设定温度范围"); 输入温度上限:");Prinwhile (TmP_UP == 0xFF){TmP_UP = USART_SCa nf(99);}Printf("∖n∖r 温度上限为%0.2d C∖n∖r", TmP_Up); UPPer_bo Und = TmP_Up;// ----------------Printf("∖r∖n 输入温度下限:");while (Tmp_lOW == OXFF){TmP_low = USART_SCa nf(99);}Printf("\n\r 温度下限为%0.2d C∖n∖r", TmP_low); lower_bo Und = TmP_low;Printf("\r\n 设定时间");TmPJHH = 0xFF;Printf("\r\n 设定小时:");while (TmPJHH == OxFF){TmPJHH = USARTJSCa nf(23);}Printf("\n\r 设定小时为%d∖n∖r", TmPJHH );tm->tm_hour= TmPJHH;TmPJMI = OxFF;Printf("∖r∖n 设定分钟:");while (TmPJMI == OxFF){TmP_MI = USART_SCa nf(59);}Printf("∖n∖r 设定分钟为%d∖n∖r", Tmp_MI);tm->tm_mi n= TmP_MI;TmP_SS = OxFF;Printf("\r\n 设定秒:");while (TmP_SS == 0xFF){TmP_SS = USART_SCa nf(59);}Printf("\n\r 设定秒为%d∖n∖r", TmP_SS);tm->tm_SeC= TmP_SS;}int fputc(i nt ch, FILE *f)// 重定向函数{USART_Se ndData(USART1, (Un Sig ned Char) ch);// while (!(USART1->SR & USART_FLAG_TXE));while( USART_GetFIagStatUS(USART1,USART_FLAG_TC)!= SET); return (ch);}/***************************** 主函数*********************************************'int main(v Oid){#ifdef DEBUG#en difSySTiCk_I ni t();LED_GPIO_Co nfig();RCC_C On fig();GPIO_Co nfig();DMA_Co nfig();ADC1_Co nfig();USARTI_Co nfig();Delay(5000);Time_RegUlate(&systmtime);GPIO_SetBitS(GPIOD, GPIO_Pin_8);GPIO_SetBitS(GPIOD, GPIO_Pin_9);GPIO_SetBitS(GPIOD, GPIO_Pin_10);GPIO_SetBitS(GPIOD, GPIO_Pin_11);SeC=SyStmtime.tm_sec;min=SyStmtime.tm_mi n;hour=systmtime.tm_hour;while(1){sec++;if(sec==60){ sec=0 ;min++;if(mi n==60){min=0;hour++;if(hour==24){hour=0;}}Prin tf("∖r∖ n 当前时间:%d :%d :%d ∖r∖n", hour,mi n, sec);Printf("∖r∖n 当前温度:%02d C 温度上限:%02d C限: %02d C ∖r∖n",Average_Temp,upper_boUnd,lower_boUnd);GPIO_SetBits(GPIoD, GPI0_Pin_8);GPIO_SetBits(GPIoD, GPIO_Pin_9);GPIO_SetBitS(GPIOD, GPIO_Pin_10);GPIO_SetBitS(GPIOD, GPIO_Pin_11);if(((i nt)Curre nt_Temp) > ((i nt)upper_bo Un d)){GPIO_ReSetBitS(GPIOD, GPIO_Pin_8);}else if(((i nt)Curre nt_Temp) V ((i nt)lower_bo Un d)){GPIO_ReSetBitS(GPIOD, GPIO_Pin_11);}else{GPIO_SetBitS(GPIOD, GPIO_Pin_8);GPIO_SetBitS(GPIOD, GPIO_Pin_9);GPIO_SetBitS(GPIOD, GPIO_Pin_10);GPIO_SetBitS(GPIOD, GPIO_Pin_11);}Delay_ms(1000);}}stm32f10x_it.c 文件:/*----------------------------------------------------------------- */#i nclude "stm32f10x_it.h" 温度下In CIUdeS/* PriVate fun Cti OnS-------------------------------------------------------- */void display(void){Un Sig ned Char ad_data,ad_value_max,ad_value_m in;ad_data=Curre nt_Temp;if(ad_SamPIe_Cnt==O){ad_value_max=ad_data;ad_value_m in=ad_data;}else if(ad_data<ad_value_m in){ad_value_m in=ad_data;}else if(ad_data>ad_value_max){ad_value_max=ad_data;}ad_value_sum+=ad_data;ad_SamPIe_c nt++;if(ad_SamPIe_c nt==10){ad_value_sum-=ad_value_mi n; ad_value_sum-=ad_value_max;ad_value_sum/=8;CalCUlated_temp=ad_value_sum;ad_SamPIe_c nt=0;ad_value_m in=O;ad_value_max=O;}}void SySTiCk_Ha ndler(void){Timi ngDelay--;ADC_tempValueLocal = ADC_Co nvertedValue;/∕prin tf("∖n %02d ∖n, ADC_Co nvertedValue");CUrre nt_Temp=(V25-ADC_tempValueLocal)/Avg_Slope+25;temp_sum+=Curre nt_Temp;temp_c nt++;if(temp_cnt>=10){temp_cnt=0;temp_sum/=10;AVerage_Temp=temp_sum; temp_sum=0;}C∖r∖n", //pri ntf("∖r∖ n The CUrre nt temperature = %02dCalCUIated_temp);}五、课程总结与个人体会嵌入式开发是自动化专业的主要课程之一,现实生活中,嵌入式在应用可以说得是无处不在。

相关文档
最新文档