您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于单片机的智能电风扇的设计v
基于单片机的智能电风扇的设计董珺斌侯江涛杨强指导老师:李红萍摘要:本系统以AT89C52单片机为核心,系统由速度检测模块、电源模块、调速模块、键盘控制模块、液晶显示模块、声光报警模块、语音呼叫模块、防倾倒模块等组成。可实现空档、低速、高速、自然风由各档位可自由切换,定时控制换档功能,倾倒自动关闭风扇并报警等功能,对电风扇控制具有良好的效果,在实际应用中具有很好的推广价值。关键词:AT89C52,光控防倾倒,数码管显示,人性化定时。一、前言随着电子制造业的不断发展,社会生产率的要求越来越高,各行业都需要精良高效、高可靠性的设备来满足要求。作为一种老式家电,电风扇具有价格便宜,摆放方便,体积轻巧等特点。由于大部分家庭消费水平的限制,电风扇作为一个家电行业的一员,在中小城市以及乡村将来一段时间内仍然会占有市场的大部分份额,但电风扇功能简单,不能满足智能化的要求,为提高电风扇的市场竞争力,使之在技术含量上有所提高,而且更加安全可靠,在现有市场上电风扇的基础上,本文结合实际,采用7805稳压电源,设计一种新型的智能电风扇,该风扇功能更多,且具有多种人性化设计,大大提高电风扇的市场竞争力。二、系统硬件设计智能电风扇以AT89C52单片机为核心,系统由速度检测模块、电源模块、调速模块、键盘控制模块、液晶显示模块、声光报警模块、语音呼叫模块、防倾倒模块等组成(如图1所示)。图1智能电风扇系统组成三、部分硬件电路设计1、液晶显示电路此系统选用的是点阵LCD模块.这是一款低功耗的点阵图形式LCD,可以工作在3.3V供电的情况下,显示格式为128(列)×64(行),具有多功能指令,内部带有中文字库,既可以工作于串行方式又可以工作于并行方式,很容易与16位的单片机相连。本系统中与单片机液晶显示模块声光报警模块语音呼叫模块AT89C52速度检测模块调速模块电源模块防倾倒模块键盘控制模块的连接采用并行工作模式,以液晶显示控制芯片的异步串行通信端USART为外部数据或控制指令的输入断口,如图2所示。图2液晶显示电路2、语音呼叫系统控制电路语音呼叫系统是继酒精检测电路发出超标信号后,该系统读取GPS模块传送过来的信息并通过语音呼叫系统把饮酒者所在地点信息传给其最近联系人,让他过来帮忙,如:“我现在在XX方位,我喝醉了,请速来接我”。其电路如图3所示。图3语音呼叫系统控制电路3、调速电路设计调速电路设计如图4所示,实现以下功能:高速、低速档选择,自然风功能,可以用遥控器遥控档位,可以设定定时关机、定时换挡,防倾倒功能,数码显示定时功能,无极调速。图4调速电路四、系统软件设计#includereg52.hSbitp0_0=p0^o;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^o;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[]={0xco,0xf9,0xa4,0xbo,0x99,0x92,0x82,0xf8,0x80,0x890,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)//空档{Shijian();Keyscan();Feng=1;P1_0=0;P0=0xf7;}While(mode==1)//低速{Shijian();Keyscan();P1_0=0;P0=0xfb;Di();}While(mode==2)//高速{Shijian();Keyscan();P1_0=0;P0=0xfd;Gao();}While(mode==3)//自然风{TR1=1;Shijian();Keyscan();P1_0=0;P0=0xfe;If(m==0)Di();ElseGao();}While(mode==4){Inti;Feng=1;TR1=1;P1=0x00;P0=((p01)|(p01));For(i=0;i60;i++){Frq++;Delay1ms(1);}}}}/*数码管显示*/Voidshow(intwei,int,shu){Intb;P0=oxff;P1=LedTab[wei];P0=m_ucLedTab[shu];For(b=0;b105;b++);P0=0xff;P1=0xff;}/*延时程序*/Voiddelay1ms(unsignedintcount){UnsignedintI,j;For(i=0;icount;i++)For(j=0;j120;j++);}Voidinit()//程序初始化{EA=1;TMOD=0X11;/*定时50ms*/TH0=(65535-50000*T)/256;TL0=(65535-50000)%256;ET0=1;/*定时50ms*/TH1=(65535-50000*T)/256;TL1=(65535-50000)%256;ET1=1;TR1=1;/*外部中断*o*///p3_2=0;EX0=1;IT0=1;//EX1=1;//IT1=1;Frq=0x00;}Voiddi()//低速,占空比70%{Feng=0;Delay1ms(6);Feng=1;Delay1ms(4);}Voidgao()//高速,占空比100%{Feng=0;Delay1ms(10);Feng=1;Voidshjian(){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){//这里….Show(0,minute/10);Show(1,minute%10);Show(2,second/10);Show(3,second%10);If(h==0){P1_0=0;P0=houTab[hou];}Else{P1_0=0;P0=hou[4];}}/*外部中断0*/Voidbaojing()interrupt0using1{Mode=4;P0=0xfe;}/*外部中断1*/Voidhongwai1()interrut2using1{Hongwai=0;EA=0;mode++;if(mode3){mode=0;}hongwai=0;EX1=0;EA=1;}/*定时中断1*/voidtimer1()interrupt3using1{if(mode==4){TH1=0xfe;TL1=frq;SPK=~SPK;}Else{n++;hn++;hongwai++;{TH1=(65535-50000*T)/256;TL1=(65535-50000)%256;)if(hn==10){hn=0;h=~h;}If(n==200){n=0;n=~m;}If(hongwai==20){//hongwai=0;//EX1=1;}}}/*定时中断0*/Voidtimer0()interrupt1using1{Timecount++;TH0=(65535-50000*T)/256;TL0=(65535-50000)%256;//TR0=1;//shijian();If(timecount==20){Timecount=0;Second--;If(second0){Second=0;Minut=0;TR0=0;Mode=hou;Xianshi=0;}else{Second=59;Minut--;}}}}Voidkeyscan()//键盘扫描{Inttemp;P2=0xff;Temp=P2;//temp=temp&0x3c;While(temp!=0xff){Delay1ms(5);Temp=P2;//temp=temp&0x3c;While(temp!=0xff){Temp=P2;Switch(temp){Case0xfb;{//这里…If(xianshi==3)Hou=0;Else{//P1_3=0;//P0=0xbf;Mode=0;}}Break;Case0xf7:{//这里…If(xianshi==3)Hou=1;Else{Mode=1;}}Break;Case0xef;{//这里…If(xianshi==3)Hou=3;Else{Mode=3;}Break;Case0xdf;{//这里…If(xianshi==3)Hou=1;Else}}Break;Caseoxfe:{//这里…If(xianshi==1){Minut++;If(minut59)Minut=0;}Elseif(xianshi==2)}{Second++;If(second59)Second=0;}}Break;Case0xfd;{//这里…Xianshi++;If(xianshi==3){TR0=1;TR1=1;}If(xianshi3){Xianshi=0;}}Break;}While(temp!=0xff){Temp=P2;//temp=temp&0x3c;}}}if(P3_3==0){if(hongwal=20){hongwai=0;mode++;if(mode3)mode=0;}}}六、结束语本系统采用52系列单片机为控制核心,实现了小风扇调速,定时功能。作品操作界面友好,设计人性化,便于使用。在本次作品设计的过程中,我们遇到了许多突发事件和各种困难。尤其是调试光控防倾倒功能时,中断口无法置低电平,我们经过多次试验后才解决了这个问题。通过小组成员的仔细分析和查阅各种资料后我们终于解决了这些问题,取得了令人满意的结果。通过这次比赛让我们对电子设计有了新的认识,之前学习单片机只注重软件而忽略硬件的设计,在本次设计中这个问题凸显出来,无论是元件性能参数还是电路计算,都不能马虎,只有认真做好每一步工作,才能设计出一个完整可行的电子作品。同时也让我们对对单片机有了进一步的认识和学习,得到了很多宝贵的实践经验。既然给了我们这样一次机会,就应该很好的利用类似智能控制大赛这样的实践平台提高自己。参考文献1.肖学云,无线电元器件精汇,北京,人民邮电出版社2.马楚仪,数字电子技术实验,广州,华南理工大学出版社出版社
本文标题:基于单片机的智能电风扇的设计v
链接地址:https://www.777doc.com/doc-2574108 .html