基于51单片机的温控风扇毕业设计.doc
基于51单片机的温控风扇毕业设计目录前言1第1章绪论21.1 研究本课题的目的和意义21.2 发展现状2第2章整体方案选择42.1 温度传感器的选用42.2 主控机的选择62.3显示电路62.4调速方式7第3章系统硬件组成83.1 系统结构83.2 主控芯片介绍83.2.1 STC89C51简介83.2.2 STC89C51主要功能和性能参数93.2.3 STC89C51单片机引脚说明103.2.4 STC89C51单片机最小系统123.2.5 STC89C51中断技术概述143.3 DS18B20温度采集电路153.3.1 DS18B20 的特点与部构造153.3.3 DS18B20的工作原理173.3.3 DS18B20的工作时序193.4 数码管驱动显示电路223.4.1 数码管驱动电路223.4.2 数码管显示电路233.5 风扇驱动电路243.6 按键模块26第4章系统软件设计284.1 软件介绍284.1.1 Keil C51284.1.2 Protel99SE294.1.3 Proteus304.2 主程序流程图324.3 DS18B20子程序流程图334.4 数码管显示子程序流程图344.5 按键子程序流程图35第5章系统调试375.1 软硬件调试375.1.1 按键显示部分的调试375.1.2 传感器DS18B20温度采集部分调试375.1.3 风扇调速电路部分调试385.2 系统功能385.2.1 系统实现的功能385.2.2 系统功能分析39结论40谢辞41参考文献42附录43附录1:protel原理图43附录2:proteus仿真图44附录3:源程序45外文资料译文5251 / 55前言在现代社会中,风扇被广泛的应用,发挥着举足轻重的作用,如夏天人们用的散热风扇、工业生产中大型机械中的散热风扇以与现在笔记本电脑上广泛使用的智能CPU风扇等。而随着温度控制技术的发展,为了降低风扇运转时的噪音以与节省能源等,温控风扇越来越受到重视并被广泛的应用。随着单片机在各个领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。它使风扇根据环境温度的变化实现自动启停,使风扇转速随着环境温度的变化而变化,实现了风扇的智能控制。它的设计为现代社会人们的生活以与生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风扇运转所需的能量。本文设计了基于单片机的温控风扇系统,用单片机为控制器,利用温度传感器DS18B20作为温度采集元件,并根据采集到的温度,通过两个三极管驱动风扇电机。根据检测到的温度与系统设定的温度比较实现风扇电机的自动启动和停止,并能根据温度的变化自动改变风扇电机的转速档位,同时用LED八段数码管显示检测到的温度与当前档位。系统的预设温度的设置是通过三个独立按键来实现的,一个是设置按键,一个是增大预设温度,一个是减小预设温度。第1章 绪论1.1 研究本课题的目的和意义生活中,我们经常会使用一些与温度有关的设备。比如,现在虽然不少城市家庭用上了空调,但在占中国大部分人口的农村地区依旧使用电风扇作为降温防暑设备,春夏(夏秋)交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。虽然风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。又比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音,则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。为解决上述问题,我们设计了这套温控风扇系统。本系统采用高精度集成温度传感器,用单片机控制,能显示实时温度,并根据使用者设定的温度自动在相应温度时作出小风、大风、停机动作,精确度高,动作准确。1.2 发展现状当今社会已经完全进入了电子信息化,温度控制器在各行各业中已经得到了充分的利用。具有对温度进行实时监控的功能,以保证工业仪器,测量工具,农业种植的正常运作,它的最大特点是能实时监控周围温度的高低,并能同时控制电机运作来改变温度。它的广泛应用和普与给人们的日常生活带来了方便。 温控风扇是用单片机系统来完成的一个小型的控制系统。现阶段运用与国大部分家庭,系统效率越来越高,成本也越来越低。其发展趋势可以根据其性质进行相应的改进可以运用与不同场合的温度监测控制,并带来大量的经济效益。第2章 整体方案选择2.1 温度传感器的选用温度传感器可由以下几种方案可供选择:方案一:选用热敏电阻作为感测温度的核心元件,通过运算放大器放大由于温度变化引起热敏电阻电阻的变化、进而导至的输出电压变化的微弱电压变化信号,再用AD转换芯片ADC0809将模拟信号转化为数字信号输入单片机处理。具体方案如果2-1图2-1 热敏温度采集电路方案二:采用热电偶作为感测温度的核心元件,配合桥式电路,运算放大电路和AD转换电路,将温度变化信号送入单片机处理。此方案原理和方案一的原理小异,AD转换电路一样,就是模拟量输入的处理方式不一样,热电偶的还需要配合桥式电路,整体更加复杂点,但是此方案的测温围更广。方案三:采用数字式集成温度传感器DS18B20作为感测温度的核心元件,直接输出数字温度信号供单片机处理。图2-2 DS18B20温度采电路对于方案一,采用热敏电阻有价格便宜、元件易购的优点,但热敏电阻对温度的细微变化不敏感,AD0809也只有8位,所以显示温度也只能显示到度,不能显示到小数。在信号采集、放大、转换过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其本身电阻对温度的变化存在较大误差,虽然可以通过一定电路予以纠正,但不仅将使电路复杂稳定性降低,而且在人体所处温度环境温度变化中难以检测到小的温度变化。故该方案不适合本系统。对于方案二,采用热电偶和桥式测量电路相对于热敏电阻其对温度的敏感性和器件的非线性误差都有较大提高,其测温围也非常宽,从-50摄氏度到1600摄氏度均可测量。但是依然存在电路复杂,对温度敏感性达不到本系统要求的标准,故不采用该方案。对于方案三,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转换等电路的误差因素,温度误差很小,并且由于其感测温度的原理与上述两种方案的原理有着本质的不同,使得其温度分辨力极高。温度值在器件部转换成数字量直接输出,简化了系统程序设计,又由于该传感器采用先进的单总线技术(1-WRIE),与单片机的接口变的非常简洁,抗干扰能力强。关于DS18B20的详细参数参看下面“硬件设计”中的器件介绍。2.2 主控机的选择方案一:采用凌阳系列单片机作为系统的控制器,凌阳系列单片机可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性。凌阳系列单片机提高了系统的处理速度,适合作为大规模实时系统的控制核心。方案二:采用单片机作为控制核心。以软件编程的方法进行温度判断,并在端口输出控制信号。因51单片机价格比凌阳系列低得多,且本设计不需要很高的处理速度,从经济和方便使用角度考虑,本设计选择了方案二。对于方案二,以单片机作为控制器,通过编写程序不但能将传感器感测到的温度通过显示电路显示出来,而且用户能通过键盘接口,自由设置上下限动作温度值,满足全方位的需求。并且通过程序判断温度具有极高的精准度,能精确把握环境温度的微小变化。故本系统采用方案二。2.3显示电路方案一:采用数码管显示温度,动态扫描显示方式。采用LED数码管这种方案。虽然显示的容有限,但是也可以显示数字和几个英文字母,在这个设计中已经足够了,并且价格比液晶字符式要低的多,为了控制设计制作的成本,在此设计中选用LED数码管显示。方案二:采用液晶显示屏LCD显示温度。显示用液晶字符式,可以用软件达到很好的控制,硬件不复杂,液晶字符显示器可以显示很丰富的容,但是液晶字符式价格昂贵。对于方案一,该方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地方是扫描显示方式是使数码管逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为20MS,当数码管扫描周期小于这个时间时人眼将感觉不到闪烁,因此可以通过增大扫描频率来消除闪烁感。对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点,这是LED数码管无法比拟的。但是液晶显示模块价格昂贵,驱动程序复杂,从简单实用的原则考虑,本系统采用方案一。2.4调速方式方案一:采用变压器调节方式,运用电磁感应原理将220V电压通过线圈降压到不同的电压,控制风扇电机接到不同电压值的线圈上可控制电机的转速,从而控制风扇风力大小。方案二:采用三极管驱动PWM进行控制。对于方案一,由于采用变压器改变电压调节,有风速级别限制,不能适应人性化要求。且在变压过程中会有损耗发热,效率不高,发热有不安全因素。对于方案二,PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。故本系统采用方案二。第3章 系统硬件组成3.1 系统结构本系统由集成温度传感器、单片机、LED数码管、三极管驱动电路与一些其他外围器件组成。使用具有价廉易购的STC89C51单片机编程控制,通过修改程序可方便实现系统升级。系统的框图结构如下:数码管显示数码管驱动电路单片机复位电路晶振电路风扇风扇驱动电路温度采集电路按键设置电路图3-1 系统框图3.2 主控芯片介绍3.2.1 STC89C51简介STC89C51是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能:4k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。图3-2 STC89C51单片机引脚图单片机是美国STC公司最新推出的一种新型51核的单片机。片含有Flash程序存储器、SRAM、UART、SPI、PWM等模块。3.2.2 STC89C51主要功能和性能参数(1)置标准51核,机器周期:增强型为6时钟,普通型为12时钟;(2)工作频率围:040MHZ,相当于普通8051的080MHZ;(3)STC89C51RC对应Flash空间:4KB;(4)部存储器(RAM):512B;(5)定时器计数器:3个16位;(6)通用异步通信口(UART)1个;(7)中断源:8个;(8)有ISP(在系统可编程)IAP(在应用可编程),无需专用编程器仿真器;(9)通用IO口:3236个;(10)工作电压:3.85.5V;(11)外形封装:40脚PDIP、44脚PLCC和PQFP等。3.2.3 STC89C51单片机引脚说明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.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的容读入到部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到部总线。上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。89C51的P0/P1/P2/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:来自反向振荡器的输出。3.2.4 STC89C51单片机最小系统最小系统包括单片机与其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。STC89C51是片有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,结构如图2-3所示,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。时钟电路复位电路STC89C51I/0口时钟电路复位电路51系列单片机I/O接口图3-3 单片机最小系统原理框图1. 时钟电路STC89C51单片机的时钟信号通常有两种方式产生:一是部时钟方式,二是外部时钟方式。部时钟方式如图2-4所示。在STC89C51单片机部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在530pF,典型值为30pF。晶振CYS的振荡频率围在1.212MHz间选择,典型值为12MHz和6MHz。图3-4 STC89C51部时钟电路2. 复位电路当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端与电源Vcc接通而实现的。按键手动复位电路见图2-5。时钟频率用11.0592MHZ时C取10uF,R取10k。图3-5 STC89C51复位电路3.2.5 STC89C51中断技术概述中断技术主要用于实时监测与控制,要求单片机能与时地响应中断请求源提出的服务请求,并作出快速响应、与时处理。这是由片的中断系统来实现的。当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。图3-6为整个中断响应和处理过程。图3-6 中断响应和处理过程如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。3.3 DS18B20温度采集电路DS18B20是美国DALLAS半导体器件公司推出的单总线数字化智能集成温度传感器。单总线(1-Wire)是DALLAS公司的一项专有技术,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。3.3.1 DS18B20 的特点与部构造特点如下:(1)采用独特的单总线接口方式,即只有一根信号线与控制器相连,实现数据的双向通信,不需要外部元件;(2)测量结果直接输出数字温度信号,以单总线串行传送给控制器,同时可传送CRC校验码,具有极强的抗干扰纠错能力;(3)支持多点组网功能,多个DS18B20可以并联在唯一的三根线上,实现组网多点测量;(4)适应电压围宽3.0-5.5V,不需要备份电源、可用数据线供电,温度测量围为-55125,-1085时测量精度为±0.5;(5)通过编程可实现912位的数字值读数方式,对应的可分辨温度分别为0.5,0.25,0.125,0.0625,实现高精度测温;(6)负压特性。电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。封装图与部构造,如以下图3-7和3-8所示图3-7 DS18B20外部结构框图图3-8 DS18B20内部结构框图3.3.2引脚功能介绍NC:空引脚,悬空不使用;VDD:可选电源脚,电源电压围35.5V。工作于寄生电源时,此引脚应接地;I/O:数据输入/输出脚,漏极开路,常态下高电平。DS18B20采用3脚TO-92封装或8脚SOIC与CSP封装方式。图2-8所示为DS18B20的部结构框图,它主要包括寄生电源、温度传感器、64位光刻ROM与单总线接口、存放中间数据的高速暂存器(含便笺式RAM)、存储与控制逻辑、用于存储用户设定的温度上下限值的TH和TL触发器、结构寄存器、8位循环冗余校验码(CRC)发生器等八部分。图3-9 DS18B20的封装3.3.3 DS18B20的工作原理64位ROM的结构如图3-10所示,开始8位是产品类型的编号;接着是每个器件唯一的序号,共48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可采用单线进行通信的原因。非易失性温度报警触发器TH、TL,可以通过编程写入用户报警上下线数据。图3-10 64位ROM示意图LSBMSBLSB按键输入电路LSBMSB48位序列号8位工厂代码(10H)8位检验CRCDS18B20温度传感器的部存储器还包括一个高速暂存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形式表示。表3-1是部分温度值对应的二进制温度表示数据。表3-1 DS18B20温度与表示值对应表温度/二进制十六进制+125000001111101000007D0H+8500000101010100000550H+25.00000001100100010191H+10.000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-10.1111111101011110FF5EH-25.1111111001101111FF6FH-551111110010010000FC90HDS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节容对照,若T>TH或T<TL,则将该器件的报警标志位置位,并对主机发出的报警搜索命令做出响应。因此,可以用多个DS18B20同时测得温度并进行报警搜索。在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。图3-11 DS18B20的工作电路3.3.3 DS18B20的工作时序初始化时序,当主机将单总线P30从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60120us完成,且在每个循环之间至少需要1us的恢复时间。写0和写1时隙如下图。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之释放总线。时序图如图3-15所示。复位脉冲480us<t<960us图3-15 初始化时序图具体步骤如下:(1)将数据线置高电平1。(2)延时(时间应尽量短些)。(3)数据线拉到低电平0。(4)延时750 s(该围可以在480960s)。(5)数据线拉置高电平1。(6)延时等待。如果初始化成功则在1560ms产生一个由DS18B20返回的低电平0,据该状态可以确定它的存在。但是应注意,不能无限地等待,不然会使程序进入死循环,所以要进行超时判断。若CPU读到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起(第5)步的时间算起)最少要480s。(7)将数据线再次拉置高电平1后完毕。1.数据时序当主机将单总线P30从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60120us完成,且在每个循环之间至少需要1us的恢复时间。写0和写1时隙如下图。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之释放总线。时序图见图3-16所示。DS18B20采样DS18B20采样图3-16 写数据时序图具体步骤如下:(1)数据线先置低电平0。(2)延时确定时间为15s。按从低位到高位的顺序发送数据(一次只发送一位)。(3)延时时间为45s。(4)将数据线拉到高电平1。(5)重复(1)(5)步骤,直到发送完整个字节。(6)最后将数据线拉高到1。2.读数据时序DS18B20器件仅在主机发出读时隙时,才向主机传输数据。所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。所有的读时隙至少需要60us,且在两次独立的读时隙之间,至少需要1us的恢复时间。每个读时隙都由主机发起,至少拉低总线1us。在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1,若DS18B20发送1,则保持总线为高电平。若发送为0,则拉低总线当发送0时,DS18B20在该时隙完毕后,释放总线,由上拉电阻将总线拉回至高电平状态。DS18B20发出的数据,在起始时隙之后保持有效时间为15us。因而主机在读时隙期间,必须释放总线。并且在时隙起始后的15us之采样总线的状态。时序图见图3-17所示。图3-17 读数据时序图具体步骤如下:(1)将数据线拉高到1。(2)延时2s。(3)将数据线拉低到0。(4)延时6s。(5)将数据线拉高到1。(6)延时4s。(7)读数据线的状态得到一个状态位,并进行数据处理。(8)延时6s。(9)重复(1)(7)步骤,直到读取完一个数据。3.4 数码管驱动显示电路3.4.1 数码管驱动电路本电路的显示驱动模块是由74HC573芯片来完成的,74HC573包含八路D 型透明锁存器,每个锁存器具有独立的D 型输入,以与适用于面向总线的应用的三态输出。所有锁存器共用一个锁存使能(LE)端和一个输出使能(OE)端。当LE为高时,数据从Dn输入到锁存器,在此条件下,锁存器进入透明模式,也就是说,锁存器的输出状态将会随着对应的D输入每次的变化而改变。当LE为低时,锁存器将存储D输入上的信息一段就绪时间,直到LE的下降沿来临。当OE为低时,8个锁存器的容可被正常输出;当OE为高时,输出进入高阻态。OE端的操作不会影响锁存器的状态。表3-2 74HC573电气参数表74HC573 参数74HC573 基本参数电压 2.06.0V驱动电流 +/-7.8 mA传输延迟 14 ns5V74HC573 其他特性逻辑电平 CMOS功耗考量 低功耗或电池供电应用74HC573 封装与引脚SO20, SSOP20, DIP20, TSSOP2074HC573特性:(1)输入输出分布在芯片封装的两侧,为微处理器提供简便的接口 (2)用于微控制器和微型计算机的输入输出口 (3)三态正相输出,用于面向总线的应用 (4)共用三态输出使能端 (5)逻辑功能与74HC563、74HC373相同 (6)遵循JEDEC标准no.7A (7)ESD保护 3.4.2 数码管显示电路本电路的显示模块主要由一个4位一体的7段LED数码管构成,用于显示测量到的温度与当前的档位。它是一个共阴极的数码管,每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收单片机的P0口产生的显示段码。S1,S2,S3,S4引脚端为其位选端,用于接收单片机的P2口产生的位选码。本系统采用动态扫描方式。扫描方式是用其接口电路把所有数码管的8个比划段ag和dp同名端连在一起,而每一个数码管的公共极COM各自独立地受I/O线控制。CUP从字段输出口送出字型码时,所有数码管接收到相同的字型码,但究竟是哪个数码管亮,则取决于COM端。COM端与单片机的I/O接口相连接,由单片机输出位位选码到I/O接口,控制何时哪一位数码管被点亮。在轮流点亮数码管的位扫描过程中,每位数码管的点亮时间极为短暂。但由于人的视觉暂留现象,给人的印象就是一组稳定显示的数码。动态方式的优点是十分明显的,即耗电省,在动态扫描过程中,任何时刻只有一个数码管是处于工作状态的。具体原理图如图3-18所示图3-18 数码管显示电路3.5 风扇驱动电路风扇的驱动采用的是两个三极管,三级管将信号放大,然后传输到风扇以下图是该模块电路:图3-19 风扇驱动模块三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。分成NPN和PNP两种。我们仅以NPN三极管的共发射极放大电路为例来说明一下三极管放大电路的基本原理。(1)电流放大下面的分析仅对于NPN型硅三极管。如上图所示,我们把从基极B流至发射极E的电流叫做基极电流Ib;把从集电极C流至发射极E的电流叫做集电极电流 Ic。这两个电流的方向都是流出发射极的,所以发射极E上就用了一个箭头来表示电流的方向。三极管的放大作用就是:集电极电流受基极电流的控制(假设电源 能够提供给集电极足够大的电流的话),并且基极电流很小的变化,会引起集电极电流很大的变化,且变化满足一定的比例关系:集电极电流的变化量是基极电流变 化量的倍,即电流变化被放大了倍,所以我们把叫做三极管的放大倍数(一般远大于1,例如几十,几百)。如果我们将一个变化的小信号加到基极跟发射 极之间,这就会引起基极电流Ib的变化,Ib的变化被放大后,导致了Ic很大的变化。如果集电极电流Ic是流过一个电阻R的,那么根据电压计算公式 U=R*I 可以算得,这电阻上电压就会发生很大的变化。我们将这个电阻上的电压取出来,就得到了放大后的电压信号了。(2)偏置电路三极管在实际的放大电路中使用时,还需要加适宜的偏置电路。这有几个原因。首先是由于三极管BE结的非线性(相当于一个二极管),基极电流必须在输入电压 大到一定程度后才能产生(对于硅管,常取0.7V)。当基极与发射极之间的电压小于0.7V时,基极电流就可以认为是0。但实际中要放大的信号往往远比 0.7V要小,如果不加偏置的话,这么小的信号就不足以引起基极电流的改变(因为小于0.7V时,基极电流都是0)。如果我们事先在三极管的基极上加上一 个适宜的电流(叫做偏置电流,上图中那个电阻Rb就是用来提供这个电流的,所以它被叫做基极偏置电阻),那么当一个小信号跟这个偏置电流叠加在一起时,小 信号就会导致基极电流的变化,而基极电流的变化,就会被放大并在集电极上输出。另一个原因就是输出信号围的要求,如果没有加偏置,那么只有对那些增加的 信号放大,而对减小的信号无效(因为没有偏置时集电极电流为0,不能再减小了)。而加上偏置,事先让集电极有一定的电流,当输入的基极电流变小时,集电极 电流就可以减小;当输入的基极电流增大时,集电极电流就增大。这样减小的信号和增大的信号都可以被放大了。(3)开关作用下面说说三极管的饱和情况。像上面那样的图,因为受到电阻 Rc的限制(Rc是固定值,那么最大电流为U/Rc,其中U为电源电压),集电极电流是不能无限增加下去的。当基极电流的增大,不能使集电极电流继续增大 时,三极管就进入了饱和状态。一般判断三极管是否饱和的准则是:Ib*Ic。进入饱和状态之后,三极管的集电极跟发射极之间的电压将很小,可以理解为 一个开关闭合了。这样我们就可以拿三极管来当作开关使用:当基极电流为0时,三极管集电极电流为0(这叫做三极管截止),相当于开关断开;当基极电流很 大,以至于三极