毕业论文_单片机的电风扇自动控制号

单片机的电风扇自动控制号

摘要

温控风扇在现代社会中的生产以及人们的日常生活中都有广泛的应用,如工业生产中大型机械散热系统中的风扇、现在笔记本电脑上的广泛应用的智能CPU风扇等。本文设计了基于单片机的温控风扇系统,采用单片机作为控制器,利用温度传感器DS18B20作为温度采集元件,并根据采集到的温度,通过一个达林顿反向驱动器ULN2803驱动风扇电机。根据检测到的温度与系统设定的温度的比较实现风扇电机的自动启动和停止,并能根温度的变化自动改变风扇电机的转速,同时用LED八段数码管显示检测到的温度与设定的温度。该系统改变了传统的手动控制电风扇的起停,实现了温控电风扇全自动调速控制,较好地把智能控制技术应用到了家用电器控制系统中,用人体周围的环境温度对风扇进行温控。

实践证明该调速器可靠性高、控制准确、节能节电、成本低;利用软件技术实现电风扇风速调级和开停机控制,增强了抗干扰性。该设计具有较高的应用价值,适用于依靠电风扇散热来降温的任一控制系统中。

关键词:单片机、DS18B20、智能、风扇

ABSTRACT

Temperature control fan is widely used in the modern society of production and People's Daily life,Such as industrial production machinery cooling system of medium fan、the intelligence CPU fan is widely used in the Notebook computer etc.This article introduces the design of the temperature control system based on single chip computer fan,Using single chip microcomputer as the controller,Use temperature sensor DS18B20 as temperature gathering components And according to the collected temperature,the fan motor driven by a Darlington Reverse drive ULN2803.According to the temperature detected by the temperature and system settings of the realization of the motor starts and stops,And can automatically change the fan motor speed according to temperature changes At the same time,the Eight period of digital tube LED display of the detected temperature and set temperature,The system has changed the traditional manual control from the fan`s stopped,In which intelligent control technology is applied to home appliances control system.

Practice prove that the controlling of this electric fan governor is high reliability-stabilit,accurate and energy-saving,low cost;Kind of software technology is used to achieve transfer-level fan speed controlling and open parking controlling,which enhances the anti-interference.This design has higher value ,could be applied in any control system in which electric fan is used to lower the temperature.

Key words:Single-chip microcomputer、DS18B20、Temperature control、fan

目录

第一章概述 (1)

1.1选题背景及意义 (1)

1.2研究目标和内容 (1)

第二章方案论证 (2)

2.1本设计的整体思路 (2)

2.2温度传感器的选择 (2)

2.3控制核心的选择 (2)

2.4温度显示器件的选择 (3)

2.5键盘电路的选择 (3)

2.6调速方式的选择 (4)

第三章主要单元模块的介绍 (5)

3.1DS18B20单线数字温度传感器简介 (5)

3.1.1DS18B20的功能及使用说明 (5)

3.1.2DS18B20寄存器的存储器及格式 (6)

3.1.3DS18B20使用注意事项 (6)

3.2达林顿反向驱动器ULN2803简介 (7)

3.3LED数码管简介 (7)

3.4单片机简介 (8)

第四章总体硬件设计 (11)

4.1系统结构框图 (11)

4.2数字温度传感器模块设计 (11)

4.3键盘输入模块 (12)

4.4温度显示与控制模块 (13)

4.5风扇电机驱动与调速电路 (14)

4.6开关复位与晶振电路 (15)

第五章软件设计 (17)

5.1程序设置 (17)

5.2用Keil C51编写程序 (17)

第六章用Proteus进行仿真 (19)

6.1Proteus简介 (19)

6.2本设计基于Proteus的仿真 (19)

结论 (24)

致谢 (25)

参考文献 (26)

附录 (27)

附录1:电路原理总图 (27)

附录2:程序代码 (28)

第一章概述

1.1选题背景及意义

现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以好不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变我们的世界。

