基于单片机实现的小风扇Word格式文档下载.docx
- 文档编号:21649227
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:26
- 大小:250.41KB
基于单片机实现的小风扇Word格式文档下载.docx
《基于单片机实现的小风扇Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的小风扇Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
1.调速功能
方案一:
利用给风扇串联电阻分压降流来实现调速功能;
方案二:
利用单片机模拟输出PWM波作为控制信号,利用放大电路调速。
经比较,选用方案二。
本作品是基于8051单片机,单片机内部定时器可以输出占空比可调的方波,通过改变P3.6口输出的不同占空比不同的方波,可以方便实现高速和低速转换。
利用三极管做开关电路。
无级调速功能:
放大电路部分串联一个电位器(100Ω),当阻值在0-100Ω之间变化时,由于Vb在2.8-3.3V之间,故由Ic=Vc/Rc(Vc<
Vb),则Ic会在0-180mA之间变化,实现小风扇的无极调速功能。
同时,风扇的高速档、低速档、自然风档同样适用。
参数计算:
Hfe=300,Ic=180-250mA,Vb=Vcc-1.0-Vbe=3.3V
则Ib=Ic/hfe=0.7mA
Rb=Vb/Ib=4.7KΩ。
Rc=Vc/Ic≈10Ω(Rc为滑动变阻器,用于无级调速
2.自然风功能
单片机定时器可以调节高速和低速转换的频率,从而实现自然风功能,程序如下:
while(mode==3)//自然风
{
TR1=1;
shijian();
keyscan();
P1_0=0;
P0=0xfe;
if(m==0)
di();
else
gao();
}
voiddi()//低速,占空比70%
{
feng=0;
delay1ms(7);
feng=1;
delay1ms(3);
}
voidgao()//高速,占空比100%
delay1ms(10);
/*定时中断1*/
voidtimer1()interrupt3using1
n++;
if(n==100)
n=0;
m=~m;
}
自然风是通过交替调用高速与低速两个函数来实现的,再用定时器设定高低速切换时间就可实现自然风了。
3.显示功能:
显示模块由发光管和数码管组成,发光管可以显示当前档位,分为停止、低速、高速、自然风四个档位。
数码管可以显示定时时间,显示控制由单片机软件控制。
原理:
数码管动态显示原理。
4.定时功能
定时功能的实现主要用现单片机的计时中断0。
该作品除了简单的定时外,还有定时控制功能,例如:
在某一时刻风扇正在低速运作,通过设定计时器可使风扇在N时间后自动跳到任意一档。
N由用户设定。
定时功能由单片机定时计数器中断实现,程序如下:
/*定时中断0*/
voidtimer0()interrupt1using1
timecount++;
TH0=(65535-50000*T)/256;
TL0=(65535-50000)%256;
if(timecount==20)
{
timecount=0;
second--;
if(second<
0)
{
if(minute==0)
{
second=0;
minute=0;
TR0=0;
mode=hou;
xianshi=0;
}
second=59;
minute--;
}
5.防倾倒功能
方案一:
利用机械开关和风扇座重力实现开关功能,缺点是稳定性不好。
方案二:
利用光敏元件结合单片机中断实现让风扇停止转动功能。
方案三:
利用防倾倒开关,缺点是对材料性能要求较高。
经比较选择方案二。
利用光敏电阻在黑暗和光照条件下阻值不同,与一个定值电阻串联后,在亮度变化时会产生一个高低电平跳变,将跳变输入单片机外部中断口,利用软件控制P3.6口电平,从而控制风扇停止转动。
参数测量及计算:
光敏电阻在有光照时电阻约为5KΩ-8KΩ之间,黑暗条件下阻值可达10MΩ。
利用这个变化,串如阻值为100K的电阻,两电阻之间的电位可以实现高低电平跳变。
6.USB接口的实现
USB输出电压为5V,电流为500MA。
USB接口有四个引脚,两个数据传输,两个电源,本作品中只使用两个电源引脚。
经测量,小风扇正常工作电压为1.2V-1.7V,电流为180mA-250mA。
所以完全可以带动小型风扇。
7.遥控功能
利用PT2262和PT2272红外编码和解码电路,解码后输出电平信号输入单片机I/O口,通过扫描程序实现对单片机的控制。
四、调试问题及解决方案
1.三极管放大电路无法带动小风扇转动
原因分析:
小风扇启动电流过大,USB电源无法满足
解决方案:
更换三极管和电阻之后仍无法解决,更换功率较小的风扇。
测试结果:
更换小风扇工作电压为2V-5V,工作电流为120-180mA。
按设计思路中计算方法计算后最终确定电路图及元件参数如图。
定值电阻R3=20Ω是为保证电动机两端电压而加的保护电阻。
2.防倾倒功能中断无法实现中断
电阻串联电路接至中断口(P3.2)时,无法使P3.2置低电位,原因是单片机I/O口有一定的输出电流,使光敏电阻两端的电压恒大于3V,无法置低电位。
通过与非门电路实现,与非门的引脚输出电流较低,高电平输出≥3.4V,低电平<0.3V.直接与单片机IO口连接时可以不受IO口电流的影响。
修改后电路如下,由于TTL门电路的输入高电平≥2.3V左右低电平为<1.5V,所以输入的高低电平不一定为严格的5V和0V。
同时为保证较弱光照时与非门输出低电平,所以R=2KΩ。
经测试,可以实现光控防倾倒功能。
附:
TTL门直流参数
参数名称和符号
规范值
单位
测试条件
直流参数
通导电源电流
ICCL
<14
mA
VCC=5V,输入端悬空,输出端空载
截止电源电流
ICCH
<7
VCC=5V,输入端接地,输出端空载
低电平输入电流
IiL
≤1.4
VCC=5V,被测输入端接地,其他输入端悬空,输出端空载
高电平输入电流
IiH
<50
μA
VCC=5V,被测输入端Vin=2.4V,其他输入端接地,输出端空载。
<1
VCC=5V,被测输入端Vin=5V,其他输入端接地,输出端空载。
输出高电平
VOH
≥3.4
V
VCC=5V,被测输入端Vin=0.8V,其他输入端悬空,IOH=400μA。
输出低电平
VOL
<0.3
VCC=5V,输入端Vin=2.0V,
IOL=12.8mA。
扇出系数
NO
4~8
同VOH和VOL
交流参数
平均传输延迟时间
tpd
≤20
ns
VCC=5V,被测输入端输入信号:
Vin=3.0V,f=2MHz。
3.遥控无法实现
故障:
红外接收头输出端没有电平变化。
红外发射管管脚电压变化范围不大
可能原因:
1.电路有问题;
2.电路是按照PT2262-1R芯片设计的,芯片不适合。
解决方案:
改用简单红外发射电路,发射电路由三极管放大电路组成,通过开关控制发射管通断,接收头导通,输出端电位由高到低变化,通过管脚扫描程序,实现循环控制风扇运行在各档位。
实现档位控制功能,但无法实现遥控定时。
最终实现功能:
实现高速,低速档选择,自然风功能,可以用遥控器遥控档位,可以设定定时关机、定时换挡,防倾倒功能,数码显示定时功能,无极调速。
不完善之处:
遥控无法直接档位选择,没有实现遥控定时功能;
防倾倒在黑暗条件下无法正常运行;
无极调速操作人性化程度不够。
五、软件设计及源程序
1.软件设计:
本作品的程序全部都由自已编写的,设计时的步骤如下:
1,总体规划,对要求的功能进行分析.
2,划分模块,主函数用mode参数将程序划分为四个模快,分别代表四个档位.
3,细化模快,在每个模快编写函数以实现相应的功能.
4,检查修补.检查程序,主要检查模快与模块之间的联接与切换.
5,下载调试.检查软硬件之间的衔接有没问题.
2.源程序:
#include<
reg52.h>
sbitP0_0=P0^0;
sbitP0_1=P0^1;
sbitP0_2=P0^2;
sbitP0_3=P0^3;
sbitP0_4=P0^4;
sbitP0_5=P0^5;
sbitP0_6=P0^6;
sbitP0_7=P0^7;
sbitP1_0=P1^0;
sbitP1_1=P1^1;
sbitP1_2=P1^2;
sbitP1_3=P1^3;
sbitP1_4=P1^4;
sbitP1_5=P1^5;
sbitP3_2=P3^2;
sbitP3_3=P3^3;
sbitfeng=P3^6;
sbitSPK=P3^7;
/*******函数声明*****/
voidinit();
//初始化
voiddelay1ms(unsignedint);
//延时程序
voiddi();
//低速运行程序
voidgao();
//高速运行程序
voidkeyscan();
//键盘扫描
voidshijian();
//倒计时显示
voidshow(intwei,intshu);
/*数码管显示*/
/*****变量声明*******/
codeunsignedcharm_ucLedTab[]=
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xC6,0xa1,0x86,0x8e,0xff
};
/*数码管十六进制编码表*/
codeunsignedcharLedTab[]=
0xef,0xf7,0xfb,0xfd,0xfe
codeunsignedcharhouTab[]=
0xf7,0xfb,0xfd,0xfe,0xff
staticunsignedintnum[4]={16,16,16,16};
staticintminute,second,mode=0,xianshi=0,h,hn,hou,m,n,hongwai;
unsignedcharfrq;
doubleT=1;
inttimecount=0;
voidmain()
init();
while
(1)
while(mode==0)//空档
feng=1;
P0=0xf7;
while(mode==1)//低速
P0=0xfb;
di();
while(mode==2)//高速
P0=0xfd;
gao();
while(mode==4)
inti;
P1=0x00;
P0=((P0>
>
1)|(P0<
<
7));
for(i=0;
i<
60;
i++)
frq++;
delay1ms
(1);
voidshow(intwei,intshu)
intb;
P0=0xff;
P1=LedTab[wei];
P0=m_ucLedTab[shu];
for(b=0;
b<
105;
b++);
P1=0xff;
/*延时程序*/
voiddelay1ms(unsignedintcount)
unsignedinti,j;
for(i=0;
count;
for(j=0;
j<
120;
j++)
;
voidinit()//程序初始化
EA=1;
TMOD=0X11;
/*定时50毫秒*/
ET0=1;
TH1=(65535-50000*T)/256;
TL1=(65535-50000)%256;
ET1=1;
TR1=1;
/*外部中断0*/
//P3_2=0;
EX0=1;
IT0=1;
//EX1=1;
//IT1=1;
frq=0x00;
delay1ms(6);
delay1ms(4);
voidshijian()
if(xianshi==0)
//这里....
P1_1=1;
P1_2=1;
P1_3=1;
P1_4=1;
}
if(xianshi==1)
show(0,minute/10);
show(1,minute%10);
if(xianshi==2)
show(2,second/10);
show(3,second%10);
if(xianshi==3)
if(h==0)
P0=houTab[hou];
else
P0=houTab[4];
/*外部中断0*/
voidbaojing()interrupt0using1
mode=4;
P0=0xfe;
/*外部中断1*/
voidhongwai1()interrupt2using1
hongwai=0;
EA=0;
mode++;
if(mode>
3)
mode=0;
EX1=0;
if(mode==4)
TH1=0xfe;
TL1=frq;
SPK=~SPK;
else
hn++;
hongwai++;
TH1=(65535-50000*T)/256;
TL1=(65535-50000)%256;
if(hn==10)
hn=0;
h=~h;
if(n==200)
if(hongwai==20)
//hongwai=0;
//EX1=1;
//TR0=1;
//shijian();
voidkeyscan()//键盘扫描
inttemp;
P2=0xff;
temp=P2;
//temp=temp&
0x3c;
while(temp!
=0xff)
delay1ms(5);
temp=P2;
//temp=temp&
while(temp!
temp=P2;
switch(temp)
{
case0xfb:
{
//这里...
if(xianshi==3)
hou=0;
else
{
//P1_3=0;
//P0=0xbf;
mode=0;
}
}
break;
case0xf7:
hou=1;
mode=1;
}
case0xef:
hou=2;
mode=2;
case0xdf:
hou=3;
mode=3;
case0xfe:
{
//这里...
if(xianshi==1)
{
minute++;
if(minute>
59)
minute=0;
}
elseif(xianshi==2)
second++;
if(second>
second=0;
}
break;
case0xfd:
{
//这里...
xianshi++;
if(xianshi==3)
TR0=1;
TR1=1;
if(xianshi>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 实现 风扇