基于PID的STM32恒温控制系统设计 下载本文

内容发布更新时间 : 2024/5/4 10:36:18星期一 下面是文章的全部内容请认真阅读。

单片机技术综合实训报告 第4页

调试模式:串行调试(SWD)和JTAG接口。

DMA:12通道DMA控制器。支持的外设:定时器,ADC,DAC,SPI,IIC和UART。 3个12位的us级的A/D转换器(16通道):A/D测量范围:0-3.6V。双采样和保持能力。片上集成一个温度传感器。

2通道12位D/A转换器:STM32F103xC,STM32F103xD,STM32F103xE独有。 最多高达112个的快速I/O端口:根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。除了模拟输入,所有的都可以接受5V以内的输入。

最多多达11个定时器:4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。2个16位的6通道高级控制定时器:最多6个通道可用于PWM输出。2个看门狗定时器(独立看门狗和窗口看门狗)。Systick定时器:24位倒计数器。2个16位基本定时器用于驱动DAC。

最多多达13个通信接口:2个IIC接口(SMBus/PMBus)。5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制)。3个SPI接口(18 Mbit/s),两个和IIS复用。CAN接口(2.0B)。USB 2.0全速接口。SDIO接口。

ECOPACK封装:STM32F103xx系列微控制器采用ECOPACK封装形式。

4 软件设计

4.1 软件流程图

写出软件流程图,并附加文字说明。

本次软件的编写是在keil5上进行,界面如图X,并在编写后生成.Hex文件,然后用烧写软件FlyMcu(界面如图X)将.Hex文件烧写在开发版上,流程如图X。

单片机技术综合实训报告 第5页

图X keil5软件界面

keil5编写程序生成.Hex文件FlyMcu烧写软件STM32F103开发版 图X 烧写流程图

图X 烧写软件

本程序软件功能是使用DHT11温湿度检测模块检测温湿度,将检测到的温湿度送到STM32单片机,和单片机的摄入设定值进行比较,当检测温度高于设定值时,风扇开启,同时可以用按键去查看LCD屏幕上的温湿度值及风扇转速,程序结构如图X。

单片机技术综合实训报告 第6页

图X 程序功能框架图

4.2 软件程序

主程序如下: #include \#include #include #include #include

\\\\

extern const unsigned char gImage_111[153600]; int main(void) {

static u8 key; u8 yd;

Delay_Init();//嘀嗒时钟延时初始化 Led_Init(); //LED灯初始化 Beep_Init();//蜂鸣器初始化 Key_Init(); //按键初始化 Uart_Init(115200);//串口初始化

//定时器3 PWM模式1初始化--周期1ms,占空比50%

单片机技术综合实训报告 第7页

TIM3_PWMConfig(1000,72,500); LCD_Init();//LCD初始化

//定时器4初始化--定时时间为1秒 TIM4_Config(10000,72); //LCD显示

Draw_Text_8_16_Str(50,50,WHITE,BLACK,\姓名 学号\ Draw_Text_8_16_Str(50,70,WHITE,BLACK,\李燕辉 1501190009\ Draw_Text_8_16_Str(50,90,WHITE,BLACK,\孟舒展 1501190047\ Draw_Text_8_16_Str(50,110,WHITE,BLACK,\王义涛 1501190046\ while(1) { key = Get_Key_Val(); if(key) {

yd = key; }

switch (yd) { case 1

:

Paint_Bmp(0,0,240,320,gImage_111); break;

case 2 : PID_Ctrl(DHT11_ShowTAndH());break;

case 3

:

drawpidline(0x1111);

Draw_Text_8_16_Str(50,50,RED,BLACK,\温湿度机转速\break; drawpidline(0x1111);

case 4 : LCD_Clear(WHITE); break;

default : ;

}

}

//

单片机技术综合实训报告 第8页

}

5 实物调试与结果

在调试时我们也是遇到了很多问题,在刚开始没有缓存按键导致数据无法传递,在显示温度时发现温度稳定在某一数值保持不变,经程序检查发现将按键的值缓存到寄存器中进行连续发送,此问题解决。在显示图片和文字时发现显示效果不理想,图片模糊、字体乱码,排除问题时发现是字体取模方式以及图片格式不对,将文字横向取模调整成纵向取模和图片格式改成.jpg后再次显示,效果良好。最终调试结果如图X,图X,图X,图X,图X,

图X 上电初始图

图X 清屏图

温湿度显示及转速波形

温度低于设定值时风扇停止转动

单片机技术综合实训报告 第9页

总 结

本次实训持续两周左右,在这期间我们对更高一级的单片机STM32的认知从无到有,学习了这种单片机的编程思路,不同于我们以前学的51单片机,这种单片机功能更强大,编程也更繁琐,应用也更广泛,每使用一个模块,都要对其进行时钟和寄存器的配置,这样的设计更符合低功耗的要求,更适合社会的发展趋势,这次实训也让我们学到很多关于项目的东西,在此次实训期间,我们学会了如何把所学的知识应用在实践中,让实践与理论相结合,真正做到学以致用。这次实训对于我们以后的工作、学习真是受益匪浅。离我们步入社会也没多少时间了,不管面临的是继续深造,还是就业的压力,`我想我们都应该充分利用好这一段时间,充实、完善自我。