仿真图proteus 8.9
程序编译器:keil 5
编程语言:C语言
设计编号:C0083
1.主要功能
功能说明:
1、以STM32单片机和控制核心设计甲醛浓度检测报警设计;
2、通过液晶屏LCD1602和串口上位机显示甲醛浓度,MV表示检测值,ALM表示报警值;
3、可以通过按键设置甲醛浓度ALM报警值大小。
4、监测甲醛浓度大于报警值时蜂鸣器报警电路导通,蜂鸣器报警。
5、默认监测到甲醛浓度高于0.100mg/m3蜂鸣器报警。
主要硬件设备:STM32F103单片机
资料下载链接:
https://docs.qq.com/doc/DS0FkcGdVRlFGcVhN
以下为本设计资料展示:
2.仿真设计
本实验利用STM32单片机的ADC、GPIO、定时器等资源,将软、硬件有机地结合起来,使得系统能够正确地进识别输入模拟甲醛传感器的AD值,LCD1602能够正确地显示,蜂鸣器根据气体浓度报警值工作。需注意的是,proteus是没有MQ-3等甲醛浓度传感器的,本设计使用滑动变阻器模拟甲醛浓度变化,不能直接用于实物设计,有需要的需跟据实物调试。
本测试如下所示:
仿真运行情况:
开始仿真后LCD1602实时显示检测到的甲醛浓度,可以通过滑动变阻器改变测量值。可通过按键设置报警值浓度,按下设置键进入设置模式,通过设置+调高报警值,通过设置-调低报警值。蜂鸣器报警电路在甲醛浓度高于报警值时启动,有嘟嘟报警声,低于不启动。
下图检测到气体浓度是0.090mg/m3,低于报警值0.100mg/m3,蜂鸣器电路不工作。

下图检测到甲醛浓度是0.110mg/m3,大于等于报警值,三极管导通,蜂鸣器报警

3.程序设计
程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL库版本编写的,有注释可以结合讲解视频理解。


关键字:STM32 proteus仿真
引用地址:
基于STM32的甲醛浓度检测报警proteus仿真设计
推荐阅读最新更新时间:2026-03-25 11:47
基于STM32的酒精浓度检测报警proteus仿真设计
仿真图proteus 8.9 程序编译器:keil 5 编程语言:C语言 设计编号:C0082 主要功能 功能说明: 1、以STM32单片机和MQ-3为控制核心设计酒精浓度检测报警设计; 2、通过液晶屏LCD1602和串口上位机显示酒精浓度; 3、可以通过按键设置酒精浓度报警值大小。 4、监测酒精浓度大于报警值时蜂鸣器报警电路导通,蜂鸣器报警。 5、默认监测到酒精浓度高于20mg/100ml蜂鸣器报警。 主要硬件设备:STM32F103单片机 以下为本设计资料展示: 仿真结果 本实验利用STM32单片机的ADC、GPIO、定时器等资源,将软、硬件有机地结合起来,使得系统能够正确地进识别输入模拟酒精传感器的AD值,LCD16
[单片机]
Proteus仿真实验之STM32流水灯
1.创建工程 1.点击创建新工程,输入工程名、安装路径。 2.选择从选中的模板中创建原理图(DEFAULT) 3.选择不创建PCB布版设计 4.选择创建固件项目,其中:系列选择Cortex-M3,Controller选择STM32F103R6,点击下一步,然后创建成功 2.配置实验所需元件 1.创建项目完成后就如下图所示,显示出自己所选的型号,STM32F103R6,系统并以配置好电源,连接电路如下,我们选用C0-C7端口,总共8个,如下图所示: 3.进入keil 5中生成hex文件 2.程序代码如下(程序实现要求:8个led灯依次闪烁,然后8个灯同时闪烁8次,依次重复) /*main.c*/ #
[单片机]
Proteus仿真STM32实现--DS18B20和LCD1602显示
proteus仿真stm32103r6,实现18B20温度值在1602上显示,可测量正负温度。程序及仿真工程已上传附件,利用proteus仿真18b20温度为0和-0.1时返回值均为零,新手上路,请多指教。使用proteus8.8版本进行仿真。 原理图 时序 原理图 单片机部分程序如下: #include stm32f10x.h #include bsp-lcd1602.h #include delay.h #include sys.h #include ds18b20.h #include stdio.h #include math.h short tem,tem1; u8 a,b,c,t
[单片机]
STM32示波器程序ILI9341_IO模拟源程序+Proteus仿真
uint8 x_1= 0,y_1 = 0; uint8 x_2= 0,y_2 = 0; uint8 x_3= 0,y_3 = 0; uint8 x_4= 0,y_4 = 0; uint8 x_5= 0,y_5 = 0; uint8 t4_PianYi_x = 0,t4_PianYi_y = 0; uint8 t5_PianYi_x = 0,t5_PianYi_y = 0; int i = 0 ; for( i= 0;i t1*3;i++) { x_1 = 10+ i;
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第18期单片机矩阵键盘+数码管显示
源代码: KEYBUF EQU 40H ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV KEYBUF,#0 MOV R0,#30H MOV R2,#0CH CLR A QING: MOV @R0,A INC R0 DJNZ R2,QING MOV P0,#8FH MOV R1,#30H DIS1: MOV R0,#30H MOV R2,#04H MOV R3,#05H DIS2: MOV A,@R0 AN
[单片机]
基于51单片机的温度控制proteus仿真
功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前温度及温度范围设定 2.超过温度设定范围将启动加热棒加热或风扇冷却 3.超过设定温度将声光报警 4.按键可设置温度范围 5.采用DC002作为电源接口可直接输入5V给整个系统供电 原理图: PCB: 主程序: #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include stdio.h #include 18b20.h #include lcd1602.h #include delay.h #define SETDOWN 0x01 #define SETUP 0x02
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第27期单片机步进电机正反转加减速(汇编)
源代码: ;逗比小憨憨 ZHENG EQU 30H FAN EQU 31H NO EQU 32H AS EQU 33H SS EQU 34H ORG 00H AJMP MAIN ORG 03H AJMP SUB_INT0 ORG 30H MAIN: MOV 10H,#01H MOV 11H,#03H MOV 12H,#02H MOV 13H,#06H MOV 14H,#04H MOV 15H,#0CH MOV 16H,#08H MOV 17H,#09H MOV 20H,#50 MOV 21H,#2
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第11期基于单片机的ADC0804实验(电压采集)
源代码: #include reg52.h #include intrins.h typedef unsigned char u8; typedef unsigned int u16; sbit dula = P2^6; sbit wela = P2^7; sbit adcs = P3^5; sbit adwr = P3^6; sbit adrd = P3^7; u8 code table = {0x3f,0x06,0x5b,0x4f,
[单片机]