提供对应的Proteus仿真电路图Keil程序源码C语言等电子资料参考学习文末附全部资料的下载链接。01设计要求设计一个基于STM32控制的温度报警器功能1DS18B20采集环境温度功能2使用OLED屏实时显示温度功能3设计按键单元可调节温度上下限阈值功能4设计报警单元实现对超限温度监控报警。02系统概述系统搭载 OLED 显示屏实时显示实时温度、温度上下限阈值配备三色 LED 指示灯与蜂鸣器实现温度状态声光提示温度正常亮绿灯且蜂鸣器关闭、低于下限亮黄灯、高于上限亮红灯异常时蜂鸣器报警并通过独立按键完成温度上下限阈值的实时调节。03Proteus仿真04示例代码#include sys.h #include usart.h #include delay.h #include led.h #include key.h #include oled.h #include beep.h #include rtc.h #include ds18b20.h ​ int main(void) { u16 adc_Value_16_Pin_11 0; short adc_Value_Pin_11 0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); Gpio_IIC_Init(); beep_Init(); KeyInit(); OLED_Init(); OLED_CLS(); delay_ms(200); OLED_Refresh(); LED_Init() ; ​ while(1) { adc_Value_Pin_11 DS18B20_Get_Temp_Pin_11(); adc_Value_16_Pin_11 (u16)adc_Value_Pin_11; sprintf((char *)war,Tem:%d%d.%dC,adc_Value_16_Pin_11/100,adc_Value_16_Pin_11%100/10,adc_Value_16_Pin_11%10); OLED_P8x16Str(0,0,war); sprintf((char *)war1,hig:%d%d.%dC,HIGH/100%10,HIGH/10%10,HIGH%10); OLED_P8x16Str(0,4,war1); sprintf((char *)war2,low:%d%d.%dC,LOW/100%10,LOW/10%10,LOW%10); OLED_P8x16Str(0,6,war2); KeyFunc(); ​ if (adc_Value_16_Pin_11 LOW) { GPIO_ResetBits(GPIOA,GPIO_Pin_9); delay_us(600) ; GPIO_SetBits(GPIOA,GPIO_Pin_7); delay_us(600) ; GPIO_SetBits(GPIOA,GPIO_Pin_8); } else if ((adc_Value_16_Pin_11 HIGH)(adc_Value_16_Pin_11 1000)) { GPIO_ResetBits(GPIOA,GPIO_Pin_7); delay_us(600) ; GPIO_SetBits(GPIOA,GPIO_Pin_8); delay_us(600) ; GPIO_SetBits(GPIOA,GPIO_Pin_9); } } }注源码使用Keil4或Keil5打开仿真使用的是Proteus8.13版本建议使用与博主相同或高于博主的版本版本过低可能会打不开。05资料获取1项目完整资料获取链接下载链接2Keil、Proteus各个版本安装包 下载链接