在现代社会中,风扇被广泛的应用,发挥着举足轻重的作用,如夏天人们用的散热风扇、工业生产中大型机械中的散热风扇以及现在笔记本电脑上广泛使用的智能CPU 风扇等。而随着温度控制技术的发展,为了降低风扇运转时的噪音以及节省能源等,温控风扇越来越受到重视并被广泛的应用。在现阶段,温控风扇的设计已经有了一定的成效,可以使风扇根据环境温度的变化进行自动无级调速,当温度升高到一定时能自动启动风扇,当温度降到一定时能自动停止风扇的转动,实现智能控制。

随着单片机在各个领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。它使风扇根据环境温度的变化实现自动启停,使风扇转速随着环境温度的变化而变化,实现了风扇的智能控制。它的设计为现代社会人们的生活以及生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风扇运转所需的能量。比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音,则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。为解决上述问题,我们设计了这套温控自动风扇系统。

1.2研究目标和内容

这次设计的是智能电风扇控制系统,是将风扇中的电机转速作为被控量,由单片机分析采集到的数字温度信号,采用PWM脉宽调制方式来改变直流风扇电机的转速,从而达到无需人为操作就可以自动控制风力大小的效果。这次设计是以MC51单片机为核心,通过温度传感器对周围环境温度进行采集,从而建立一个控制系统,使风扇的转速随着温度的变化而自动换挡,实现“温度高,风力大;温度低,风力小”的性能。另外,通过键盘控制面板,用户可以在一定范围内设置电风扇的最低工作温度,当温度低于所设置温度时,电风扇将自动关闭,当高于此温度时,电风扇又将重新启动。

第二章方案论证

本设计要实现风扇直流电机的温度控制,使风扇电机能根据环境温度的变化自动启停及改变转速,需要比较高的温度变化分辨率以及稳定可靠的换挡停机控制部件[1]。2.1本设计的整体思路

利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT89C52进行处理,在LED数码管上显示当前环境温度值以及预设温度值。其中预设温度值只能为整数形式,检测到的当前环境温度可精确到小数点后一位。同时采用PWM 脉宽调制方式来改变直流风扇电机的转速。并通过两个按键改变预设温度值,一个提高预设温度,另一个降低预设温度值。

2.2温度传感器的选择

温度传感器可由以下几种方案可供选择:

方案一:选用热敏电阻作为感测温度的核心元件,通过运算放大器放大由于温度变化引起热敏电阻的变化、进而导致的输出电压变化的微弱电压变化信号,再用AD转换芯片ADC0809将模拟信号转化为数字信号输入单片机处理。

方案二:采用热电偶作为感测温度的核心元件,配合桥式电路,运算放大电路和AD转换电路,将温度变化信号送入单片机处理。

方案三:采用数字式集成温度传感器DS18B20作为感测温度的核心元件,直接输出数字温度信号传送到单片机处理。

对于方案一,采用热敏电阻有价格便宜、元件易购的优点,但热敏电阻对温度细微变化不敏感,在信号采集、放大、转换过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其本身电阻对温度的变化存在较大误差,虽然可以通过一定的电路予以纠正,但不仅将使电路复杂,稳定性降低,而且在人体所处环境温度变化中难以检测到小的温度变化。故该方案不适合本系统。

对于方案二,采用热电偶和桥式测量电路,相对于热敏电阻对温度的敏感性和器件的非线性误差都有较大提高,其测量范围也非常宽,从50摄氏度到1600摄氏度均可测量。但是依然存在电路复杂,对温度敏感性达不到本系统要求的标准,故不采用该方案。

对于方案三,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转换电路的误差因素,温度误差很小,并且由于其感测温度的原理与上述两种方案有着本质上的不同,使得其分辨力极高。温度值在其内部转换成数字量直接输出,简化系统程序设计,又由于该传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力强。所以选择本方案。

2.3控制核心的选择

方案一:采用电压比较电路作为控制部件。温度传感器采用热敏电阻或热电偶等,温度信号转为电信号并放大,由集成运放组成的比较电路判决控制风扇转速,当高于或

低于某值时,将风扇切换到相应的档位。

方案二:采用单片机作为控制核心。以软件编程的方法进行温度判断,并在端口输出控制信号。

对于方案一,采用电压比较电路,具有电路简单、易于实现,以及无需编写软件程序的特点。但控制方式过于单一,不能自由设置上下限动作温度,无法满足不同用户以及不同环境下的多种动作温度要求,故不在本系统中采用。

