《冬暖式温室大棚环境监测系统设计.doc》由会员分享,可在线阅读,更多相关《冬暖式温室大棚环境监测系统设计.doc(38页珍藏版)》请在三一文库上搜索。
1、1 HEFEI UNIVERSITY 电子系专业导论论文 题题 目目 冬暖式温室大棚环境监测系统设计冬暖式温室大棚环境监测系统设计 班班 级级 1010 级自动化(级自动化(1 1)班)班 姓姓 名名 学学 号号 10050730281005073028 10050740231005074023 10050750111005075011 完成时间完成时间 2013/6/302013/6/30 指导老师指导老师 丁健丁健 胡晨曦胡晨曦 1 微型计算机控制技术课程设计任务书 论文 题目 冬暖式温室大棚环境监测系统设计设计 类型 导师 姓名 主要内容及目标 在国家大力发展农业的背景之下,我们所做的这
2、个项目是很有意义的。应用所学单片 机知识,将所学应用到实践中,培养实践与动手能力,真正把理论转化为实践。通过单片 机课程设计,熟练掌握 keil C 语言的编程方法,将理论联系到实践中去,提高我们的动 脑和动手的能力。 系统主要功能是监测大棚的温度并显示,用测得的光敏电阻的阻值表征光照强度 ,应 用于普通冬暖式温室大棚的温度监测和光照自动控制,另有定时功能可以设定允许触发的 时间范围。 应用 51 单片机作为核心处理器,使用 ds18b20 传感器将所收集的信号传送给单片机, 然后实现温度的显示,用光敏电阻在光照下阻值的变化转化成电压变化输入到单片机,进 行处理转化将其限定在一定范围内,超出范
3、围就会发出警报。可以定时只允许在设定的时 间范围内触发单片机引起报警及相关装置的动作。 具有的设计条件 1 PC 机一台,教学实验箱一台; 计划学生数及任务 3 人 (1):明确课题功能。 (2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。 (3):存储器资源分配 (4):编制程序,根据流程图来编制源程序 (5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。 1 计划设计进程 一、总体方案设计 二、控制系统的建模和数字控制器设计 三、硬件的设计和实现 1、 选择计算机字长(选用 51 内核的单片机) 2、 设计支持计算机工作的外围电路(EPROM、RAM、I/O 端口
4、、键盘、显示接口电路等); 3、 设计输入信号接口电路; 4、 设计输出控制电路; 5、 其它相关电路的设计或方案(电源、通信等)。 四、软件设计 1、 分配系统资源,编写系统初始化和主程序模块框图; 2、 其它程序模块(显示与键盘等处理程序)框图。 五、编写课程设计说明书,绘制完整的系统电路图(A3 幅面)。 2 目录目录 一、设计简介一、设计简介.1 1.1 系统的概述.1 1.2 系统的要求.1 1.3 系统的主要模块.1 1.3.1 本系统的主要组成部分.1 1.3.2 各部分的功能.2 1.3.3 工作原理.2 二、二、设计的理论基础设计的理论基础.2 2.1 AT89C52 的工作
5、原理3 2.1.1 CPU的结构.3 2.1.2 CPU的结构I/O口结构.3 2.1.3 程序存储器.3 2.1.4 定时器.4 2.1.5 中断系统.4 2.2 单总线数字温度传感器 DS18B20 检测电路.4 2.2.1 DS18B20简介.4 2.2.2 DS18B20 的性能特点4 2.2.3 DS18B20的测温原理.5 2.3 LCD1602 液晶显示器6 2.3.1 LCD1602简介.6 2.3.2 LCD1602的指令说明及时序.7 2.4 直流马达.8 2.4.1 马达工作的原理.8 2.4.2 马达的基本构造.9 2.5 蜂鸣器.9 三、三、系统的硬件组成电路设计系统
6、的硬件组成电路设计.9 3.1 系统总硬件设计.10 3.2 单总线数字温度传感器 DS18B20 检测电路.10 3 3.3 LCD1602 显示模块.11 四、四、 系统软件的设计系统软件的设计.11 4.1 主程序设计12 4.2 温度检测.13 4.2.1读取温度设计13 4.2.2 温度数据处理设计.14 4.3 液晶显示器 LCD1602.16 4.3.1 LCD1602初始化16 4.4 马达的控制17 4.5 报警器的启动.18 五、五、总结总结.18 六、六、参考文献参考文献.1 附录附录 A A2 附录附录 B B9 1 摘要摘要 我国南方温度炎热而漫长,大力推广大棚蔬菜的
7、种植来满足人们日常生活对蔬 菜的需要。随着人们生活水平的日益增长,对蔬菜的要求也较高,对大棚蔬菜的温 度控制就是一个重要因素。温度过高,蔬菜就会停止生长或者糜烂。 本系统就基于单片机 AT89C52 实现对大棚温度的自动化控制。用数字温度模块 DS18B20 采集,将采集到的温度用显示屏显示,再根据采集到的温度,控制马达的 转速,从而实现对大棚温度的控制。当温度大于 35,喇叭产生报警信号。 关键字关键字:温度 自动 控制 1 正文正文 一、设计简介一、设计简介 1.11.1 系统的概述系统的概述 应用自动控制和电子计算机实现农业生产和管理的自动化,是农业现代化的重 要标志之一。近年来电子技术
8、和信息技术的飞速发展,带来了温室控制与管理技术 方面的一场革命,随着“设施农业” 、 “虚拟农业”等新名称的出现。温度计算机控 制与管理系统正在不断吸收自动控制和信息管理领域的理论和方法,结合温室作物 种植的特点,不断创新,逐步完善,从而使温室种植业实现真正意义上的现代化, 产业化。 本系统以 AT89C52 单片机为控制核心的测控仪,主要是为了对蔬菜大棚内的温 度,地检测与控制而设计的。该测控仪具有检测精度高、使用简单、成本较低和工 作稳定可靠等特点,所以具有一定的应用前景。 1.21.2 系统的要求系统的要求 本系统通过单片机 AT89C52 控制,用 DS18B20 数字温度模块采集温度
9、。通过 LCD1602 液晶显示屏显示当前温度,当温度高于 20,马达将带动风扇的转动,实 现自动控制大棚里的温度。当检测到的温度高于 35时,发出报警信号。本设计将 实现大棚温度的自动化控制。 1.31.3 系统的主要模块系统的主要模块 1.3.1 本系统的主要组成部分 本系统为一个全自动温度检测与控制系统,由以下几个部分组成:AT89C52 单 片机,温度检测,显示电路,马达,及报警装置等组成。组成图如图 1-1。 2 图 1-1 温度自动控制构成图 由图 1-1 所示,本系统的核心部分是 AT89C52,此芯片是该电路的枢纽。由它 先控制着温度的检测,用检测到的温度实现马达的自动控制,以
10、及显示。若检测到 的温度高于设定的值,则发出报警信号。 1.3.2 各部分的功能 AT89C52 单片机:它是系统的中央处理器,担负着系统的控制和运算。温度检 测装置:DS18B20 数字温度模块对大棚内温度进行采集,将温度转换成数字。显示 设备:主要是用于显示检测到的大棚温度。马达:主要用于带动风扇的转动。报警 装置:产生报警信号。 1.3.3 工作原理 首先对硬件系统 DS18B20 定义端口为 P1.3,P2.4,P2.5,P2.6 和 P0 口控制液晶 LCD1602 的显示,定义端口 P1.5 为马达控制端口,P1.7 为喇叭控制端口。首先对温 度采集,将采集到的温度转换数字,采集到
11、的温度由 LCD 液晶显示屏显示。再将采 集到的温度所属软件设置的哪个范围,而控制 P1.5 的电平输出。 二、二、设计的理论基础设计的理论基础 整个控制系统由软件程序设计。根据系统具体要求,可以对具体部分进行分析 3 设计。但要实现对各部分的设计,需要充分了解各部分的理论基础。本设计系统的 基本组成单元包括:单片机控制单元,DS18B20 温度检测电路,LCD1602 显示屏,直 流马达,蜂鸣器报警装置。 2.12.1 AT89C52AT89C52 的工作原理的工作原理 2.1.1 CPU 的结构 CPU 是单片机内部的核心部分,是单片机的指挥和执行机构,它决定了单片机 的主要功能特性。从功
12、能上看,CPU 包括两个基本部分:运算器和控制器1。 2.1.2 CPU 的结构 I/O 口结构 AT89C52 单片机有 4 个 8 位并行 I/O 接口,记作 P0、P1、P2 和 P3,每个端口都 是 8 位准双向口,共占 32 根引脚。每一条 I/O 线都能独立地用作输入或输出。每个 端口都包括一个锁存器,一个输出驱动器和输入缓冲器,作输出时数据可以锁存, 作输入时数据可以缓冲,但是这四个通道的功能完全不同。如图 2-1。 图 2-1 AT89C52 引脚及管脚功能 2.1.3 程序存储器 程序存储器通过 16 位程序计数器寻址,寻址能力为 64K 字节。这能在 6K 地址 空间内任意
13、寻址,但没有指令使程序能控制从程序存储器空间转移到数据存储空间。 对 AT89C52 芯片来说,片内有 8K 字节 ROM/EPROM,片外可扩展 60K 字节 EPROM,片 4 内和片外程序存储器统一编址。 2.1.4 定时器 定时器 T0 具有方式 0、方式 1、方式 2 和方式 3 四种工作方式。T1 具有方式 0、方式 1 和方式 2 三种工作方式。不管是定时工作方式还是计数方式,定时器 T0 和 T1 在对内部时钟或对外部时间计数时,不占用 CPU 时间,除非定时器/计数器溢 出,才可能中断 CPU 的当前操作。由此可见,定时器是单片机中效率最高而且工作 灵活的部件。 2.1.5
14、中断系统 中断是指中央 CPU 正在处理某事情的时候,外部发生了某一事件,请求 CPU 迅 速去处理,于是,CPU 暂时中断当前的工作,转入处理所发生的事件;中断服务处 理完成以后,再回到原来被中断的工作,这样的过程称为中断2。 2.22.2 单总线数字温度传感器单总线数字温度传感器 DS18B20DS18B20 检测电路检测电路 由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度, 需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用 DALLAS 公司的数字温度传感器 DS18B20 作为测温元件。 2.2.1 DS18B20 简介 DS18B20 数字温度
15、传感器采用 DS18B20 可组网数字温度传感器芯片封装二成, 具有耐磨耐碰,体积小使用方便,封装形式多样等优点,适用于各种狭小空间设备 数字温度和控制领域3。 2.2.2 DS18B20 的性能特点 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线 供电。 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可 实现微处理器与 DS18B20 的双向通讯。 DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温。 DS18B20 在使用中不需 要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路
16、内。 温范围55125,在-10+85时精度为0.5。零待机功耗。 可编 5 程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625,可实现高精度测温。 在 9 位分辨率时最多在 93.75ms 内把温度转换为 数字,12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快。 DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的 温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的管脚排列、各种封装形式,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器 件提供电源;GND
17、 为地信号;VDD 为可选择的 VDD 引脚。当工作于寄生电源时,此引 脚必须接地。 图 3-1 DS18B20 的引脚功能图 图 3-2 DS18B20 的内部结构图 2.2.3 DS18B20 的测温原理 DS18B20 的测温原理,低温度系数晶振的振荡频率受温度的影响很小,用于产生 6 固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明 显改变,所产生的信号作为减法计数器 2 的脉冲输入,还隐含着计数门,当计数门 打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温 度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-
18、55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器 被预置在-55 所对应的一个基数值4。 另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此 读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。操作协议为:初始 化 DS18B20发 ROM 功能命令发存储器操作命令处理数据5。 2.32.3 LCD1602LCD1602 液晶显示器液晶显示器 2.3.1 LCD1602 简介 字符型 LCD1602 通常有 14 条引脚线或 16 条引脚线的 LCD,多出来的 2 条线是 背光电源线 VCC(15 脚)和地线 GN
19、D(16 脚),其控制原理与 14 脚的 LCD 完全一样,引 脚定义如表 2-1 所示: 表 2-1 引脚接口说明表 编号符号引脚说明编号符号引脚说明 1VSS 电源地 9D2 数据 2VDD 电源正极 10D3 数据 3VL 液晶显示偏压 11D4 数据 4RS 数据/命令选择 12D5 数据 5R/W 读/写选择 13D6 数据 6E 使能信号 14D7 数据 7D0 数据 15BLA 背光源正极 8D1 数据 16BLK 背光源负极 第 1 脚:VSS 为地电源。 第 2 脚:VDD 接 5V 正电源。 第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比 度最
20、高,对比度过高时会产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比 度。 第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存 7 器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电 平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。 第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 714 脚:D0D7 为 8 位双向数据线。 第 15 脚:背光源正极。 第 16 脚:背光源负
21、极。 2.3.2 LCD1602 的指令说明及时序 LCD1602 液晶模块内部的控制器共有 11 条控制指令6,如表 2-2 所示: 表 2-2 控制命令表 序号指令 RSR/WD7D6D5D4D3D2D1D0 1 清显示 0000000001 2 光标返回 000000001* 3 置输入模式 00000001I/DS 4 显示开/关控制 0000001DCB 5 光标或字符移位 000001S/C R/L* 6 置功能 00001DLNF* 7 置字符发生存贮器地址 0001 字符发生存贮器地址 8 置数据存贮器地址 001 显示数据存贮器地址 9 读忙标志或地址 01BF 计数器地址
22、10 写数到 CGRAMDDRAM) 10 要写的数据内容 11 CGRAM 或 DDRAM 读数 11 读出的数据内容 LCD1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 1 为高电平、0 为低电平。 指令 1:清显示,指令码 01H,光标复位到地址 00H 位置。 指令 2:光标复位,光标返回到地址 00H。 指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 8 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低 电平表示关显示 C:控制光标的开与
23、关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低 电平时为单行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平 时显示 5x10 的点阵字符。 指令 7:字符发生器 RAM 地址设置。 指令 8:DDRAM 地址设置。 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能 接收命令或者数据,如果为低电平表示不忙。 指令 10:写数据。 指令 11:读
24、数据。 LCD1602 读写时序如表 2-3 所示: 表 2-3 基本操作时序表 读状态输入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=L,D0D7=数据,E=高脉冲 输出无 2.42.4 直流马达直流马达 电动马达,又称为马达或电动机,是一种将电能转化成机械能,并可再使用机 械能产生动能,用来驱动其他装置的电气设备。 电动机种类非常繁多,但可大致分 为交流电动机及直流电动机以用于不同的场合。 2.4.1 马达工作的原理 马达
25、的旋转原理的依据为佛来明左手定则,当一导线置放于磁场内,若导线通 上电流,则导线会切割磁场线使导线产生移动。 电流进入线圈产生磁场,利用电流 9 的磁效应,使电磁铁在固定的磁铁内连续转动的装置,可以将电能转换成力学能。 与永久磁铁或由另一组线圈所产生的磁场互相作用产生动力 直流马达的原理是定子 不动,转子依相互作用所产生作用力的方向运动7。 电枢:可以绕轴心转动的软铁芯缠绕多圈线圈。 场磁铁:产生磁场的强力永久磁 铁或电磁铁。 集电环:线圈约两端接至两片半圆形的集电环,随线圈转动,可供改 变电流方向的变向器。每转动半圈,线圈上的电流方向就改变一次。 电刷:通常使 用碳制成,集电环接触固定位置的
26、电刷,用以接至电源。 2.4.2 马达的基本构造 电动机的种类很多,以基本结构来说,其组成主要由定子和转子所构成。 定子 在空间中静止不动,转子则可绕轴转动,由轴承支撑。 定子与转子之间会有一定空 气间隙,以确保转子能自由转动。 定子与转子绕上线圈,通上电流产生磁场,就成 为电磁铁,定子和转子其中之一亦可为永久磁铁8。 2.52.5 蜂鸣器蜂鸣器 蜂鸣器是一种一体化结构的电子讯响器。蜂鸣器主要分为压电式蜂鸣器和电磁 化蜂鸣器两种类型。本系统采用的是电磁式蜂鸣器9。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源 后,振荡器产生的音频信号电流通过电磁铁圈,使电磁铁线圈产生磁
27、场,振动膜片 在电磁线圈和磁铁的相互作用下,周期性地振动发声。蜂鸣器发声原理是电流通过 电磁铁圈,使电磁线圈产生磁场来驱动振动膜发声的。程序中改变单片机引脚输出 波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外, 改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。 10 三、三、系统的硬件组成电路设计系统的硬件组成电路设计 系统的硬件组成部分包括:主控制器 AT89C52 单片机、温度传感器 DS18B20、 显示电路 LCD1602、马达、报警装置等构成。 3.13.1 系统总硬件设计系统总硬件设计 首先对硬件系统 DS18B20 定义端口为 P1.3,P2.
28、4,P2.5,P2.6 和 P0 口控制液晶 LCD1602 的显示,定义端口 P1.5 为马达控制端口,P1.7 为喇叭控制端口。首先对温 度采集,将采集到的温度转换数字,采集到的温度由 LCM 液晶显示屏显示。再将采 集到的温度所属软件设置的哪个范围,而控制 P1.5 的电平输出。电路原理图如 3-1 所示: 图 3-1 电路原理图 3.23.2 单总线数字温度传感器单总线数字温度传感器 DS18B20DS18B20 检测电路检测电路 DQ 为数据输入/输出引脚,连接 P1.3。开漏单总线接口引脚。当被用着在寄生 11 电源下,也可以向器件提供电源,GND 为地信号;VCC 为电源信号。图
29、 3-2 为 DS18B20 检测电路。 图 3-2 DS18B20 检测电路 3.33.3 LCD1602LCD1602 显示模块显示模块 用 AT89C52 的 P0 口作为数据线,用 P2.4、P2.5、P2.6 分别作为 LCD 的 E、R/W、RS。其中 E 是下降沿触发的片选信号,连接 P2.6,R/W 是读写信号,连接 P2.5,RS 是寄存器选择信号,连接 P2.4。图 3-3 为 LCD1602 的硬件连接。 图 3-3 LCD1602 的硬件连接 VEE 用连接阻值为 10K 的电阻,主要用于调节对比度的调整。接正电源时对比 度最低,接地电源时,对比度最高。对比度过高时,会
30、产生“鬼影” 。因此连接一 10K 的电阻用以调整10。 12 四、四、 系统软件的设计系统软件的设计 一个应用系统要完成各项功能,首先必须有较完善的硬件做保证。同时还必须 得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完 成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完 成的工作,用软件编和有时会变得很简单。因此充分利用其内部丰富的硬件资源和 软件资源。 程序设计语言有三种:机器语言、汇编语言、高级语言。本系统运用的是高级 语言所编写,也就是 C 语言。 4.14.1 主程序设计主程序设计 从软件的功能不同可分为四大类:一是检测软件,它是用来检
31、测温度。二是显 示部分,用来显示所检测到的温度。三是调控部分,用来控制马达的转速。四是当 温度大于 35,蜂鸣器发出报警信号。每一个执行软件也就是一个小的功能执行模 块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义。图 4-1 为软 件设计流程图。 13 开始 初始化 温度检测 LCD 温度显示 结束 马达带动 风扇 发出警报 信号 大于 20 度大于 35 度 小于 20 度 图 4-1 软件设计流程图 4.24.2 温度检测温度检测 4.2.1 读取温度设计 DSl8B20 可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电 容器中;当单信号线为低电平时,将该电源断开
32、,直到信号线变为高电平重新接上 寄生电源为止。此外,还可外接 5 V 电源,给 DS18B20 供电11。图 4-2 14 图 4-2 DS18B20 读取温度流程图 读取温度子程序的主要功能是读出 RAM 中的 9 个字节,在读出时需进行 CRC 校 验,校验有错时不进行温度数据的改写。DS18B20 的各个命令对时序的要求特别严 格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高 低位在后,低位在前,共 12 位数,小数 4 位,整数 7 位,还有一位符号位。读取温 度的主程序如下: unsigned int ReadTemperature(void) unsigne
33、d char a=0; unsigned int b=0; unsigned int t=0; Init_DS18B20(); WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 delay(200); Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读 9 个寄存器) 前两个就是 15 温度 a=ReadOneChar(); /低位 b=ReadOneChar(); /高位 b4; TempL=temp Tem
34、pL=TempL*6/10;/小数近似处理 flag_get=0; 4.34.3 液晶显示器液晶显示器 LCD1602LCD1602 4.3.1 LCD1602 初始化 端口定义如下: 17 sbit RS = P24;/Pin4 sbit RW = P25; /Pin5 sbit E = P26;/Pin6 #define Data P0 /数据端口 函数显示子码:用数组和指针将字符逐个显示出来13。 /*/ void ShowChar(unsigned char pos,unsigned char c) unsigned char p; if (pos=0x10) p=pos+0xb0;
35、/是第二行则命令代码高 4 位为 0xc else p=pos+0x80; /是第二行则命令代码高 4 位为 0x8 WriteCommand (p);/write command WriteData (c); /write data /* */ void ShowString (unsigned char line,char *ptr) unsigned char l,i; l=line20) mDelay(30); Fan=0; mDelay(150);/占空比为 0.9375 4.54.5 报警器的启动报警器的启动 当温度低于 35时,蜂鸣器不工作。当检测到的温度高于 35时,蜂鸣器发出
36、 频率为 2HZ 的报警声。 报警声控制的主程序如下: if(TempH35) /产生报警信号 19 Tru=0; mDelay(10); 频率为 2HZ Fan=0; mDelay(150); 五、五、总结总结 通过这次对大棚温度自动控制的设计与制作,让我们合作完成了一个完整的设 计,虽然这次的实习做的温度显示以及马达的控制都相对比较简单,但是也给将来 进入硬件开发有了一个起点的基础。在这次实习的过程,刚开始的时候,真的有点 不知所措,因为学习完单片机已有数日,以及微机原理课程,一些知识已忘记。幸 好有三个星期的时间来准备。画电路原理图,一开始就觉得有点烦,因为 protues 软件安装的版
37、本较低,做起来非常的费时又费力,一些芯片,还不可以仿真。常常 有解决不了的问题,就上网查询,或者阅览资料书。虽然这项工作枯燥无味,但锻 炼了我们的意志,耐性,坚韧,和团队协作的能力。因为常会碰到很难解决的问题, 所以要坚持不懈。这次设计是一个学习新知识、巩固加深所学课本理论知识的过程, 它培养了我们综合运用知识的能力,独立思考和解决问题的能力。它不仅加深了我 对单片机技术课程的理解,还让我感受到了电子设计的乐趣,也让我更好的运用 WORD 文档,对我来说,这次课程设计是非常有意义的。 任务分配:本设计由阚侃同学完成硬件电路设计,由曹东同学完成程序编译, 由詹跃斌同学完成报告编写,本设计是由小组
38、三人通力合作完成的一份课程设计。 1 六、六、参考文献参考文献 1 谢自美,尹仕,肖看,赵云娣,罗杰.电子线路综合设计M.武汉:华中科 技大学出版社, 2007. 2 杨旭方.单片机控制与应用实训教程M.北京: 电子工业出版社, 2010.5. 3 夏继强. 单片机应用设计培训教程M.北京:北京航空航天大学出版社, 2008. 4 高峰.单片机微型计算机与接口技术M.北京:科学出版社.2003 5 李广弟, 朱月秀, 王秀山. 单片机基础M.北京:北京航空航天大学出版 社, 2001.7. 6 胡汉才.单片机原理及其接口技术M.北京: 清华大学出版社, 2004 7 求是科技.单片机典型模块设
39、计实例导航M.北京: 人民邮电出版社, 2004 8 王化详,张淑英.传感器原理M天津: 天津大学出版社, 2002.5 9 王港元.电工电子实践指导M江西: 江西科学技术出版社, 2005.6 10 杨素行著.模拟电子技术基础(第二版) M.北京: 高等教育出版社, 2006. 11 陈静.单片机应用系统中的编程语言J.淮北职业技术学院学报.2009.8(1): 43-44. 12 仝庆华.基于 Proteus 单片机虚拟实验室J.山西大同大学学报(自然科学 版).2009.25(2):23-25. 13 包敬海,侯昭武,吴国辉.基于 AT89C52 单片机设计智能锅炉控制系统J. 北京中国
40、科技信息.2009 14 周红丽,张天开等基于单片机的九路温度监控系统J 青岛:微计算 机信息2008. 15 刘华东,张亚华.单片机原理与应用(第二版)M.北京:电子工业出版社. 2006:1-5. 2 附录附录 A A *- 名称:基本单片机 AT89C52 的大棚温度自控系统 -*/ #include #include“stdio.h“ #include #include #include“lcd1602.h“ #define uchar unsigned char #define uint unsigned int; /*/ /* 定义端口 */ /*/ sbit DQ=P13;/ds
41、18b20 端口 sbit Fan=P15; /风扇端口 sbit Tru=P17;/喇叭的端口 sfr dataled=0x80;/显示数据端口 /*/ /* 全局变量 */ /*/ uint temp,i,TempH; uchar flag_get,count,num,minute,second,x; long str6; 3 /*/ /* 函数声明 */ /*/ void delay1(uchar MS); unsigned int ReadTemperature(void); void Init_DS18B20(void); unsigned char ReadOneChar(void
42、); void WriteOneChar(unsigned char dat); void delay(unsigned int i); /*/ /* 延时函数声明 */ /*/ void mDelay(unsigned char j) unsigned int i; for(;j0;j-) for(i=0;i20) mDelay(10); Fan=0; mDelay(150); 5 for(i=1;i4; TempL=temp TempL=TempL*6/10;/小数近似处理 flag_get=0; /*/ /* 定时器中断 */ /*/ 6 void tim(void) interrupt
43、 1 using 1/中断,用于温度检测间隔 TH0=0xef;/定时器重装值 TL0=0xf0; num+; if (num=50) num=0; flag_get=1;/标志位有效 second+; if(second=60) second=0; /*/ /* 延时函数 */ /*/ void delay(unsigned int i)/延时函数 while(i-); /*/ /* 初始化 */ /*/ void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ 复位 delay(8); /稍做延时 7 DQ = 0; /单片机将 DQ 拉低 delay(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay(10); x=DQ; /稍做延时后 如果 x=0 则初始化成功 x=1 则初始化失败 delay(5); /*/ /* 读一个字节 */ /*/ unsigned char ReadOneChar(void) unsigned char i=0; unsigned cha
链接地址:https://www.31doc.com/p-3314016.html