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.hqwc.cn/news/102867.html

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

相关文章

如何把Android Framework学彻底?一条龙学习

Framework通俗易懂 平时学习 Android 开发的第一步就是去学习各种各样的 API&#xff0c;如 Activity&#xff0c;Service&#xff0c;Notification 等。其实这些都是 Framework 提供给我们的。Framework 层为开发应用程序提供了非常多的API&#xff0c;我们通过调用这些 API …

drone的简单使用

&#xff08;一&#xff09;简介 Drone 是一个基于Docker容器技术的可扩展的持续集成引擎&#xff0c;用于自动化测试、构建、发布。每个构建都在一个临时的Docker容器中执行&#xff0c;使开发人员能够完全控制其构建环境并保证隔离。开发者只需在项目中包含 .drone.yml文件&…

论文解读 | 基于中心的三维对象检测与跟踪

原创 | 文 BFT机器人 CenterPoint与传统基于框的3D物体检测器和跟踪器不同之处在于&#xff0c;它将3D物体表示、检测和跟踪为点&#xff0c;而不是使用边界框。这种方法具有几个优点&#xff0c;包括减少物体检测器的搜索空间&#xff0c;简化下游任务&#xff08;如跟踪&…

自然语言处理——数据清洗

一、什么是数据清洗 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序&#xff0c;包括检查数据一致性&#xff0c;处理无效值和缺失值等。与问卷审核不同&#xff0c;录入后的数据清理一般是由计算机而不是人工完成。 ——百度百科 二、为什么要数据清洗 现实生…

分支创建查看切换

1、初始化git目录&#xff0c;创建文件并将其推送到本地库 git init echo "123" > hello.txt git add hello.txt git commit -m "first commit" hello.txt$ git init Initialized empty Git repository in D:/Git/git-demo/.git/ AdministratorDESKT…

无需编程经验,也能制作租车预约微信小程序,快速上手

现在&#xff0c;制作租车预约微信小程序不再需要编程经验&#xff0c;只需几个简单的步骤&#xff0c;您就可以拥有自己的租车预约微信小程序。在本文中&#xff0c;我们将介绍如何利用乔拓云网后台来制作租车预约微信小程序&#xff0c;并实现您所需的功能。 首先&#xff0c…

Android——数据存储(一)(二十一)

1. 数据存储 1.1 知识点 &#xff08;1&#xff09;掌握Android数据存储的分类&#xff1b; &#xff08;2&#xff09;可以使用SharedPreferences存储数据。 1.2 具体内容 对于我们数据的存储而言&#xff0c;Android一共提供了5个数据存储的方式&#xff1a;SharedPrefe…

远程工作面试:特殊情况下的面试技巧

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)

目录 冯诺依曼体系&#xff08;Von Neumann Architecture&#xff09; CPU CPU基本原理&#xff1a; 如何衡量CPU的好坏&#xff1f; 1、主频&#xff08;时钟速度&#xff09;&#xff1a; 2、核心数&#xff1a; 指令 操作系统 操作系统“内核” 冯诺依曼体系&#x…

十二、集合(5)

本章概要 for-in 和迭代器 适配器方法惯用法 本章小结 简单集合分类 for-in和迭代器 到目前为止&#xff0c;for-in 语法主要用于数组&#xff0c;但它也适用于任何 Collection 对象。实际上在使用 ArrayList 时&#xff0c;已经看到了一些使用它的示例&#xff0c;下面是它…

【2023高教社杯】B题 多波束测线问题 问题分析、数学模型及参考文献

【2023高教社杯】B题 多波束测线问题 问题分析、数学模型及参考文献 1 题目 1.1 问题背景 多波束测深系统是利用声波在水中的传播特性来测量水体深度的技术&#xff0c;是在单波束测深的基础上发展起来的&#xff0c;该系统在与航迹垂直的平面内一次能发射出数十个乃至上百个…

使用Idea导入mybatis dependence时爆红解决方法

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency>如上在pom.xml中配置mybatis的dependence1时出现爆红的情况。 解决方法 找到idea编辑器右侧的maven按钮…