对于方案二,以单片机作为控制器,通过编写程序,不但能将传感器感测到的温度通过显示电路显示出来,而且,用户能通过键盘接口,自由设置上下限动作温度值,满足全方位的需求。并且通过程序判断温度具有极高的准确度,能精确把握环境温度的微小变化。所以本系统采用方案二。

2.4温度显示器件的选择

方案一:应用动态扫描的方式,采用LED共阴极数码管显示温度。

方案二:采用LCD液晶显示屏显示温度。

对于方案一,该方案成本很低,显示温度明确醒目,即使在黑暗空间也能清楚看见,功耗极低,同时温度显示程序的编写也相对简单,因而这种显示方式得到了广泛应用。但不足的地方是它采用动态扫描的显示方式,各个LED数码管是逐个点亮的,因此会产生闪烁,但由于人眼的视觉暂留时间为20MS,故当数码管扫描周期小于这个时间时人眼不会感觉到闪烁,因此只要描频率设置得当即可采用该方案。

对于方案二,液晶显示屏具有显示字符优美,其不仅能显示数字还能显示字符甚至图形,这是LED数码管无法比拟的。但是液晶显示模块的元件价格昂贵,显示驱动程序的编写也较复杂,从简单实用的原则考虑,本系统采用方案一。

2.5键盘电路的选择

方案一:独立式键盘,最简单的键盘为独立式键盘,每个键对应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上。平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低,列线电平如果为高,则行线电平亦为高。这一点是识别矩阵按键是否被按下的关键。由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。因此各按键彼此将互相发生影响,所以必须

将行、列信号配合起来并做适当的处理,才能确定闭合键的位置。

对于方案一,根据本设计所需按键个数、I/O引脚输出级电路结构以及可以利用的I/O引脚数量,确定键盘电路形式。本方案有2个按键,又考虑到I/O口的数量,采用方案一。

对于方案二,I/O口的数量较多,适合较复杂的电路,所以不采用方案二。

2.6调速方式的选择

方案一:采用数模转换芯片DAC0832来控制,由单片机根据当前环境温度值输出相应数字量到DAC0832中,再由DAC0832产生相应模拟信号控制晶闸管的导通角,从而通过无级调速电路实现风扇电机转速的自动调节。

方案二:采用单片机软件编程实现PWM(脉冲宽度调制)调速的方法。PWM是英文Pulse Width Modulation的缩写,它是按一定的规律改变脉冲序列的脉冲宽度,以调节输出量和波形的一种调节方式,在PWM驱动控制的调节系统中,最常用的是矩形波PWM信号,在控制时需要调节PWM波得到占空比。占空比是指高电平持续时间在一个周期时间内的百分比。在控制电机的转速时,占空比越大,转速就越快,若全为高电平,占空比为100%时,转速达到最大[2]。用单片机I/O口输出PWM信号时,有如下三种方法:

1.利用软件延时。当高电平延时时间到时,对I/O口电平取反,使其变成低电平,然后再延时一定时间;当低电平延时时间到时,再对该I/O口电平取反,如此循环即可得到PWM信号。在本设计中应用了此方法。

2.利用定时器。控制方法与第1条所述相同,只是在该方法中利用单片机的定时器来定时进行高低电平的转变,而不是用软件延时。应用此方法时编程相对复杂。

3.利用单片机自带的PWM控制器。在STC12系列单片机中自身带有PWM控制器,但本系统所用到得AT89系列单片机无此功能。

对于方案一,该方案能够实现对直流风扇电机的无级调速,速度变化灵敏,但是D/A转换芯片的价格较高,与其温控状态下无级调速功能相比性价比不高。

对于方案二,相对于其他用硬件或者软硬件相结合的方法实现对电机进行调速而言,采用PWM 用纯软件的方法来实现调速过程,具有更大的灵活性,并可大大降低成本,能够充分发挥单片机的功能,对于简单速度控制系统的实现提供了一种有效的途径。综合考虑选用方案二。

第三章主要单元模块的介绍

系统主要器件包括DS18B20温度传感器、AT89C52单片机、五位LED共阴数码管、风扇直流电机、达林顿反向驱动器ULN2803。辅助元件包括电阻电容、晶振、电源、按键、开关等。

3.1DS18B20单线数字温度传感器简介

