陕西理工学院
本科毕业论文(设计)
题目:基于单片机的温控风扇的设计
学
院:__
专
班
学
业:电子信息科学与技术
级:
号:
学生姓名:_
指导教师:
_
___
年 月
陕西理工学院
目 录 错误!未定义书签。
摘 要 ·······················································································································I
Abstract ··························································································· 错误!未定义书签。
第一章 整体方案设计 ································································································1
1.1 前 言 ·········································································································· 1
1.2 系统整体设计 ································································································1
1.3 方案论证 ········································································································2
1.3.1 温度传感器的选择 ················································································ 2
1.3.2 控制核心的选择 ····················································································3
1.3.3 温度显示器件的选择 ·············································································3
1.3.4 调速方式的选择 ····················································································3
第二章 各单元模块的硬件设计 ··················································································5
2.1 系统器件简介 ·································································································5
2.1.1 DS18B20 单线数字温度传感器简介 ························································ 5
2.1.2 达林顿反向驱动器 ULN2803 简介 ························································· 5
2.1.3 AT89C52 单片机简介 ···········································································6
2.1.4 LED 数码管简介 ················································································· 7
2.2 各部分电路设计 ···························································································· 8
2.2.1 开关复位与晶振电路 ·············································································9
2.2.2 独立键盘连接电路 ················································································ 9
2.2.3 数码管显示电路 ·················································································· 10
2.2.4 温度采集电路 ······················································································11
2.2.5 风扇电机驱动与调速电路 ···································································· 12
第三章 软件设计 ····································································································· 14
3.1 程序设置 ····································································································· 14
3.2 用 Keil C51 编写程序 ··················································································· 14
3.3 用 Proteus 进行仿真 ······················································································15
3.3.1 Proteus 简介 ························································································· 15
3.3.2 本设计基于 Proteus 的仿真 ·································································· 16
第四章 系统调试 ····································································································· 21
4.1 软件调试 ····································································································· 21
4.1.1 按键显示部分的调试 ··········································································· 21
4.1.2 传感器 DS18B20 温度采集部分调试 ·····················································21
4.1.3 电动机调速电路部分调试 ···································································· 21
4.2 硬件调试 ····································································································· 22
4.2.1 按键显示部分的调试 ··········································································· 22
4.2.2 传感器 DS18B20 温度采集部分调试 ·····················································22
4.2.3 电动机调速电路部分调试 ···································································· 22
4.3 系统功能 ····································································································· 23
4.3.1 系统实现的功能 ·················································································· 23
4.3.2 系统功能分析 ······················································································23
论 ················································································································· 24
结
参考文献 ················································································································· 25
第 3 页
谢 ················································································································· 26
致
附录 1:电路总图 ···································································································· 27
附录 2:程序代码 ···································································································· 28
3
第 I 页
基于单片机的温控风扇的设计
姓名:
学校:
学号:
指导教师:
摘 要
温控风扇在现代社会中的生产以及人们的日常生活中都有广泛的应用,如工业生产
中大型机械散热系统中的风扇、现在笔记本电脑上的广泛应用的智能 CPU 风扇等。本
文设计了基于单片机的温控风扇系统,采用单片机作为控制器,利用温度传感器
DS18B20 作为温度采集元件,并根据采集到的温度,通过一个达林顿反向驱动器
ULN2803 驱动风扇电机。根据检测到的温度与系统设定的温度的比较实现风扇电机的
自动启动和停止,并能根温度的变化自动改变风扇电机的转速,同时用 LED 八段数码
管显示检测到的温度与设定的温度。
关键词:单片机、DS18B20、温控、风扇
I
第 1 页
第一章 整体方案设计
1.1 前 言
在现代社会中,风扇被广泛的应用,发挥着举足轻重的作用,如夏天人们用的散热
风扇、工业生产中大型机械中的散热风扇以及现在笔记本电脑上广泛使用的智能 CPU
风扇等。而随着温度控制技术的发展,为了降低风扇运转时的噪音以及节省能源等,温
控风扇越来越受到重视并被广泛的应用。在现阶段,温控风扇的设计已经有了一定的成
效,可以使风扇根据环境温度的变化进行自动无级调速,当温度升高到一定时能自动启
动风扇,当温度降到一定时能自动停止风扇的转动,实现智能控制。
随着单片机在各个领域的广泛应用,许多用单片机作控制的温度控制系统也应运而
生,如基于单片机的温控风扇系统。它使风扇根据环境温度的变化实现自动启停,使风
扇转速随着环境温度的变化而变化,实现了风扇的智能控制。它的设计为现代社会人们
的生活以及生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风
扇运转所需的能量。
本文设计了由ATMEL 公司的 8052 系列单片机AT89C52 作为控制器,采用 DALLAS
公 司的 温度 传 感器 DS18B20 作 为温 度采 集 元件 ,并 通 过 一 个达 林顿 反 向驱 动器
ULN2803 驱动风扇电机的转动。同时使系统检测到得环境温度以及系统预设的温度动
态的显示在 LED 数码管上。根据系统检测到得环境温度与系统预设温度的比较,实现
风扇电机的自动启停以及转速的自动调节。
1.2 系统整体设计
本设计的整体思路是:利用温度传感器 DS18B20 检测环境温度并直接输出数字温
度信号给单片机 AT89C52 进行处理,在 LED 数码管上显示当前环境温度值以及预设温
度值。其中预设温度值只能为整数形式,检测到的当前环境温度可精确到小数点后一位。
同时采用 PWM 脉宽调制方式来改变直流风扇电机的转速。并通过两个按键改变预设温
度值,一个提高预设温度,另一个降低预设温度值。系统结构框图如下:
1
第 2 页
温度显示
DS18B20
AT89C52
独立键盘
PWM 驱动
电路
直流电机
复位
晶振
图 1.1 系统构成框图
1.3 方案论证
本设计要实现风扇直流电机的温度控制,使风扇电机能根据环境温度的变化自动启
停及改变转速,需要比较高的温度变化分辨率以及稳定可靠的换挡停机控制部件[1]。
1.3.1 温度传感器的选择
在本设计中,温度传感器的选择有以下两种方案:
方案一:采用热敏电阻作为检测温度的核心元件,并通过运算放大器放大,由于热
敏电阻会随温度变化而变化,进而产生输出电压变化的微弱电压变化信号,再经模数转
换芯片 ADC0809 将微弱电压变化信号转化为数字信号输入单片机处理。
方案二:采用数字式的集成温度传感器 DS18B20 作为温度检测的核心元件,由其
检测并直接输出数字温度信号给单片机进行处理。
对于方案一,采用热敏电阻作为温度检测元件,有价格便宜,元件易购的优点,但
热敏电阻对温度的细微变化不太敏感,在信号采集、放大以及转换的过程中还会产生失
真和误差,并且由于热敏电阻的 R-T 关系的非线性,其自身电阻对温度的变化存在较大
误差,虽然可以通过一定电路来修正,但这不仅将使电路变得更加复杂,而且在人体所
[1] 李学龙. 使用单片机控制的智能遥控电风扇控制器[J].电子电路制作,2003,9:13—15.
2
第 3 页
处环境温度变化过程中难以检测到小的温度变化。故该方案不适合本系统。
对于方案二,由于数字式集成温度传感器 DS18B20 的高度集成化,大大降低了外
接放大转化等电路的误差因数,温度误差变得很小,并且由于其检测温度的原理与热敏
电阻检测的原理有着本质的不同,使得其温度分辨力极高。温度值在器件内部转化成数
字量直接输出,简化了系统程序设计,又由于该温度传感器采用先进的单总线技术,与
单片机的接口变得非常简洁,抗干扰能力强,因此该方案适用于本系统。
1.3.2 控制核心的选择
在本设计中采用 AT89C52 单片机作为控制核心,通过软件编程的方法进行温度检
测和判断,并在其 I/O 口输出控制信号。AT89C52 单片机工作电压低,性能高,片内含
8k 字节的只读程序存储器 ROM 和 256 字节的随机数据存储器 RAM,它兼容标准的
MCS-51 指令系统,单片价格也不贵,适合本设计系统。
1.3.3 温度显示器件的选择
方案一:应用动态扫描的方式,采用 LED 共阴极数码管显示温度。
方案二:采用 LCD 液晶显示屏显示温度。
对于方案一,该方案成本很低,显示温度明确醒目,即使在黑暗空间也能清楚看见,
功耗极低,同时温度显示程序的编写也相对简单,因而这种显示方式得到了广泛应用。
但不足的地方是它采用动态扫描的显示方式,各个 LED 数码管是逐个点亮的,因此会
产生闪烁,但由于人眼的视觉暂留时间为 20MS,故当数码管扫描周期小于这个时间时
人眼不会感觉到闪烁,因此只要描频率设置得当即可采用该方案。
对于方案二,液晶显示屏具有显示字符优美,其不仅能显示数字还能显示字符甚至
图形,这是 LED 数码管无法比拟的。但是液晶显示模块的元件价格昂贵,显示驱动程
序的编写也较复杂,从简单实用的原则考虑,本系统采用方案一。
1.3.4 调速方式的选择
方案一:采用数模转换芯片 DAC0832 来控制,由单片机根据当前环境温度值输出
相应数字量到 DAC0832 中,再由 DAC0832 产生相应模拟信号控制晶闸管的导通角,
从而通过无级调速电路实现风扇电机转速的自动调节。
方案二:采用单片机软件编程实现 PWM(脉冲宽度调制)调速的方法。PWM 是
英文 Pulse Width Modulation 的缩写,它是按一定的规律改变脉冲序列的脉冲宽度,以
调节输出量和波形的一种调节方式,在 PWM 驱动控制的调节系统中,最常用的是矩形
3
第 4 页
波 PWM 信号,在控制时需要调节 PWM 波得占空比。占空比是指高电平持续时间在一
个周期时间内的百分比。在控制电机的转速时,占空比越大,转速就越快,若全为高电
平,占空比为 100%时,转速达到最大 [2]。用单片机 I/O 口输出 PWM 信号时,有如下
三种方法:
(1) 利用软件延时。当高电平延时时间到时,对 I/O 口电平取反,使其变成低电平,
然后再延时一定时间;当低电平延时时间到时,再对该 I/O 口电平取反,如此循环即可
得到 PWM 信号。在本设计中应用了此方法。
(2) 利用定时器。控制方法与(1)相同,只是在该方法中利用单片机的定时器来定时
进行高低电平的转变,而不是用软件延时。应用此方法时编程相对复杂。
(3) 利用单片机自带的 PWM 控制器。在 STC12 系列单片机中自身带有 PWM 控制
器,但本系统所用到得 AT89 系列单片机无此功能。
对于方案一,该方案能够实现对直流风扇电机的无级调速,速度变化灵敏,但是
D/A 转换芯片的价格较高,与其温控状态下无级调速功能相比性价比不高。
对于方案二,相对于其他用硬件或者软硬件相结合的方法实现对电机进行调速而
言,采用 PWM 用纯软件的方法来实现调速过程,具有更大的灵活性,并可大大降低
成本,能够充分发挥单片机的功能,对于简单速度控制系统的实现提供了一种有效的途
径。综合考虑选用方案二。
[2] 蓝厚荣.单片机的 PWM 控制技术[J] .工业控制计算机,2010,23(3):97—98
4