智能风扇设计毕业设计_第1页
智能风扇设计毕业设计_第2页
智能风扇设计毕业设计_第3页
智能风扇设计毕业设计_第4页
智能风扇设计毕业设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一、方案设计与论证31.1整体方案比较和选择31.2电源方案比较选择3二、MSP430F14弼片机介绍51.简单概述52、MSP430F14驻要特点53、MSP430F149芯片引脚功能介绍6三、系统设计73.1总体设计73.2各单元模块功能介zS及电路设计;73.2.1接收电路模块73.2.2电风扇驱动隔离电路83.2.3键盘模块93.2.4电源模块93.2.5液晶模块10四、软件设计104.1设计思路104.1.1扫描键盘模块104.1.2红外接收模块114.2软件流程图114.3软件代码12五、系统测试195.1测试方法19六、谢辞20七、附件215.2 MSP430开发板整体原理图

2、217.3实物图22八、参考文献23摘要本设计以 MSP430F14MSP430F14 弹片机为核心控制模块,通过主从单片机之间的串行通信来完成电风扇转速数据处理、模式控制和转速控制等,采用 PWPW 批冲调制技术来控制风扇的转速,用键盘和 LCD12864LCD12864 液晶显示来实现人机交互。该系统有电风扇的无级调速,弁可以对电风扇的转速进行设置和转速的实时测试与显示、具有睡眠风、自然风等多种工作模式可以选择、能显示风扇转速、运行模式等等信息和实现定时自动开、关机等功能,系统结构简单,步进小、精度高等优点。关键词:单片机红外遥控智能控制风扇一、方案设计与论证1.1整体方案比较和选择根据题

3、目要求,智能电风扇需要温度智控功能:风扇可以调节风扇的转速,达到更好的工作效果。用户可以选择手动设定方式来控制转速。多级调速功能:提供更多的风力级别和风型,提高用户的舒适度。定时工作功能:该定时功能可以让用户自己定制风扇工作时间的长短,以提供更人性化的服务。液晶显示功能:使用液晶屏显示风扇的转速,风扇的工作模式。红外遥控功能:提供远距离非接触式的风扇控制操作。1.2电源方案比较选择根据要求,需要制作能够产生+5V和+3.3V的电压源。由于稳压芯片的选择不同有以下四种方案:方案1:采用LM7812、LM7805、LM7912稳压芯片,分别产生+12V、+5V、-12V的恒定电压。+3.3V电压由

4、TL431芯片,根据电阻分压产生。(如图1所示)。方案优点: 该方案硬件电路原理简单, 在调试电路和使用电路时操作简单。都是独立输入电压后稳压到一定的值,所以电路相互干扰较小,灵活性高。方案缺点:输出电流不是很大,所以驱动能力较弱。TL431输出电流较小,需要扩流电路,增加设计的工程量和复杂度。止匕外,消耗在各独立电路上的焦耳热很多,转换效率低。图1电源方案1电路设计框图方案2:采用LM7912产生-12V电压,LT1805-5和LT1805-3.3分别稳压达到+5M+3.3V。以LM7812的输出作为LM7805的输入,以LM7805的输出作为LT1805-3.3的输入。(如图5所示)方案优

5、点:该电路原理和制作都较简单,消耗的焦耳热较小,电流输出较大。方案缺点:电路的独立性不强。需要四个散热片,在电路板上占用LIV1I12V方案3:使用MSP430F发板中的电源电路供电稳定,提供3V或5V。方案优点:该方案中不需要外接电路,使用方便直接通过一根USB线就可以实现单片机下载,供电,通讯!操作简单,容易上手,输出功率足够大则带负载的能力强。消耗的焦耳热很少,提高了转换效率,而且灵活性很强。方案选定:基于以上论证选择方案3二、MSP430F14第片机介绍1 1 . .简单概述MSP430F149芯片是美国TI公司推出的超低功耗微处理器, 有60KB+25汽节FLASH2KBRAM包括基

6、本时钟模块、看门狗定时器、带3个捕获/比较寄存器和PWM出的16位定时器、带7个捕获/比较寄存器和PWM出的l6位定时器、2个具有中断功能的8位并行端口、4个8位并行端口、 模拟比较器、12位A/D转换器、2个串行通信接口等模块。2、MSP430F14生要特点1)低功耗:电压1.83.6V低电压,RAM数据保持方式下耗电仅0.1pA,活动模式下耗电250pA/MIPS(MIPS:每秒百万条指令数),I/O输入端口的漏电流最大仅50nA2)强大的处理能力:MSP430系列单片机采用了目前流行的精简指令集(RISC)结构,一个时钟周期可以执行一条指令,因此在8MHz晶振工作时,空间较大图5方案2电