DS18B20数字温度传感器,是采用美国DALLAS半导体公司生产的DS18B20可组网数字温度传感器芯片封装而成,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。

适用于各种狭小空间设备数字测温和控制领域。

DS18B20内部结构主要有四部分:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其管脚有三个,其中DQ为数字信号端,GND为电源地,VDD为电源输入端。

DS18B20温度传感器如下图3-1所示:

图3-1 DS18B20温度传感器

DS18B20的主要特征:测量的结果直接以数字信号的形式输出,以“一线总线”方式串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;温度测量范围在-55℃~+125℃之间,在-10℃~+85℃时精度为±0.5℃;可检测温度分辨率为9~12位,对应的可分辨温度分别为0.5℃,0.25℃,0.125℃和0.0625℃,可实现高精度测温;它单线接口的独特性,使它与微处理器连接时仅需一条端口线即可实现与微处理器的双向通信;支持多点组网功能,即多个DS18B20可以并联在唯一的三线上,实现组网多点测温的功能;工作电压范围宽,其范围在3.0~5.5V[3]。

3.1.1DS18B20的功能及使用说明

DS18B20高精度数字温度传感器可以完成如下的功能:

(1)采用AT89S51单片机和DS18B20温度传感器通信,控制温度的采集过程和进行数据通信;

(2)提供DS18B20的使用外围电路温度显示LED电路以及DS18B20和单片机的通信接口电路;

(3)利用发光二极管指示系统的工作状态,DS18B20温度传感器内置温度上下限;

(4)编写程序,完成单片机对温度数据的采集过程以及与DS18B20数据传输过程的

控制。

主机(单片机)控制DS18B20完成温度转换必须经过三个步骤,每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16-60微秒左右,后发出60-240微秒的存在低脉冲,主CPU收到此信号表示复位成功。部分温度值与DS18B20输出的数字量对照表如下图表3-1所示:

表3-1部分温度值与DS18B20输出的数字量对照表

3.1.2DS18B20寄存器的存储器及格式

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、

七、八个字节用于内部计算。第九个字节是冗余检验字节。

3.1.3DS18B20使用注意事项

DS18B20虽然具有测温系统简单、测温精度高、连接方便和占用口线少等优点,但是在实际应用中也应注意以下几个问题:

1.因为硬件开销较小,所以需要较复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送。因此,在对DS18B20进行读写编程时必须严格保证读写时序,否则将无法读取测温结果。

2.当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。

3.在DS18B20测温程序设计中,向DS18B20发出温度转换时总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或短线,当程序读该DS18B20时,将没有返

回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要加以注意。

3.2达林顿反向驱动器ULN2803简介

本系统要用单片机控制风扇直流电机,需要加驱动电路,为直流电机提供足够大的驱动电流。在本系统驱动电路中,选用达林顿反向驱动器ULN2803来驱动风扇直流电机。ULN2803在使用时接口简单,操作方便,可为电机提供较大的驱动电流,它实际上是一个集成芯片,单块芯片可同时驱动8个电机。每个电机由单片机的一个I/O口控制,片机I/O口输出的为5V的TTL信号。ULN2803如图3-2所示:

图3-2ULN2803反向驱动器

ULN2803由8个NPN达林顿晶体管组装而成,共18个引脚,引脚1~8分别是8路驱动器的输入端,输入信号可直接是TTL或CMOS信号;引脚11~18分别是8路驱动器的输出端;引脚9为接地线,引脚10为电源输入。当输入TTL信号为5V或CMOS 信号为6~15V时,输出的最大电压为50V,最大电流为500mA,工作温度范围为0~70℃。本系统选用的电机为12V直流无刷电机,可用ULN2803来驱动。

3.3LED数码管简介

本系统选用五个LED数码管来进行温度显示。LED又称为数码管,它主要是由8段发光二极管组成的不同组合,其中a~g为数字和字符显示段,dp为小数点的显示,通过a~g这7个发光二极管点亮的不同组合,可以显示0~9和A~F共16个数字和字母。LED数码管可以分为共阴极和共阳极两种结构,如下图3-2(a)和图3-2(b)所示。共阴极结构把8个发光二极管阴极连在一起,共阳极结构把8个发光二极管阳极连在一起。通过单片机引脚输出高低电平,可使数码管显示相应的数字或字母,这种使数码管显示字形的数据称字形码,又称段选码[4]。

