基于stm32单片机智能马桶座便器控制系统Proteus仿真+源程序

本文主要是介绍基于stm32单片机智能马桶座便器控制系统Proteus仿真+源程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

资料编号:142

一:功能介绍

1、采用stm32单片机+LCD1602显示屏+电机+DS18B20温度传感器+按键,制作一个基于stm32单片机智能马桶座便器控制系统Proteus仿真;

2、通过ds18b20传感器测量当前马桶坐垫的实时温度,显示到LCD1602屏幕上面;

3、通过按键设置需求温度,显示到LCD1602屏幕上面;

4、当马桶坐垫温度低于设置值时,坐垫自动开启加热电机,使其温度进行增加;

5、当自锁按键按下时(模拟有人坐上马桶),自动开启抽气电机进行排气换气;

二:仿真演示视频+程序简要讲解:(程序有中文注释,新手容易看懂)

142-基于stm32单片机智能马桶座便器控制系统Proteus仿真+源程序

三:设计软件介绍

本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。

四:程序打开方法

特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

52e4607707ba348cf09b7ca19400bedc.png

63734b142d30756f071ca3dbda38dcd3.png

程序部分展示,有中文注释,新手容易看懂
int main(void)
{int t;short tem,tem1;GPIO_Configuration();//初始化     Init1602(); IO_out();delay_init();RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef g;g.GPIO_Mode = GPIO_Mode_Out_PP;g.GPIO_Speed = GPIO_Speed_10MHz;g.GPIO_Pin = GPIO_Pin_8  ;GPIO_Init(GPIOA,&g);GPIO_SetBits(GPIOA,GPIO_Pin_8);    //输出1t=DS18B20_DQ_IN;
while(t){DS18B20_IO_OUT();   //SET PG11 OUTPUTDS18B20_DQ_OUT=0;   //拉低DQDelay_DS18B20(750);       //拉低750usDS18B20_DQ_OUT=1;   //DQ=1 Delay_DS18B20(15);       //15USDS18B20_IO_IN();  //SET PG11 INPUT   Delay_DS18B20(100);t=DS18B20_DQ_IN;}tem=DS18B20_Get_Temp();//读取温度PCout(9)=PCout(10)=0;while(1){tem=DS18B20_Get_Temp();//读取温度
if(  tem>0)         {  WrByte1602(0,8,'+'); WrByte1602(0,9,AsciiCode[tem%1000/100]);//显示+温度WrByte1602(0,10,AsciiCode[tem%100/10]);WrByte1602(0,12,AsciiCode[tem%10]);}else {  tem1=-(tem);tem1=tem1+1;WrByte1602(0,8,'-'); WrByte1602(0,9,AsciiCode[tem1%1000/100]);//显示-温度WrByte1602(0,10,AsciiCode[tem1%100/10]);WrByte1602(0,12,AsciiCode[tem1%10]);}anjiansaomiao();//扫描按键  WrByte1602(1,10,AsciiCode[wenduset%1000/100]);  //显示设置温度WrByte1602(1,11,AsciiCode[wenduset%100/10]);WrByte1602(1,12,AsciiCode[wenduset%10]);if(tem<wenduset*10)  PCout(9)=0;//温度小于设置值  打开加热电机进行马桶垫加热else  PCout(9)=1;  if(k3==1) PCout(10)=0;else PCout(10)=1;WrByte1602(0,1,' '); //字符显示WrByte1602(0,2,'T'); WrByte1602(0,3,'E'); WrByte1602(0,4,'M'); WrByte1602(0,5,'P'); WrByte1602(0,6,'='); WrByte1602(1,1,' '); //字符显示WrByte1602(1,2,' '); WrByte1602(1,3,'S'); WrByte1602(1,4,'E'); WrByte1602(1,5,'T'); WrByte1602(1,6,'='); WrByte1602(0,11,'.');   WrByte1602(0,14,'C'); WrByte1602(1,14,'C'); }
}

:仿真文件(采用Proteus打开)

8c316dcaedcfb37ca8179c67c8e323b9.png

ebeaa16edfea036f1d057c7747585ae5.png

036c9dea3604a765e8ed41c31df670fe.png

六:资料清单展示(文件中包含的相关资料)

83ecc1f722762c9c75b79c7f85a3f41e.png

资料分享下载链接(可点击)

这篇关于基于stm32单片机智能马桶座便器控制系统Proteus仿真+源程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/835484

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,