7、路设计框图指令速度可达到8MIPS3)丰富的片上外围模块:MSP430系列单片机结合TI的高性能模拟技术,各成员都集成了较丰富的片内外设,具体到MSP430F14算片机有以下功能模块:看门狗(WDT),模拟比较器A,定日t器A(TimerA),定时器B(TimerB),串口,1(USART01),硬件乘法器,液晶驱动器,12位ADC直接数据存取(DMA),端口l-6(P1P6),基本定时器。4)系统工作稳定:MSP430系列单片机均为工业级器件,运行环境温度为-40+85C,运行稳定、可靠性高,所设计的产品适用于各种民用和工业环境。5)方便高效的开发环境:因为器件片内有JTAG调试接口,还有可

8、电擦写的FLAS特储器,因此采用先通过JTAG接口下载程序到FLASH内,再由JTAG口控制程序运行、读取片内CPU犬态,以及存储器内容等信息供设计者调试,整个开发(编译、调试)都可以在同一个软件集成环境中进行。3、MSP430F14兆片引脚功能介绍MSP430F14兆片设计时的封装方式为贴片式封装,64个引脚,引脚间距为0.5mm单片机面积很小很难手工焊接,所以够买的是带有转接板的单片机,贴片式的单片机转接成4列2*8排针的引脚,排针脚间距约为2.54mm能与万能板匹配。三、系统设计3.13.1总体设计根据设计要求,电路的总体模块可以如下图3所示:图3总体设计电路模块框图人机接口包括红外遥控

9、,键盘模块和LCD显示模块,实现电风扇与用户的信息交互;液晶显示模块:用LCD12864乍为显示部分,供电为3.3V;时钟电路模块:由单片机MSP430F14离频8M定时器构成;3.23.2各单元模块功能介绍及电路设计;3.2.1接收电路模块构成红外接收电路采取红外接收器件TL1838,通过遥控器的输入捕捉接收红外遥控信号。具体电路如下图4所示:红外接收3.33.3 V VU4U4R3R3I ITL1838BTL1838BI IR4R420K20Kn nriiooriiooii CMenenP17P171 1一|Q_JQ_J图4红外接收模块3.2.2电风扇驱动隔离电路由ULM2003区动芯片构

