51单片机智能电风扇控制系统proteus仿真设计( 仿真+程序+原理图+报告+讲解视频) |
您所在的位置:网站首页 › usb风扇电机原理图 › 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文件路径,然后开始仿真。开始仿真够风扇不转动,需要按下档位按键才工作。 风扇转动的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。 过热保护 任何档位或者模式下,拨码开关断开,过热保护模式启动,风扇停止转动。
单片机 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 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 if(sudu if(sudu |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |