65-温控自动风扇系统设计

精准温度显示的温控自动风扇系统

摘 要

本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统采用51系列单片机AT89C51 单片机作为控制平台对风扇转速进行控制。利用DS18B20数字温度传感器采集实时温度,经单片机处理后通过三极管驱动直流风扇的电机。根据采集的实时温度,实现了风扇的自起自停. 可由用户设置高、低温度值,测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。

关键词: 自动控制; 单片机; 温控; 风扇

目 录

摘 要................................................................................................................................................. 1

目 录................................................................................................................................................. 2

1引言................................................................................................................................................ 3

2 方案论证 . ...................................................................................................................................... 4

2.1 温度传感器的选用 . ........................................................................................................... 4

2.2 控制核心的选择 . ............................................................................................................... 5

2.3显示电路 . ............................................................................................................................ 5

2.4调速方式 . ............................................................................................................................ 6

3 系统简述 . ...................................................................................................................................... 7

4 硬件设计 . ...................................................................................................................................... 8

4.1 DS18B20 单线数字温度传感器简介 ............................................................................... 8

4.2 AT89C51单片机简介 ...................................................................................................... 15

4.3 八段LED 数码管 ........................................................................................................... 19

5 软件设计 . .................................................................................................................................. 21

参考文献 . ........................................................................................................................................ 23

1引言

生活中,我们经常会使用一些与温度有关的设备。比如,现在虽然不少城市家庭用上了空调,但在占中国大部分人口的农村地区依旧使用电风扇作为降温防暑设备,春夏(夏秋)交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。虽然电风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。又比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音,则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。为解决上述问题,我们设计了这套温控自动风扇系统。本系统采用高精度集成温度传感器,用单片机控制,能显示实时温度,并根据使用者设定的温度自动在相应温度时作出小风、大风、停机动作,精确度高,动作准确。

2 方案论证

本系统实现风扇的温度控制,需要有较高的温度变化分辨率和稳定可靠的换档停机控制部件。

2.1 温度传感器的选用

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

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

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

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

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

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

对于方案三,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转换等电路的误差因素,温度误差很小,并且由于其感测温度的原理与上述两种方案的原理有着本质的不同,使得其温度分辨力极高。温度值在器件

内部转换成数字量直接输出,简化了系统程序设计,又由于该传感器采用先进的单总线技术(1-WRIE ),与单片机的接口变的非常简洁,抗干扰能力强。关于DS18B20的详细参数参看下面“硬件设计”中的器件介绍。

2.2 控制核心的选择

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

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

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

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

2.3显示电路

方案一:采用数码管显示温度,动态扫描显示方式。

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

对于方案一,该方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地方是扫描显示方式是使数码管逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为20MS ,当数码管扫描周期小于这个时间时人眼将感觉不到闪烁,因此可以通过增大扫描频率来消除闪烁感。

对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字

符甚至图形的优点,这是LED 数码管无法比拟的。但是液晶显示模块价格昂贵,驱动程序复杂,从简单实用的原则考虑,本系统采用方案一。

2.4调速方式

方案一:采用变压器调节方式,运用电磁感应原理将220V 电压通过线圈降压到不同的电压,控制风扇电机接到不同电压值的线圈上可控制电机的转速,从而控制风扇风力大小。

方案二:采用三极管驱动PWM 进行控制。

对于方案一,由于采用变压器改变电压调节,有风速级别限制,不能适应人性化要求。且在变压过程中会有损耗发热,效率不高,发热有不安全因素。 对于方案二,PWM 的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。对噪声抵抗能力的增强是PWM 相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM 用于通信的主要原因。从模拟信号转向PWM 可以极大地延长通信距离。故本系统采用方案二。

3 系统简述

本系统由集成温度传感器、单片机、LED 数码管、三极管驱动电路及一些其他外围器件组成。使用具有价廉易购的AT89C51单片机编程控制,通过修改程序可方便实现系统升级。系统的框图结构如下:

图1 系统框图

4 硬件设计

系统主要部件包括DS18B20温度传感器、AT89C51单片机、LED 数码管和风扇。辅助元件包括电阻、晶振、电源、按键等。

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

温度传感器DS18B20。

DS18B20的简介

DS18B20是美国DALLAS 半导体器件公司推出的单总线数字化智能集成温度传感器。单总线(1-Wire)是DALLAS 公司的一项专有技术, 它采用单根信号线, 既传输时钟又传输数据, 而且数据传输是双向的, 具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。

DS18B20 的特点及内部构造

特点如下:

①采用独特的单总线接口方式,即只有一根信号线与控制器相连,实现数据的双向通信,不需要外部元件;

②测量结果直接输出数字温度信号,以单总线串行传送给控制器,同时可传送CRC 校验码,具有极强的抗干扰纠错能力;

③支持多点组网功能,多个DS18B20可以并联在唯一的三根线上,实现组网多点测量;

④适应电压范围宽3.0-5.5V ,不需要备份电源、可用数据线供电,温度测量范围为-55℃~125℃,-10℃~85℃时测量精度为±0.5℃;

⑤通过编程可实现9~12位的数字值读数方式,对应的可分辨温度分别为0.5℃,0.25℃,0.125℃,0.0625℃,实现高精度测温;

⑥负压特性。电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 封装图及内部构造,如下图所示。

图2-8 DS18B20外部结构框图

C V 图2-9 DS18B20内部结构框图

图2-10 DS18B20的封装

引脚功能如下:

NC:空引脚, 悬空不使用;

VDD:可选电源脚, 电源电压范围3~5.5V。工作于寄生电源时, 此引脚应接地; I/O:数据输入/输出脚, 漏极开路, 常态下高电平。