10、成电风扇的驱动电路。ULN2003刖7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。驱动电路如下图2所示:*123.2.3键盘模块独立键盘采用的是独立I/O口控制独立按3.2.4电源模块fTfj-iLn.U.u.u1 1:vcvTXDR23RXDMTVIRIVUD+UD+UTR-CDGND*XIDSfcCTSPBSLBSL编程跳线BRSI.液晶显示模块JIXLCD12X64LCD12X64VSSVDDVSSVDDVORS(CSRWVORS(CSRW/SIDE/CLKD/SIDE/CLKDBODBJDB2DBBODBJDB2

11、DB3DB4D135DB3DB4D135DB6DB7PSB6DB7PSBNCKFSTNCKFSTVOUTVOUTLEDALEDKLEDALEDKJ20J20t tL LCD1286CD12864 4串行,并行控制设置跳线】咏LED显示接口电路LED显示模块接口与单片机通信采用模拟SPI方式,减少了单片机I/O口的消耗,同时使电路变的更简单。四、软件设计4.1设计思路4.1.1扫描键盘模块键盘扫描程序就是扫描键盘看是否有键按下,如有键按下判断出是哪一个键,当确定按下某一个键后,即执行红外发射程序。扫描的方法是判断P1口各位的电平,无按键按下时,各位均为高电平,当某一个按键按下以后,该位即为低电平

12、。3.2.5液晶模块CNCN力*5V*5VVOVOP41P41P P耍网_P52P52】 与3 3P54P54P55P55PS6_PS6_P57P57PSPSB BRSRSVCMVCM .5.5V VGNGN4.1,2红外接收模块使用输入捕捉中断处理红外遥控信号,根据不同的红外编码,可以完成调节风速,风型等功能。4.2软件流程图4.3软件代码#include#defineuintunsignedint#defineucharunsignedchar#defineIrPin(P1IN&0X80)/定义红外接收头端口unsignedcharIr_Buf4;/用于保存解码结果一unsigne

13、dintIr_Get_Low();unsignedintIr_Get_High();externconstunsignedcharshuzi_table口;#defineLCD_DataInP5DIR=0 x00/数据口方向设置为输入#defineLCD_DataOutP5DIR=0 xff/数据口方舟设置为输出#defineLCD2MCU_DataP5IN#defineMCU2LCD_DataP5OUT#defineLCD_CMDOutP4DIR|=0 x0F/P3口的低三位设置为输出#defineLCD_RS_HP4OUT|=BIT0/P3.0#defineLCD_RS_LP4OUT&am

14、p;=BIT0/P3.0#defineLCD_RW_HP4OUT|=BIT1/P3.1#defineLCD_RW_LP4OUT&=BIT1/P3.1#defineLCD_EN_HP4OUT|=BIT2/P3.2#defineLCD_EN_LP4OUT&=BIT2/P3.2#defineLCD_PSB_PP4OUT=BIT3#defineLCD_PSB_SP4OUT&=BIT3voidhw(void);voidajxs(void);voidDelay_1ms(void);voidDelay_Nms(uintn);voidDelay(unsignedintn);voidWr

15、ite_Cmd(unsignedcharcod);voidWrite_Data(unsignedchardat);voidIni_Lcd(void);voidDisp_HZ(unsignedcharaddr,constunsignedchar*pt,unsignedcharnum);voidDisp_HZ1(ucharaddr1,constuchar*pt1,ucharnum1);voidDisp_ND(unsignedcharaddr,unsignedintthickness);voidDraw_TX(unsignedcharYaddr,unsignedcharXaddr,constunsi

16、gnedchar*dp);voidDraw_PM(constunsignedchar*ptr);voidDisp_HZs(void);unsignedinttemp,delay;chari,j;uchartme=0,s=0,s1=0,w,w1,sws,sw1s,gws,gw1s;intgw,sw,gw1,sw1,g=0,a=1;constucharhang1=智能风扇;ucharI-hang2=模式:;ucharhang3=档位:;ucharhang4=定时:00:00;constucharhang5=0,1,2,3,4,5,67;/,8,9,a,b,c,d,e,/*函数名称:main功能:主

17、函数参数:无返回值:无*/voidmain(void)volatileunsignedinti;WDTCTL=WDTPW+WDTHOLD;BCSCTL1&=XT2OFF;/XT2ondoIFG1&=OFIFG;/ClearOSCFaultflagfor(i=0 xFF;i0;i-);/Timeforflagtosetwhile(IFG1&OFIFG);/OSCFaultflagstillset?BCSCTL2|=SELM_2+SELS;/MCLK=SMCLK=XT2(sa)/*P1.01为中断*P1DIR&=(BIT0+BIT1+BIT3+BIT4+BIT5+B

18、IT6);/输入设置P1IE|=(BIT0+BIT1+BIT3+BIT4+BIT5+BIT6);/允许P1的12可以中断高到低设为1P1IES|=(BIT0+BIT1+BIT3+BIT4+BIT5+BIT6);/设置下降沿中断LCD_PSB_P;/初始化液晶Ini_Lcd();7/开启全局中断TBCCR0=0XFFFF;P1DIR=0X00;/输入设置/*设置定时器初始化*/CCTL0=CCIE;/设置捕获/比较控制寄存器中CCIE位为1,CCR0甫获/比较功能中断为允许。CCR0=50000;捕获/比较控制寄存器CCR砌值为5000。TACTL=TASSEL_2+MC_2;/设置定时器A控制

19、寄存器TACTL侦时钟源选择为SMCLK甫助时钟。/*pwm初始*/TACTL=TASSEL0+TACLR;/ACLK,CCR0清除TAR512-1;/PWM周期CCTL1=OUTMOD7;CCR1=0;/占空比CCTL2=CCR2384/512=0.75OUTMOD_7;128;/占空比128/512=0.25Disp_HZ(0 x90,hang2,8);Disp_HZ(0 x88,hang3,8);Disp_HZ1(0 x98,hang4,16);/_BIS_SR(LPM0_bits+GIE);/进入低功耗模式PM阱口开中断_BIS_SR(GIE);/一只?中断/LPM4;/进入低功耗模式

20、while(1)restart:while(Ir_Pin)ajxs();/等待红外信号temp=Ir_Get_Low();if(temp9500)continue;/引耳脉冲低电平9000temp=Ir_Get_High();if(temp5000)continue;/引耳脉冲高电平4500for(i=0;i4;i+)/4个字节for(j=0;j8;j+)/每个字节8位temp=Ir_Get_Low();if(temp800)gotorestart;temp=Ir_Get_High();if(temp2000)gotorestart;Ir_Bufi=1;if(temp1120)Ir_Bufi|

21、=0 x80;if(Ir_Buf2=0X43)tme=1;如果按的是0按键则点亮LEDif(Ir_Buf2=0X15)tme=2;/如里按的是CH按键则关闭LEDajxs();P1DIR|=0 x04;/P1.2输出P1SEL|=0 x04;/P1.2TA1P2DIR|=0 x01;/P2.0输出P2SEL|=0 x01;/P2.0TA2TACTL/TimerA增计数卜吴式MC0;Disp_HZ1(0 x80,hang1,16);/*函数名称:Delay_1ms功能:延时约1ms的时间参数:无返回值:无*/*函数名称:Init_Clk功能:初始化系统钟为XT2外部8M参数:无返回值:无*/vo

22、idInit_Clk(void)(uchari;BCSCTL1&=XT2OFF;/打开XT振荡器do(IFG1&=OFIFG;/消除振荡错误标志for(i=0;i0;i-)_NOP();)一/*函数名称:Delay_Nms功能:延时N个1ms的时间参数:n-延时长度返回值:无*函数名称:Write_Cmd功能:向液后中写控制命令参数:cmd-控制命令返回值:无*/voidWrite_Cmd(ucharcmd)(ucharlcdtemp=0;*/voidDelay_Nms(uintn)(uinti;for(i=n;i0;i-)Delay_1ms();)一LCD_RS_L;LCD_

23、RW_H;LCD_DataIn;do/判忙(LCD_EN_H;_NOP();lcdtemp=LCD2MCU_Data;LCD_EN_L;while(lcdtemp&0 x80);LCD_DataOut;LCD_RS_H;LCD_RW_L;for(i=0;i(num*2);i+)Write_Data(*(pt+);/*MCU2LCD_Data=dat;LCD_EN_H;_NOP();_LCD_EN_L;一一尸*函数名称:Ini_Lcd功能:初始化液晶模块参数:无返回值:无*/voidIni_Lcd(void)LCD_CMDOut;/减晶控制端口设置为输出Delay_Nms(500);Wr

24、ite_Cmd(0 x30);/基本指令集Delay_1ms();Write_Cmd(0 x02);/地址归位Delay_1ms();Write_Cmd(0 x0c);整体显示打开,U标关闭Delay_1ms();Write_Cmd(0 x01);/消除显示Delay_1ms();Write_Cmd(0 x06);/游标右移Delay_1ms();Write_Cmd(0 x80);设定显示的起必地址/*函数名称:Disp_HZ功能:控制液晶显示汉字参数:addr-显示位置的首地址pt-指向原示数据的,旨针num-显示字符个数返回值:无*/voidDisp_HZ(ucharaddr,constu

25、char*pt,ucharnum)uchari;Write_Cmd(addr);*函数名称:Disp_HZ1功能:控制液晶显示汉字参数:addr-显示位置的首地址pt-指向原示数据的若针num-显示字符个数返回值:无*/voidDisp_HZ1(ucharaddr1,constuchar*pt1,ucharnuml)uchari;Write_Cmd(addr1);for(i=0;i(num1*1);i+)Write_Data(*(pt1+);/*函数名称:INT_interrupt功能:外部中断控制LED闪烁加速或减速参数:无返回值:无*/中断程序#pragmavector=PORT1_VEC

26、TOR_interruptvoidINT_interrupt(void)if(P1IFG&0X7b)=BIT0)Delay_Nms(2000);tme=1;elseif(P1IFG&0X7b)=BIT1)tme=2;elseif(P1IFG&0X7b)=BIT3)tme=3;elseif(P1IFG&0X7b)=BIT4)tme=4;)elseif(P1IFG&0X7b)=BIT5)(tme=5;)elseif(P1IFG&0X7b)=BIT6)(tme=6;)P1IFG=0;)/*函数名称:Timer_A(void)功能:定时器参数:无返回值:

27、无*/#pragmavector=TIMERA0_VECTOR_interruptvoidTimer_A(void)uw+;if(w=2)(w=0;if(w1=1)(if(gw1s=0)(hang410-;Disp_HZ1(0 x98,hang4,16);if(hang410=0)(if(sws=1&gws=1&sw1s=1&hang410=0)(gw1s=1;w1=0;CCR0=100;CCR1=0;)hang410=9;if(gw1s=1)(hang410=0;)if(sw1s=0)(hang49-;Disp_HZ1(0 x98,hang4,16);if(sws=1

