基于AT89S52单片机温度控制系统毕业设计_第1页
基于AT89S52单片机温度控制系统毕业设计_第2页
基于AT89S52单片机温度控制系统毕业设计_第3页
基于AT89S52单片机温度控制系统毕业设计_第4页
基于AT89S52单片机温度控制系统毕业设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计题 目:系 别: 计算机科学系班 级:姓 名: XXXX学 号: 000000指导老师: XXX二一一年十一月十三日目 录第 1 章 绪 论11.1 系统的概述11.2 系统的要求11.3 系统的主要模块11.3.1 本系统的主要组成部分11.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 DS

2、18B20 的性能特点52.2.3 DS18B20的测温原理62.3 LCD1602 液晶显示器62.3.1 LCD1602 简介62.3.2 1602LCD 的指令说明及时序72.4 直流马达82.4.1 马达工作的原理82.4.2 马达的基本构造9第 3 章 系统的硬件组成电路设计10I3.1 系统总硬件设计103.2 时钟电路103.3 AT89C52 的复位电路113.4 单总线数字温度传感器DS18B20 检测电路113.5 LCD1602 显示模块123.6 驱动电路12第 4 章 系统软件的设计144.1 主程序设计144.2 温度检测144.2.1 读取温度设计144.2.2

3、温度数据处理设计164.3 液晶显示器 LCM1602174.3.1 LCM1602 初始化174.4 马达的控制21第 5 章 系统调试22第 6 章 总结与展望235.1 总结235.2 展望23参考文献24致 谢25附录 A :程序26附录 B:元件清单42附录 C:实物照片42II基于单片机 AT89C52 的大棚温度控制系统摘 要蔬菜的生长与温度息息相关,对于蔬菜大棚来说,最重要的一个管理因素是温度控制。温度不合适,蔬菜则停止生长或者生长速度减慢,从而造成不可估量的损失。所以要将温度始终控制在适合蔬菜生长的范围内。如果仅靠人工控制既耗人力,又容易造成误差。为此,在现代化的蔬菜大棚管理

4、中通常有温度自动控制系统,以控制蔬菜大棚温度,适应生产需要。单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。单片机具有体积小、集成度高、性能稳定、控制功能强、易扩展、低功耗、价格便宜等特点,所以单片机市场前景广阔。 本设计是通过单片机控制 ,来实现对蔬菜大棚温度进行自动控制。系统以 AT89C52 单片机为基础 ,通过数字及模拟式对温度进行采集并检测,通过显示屏显示当前温度。当采集到的温度高于系统设定值,马达将带动风扇的转动,实现自动控制大棚里的温度。【关键词】大棚温度控制系统 AT89C52 DS18B20

5、LCD1602 直流马达 IIIThe Greenhouse Temperature Control SystemBased on AT89C52 MCUAbstractThe growth of vegetables and temperature are closely related, for vegetable shed, one of the most important management factor is the temperature control. Temperature not appropriate, then stop the vegetable growth o

6、r growth slowed, causing the immeasurable loss. So will always control temperature in vegetable growth for the range. If only on artificial control both human consumption, and easy to cause the error. Therefore, in modern management of vegetable shed, usually with temperature automatic control syste

7、m, to control the vegetables canopy temperature, to adapt to the requirements of production.Single chip microcomputers are microcomputer as an important branch, is also a vitality of the model. Single chip microcomputer hereinafter referred to as the single chip microcomputer, is particularly applic

8、able to control field, so it is also called the micro controller. Single chip microcomputer with small size, high level of integration, stable performance, easy to control function expansion, low power consumption, price cheap and so on, so the single chip microcomputer wide prospect of market.This

9、design is through the single-chip microcomputer control, to realize the canopy temperature vegetables for automatic control. System based on single chip microcomputer AT89C52, through the digital and analog temperature in acquisition and detection, through the screen shows the current temperature. W