DS18B20采用3脚TO-92封装或8脚SOIC 及CSP 封装方式。图2-8所示为DS18B20的内部结构框图,它主要包括寄生电源、温度传感器、64位光刻ROM 及单总线接口、存放中间数据的高速暂存器(内含便笺式RAM )、存储与控制逻辑、用于存储用户设定的温度上下限值的TH 和TL 触发器、结构寄存器、8位循环冗余校验码(CRC )发生器等八部分。

64位ROM 的结构如图2-11所示,开始8位是产品类型的编号;接着是每个器件唯一的序号,共48位;最后8位是前面56位的CRC 检验码,这也是多个DS18B20可采用单线进行通信的原因。非易失性温度报警触发器TH 、TL ,可以通过编程写入用户报警上下线数据。

图2-11 64位ROM 示意图

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM 和一个非易失性的可电擦除的EEPROM 。

高速暂存RAM 的结构位9字节的存储器,结构如图2-12所示。前两个字节包括测得温度的信息。3、4字节是TH 和TL 的拷贝,是易失的,每次上电复位

时被刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换频率,DS18B20工作时按此寄存器中的分辨率将温度转换成相应精度的数值。该字节各位的定义如图2-13,其低5位一直为1;TM 是测试模式位,用于设置DS18B20在工作模式还是在检测模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R2决定温度转换的精度位数,即用来设置分辨率,

单片机可以通过单线接口读出该数据。的数据时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。

表b 温度值格式

低字节 高字节 表b 中,S 表示符号位。当S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当S=1时,表示测得的温度值为负值,要先将补码变成原码,在计算十进制值。表c 是部分温度值对应的二进制温度表示数据。

表c DS18B20温度与表示值对应表

温度/℃

+125

+85

+25.0625

+10.125

+0.5

-0.5

-10.125

-25.0625

-55 二进制 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 十六进制 07D0H 0550H 0191H 00A2H 0008H 0000H FFF8H FF5EH FF6FH FC90H

DS18B20完成温度转换后,就把测得的温度值与RAM 中的TH 、TL 字节内容对照,若T>TH或T

在64位ROM 的最高有效字节中存储有循环冗余检验码(CRC )。主机根据ROM 的前56位来计算CRC 值,并与存入DS18B20的CRC 值作比较,以判断主机收到的ROM 数据是否正确。

关于DS18B20的工作原理这里就不再多说,有感兴趣的可以查阅相关手册。 DS18B20的编程指令

DS18B20的指令有:读ROM (33H ),匹配ROM (55H ),跳过ROM (CCH ),搜索ROM (F0H ),报警搜索(ECH ),稳定转换(44H ),度暂存器(BEH ),写

暂存器(4EH ),复制暂存器(48H ),重调E2PROM (B8H ),读供电方式(B4H )。关于这些指令,这里也不再一一介绍,只把本设计用到的用法说一下。

CCH-跳过ROM 指令。忽略64位ROM 地址,直接向DS18B20发温度变换命令,适用于一个从机工作。

44H-温度转换指令。启动DS18B20进行温度转换,12位转换时最长为750ms (9位93.75ms )。结果存入内部9字节的RAM 中。

BEH-读暂存器指令。读内部RAM 中9字节的温度数据。

如图2-14所示,是DS18B20在电路中的接发,本设计采用的是单独电源供电方式,下面将介绍其工作时序,有工作时序图可以很清楚的知道该这样控制DS18B20。

图2-14 DS18B20的工作电路

工作时序

初始化时序,当主机将单总线P30从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60~120us完成,且在每个循环之间至少需要1us 的恢复时间。写0和写1时隙如图所示。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us 之释放总线。时序图如图2-15所示。

复位脉冲 480us

480us

图2-15 初始化时序图

具体步骤如下:

①先将数据线置高电平1。

②延时(时间应尽量短些)。

③数据线拉到低电平0。

④延时750 μs(该范围可以在480~960μs) 。

⑤数据线拉置高电平1.

⑥延时等待。如果初始化成功则在15~60ms 内产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。但是应注意,不能无限地等待,不然会使程序进入死循环,所以要进行超时判断。若CPU 读到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起(第5)步的时间算起)最少要480μs 。

⑦将数据线再次拉置高电平1后结束。

写数据时序

当主机将单总线P30从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60~120us完成,且在每个循环之间至少需要1us 的恢复时间。写0和写1时隙如图所示。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us 之释放总线。时序图见图2-16所示。

控制器写0时间隙

60us

具体步骤如下:

①数据线先置低电平0。

②延时确定时间为15μs 。按从低位到高位的顺序发送数据(一次只发送一位)。

③延时时间为45μs 。 ④将数据线拉到高电平1。

⑤重复①~⑤步骤,直到发送完整个字节。

⑥最后将数据线拉高到1。

读数据时序

DS18B20器件仅在主机发出读时隙时,才向主机传输数据。所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。所有的读时隙至少需要60us ,且在两次独立的读时隙之间,至少需要1us 的恢复时间。每个读时隙都由主机发起,至少拉低总线1us 。在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1,若DS18B20发送1,则保持总线为高电平。若发送为0,则拉低总线当发送0时,DS18B20在该时隙结束后,释放总线,由上

拉电阻将总线拉回至高电平状态。DS18B20发出的数据,在起始时隙之后保持有效时间为15us 。因而主机在读时隙期间,必须释放总线。并且在时隙起始后的15us 之内采样总线的状态。时序图见图2-17所示。

控制器读0时间隙 控制器读1时间隙

DS18B20采样 图2-16 写数据时序图 DS18B20采样

控制器采样 控制器采样

图2-17 读数据时序图