28、&gws=1&hang49=0)(sw1s=1;)if(hang49=0)(hang49=5;if(sw1s=1)(hang49=0;)if(gws=0)(hang47-;Disp_HZ1(0 x98,hang4,16);if(sws=1&hang47=0)(gws=1;hang47=0;)if(hang47=/(hang47=9;if(gws=1)(hang47=0;)if(sws=0)(hang46-;Disp_HZ1(0 x98,hang4,16);if(hang46=0)/(hang46=0;sws=1;)I*函数名称:Ir_Get_Low功能:讦算低电平持续的

29、时间参数:无返回值:TAR*/unsignedintIr_Get_Low()0)一一TBR=0X0000;TBCTL=TBSSEL1+TBCLF+ID0+ID1+MC0;while(!Ir_Pin&(TBR&0 x8000)=0);/等待高电平到来TBCTL=0X00;returnTBF;)/*函数名称:IrGet_High功能:讦算高屯平持续的时间参数:无返回值:TAR*/unsignedintIr_Get_High()TBR=0X0000;TBCTL=TBSSEL1+TBCLF+ID0+ID1+MC0;while(Ir_Pin&(TBR&0 x8000)=0

30、);TBCTL=0X00;returnTBF;)voidajxs(void)/按键显示处理功能函数if(tme=1)tme=0;s+;if(s=2)s=0;if(s=0)ucharhang2=模式:自然风*;Disp_HZ(0 x90,hang2,8);一if(s=1)ucharhang2=模式:睡眠风;Disp_HZ(0 x90,hang2,8);一elseif(tme=2)tme=0;ucharhang3=档位:一;Disp_HZ(0 x88,hang3,8);if(s=0)CCR0=99;CCR1=20;if(s=1)CCR0=60000;CCR1=10000;elseif(tme=3)

31、tme=0;ucharhang3=档位:二;Disp_HZ(0 x88,hang3,8);if(s=0)CCR0=99;CCR1=40;if(s=1)CCR0=50000;CCR1=10000;elseif(tme=4)(tme=0;ucharhang3=档位:三;Disp_HZ(0 x88,hang3,8);if(s=0)CCR0=99;CCR1=60;if(s=1)CCR0=40000;CCR1=10000;elseif(tme=5)tme=0;ucharhang3=档位:四;Disp_HZ(0 x88,hang3,8);if(s=0)CCR0=99;CCR1=80;if(s=1)CCR0

32、=30000;CCR1=10000;elseif(tme=6)tme=0;g+;sws=0;sw1s=0;gws=0;gw1s=0;w1=1;if(g=1)hang410=9;hang49=5;hang47=9;hang46=5;if(g=2)hang410=9;hang49=5;hang47=9;hang46=2;g=0;a=1;voidhw(void)/红外函数/while(a=0)/*restart:while(Ir_Pin);/等待红外信号temp=Ir_Get_Low();if(temp9500)continue;/引耳脉冲低电平9000temp=Ir_Get_High();if(t

33、emp5000)continue;/引耳脉冲高电平4500for(i=0;i4;i+)/4个字节for(j=0;j8;j+)/每个字节8位temp=Ir_Get_Low();if(temp800)gotorestart;temp=Ir_Get_High();if(temp2000)gotorestart;Ir_Bufi=1;if(temp1120)Ir_Bufi|=0 x80;/if(Ir_Buf2=0X0C)P5OUT=IrBuf2;/如果按的是0按键则点亮LED/elseif(Ir_Buf2=0X16)P5OUT=Ir_Buf2;/如果按的是CH技键则关闭LED/elseP5OUT=Ir_

34、Buf2;if(Ir_Buf2=0X0C)tmep=1;如果按的是0按键则点亮LEDif(Ir_Buf2=0X16)tmep=2;/如:M按的是CH按键则关闭LED*/五、系统测试5.1测试方法步骤1:将遥控模块,红外接收模块,测转速模块分别检测板子是否可以正常工作。调试正确后,针对每个模块进行编程控制。步骤2:每个部分能够独立完成工作后,将每个模块融合在一起,共同完成整个系统的功能。步骤3:对主控芯片MSP43弹片机编写控制程序, 最后完成对风扇的智能控制。步骤4:观察液晶的上显示的工作模式,风型和等其他信息并进行功能的比对和完善。5.2结果分析能够达到以下要求:1、实现电风扇的无级调速,并可以对电风扇的转速进行设置和转速的实时测试与显示。2、实现直流电风扇的反转控制和速度设置与显示。3、有睡眠风、自然风等多种工作模式可以选择。4、具有LCD显示功能,能显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论