10、hen the collected temperature higher than system setting, motors will drive the rotation of the fan, and realize the automatic control the temperature of the shelter.【Key words】Temperature control of the greenhouses system AT89C52 DS18B20LCD1602 DC motorIV第 1 章 绪 论我国南方温度严热而漫长,只有大力推广大棚蔬菜的种植来满足人们日常生活对

11、蔬菜的需要。随着人们生活水平的日益增长,对蔬菜的要求也较高,对大棚蔬菜的温度控制就是一个重要因素。温度过高,蔬菜就会停止生长或者糜烂。本系统仿真就基于单片机 AT89C52 实现对大棚温度的自动化控制(实物焊接时则采用存储器更强大的 AT89S52)。用数字温度计 DS18B20 采集,将采集到的温度用显示屏显示,再根据采集到的温度作分析来控制马达的转或停,从而实现对大棚温度的控制。1.1 系统的概述应用自动控制和电子计算机实现农业生产和管理的自动化,是农业现代化的重要标志之一。近年来电子技术和信息技术的飞速发展,带来了温室控制与管理技术方面的一场革命,随着 “设施农业 ”、 “虚拟农业 ”等

12、新名称的出现。温度计算机控制与管理系统正在不断吸收自动控制和信息管理领域的理论和方法,结合温室作物种植的特点,不断创新,逐步完善,从而使温室种植业实现真正意义上的现代化,产业化。国内外度计算机控制技术的发展善计算机的发展最早可以追溯到上个世纪的 40 年代,但将计算机用于环境控制则开始于 20 世纪 60 年代。 20 世纪 80 年代初诞生了第一批温室控制计算机,此后温度计算机控制及管理技术便函先在发达国家得到广泛应用,后来各发展中国家也都纷纷引进,开发出适合自己的系统。这在给各国带来了巨大的经济效益的同时,也极大地推动了各国农业的现代化进程。本系统以 AT89C52 单片机为控制核心,主要

13、是为了对蔬菜大棚内的温度的检测与控制而设计的。该测控仪具有检测精度高、使用简单、成本较低和工作稳定可靠等特点,所以具有一定的应用前景。1.2 系统的要求本系统通过单片机 AT89C52 控制 ,用 DS18B20 数字温度计采集温度。通过 LCD1602 液晶显示屏显示当前温度,当检测到温度高于系统设定温度值,马达将带动风扇的转动,实现自动控制降低大棚里的温度。本设计将实现大棚温度的自动化控制。用 protues7.7仿真软件绘制电路原理图,再根据电路原理图焊接电路板。1.3 系统的主要模块1.3.1 本系统的主要组成部分本系统为一个全自动温度检测与控制系统,由以下几个部分组成:机,复位电路,

14、温度检测电路,显示电路,马达。组成图如图AT89C52 单片1-1。1图 1-1 温度自动控制主要组成部分由图 1-1 所示,本系统的核心部分是 AT89C52,此芯片是该电路的枢纽。由它先控制着温度的检测,用检测到的温度实现马达的自动控制,以及显示。若检测到的温度高于设定的值则驱动马达转动。1.3.2 各部分的功能AT89C52 单片机:它是系统的中央处理器,担负着系统的控制和运算。温度检测装置: DS18B20 数字温度计对大棚内温度进行采集,将温度转换成数字。显示设备:主要是用于显示检测到的大棚温度。马达:主要用于带动风扇的转动。按键电路:设置系统时间和参考温度值。1.3.3 工作原理首

15、先对硬件系统端口定义, DS18B20 定义端口为 P1.7, P0口控制液晶 LCM1602 的显示,定义端口 P3.7为马达控制端口。首先对温度采集,将采集到的温度转换数字,采集到的温度由 LCM 液晶显示屏显示。再将采集到的温度与系统设定温度值进行比较,而控制 P3.7 的电平输出。2第 2 章 设计的理论基础整个控制系统分为硬件电路设计和软件程序设计两部分。根据系统具体要求,可以对每一个具体部分进行分析设计。但要实现对各部分的设计,需要充分了解各部分的理论基础。本设计系统的基本组成单元包括:单片机控制单元,复位电路,按键电路, DS18B20 温度检测电路, LCD1602 显示电路,