具体步骤如下:

①将数据线拉高到1。

②延时2μs 。

③将数据线拉低到0。

④延时6μs 。

⑤将数据线拉高到1。

⑥延时4μs 。

⑦读数据线的状态得到一个状态位,并进行数据处理。

⑧延时6μs 。

⑨重复①~⑦步骤,直到读取完一个数据。

4.2 AT89C51单片机简介

单片微型计算机(Single Chip Microcomputer)简称单片机,是指集成在一块芯片上的计算机,它具有结构简单、控制功能强、可靠性高、体积小、价格低、等优点。单片机技术作为计算机技术的一个重要分支,广泛地应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各领域。尽管单片机种类很多,但无论是从世界范围还是从全国范围来看,使用最为广泛的应属MCS-51系列单片机。其生产厂家有:Intel 公司、Atmel 公司、Philips 公司等。本设计采用Atmel 公司的AT89C51,其它厂家单片机这里不再多说,以下是对AT89C51的介绍。

Atmel 公司生产的AT89C51单片机是一种低功耗/低电压、高性能的8位单片机,内部除CPU 外,还包括128B 的内部用户数据存储器RAM ,4KB 的内部用户程序存储器,4个8位并行可编程I/0口,2个16位计数/定时器,5个中断源,2个优先级别,1个可编程的串行通信口。以下是对各部分的具体介绍:

内部介绍:

(1)中央处理器又称CPU ,是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

(2)数据存储器又称RAM ,C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM 只有128个,可存放读写的数据,运算的中间结果或用户定义的字型数据。并具有64KB 外部数据存储器寻址空间。

(3)程序存储器又称ROM ,C51共有4KB 的掩膜ROM ,用于存放用户程序,原始数据或表格。并具有64KB 外部程序存储器寻址空间。

(4)定时/计数器,C51有两个16位的可编程定时/计数器,称为定时器0(T0)和定时器1(T1)。T0有专用寄存器TH0和TL0组成,T10有专用寄存器TH1和TL1组成。并且可编程定时/计数器的工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定。

(5)中断系统,C51的中断功能较强,可满足控制应用的需要。共有5个中断源,即两个外中断、两个定时/计数器中断和一个串行中断,并具有两个优先级别的选择。

(6)时钟电路,C51内部有时钟电路,但石英晶体和微调电容需外接。用于产生整个单片机运行的脉冲时序,系统允许的晶振频率一般位6MHz 和12MHz ,在应用精度要求较高的场合一般选用11.0592MHz ,可以使定时器/计数器更精确。

以上是从C51单片机的内部介绍,下面再从外部看其结构。如图2-2所示。 外部介绍:

有外部结构图我们可以看到,C51单片机有40个管脚。正电源和地线两根,外置石英振荡器的时钟线两根,一个复位端RESET,/EA,ALE,/PSEN三根线,P0-P3共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:

(1)主电源引脚Vcc 和Vss

Vcc (40脚):主电源接+5V

Vss (20脚):接地

(2)时钟电路引脚XTAL1和XTAL2:接外部晶体振荡器的引线端。当使用芯片内部时钟时,两引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。这两个引脚连接的电路成为时钟电路,用来产生单片机正常工作时所需要的时钟脉冲信号。

(3)控制信号RST/Vpd、ALE/(/PROG) 、/ PSEN和 (/EA)/Vpp

RST/Vpd(9脚):复位端。高电平有效,保持在2个机器周期宽度以上,使

单片机复位,用于完成单片机的复位初始化操作。在进行单片机应用系统设计时,这个引脚一定要连接相应的电路,即复位电路。该引脚有复用功能,Vpd 为备用电源输入端,防止主电源掉电。

ALE/(/PROG)(30脚):地址锁存信号端。访问片外存贮器时,ALE 作低八位地址的锁存控制信号。平时不访问片外存贮器时,该端以六分之一的时钟振荡频率固定输出脉冲。ALE 端负载驱动能力为8个LSTTL 门。该引脚有复用功能, 为片内程序存贮器编程(固化)的编程脉冲输入。

/PSEN(29脚):片外程序存贮器读选通信号端。负载能力为8LSTTL 门。 (/EA)/Vpp(31脚):/EA端接高电平时,CPU 取指令从片内程序存贮器自动顺延至片外程序存贮器。 /EA端接低电平时,CPU 仅从片外程序存贮器取指令。该引脚有复用功能,Vpp 为片内程序存贮器编程时的编程电压。

(4)输入/输出引脚P0、P1、P2和P3口

P0.0~P0.7(39~32脚):访问片外存贮器时作为低八位地址线和八位数据线(复用)。负载能力为8个LSTTL 门。

P1.0~P1.7(1~8脚): 8位准双向I/O口。负载能力为3个LSTTL 门。 P2.0~P2.7(21~28脚):访问片外存贮器时作为高八位地址线。

P3.0~P3.7(10~17脚):8位准双向I/O口。负载能力为3个LSTTL 门。另外还有专门的第二功能。

P3口的第二功能是

P3.0(10脚): RXD(串行口输入端)

P3.1(11脚): TXD(串行口输出端)

P3.2(12脚): /INT0(外部中断0输入端)

P3.3(13脚): /INT1(外部中断1输入端)

P3.4(14脚): T0(定时器/计数器0外部输入端)

P3.5(15脚): T1(定时器/计数器1外部输入端)

P3.6(16脚): /WR(片外数据存贮器写选通信号输出端)

P3.7(17脚): /RD(片外数据存贮器读选通信号输出端)

89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。80C51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。

本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部

