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文件路径,然后开始仿真。开始仿真够风扇不转动,需要按下档位按键才工作。
风扇转动的1档最大转速14.5,第二档转速最大转速28.5,第三档最大转速41.5,第四档最大转速55.6。下面是各模式在4档的仿真结果。
自然风4档,温度31度,风扇转动的最高转速是+55.6,转动间隔时间0.2秒,自然风指示灯点亮,数码管前三位显示温度31,后一位显示风扇档位4。
睡眠风4档,温度31度,风扇转动的最高转速是+55.6,转动间隔时间0.8秒,睡眠风指示灯点亮,数码管前三位显示温度31,后一位显示风扇档位4。
常风4档,温度31度,风扇转动的最高转速是+55.6,转动间隔时间0.3秒,常风指示灯点亮,数码管前三位显示温度31,后一位显示风扇档位4。
过热保护
任何档位或者模式下,拨码开关断开,过热保护模式启动,风扇停止转动。
3. 原理图
元件 型号 数量
单片机 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编译,代码有注释,可以结合报告理解代码含义。
主函数部分代码
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--)
{
//输出pwm
if(time1<99)
time1++;
else
time1=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++;
else
sudu=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++;
else
sudu=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++;
else
sudu=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字设计报告,内容包含设计框图,引言,硬件设计介绍,软件设计介绍,仿真调试,总结和参考文献。
6. 设计资料内容清单
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、仿真
2、程序代码
3、功能要求
4、讲解视频
5、设计报告
6、框图
7、原理图
8、元器件清单
9、开题报告
10、结构框图
Altium Designer 软件资料
KEIL软件资料
Proteus软件资料
单片机学习资料
答辩技巧
设计报告常用描述
鼠标双击打开查找更多51 STM32单片机课程毕业设计.url
资料下载链接(可点击):