16、直流马达。本章将逐一进行介绍。2.1 AT89C52 的工作原理2.1.1 CPU的结构CPU 是单片机内部的核心部分,是单片机的指挥和执行机构,它决定了单片机的主要功能特性。从功能上看, CPU 包括两个基本部分:运算器和控制器。下面说明控制器和运算器 1 。运算器包括算术逻辑运算部件 ALU 、累加器 ACCC 、B 寄存器、暂存寄存器 TMP1 和 TMP2、程序状态寄存器 PSW、BCD 码运算调整电路等。为了提高数据处理和位操作能力,片内设有一些专用的寄存器,而且还增强了为处理逻辑电路的功能。在进行位操作是,进位位 CY 作为位操作累加器,整个位操作系统构成一台布尔处理机。2.1.2

17、 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 程序存储器程序存储器用于存放编好的程序和

18、表格常数,通常该区域具有不同的保护措施,以防止该区域的内容被破坏。程序存储器通过 16 位程序计数器寻址,寻址能力为 64K 字节。这似的能在 6K 地址空间内任意寻址,但没有指令使程序能控制从程序存储器空间转移到数据存储空间。对 AT89C52 芯片来说,片内有 4K 字节 ROM/EPROM ,片外可扩展 60K 字节 EPROM,片内和片外程序存储器统一编址。在程序存储器中,有6 个地址单元被保留用于某些特定的地址。如表 2.1 所示:3表 2.1 AT89C52 的复位、中断入口地址入口地址0000H0003H000BH0013H001BH0023H说明 复位后, PC=0000H 外

19、部中断入口 定时器 T0 溢出中断入口 外部中断入口 定时器 T1 溢出中断口 串行口中断入口数据存储器用于存放运算的中间结果、数据暂存和缓冲以及标志位等。AT89C51数据存储器空间也分为内片和外片两大部分,即片内数据存储器RAM 和片外数据存储器 RAM 。片内数据存储器最大可以寻址256 个单元,片外最大可扩展64K 字节 RAM ,并且片内使用的是 MOV 指令,片外 64K ROM 空间专门为 MOVX 指令所用。2.1.4 定时器AT89C51 单片机的内部有两个16 位可变成定时器 0 和定时器 1,它们都有定时或是事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合

20、。它们具有计数和定时两种工作方式以及四种工作模式。两个特殊功能寄存器用于确定定时器 /计数器的功能和操作方式。定时器T0 的核心是一个加1 计数器,它由8 位寄存器 TH0 和 TH1 组成,可被变成为13 位、 16 位、两个分开的 8 位等不同的结构。计数器的输入脉冲源可以是外部脉冲源或系统时钟震荡器,计数器对着两个输入脉冲之一进行递增计数。定时器 T0 具有方式 0、方式 1、方式 2 和方式 3 四种工作方式。 T1 具有方式 0、方式 1 和方式 2 三种工作方式。不管是定时工作方式还是计数方式,定时器T0和 T1 在对内部时钟或对外部时间计数时,不占用 CPU 时间,除非定时器 /

21、计数器溢出,才可能中断 CPU 的当前操作。由此可见,定时器是单片机中效率最高而且工作灵活的部件。2.1.5 中断系统中断是指中央 CPU 正在处理某事情的时候,外部发生了某一事件,请求COU 迅速去处理,于是, CPU 暂时中断当前的工作,转入处理所发生的事件;中断服务处理完成以后,再回到原来被中断的工作,这样的过程称为中断2 。AT89C52 单片机有五个中断请求源。其中,两个外部中断源;两个片内定时器/计数器的溢出中断源TE0 和 TF1;一个片内串行口接受或发送中断源RI 或 TI 。这些中断请求分别由单片机的特殊功能寄存器TCON 和 SCON 的相应位锁存。当几个中断源同时向CPU