时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ 到12MHZ 之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF 到100pF 之间取值,但在60pF 到70pF 时振荡器有较高的频率稳定性。所以本设计中,振荡晶体选择6MHZ, 电容选择65pF 。

在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用NPO 电容。

89C51的复位是由外部的复位电路来实现的。复位引脚RST 通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2, 斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

复位电路通常采用上电自动复位和按钮复位两种方式。

最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc 的上升时间不超过1ms, 就可以实现自动上电复位。时钟频率用12MHZ 时C 取10uF,R 取10K Ω。

除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST 端经电阻与电源Vcc 接通而实现的。时钟频率选用12时,C 取10uF

下图是单片机工作的最小模块,如图2-3所示。

图单片机最小工作模块

4.3 八段LED 数码管

设计采用共阴极四位数码管显示数据,单片机P0口加上拉电阻驱动数码管的段码,数码管位选端可直接单片机,即可驱动点亮数码管。

数码管介绍:

LED 数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp 来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的

2个8数码管

字样了。如:显示一个“2”字,那么应当是a 亮b 亮g 亮e 亮d 亮f 不亮c 不亮dp 不亮。LED 数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的

尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V 左右,电流不超过30mA 。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED 数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A 、B 、C 、

D 、E 、F 。

led 数码管的结构及工作原理:

led 数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led 数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.... ,led 数码管根据LED 的接法不同分为共阴和共阳两类,了解LED 的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led 数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED 数码管内部引脚图片

10引脚的LED 数码管

图1 这是一个7段两位带小数点 10引脚的LED 数码管

LED 数码管引脚定义

图2引脚定义 :每一笔划都是对应一个字母表示 DP是小数点。LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED 数码管的驱动方式的不同,可以分为静态式和动态式两类。 本设计采用的是动态显示驱动:数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划

"a,b,c,d,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM 增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。

透过分时轮流控制各个LED 数码管的COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为1~2ms ,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。

5 软件设计

程序实现的功能是上电复位时检测温度传感器,将从DS18B20读取的二进制温度值转换为七段码在LED 上显示出来。

在温控自动状态,本系统可由用户根据需要自由设置大小风档的切换温度值TH ,TL ,硬件设计上为通过3个按键,由按键扫描子程序KEYSCAN 子程序提供软件支持。按下一次设置键K1,进入温度上限设置,此时按下“加”键K2,加一,按下“减”键K3,减1。再按一次设置键K2,进入温度下限设置状态,此时按下“加”键K2,加一,按下“减”键K3,减1。下限动作温度值TL 和上限动作温度值的设

置范围为10-100摄氏度,满足一般使用要求。再按一次设置键K3退出上下限温度设置状态,恢复到当前温度显示状态。

要实现根据当前温度实时的控制风扇的状态,需要在程序中不时的判断当前温度值是否超过设定的动作温度值范围。由于单片机的工作频率高达12MHz ,在执行程序时不断将当前温度和设定动作温度进行比较判断,当超过设定温度值范围时及时的转去执行超温处理和欠温处理子程序,控制风扇实时的切换到关闭、弱风、大风三个状态。

显示驱动程序以查七段码取得各数码管应显数字,逐位扫描显示。

参考文献

[1] 胡汉才. 单片机原理及其接口技术. 北京:清华大学出版社,2004

[2] 吴金戍, 沈庆阳, 郭庭吉.8051单片机实践与应用. 北京: 清华大学出版社,2002

[3] 求是科技. 单片机典型模块设计实例导航. 北京:人民邮电出版社,2004

[4] 王化详, 张淑英. 传感器原理. 天津:天津大学出版社,2002

[5] 荣俊昌. 新型电风扇原理与维修. 北京:高等教育出版社,2004

[6] 王港元. 电工电子实践指导. 江西:江西科学技术出版社,2005

精准温度显示的温控自动风扇系统

摘 要

本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统采用51系列单片机AT89C51 单片机作为控制平台对风扇转速进行控制。利用DS18B20数字温度传感器采集实时温度,经单片机处理后通过三极管驱动直流风扇的电机。根据采集的实时温度,实现了风扇的自起自停. 可由用户设置高、低温度值,测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。

关键词: 自动控制; 单片机; 温控; 风扇

目 录

摘 要................................................................................................................................................. 1

目 录................................................................................................................................................. 2

1引言................................................................................................................................................ 3

2 方案论证 . ...................................................................................................................................... 4

2.1 温度传感器的选用 . ........................................................................................................... 4

2.2 控制核心的选择 . ............................................................................................................... 5

2.3显示电路 . ............................................................................................................................ 5

2.4调速方式 . ............................................................................................................................ 6

3 系统简述 . ...................................................................................................................................... 7

4 硬件设计 . ...................................................................................................................................... 8

4.1 DS18B20 单线数字温度传感器简介 ............................................................................... 8

4.2 AT89C51单片机简介 ...................................................................................................... 15

4.3 八段LED 数码管 ........................................................................................................... 19

5 软件设计 . .................................................................................................................................. 21

参考文献 . ........................................................................................................................................ 23

1引言

生活中,我们经常会使用一些与温度有关的设备。比如,现在虽然不少城市家庭用上了空调,但在占中国大部分人口的农村地区依旧使用电风扇作为降温防暑设备,春夏(夏秋)交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。虽然电风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。又比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音,则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。为解决上述问题,我们设计了这套温控自动风扇系统。本系统采用高精度集成温度传感器,用单片机控制,能显示实时温度,并根据使用者设定的温度自动在相应温度时作出小风、大风、停机动作,精确度高,动作准确。

2 方案论证

本系统实现风扇的温度控制,需要有较高的温度变化分辨率和稳定可靠的换档停机控制部件。

