基于单片机的智能风扇控制设计本科学位论文.docx
- 文档编号:29954010
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:33
- 大小:381.78KB
基于单片机的智能风扇控制设计本科学位论文.docx
《基于单片机的智能风扇控制设计本科学位论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能风扇控制设计本科学位论文.docx(33页珍藏版)》请在冰豆网上搜索。
基于单片机的智能风扇控制设计本科学位论文
摘要
本文介绍一种基于单片机温控风扇的控制系统设计方案。
巧妙地利用单片机技术,可控硅技术,温度传感器技术。
硬件系统采用AT89C51作为微处理器,利用DS18B20对室内温度的探测并适时显示当前温度值,通过控制可控硅的导通,从而实现对电风扇进行温度调速控制。
软件系统则采用模块设计即主程序,键盘控制程序,温度显示程序,电机调速程序。
文中给出AT89C51为核心的电路设计主体软件设计,着重讨论温控相关程序的设计并给出流程图和相关程序。
关键词:
AT89C51;DS18B20;仿真,电机调速,温度显示
Abstract
Thispaperintroducesacontrolbasedonsingle-chipmicrocomputercontrolsystemdesignschemeofthefan.Ingeniousofsinglechipmicrocomputer,thyristortechnology,thetemperaturesensortechnology.
HardwaresystemAT89C51asmicroprocessors,useofindoortemperaturedetectionDS18B20anddisplaythecurrentcontrolledtemperature,throughthecontrolofconduction,soastorealizethefanspeedcontroloftemperature.Softwaresystemisamodulardesignwhichmainprogram,keyboardcontrolprocedures,temperaturedisplayprogram,motorspeedprogram.GiventhecircuitdesignasthecoreofAT89C51mainsoftwaredesign,emphaticallydiscussesthedesignandtemperaturecontrolproceduresareflowchartandrelevantprocedure.
Keywords:
AT89C51,DS18B20,Simulation,motorspeed,temperaturedisplay
第1章引言
1.1课题的设计要求
本课题要求以单片机为核心设计一个智能风扇控制器,具备倒数计时、时间修改、实时显示温度、预设关机温度、预设报警温度等功能。
可作为家用风扇控制器,和工业用于温度控制的场合。
智能风扇控制器有8个按键设置。
现在想要实现以下功能:
1、显示实时温度;2、可改变设定温度;3、手动控制;4、自动控制;5、温度显示范围00—99。
1.2课题的设计目的和意义
单片机在检测和控制系统中得到广泛的应用,温度则是系统常需要测量、控制和保持的一个量。
本课题设计从硬件和软件两方面介绍了AT89C51单片机温度控制系统的设计。
单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。
为此在本文设计了基于ATMEL公司的AT89C51的温度测量系统。
这是一种低成本的利用单片机多余I/O口实现的温度检测电路。
由于采用了智能控制器直接控制风扇,实现了的风扇开和关。
节约了电能,积极响应了国家提出的节能减排的号召。
具有很好的市场发展前景。
在夏天时,由于天气温度高,人们通常直接打开风扇的电源而不用风扇的定时功能。
当夜深时,环境温度会降低。
此时,如果风扇直接吹到人上,人们很容易得感冒。
本课题设计的智能风扇控制器,可以实时监控环境温度,当环境温度低于用户设定的温度时,风扇会自动关闭。
本智能温度控制器也可用于工业温度测量的场所,课程设计我们可以学到关于单片机在实际生活中的设计应用,也可以深入地学习到单片机的编程。
第2章系统主要硬件电路设计
2.1总体硬件设计
图2-1系统原理框图
2.1.1AT89C51介绍及说明
根据设计要求设定AT89C51为中央处理器,它是一种低功耗、高性能的处理器。
作为整个控制系统的核心,AT89C51内部已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。
整个系统结构紧凑,抗干扰能力强,性价比高。
是比较合适的方案。
AT89C51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51是一个低功耗高性能单片机,如AT89C51引脚图,它共有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
2.1.2AT89C51主要特性及引脚说明:
与MCS-51兼容,4K字节可编程闪烁存储器寿命:
1000写/擦
循环数据保留时间:
10年全静态工作:
0Hz-24MHz
三级程序存储器锁定128×8位内部RAM
32可编程I/O线两个16位定时器/计数器
5个中断源可编程串行通道
低功耗的闲置和掉电模式
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2数字温度传感器模块设计
在选定单片机类型后,通常还要对一些严重影响系统性能指标的器件,如传感器进行选择。
有时一个设计合理的测控系统往往因为传感器的限制而达不到应有的效果。
该电路的根本任务是温度的实时测量。
因此,选用一块好的温度传感器是本设计的关键。
典型的温度测控系统是由模拟温度传感器、A、D转换电路和单片机组成。
但是由于模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,成本较高。
近年来,由于以DSl8B20为代表的新型单总线数字式温度传感器的突出优点使得它得到充分利。
2.2.1DS18B20介绍
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器
非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的测量温度范围是-55~+125℃。
该温度传感器的输出温度数据可与摄氏度校准,使用查找表或转换规则就可计算温度值。
它采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的,因此具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。
它可以直接将模拟温度信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。
2.2.2DS18B20的功能及使用说明
DS18B20高精度数字温度传感器可以完成如下的功能:
(1)采用采用AT89S52单片机和DS18B20温度传感器通信,控制温度的采集过程和进行数据通信;
(2)提供DS18B20的使用外围电路温度显示LED电路以及DS18B20和单片机的通信接口电路;
(3)利用发光二极管指示系统的工作状态,DS18B20温度传感器内置温度上下限;
(4)编写程序,完成单片机对温度数据的采集过程以及与DS18B20数据传输过程的控制。
主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
部分温度值与DS18B20输出的数字量对照表如下图表2-2-2:
表2-2-2部分温度值与DS18B20输出的数字量对照表
+85℃00000101010100000550H
+25.625℃00000001100100010191H
+10.125℃000000001010001000A2H
+0.5℃00000000000010000008H
0℃00000000000000000000H
-0.5℃1111111111111000FFF8H
-10.125℃1111111101101110FF5EH
-25.625℃1111111101101111FF6FH
-55℃1111110010010000FC90H
2.2.3DS18B20寄存器的存储器及格式
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。
第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
第六、七、八个字节用于内部计算。
第九个字节是冗余检验字节。
DS18B20温度寄存器的格式:
2.2.4DS18B20使用注意事项
DS18B20虽然具有测温系统简单、测温精度高、连接方便和占用口线少等优点,但是在实际应用中也应注意以下几个问题:
(1)因为硬件开销较小,所以需要较复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时必须严格保证读写时序,否则将无法读取测温结果。
(2)当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意
(3)在DS18B20测温程序设计中,向DS18B20发出温度转换时总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或短线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。
这一点在进行DS18B20硬件连接和软件设计时也要加以注意。
2.3键盘输入模块
键盘的基本工作原理:
键盘是单片机应用系统中不可缺少的设备,人们通过它往计算机中传递信息。
常用的键盘电路有两种,即独立式键盘和矩阵式键盘。
2.3.1键盘的选择与原理
独立式键盘
最简单的键盘为独立式键盘,每个键对应I/O端口的一位,没有键闭合时,I/O端口各位均处于高电平。
当有一个键被按下时,就使对应位接地成为低电平。
而其他位仍为高电平。
这样,只要CPU检测到I/O端口的某一位为“0”,便可以辨别出对应键已经被按下。
矩阵式键盘
当系统所需按键较多时,为了减少键盘电路占用的I/O引脚数目,一般采用矩阵式电路。
设有一个含有m×n个键的键盘,如果采用独立式的键盘结构设计,需要m×n条引线和m×n位I/O端口。
如果采用矩阵式键盘结构,便只要m+n条引线和m+n位I/O端口就行了。
它由行线和列线组成,按键设置在行、列的交叉点上,行、列分别连接到按键开关的两端。
行线通过上拉电阻接到+5v上。
平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。
列线电平如果为低,则行线电平为低;列线电平如果为高,则行线电平亦为高。
这一点是识别矩阵按键是否被按下的关键。
由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。
因此各按键彼此将互相发生影响,所以必须将行、列信号配合起来并做适当的处理,才能确定闭合键的位置。
键盘功能手动按钮:
在此状态下,手动调节等级调速来实现调速
自动按钮:
在此状态下,自动调速以使室温等于设定温度
设定按钮:
按下时,温度显示设定温度,并可改变设定温度
+按钮:
改变设定温度使设定温度增加
-按钮:
改变设定温度使设定温度减小
高中低档:
手动控制调速等级
2.3.2键盘电路
根据所需按键个数、I/O引脚输出级电路结构以及可以利用的I/O引脚数量,确定键盘电路形式。
本方案有8个按键,又考虑到I/O口的数量,采用独立式键盘电路。
8个按键分别定义如下:
K1、自动按钮;K2、手动按钮;K3、设定键;K4、+按键K5、-按键;K6、高档;K7、中档;K8、低档,电路图如下:
2.4温度显示与控制模块
在单片机控制系统中,常用LED显示器来显示各种数字和符号。
这种显示器显示清晰,亮度高,接口方便,广泛用于各种控制系统中。
2.4.1LED显示灯介绍
LED显示器在电路连接上有两种形式:
一种是8个发光二极管的阳极都连在一起的,称之为共阳极型LED显示器;另一种是8个发光二极管的阴极都连在一起的,称为共阴极型LED显示器。
显示器的显示方式有两种:
静态显示和动态扫描显示。
所谓静态显示,是指当显示器显示某个字符时,相应段的发光二极管处于恒定的导通或截止状态,直到需要显示另一个字符为止。
在这种工作方式下,LED的亮度高,软件编程也比较容易;但是它占用比较多的I/O资源,常用于现实位数不多的情况。
LED显示器动态接口的基本原理是利用人眼的“视觉暂留”效应。
接口电路把所有显示器的8个笔端a到h分别并联在一起,构成“字段口”,每个显示器的公共端COM各自独立的受I/O线控制,称“位扫描口”。
CPU向字段输出口送出字形码时,所有的显示器都能接受到,但是究竟点亮哪个显示器,取决于此时的位扫描口德输出端接通了哪个LED显示器的公共端。
所谓动态,就是利用循环扫描的方式,分时轮流选通各显示器的公共端,使各个显示器轮流导通。
当扫描速度达到一定程度时,人眼就分辨不出来了,认为是各个显示器。
本设计是对室内温度进行显示,一般用户室内温度是两位,所以我采用两位数码管显示,共阳极、动态显示方式。
P0.0~P0.7连接数码管的段输出,P3.0、P3.1连接数码管的位输出,温度显示模块如下图:
温度显示模块
2.5电机调速与控制模块设计
电机调速是整个控制系统中的一个重要的方面。
通过控制双向可控硅的导通角,使输出端电压发生改变,从而使施加在电风扇的输入电压发生改变,以调节风扇的转速,实现各档位风速的无级调速。
2.5.1电机调速原理
可控硅的导通条件如下:
1)阳-阴极间加正向电压;
2)控制极-阴极间加正向触发电压;
3)阳极电流IA大于可控硅的最小维持电流IH。
电风扇的风速设为从高到低5、4、3、2、1档,各档风速都有一个限定值。
在额定电压、额定功率下,以最高转速运转时,要求风叶最大圆周上的线速度不大于2150m/min。
且线速度可由下列公式求得
式中,V为扇叶最大圆周上的线速度(m/min),D为扇中的最大顶端扫出圆的直径(mm);n为电风扇的最高转速(r/min)。
代入数据求得
1555r/min,取
=1250r/min.又因为:
取n1=875r/min.则可得出五个档位的转速值:
=1250r/min
=1150r/min
=1063r/min
=980r/min
=875r/min
又由于负载上电压的有效值
其中,u1为输入交流电压的有效值,α为控制角。
解得:
=0°t=0ms
=23.5°t=1.70ms
=46.5°t=2.58ms
=61.5°t=3.43ms
=76.5°t=4.30ms
以上计算出的是控制角和触发时间,当检测到过零点时,按照所求得的触发时间延时发脉冲,便可实现预期转速。
2.5.2电机控制模块硬件设计
电路中采用了过零双向可控硅型光耦MOC3041,集光电隔离、过零检测、过零触发等功能于一身,避免了输入输出通道同时控制
双向可控硅触发的缺陷,简化了输出通道隔离2驱动电路的结构。
所设计的可控硅触发电路原理图见图2-3。
其中RL即为电机负载,其工作原理是:
单片机响应用户的参数设置,在I/O口输出一个高电平,经反向器反向后,送出一个低电平,使光电耦合器导通,同时触发双向可控硅,使工作电路导通工作。
给定时间内,负载得到的功率为:
式中:
P为负载得到的功率,kW;n为给定时间内可控硅导通的正弦波个数;N为给定时间内交流正弦波的总个数;U为可控硅在一个电源周期全导通时所对应的电压有效值,V;I为可控硅在一个电源周期全导通时所对应的电流有效值,A。
由式
(1)可知,当U,I,N为定值时,只要改变U值的大小即可控制功率的输出,从而达到调节电机转速的目的。
下图为电机的原理图:
2-5-2电机控制原理图
第3章软件设计与说明(包括流程图)
3.1系统方案设计
软件是单片机应用系统中的一个重要的组成部分。
一般计算机应用系统的软件包括系统软件和用户软件,而单片机应用系统中的软件只有用户软件,即应用系统软件。
软件设计的关键是确定软件应完成的任务及选择相应的软件结构。
根据系统软、硬件的功能分工,可确定出软件应完成什么功能。
作为实现控制功能的软件应明确控制对象、控制信号、控制时序;作为实现处理功能的软件应明确输入是什么、要做什么处理(处理算法)、产生何种输出。
本方案按照功能的不同可以把系统软件部分分成五大模块,每个独立的模块通过联系程序联系起来,再与硬件联系,从而形成一个完整的控制系统。
系统的主要功能模块有:
(1)主程序
(2)传感器温度检测模块
(3)温度显示模块
(4)按键控制模块
(5)电机调速模块
3.2主要程序流程图
3.2.1主程序流程图
右图为主程序流程图。
系统初始化,主程序便开始运行。
3.2.2数字温度传感器模块程序流程图
本系统的运行程序采用汇编语言编写,采用模块化设计,整体程序由主程序和子程序构成。
图3-2-2数字温度传感器模块程序流程图
如图3-2-2所示,主机控制DS18B20完成温度转换工作必须经过三个步骤:
初始化、ROM操作指令、存储器操作指令。
单片机所用的系统频率为12MHz。
根据DS18B20初始化时序、读时序和写时序分别可编写4个子程序:
初始化子程序、写子程序、读子程序、显示子程序。
DS18B20芯片功能命令表如下:
表2DS18B20功能命令表
命令功能描述命令代码
CONVERT开始温度转换44H
READSCRATCHPAD读温度寄存器(共9字节)BEH
READROM读DS18B20序列号33H
WRITESCRATCHPAD将警报温度值写如暂存器第2、3字节4EH
MATCHROM匹配ROM55H
SEARCHROM搜索ROMF0H
ALARMSEARCH警报搜索ECH
SKIPROM跳过读序列号的操作CCH
READPOWERSUPPLY读电源供电方式:
0为寄生电源,1为外电源B4H
(该主要程序见程序清单)
3.2.3显示程序流程图
DSl8B20是一个典型的单总线传感器,其命令序列如下:
第一步:
初始化;
第三步:
ROM命令(跟随需要交换的数据);
第三步:
功能命令(跟随需要交换的数据)。
3.2.4电动机程序设计原理以及流程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 风扇 控制 设计 本科 学位 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)