22、 请求中断,要求CPU 提供服务的时候,就存在CPU 优先响应哪一个中断请求,于是一些微处理器和单片机规定了每个中断源的优先级别。42.2 单总线数字温度传感器DS18B20 检测电路由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用 DALLAS 公司的数字温度传感器 DS18B20 作为测温元件。2.2.1 DS18B20简单介绍DALLAS 最新单线数字温度传感器DS18B20 是一种新型的 “一线器件 ”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。 DALLAS 半导体公司的数字化温度传感

23、器 DS18B20 是世界上第一片支持 “一线总线 ”接口的温度传感器。温度测量范围为 -55 +125 摄氏度,可编程为 9 位 12 位转换精度,测温分辨率可达 0.0625 摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。被测温度用符号扩展的16 位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20 可以并联到 3 根或 2 根线上, CPU 只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的

24、数字温度计,十分方便3 。2.2.2 DS18B20 的性能特点独特的单线接口方式, DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。 DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温。 DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。适应电压范围更宽,电压范围: 3.0 5.5V,在寄生电源方式下可由数据线供电。温范围55 125,在 -10+85时精度为 0.5。零待机功耗。可编程的分辨率为9 12 位,对应的可分辨温度分别为 0.5、 0.2

25、5、 0.125和 0.0625,可实现高精度测温。在 9 位分辨率时最多在 93.75ms内把温度转换为数字, 12 位分辨率时最多在 750ms内把温度值转换为数字,速度更快。用户可定义报警设置。报警搜索命令识别并标志超过程序限定温度的器件。测量结果直接输出数字温度信号,以 一线总线 串行传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力。负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。以上特点使 DS18B20 非常适用与多点、远距离温度检测系统。 DS18B20 内部结构主要由四部分组成: 64 位光刻 ROM 、温度传感器、非挥发的温度报警触发器

26、 TH 和 TL、配置寄存器。 DS18B20 的管脚排列、各种封装形式如图 4 所示, DQ 为数据输入 /输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND 为地信号; VDD 为可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。52.2.3 DS18B20的测温原理DS18B20 的测温原理,低温度系数晶振的振荡频率受温度的影响很小 ,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,还隐含着计数门,当计数门打开时, DS18B20 就对低温度系数振荡器产生的时钟脉

27、冲后进行计数,进而完成温度测量 .计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将 -55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在 -55 所对应的一个基数值 4 。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到 0 时温度寄存器的值将加1,减法计数器 1 的预置将重新被装入 ,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数 ,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性其输出

28、用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是 DS18B20 的测温原理。另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。操作协议为:初始化 DS18B20 发 ROM 功能命令 发存储器操作命令 处理数据 5 。2.3 LCD1602 液晶显示器2.3.1 LCD1602 简介字符型 LCD1602 通常有 14 条引脚线或 16 条引脚线的 LCD ,多出来的 2 条线是背光电源线 VCC(15 脚 )和地线 GND(16 脚),其控制原

29、理与14 脚的 LCD 完全一样,引脚定义如表2.2 所示:表 2.2 引脚接口说明表6第 1 脚: VSS 为地电源。 第 2 脚: VDD 接 5V 正电源。第 3 脚: VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生 “鬼影 ”,使用时可以通过一个 10K 的电位器调整对比度。第 4 脚: RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚: R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W共同为低电平时可以写入指令或者显示地址,当 RS为低电平 R/W 为高电平时可以读忙信号,当

30、 RS 为高电平 R/W 为低电平时可以写入数据。第 6 脚: E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚: D0D7 为 8 位双向数据线。 第 15 脚:背光源正极。 第 16 脚:背光源负极。2.3.2 1602LCD 的指令说明及时序1602 液晶模块内部的控制器共有11 条控制指令 6 ,如表 2.3 所示:1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 1 为高电平、 0 为低电平。7指令 1:清显示,指令码01H,光标复位到地址 00H 位置。指令 2:光标复位,光标返回到地址00H。指令 3:光标和显示模式设置I

