51单片机智能电风扇控制系统proteus仿真设计( 仿真+程序+原理图+报告+讲解视频)

51单片机智能电风扇控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

  • 讲解视频
  • 1.主要功能:
  • 2.仿真
  • 3. 原理图
  • 4. 程序代码
  • 5.设计报告
  • 6. 设计资料内容清单

51单片机智能电风扇控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0042

讲解视频

基于51单片机的智能电风扇控制系统proteus仿真设计

1.主要功能:

运用所学知识,制作一个 51单片机智能电风扇控制系统仿真设计

(1)3个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并3个LED显示出区别。

(2)每种类型风可以根据按下独立按键次数分为4个档的风力调节,并在数显管上显示1,2,3,4。

(3)设计风扇的过热保护,外接一个拨码开关模拟过热信号产生,当拨码开关断开时单片机采集到不稳态,风扇停止;当拨码开关闭合时,风扇继续运转。

(4)具有室内温度检测显示功能。

具体电路实现:

1.四位数码管显示室内温度和风扇档位,前三位显示温度,后一位显示风扇档位。

2.使用DS18B20检测温度数据,接到单片机的P3.3口

3.自然风,睡眠风,常风档位通过三个LED灯显示,分别接到P0.0,P0.1,P0.2

4.过热保护装置通过拨码开关模拟,拨码开关闭合,单片机P0.3口接地,引脚电位拉低。拨码开关打开,引脚电位不确定,单片机检测不到低电位默认不过热。

5.通过L298控制直流电机,仿真使用示波器显示脉冲宽度调制PWM,占空比越大,风扇转动越快。

6.四个按键控制自然风,睡眠风,常风和风扇停止。按下按键可以完成对自然风,睡眠风,常风模式4个档的风力调节

需注意仿真中51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:

2.仿真

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真够风扇不转动,需要按下档位按键才工作。

img

风扇转动的1档最大转速14.5,第二档转速最大转速28.5,第三档最大转速41.5,第四档最大转速55.6。下面是各模式在4档的仿真结果。

自然风4档,温度31度,风扇转动的最高转速是+55.6,转动间隔时间0.2秒,自然风指示灯点亮,数码管前三位显示温度31,后一位显示风扇档位4。

img

睡眠风4档,温度31度,风扇转动的最高转速是+55.6,转动间隔时间0.8秒,睡眠风指示灯点亮,数码管前三位显示温度31,后一位显示风扇档位4。

img

常风4档,温度31度,风扇转动的最高转速是+55.6,转动间隔时间0.3秒,常风指示灯点亮,数码管前三位显示温度31,后一位显示风扇档位4。

img

过热保护

任何档位或者模式下,拨码开关断开,过热保护模式启动,风扇停止转动。

img

3. 原理图

image-20230901231735067
元件 型号 数量

单片机 AT89C51 1

电容 10uf 1

电容 30pf 2

晶振 12MHZ 1

电阻 10k 1

按钮 4

温度传感器 DS18B20 1

驱动器 L298N 1

显示器 LCD1602 1

排阻 10k 1

数码管 4位共阴 1

电阻 1k 1

直流电机 5V 1

LED 黄色 3

电阻 100欧 3

排针 2P 1

电容 0.1uf 2

电容 100uf 2

稳压器 7805 1

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

主函数部分代码

