《本科毕业设计--基于单片机at89c52的大棚温度控制系统.doc》由会员分享,可在线阅读,更多相关《本科毕业设计--基于单片机at89c52的大棚温度控制系统.doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕业设计基于单片机AT89C52的大棚温度控制系统 目 录第1章 绪 论11.1 系统的概述11.2 系统的要求11.3 系统的主要模块21.3.1 本系统的主要组成部分21.3.2 各部分的功能21.3.3 工作原理2第2章 设计的理论基础32.1 AT89C52的工作原理32.1.1 CPU的结构32.1.2 CPU的结构I/O口结构32.1.3 程序存储器32.1.4 定时器42.1.5 中断系统42.2 单总线数字温度传感器DS18B20检测电路52.2.1 DS18B20简单介绍52.2.2 DS18B20 的性能特点52.2.3 DS18B20的测温原理62.3 LCD1602液晶
2、显示器62.3.1 LCD1602简介62.3.2 1602LCD的指令说明及时序72.4 直流马达92.4.1 马达工作的原理92.4.2 马达的基本构造92.5 蜂鸣器9第3章 系统的硬件组成电路设计113.1 系统总硬件设计113.2 时钟电路113.3 AT89C52的复位电路123.4 单总线数字温度传感器DS18B20检测电路123.5 LCD1602显示模块133.6 驱动电路133.7 报警电路14第4章 系统软件的设计154.1主程序设计154.2 温度检测164.2.1读取温度设计164.2.2 温度数据处理设计174.3 液晶显示器LCM1602194.3.1 LCM16
3、02初始化194.4马达的控制204.5 报警器的启动21第5章 总结与展望225.1 总结225.2 展望22参考文献23致 谢24附录A25附录B30附录C:实物照片33基于单片机AT89C52的大棚温度控制系统摘 要 蔬菜的生长与温度息息相关,对于蔬菜大棚来说,最重要的一个管理因素是温度控制。温度太高,则停止生长或者生长速度减慢,所以要将温度始终控制在适合蔬菜生长的范围内。如果仅靠人工控制既耗人力,又容易发生差错。为此,在现代化的蔬菜大棚管理中通常有温度自动控制系统,以控制蔬菜大棚温度,适应生产需要。 本设计是通过单片机控制,来实现对蔬菜大棚温度进行自动控制.系统以AT89C52单片机为
4、基础,通过数字及模拟式对温度进行检测,通过显示屏显示当前温度。当采集到的温度高于20,马达将带动风扇的转动,实现自动控制大棚里的温度.并且随着温度每升高5,马达的转动速率提高一倍。当检测到的温度高于35时,发出报警信号。【关键词】大棚温度控制系统 AT89C52 18B20 LCD1602 马达IVThe Greenhouse Temperature Control SystemBased on AT89C52 MCUAbstractThe growth of vegetables is closely related to the temperature, for vegetable gre
5、enhouses, the most important factors of the managements are the temperature control. The temperature is too high; the growth rate will stop or slow down. That is why it is necessary to always control temperature within the context of growing vegetables in suitable. If only depends on the manual cont
6、rol both to consumer the manpower, and easy to have mistaken. Therefore, usually there are automatic control systems of temperature in modernized vegetable canopy management, in order to control the temperature of vegetable canopy, adapt to producing the need.This design is controlled through the mi
7、crocontroller, to achieve automatic control of vegetable greenhouse temperature. The system based on the AT89C52 MCU, through digital and analogue temperature to be detected, by display shows the current temperature. When the collected temperature higher than 20 , the motor will drive the rotation o
8、f the fan, and automatic control the temperature of the greenhouse. And as the temperature is increased by 5 , the motor rotation speed doubled. When the detected temperature is higher than 35 , send out the alarm signal.【Key words】Temperature control of the greenhouses system AT89C52 18B20 LCD1602
9、motor 第1章 绪 论我国南方温度严热而漫长,大力推广大棚蔬菜的种植来满足人们日常生活对蔬菜的需要。随着人们生活水平的日益增长,对蔬菜的要求也较高,对大棚蔬菜的温度控制就是一个重要因素。温度过高,蔬菜就会停止生长或者糜烂。本系统就基于单片机AT89C52实现对大棚温度的自动化控制。用数字温度计18B20采集,将采集到的温度用显示屏显示,再根据采集到的温度,控制马达的转速,从而实现对大棚温度的控制。当温度大于35,喇叭产生报警信号。1.1 系统的概述应用自动控制和电子计算机实现农业生产和管理的自动化,是农业现代化的重要标志之一。近年来电子技术和信息技术的飞速发展,带来了温室控制与管理技术方面
10、的一场革命,随着“设施农业”、“虚拟农业”等新名称的出现。温度计算机控制与管理系统正在不断吸收自动控制和信息管理领域的理论和方法,结合温室作物种植的特点,不断创新,逐步完善,从而使温室种植业实现真正意义上的现代化,产业化。国内外度计算机控制技术的发展善计算机的发展最早可以追溯到上个世纪的40年代,但将计算机用于环境控制则开始于20世纪60年代。20世纪80年代初诞生了第一批温室控制计算机,此后温度计算机控制及管理技术便函先在发达国家得到广泛应用,后来各发展中国家也都纷纷引进,开发出适合自己的系统。这在给各国带来了巨大的经济效益的同时,也极大地推动了各国农业的现代化进程。本系统以AT89C52单
11、片机为控制核心的测控仪,主要是为了对蔬菜大棚内的温度,地检测与控制而设计的。该测控仪具有检测精度高、使用简单、成本较低和工作稳定可靠等特点,所以具有一定的应用前景。1.2 系统的要求 本系统通过单片机AT89C52控制,用18B20数字温度计采集温度。通过LCD1602液晶显示屏显示当前温度,当温度高于20,马达将带动风扇的转动,实现自动控制大棚里的温度.并且随着温度每升高5,马达的转动速率提高一倍。当检测到的温度高于35时,发出报警信号。本设计将实现大棚温度的自动化控制。 用protues软件绘制电路原理图,再根据电路原理图捍接电路板。捍接的电路板实现温度的自动化控制。1.3 系统的主要模块
12、1.3.1 本系统的主要组成部分本系统为一个全自动温度检测与控制系统,由以下几个部分组成:AT89C52单片机,温度检测,显示电路,马达,及报警装置等组成。组成图如图1-1。温度检测装置AT89C52显示设备马达控制报警装置 图 1-1 温度自动控制主要组成部分 由图1-.1所示,本系统的核心部分是AT89C52,此芯片是该电路的枢纽。由它先控制着温度的检测,用检测到的温度实现马达的自动控制,以及显示。若检测到的温度高于设定的值,则发出报警信号。1.3.2 各部分的功能AT89C52单片机:它是系统的中央处理器,担负着系统的控制和运算。温度检测装置:18B20数字温度计对大棚内温度进行采集,将
13、温度转换成数字。显示设备:主要是用于显示检测到的大棚温度。马达:主要用于带动风扇的转动。报警装置:产生报警信号。1.3.3 工作原理首先对硬件系统18B20定义端口为P1.3,P2.4,P2.5,P2.6和P0口控制液晶LCM1602的显示,定义端口P1.5为马达控制端口,P1.7为喇叭控制端口。首先对温度采集,将采集到的温度转换数字,采集到的温度由LCM液晶显示屏显示。再将采集到的温度所属软件设置的哪个范围,而控制P1.5的电平输出。第2章 设计的理论基础整个控制系统分为硬件电路设计和软件程序设计两部分。根据系统具体要求,可以对每一个具体部分进行分析设计。但要实现对各部分的设计,需要充分了解
14、各部分的理论基础。本设计系统的基本组成单元包括:单片机控制单元,18B20温度检测电路,LCD1602显示屏,直流马达,蜂鸣器报警装置。本章将逐一进行介绍。2.1 AT89C52的工作原理2.1.1 CPU的结构CPU是单片机内部的核心部分,是单片机的指挥和执行机构,它决定了单片机的主要功能特性。从功能上看,CPU包括两个基本部分:运算器和控制器。下面说明控制器和运算器1。运算器包括算术逻辑运算部件ALU、累加器ACCC、B寄存器、暂存寄存器TMP1和TMP2、程序状态寄存器PSW、BCD码运算调整电路等。为了提高数据处理和位操作能力,片内设有一些专用的寄存器,而且还增强了为处理逻辑电路的功能
15、。在进行位操作是,进位位CY作为位操作累加器,整个位操作系统构成一台布尔处理机。2.1.2 CPU的结构I/O口结构AT89C52单片机有4个8位并行I/O接口,记作P0、P1、P2和P3,每个端口都是8位准双向口,共占32根引脚。每一条I/O线都能独立地用作输入或输出。每个端口都包括一个锁存器,一个输出驱动器和输入缓冲器,作输出时数据可以锁存,作输入时数据可以缓冲,但是这四个通道的功能完全不同。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向I/O端口使用,在具有片外扩展存储器系统中,P2口送出高8位地址,P0口为双向总线,分时送出低8位地址和数据的输入/输出。2.1.3 程序
16、存储器程序存储器用于存放编好的程序和表格常数,通常该区域具有不同的保护措施,以防止该区域的内容被破坏。程序存储器通过16位程序计数器寻址,寻址能力为64K字节。这似的能在6K地址空间内任意寻址,但没有指令使程序能控制从程序存储器空间转移到数据存储空间。对AT89C52芯片来说,片内有4K字节ROM/EPROM,片外可扩展60K字节EPROM,片内和片外程序存储器统一编址。在程序存储器中,有6个地址单元被保留用于某些特定的地址。 如表2.1所示: 表 2.1 AT89C52的复位、中断入口地址入口地址说明0000H复位后,PC=0000H0003H外部中断入口000BH定时器T0溢出中断入口00
17、13H外部中断入口001BH定时器T1溢出中断口0023H串行口中断入口数据存储器用于存放运算的中间结果、数据暂存和缓冲以及标志位等。AT89C51数据存储器空间也分为内片和外片两大部分,即片内数据存储器RAM和片外数据存储器RAM。片内数据存储器最大可以寻址256个单元,片外最大可扩展64K字节RAM,并且片内使用的是MOV指令,片外64K ROM空间专门为MOVX指令所用。2.1.4 定时器AT89C51单片机的内部有两个16位可变成定时器0和定时器1,它们都有定时或是事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。它们具有计数和定时两种工作方式以及四种工作模式。两个特殊
18、功能寄存器用于确定定时器/计数器的功能和操作方式。定时器T0的核心是一个加1计数器,它由8位寄存器TH0和TH1组成,可被变成为13位、16位、两个分开的8位等不同的结构。计数器的输入脉冲源可以是外部脉冲源或系统时钟震荡器,计数器对着两个输入脉冲之一进行递增计数。定时器T0具有方式0、方式1、方式2和方式3四种工作方式。T1具有方式0、方式1和方式2三种工作方式。不管是定时工作方式还是计数方式,定时器T0和T1在对内部时钟或对外部时间计数时,不占用CPU时间,除非定时器/计数器溢出,才可能中断CPU的当前操作。由此可见,定时器是单片机中效率最高而且工作灵活的部件。2.1.5 中断系统中断是指中
19、央CPU正在处理某事情的时候,外部发生了某一事件,请求COU迅速去处理,于是,CPU暂时中断当前的工作,转入处理所发生的事件;中断服务处理完成以后,再回到原来被中断的工作,这样的过程称为中断2。AT89C52单片机有五个中断请求源。其中,两个外部中断源;两个片内定时器/计数器的溢出中断源TE0和TF1;一个片内串行口接受或发送中断源RI或TI。这些中断请求分别由单片机的特殊功能寄存器TCON和SCON的相应位锁存。当几个中断源同时向CPU请求中断,要求CPU提供服务的时候,就存在CPU优先响应哪一个中断请求,于是一些微处理器和单片机规定了每个中断源的优先级别。2.2 单总线数字温度传感器DS1
20、8B20检测电路由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。2.2.1 DS18B20简单介绍DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及
21、用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便3。2.2.2 DS18B20 的性能特点独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS18B20支持多点组网功能,多个DS18
22、B20可以并联在唯一的三线上,实现组网多点测温。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。温范围55125,在-10+85时精度为0.5。零待机功耗。可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。用户可定义报警设置。报警搜索命令识别并标志超过程序限定温度的器件。测量结果直接输出数字温度信
23、号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。以上特点使DS18B20非常适用与多点、远距离温度检测系统。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图 4 所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 2.2.3 DS18B20的测温原理DS18B
24、20的测温原理,低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值4。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预
25、置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20发ROM功能命令发存储器操作命令处理数据5。2.3 LCD1602液晶显示器2.
26、3.1 LCD1602简介字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如表2.2所示: 表 2.2引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时
27、对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.3.2 1602LCD的指令说明及时序 1602液晶模块内
28、部的控制器共有11条控制指令6,如表2.3所示:表 2.3 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAMDDRAM)10要写的数据内容11CGRAM或DDRAM读数11读出的数据内容 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令
29、编程来实现的。1为高电平、0为低电平。指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8
30、位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。 LCD1602读写时序如表2.4所示:表2.4 基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=
31、L,D0D7=数据,E=高脉冲输出无 2.4 直流马达电动马达,又称为马达或电动机,是一种将电能转化成机械能,并可再使用机械能产生动能,用来驱动其他装置的电气设备。 电动机种类非常繁多,但可大致分为交流电动机及直流电动机以用于不同的场合。2.4.1 马达工作的原理马达的旋转原理的依据为佛来明左手定则,当一导线置放于磁场内,若导线通上电流,则导线会切割磁场线使导线产生移动。 电流进入线圈产生磁场,利用电流的磁效应,使电磁铁在固定的磁铁内连续转动的装置,可以将电能转换成力学能。 与永久磁铁或由另一组线圈所产生的磁场互相作用产生动力 直流马达的原理是定子不动,转子依相互作用所产生作用力的方向运动7。
32、 电枢:可以绕轴心转动的软铁芯缠绕多圈线圈。 场磁铁:产生磁场的强力永久磁铁或电磁铁。 集电环:线圈约两端接至两片半圆形的集电环,随线圈转动,可供改变电流方向的变向器。每转动半圈,线圈上的电流方向就改变一次。 电刷:通常使用碳制成,集电环接触固定位置的电刷,用以接至电源。 2.4.2 马达的基本构造电动机的种类很多,以基本结构来说,其组成主要由定子和转子所构成。 定子在空间中静止不动,转子则可绕轴转动,由轴承支撑。 定子与转子之间会有一定空气间隙,以确保转子能自由转动。 定子与转子绕上线圈,通上电流产生磁场,就成为电磁铁,定子和转子其中之一亦可为永久磁铁8。2.5 蜂鸣器蜂鸣器是一种一体化结构
33、的电子讯响器。蜂鸣器主要分为压电式蜂鸣器和电磁化蜂鸣器两种类型。本系统采用的是电磁式蜂鸣器9。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动腊片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁铁圈,使电磁铁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。蜂鸣器发声原理是电流通过电磁铁圈,使电磁线圈产生磁场来驱动振动膜发声的。程序中改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。第3章 系统的硬件组成电路设计系统的硬件组成部分包括:主控制器AT89C52单片机、温度传
34、感器DS18B20、显示电路LCD1602、马达、报警装置等构成。AT89C52连接各模块的主控制端口,初步选定将要运用到的电子元器件,再用Protues绘制原理图,再根据原理图捍接电路板。3.1 系统总硬件设计 首先对硬件系统18B20定义端口为P1.3,P2.4,P2.5,P2.6和P0口控制液晶LCM1602的显示,定义端口P1.5为马达控制端口,P1.7为喇叭控制端口。首先对温度采集,将采集到的温度转换数字,采集到的温度由LCM液晶显示屏显示。再将采集到的温度所属软件设置的哪个范围,而控制P1.5的电平输出。电路原理图如3-1所示: 图 3-1 电路原理图 电路原理图用Protues软
35、件绘制而成。用Protues软件绘制电路原理图方便,快捷。Protues软件有丰富的元件库,智能的器件搜索,智能化的连线,可输出高质量的图纸。电路原理图清晰明了9。3.2 时钟电路AT89C52芯片内部有一个高增益反向放大器,用于构成震荡器。反向放大器的输入端为XTAL1,输出端为XTAL2。在TXAL1和XTAL2两端跨接由石英晶体及两个电容构成的自激震荡器10,如图3-2所示。电容器C1和C2取22pF,选用不同的电容量对震荡频率有微调作用。但石英晶体本身的标定频率才是单片机震荡频率的决定因素。图 3-2 时钟电路 时钟电路中,两个电容都选择22pF的电容,电容各一端接与晶振相连,各一端接
36、地。选择的晶振是频率为12MHZ。此模块就是产生象时钟一样准确的振荡电路。3.3 AT89C52的复位电路AT89C52单片机通常采用上电自动复位和开关手动复位两种方式。本系统采用上电复位电路,如图3-3所示,所谓上电复位,是指单片机只要一上电,便自动地进入复位状态。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位10。图 3-3 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。RC复位电路可以实现上述基本功能,但解决不了电源毛刺和
37、电源缓慢下降等问题,而其调整 RC 常数改变延时会令驱动能力变差。3.4 单总线数字温度传感器DS18B20检测电路DQ 为数据输入/输出引脚,连接P1.3。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源,GND为地信号;VCC为电源信号。图3-4为DS18B20检测电路。 图 3-4 DS18B20检测电路3.5 LCD1602显示模块用AT89C52的P0口作为数据线,用P2.4、P2.5、P2.6分别作为LCD的E、R/W、RS。其中E是下降沿触发的片选信号,连接P2.6,R/W是读写信号,连接P2.5,RS是寄存器选择信号,连接P2.4。图3-5为LCD1602的硬件连
38、接。 图3-5 LCD1602的硬件连接 VEE用连接一阻值为10K的电阻,主要用于调节对比度的调整。接正电源时对比度最落,接地电源时,对比度最高。对比度过高时,会产生“鬼影”。因此连接一10K的电阻用以调整。当P0口作为I/O用时需要上拉电阻,如图3.5接一排阻,用于上拉11。3.6 驱动电路系统使用的是直流马达,包含周围磁场、电刷、整流子等元件,电刷和整流子將外部所供应的直流电源,持续地供应给转子的线圈,並适时地改变电流的方向,使转子能以同一方向持续旋转。直流马达的优点有速度调整容易,启动转矩较大等,但是电刷与整流子保养维修不易。直流马达广泛的用在消费电子产品及玩具,如电动刮胡刀、录音机、
39、CD唱机等,而大输出功率的直流电动机则是用在电车,快速电梯,工作母机等。图3-6为硬件连接图。 图 3-6 驱动电路 图中三极管采用的是S9012,用于放大电流。基极接P1.5口,用于控制输出信号。集电极按电源正极,发射极接马达正极。三极管 S9012三极管最基本的作用是放大作用,它可以把微弱的电信号变成一定强度的信号,当然这种转换仍然遵循能量守恒,它只是把电源的能量转换成信号的能量罢了。三极管有一个重要参数就是电流放大系数。当三极管的基极上加一个微小的电流时,在集电极上可以得到一个是注入电流倍的电流,即集电极电流。集电极电流随基极电流的变化而变化,并且基极电流很小的变化可以引起集电极电流很大
40、的变化,这就是三极管在此处的作用。用于P1.5口输出的微弱信号经过放大,输出到马达中,这样就可以很好的控制马达了。3.7 报警电路系统采用的报警器件是蜂鸣器,用引脚P1.7控制。如图3-7所示图 3-.7 报警电路蜂鸣器和普通扬声器相比,最重要一个特点是只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单。由此可知,蜂鸣器的控制和LED的控制对单片机而言是没有区别的。第4章 系统软件的设计 一个应用系统要完成各项功能,首先必须有较完善的硬件做保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替
41、。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编和有时会变得很简单。因此充分利用其内部丰富的硬件资源和软件资源。程序设计语言有三种:机器语言、汇编语言、高级语言。本系统运用的是高级语言所编写,也就是C语言。4.1主程序设计从软件的功能不同可分为四大类:一是检测软件,它是用来检测温度。二是显示部分,用来显示所检测到的温度。三是调控部分,用来控制马达的转速。四是当温度大于35,蜂鸣器发出报警信号。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义。图4-1为软件设计流程图。开 始18B20温度检测初始化马达带动风扇LCD1602显示温度发出
42、报警信号结 束温度大于20温度大于35图 4-1 软件设计流程图4.2 温度检测4.2.1读取温度设计DSl8B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生电源为止。此外,还可外接5 V电源,给DS18B20供电12。图4-2DS18B20的初始化跳过读序列号的操作读取温度寄存器启动温度转换跳过读序列号的操作开 始DS18B20的初始化RETLOW-低八位 HIGH-高八位 图 4-2 18B20读取温度流程图读取温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进
43、行温度数据的改写。DS18B20的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高低位在后,低位在前,共12位数,小数4位,整数7位,还有一位符号位。读取温度的主程序如下:unsigned int ReadTemperature(void)unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay(200);Init_DS18B20();Wr
44、iteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar(); /低位b=ReadOneChar(); /高位b=8;t=a+b;return(t);4.2.2 温度数据处理设计读出温度数据后,TempL的低四位为温度的小数部分,可以精确到0.0625,TempL的高四位和TempH的低四位为温度的整数部分,TempH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5的话,向个位进1;小于0.5的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为-55,所以可以将整数部分的最高位换成一个“-”,表示为负数。图4-3为温度数据处理流程图。开始提取整数部分存入HT提取小数部分存入TempLTempL右移三位,将精度降低到0.5摄氏度TempH +将小数部分整数化提取符号部分存入signTempL是否大于5temp=?0XF0RETflag=1 TempH=TempH+1YNNY