31、/D :光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令 4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令 5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令 6:功能设置命令DL :高电平时为 4 位总线,低电平时为8 位总线 N:低电平时为单行显示,高电平时双行显示F: 低电平时显示 5x7 的点阵字符,高电平时显示5x10 的点阵字符。指令 7:字符发生器 RAM 地址设

32、置。指令 8: DDRAM 地址设置。指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令 10:写数据。指令 11:读数据。LCD1602 读写时序如表 2.4 所示:表 2.4 基本操作时序表2.4 直流马达电动马达,又称为马达或电动机,是一种将电能转化成机械能,并可再使用机械能产生动能,用来驱动其他装置的电气设备。 电动机种类非常繁多,但可大致分为交流电动机及直流电动机以用于不同的场合。2.4.1 马达工作的原理马达的旋转原理的依据为佛来明左手定则,当导线置放于磁场内,若导线通上电流,则导线会切割磁场线使导线产生移动。 电

33、流进入线圈产生磁场,利用电流的磁效应,使电磁铁在固定的磁铁内连续转动的装置,可以将电能转换成力学能。与永久磁铁或由另一组线圈所产生的磁场互相作用产生动力 直流马达的原理是定子不动,转子依相互作用所产生作8用力的方向运动 7 。电枢 :可以绕轴心转动的软铁芯缠绕多圈线圈。场磁铁 :产生磁场的强力永久磁铁或电磁铁。 集电环 :线圈约两端接至两片半圆形的集电环,随线圈转动,可供改变电流方向的变向器。每转动半圈,线圈上的电流方向就改变一次。 电刷 :通常使用碳制成,集电环接触固定位置的电刷,用以接至电源。2.4.2 马达的基本构造电动机的种类很多,以基本结构来说,其组成主要由定子和转子所构成。 定子在

34、空间中静止不动,转子则可绕轴转动,由轴承支撑。 定子与转子之间会有一定空气间隙,以确保转子能自由转动。 定子与转子绕上线圈,通上电流产生磁场,就成为电磁铁,定子和转子其中之一亦可为永久磁铁 8 。9第 3 章 系统的硬件组成电路设计系统的硬件组成部分包括:主控制器 AT89C52 单片机、温度传感器 DS18B20、显示电路 LCD1602、马达、报警装置等构成。 AT89C52 连接各模块的主控制端口,初步选定将要运用到的电子元器件,再用 Protues绘制原理图,再根据原理图焊接电路板。3.1 系统总硬件设计首先对硬件系统 18B20 定义端口为 P1.3,P2.4,P2.5,P2.6和

35、P0 口控制液晶 LCM1602 的显示,定义端口 P1.5 为马达控制端口, P1.7 为喇叭控制端口。首先对温度采集,将采集到的温度转换数字,采集到的温度由示。再将采集到的温度所属软件设置的哪个范围,而控制LCM 液晶显示屏显P1.5的电平输出。电路原理图如 3-1 所示:图 3-1 电路原理图电路原理图用 Protues7.7电路仿真软件绘制而成。用 Protues7.7电路仿真软件软件绘制电路原理图方便,快捷。 Protues7.7电路仿真软件有丰富的元件库,智能的器件搜索,智能化的连线,可输出高质量的图纸。电路原理图清晰明了9 。3.2 时钟电路AT89C52 芯片内部有一个高增益反

36、向放大器,用于构成震荡器。反向放大器的输入端为 XTAL1 ,输出端为 XTAL2 。在 TXAL1 和 XTAL2 两端跨接由石英晶体及两个电容构成的自激震荡器 10 ,如图 3-2 所示。电容器 C1 和 C2 取 22pF,选用不同的电容量对震荡频率有微调作用。但石英晶体本身的标定频率才是单片机震荡频率的决定因素。10图 3-2 时钟电路时钟电路中,两个电容都选择 22pF 的电容,电容各一端接与晶振相连,各一端接地。选择的晶振是频率为 12MHZ 。此模块就是产生像时钟一样准确的振荡电路。3.3 AT89C52 的复位电路AT89C52 单片机通常采用上电自动复位和开关手动复位两种方式