sbit k1=P2^3;//按钮
sbit k2=P2^4;
sbit k3=P2^5;
sbit k4=P2^2;
sbit led1=P0^0;//LED
sbit led2=P0^1;
sbit led3=P0^2;
sbit out1=P2^6;//电机控制
sbit out2=P2^7;
sbit smg1=P3^4;//数码管
sbit smg2=P3^5;
sbit smg3=P3^6;
sbit smg4=P3^7;
sbit heat=P0^3;//过热//数码管编码
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar sec=0,time=0,mode=0;//系统变量
uchar miao=0,miao1=0,miao2=0,start=0;//间歇控制
uchar sudu=1;//档位
uchar wait=0;
uchar time1=0;
uchar bei=0;//暂停控制
uchar wendu=0;//温度
//延时
void delay(uint i)
{while(i--){//输出pwmif(time1<99)time1++;elsetime1=0;if(start &&(miao<miao1))//启动{out1=1;if(time1<sudu*20){out2=0;}else{out2=1;}}else //停止{out2=1;out1=0;}}
}
//主函数
void main()
{uchar k=0;out1=0;TMOD|=0X01;//初始化定时器TH0=0X3C;TL0=0XB0;	ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器while(1){		//按键检测if(!k1 &&(k!=1))//自然风{k=1;start=1;//启动led1=0;//指示灯led2=1;led3=1;miao1=3;miao2=1;if(mode!=1)mode=1;else{if(sudu<4)sudu++;elsesudu=1;}}if(!k2 &&(k!=2))//睡眠风{k=2;start=1;//启动led1=1;//指示灯led2=0;led3=1;miao1=3;miao2=6;if(mode!=2)mode=2;else{if(sudu<4)sudu++;elsesudu=1;}}if(!k3 &&(k!=3))//常风{k=3;start=1;//启动led1=1;//指示灯led2=1;led3=0;miao1=3;miao2=2;if(mode!=3)mode=3;else{if(sudu<4)sudu++;elsesudu=1;}}if(!k4)//停止{start=0;led1=1;//指示灯led2=1;led3=1;mode=0;}if(k1 && k2 && k3)k=0;//显示P1=smgduan[wendu/10];smg1=0;delay(100);smg1=1;P1=smgduan[wendu%10];smg2=0;delay(100);smg2=1;P1=smgduan[sudu];smg4=0;delay(100);smg4=1;}
}

5.设计报告

7508字设计报告,内容包含设计框图,引言,硬件设计介绍,软件设计介绍,仿真调试,总结和参考文献。

img

6. 设计资料内容清单

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、仿真

2、程序代码

3、功能要求

4、讲解视频

5、设计报告

6、框图

7、原理图

8、元器件清单

9、开题报告

10、结构框图

Altium Designer 软件资料

KEIL软件资料

Proteus软件资料

单片机学习资料

答辩技巧

设计报告常用描述

鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

img

资料下载链接(可点击):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/115843.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab图像处理-图像反转

图像反转 图像反转变化实质上是将图像明暗两种灰度进行互补运算后互换处理&#xff0c;理论上是由反比变换所得&#xff0c;其表达式为&#xff1a; sL−1−r 其中L−1为该灰度级中最大灰度值。 在MATLAB中&#xff0c;常使用imadjust()或imco…

2、QT的信号与槽

一、什么是信号与槽 一个对象发送一个信号出去&#xff0c;另外一个对象接收到该信号后&#xff0c;会触发相应的槽函数 二、信号与槽的语法 connect(信号的发送者&#xff0c;SIGNAL(信号名称),信号的接收者,SLOT(槽函数)); 1、写法&#xff1a; QT 4 的写法 connect(sende…

本地虚机Jumpserver使用域名访问报错 使用IP+端口没有错误

背景&#xff1a; 我在本地Windows VMware 15的环境中部署了CentOS7.5&#xff0c;下载jumpserver-offline-installer-v2.28.1-amd64-138.tar.gz并安装部署。 需求&#xff1a; 1、能使用http:ip访问堡垒机。达成&#xff1b; 2、能使用http:域名访问堡垒机。达成&#xff…

vue通过draggable实现拖拽功能

1. 官方文档 2. 安装 yarn add vuedraggable npm i -S vuedraggable <script src"//cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.20.0/vuedraggable.umd.min.js"></script> 3. 其他组件&#xff1a; sortablejs.js拖拽 非官网文档 npm install …

vue3的面试题

ref里面放对象发生的事情 ref只会对对象的属性进行响应式转换&#xff0c;而不会对对象的原型链上的属性进行转换。如果需要对对象的原型链上的属性进行响应式转换&#xff0c;可以使用reactive函数。 toRefs的适用场景&#xff1f; toRefs是Vue 3中的一个响应式API&#xf…

【Eclipse】搭建python环境;运行第一个python程序helloword

目录 0.环境 1.需准备&搭建思路 2.搭建具体步骤 1&#xff09;查看是否安装过python 2&#xff09;安装eclipse 3&#xff09;安装和配置pyDev 3.创建第一个python程序具体步骤 1&#xff09;新建项目 2&#xff09;输入项目名字&#xff0c;和配置选项 3&#x…

Ubuntu下安装nginx服务,实现通过URL读取ubuntu下图片

1.安装nginx包 sudo apt update sudo apt install nginx 2.安装完成后系统自动启动nginx sudo systemctl status nginx 查看nginx服务的状态 3.开启防火墙上的HTTP服务端口80 sudo ufw allow ‘Nginx HTTP’ 4.在浏览器输入 http://localhost 看到nginx的欢迎界面&#xff0c;…

ceph对象三元素data、xattr、omap

这里有一个ceph的原则&#xff0c;就是所有存储的不管是块设备、对象存储、文件存储最后都转化成了底层的对象object&#xff0c;这个object包含3个元素data&#xff0c;xattr&#xff0c;omap。data是保存对象的数据&#xff0c;xattr是保存对象的扩展属性&#xff0c;每个对象…

ESXi 6.7添加螃蟹2.5g网卡支持

安装了ESXi 6.7&#xff0c;结果机器两块网卡只能识别一块&#xff0c;然后想着不能让另一块浪费啊&#xff0c;开始折腾&#xff0c;看着网上都是找的驱动然后封装进iso&#xff0c;可是我已经装完了&#xff0c;怎么办&#xff0c;然后找到了下面解决方法 1.找驱动 下载RTL81…

MyBatis学习简要

目录 什么是MyBatis? MyBatis实现的设想 MyBatis基于配置文件的开发步骤 mybatis的配置文件 Mapper代理开发 配置文件完成增删改查的三步 注解开发 一、条件查询 参数接收时&#xff0c;参数的设置&#xff1a; 动态条件查询&#xff1a; 二、添加功能 步骤&#xf…

Unexpected mutation of “xxxx“ prop

原因 是因为子级修改了父级的数据&#xff0c;所以eslint执行的时候报了这个错 修复方式 1 如果是弹窗等组件&#xff0c;可以根据功能进行修改&#xff0c;比如我这块用的 element ui 的 dialog&#xff0c;便可以改成这样 使用 model-value 代替 修复方式 2 新建子组件…

【2】openGL shader着色器分析三角形填色

源代码在下面。文档查询 > docs.gl 结果展示&#xff1a;使用自己的shader和打印错误描述 该篇主要在上一部分代码的基础上添加了自己写的shader&#xff0c;即着色器。最常用的两个着色器 vertex shader 和 fragment shader&#xff0c;即顶点着色器和片段着色器。 大概…

【业务功能篇93】微服务-springcloud-多线程-异步处理-异步编排-CompletableFutrue-实战运用

异步处理编排 我们可以在商品详细信息查询的位置实现CompletableFuture的异步编排处理。 根据业务分析&#xff1a;3.4.5数据接口的入参信息需要来源于1数据接口的返回信息&#xff0c;也就是skuid 所以可以设计 1 3 4 5 串行线程 &#xff0c;而 3 4 5依赖1 &#xff0c;需要等…

【ROS 03】ROS通信机制进阶

上一章内容&#xff0c;主要介绍了ROS通信的实现&#xff0c;内容偏向于粗粒度的通信框架的讲解&#xff0c;没有详细介绍涉及的API&#xff0c;也没有封装代码&#xff0c;鉴于此&#xff0c;本章主要内容如下: ROS常用API介绍&#xff1b;ROS中自定义头文件与源文件的使用。…

【UniApp开发小程序】私聊功能后端实现 (买家、卖家 沟通商品信息)【后端基于若依管理系统开发】

文章目录 声明聊天数据查询管理数据库设计VoControllerServiceMapper WebSocket引入为什么使用WebSocket依赖配置类WebSocket服务 RabbitMQ引入为什么使用消息队列依赖启动类添加注解常量类使用配置类创建队列、交换机、绑定关系消息监听器发送消息到消息队列 延时任务为什么使…

ZooKeeper技术内幕

文章目录 1、系统模型1.1、数据模型1.2、节点特性1.2.1、节点类型 1.3、版本——保证分布式数据原子性操作1.4、 Watcher——数据变更的通知1.5、ACL——保障数据的安全1.5.1、权限模式&#xff1a;Scheme1.5.2、授权对象&#xff1a;ID1.5.3、权限扩展体系 2、序列化与协议2.1…

ChatGPT 制作可视化柱形图突出显示第1名与最后1名

对比分析柱形图的用法。在图表中显示最大值与最小值。 像这样的动态图表的展示只需要给ChatGPT,AIGC,OpenAI 发送一个指令就可以了, 人工智能会快速的写出HTML与JS代码来实现。 请使用HTML,JS,Echarts完成一个对比分析柱形图,在图表中突出显示第1名和最后1名用单独一种不…

Pytest参数详解 — 基于命令行模式

1、--collect-only 查看在给定的配置下哪些测试用例会被执行 2、-k 使用表达式来指定希望运行的测试用例。如果测试名是唯一的或者多个测试名的前缀或者后缀相同&#xff0c;可以使用表达式来快速定位&#xff0c;例如&#xff1a; 命令行-k参数.png 3、-m 标记&#xff0…

h5 ws 客户端 监听ws服务器广播的信息

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>AI智能写作</title><!-- Bootstrap CSS --><meta charset"utf-8"><meta name"viewport" content"widt…

划分字母区间【贪心算法】

划分字母区间 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。…