2.1 温度传感器的选用

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

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

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

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

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

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

对于方案三,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转换等电路的误差因素,温度误差很小,并且由于其感测温度的原理与上述两种方案的原理有着本质的不同,使得其温度分辨力极高。温度值在器件

内部转换成数字量直接输出,简化了系统程序设计,又由于该传感器采用先进的单总线技术(1-WRIE ),与单片机的接口变的非常简洁,抗干扰能力强。关于DS18B20的详细参数参看下面“硬件设计”中的器件介绍。

2.2 控制核心的选择

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

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

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

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

2.3显示电路

方案一:采用数码管显示温度,动态扫描显示方式。

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

对于方案一,该方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地方是扫描显示方式是使数码管逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为20MS ,当数码管扫描周期小于这个时间时人眼将感觉不到闪烁,因此可以通过增大扫描频率来消除闪烁感。

对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字

符甚至图形的优点,这是LED 数码管无法比拟的。但是液晶显示模块价格昂贵,驱动程序复杂,从简单实用的原则考虑,本系统采用方案一。

2.4调速方式

方案一:采用变压器调节方式,运用电磁感应原理将220V 电压通过线圈降压到不同的电压,控制风扇电机接到不同电压值的线圈上可控制电机的转速,从而控制风扇风力大小。

方案二:采用三极管驱动PWM 进行控制。

对于方案一,由于采用变压器改变电压调节,有风速级别限制,不能适应人性化要求。且在变压过程中会有损耗发热,效率不高,发热有不安全因素。 对于方案二,PWM 的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。对噪声抵抗能力的增强是PWM 相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM 用于通信的主要原因。从模拟信号转向PWM 可以极大地延长通信距离。故本系统采用方案二。

3 系统简述

本系统由集成温度传感器、单片机、LED 数码管、三极管驱动电路及一些其他外围器件组成。使用具有价廉易购的AT89C51单片机编程控制,通过修改程序可方便实现系统升级。系统的框图结构如下:

图1 系统框图

4 硬件设计

系统主要部件包括DS18B20温度传感器、AT89C51单片机、LED 数码管和风扇。辅助元件包括电阻、晶振、电源、按键等。

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

温度传感器DS18B20。

DS18B20的简介

DS18B20是美国DALLAS 半导体器件公司推出的单总线数字化智能集成温度传感器。单总线(1-Wire)是DALLAS 公司的一项专有技术, 它采用单根信号线, 既传输时钟又传输数据, 而且数据传输是双向的, 具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。

DS18B20 的特点及内部构造

特点如下:

①采用独特的单总线接口方式,即只有一根信号线与控制器相连,实现数据的双向通信,不需要外部元件;

②测量结果直接输出数字温度信号,以单总线串行传送给控制器,同时可传送CRC 校验码,具有极强的抗干扰纠错能力;

③支持多点组网功能,多个DS18B20可以并联在唯一的三根线上,实现组网多点测量;

④适应电压范围宽3.0-5.5V ,不需要备份电源、可用数据线供电,温度测量范围为-55℃~125℃,-10℃~85℃时测量精度为±0.5℃;

⑤通过编程可实现9~12位的数字值读数方式,对应的可分辨温度分别为0.5℃,0.25℃,0.125℃,0.0625℃,实现高精度测温;

⑥负压特性。电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 封装图及内部构造,如下图所示。

图2-8 DS18B20外部结构框图

C V 图2-9 DS18B20内部结构框图

图2-10 DS18B20的封装

引脚功能如下:

NC:空引脚, 悬空不使用;

VDD:可选电源脚, 电源电压范围3~5.5V。工作于寄生电源时, 此引脚应接地; I/O:数据输入/输出脚, 漏极开路, 常态下高电平。

DS18B20采用3脚TO-92封装或8脚SOIC 及CSP 封装方式。图2-8所示为DS18B20的内部结构框图,它主要包括寄生电源、温度传感器、64位光刻ROM 及单总线接口、存放中间数据的高速暂存器(内含便笺式RAM )、存储与控制逻辑、用于存储用户设定的温度上下限值的TH 和TL 触发器、结构寄存器、8位循环冗余校验码(CRC )发生器等八部分。

64位ROM 的结构如图2-11所示,开始8位是产品类型的编号;接着是每个器件唯一的序号,共48位;最后8位是前面56位的CRC 检验码,这也是多个DS18B20可采用单线进行通信的原因。非易失性温度报警触发器TH 、TL ,可以通过编程写入用户报警上下线数据。

图2-11 64位ROM 示意图

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM 和一个非易失性的可电擦除的EEPROM 。

高速暂存RAM 的结构位9字节的存储器,结构如图2-12所示。前两个字节包括测得温度的信息。3、4字节是TH 和TL 的拷贝,是易失的,每次上电复位

时被刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换频率,DS18B20工作时按此寄存器中的分辨率将温度转换成相应精度的数值。该字节各位的定义如图2-13,其低5位一直为1;TM 是测试模式位,用于设置DS18B20在工作模式还是在检测模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R2决定温度转换的精度位数,即用来设置分辨率,

单片机可以通过单线接口读出该数据。的数据时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。

表b 温度值格式

低字节 高字节 表b 中,S 表示符号位。当S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当S=1时,表示测得的温度值为负值,要先将补码变成原码,在计算十进制值。表c 是部分温度值对应的二进制温度表示数据。

表c DS18B20温度与表示值对应表

温度/℃

+125

+85

+25.0625

+10.125

+0.5

-0.5

-10.125

-25.0625

-55 二进制 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 十六进制 07D0H 0550H 0191H 00A2H 0008H 0000H FFF8H FF5EH FF6FH FC90H