37、。本系统采用上电复位电路,如图3-3 所示,所谓上电复位,是指单片机只要一上电,便自动地进入复位状态。在通电瞬间,电容C 通过电阻 R 充电, RST 端出现正脉冲,用以复位 10 。图 3-3 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分 -合过程中引起的抖动而影响复位。 RC 复位电路可以实现上述基本功能,但解决不了电源毛刺和电源缓慢下降等问题,而其调整 RC 常数改变延时会令驱动能力变差。3.4 单总线数字温度传感器DS18B20 检测电路DQ 为数据输入 /输出引脚

38、,连接 P1.7。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源, GND 为地信号; VCC 为电源信号。图 3-4 为 DS18B20 检测电路。11图 3-4 DS18B20 检测电路3.5 LCD1602 显示模块用 AT89C52 的 P0口作为数据线,用 P2.1、 P2.2、P2.3 分别作为 LCD 的 RS 、R/W、E。其中 E 是下降沿触发的片选信号,连接 P2.3,R/W 是读写信号,连接P2.2,RS 是寄存器选择信号,连接 P2.1。图 3-5 为 LCD1602 的硬件连接。图 3-5 LCD1602 的硬件连接VEE 用连接一阻值为 10K 的电

39、阻,主要用于调节对比度的调整。接高电源时对比度最低,接低电源时,对比度最高。对比度过高时,会产生 “鬼影 ”。因此连接一 10K 的电阻用以调整。当 P0 口作为 I/O 用时需要上拉电阻,如图 3.5 接一排阻,用于上拉 11 。3.6 驱动电路系统使用的是直流马达,包含周围磁场、电刷、整流子等元件,电刷和整流子將外部所供应的直流电源,持续地供应给转子的线圈,並适时地改变电流的方向,使转子能以同一方向持续旋转。直流马达的优点有速度调整容易,启动转矩较大等,但是电刷与整流子保养维修不易。直流马达广泛的用在消费电子产品及玩具,如电动刮胡刀、录音机、 CD 唱机等,而大输出功率的直流电动机则是用1

40、2在电车,快速电梯,工作母机等。图3-6 为硬件连接图。图 3-6 驱动电路13第 4 章 系统软件的设计一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编和有时会变得很简单。因此充分利用其内部丰富的硬件资源和软件资源。程序设计语言有三种:机器语言、汇编语言、高级语言。本系统运用的是高级语言所编写,也就是 C 语言。4.1 主程序设计从软件的功能不同可分为四大类:一是检测软件,它是用来检测温度。二是显示部分,用来显示

41、所检测到的温度。三是控制部分,用来控制马达。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义。图 4-1 为软件设计流程图。图 4-1 软件设计流程图4.2 温度检测4.2.1 读取温度设计DSl8B20 可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生电源为止。此外,还可外接 5 V 电源,给 DS18B20 供电 12 。图 4-214图 4-2 18B20 读取温度流程图读取温度子程序的主要功能是读出 RAM 中的 9 个字节,在读出时需进行 CRC

42、校验,校验有错时不进行温度数据的改写。 DS18B20 的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高低位在后,低位在前,共12 位数,小数 4 位,整数 7 位,还有一位符号位。读取温度的主程序如下:void ReadTemperature(void)unsigned char a=0;unsigned char b=0;unsigned char t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay_18B20(100);

43、 / this message is very importantInit_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); / 读取温度寄存器等(共可读 9 个寄存器)前两个就是温度 delay_18B20(100);15a=ReadOneChar(); /读取温度值低位b=ReadOneChar(); /读取温度值高位temp1=b4;temp2=a&0x0f;temp=(b*256+a)4); / 当前采集温度值除16 得实际温度值4.2.2 温度数据处理设计读出温度数据后, TempL 的低四位为温度的小数部分,可

