大棚温湿度自动控制系统设计-毕业设计

上传人:gbs****77 文档编号:9398794 上传时间:2020-04-05 格式:DOC 页数:56 大小:2.92MB
返回 下载 相关 举报
大棚温湿度自动控制系统设计-毕业设计_第1页
第1页 / 共56页
大棚温湿度自动控制系统设计-毕业设计_第2页
第2页 / 共56页
大棚温湿度自动控制系统设计-毕业设计_第3页
第3页 / 共56页
点击查看更多>>
资源描述
西华大学毕业设计说明书 大棚温湿度自动控制系统设计 摘 要 本设计是基于 STC89C52RC 单片机的大棚温湿度自动控制系统 采用 SHT10 作为温湿度传感器 LCD1602 液晶屏进行显示 SHT10 使用类似于 I2C 总线的 时序与单片机进行通信 由于它高度集成 已经包括 A D 转换电路 所以使用方便 而且准确 耐用 LCD1602 能够分两行显示数据 第一行显示温度 第二行显示湿度 这个控制系统能够测量温室大棚中的温度和湿度 将其显示在液晶屏 LCD1602 上 同 时将其与设定值进行对比 如果超出上下限 将进行报警并启动温湿度调节设备 此 外 还可以通过独立式键盘对设定的温湿度进行修改 通过设计系统原理图 用 Proteus 软件进行仿真 证明了该系统的可行性 关键词 STC89C52RC SHT10 I 2C 总线 独立式键盘 温湿度自动控制 Abstract This design is an automatic temperature and humidity controller for greenhouses with the STC89C52RC MCU being its main controller It uses the SHT10 as the temperature and humidity sensor and the LCD1602 to display the messages The SHT10 uses a timing sequence much like the I2C to communicate with the micro controller Because it s a highly integrated chip it already includes an analog to digital converter Therefore it s quite convenient to use and also accurate and durable The LCD1602 can display two lines of messages with the first line for temperature and the second line for humidity The design can measure the temperature and humidity in a greenhouse and then display it on a LCD1602 Meanwhile it compares the data with the set limit If the limit is exceeded then the system will send out a warning using a buzzer and activate the temperature and humidity controlling equipment Besides the set limit can be modified with the independent keyboard Through schematic design and Proteus simulation the feasibility of this design has been proved Keywords STC89C52RC SHT10 I2C bus independent keyboard temperature and humidity control 西华大学毕业设计说明书 目 录 1 前言 1 2 总体方案设计 3 2 1 温湿度控制系统的设计指标要求 3 2 2 系统设计的原则 3 2 2 1 可靠性 3 2 2 2 性价比 3 2 3 方案比较 4 2 3 1 方案一 4 2 3 2 方案二 4 2 4 方案论证 5 2 5 方案选择 5 3 单元模块设计 6 3 1 各单元模块功能介绍及电路设计 6 3 1 1 单片机最小系统 6 3 1 2 液晶显示模块 8 3 1 3 温湿度传感器模块 8 3 1 4 报警电路的设计 9 3 1 5 输出电路设计 10 3 1 6 电源的设计 12 3 1 7 按键电路设计 13 3 1 8 串口通信电路 14 3 2 元件清单 15 3 3 关键器件的介绍 17 3 3 1 STC89C52RC 17 3 3 2 SHT10 温湿度传感器 19 4 系统软件设计 22 4 1 软件设计的总体结构 22 4 2 主要模块的设计流程框图 24 4 2 1 主程序流程图 24 4 2 2 SHT10 子程序流程图 25 西华大学毕业设计说明书 4 2 3 LCD1602 子程序流程图 27 4 2 4 输出控制子程序流程图 28 4 2 5 键盘扫描子程序流程图 29 4 3 软件设计所用工具 31 4 3 1 Keil uVision4 31 4 3 2 Proteus 31 5 系统调试 32 5 1 用 Proteus 搭建仿真总图 32 5 2 用 Keil 对程序进行调试 编译 33 6 结论 36 6 1 系统的功能 36 6 2 系统的指标参数 36 6 3 系统功能分析 36 7 总结与体会 38 8 致谢 39 9 参考文献 40 附录 1 系统的电路原理图 41 附录 2 系统仿真总图 42 附录 3 系统实物照片 43 附录 4 系统源程序 44 附录 5 英文参考资料 46 1 中文翻译 46 2 英文原文 49 第 0 页 西华大学毕业设计说明书 1 前言 温室大棚作为一种高效的农业生产方式 与传统农业生产方式相比具有很大的优 点 温室农业生产可以获得高产和优质的蔬菜 花卉 瓜果 不仅可改变这些产品按 自然季节供应的模式 延长其供应期 而且可在不同地方进行种植 达到所谓 地不 分东西南北 食不分春夏秋冬 温室农业可以改变传统农业劳动力冬闲夏忙的安排 以小面积获得高产 减轻大面积的土地压力 温室农业采用适时适量供水的优化用水 同时配以微灌和高湿环境 可达到农业用水高效高产 按产品的数量平均计算 节省 水分量是很大的 这种设施系统可以从简易到全自动控制 适宜各种状况下的选择 特别是对于日光温室 塑料大棚 相对投资较少 若能降低成本 采用经久耐用的低 成本采光材料 发展前景将更为广阔 即使在一些偏远地区的农村 场所 也可以修 建单个的温室和塑料大棚 进行环境控制下的蔬菜和瓜果的生产 改变这些地区的生 活条件 要想实现温室大棚高效增产的作用 对温湿度的准确控制是极其重要的 温室内 空气湿度的日变化受天气 加温及通风换气量的影响 阴天或灌水后室内空气湿度几 乎都在 90 以上 晴天在傍晚关窗至次日早晨开窗前温室维持在高湿度 室内湿气遇 冷后凝结成水滴附着在薄膜或玻璃的内表面上 待到加温或日出后 室内温度上升 湿度逐渐下降 附着在屋顶上的水滴随之消失 温湿度的较大变化对农作物的生长十 分不利 研究结果表明 由于植物体内水分不足导致气孔关闭 首先妨碍了 CO2 的交 换 而使饱和作用显著下降 特别是在缺水状况加剧时 给细胞原生质的生化作用带 来影响 光合作用显著下降 而温度在夜间下降过低也会影响光合作用的效率 因此 非常有必要使用一套温湿度控制系统 以维持温室大棚内的温度 湿度在 一个合适的范围 实现大棚内农作物的水分 养分的有效供给 提高光合作用的效率 从而达到增产目的 传统的温湿度控制是在温室大棚内部悬挂温 湿度计 通过读取温 湿度值进而 了解实际的温度和湿度 然后根据现检测的温湿度与额定值进行比较 看温湿度是否 超过限定值 然后进行相应的通风或者相应的洒水 这些操作都是人工的 耗费了大 量的人力以及物力 现在 随着国家经济的迅速发展 农业产业规模的进一步提高 大棚中培育出的农产品品种数量的逐渐增多 对于数量较多而又大型的大棚 传统的 温湿度控制措施就出现了局限性 这要求我们提高温湿度检测与控制技术 来满足对 温室大棚建设的需要 第 1 页 西华大学毕业设计说明书 在本设计中 采用单片机来控制温湿度 不仅具有廉价 配置简单和灵活的优势 而且可以大大提高所测温湿度的技术指标 从而可以提高产品的数量和质量 单片机 因为它具有功能强 高可靠性 体积小 造价便宜和开发周期短这些优势 广泛用于 自动化测量和控制现场设备 特别是在日常生活中发挥的日益重要的作用 这次选用 STC89C52RC 作为主控制器 可以从按键电路输入设定的温湿度 通过 温湿度传感器 SHT10 对温度 湿度信号进行采集 然后通过 I2C 总线与单片机通信 并将温湿度显示在液晶屏 LCD1602 上 单片机把它们与设定的值进行对比后决定是否 报警 并启动空调设备对温湿度进行调节 第 2 页 西华大学毕业设计说明书 2 总体方案设计 2 1 温湿度控制系统的设计指标要求 本文要设计的大棚温湿度自动控制系统 要能够及时 准确地对温室大棚内的温 度 湿度进行采集 将其显示在 LCD1602 液晶显示器上 然后与设定的上下限值进行 比较 如果超出限制则启动温度 湿度控制设备 并通过蜂鸣器报警 直到温湿度回 到规定的范围 另外 还要能够通过按键修改设定的上下限 为了能够满足农业生产 的需要 此次设计要达到一下指标 1 工作环境 温室大棚 2 温度测量误差 1 3 测温范围 0 55 4 湿度测量误差 5 RH 5 测湿范围 0 100 RH 6 通过键盘电路修改上下限 有 6 温湿度报警 有 2 2 系统设计的原则 2 2 1 可靠性 可靠性是在设计过程中应该优先考虑的一个因素 一个控制系统必须要能稳定 可靠地工作 才能投入到生产实践中去 如果系统的可靠性不能达标 那么系统出现 故障的可能就会增大 造成很大的损失 这种损失不仅包括经济上和信誉上的损失 而且可能会对人身安全产生威胁 要提高控制系统的可靠性 那么就要注意以下几个方面 选用的元器件要有很高 的可靠性 由于供电电源很容易产生干扰 所以应该对其采用抗干扰措施 对输入输 出通道也一样 要采用抗干扰措施 在对电路板的设计时 要合理的布线和接地 软 硬件都要进行滤波 系统要有自己诊断功能等 2 2 2 性价比 性价比也是一个系统设计中所要考虑的重要因素 性价比高的产品更容易被消费 者接收 但是设计过程中不能盲目地追求性价比 它应该建立在对产品性能要求的基 础上 首先要满足性能要求 然后再设法降低产品成本 第 3 页 西华大学毕业设计说明书 2 3 方案比较 2 3 1 方案一 采用 PLC 作为主控制器 使用 PLC 的最大优点在于 PLC 使用梯形图进行编程 编程语言形象直观 难度 较低 因此开发周期短 便于扩展 而且 PLC 抗干扰能力强 工作稳定可靠 这一点 已被长期的工业控制实践所证明 图 2 1 用 PLC 作为主控制器的控制系统 2 3 2 方案二 使用单片机进行控制 采用 STC89C52RC 单片机作为主控制器 可以用 C 语言进行编程 由于它支持 ISP 在线编程 因此可以通过 RS232 串口将程序烧录到单片机中 很方便 温湿度传 感器 SHT10 通过 I2C 总线与单片机连接 继电器 键盘输入 加热器 制冷器 加湿器 除湿器 液晶显示 蜂鸣器报警 温湿度传感器 PLC 温 室 大 棚 第 4 页 西华大学毕业设计说明书 图 2 2 用单片机作为主控制器的控制系统 2 4 方案论证 从功能上看 两种控制器都能满足要求 PLC 在工业控制领域用得比较多 编程 简单 而且抗干扰能力强 但是本系统是用于温室大棚 并没有其他大型工业设备的 干扰 单片机用 C 语言编程 相对 PLC 的梯形图要复杂得多 但是编程更为灵活 可 以实现复杂的功能 从价格方面上看 单片机就比 PLC 具有很大的优势 一个单片机只要几块钱 而 一个很一般的 PLC 一般也要几百上千元 另外 中国是农业大国 随着温室大棚越来 越普及 农村对温湿度控制系统的需求也会越来越旺盛 因此虽然用单片机开发的周 期较长 但是一旦完成开发 后期生产环节的边际成本很小 而基于 PLC 的控制系统 受制于 PLC 的高昂价格 价格难以降低 2 5 方案选择 PLC 和单片机都能作为主控制器进行设计 但是在价格方面单片机具有巨大优势 综上所述 本次设计采用单片机作为主控制器 温湿度传感器 单片机 加热器 制冷器 加湿器 除湿器 键盘输入 蜂鸣器报警 继电器 液晶显示 温 室 大 棚 第 5 页 西华大学毕业设计说明书 3 单元模块设计 3 1 各单元模块功能介绍及电路设计 3 1 1 单片机最小系统 图 3 1 单片机最小系统 单片机最小系统包括单片机 电源电路 时钟电路和复位电路 时钟电路用于产生单片机工作时候所必须的时钟信号 单片机在时钟信号的节拍 下逐条地执行指令 单片机有两种时钟信号产生方式 一种是内部时钟方式 另一种 是外部时钟方式 外部时钟方式是把已有的时钟信号从 XTAL1 或 XTAL2 送入单片 一般用于有多个单片机的情况 所以本设计中时钟电路采用内部时钟方式 选用 12M 的晶振和两个 30pF 的电容与片内的高增益反相放大器构成一个自激振荡器 第 6 页 西华大学毕业设计说明书 电源电路后面的模块中会单独提到 用 5V 的直流电源 下面着重论述一下复位 电路 图 3 2 上电 手动复位电路 单片机的复位主要有上电复位和手动复位 之所以要进行复位 目的就是为了让 单片机进入初始状态 比如让 PC 指向 0000H 这样单片机才能从头运行程序 因此 上电的时候就要让单片机复位一次 在运行过程中 如果程序出错 也需要进行手动 复位 本设计中的复位电路就是上电 手动复位电路 复位时要让 STC89C52RC 的 RST 引脚得到 2 个机器周期以上的高电平 先说说上电复位的工作原理 当单片机上电时 电源 5V 的 Vcc 通过 10K 的电阻对 10uF 的电容进行充电 刚上电时 有较大的电流 从 Vcc 经电容 电阻流向 GND 由于电容两端的电压不可突变 因此仍然为 0V 于 是电阻的两端分得 5V 的电压 即 RST 引脚此时的电势为 5V 随着充电的继续进行 电流会逐渐减小 电阻两端的电压 UR IR 也逐渐减小 即 RST 引脚的电势逐渐减小 过了一定时间 RST 引脚两端的电压下降到不再是高电平 只要这个充电的时间大于 单片机两个机器周期 就能使单片机复位 程序运行过程中如果跑飞了 程序运行出错或操作错误使系统处于死锁状态时 就需要用到手动复位 手动复位就是在上电复位电路的电容两边并联一个微动开关 需要手动复位时将其按下 使之接通 RST 获得高电平 而且人按动按钮的时间肯定 是超过两个机器周期的 于是单片机复位 第 7 页 西华大学毕业设计说明书 3 1 2 液晶显示模块 测量到的温湿度值将显示到液晶屏 LCD1602 上 它可以显示 2 行 每行 16 个字 符 LCD1602 共有三个存储器 它们是 CGROM CGRAM 和 DDRAM CGROM 用 来保存 LCD1602 内部固化的一些字符的字模 比如英文的 26 个字母的大小写 CGRAM 用来保存用户自己取的字模 比如 如果要显示汉字 就必须自己去汉字字 模 在这里我们都用英语字母 故不用 CGRAM DDRAM 用来存储要显示的字符的 字模 它和屏幕上的位置是对应的 第一行为 00H 到 0FH 第二行为 40H 到 4FH 在 这里需要注意的是 在向 LCD1602 写入显示数据存储器地址时 根据控制指令的格式 最高位 D7 为 1 所以写入的数据为 第一行 80H 到 8FH 第二行 C0H 到 CFH 它与单片机的接口电路如下图所示 图 3 3 LCD1602 与单片机的接口电路 3 1 3 温湿度传感器模块 温湿度传感器选用瑞士 Sensirion 公司生产的 SHT10 SHT1X 系列共有三个型号 SHT10 SHT11 SHT15 他们都是 SMD 贴片封装的 他们依次性能越来越好 其中 SHT10 属于经济型的温湿度传感器 三者的温湿度性能如下图所示 第 8 页 西华大学毕业设计说明书 图 3 4 SHT1X 系列各型号传感器的湿度 温度最大误差 从曲线中可以看出 无论是湿度还是温度 SHT10 的误差都是最大的 SHT15 误 差最小 但是它们的价格也相差很大 SHT10 多为二三十元一个 而 SHT15 价格上百 因此 从满足大棚温湿度监测的要求来看 SHT10 已经足够 故选用 SHT10 SHT10 与单片机的接口电路如下所示 图 3 5 SHT10 与单片机的接口电路 SHT10 采用类似于 I2C 的两线制串行总线 一根是时钟线 一根是数据线 数据 线要通过一个上拉电阻接到 VCC 目的是避免信号冲突 使单片机的引脚只提供低电 平 要得到高电平则使该引脚悬空 由上拉电阻提供高电平 3 1 4 报警电路的设计 当大棚内的温湿度超过上下限时 除了需要启动温湿度调节器之外 还需要进行 报警 这里用到的是蜂鸣器 蜂鸣器为一种采用一体化结构的电子器件 采用了直流 电压来供电 广泛的应用到了计算机 报警器 复印机 电子玩具 电话机 汽车电 子设备 定时器等电子产品之中用作发声器 第 9 页 西华大学毕业设计说明书 蜂鸣器分为有源蜂鸣器和无源蜂鸣器 有源蜂鸣器由于内部集成了振荡源 所以 使用直流电压就可以驱动它鸣叫 无源蜂鸣器内部没有振荡源 因此一般使用 2K 5K 方波来驱动 本设计中使用的是有源蜂鸣器 在它两端加载 5V 的直流电压就 可以使之鸣叫 报警电路设计如下图 图 3 6 报警电路图 蜂鸣器工作电流一般为 10mA 而单片机的 I O 口只能承受几毫安的电流 因此 需要加三极管进行驱动 如上图所示 单片机的 I O 口中的 P1 6 接 PNP 型三极管的基 极 当 P1 6 为低电平时 三极管导通 5V 的电压加载到蜂鸣器两端 于是蜂鸣器鸣 叫 当 P1 6 高电平时 三极管截至 蜂鸣器不鸣叫 3 1 5 输出电路设计 当温湿度超出限定值后 单片机将输出控制信号 启动加热 制冷 加湿 除湿 设备 弱电控制强电 首先要用到继电器来控制这些大功率的设备 而且为了进一步 加强弱电和强电的电气隔离 减少强电设备对单片机控制系统的干扰 需要在前一级 加光耦进行隔离 光耦的驱动能力有限 一般电流只能达到 30mA 左右 不足以驱动 继电器 因此再加一个三极管放大电流 原理如图 3 7 所示 第 10 页 西华大学毕业设计说明书 图 3 7 控制电路 输出电路有四组 每一组由一个光耦 一个三极管 一个继电器组成 这四组输 出电路分别控制加湿 除湿 加热 制冷的设备 光耦选用 TLP521 4 它是 Toshiba 公司生产的四路光耦 由单片机直接驱动 51 单片机 P0 口所能承受的灌电流最大 可以达到 26mA 输出系统中的继电器最多同时 有两个工作 控制温度的一个 控制湿度的一个 如果设置光耦的发光二极管的电流 为 10mA 那么两个发光二极管同时导通时单片机的灌电流为 20mA 小于 26mA 符 合要求 所以把 P0 口的引脚接到光耦 TLP521 4 输入测的发光二极管阴极 继电器选用 5V 的 驱动继电器需要大约 100mA 的电流 也就是说驱动继电器的 三极管的集电极电流为 Ic 100mA 三极管选用直流放大系数为 100 的 9013 根据 Ic Ib 可计算得三极管基极电流 Ib 1mA 而 Vbe 0 7V 又由于光耦中的光电三极 管的集电极 发射极饱和压降 Vces 0 3V 所以基极的限流电阻上的压降为 5 Vces Vbe 4V 4V 0 001A 4K 由于没有标称值为 4K 的电阻 所以选择 4 7K 的 还应该注意到的一点是 光耦有一个参数叫电流传输比 CTR CTR Io I F 及 输出端电流的最大值比上输入端的电流 体现了光耦输出电流的能力 如果输入端的 电流为 20mA 电流传输比为 50 的话 那么输入端电流 Io 最大只能为 10mA 在这 里 TLP521 4 的电流传输比为 50 输出端我们刚才算出的电流 Io Ib 1mA 所以输 入端电流 IF 最小为 2mA 由于电流很小时光耦处于死区 因此要选大点 这里选择 IF 10mA 于是 光耦输入端阳极上的限流电阻为 R 5V 0 7V 0 01A 430 这里选 择标称值为 470 的电阻 此外 这里用的继电器是普通的电磁继电器 通过对电磁继电器和固态继电器进 第 11 页 西华大学毕业设计说明书 行比较 虽然固态继电器具有无触电 动作速度快 使用寿命长等特点 但是本设计 中的继电器只在温湿度超过限定值时才动作 动作频率低 而且固态继电器的价格比 电磁继电器高得多 所以综合考虑选择电磁继电器 SRD 一 05VDC 一 SL C 3 1 6 电源的设计 图 3 8 电源电路 电源电路是整个系统中非常重要的一部分 本设计中主要用到直流 5V 电源 要 得到 5V 的直流电源 要经过降压 整流 滤波 稳压四个环节 由于最后的稳压环节 LM7805 要得到 5V 的直流输出 输入与输出要有一定的压 差 根据 LM7805 的数据手册 需要有 10V 的输入 因此在降压环节把 220V 的电压 降为 10V 然后用桥式整流电路把交流电整流为直流电 此时的直流电只是方向不变 但仍 按正弦方式变化 是脉动的直流电 因此需要滤波电路将纹波滤掉 C8 和 C2 都用来滤波 但是作用是不一样的 C8 是大电容 用电解电容 它的作用是低频滤波 通过充电放电 从而削峰填谷 使电 压的脉动成分减少 电压基本保持稳定 而 C2 是小电容 所以对于高频信号容抗很 小 相当于短路 从而滤掉高频信号 需要注意的是 470uF 的大电容可以滤低频 为什么不能滤高频 还要单独加一 个 0 33uF 的小电容来滤高频 从理论上来说大电容应该高频 低频都可以 但是由于 制造工艺的原因 电解电容的容值做得很大时 它就不再是一个单纯的电容了 它等 效于一个电容串联一个电感 在频率较低时 电感 L jwl 较小 可以忽略不计 但是 当频率很高时 感抗就很大 相当于断路 所以此时这个 470uF 的大电容不能滤掉高 第 12 页 西华大学毕业设计说明书 频信号 必须单独加一个小电容 小电容容值小 因此就不存在感抗的问题 滤波完以后 电压的脉动成分已经下降了很多 但是仍有起伏 所以最后还需加 上一个三端集成稳压器 这里选用 LM7805 它能将电压稳定在 5V 并联在 LM7805 两端的二极管起保护作用 避免在短路等情况下 LM7805 输出端的电压比输入端高 从而烧坏 LM7805 三端集成稳压器后面又接了一大一小两个电容 再次进行滤波 使电压更稳定 3 1 7 按键电路设计 图 3 9 按键电路图 键盘分为编码式和非编码式键盘 其中 非编码式键盘又包括矩阵式键盘和独立 式键盘 矩阵式键盘较为复杂 一般用于按键数目较多 而单片机可用的 I O 口又比 较有限时 本控制系统中只需要用到 5 个按键 数目较少 并且可用的 I O 口充足 故采用独立式键盘 一个按键对应一个单片机的 I O 口管脚 本设计中总共用到 5 个按键式开关 他们用来改变设定的温湿度上下限数值 从 S0 到 S4 分别控制进入温度上下限设置 进入湿度上下限设置 数值加 数值减 确认并退出 本设计中的键盘是低电平有效 未按键时 上拉电阻保证了单片机的 I O 口是确 定的高电平 当某个键按下时 I O 口变为低电平 第 13 页 西华大学毕业设计说明书 3 1 8 串口通信电路 串口通信可分为同步通信和异步通信 在单片机的应用系统中 主要是采用异步 串行通信 在设计通信接口时 应该采用标准接口 这样才能够方便而又准确的把单 片机和外设有机的连接起来 从而能形成一个测控系统 目前异步串口通信标准有 RS 一 232 RS 一 422 RS 一 485 标准 其中 RS 一 232 是 PC 机与通信工业中使用最早的一种串行接口标准 在短距离 较低波特率串行通信中得到了广泛应用 要让单片机和 PC 机通过串口进行通信 需 要进行电平转换 因为尽管单片机有串行通信的功能 但单片机提供的 TTL 电平和 RS232 的电平不一样 TTL 电平中 电压小于 0 8V 为低电平 高于 2 4V 为高电平 而 RS232 电平是负逻辑电平 电压在 3V 15V 时为高电平 电压在 3V 15V 时为低 电平 因此要通过 MAX232 这种电平转换芯片进行转换 MAX232 是 MAXIM 公司专为 RS 232 标准串口设计的单电源电平转换芯片 使 用 5V 电源供电 适用于终端设备和数据通信设备间的接口 对于双向通信 只需要 使用串行输入 RXD 引脚 2 串行输出 TXD 引脚 3 和地线 GND 引脚 5 其电路连接如图 3 10 所示 图 3 10 串口通信电路 MAX232 芯片内部有一个电源电压变换器 能够把输入的 5V 电压变换为 RS232 输出电平所需的 10V 电压 采用此芯片接口的串行通信系统值需要接 5V 电压即可 第 14 页 西华大学毕业设计说明书 MAX232 芯片中有两组电平转换的引脚 我们这里只需使用其中一组 打头的字 母 T 表示 TTL 电平 R 表示 RS232 电平 R1IN 和 R2IN 表示输入 RS232 电平 因此与电脑的串口相连 T1IN 和 T2IN 表示输入 TTL 电平 因此与单片机相连 所以 引脚 T1IN T2IN R1OUT R2OUT 为接 TTL CMOS 电平的引脚 引脚 T1OUT T2OUT R1IN R2IN 为接 RS232 电平的引脚 MAX232 芯片专门为电脑的 RS 232 标准串口设计的接口电路 使用 5v 单电源供 电 MAX232 就是用来进行电平转换的 该器件包含 2 驱动器 2 接收器和一个电压发 生器电路提供 EIA TIA 232 E 电平 可以分别接单片机的串行通信口 MAX232 是一 种双组驱动器 接收器 片内含有一个电容性电压发生器以便在单 5V 电源供电时提供 EIA TIA 232 E 电平 3 2 元件清单 本次设计需要用到的元器件如下表所示 第 15 页 西华大学毕业设计说明书 表 3 1 所需元件列表 元件 型号 个数 单片机 STC89C52RC 1 显示屏 LCD1602 1 温湿度传感器 SHT10 1 芯片底座 DIP40 1 光耦 TLP521 4 1 排针 10 针 10 杜邦线 20 二极管 1N4007 4 三极管 9012 1 三极管 9013 4 电阻 10K 2 电阻 4 7K 9 电阻 1K 1 电阻 470 4 电位器 15K 1 瓷片电容 1uF 5 瓷片电容 0 1uF 1 点解电容 10uF 1 瓷片电容 30pF 2 电平转换芯片 MAX232 1 串口母头 DB9 1 电平转换芯片 MAX232 1 USB 母座 1 晶振 12MHz 1 自锁开关 6 6 5 1 按键开关 6 6 5 6 蜂鸣器 1 继电器 SRD 一 05VDC 一 SL C 4 第 16 页 西华大学毕业设计说明书 3 3 关键器件的介绍 3 3 1 STC89C52RC STC89C52RC 单片机是宏晶科技推出的新一代高速 低功耗 超强抗干扰的单片机 指令代码完全兼容传统 8051 单片机 12 时钟 机器周期和 6 时钟 机器周期可以任意选择 STC89C52RC 的主要性能参数 1 增强型 8051 单片机 6 时钟 机器周期和 12 时钟 机器周期可以任意选择 指令代码与传统 8051 单片机是兼容的 2 通用 I O 口 32 个 P1 P2 P3 是准双向口 弱上拉 P0 口是漏极开路输出 作为总线扩展用时 不用加上拉电阻 作为 I O 口用时 需加上拉电阻 3 ISP 在线编程 IAP 在应用可编程 可通过串口下载程序 不需要使 用专门的下载器 非常方便快捷 4 内含 8KB 的程序存储器 1000 次写 擦写周期 5 内含 512 字节的 RAM 6 32 个可编程 I O 口线 7 3 个 16 位定时器 计数器 即定时器 T0 T1 T2 8 6 个中断源 5 个中断矢量 2 级优先权的中断结构 9 具有一个全双工 UART 串行通道 10 掉电模式和低功耗空闲 STC89C52RC 主要引脚功能 STC89C52RC 的管脚排列如图 2 一 2 所示 第 17 页 西华大学毕业设计说明书 图 3 11 STC89C52RC 引脚图 P0 口 P0 0 P0 7 P0 端口 P0 0 P0 7 39 32 引脚 P0 口是一个漏极开路的 8 位双向 I O 口 作为输出端口 每个引脚能驱动 8 个 TTL 负载 对端口 P0 写入每个引脚能驱动写入 1 时 可以作为高阻抗输入 在访问外部程序和数据存储器时 在访问外部程序和数 据存储器时 P0 口也可以提供低 8 位地址和 8 位数据的复用总线位数据的复用总线 在进行程序校验的时候 输出指令字节 而在 Flash ROM 编程时 接收指令字节 P1 口 P1 0 P1 7 P1 端口 P1 0 P1 7 1 8 引脚 P1 口是一个 8 位双向 I O 口 内部已经自 带有一个几十 K 的上拉电阻 对端口写入 1 时 该引脚被悬空 由内部的上拉电 阻把引脚拉到高电平 这时候可以作为输入口使用 此时 因为内部自带上拉电阻 第 18 页 西华大学毕业设计说明书 所以被外部器件拉低电压的引脚会输出一个电流 P1 的输出缓冲器可驱动 4 个 TTL 逻辑门 P2 口 P2 0 P2 7 P2 和 P1 一样 是一个 8 位双向 I O 口 内部自带上拉电阻 端口进行写 1 时 该管脚被悬空 由内部自带的上拉电阻将电平拉到高电平 当它被当作输入口使 用时 因为内部自带上拉电阻 该引脚在被外部元器件拉低电平的时侯会有电流输出 在对程序存储器 ROM 或 16 位的外部数据存储器进行读写时 P2 口会送出一个高 8 位地址数据 在进行访问 8 位地址的外部数据存储器的时侯 P 口线上的内容 也 即特殊功能寄存器 SFR 区中 P2 寄存器内容 在整个访问期间不改变 它的输出 缓冲级可以驱动 4 个 TTL 逻辑门 P3 口 P3 0 P3 7 P3 口 和 P1 P2 一样 是一个 8 位双向 I 0 口 内部自带弱上拉 对 P3 口进 行写入 l 时 被内部的上拉电阻拉高且可以作为一个输入端口 作输入端口时 被 外部元器件拉低电平的 P3 口将通过上拉电阻提供电流 P3 口除了作为一个一般的 I 0 口线外 它的第二功能有更重要的用途 P3 口输出缓冲级可用来驱动 4 个 TTL 逻辑 门 RST 复位输入端 在震荡期稳定有效运行情况下 RST 端维持两个机器周期的 高电平 便可复位器件 PSEN 外部程序存储器的选通信号 低电平有效 在片外程序存储器取指期间 当 PSEN 有效时 程序存储器的内容将会被送至 P0 口 在访问外部 RAM 时 PSEN 无效 EA VPP 当 EA 保持低电平时 则在此期间外部存储器 0000H FFFH 不论是否有内部程序存储器 VCC 电源电压 XTALI 单芯片系统时钟的反向放大器输入端 使用外部振荡器时 连接外部石 英晶体和微调电容 XTAL2 系统时钟的反向放大器输出端 当使用片内振荡器时 外部接石英晶体 和微调电容 3 3 2 SHT10 温湿度传感器 SHT10 是瑞士 Sensirion 公司推出的超小型 自校型 高精度 多功能式的智能传 感器 采用 SMD 贴片封装 SHT10 温湿度传感器品质卓越 具有很明显的优点 如 抗干扰能力强 反应快等 传感器在一块微型电路板上集成了信号处理电路和传感元 第 19 页 西华大学毕业设计说明书 件 由于自带 ADC 所以输出数字信号 传感器采用瑞士 Sensirion 公司持有专利的 CMOSens 技术 因此有极高的稳定性 准确性 靠性性 SHT10 包含一个电容性 聚合体湿敏器件 一个基于能隙材料的温度测量元件 SHT10 可以用来测量相对湿度 温度和露点等参数 这类智能传感器广泛用于工 农业生产 环境监测 通风及空调设备等领域 SHT10 的主要性能参数如下 1 采用两线制数字接口 类似于 I2C 总线的时序 2 测量温湿度的范围广 湿度测量范围为 0 100 RH 温度测量范围为 40 123 8 3 测量精度较高 温度的测量误差为 0 5 湿度的测量误差为 4 5 RH 4 湿度值分辨率为 14 位 温度值输出分辨率为 12 位 并可以变成 12 位和 8 位 5 将温湿度传感器 信号放大器 A D 转换 I C 总线接口全部集成于一个芯片 6 小体积 可表面贴装 7 具有可靠的 CRC 数据传输校验功能 8 片内装载的校准系数可保证 100 互换性 9 电流消耗低 测量时 550 A 平均 28 A 休眠时 3 A 10 可给出全校准相对湿度计温度值输出 11 具有漏点值计算输出功能 电源引脚 VDD SHT10 的供电电压为 2 4 5 5V 这里选择 5V 在电源引脚 VDD GND 之间须加一个 100nF 的电容 用于去耦滤波 串行输入 SCK 用 于微处理器与 SHT10 之间的同步通信 串行数据 DATA 用于三态门的数据读取 DATA 在 SCK 时钟下降沿后会发生状态改变 并且在 SCK 时钟为上升沿时有效 也 就是微控制器可在 SCK 为高电平段去读取有效的数据 在微控制器向 SHT10 进行数 据传送的过程中 必须要保证数据线在时钟线为高电平段时稳定 为了避免发生信号 冲突 微控制器仅仅把数据线拉低 在需输出高电平时 微控制器会将引脚置成高阻 态 由外部上拉电阻把信号拉为高电平 这里选择 10K SHT10 在使用时 在数据线上用一组 启动传输 的时序来表示初始化数据传输 包括 当 SCK 时钟为高电平的时侯 DATA 翻转至低电平 紧接着 SCK 变成低电平 随后在 SCK 时钟为高电平的时侯 DATA 翻转为高电平 后续的命令包含 3 个地址 目前支持 000 和 5 个命令位 具体命令集见表 4 SHT10 会用下述来方式表示 第 20 页 西华大学毕业设计说明书 已经正确接受到了指令 在第 8 个 SCK 的时钟下降沿后 将 DATA 下拉至低电平 ACK 位 在第 9 个 SCK 的时钟下降沿后 释放 DATA 恢复为高电平 表 3 2 SHT10 的命令集 根 据上 表的 命令 集 SHT10 测量时 发布测量命令 00000101 表示的是相对湿度 RH 00000011 表示的是温度 T 后 控制器等待测量停止后 此过程大约需要 11 55 210ms 分 别会对应 8 12 14 位的测量 确切时间与内部的晶振速度有关 最多会有 15 的 变化 SHT10 通过下拉 DATA 变为低电平 表示测量已结束 控制器在触发 SCK 时 钟前 必须要等待 数据备妥 的信号 接着会传输 2 个字节的测量数据以及 1 个字 节的 CRC 奇偶校验 uC 需要用下拉 DATA 为低电平 来确认每个字节 全部数据会 从 MSB 开始 右值有效 例如 对于 12 位数据 从第 5 个 SCK 时钟起算作 MSB 而对于 8 位数据 首字节则无意义 命令 代码 预留 0000 x 温度测量 00011 湿度测量 00101 读状态寄存器 00111 写状态寄存器 00110 预留 0101x 1110 x 软复位 复位接口 清空状态寄存 器为默认值 下一个命令前等待至少 11ms 11110 第 21 页 西华大学毕业设计说明书 4 系统软件设计 系统的工作流程是 操作人员在计算机上输入需要设定的温湿度限定值 当设定 的温湿度值与检测温湿度值不同时 单片机控制系统则会采取相应的调节动作 此程 序流程包括五个部分 第一部分是主程序 其描述总体结构 第二部分是 SHT10 温度 采集程序 其功能是通过 SHT10 传感器采集温湿度值 并进行修正 第三部分是 LCD1602 显示子程序 对 LCD1602 进行初始化 将温湿度进行显示 第四部分是输 出控制子程序 对设定值和实际值进行判断以决定是否进行温湿度的调节 第五部分 是按键输入电路 用来修改温湿度上下限值 4 1 软件设计的总体结构 本次设计的大棚温湿度自动控制系统由一个主程序调用多个子程序 它们包括 SHT10 温湿度采集子程序 LCD1602 液晶显示子程序 输出控制子程序 键盘扫描子 程序 如下图所示 图 4 1 程序总体结构 主程序主要就是调用各个子程序的 C 语言文件中定义的函数 实现 SHT10 LCD1602 初始化等操作 然后测量温湿度 调用函数对数据进行处理 最后 进行显示并输出控制信号 在 Keil 工程中编写程序的时候 为了让整个工程看起来条理清晰 要按照各个模 块分别新建 C 文件写子程序 某个 C 文件要调用其它 C 文件中的函数时 要在当前 C 语言文件中先进行声明 然后再调用 或者也可以把每个 C 文件中定义的函数都写 主程序 SHT10 温湿度 采集子 程序 LCD1602 液晶屏显 示子程序 输出控 制子程 序 键盘扫 描子程 序 第 22 页 西华大学毕业设计说明书 到相同名字下的 h 头文件中 其他 C 文件要调用该函数时要在前面加上 include 将头文件包括进来 对于变量也是如此 如果某个变量也在其他 C 文件中使用 那么要在一个 C 文件总将它定义为全局变量 即在函数外面定义 其他 C 文件要使用 该变量时 要先使用 extern 将全局变量的作用域扩展到本 C 语言文件 第 23 页 西华大学毕业设计说明书 4 2 主要模块的设计流程框图 4 2 1 主程序流程图 图 4 2 主程序流程图 Yes 是否超限 将温湿度与设定值比较 启动温湿度调节设备 对温湿度数据进行修正 No 在液晶屏上显示温湿度 测量温湿度 是否有按键 初始化 LCD1602 Yes 开始 进入键盘扫描子程 序 SHT10 复位 No 第 24 页 西华大学毕业设计说明书 4 2 2 SHT10 子程序流程图 图 4 3 SHT10 子程序流程图 温湿度传感器 SHT10 使用类似于 I2C 总线的时序与单片机通信 由于 51 单片机 没有 I2C 接口 所以需要编写程序 用单片机的某两个 I O 口管脚模拟 I2C 总线的时序 从而与 SHT10 通信 SHT10 有 4 种时序 启动传输时序 写字节时序 读字节时序及复位时序 复位 时序和启动传输时序可通过依次拉低或拉高时钟线和数据线 因而实现起来比较简单 而写时序和读时序就比较复杂 写时序用来发送控制字 即发送命令 测量结束后 发出读时序读回测量数据 向 SHT10 的 8 个数据位的写入 于第 9 个时钟周期之后 开始 发送启动时序 发送控制字 接收数据 测量结束 接收校验位 结束 No Yes 第 25 页 西华大学毕业设计说明书 读取应答位 应答位为 0 时 表示 SHT10 正确接收 SHT10 读写数据的规则是 在时 钟线的下降沿之后数据线改变状态 并在时钟线的上升沿有效 第 26 页 西华大学毕业设计说明书 4 2 3 LCD1602 子程序流程图 图 4 4 LCD1602 子程序流程图 开始 LCD1602 初始化 设置首行数据指针 写入首行字符 设置第二行数据指针 写入第二行字符 结束 第 27 页 西华大学毕业设计说明书 4 2 4 输出控制子程序流程图 图 4 5 输出控制子程序 开始 返回主程序温度 湿度是否超出上下限 启动温湿度调节设备 蜂鸣器报警 温湿度是否回 到限定值内 停止报警 停止温湿度控制设备 温湿度是否留有 足够的裕量 结束 No Yes Yes Yes No No 第 28 页 西华大学毕业设计说明书 4 2 5 键盘扫描子程序流程图 图 4 6 键盘扫描子程序 No Yes 开始 退出键盘子程序 延时 10ms 退出键盘子程序 上限或下限加一或减一 P2 3 或 P2 4 是 否按下 No P2 3 或 P2 4 是 否仍被按下 Yes Yes No P2 5 或 P2 6 是 否按下 P2 5 或 P2 6 是 否按下 Yes No 第 29 页 西华大学毕业设计说明书 为了防止抖动 按键电路中都要消抖的措施 本设计中是采用的软件消抖 在单 片机检测到某个键按下后 延时 10ms 再监测 如果仍然按下 才视为按下了该键 S0 S1 S2 S3 S4 分别对应单片机的 P2 3 P2 7 引脚 按下 S0 也就是使 P2 3 为低电平时 进入温度上限的设置 再按一次进入温度下线的设置 按下 S1 进入湿 度上限的设置 再按一下进入温度下线的设置 在每个设置里面 按 S2 增加限值 按 S3 减小限值 设置好以后 按 S4 退出设置 第 30 页 西华大学毕业设计说明书 4 3 软件设计所用工具 4 3 1 Keil uVision4 本次设计采用 Keil uVision4 来编写 C 语言程序 通过它的编译器进行编译 连接 最后将生成的机器码下载到单片机上 Keil 编译器是目前最流行的单片机开发的软件 它是美国 Keil Software 公司开发 的 C 语言开发系统 它提供了一个完整的开发方案 包括宏汇编 C 编译器 库管理 连接器和一个功能强大的仿真调试器等 通过一个集成开发环境将这些部份组合在一 起 Keil C51 整合了丰富的库函数和功能强大的集成开发调试工具 此外 Keil C51 生成的目标代码效率非常高 这一点从生成的汇编语言就可以看出 大多生成的汇编 语句很紧凑 容易理解 4 3 2 Proteus Proteus 用来对电路进行仿真 它的功能强大 包括单片机在内的众多元器件都可 以仿真 把 Keil 编译 连接后生成的 hex 文件导入 Proteus 单片机中即可对单片机进 行仿真 Proteus 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件 它不仅具有 其它 EDA 软件的仿真功能 还可以对单片机及其外围器件进行仿真 是目前在这方面 做得最好的 EDA 工具软件 Proteus 在国内已受到众多单片机开发者的喜爱 Proteus 实现了从概念到产品的完整设计 可以实现从原理图绘制和代码调试到单片机与其外 围电路仿真 一键切换到印刷电路板的设计 目前世界上只有 Proteus 做到了将电路仿 真 印刷电路板设计和虚拟模型仿真整合到一个设计平台 其处理器模型支持 8051 HC11 AVR ARM 8086 和 MSP430 PIC10 12 16 18 24 30 DsPIC33 等 2010 年又增加了 Cortex 和 DSP 系列处理器 并持续增加其他系列处理器模型 在编 译方面 它也支持 IAR Keil 和 MPLAB 等多种编译器 第 31 页 西华大学毕业设计说明书 5 系统调试 5 1 用 Proteus 搭建仿真总图 打开 Proteus ISIS 在 Proteus ISIS 编辑窗口中单击元件列表之上的 P 按钮 添加元件及放置元件 得到界面如图 5 1 图 5 1 元器件的选择 选好元器件后 要对元器件进行一个重新的布局 使之看起来很清晰 并且所占 面积较小 若想移动某个元件或多个 单击其元件 待其颜色变红后 在按下鼠标左 键不放 即可拖动元件 为了使仿真图看起来更整洁 我们部分电路连线选择连线标 签模式 以单片机 19 引脚为例 将其用线引出 如 然后 再点击左侧任务栏中 再单击引线得到对话框如图 5 2 所示 在窗口中输入 X1 得到 此效果 第 32 页 西华大学毕业设计说明书 图 5 2 连线标签窗口 若要对某个元件或一部分电路做出说明 则单击任务栏中的 Text Script Mode 得到如图 5 3 效果 在界面中输入文字即可 图 5 3 说明窗口 按照正确的方法将元器件进行合理的排布及连线后 得到图 5 4 图 5 4 系统仿真电路图 5 2 用 Keil 对程序进行调试 编译 先打开 keil uvision4 这款软件 新建工程 点击菜单栏里的 new uvision project 第 33 页 西华大学毕业设计说明书 然后对工程进行保存 再新建文件 点击菜单栏中 File 下的 new 新建文件 进行保存 最后把新建的文件添加到工程文件里 右键点击 project 视图窗口里的 Source Group1 选择 Add files to group source group1 如图所示 图 5 5 添加文件到工程 这样 刚才新建的文件便添加到了 Source Group1 中 现在开始在右边的主界面 编写 C 语言程序 编写完成后为了把程序烧录到单片机上 还需要把它转换成机器码 生成 hex 文件 右击工程视图窗口中的 Target1 选择 Options for Target target1 第 34 页 西华大学毕业设计说明书 把 Output 选项卡里面的 Create HEX File 前面的勾打上 这 样编译后会生成机器码 如图所示 图 5 6 生成机器码 第 35 页 西华大学毕业设计说明书 6 结论 6 1 系统的功能 本系统能测量温室大棚内的温湿度数据 将其显示在液晶屏上 如果温湿度超出 了设定的上下限 将进行报警 并启动温湿度调节设备 温度回到限定值内后 停止 报警 当温度不仅回到上下限以内 而且留有一定裕量后 停止温湿度调节设备 如 果需要修改温湿度上下限 可以通过按键进行修改 6 2 系统的指标参数 系统的指标参数完成情况如下表所示 表 6 1 系统指标参数表 实现功能 结果 完成程度 测量温度范围 40 123 8 完成 测量温度误差 0 5 完成 测量湿度范围 0 100 RH 完成 测量适度误差 4 5 完成 液晶屏显示 用 LCD1602 显示 完成 超限报警 用蜂鸣器报警 完成 修改上下限 通过独立式键盘修改 完成 输出控制 通过光耦 继电器控制 完成 6 3 系统功能分析 该大棚温湿度自动控制系统能通过独立式键盘设置温湿度上下限 通过 LCD1602 显示温湿度 并在超限的情况下报警 启动调节设备 其中输出控制和通过键盘设置上下限都是通过调用子程序实现的 键盘的工作方 式分两种 一种是查询方式 一种是中断方式 中断方式比较节省系统资源 只有当 有按键按下时才会进入键盘中断子程序 进一步扫描是那些键被按下 而查询方式则 是在主程序中调用键盘扫描子程序 不管有没有键按下 每次程序循环中都要一一判 第 36 页 西华大学毕业设计说明书 断每个键是否按下 故这种方式占用的单片机的处理时间更多 但是由于本次设计用 到的按键不多 只有五个 功能比较简单 而且单片机工作比较空闲 因此使用的是 查询方式来处理键盘的输入 此外 还应注意到的是 当温湿度超限后 要报警并启动温湿度调节设备 当温 湿度回到规定范围内时 只是停止报警 而温湿度调节设备应该继续保持工作 直到 温湿度留有一定裕量时才停止 本设计中的输出控制子程序中设置了温度 5 和湿度 5 RH 的裕量 这样当温度上限是 30 度时 如果超出上限 那么温度回到 30 度时停 止报警 当温度降到 25 度以下时才停止制冷设备的运行 这样可以避免温湿度调节设 备反复不停地通断 以致影响使用寿命 第 37 页 西华大学毕业设计说明书 7 总结与体会 这次毕业设计使我收获良多 以前偏重于理论知识的学习 但是做了毕业设计才 发现在动手实践上的不足 无论是画电路原理图 做仿真 做实物都牵涉到很多自己 以前没有接触过的内容 通过这次毕业设计 我感觉我实际应用知识的能力有了很大 提高
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!