DS18B20完成温度转换后,就把测得的温度值与RAM 中的TH 、TL 字节内容对照,若T>TH或T

在64位ROM 的最高有效字节中存储有循环冗余检验码(CRC )。主机根据ROM 的前56位来计算CRC 值,并与存入DS18B20的CRC 值作比较,以判断主机收到的ROM 数据是否正确。

关于DS18B20的工作原理这里就不再多说,有感兴趣的可以查阅相关手册。 DS18B20的编程指令

DS18B20的指令有:读ROM (33H ),匹配ROM (55H ),跳过ROM (CCH ),搜索ROM (F0H ),报警搜索(ECH ),稳定转换(44H ),度暂存器(BEH ),写

暂存器(4EH ),复制暂存器(48H ),重调E2PROM (B8H ),读供电方式(B4H )。关于这些指令,这里也不再一一介绍,只把本设计用到的用法说一下。

CCH-跳过ROM 指令。忽略64位ROM 地址,直接向DS18B20发温度变换命令,适用于一个从机工作。

44H-温度转换指令。启动DS18B20进行温度转换,12位转换时最长为750ms (9位93.75ms )。结果存入内部9字节的RAM 中。

BEH-读暂存器指令。读内部RAM 中9字节的温度数据。

如图2-14所示,是DS18B20在电路中的接发,本设计采用的是单独电源供电方式,下面将介绍其工作时序,有工作时序图可以很清楚的知道该这样控制DS18B20。

图2-14 DS18B20的工作电路

工作时序

初始化时序,当主机将单总线P30从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60~120us完成,且在每个循环之间至少需要1us 的恢复时间。写0和写1时隙如图所示。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us 之释放总线。时序图如图2-15所示。

复位脉冲 480us

480us

图2-15 初始化时序图

具体步骤如下:

①先将数据线置高电平1。

②延时(时间应尽量短些)。

③数据线拉到低电平0。

④延时750 μs(该范围可以在480~960μs) 。

⑤数据线拉置高电平1.

⑥延时等待。如果初始化成功则在15~60ms 内产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。但是应注意,不能无限地等待,不然会使程序进入死循环,所以要进行超时判断。若CPU 读到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起(第5)步的时间算起)最少要480μs 。

⑦将数据线再次拉置高电平1后结束。

写数据时序

当主机将单总线P30从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60~120us完成,且在每个循环之间至少需要1us 的恢复时间。写0和写1时隙如图所示。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us 之释放总线。时序图见图2-16所示。

控制器写0时间隙

60us

具体步骤如下:

①数据线先置低电平0。

②延时确定时间为15μs 。按从低位到高位的顺序发送数据(一次只发送一位)。

③延时时间为45μs 。 ④将数据线拉到高电平1。

⑤重复①~⑤步骤,直到发送完整个字节。

⑥最后将数据线拉高到1。

读数据时序

DS18B20器件仅在主机发出读时隙时,才向主机传输数据。所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。所有的读时隙至少需要60us ,且在两次独立的读时隙之间,至少需要1us 的恢复时间。每个读时隙都由主机发起,至少拉低总线1us 。在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1,若DS18B20发送1,则保持总线为高电平。若发送为0,则拉低总线当发送0时,DS18B20在该时隙结束后,释放总线,由上

拉电阻将总线拉回至高电平状态。DS18B20发出的数据,在起始时隙之后保持有效时间为15us 。因而主机在读时隙期间,必须释放总线。并且在时隙起始后的15us 之内采样总线的状态。时序图见图2-17所示。

控制器读0时间隙 控制器读1时间隙

DS18B20采样 图2-16 写数据时序图 DS18B20采样

控制器采样 控制器采样

图2-17 读数据时序图

具体步骤如下:

①将数据线拉高到1。

②延时2μs 。

③将数据线拉低到0。

④延时6μs 。

⑤将数据线拉高到1。

⑥延时4μs 。

⑦读数据线的状态得到一个状态位,并进行数据处理。

⑧延时6μs 。

⑨重复①~⑦步骤,直到读取完一个数据。

4.2 AT89C51单片机简介

单片微型计算机(Single Chip Microcomputer)简称单片机,是指集成在一块芯片上的计算机,它具有结构简单、控制功能强、可靠性高、体积小、价格低、等优点。单片机技术作为计算机技术的一个重要分支,广泛地应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各领域。尽管单片机种类很多,但无论是从世界范围还是从全国范围来看,使用最为广泛的应属MCS-51系列单片机。其生产厂家有:Intel 公司、Atmel 公司、Philips 公司等。本设计采用Atmel 公司的AT89C51,其它厂家单片机这里不再多说,以下是对AT89C51的介绍。

Atmel 公司生产的AT89C51单片机是一种低功耗/低电压、高性能的8位单片机,内部除CPU 外,还包括128B 的内部用户数据存储器RAM ,4KB 的内部用户程序存储器,4个8位并行可编程I/0口,2个16位计数/定时器,5个中断源,2个优先级别,1个可编程的串行通信口。以下是对各部分的具体介绍:

内部介绍:

(1)中央处理器又称CPU ,是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

(2)数据存储器又称RAM ,C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM 只有128个,可存放读写的数据,运算的中间结果或用户定义的字型数据。并具有64KB 外部数据存储器寻址空间。

(3)程序存储器又称ROM ,C51共有4KB 的掩膜ROM ,用于存放用户程序,原始数据或表格。并具有64KB 外部程序存储器寻址空间。

(4)定时/计数器,C51有两个16位的可编程定时/计数器,称为定时器0(T0)和定时器1(T1)。T0有专用寄存器TH0和TL0组成,T10有专用寄存器TH1和TL1组成。并且可编程定时/计数器的工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定。