44、以精确到 0.0625, TempL 的高四位和 TempH 的低四位为温度的整数部分, TempH 的高四位全部为1 表示负数,全为 0 表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于 0.5的话,向个位进 1;小于 0.5的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为 DS18B20 最低温度只能为 -55,所以可以将整数部分的最高位换成一个 “-”,表示为负数。图 4-3 为温度数据处理流程图。图 4-3 温度数据处理流程由于 DS18B20 转换后的代码并不是实际的温度值,所以要进

45、行计算转换。温度高字节16高 5 位是用来保存温度的正负,高字节低 3 位和低字节来保存温度值。其中低字节的低 4 位来保存温度的小数位。由于本程序采用的是 0.0625 的精度,小数部分的值,可以用后四位代表的实际数值乘以 0.0625,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留一位小数即可。也就说,本系统的温度精确到了 0.1 度13 。温度数据处理主程序如下:str0=TempH/100; / 十位温度str1=(TempH%100)/10; / 十位温度str2=(TempH%100)%10; / 个位温度 ,带小数点str3=TempL;if(flag_get=1)

46、 / 定时读取当前温度temp=ReadTemperature();if(temp&0x8000)str0=0x40;/ 负号标志temp=temp; / 取反加 1temp +=1;elsestr0=0;TempH=temp4;TempL=temp&0x0F;TempL=TempL*6/10;/ 小数近似处理flag_get=0;4.3 液晶显示器 LCM16024.3.1 LCM1602 初始化LCM1602 显示函数如下 14端口定义如下:#define DATAPORT P0sbit LCM_RS=P20;sbit LCM_RW=P21;sbit LCM_EN=P22;17 /定义 P

47、0 口为 LCD 通讯端口 /数据 /命令端 /读/写选择端/* 液晶显示子函数 1 正常显示 */ void displayfun1(void) WriteCommandLCM(0x0c,1); / 显示屏打开,光标不显示,不闪烁,检测忙信号DisplayListChar(0,0,str0); DisplayListChar(0,1,str1);DisplayOneChar(3,0,hour/10+0x30); DisplayOneChar(4,0,hour%10+0x30);DisplayOneChar(6,0,minite/10+0x30);DisplayOneChar(7,0,mini

48、te%10+0x30);DisplayOneChar(9,0,seconde/10+0x30); DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(4,1,K/10+0x30);DisplayOneChar(5,1,K%10+0x30);DisplayOneChar(11,1,temp1/10+0x30); DisplayOneChar(12,1,temp1%10+0x30); DisplayOneChar(14,1,temp2/10+0x30); if(ON_OFF=0) DisplayOneChar(14,0,0x4f); Displa

49、yOneChar(15,0,0x46); else DisplayOneChar(14,0,0x4f); DisplayOneChar(15,0,0x4e); if(outflag=1) DisplayOneChar(0,0,0x7c);else18/液晶上显示小时/液晶上显示分/液晶上显示秒 /液晶上显示设定的温度/液晶上显示测得的温度/若温控标志为 0/ 液晶上显示不控温的标志/ 液晶上显示控温的标志/*液晶显示子函数2*/ void displayfun2(void)DisplayOneChar(4,1,K/10+0x30); DisplayOneChar(5,1,K%10+0x30);

50、 DisplayOneChar(0,0,0xef); WriteCommandLCM(0x0c,1); / 显示屏打开,光标不显示,不闪烁,检测忙信号DisplayListChar(0,0,str0); DisplayListChar(0,1,str1);DisplayOneChar(6,0,minite/10+0x30); DisplayOneChar(7,0,minite%10+0x30);DisplayOneChar(9,0,seconde/10+0x30); DisplayOneChar(10,0,seconde%10+0x30);DisplayOneChar(11,1,temp1/10+0x30);WriteCommandLCM(0x0f,1);DisplayOneChar(3,0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论