




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
引言随着人们生活水平及科技水平的不断提高,现在家用电器在款式、功能等方面日益求精,并朝着健康、安全、多功能、节能等方向发展。过去的电器不断的显露出其不足之处。电风扇作为家用电器的一种,同样存在类似的问题。以往电风扇大部分采用机械方式进行手动控制,功能少,噪音大,各档位的风速变化大。然而当今产品更加趋向于自动化、智能化、环保化、人性化,于是产生了微机控制的智能电风扇该技术实现了家电产品的更新换代,提高产品的附加值,使产品更具有人性化。本设计主要是结合实际情况,考虑的实际需要。为了实现遥控控制电风扇,本设计采用了人们最为常用的近距离通信方式红外遥控。我们使用单片机PWM实现对直流电机的控制,通过改变占空比实现其无级调速,同样采用PWM控制步进电机达到控制转动角度(送风范围)。当然我们利用了STC89C52的定时功能通过软件设计实现对风扇的8小时内定时开关。1. 硬件电路设计本部分从硬件电路组成框图出发,设计出来出单元电路。1.1硬件电路框图根据设计任务,提出如图1.1所示的硬件电路组成框图。MCU控制执行PWM电机驱动红外编码发射LCD显示红外接收解码单片机图1.1 总体硬件电路组成框图硬件设计核心为三大部分:红外编码发射模块;红外接收解码模块;单片机控制模块,其各单元模块的方案论证和选择分析如下。1.2 红外编码发射电路本设计要求的是5m以上的无线遥控,且遥控的功能不是单一的,因而本设计可以采用红外线遥控达到近距离控制的目的,通过按键输入,最终经由红外发射管产生红外控制信号,采用集成芯片实现多功能。1.2.1 方案设计与论证方案一:市场上品牌智能风扇多半采用的遥控器是以专用芯片为基础设计的,采用那些芯片将有很好的针对性,但兼容性有所欠缺。方案二:采用用于红外发射系统中的专用集成芯片SC9012,有32个功能键,还提供六种双重按键功能。本设计选择第二种方案,因为从达到要求的基础上尽量简化电路,提高设计的智能化程度,方案一的品牌风扇芯片实现遥控还需要外加编码芯片和较多的外围电路,而我们可以直接采用集成芯片SC9012,并以此芯片为基础建立红外发射模块。1.2.2基于SC9012的发射电路采用SC9012芯片的红外编码发射电路如图1.2所示。图1.2基于SC9012芯片的红外编码发射电路上面电路是基于SC9012典型的发射电路,也就是本设计采用的发射模块电路,具体电路将进行设计要求分析后确定,下面将分析介绍该模块的基本外围电路部分,芯片引脚和内部框图见附录(一)。1.2.3振荡线路部分SC9012的振荡线路是由OSCO与OSCI间接一支455KH的陶瓷谐振器及2个100pf的接地电容组成,其振荡频率为455kHz.没有按键操作时,该振荡电路处于待机态以减少功率消耗。当有按键操作时。振荡电路起振,由发射码输出,按键释放后,电路重新处于待机状态,请参考图1.3 图1.3振荡线路部分1.2.4振荡频率部分SC9012的振荡频率为455kHz,经内部的12分频电路,得到频率为37.9-39.2kHz,占空比为1/3的调制载波。455kHz的振荡频率经过256分频,得到系统的基本工作时钟为1.78kHz。调制载波的频率(fc)及内部工作时钟周期(Tm)与振荡频率(fosc)的对应关系如下式表示:fc=(1/12)fosc(占空比:1/3);Tm=256/fosc(Tm:一个高电平脉冲的宽度)。1.2.5按键线路部分SC9012的键扫描输入端“KI0KI3”内置由下拉电阻,他与键扫输入端“KO0KO7”可以构成一32个按键的键盘矩阵。除了规定的6种双重组合外,其他按键组合同时按下将不会产生发射码输出。SC9012的键盘输入矩阵请参考图1.4图1.4 键盘输入矩阵1.2.6用户编码部分SC9012的用户编码一共有八种,可以利用“SEL”脚与“KO1KO7”中的任一脚线连接来进行选择,见下图表1.1表1.1编码选择和相应系统码表SC9012共有8位用户编码:其中S0,S1,S2由SEL与KO1KO7的连接来选择:S3固定为“1” ;S4S7固定为“0”。1.2.7发射码部分图1.5发射码的构成如上图所示,SC9012一帧完整的发射码由引导码、用户码和键数据码三部分。引导码由一4.5ms的低电平脉冲组成:八位的用户编码被连续发送两次:八位的键数据码也被连续发送两次,第一次发送的是键数据码的原码,第二次发送的是键数据的反码。SC9012的发射码采用脉冲置位调制方式(PPM)来进行编码(即NEC编码)。这样的编码方式效率高,抗干扰性能好,解码芯片多。引导码及位“0”和位“1”的波形见下图1.7图1.6码对应的波形1.2.8双重按键操作SC9012的双重按键操作已共有6种,即K21键与K22K24键配合,K25键与K26K28键配合,如下表:表1.2双重按键对应的数据码除这六种之外的双键或多键按下都将被确认认为无效操作,无发射码输出。另外,双重按键的操作是分按键先后顺序的,必须先按下K21键或K23键,再按其他组合键。请参阅右上图:图1.7唯一正确组合按键方式1.2.9SC9012的键数据码按键数码如下表所示:表1.3按键数码表综合上面对红外遥控发射各个部分的介绍相信大家已经能够有一个较为清晰的硬件模块在头脑里形成,并对其工作原理有一定的了解。接下来我将设计系统的红外接收模块。1.3红外接收解码模块本部分的核心是接收到红外信号后的解码方式选择,通过解码我们可以将发射电路发射码信号解读,然后送到MCU执行相应的操作。方案一:用红外接收管接到信号后,直接送到单片机,通过软件实现解调,并执行对应操作。方案二:用红外接收管接收到型号后,直接接红外遥控解码芯片,再将控制信号送到单片机执行操作。本设计采用第二方案,是基于一款低成本通用红外遥控解码芯片BC7210,与第一方案相比采用该芯片可以缩短开发时间,软件耗损少。1.3.1基于BC7210的接收解码电路图1.8红外接收解码电路为了简化电路设计降低成本,将扩展的用户码设置为0,即不接任何二极管的话,BC7210将忽略所接收到数据中的高8位用户码,只对低8位用户码做比较。1.3.2红外接收头部分一般的红外接收头,内部已经包括38K(40K)载波处理放大AGC等电路,一般为3个引脚,包括2个电源引脚和1个输出引脚。一般电源电压均为5V。尽管可以直接将红外接收头连接于5V电源,但是因为其内部的放大电路放大倍数很高,比较容易受到电源杂波等干扰,因此采用如下接法,在红外接收头的电源中接入如图1.8的滤波电路:图1.8红外接收头电路本设计采用SM0038作为红外接收头,其正常接收频率是38kHz,典型接收距离是35m。1.3.3BC7210芯片引脚及其说明特点l 支持多种编码l 可选择有无用户码(Customer Code)l 可由外接电阻及二极管设置用户码l 可选择并行或者串行解码输出l 兼容SPI及UART(波特率9600)的串行输出l 采用数字滤波技术,高抗干扰,无误差l 接收有效指示输出l 工业级温度范围图1.9BC7210引脚图引脚说明表1.4BC7210引脚说明1.3.4芯片用户码(地址码)CC引脚用来设置用户码的方式。如果CC引脚通过一个小于10K的上拉电阻连接到VCC,则BC7210将工作于不使用用户码的方式,对接收到的遥控数据,BC7210会将用户码(地址码)和按键码顺序以串行的方式输出(在这种工作模式下,BC7210强制按串行方式输出,而不管S/P引脚的设置)。如果CC上没有接上拉电阻,则工作在使用用户码的状态下,BC7210在复位时会读取用户码(地址码)的设置,并在解码时收到的遥控信号的用户码(地址码)与设置的用户码进行比较,只有当接收数据的用户码与设置的用户码相同时,才会将按键数据输出,否则则将数据忽略。在这种模式下,BC7210只输出一个字节的按键码数据,输出的方式可以由S/P引脚来选择串行或并行方式。1.3.4解码电路输出本设计采用串行输出,串行数据输出使用D5,D6,D7三个引脚,分别用作SS(选通信号),CLK(时钟信号),DAT(串行数据)。使用串行输出时,ACT引脚电平将会在数据开始输出前变为低电平。BC7210的串行输出,采用的是标准的3线SPI接口方式,不过,为了达到最大的兼容性,数据的传送速率(波特率)特别设定为9600,因此,发出的数据也可以直接用于波特率为9600的异步串行接口。数据采用低电位在前的方式。输出时,SS首先变为低电平,同时DAT端也变为低电平,这个状态将保持104us,这个时间正好是波特率9600的异步串行口传达1BIT所用的时间,如果接收数据方是UART,则DAT保持低电平的这个104us,相当于发送了1个起始位(START BIT)。随后第一个数据位在DAT上输出,CLK开始输出同步脉冲,每输出以为所用的时间为104us,8位数据的最后一位数据输出完成后,SS恢复为高电平。图1.10数据传送波形当BC7210使用用户码时,每接收一个红外遥控按键指令,只输出一个字节,即按键键码数据。当BC7210工作在不使用用户码的模式时,会将收到的用户码和按键键码一同输出,因此每次输出2-3个字节,NEC模式地址有16位用户码,因此将输出3个字节,用户码高8位在前,其次是用户码低8位,最后是按键的键码下面给出NEC模式下的输出波形:图1.11NEC模式输出波形1.3.4解码电路与MCU的接口因为BC7210有灵活的输出接口设计,BC7210可以有多种的接口方式,可以和任何微控制器接口。方案一:使用UART方式本设计的控制芯片STC89C52提供了UART接口,BC7210的串行输出兼容于“波特率9600,1个起始位,1个停止位,无奇偶校验为”的UART,将BC7210的D7(DAT)引脚与STC89C52的RXD引脚相连,直接送到单片机。方案二:使用并行方式上面方案是通过单片机的硬件接口来实现,我们可以通过将BC7210的D0-D7接到单片机的一个数据口上,将ACT作为处理器的外部中断信号,外部中断设为下降沿触发,在中断处理程序中直接读取BC7210所连接的数据口,即可获得键码数据。方案三:使用外部中断读取串行数据采用SS信号的下降沿或者CLK信号的上升沿作为中断的触发条件。SS下降沿作为触发时,从中断触发到数据出现DAT引脚上,有104us的时间,可以用中断程序监视CLK的状态,每次CLK由低电平变为高电平,就读取一位数据。也可以采用CLK的上升沿作为中断触发条件,每次中断服务程序读取一位数据,这样可以减少时间开销。综合上所述,采用方案一。此方案只用1个接口且数据接收可以由硬件完成,占用CPU资源很少;方案二并行方式,更适合软件任务重实时性要求高的场合;方案三适用于I/O较少情况,但需要较高的软件开销。下面是解码电路与MCU的连接图:图1.12解码电路与MCU连接图1.4MCU控制执行模块此部分是该系统各个模块中最为重要的部分,该部分的实现主要依靠软件实现,其硬件平台包括微处理器MCU部分,电机驱动部分,显示单元部分三个部分,下面对各个部分进行方案设计论证。单片机ULN2300驱动电路步进电机状态显示电路电源及时钟电路图1.13 MCU控制执行模块设计方框图复位电路直流电机1.4.1微处理器MCU部分方案一:采用低档处理器单片机,采用一款我们十分熟悉的单片机STC89C52,完成驱动电路和显示的处理功能。方案二:采用中高档处理器,如:DSPFPGAARM等,这些处理器处理速度快,可靠性高。设计的系统不仅需要完成与解码电路的接口功能,同时还涉及到数据的串行收取,并将其按程序进行相应的控制操作和显示。但这些功能由一块低档型号的微处理器就能够达到要求,根本不需要高档型号的微处理器。所以,选择“方案一”,采用单片机STC89C52。图1.14STC89C52典型最小系统复位电路:由22uF的电容和1k的电阻,以前教科书上常推荐用10uF电容和10k电阻组成复位电路,如图1.14,这里根据实际经验选用22uF的电容和1k的电阻,其好处是在满足单片机可靠复位的前提下降低了复位引脚的对地阻抗,可以显著增强单片机复位电路的抗干扰能力。晶振电路:单片机的时钟电路是有一个11.0592MHz的晶振和两个22pf的小电容组成,它们决定了单片机的工作时间精度为1us。1.4.2电机驱动部分根据设计要求:实现无级调速而且能够调节送风范围(角度控制),这里我们必须采用两个电机,一个直流电机和一个步进电机,用程序分别加以控制。下面将进行更细实现方案的分析论证。1电机调速控制模块:方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使其工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,而且还有一个步进电机需要控制,因此本设计采用方案三。我们根据设计需要我们可以选择ULN2003作为驱动芯片。下面对第三方案的H桥原理进行简单介绍如右图,我们可以通过控制对角线上的一对三极管来控制电机的正反转,通过软件调节占空比来调节导通时间从而实现对速度的控制。针对PWM的调速方式还需要进一步论证分析,决定采用方式。图1.15H桥驱动电机2PWM调速工作方式:方案一: 双极性工作制双极性工作制是在一个脉冲周期内,单片机两个控制口各输出一个控制信号,两信号高低电平相反,两信号的高低电平的电压差和时差决定电动机的转向和转速。方案二: 单极性工作制是单片机控制口一端置为低电平,另一端输出PWM信号对PWM的占空比调节决定电动机转速。该工作制无法用软件实现对转向的控制。兼于本设计需要控制两个电机,本设计的直流电机不需要反转功能,如果采用方案二将更容易实现,并采用低侧驱动方式避免了外加电平提升电路,因此直流电机调速采用第一方案。步进电机要实现左右转动只能采用方案一。H桥就是一种双极性驱动方式,这里简单介绍一下单极性驱动。单片机产生的PWM信号控制一个功率MOSFET开关管的导通状态,在电动机两端并联一个续流二极管。功率开关管串联在电动机下方(靠近电源正极),其栅极驱动采用低侧栅极驱动器。该电路因电流通过续流二极管续流,故时间较长,典型应用为小型风机和泵的驱动。图1.16低侧单级驱动3、PWM调脉宽方式:调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。本设计采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。1.4.3显示单元部分此部分根据任务设计要求分析,风扇需要8小时内定时开关机,还有需要对送风范围、风速的控制,我们可以将状态信息通过LCD显示,具体实现方案主要是通过软件设计,将这些信息显示在LCD上,则需要一个LCD1602液晶显示屏,下面给出显示部分接口电路图图1.17LCD显示接口电路1.5系统电路图整合各个模块,根据实际要求,对各模块的具体电路进行进一步的论证。下面就具体的一些模块的电器电路设计予以一定的说明。 发射模块有32按键,但是结合设计要求和本设计的思路,只需要采用7个功能按键即可。所以只采用KI3这一列的8个按键,其他不接。 发射芯片SC9012的SEL作为用户编码选择端,为了方便随时更换用户编码,所以将引脚1220用排针引出。 接收模块核心芯片BC7210,用拨码开关和下拉电阻来设置相应的用户解码。 解码芯片BC7210的DAT端与单片机串行接收端RXD连接,实现控制信号及时传送到单片机。 单片机控制执行模块,直接采用开发板来实现。上面就是对一些模块的具体调整,设计出最终电路,系统整体电路图见附录(一)。2. 软件设计从单元电路的设计可以看出,本设计的硬件电路相对较为简单。最主的还是单片机控制部分的软件编写,需要通过软件来实现控制信号对执行部件的控制。软件部分主要分为两个部分,对解码的信号的相应控制电机程序和LCD的显示程序。由于单片机的控制指令多,实现起来控制较为复杂,所以并不采用汇编语言,采用大家十分熟悉的C语言(Keil uVision4)编写,其好处是在于可移植性好、可读性强、程序易于修改。2.1 软件及其硬件端口的设定与说明l 采用P0和P25、P26、P27来控制1602液晶显示屏。l 电机PWM控制信号,用软件延时方式实现。l 用P1口接达林顿管ULN2003,来驱动两个电机,P10产生PWM波来控制直流电机转速,P11、P12、P13、P14作为步进电机的控制端口。l LCD显示信息表:LCD位12345678范围0999分钟-0F-090(左右)功能定时时间风速送风范围表1.5LCD显示表l 由于设计的功能相对简单,所以采用不使用双重按键,结合图1.4,按键功能定义如下表:按键K4K8K12K16K20K24K28功能OFF/ONTimer+Timer-Rate+Rate-Scope+Scope-表1.6按键功能表根据表1.3,设计软件识别相应数据码并执行对应操作。l 初始化:当接通风扇电源时,LCD显示HELLO,延迟1S,进入程序设定的初始化状态(设定为:中等风速,不限时,不摇头),LCD显示000-7-00。2.2 软件设计结构图软件设计是用单片机STC89C52单片机来控制两个电机和LCD显示,当STC89C52接收到数据信号,使得LCD显示相应信息,电机执行对应操作。当我们开机的时候整个控制执行系统初始化,然后是等待数据信号,接着就是数据处理,显示,以及电机控制。所以在此设计出要编写的软件设计的结构图,见图1.18MCU初始化初始化设置指令,初始化LCD接收读取指令指令执行程序结束图1.18软件设计结构图2.3 软件设计主程序流程根据所要实现的功能,可以设计软件主程序流程图。数码所显示的内容主要是按键经过红外传送过来控制实现,因为采用的所有的功能信息都在LCD上表示出来,如果接收到相应的数据码,就会在其上面显示,并同时执行电机操作。主程序包括如下3个环节:l 实现各种初始化,包括芯片初始化、LCD显示初始化,定时器/计数器初始化、以及开中断、定时器/计数器启动等l 实现状态显示(定时时间、风速、送风范围)l 检测RXD端口有无数据码。有数据码,执行;无数据码,返回显示。主程序流程图1.19开始MCU初始化设置(包括设置LCD显示、定时器/计数器的初始化设置)开中断LCD显示状态不断对RXD进行检测,判断是否有数据码否是对数据码进行分析转到处理子程序结束图1.19主程序流程图除了主程序设计外,我们的子程序设计也是各个功能能否实现的关键,子程序包括数据码接收、LCD显示、电机控制三大部分。而电机控制部分又包括定时模块、调速模块、送风范围调节模块。下面将对其各个模块的软件设计进行简单介绍。2.4 数据码接收软件设计由硬件接口电路的设置:采用解码电路串行输出,每当接收到一个红外遥控指令,只输出一个字节,即按键键码数据,送到RXD端口进入单片机。本设计采用最为常用的通信方式串行口方式1。用软件设置REN为1,接收器选择波特率的16倍速采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置位RI=1,向CPU请求中断,接下来可在中断服务程序中做相应处理。第28页,共28页开始确定T1工作方式计算T1初值,装载TH1,TL1启动T1确定串行口工作方式中断设置结束图1.20串口初始化流程图主要设置了波特率、串口控制和中断控制。串口初始化程序片段:Void init()TMOD=0X20;/T1,方式2TH1=0Xfd;/装初值TL1=0Xfd;/装初值TR1=1;/启动T1SM0=0;/开串口,方式1SM1=1;/开串口,方式1REN=1;/允许串口接收EA=1;/开总中断ES=1;/开串口中断接收到的数据首先保存在SBUF,我们只需要写“a=SBUF;”语句,就可以将其数据取走。2.5 LCD显示软件设计本设计采用并行操作对1602液晶进行控制,开机时,LCD显示HELLO,延迟1S后,进入初始化状态显示000-7-00。LCD初始化LCD显示HELLO执行按键处理程序LCD显示结束LCD显示处理流程图。图1.21LCD显示流程图2.6 电机控制部分软件设计电机控制部分软件设计,将是此设计软件部分的核心。设计要求的功能几乎全靠此来实现,PWM控制直流电机转速,H桥驱动步进电机控制送风范围,以及定时的功能。下面给出三个小模块的软件设计流程图:否是结束执行指令调速指令按键分析开始图1.22调速流程否是结束执行指令送风指令按键分析开始图1.23调范流程否是结束执行指令定时指令按键分析开始图1.24定时流程由于三个流程图几乎一样,我们在进行各模块程序组合时,会相对简单一些,但是要注意变量的定义。定时程序要定义为全局,而调速和调范(调节送风范围)就是局部子程序了。调速软件部分,主要靠用延时来产生PWM波,调节占空比(调节高低电平延时时间比)。调范软件部分,PWM占空比一定,通过延时、While 循环和中断来控制摇头在可变范围内以一定的速度摇头。定时软件部分,由于要求是480分钟内定时开关,定时采用定时器和延时程序共同完成此项功能。3 系统调试调试内容包括程序调试、仿真调试、实物调试。3.1应用KEIL软件进行程序调试软件调试必须在开发系统的支持下进行。先分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 正规水果运输合同协议
- 员工提出解除合同协议
- 商品包装商业合同协议
- 武术进大学合同协议
- 橡胶产品供应链合同协议
- 向个人融资合同协议
- 心理机构加盟协议书范本
- 楼顶彩钢瓦安装合同协议
- 商业广场保洁合同协议
- 商家免责协议书范本
- DZ∕T 0215-2020 矿产地质勘查规范 煤(正式版)
- 妇科腹腔镜手术术前宣教
- 农贸市场消防应急预案演练总结
- 2023年湖北宜昌高新区社区专职工作人员(网格员)招聘考试真题及答案
- 外贸谈判知识分享课件
- 《患者疼痛管理》课件
- 基于AI人工智能的智慧园区融合感知平台建设方案
- JB T 7689-2012悬挂式电磁除铁器
- 课件-错账更正
- 现代汉语语料库词频表CorpusWordlist
- GB/T 5465.2-2023电气设备用图形符号第2部分:图形符号
评论
0/150
提交评论