(5)中断系统,C51的中断功能较强,可满足控制应用的需要。共有5个中断源,即两个外中断、两个定时/计数器中断和一个串行中断,并具有两个优先级别的选择。

(6)时钟电路,C51内部有时钟电路,但石英晶体和微调电容需外接。用于产生整个单片机运行的脉冲时序,系统允许的晶振频率一般位6MHz 和12MHz ,在应用精度要求较高的场合一般选用11.0592MHz ,可以使定时器/计数器更精确。

以上是从C51单片机的内部介绍,下面再从外部看其结构。如图2-2所示。 外部介绍:

有外部结构图我们可以看到,C51单片机有40个管脚。正电源和地线两根,外置石英振荡器的时钟线两根,一个复位端RESET,/EA,ALE,/PSEN三根线,P0-P3共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:

(1)主电源引脚Vcc 和Vss

Vcc (40脚):主电源接+5V

Vss (20脚):接地

(2)时钟电路引脚XTAL1和XTAL2:接外部晶体振荡器的引线端。当使用芯片内部时钟时,两引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。这两个引脚连接的电路成为时钟电路,用来产生单片机正常工作时所需要的时钟脉冲信号。

(3)控制信号RST/Vpd、ALE/(/PROG) 、/ PSEN和 (/EA)/Vpp

RST/Vpd(9脚):复位端。高电平有效,保持在2个机器周期宽度以上,使

单片机复位,用于完成单片机的复位初始化操作。在进行单片机应用系统设计时,这个引脚一定要连接相应的电路,即复位电路。该引脚有复用功能,Vpd 为备用电源输入端,防止主电源掉电。

ALE/(/PROG)(30脚):地址锁存信号端。访问片外存贮器时,ALE 作低八位地址的锁存控制信号。平时不访问片外存贮器时,该端以六分之一的时钟振荡频率固定输出脉冲。ALE 端负载驱动能力为8个LSTTL 门。该引脚有复用功能, 为片内程序存贮器编程(固化)的编程脉冲输入。

/PSEN(29脚):片外程序存贮器读选通信号端。负载能力为8LSTTL 门。 (/EA)/Vpp(31脚):/EA端接高电平时,CPU 取指令从片内程序存贮器自动顺延至片外程序存贮器。 /EA端接低电平时,CPU 仅从片外程序存贮器取指令。该引脚有复用功能,Vpp 为片内程序存贮器编程时的编程电压。

(4)输入/输出引脚P0、P1、P2和P3口

P0.0~P0.7(39~32脚):访问片外存贮器时作为低八位地址线和八位数据线(复用)。负载能力为8个LSTTL 门。

P1.0~P1.7(1~8脚): 8位准双向I/O口。负载能力为3个LSTTL 门。 P2.0~P2.7(21~28脚):访问片外存贮器时作为高八位地址线。

P3.0~P3.7(10~17脚):8位准双向I/O口。负载能力为3个LSTTL 门。另外还有专门的第二功能。

P3口的第二功能是

P3.0(10脚): RXD(串行口输入端)

P3.1(11脚): TXD(串行口输出端)

P3.2(12脚): /INT0(外部中断0输入端)

P3.3(13脚): /INT1(外部中断1输入端)

P3.4(14脚): T0(定时器/计数器0外部输入端)

P3.5(15脚): T1(定时器/计数器1外部输入端)

P3.6(16脚): /WR(片外数据存贮器写选通信号输出端)

P3.7(17脚): /RD(片外数据存贮器读选通信号输出端)

89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。80C51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。

本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部

时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ 到12MHZ 之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF 到100pF 之间取值,但在60pF 到70pF 时振荡器有较高的频率稳定性。所以本设计中,振荡晶体选择6MHZ, 电容选择65pF 。

在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用NPO 电容。

89C51的复位是由外部的复位电路来实现的。复位引脚RST 通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2, 斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

复位电路通常采用上电自动复位和按钮复位两种方式。

最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc 的上升时间不超过1ms, 就可以实现自动上电复位。时钟频率用12MHZ 时C 取10uF,R 取10K Ω。

除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST 端经电阻与电源Vcc 接通而实现的。时钟频率选用12时,C 取10uF

下图是单片机工作的最小模块,如图2-3所示。

图单片机最小工作模块

4.3 八段LED 数码管

设计采用共阴极四位数码管显示数据,单片机P0口加上拉电阻驱动数码管的段码,数码管位选端可直接单片机,即可驱动点亮数码管。

数码管介绍:

LED 数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp 来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的

2个8数码管

字样了。如:显示一个“2”字,那么应当是a 亮b 亮g 亮e 亮d 亮f 不亮c 不亮dp 不亮。LED 数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的

尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V 左右,电流不超过30mA 。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED 数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A 、B 、C 、

D 、E 、F 。

led 数码管的结构及工作原理:

led 数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led 数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.... ,led 数码管根据LED 的接法不同分为共阴和共阳两类,了解LED 的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led 数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED 数码管内部引脚图片

10引脚的LED 数码管

图1 这是一个7段两位带小数点 10引脚的LED 数码管

LED 数码管引脚定义

图2引脚定义 :每一笔划都是对应一个字母表示 DP是小数点。LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED 数码管的驱动方式的不同,可以分为静态式和动态式两类。 本设计采用的是动态显示驱动:数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划

"a,b,c,d,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM 增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。

透过分时轮流控制各个LED 数码管的COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为1~2ms ,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。

5 软件设计

程序实现的功能是上电复位时检测温度传感器,将从DS18B20读取的二进制温度值转换为七段码在LED 上显示出来。