图3-2 七段LED 数码管

一个共阴极数码管接至单片机的电路,要想显示数字“7”须a 、b 、c 这3个显示段发光(即这3个字段为高电平)只要在P0口输入00000111(07H )即可。这里07H 即为数字7的段选码。字形与段选码的关系见表3-2所示。

7段LED 的段选码表如下表3-2所示:

3.4单片机简介

AT89C52是51系列单片机的一个型号,它是由ATMEL 公司生产的一个低电压、高性能的8位单片机,片内器件采用ATMEL 公司的非易失性、高密度存储技术生产,与标准的MCS-51指令系统兼容,同时片内置有通用8位中央处理器和8K 字节的可反复擦写的只读程序存储器ROM 以及256字节的数据存储器RAM ,在许多许多较复杂的控制系统中AT89C52单片机得到了广泛的应用[5]。AT89C52有40个引脚,各引脚介绍如下:

VCC :+5V 电源线;GND :接地线。

P0口:P0.7~P0.0,这组引脚共8条,其中P0.7为最高位,P0.0为最低位。这8条引脚共有两种不同的功能,分别使用于两种不同的情况。第一种情况是单片机不带片外e d d p gnd

存储器,P0口可以作为通用I/O口使用,P0.7~P0.0用于传送CPU的输入/输出数据,此时它需外接一上拉电阻才能正常工作。第二种情况是单片机带片外存储器,其各引脚在CPU访问片外存储器时先是用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。

P1口:P1口是一个内部含上拉电阻的8位双向I/O口。它也可作为通用的I/O口使用,与P0口一样用于传送用户的输入输出数据,所不同的是它片内含上拉电阻而P0口没有,故P0口在做该用途时需外接上拉电阻而P1口则无需。在FLASH编程和校验时,P1口用于输入片内EPROM的低8位地址。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,它可以作为通用I/O口使用,传送用户的输入/输出数据,同时可与P0口的第二功能配合,用于输出片外存储器的高8位地址,共同选中片外存储单元,但此时不能传送存储器的读写数据。在一些型号的单片机中,P2口还可以配合P1口传送片内EPROM的12位地址中的高4位地址。

P3口:P3口引脚是8个带内部上拉电阻的双向I/O口,当P3口写入1后,它们被内部上拉为高电平。它也可以作为通用的I/O口使用,传送用户的输入/输出数据,P3口也作为一些特殊功能端口使用,如图3-2所示:

图3-2单片机AT89C52引脚

P3.0:RXD(串行数据接收口)

P3.1:TXD(串行数据发送口)

INT(外部中断0输入)

P3.2:0

INT(外部中断1输入)

P3.3:1

P3.4:T0(记时器0计数输入)

P3.5:T1(记时器1外部输入)

P3.6:WR(外部RAM写选通信号)

P3.7:RD(外部RAM读选通信号)

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平状态。

ALE/:地址锁存允许/编程线,当访问片外存储器时,在P0.7~P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/ 线上输出一个高电位脉冲,其下降沿用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,单片机自动在ALE/ 线上输出频率为1/6晶振频率的脉冲序列。

EA:外部程序存储器ROM的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。

VPP:允许访问片外存储器/编程电源线,当保持低电平时,则在此期间允许使用片外程序存储器,不管是否有内部程序存储器。当端保持高电平时,则允许使用片内程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接单片机片内OSC的定时反馈回路。

图4-1系统构成框图

在本设计中,电源部分由外接电源直接提供,所以没有设计电源模块,复位系统电路是由1个按键,1个电容和2个电阻组成;时钟振荡电路是由1个晶震和2个电容组成;键盘控制电路是由2按键组成独立键盘连接到单片机上完成按键功能;状态显示以及LED显示电路,由3个发光二极管和3个共阳极7段数码管以及电阻组成,用以完成设计中的状态显示功能和LED显示功能;控制电路是由PWM控制,用达林顿反向驱动器ULN2803控制风扇直流电机,主控制器采用单片机AT89C52单片机。所以本设计中用到的器件很少也很简单。

4.2数字温度传感器模块设计

