智能风扇控制系统毕业设计Word文件下载.docx
- 文档编号:21402469
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:27
- 大小:859.70KB
智能风扇控制系统毕业设计Word文件下载.docx
《智能风扇控制系统毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《智能风扇控制系统毕业设计Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
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的键扫描输入端“KI0~KI3”内置由下拉电阻,他与键扫输入端“KO0~KO7”可以构成一32个按键的键盘矩阵。
除了规定的6种双重组合外,其他按键组合同时按下将不会产生发射码输出。
SC9012的键盘输入矩阵请参考图1.4
图1.4键盘输入矩阵
1.2.6用户编码部分
SC9012的用户编码一共有八种,可以利用“SEL”脚与“KO1~KO7”中的任一脚线连接来进行选择,见下图表1.1
表1.1编码选择和相应系统码表
SC9012共有8位用户编码:
其中S0,S1,S2由SEL与KO1~KO7的连接来选择:
S3固定为“1”;
S4~S7固定为“0”。
1.2.7发射码部分
图1.5发射码的构成
如上图所示,SC9012一帧完整的发射码由引导码、用户码和键数据码三部分。
引导码由一4.5ms的低电平脉冲组成:
八位的用户编码被连续发送两次:
八位的键数据码也被连续发送两次,第一次发送的是键数据码的原码,第二次发送的是键数据的反码。
SC9012的发射码采用脉冲置位调制方式(PPM)来进行编码(即NEC编码)。
这样的编码方式效率高,抗干扰性能好,解码芯片多。
引导码及位“0”和位“1”的波形见下图1.7
图1.6码对应的波形
1.2.8双重按键操作
SC9012的双重按键操作已共有6种,即K21键与K22~K24键配合,K25键与K26~K28键配合,如下表:
表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芯片引脚及其说明
特点
●支持多种编码
●可选择有无用户码(CustomerCode)
●可由外接电阻及二极管设置用户码
●可选择并行或者串行解码输出
●兼容SPI及UART(波特率9600)的串行输出
●采用数字滤波技术,高抗干扰,无误差
●接收有效指示输出
●工业级温度范围
图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个起始位(STARTBIT)。
随后第一个数据位在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部分,电机驱动部分,显示单元部分三个部分,下面对各个部分进行方案设计论证。
1.4.1微处理器MCU部分
方案一:
采用低档处理器单片机,采用一款我们十分熟悉的单片机STC89C52,完成驱动电路和显示的处理功能。
方案二:
采用中高档处理器,如:
DSP﹑FPGA﹑ARM等,这些处理器处理速度快,可靠性高。
设计的系统不仅需要完成与解码电路的接口功能,同时还涉及到数据的串行收取,并将其按程序进行相应的控制操作和显示。
但这些功能由一块低档型号的微处理器就能够达到要求,根本不需要高档型号的微处理器。
所以,选择“方案一”,采用单片机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桥驱动电机
2﹑PWM调速工作方式:
方案一:
双极性工作制
双极性工作制是在一个脉冲周期内,单片机两个控制口各输出一个控制信号,两信号高低电平相反,两信号的高低电平的电压差和时差决定电动机的转向和转速。
方案二:
单极性工作制是单片机控制口一端置为低电平,另一端输出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作为用户编码选择端,为了方便随时更换用户编码,所以将引脚12~20用排针引出。
接收模块核心芯片BC7210,用拨码开关和下拉电阻来设置相应的用户解码。
解码芯片BC7210的DAT端与单片机串行接收端RXD连接,实现控制信号及时传送到单片机。
单片机控制执行模块,直接采用开发板来实现。
上面就是对一些模块的具体调整,设计出最终电路,系统整体电路图见附录
(一)。
2.软件设计
从单元电路的设计可以看出,本设计的硬件电路相对较为简单。
最主的还是单片机控制部分的软件编写,需要通过软件来实现控制信号对执行部件的控制。
软件部分主要分为两个部分,对解码的信号的相应控制电机程序和LCD的显示程序。
由于单片机的控制指令多,实现起来控制较为复杂,所以并不采用汇编语言,采用大家十分熟悉的C语言(KeiluVision4)编写,其好处是在于可移植性好、可读性强、程序易于修改。
2.1软件及其硬件端口的设定与说明
●采用P0和P2^5、P2^6、P2^7来控制1602液晶显示屏。
●电机PWM控制信号,用软件延时方式实现。
●用P1口接达林顿管ULN2003,来驱动两个电机,P1^0产生PWM波来控制直流电机转速,P1^1、P1^2、P1^3、P1^4作为步进电机的控制端口。
●LCD显示信息表:
LCD位
1
2
3
4
5
6
7
8
范围
0~999分钟
-
0~F
0~90℃(左右)
功能
定时时间
风速
送风范围
表1.5LCD显示表
●由于设计的功能相对简单,所以采用不使用双重按键,结合图1.4,按键功能定义如下表:
按键
K4
K8
K12
K16
K20
K24
K28
OFF/ON
Timer+
Timer-
Rate+
Rate-
Scope+
Scope-
表1.6按键功能表
根据表1.3,设计软件识别相应数据码并执行对应操作。
●初始化:
当接通风扇电源时,LCD显示HELLO,延迟1S,进入程序设定的初始化状态(设定为:
中等风速,不限时,不摇头),LCD显示000-7-00。
2.2软件设计结构图
软件设计是用单片机STC89C52单片机来控制两个电机和LCD显示,当STC89C52接收到数据信号,使得LCD显示相应信息,电机执行对应操作。
当我们开机的时候整个控制执行系统初始化,然后是等待数据信号,接着就是数据处理,显示,以及电机控制。
所以在此设计出要编写的软件设计的结构图,见图1.18
设置指令,初始化LCD
接收读取指令
指令执行程序
图1.18软件设计结构图
2.3软件设计主程序流程
根据所要实现的功能,可以设计软件主程序流程图。
数码所显示的内容主要是按键经过红外传送过来控制实现,因为采用的所有的功能信息都在LCD上表示出来,如果接收到相应的数据码,就会在其上面显示,并同时执行电机操作。
主程序包括如下3个环节:
●实现各种初始化,包括芯片初始化、LCD显示初始化,定时器/计数器初始化、以及开中断、定时器/计数器启动等
●实现状态显示(定时时间、风速、送风范围)
●检测RXD端口有无数据码。
有数据码,执行;
无数据码,返回显示。
主程序流程图1.19
MCU初始化设置(包括设置LCD显示、定时器/计数器的初始化设置)
开中断
LCD显示状态
否
是
对数据码进行分析
转到处理子程序
图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请求中断,接下来可在中断服务程序中做相应处理。
确定T1工作方式
计算T1初值,装载TH1,TL1
启动T1
确定串行口工作方式
中断设置
图1.20串口初始化流程图
主要设置了波特率、串口控制和中断控制。
串口初始化程序片段:
Voidinit()
{
TMOD=0X20;
//T1,方式2
TH1=0Xfd;
//装初值
TL1=0Xfd;
TR1=1;
//启动T1
SM0=0;
//开串口,方式1
SM1=1;
REN=1;
//允许串口接收
EA=1;
//开总中断
ES=1;
//开串口中断
}
接收到的数据首先保存在SBUF,我们只需要写“a=SBUF;
”语句,就可以将其数据取走。
2.5LCD显示软件设计
本设计采用并行操作对1602液晶进行控制,开机时,LCD显示HELLO,延迟1S后,进入初始化状态显示000-7-00。
LCD显示HELLO
执行按键处理程序
LCD显示
LCD显示处理流程图。
图1.21LCD显示流程图
2.6电机控制部分软件设计
电机控制部分软件设计,将是此设计软件部分的核心。
设计要求的功能几乎全靠此来实现,PWM控制直流电机转速,H桥驱动步进电机控制送风范围,以及定时的功能。
下面给出三个小模块的软件设计流程图:
执行指令
按键分析
图1.22调速流程
图1.23调范流程
图1.24定时流程
由于三个流程图几乎一样,我们在进行各模块程序组合时,会相对简单一些,但是要注意变量的定义。
定时程序要定义为全局,而调速和调范(调节送风范围)就是局部子程序了。
调速软件部分,主要靠用延时来产生PWM波,调节占空比(调节高低电平延时时间比)。
调范软件部分,PWM占空比一定,通过延时、While循环和中断来控制摇头在可变范围内以一定的速度摇头。
定时软件部分,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 风扇 控制系统 毕业设计