在温控自动状态,本系统可由用户根据需要自由设置大小风档的切换温度值TH ,TL ,硬件设计上为通过3个按键,由按键扫描子程序KEYSCAN 子程序提供软件支持。按下一次设置键K1,进入温度上限设置,此时按下“加”键K2,加一,按下“减”键K3,减1。再按一次设置键K2,进入温度下限设置状态,此时按下“加”键K2,加一,按下“减”键K3,减1。下限动作温度值TL 和上限动作温度值的设

置范围为10-100摄氏度,满足一般使用要求。再按一次设置键K3退出上下限温度设置状态,恢复到当前温度显示状态。

要实现根据当前温度实时的控制风扇的状态,需要在程序中不时的判断当前温度值是否超过设定的动作温度值范围。由于单片机的工作频率高达12MHz ,在执行程序时不断将当前温度和设定动作温度进行比较判断,当超过设定温度值范围时及时的转去执行超温处理和欠温处理子程序,控制风扇实时的切换到关闭、弱风、大风三个状态。

显示驱动程序以查七段码取得各数码管应显数字,逐位扫描显示。

参考文献

[1] 胡汉才. 单片机原理及其接口技术. 北京:清华大学出版社,2004

[2] 吴金戍, 沈庆阳, 郭庭吉.8051单片机实践与应用. 北京: 清华大学出版社,2002

[3] 求是科技. 单片机典型模块设计实例导航. 北京:人民邮电出版社,2004

[4] 王化详, 张淑英. 传感器原理. 天津:天津大学出版社,2002

[5] 荣俊昌. 新型电风扇原理与维修. 北京:高等教育出版社,2004

[6] 王港元. 电工电子实践指导. 江西:江西科学技术出版社,2005


相关内容

  • 智能温控调速风扇的设计
  • 第12卷第4期2009年12月 上海电机学院学报 J OURNAL OF SHANGHA I D I AN JI UN I RS I TY ol .12No.4D ec . 2009文章编号1671-2730 2009 04-0297-04 智能温控调速风扇的设计 陈富忠1! 翁桂琴2 ! 1. 上 ...

  • 汽车硅油风扇离合器性能试验方法研究和测试台研制
  • 装备维修技术><2007年第4期(总期第126期)性能试验方法研究和测试台研制 刘兴武,王鼎星 (武汉火花电加工科技有限公司430015) 摘 要:通过对汽车硅油风扇离合器工况的模拟和高效测试方法的研究,研制测试其各项技术参数的数控自动 测试台.实现对产品性能的自动.高效.准确的判定. ...

  • 智能风扇控制器设计
  • 智能风扇控制器设计 设计总说明 随着科技的进步,大家对各种家用电器的舒适度要求越来越高.温控风扇 在现代社会中的生产以及人们的日常生活中都有广泛的应用,如工业生产中大 型机械散热系统中的风扇.现在笔记本电脑上的广泛应用的智能CPU风扇等. 本文设计了基于单片机的温控风扇系统,主要针对家用的交流风扇. ...

  • 美菱两门冰箱不够冻!
  • 维修实例: 上菱BCD208W双门双控无霜冰箱:冰箱不工作,箱内食物开始解冻,不明原因. 检查压机无电压,温控器正常,冷藏室检查化霜定时器在化霜位置,用针挑开标签,见孔一捅,化霜定时器复位,冰箱工作, 一天后又不工作,化霜定时器还在化霜位置,说明化霜部件:加热管 双金属开关 温度保险有故障. 取下制 ...

  • 麦克维尔温控器产品技术手册
  • Engineered for flexibility and performance.TM 2012 McQuay International.All rights reserved.c 2012 麦克维尔国际公司,版权所有. c 是麦克维尔在美国和其它国家的注册商标,拥有全世界承认的商标权.事先没 ...

  • 台达温控器PID控制原理和
  • 台达温控器PID控制原理和在塑料机械上的应用 类别:行业知识 发布时间:2008-1-25 阅读:1100 摘 要:塑料制品在生产生活中无处不在.塑料生产设备多种多样.多数利用热塑性原理工作的塑料生产设备的设备都会用到温度控制器.本文以塑料挤出机为例介绍台达温控的PID控制原理及应用. 关 键 词: ...

  • 散热风扇知识点 (很全)
  • 风扇的分类: 散热风扇通常分为以下三类: 1轴流式:气流出口方向与轴心方向相同. 2离心式:利用离心力作用将气流沿着叶片向外甩出. 3混流式:拥有以上两种气流方式. 风扇的分类: 散热风扇通常分为以下三类: 1 轴流式:气流出口方向与轴心方向相同. 2 离心式:利用离心力作用将气流沿着叶片向外甩出. ...

  • 螺杆压缩机排气温度高原因分析
  • 仪表风螺杆压缩机排气温度高原因分析 杨青树 (大庆油田化工有限公司甲醇分公司动力车间 黑龙江省大庆市马鞍山163411) 摘 要:通过对EP200型仪表分螺杆压缩机排气温度高的现象进行分析,讨论了仪表风螺杆压缩机排气温度高的原因及影响因素,提出了具体的解决方法. 关键词:温控阀 温度传感器 控制器 ...

  • 空调基本知识
  • 空调器是空气调节器的简称,它是按照人们的要求,把室内或某个场所的空气调节到所需要的状态.调节的内容包括温度.湿度.气流以及除尘和污染空气的排除等一.按功能分类 空调器根据功能可以分为单冷型和冷热两用型.单冷型空调器将室内热湿空气吸入,经蒸发器将其中的水蒸气冷凝,然后将干燥.凉爽的空气送入室内,起到降 ...