DS18B20数字温度传感器通过其内部计数时钟周期来的作用,实现了特有的温度测量功能。低温系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数,计数器预先置有与-55℃相对应的一个基权值。如果计数器计数到0时,高温度系数振荡周期还未结束,则表示测量的温度值高于-55℃,被预置在-55℃的温度寄存器中的值就增加1℃,然后这个过程不断重复,直到高温度系数振荡周期结束为止。此时温度寄存器中的值即为被测温度值,这个值以16位二进制形式存放在存储器中,通过

主机发送存储器读命令可读出此温度值,读取时低位在前,高位在后,依次进行。由于温度振荡器的抛物线特性的影响,其内用斜率累加器进行补偿[6]。

DS18B20在使用时,一般都采用单片机来实现数据采集。只须将DS18B20信号线与单片机1位I/O线相连,且单片机的1位I/O线可挂接多个DS18B20,就可实现单点或多点温度检测[7]。

温度传感模块电路图如图4-2所示:

图4-2温度传感模块电路图

4.3键盘输入模块

键盘包括2个独立按键S2和S3,一端与单片机的P1.3和P1.4口相连,另一端接地,当按下任一键时,P1口读取低电平有效。系统上电后,进入键盘扫描子程序,以查询的方式确定各按键,完成温度初值的设定。其中按键S2为加按键,每按下一次,系统对最初设定值加一,按键S3为减按键,每按下一次,系统对初设定值进行减一计算。

键盘接线图如图如4-3所示:

图4-3键盘接线图

4.4温度显示与控制模块

本设计制作中选用5位共阴极数码管作为显示模块。其中前3位数码管DS1、DS2、DS3用于显示温度传感器实时检测采集到的温度,可精确到0.1摄氏度,显示范围为0~99.9摄氏度;后2位数码管DS4、DS5用于显示系统设置的初值温度,只能显示整数的温度值,显示范围为0~99摄氏度。5位数码管的段选a、b、c、d、e、f、g、dp线分别与单片机的P0.0~P0.7口连接,其中P0口需接一10K的上拉电阻,以使单片机的P0口能够输出高低电平。5位数码管的位选W1~W5分别与单片机的P2.0~P2.4口相连接,只要P2.0~P2.4中任一位中输出低电平,则选中与该位相连的数码管。

温度显示LED和单片机硬件的接口如图4-4所示:

图4-4数码显示接线图

4.5风扇电机驱动与调速电路

本设计中由单片机的I/O口输出PWM脉冲,通过一个达林顿反向驱动器ULN2803驱动12V直流无刷风扇电机以及实现风扇电机速度的调节。

键盘控制设置温度,通过软件向单片机输入相应控制指令,由单片机通过P3.1口输出与转速相应的PWM脉冲,经过ULN2803驱动风扇直流电机控制电路,实现电机转速的自动控制[8]。当环境温度升高时,直流电机的转速会相应按照设定的等级有所提高;当环境温度下降时,电机的转速会相应的下降;当环境温度低于设置温度时,电机停止转动,而环境温度又高于预设温度时,电机重新启动。

风扇电机的一端接12V电源,另一端接ULN2803的OUT7引脚,ULN2803的IN7引脚与单片机的P3.1引脚相连,通过控制单片机的P3.1引脚输出PWM信号,由此控制风扇直流电机的速度与启停。

风扇电机接线图如下图4-5所示:

图4-5风扇电机驱动与调速电

系统选用的风扇电机为12V直流无刷电机,单达林顿反向驱动器ULN2803输入TTL 信号为5V或CMOS信号为6~15V时,输出的最大电压为50V,最大电流为500mA,工作温度范围为0~70℃。本系统中单片机I/O口输出的TTL信号为5V,因此本设计的风扇电机用ULN2803来驱动。

4.6开关复位与晶振电路

在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。单片机上的XTAL1和XTAL2用来外接石英晶体和微调电容,即用来连接单片机片内OSC的定时反馈回路。本设计中开关复位与晶振电路如下图所示,当按下按键开关S1时,系统复位一次。其中电容C1、C2为20pF,C3为10uF,电阻R2、R3为10k,晶振为11.0592MHz。

系统复位与晶振电路如下图4-6所示:

相关文档
最新文档