毕业设计-自动浇水控制器_第1页
毕业设计-自动浇水控制器_第2页
毕业设计-自动浇水控制器_第3页
毕业设计-自动浇水控制器_第4页
毕业设计-自动浇水控制器_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

目 录 第一章 引言 1 1 1 单片机的概述 1 1 2 单片机的分类及发展 1 1 3 灌溉技术的发展简介 2 第二章 设计题目与要求 4 2 1 课程设计要求 4 2 2 课程设计目的 4 第三章 设计的方案选择与论证 5 3 1 整体设计框架 5 3 2 系统硬件的选择 5 3 3 最终方案决定及电路设计 6 第四章 系统硬件电路的设计 7 4 1 AT89C51 的介绍 7 4 1 1 内部结构 7 4 1 2 引脚说明 8 4 2 显示模块 11 4 2 1 显示功能及实现 12 4 2 2 数码管介绍 12 4 3 时钟电路及复位电路的设计 14 4 3 1 时钟电路 14 4 3 2 复位电路 16 4 4 键盘输入模块 16 4 5 浇水模块设计 17 4 5 1 ULN2803 的介绍 17 4 5 2 浇水功能的实现 18 4 6 电源的设计 19 第五章 系统的程序设计 21 5 1 系统时间显示 21 5 2 键盘控制时间设置 22 5 2 1 按键校对系统时间 22 5 2 2 按键设置浇水时间 23 5 3 浇水执行程序框图 24 5 4 主程序 25 第六章 仿真 39 6 1 仿真说明 39 6 2 仿真电路图 39 第七章 结论 41 致谢 42 参考文献 43 附录 电路图 第一章 引言 目前 农业 工业 生活 军事等各个方面都向自动化 智能化 数字化发展 为了适应时代的发展电子技术迅猛发展 数字化 智能化 自动化的实现方式多种 多样 从而产生了很多的设计工具 单片机就是其中之一 它正朝着多品种和高性 能发展 正在进一步向着 COMS 化 小体积 低功耗 高性能 大容量和外部电路 内装化等多个方向发展 卓越的性价比受到了设计者们的欢迎 随着农业的规模化 系统化 传统的管理方法需要大量的人力而且不能及时 为了满足更高效更高产 并提高管理水平 本文将介绍一个可以自动定时 多路浇 水 定浇水时间的系统 它主要基于 51 单片机来设计 并将随着社会生活的进步 人们对效率的要求 将会得到大量的应用和不断的完善 本论文中将会应用单片机等电子技术 实现自动浇水控制 1 1 单片机的概述单片机的概述 为了适应社会发展的需求 微型计算机不断地更新换代 新产品层出不穷 在 微型计算机的大家庭中 几年来单片微型计算机异军突起 发展极为迅速 单片微型计算机 Single Chip Microcomputer 简称单片机 它是微型计算机的一 个重要分支 也是一种非常活跃且具生命力的机种 特别适用于控制领域 故又称 微控制器 Microcontroller 通常单片机由单块集成电路芯片构成 内部包含有计算机的基本功能功能部件 中央处理器 Central Processing Unit CPU 随机存储器 Random Access Memory RAM 只读存储器 Read Only Memory ROM 定时 计数器及 I O Input Output 接口电路等部件 因此单片机只需要与适当的软件及外部设备相结 合 便可成为一个单片机控制系统 它的特点是 高性能 高速度 体积小 价格低廉 稳定可靠 应用广泛 1 2 单单片机的分类及发展片机的分类及发展 20 世纪 80 年代以来 单片机有了新的长足发展 各个半导体器件厂商也相继 推出自己的产品 到目前为止 市面上出售的单片机品种已达 60 多个系列 600 多 烟台大学毕业论文 设计 1 个品种 如果按照 CPU 对数据处理的位数来分 通常可以把单片机分为 4 位的单片 机 8 位的单片机 16 位的单片机 32 位的单片机四类 它的产生和发展过程也经 历了相应的四个阶段 第一阶段 1970 1974 为 4 位的单片机的阶段 这种单片机的特点为 价格便宜 并且控制功能强 片内含有多种 I O 接口 有的根据不同用途还配有许多专用接口 丰富的 I O 功能大大增强了四位单片机应用于录音机 摄像机 电冰箱 电视机 洗衣机等产品 第二阶段 1974 1978 为低中档的 8 位单片机的阶段 它是八位单片机的早期产 品 以 Intel 公司的 MCS 48 系列单片机为代表产品 这个系列的单片机在片内集成 八位 CPU 并行 I O 口 8 位定时 计数器 RAM 和 ROM 等 中断处理较简单 片 内 RAM 和 ROM 容量较小 且寻址范围不大于 4KB 第三阶段 1978 1983 为高档的 8 位单片机阶段 这类单片机在低 中档基础上 发展起来的 其性能有明显额提高 还是以 Intel 公司的 MCS 48 系列单片机为代表 在片内还增加了串行接口 有多级的中断处理系统 还有 16 位定时 计数器 片内 RAM 和 ROM 容量也增大了 寻址范围已经可达 64KB 有的片内还加有 A D 转换 接口 这类单片机功能强大 应用领域广阔 是现在各类单片机中应用最多的一种 第四阶段 1983 现在 为 8 位额单片机巩固发展的阶段和 16 位单片机 32 位单 片机推出的阶段 这个阶段特点是 一方面不断的发展 16 位的单片机 32 位的单 片机和一些专用的单片机 近年来 各个计算机厂家已进入了高性能的 32 位单片机 的研制和生产阶段 32 位单片机除了具有更高的集成度以外 主振频率已经达到 20MHz 这使 32 位的单片机的数据处理速度可以 16 位单片机快得多 性能比 8 位 16 位单片机也更加优越 而需要说明的是 单片机的发展虽然经历了 4 位 8 位 16 位三阶段 但 4 位 8 位 16 位单片机仍然各有其应用领域 比如 4 位单片机在简单家用电器 高档玩 具中还有应用 而 8 位单片机在中 小规模应用的场合仍占主流的地位 16 位的单 片机在比较复杂的控制系统中才有应用 32 位单片机因控制领域对它的要求并不十 分迫切所以 32 位单片机在我国的应用并不多 正是由于单片机具有上述显著的特点 使得单片机应用的范围也日益扩大 单 片机的应用打破了人们传统的设计思想 原来很多用模拟电路 脉冲数字电路和逻 辑部件来实现的功能 现在均可以使用单片机 使用软件来实现 使用单片机具有 体积小 可靠性高 性价高和容易产品化的优点 1 3 灌溉技术的发展简介灌溉技术的发展简介 烟台大学毕业论文 设计 2 生命之起源 水为必然条件 没有了水 地球上的生命将会枯竭 人文明之数 千年的历史 为水而奋斗可以说是非常重要的篇章 比如我国古代的灵渠 郑渠和 都江堰 埃及尼罗河两岸的历史非常悠久的灌溉工程都是非常好的例证 20 世纪以前 人类经过了数个世纪的探索 学会了拦河蓄水 筑渠引水和开畦 灌溉的技术 但水的利用效率比较低下 限制了灌溉的面积扩大 怎样生产大量的 粮食 来为飞快增长的人口提供粮食 如何提高水的利用率已经成了 20 世纪的一大 难题 而且伴随着劳务成本大的迅速提高 怎样节省人力来消减劳务成本也成了亟 待解决的问题 我国从 70 年代开始引进喷灌 滴灌技术 80 年代中期曾一度得到迅速发展 但因为经济及技术落后 不几年即纷纷下马 进入 90 年代中期以来 我国充分意识 到我国水资源的短缺问题 重新积极推广节水技术 经过数年努力 已取得长足进 步 尽管各种节水技术已经发展的很成熟 但是还不能满足的是智能化的定时浇水 要两者结合才能更自动化及智能化 限于本论文的篇幅 这里只设计自动系统 有 八路出水 而采用什么节水设备 可根据实际应用场合自行选取 只需对接到出口 即可 烟台大学毕业论文 设计 3 第二章 设计题目与要求 2 1 课程设计要求课程设计要求 设计一种自动浇水控制器 可以实现设定每周内任意几天需要浇水 每天何时 开始浇水 每路每次浇水多长时间 八路依次自动浇水 状态显示在平时模式现实 当前时间及星期几 从左至右 前两位显示时 中间两位显示分 最后一位显示星 期 时与分之间两个 LED 为秒闪指示 每秒闪动一次 制作出适合系统运行的电源 2 2 课程设计目的课程设计目的 1 巩固 加深和扩大单片机应用的知识面 提高综合及灵活运用所学知识解 决实际控制的能力 2 培养针对课题需要 选择和查阅有关手册 图标及文献资料的自学能力 提高组成系统 编程 调试的动手能力 3 学会对课程设计方案的分析 选择 比较 熟悉系统开发 研制的过程 软硬件设计的方法 内容及步骤 4 掌握计数器 加法器 LED 的使用 5 掌握数码管显示电路的应用与按键设置 烟台大学毕业论文 设计 4 第三章 设计的方案选择与论证 3 1 整体设计框架整体设计框架 图 3 1 是本次设计的整体系统框图 本电路是由 AT89C51 单片机为控制核心 具有在线编程功能 低功耗 高性能等优点 显示模块有三个数码管 CD4511 译 码器构成 使用动态扫描的显示方式对数字进行显示 按键模块位五个独立按键构 成 分别设定时 分 星期 定时 定天 电源电路是为了给 AT89C51 提供稳定的 工作电压而设计 时钟电路采用晶振提供时钟频率 再结合编程来实现时间的显示 与设定 图 3 1 系统整体设计框图 3 2 系统硬件的选择系统硬件的选择 显示模块 AT89C51 电源模块 时钟电路 复位电路 浇水输出模块 键盘模块 烟台大学毕业论文 设计 5 1 控制系统模块的方案选择和论证 方案一 采用 89C2051 芯片作为硬件核心 有 2KB 的存储空间 虽然加上端口 扩展 键盘不做独立式的 也可以满足电路要求 但是它无法扩展 ROM 也不能用 C 语言编程 因为 C 的第一条指令是跳转 会浪费很多空间 因此导致空间不够 就只能用汇编语音 并且 2051 的 P3 7 在芯片的引脚上没有 只在内部有用 P1 0 P1 1 没有内部上拉 要用做输入输出 就需要外接上拉 方案二 采用 89C51 芯片作为硬件核心 采用 FlashROM 内部具有 4KB ROM 存储空间 能于 3V 的超低压工作 而且与 MCS 51 系列单片机完全兼容 有 40 个 引脚 完全满足电路要求 具有电路进行调试时 由于程序的错误修改或对程序的 新增功能需要烧入程序时 不需要对芯片进行多次拔插 所以不会对芯片造成损坏 结合两者优缺点考虑 在本设计中选择采用 AT89C51 作为主控制系统 2 显示模块选择方案和论证 方案一 采用点阵式数码管显示 点阵式数码管是由八行八列的发光二极管组 成 对于显示文字比较合适 如果用在显示数字显得太浪费 且价格也相对比较高 所以不采用此种作为显示 方案二 采用 LED 液晶显示器 液晶显示器的显示功能强大 可显示大量文字 图形 显示多样 清晰可见 但是价格昂贵 需要的接口线多 所以在此设计中也 不用这种作为显示 方案三 采用 LED 数码管动态扫描 LED 数码管价格适中 对于显示数字最 合适 而且采用动态扫描法与单片机连接时 占用的单片机口线少 在本设计中选择采用了 LED 数码管作为显示 3 时钟电路的选择方案和论证 方案一 采用 DS12887 时钟芯片实现时钟 DS12887 芯片是一种高性能的时钟 芯片 可自动对秒 分 时 周 月 年以及闰年补偿的年进行计数 虽然精度高 但是成本相对高 本设计不需要如此显示精度及详细度 方案二 采用外部晶振提供时钟频率 直接采用单片机定时计数器提供秒信号 使用程序实现星期 时 分 秒的计数 采用此种方案可以减少芯片的使用 节约 成本 适用更多的用户需求 在本设计中直接采用方案二的时钟电路为电路提供时钟控制模块 4 键盘模块的选择方案和论证 方案一 采用独立式的非编码键盘模式 在此种连接方式中 每个按键都是相 互独立的 均需占用 CPU 的一条 I O 输入数据线 方案二 采用行列式的非编码键盘 它是一种把所有按键排列成行列矩阵的键 烟台大学毕业论文 设计 6 盘 所以 一个 M N 的行列式的非编码键盘只需 M 条行线以及 N 条列线 共要占 用 M N 条单片机的端口线 本设计中按键只有五个 因此不采用此方案 在本设计中采用方案一的键盘来对现实电路 和浇水设置进行设定 3 3 最终方案决定及电路设计最终方案决定及电路设计 综上各方案所述 对此次设计的方案选定 采用 AT89C51 作为主控制系统 LED 数码管动态扫描作为显示系统 采用单片机自身的定时计数器作为时钟电路 系统电路图见附录 第四章 系统硬件电路的设计 硬件电路是系统的重要部分 在本次设计中主要是以 AT89C51 为核心控制器 外加一些控制电路来实现本系统的基本功能 下面分别介绍各个控制电路的功能及 工作原理 4 1 AT89C51AT89C51 的介绍的介绍 89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器 FPEROM Flash Programmable and Erasable Read Only Memory 的 CMOS8 位微处理器 简称单片机 它低电压 高性能 该器件采用 ATMEL 高密度肥肉非易失存储器制造技术来加工 的 并且可以与工业标准的 MCS 51 指令集和输出管脚相兼容 因为将多功能 8 位 CPU 和闪烁存储器结合在一个芯片中 使得 ATMEL 的 89C51 成为一种高效的微控 制器 89C 单片机 为许多嵌入式的控制系统完美的提供了一种不仅灵活性高而且价 廉的方案 4 1 1 内部结构内部结构 AT89C51 的内部结构框图如图 4 1 所示 烟台大学毕业论文 设计 7 图 4 1 89C51 内部结构框图 89C51 单片机基本组成包括有 一个 8 位的微处理器 片内数据存储器 RAM 有 128B 21 个特殊功能寄存器 SFR 片内程序存储器 Flash ROM 有 4KB 可寻址片内外统一编址的 64KB 的 ROM 可寻址片外 64KB 的 RAM 4 个 8 位并行 I O 接口 P0 P3 一个全双工通用异步串行接口 UART 两个 16 位的定时器 计数器 五个中断源 两个优先级的中断控制系统 具有位操作功能的布尔处理机及位寻址功能 片内振荡器和时钟产生电路 AT89C51 主要部件也可以划分为 CPU 存储器 I O 端口 定时器 计数器和终 端系统等五部分 CPU 包括运算器 控制器 存储器包括程序存储器 片内数据存 储器 片外数据存储器 4 1 2 引脚说明引脚说明 烟台大学毕业论文 设计 8 AT89C51 共含有 40 个引脚 分为端口线 电源线 控制线三类 如图 4 2 所示 图 4 2 AT89C51 封装和引脚分配 1 电源引脚 2 条 Vcc 40 脚 电源端 接 5V 电源 GND 20 脚 接地端 接地端 2 控制引脚 6 条 XTAL1 和 XTAL2 片内振荡电路输入线 XTAL1 19 脚 片内振荡电路反相放大器输入 XTAL2 18 脚 片内振荡电路反相放大器输出 当采用内部时钟时 片外连接石英晶体和微调电容 产生原始的振荡脉冲信号 采用外部时钟时 XTAL1 输入外部时钟脉冲信号 XTAL2 悬空 相应电路如图 4 3 所示 图 4 3 89C51 的晶振连接图 RST 9 脚 复位信号输入端 烟台大学毕业论文 设计 9 高电平有效 保持两个机器周期高电平时 完成复位操作 ALE Error 30 脚 地址锁存允许输出端 编程脉冲输入端 正常时 连续输出振荡器频率的 1 6 正脉冲信号 访问片外存储器时 作为锁存 P0 口低 8 位地址的控制信号 对 89C51 片内 ROM 编程写入时 作为编程脉冲输入 端 Error 29 脚 外部程序存储器读选通输出信号 访问片外 ROM 时 输出负脉冲作为读 ROM 选通 常连接到片外 ROM 芯片的输 出允许端 OE 作外部 ROM 的读选通信号 Error Vpp 31 脚 外部程序存储器地址使能输入 编程电压输入端 平常 接 1 时 CPU 访问片内 4KB 的 ROM 当地址超 4KB 时 自动转向片外 ROM 中的程序 当接 0 时 CPU 只访问片外 ROM 第 2 功能 Vpp 对 89C51 编程时 编程电压输入端 3 端口线 4 8 32 条 4 个 8 位的并行输入 输出端口 共 32 个引脚 作为通用输入 输出端口 P0 P2 和 P3 端口又各自有第 2 功能 1 通用输入 输出端口 准双向口 作输入时要先对锁存器写 1 P0 端口 P0 0 P0 7 第 39 32 脚 P0 口作通用 I O 口 是一个准双向口 地址为 80H 输出漏极开路 可驱动 8 个 74LS 类型的 TTL 门电路 分时复用的地址 数据总线 外部扩展时 MOVX 或 MOVC 指令 P0 口首先输出低 8 位地址 由地址锁存器 74LS373 在 ALE 号作用下 锁存 A0 A7 然后 P0 口就作为双向的数据总线 D0 D7 使用 P2 口输出高 8 位 地址 A8 A15 P1 端口 P1 0 P1 7 第 1 8 脚 8 位准双向口 只作通用输入 输出口使用 输出可以驱动 4 个 74LS 类型的 TTL 门电路 P1 口作为一个特殊功能寄存器 和内部 RAM 统一编址 地址为 90H 它可进行字节操作 用直接寻址方式 也可以按位操作 用位寻址方式 P2 端口 P2 0 P2 7 第 21 28 脚 P2 口作通用 I O 口 是一个准双向口 地址为 A0H 可驱动 4 个 74LS 类型的 TTL 门电路 P2 口作高 8 位地址总线 外部扩展时 MOVX 或 MOVC 指令 P0 口分时复用作 低位地址 A0 A7 数据总线 D0 D7 用 P2 口输出高 8 位地址 A8 A15 P3 端口 P3 0 P3 7 第 10 17 脚 P3 口作通用 I O 口 是一个准双向口 地址为 B0H 输出可驱动 4 个 74LS 类 烟台大学毕业论文 设计 10 型的 TTL 门电路 2 P0 P2 P3 端口的第二功能 P0 端口 在 CPU 访问外部存储器或 I O 接口时 P0 口分时提供低 8 位地址 A0 A7 和 8 位数据 D0 D7 总线 这时 需要一个 8 位锁存器 利用 ALE 地址锁存允许 来 锁存 P0 口低 8 位地址信号 P2 端口 在 CPU 访问外部存储器或 I O 接口时 P2 口提供高 8 位地址 A8 A15 的 总线信号 P3 端口 在 CPU 访问外部存储器或 I O 接口时 P3 口提供读 写控制总线信 号 还提供串行通信 外部中断 计数器的外部计数输入信号等 如表 4 1 所示 表 4 1 P3 口的第二功能 4 2 显示模块显示模块 本设计的显示模块有三个 LED 数码管及两个发光二极管组成 数码管包括两个 二位数码管及一个一位数码管 皆为共阴极显示 其中两个二位数码管分辨用于现 实小时及分钟 一位的数码管用于现实星期几 两个发光二极管在时与分之间 每 秒闪动一次 显示部分的电路图如图 4 4 所示 口线信号功能 P3 0RXD串行口数据输入 接收数据 P3 1TXD串行口数据输出 发送数据 P3 2INT0外部中断 0 输入 P3 3INT1外部中断 1 输入 P3 4T0定时器 0 的外部输入 计数输入 P3 5T1定时器 1 的外部输入 计数输入 P3 6WR外部数据存储器写选通控制输出 P3 7RD外部数据存储器读选通输出控制 烟台大学毕业论文 设计 11 图 4 4 显示模块电路 4 2 1 显示功能及实现显示功能及实现 显示模块可以分为三个模式 分别为平时模块 设定模块浇水模块 平时模块 用于在平时不进行设定时显示当下时间与星期 设定模块 在要对浇水的时间及时长进行设定时现实需要设定的每天开始浇水的时间以及 每路浇水的时长 设定每天浇水时刻时 星期位显示 8 分别按动按键设定小时与 分钟 此时两个秒 LED9 和 LED10 还是正常闪的 在对每路浇水时长进行设置时 LED9 和 LED10 是不亮的 星期位显示 9 时 与分的四位都表示时长 范围为 0 9999 秒 上述功能的实现皆通过编程来完成 由时钟电路提供频率 单片机内部的定时 计数器在经过一秒后在 P2 7 端口输出一个高电平 LED9 和 LED10 导通 变亮 随 即 P2 7 端口在下一个频率时就变回低电平 LED9 和 LED10 就熄灭 这样在每个秒 周期 LED9 和 LED10 将会闪动一次 显示功能的程序实现将在下一章软件设计中介绍 4 2 2 数码管介绍数码管介绍 C1 30pf C2 30pf Q1 8550 Q2 8550 Q3 8550 Q4 8550 Q5 8550 QA 13 QB 12 QC 11 QD 10 QE 9 QF 15 QG 14 D 6 C 2 B 1 A 7 BI 4 LT 3 VCC 16 LE 5 GND 8 CD4511 5V a b c d e f g dp a b c d e f g dp a g b c d e f a g d c bf e LED11 dp g f e d c b aa g d e fb c e d g a fb c LED12 a g b c d e f LED13 R2160 R2260 R2360 R2460 R2560 R2660 R2760 R2860 烟台大学毕业论文 设计 12 287 15 7 05 1 1 mA VV I UU R 本设计的 显示模块采用两个二位数码管与一个一位数码管来显示 都为共阴极 连接方式 通过 CD4511 的译码输入到阳极端 阴极由 P2 1 P2 6 控制 其中为低电 平时 数码管选通 因为是高频动态扫描显示 并且程序加以视觉余辉的延时程序 便可以完成所需要的显示 下面介绍 CD4511 与数码管的具体功能 图 4 5 CD4511 的引脚图 1 CD4511 的简介 CD4511 的引脚图如图 4 5 所示 这个片子是一个用来驱动共阴极 LED 数码管显示器的 BCD 码 七段码译码器 CD4511 引脚功能介绍 BI 4 脚 是消隐输入控制端 当 BI 0 时 不管其他输入状态如何 七段译 码管均处于熄灭 消隐 状态 不能显示数字 因此正常时直接接高电平 LT 3 脚 为测试输入端 当 BI 1 LT 0 时 译码输出全为 1 不管输入 ABCD 的状态如何 七段均发亮 显示数字 8 它是用来检测数码管是否损坏 LE 所存控制端 LE 0 时 才允许译码输出 当 LE 1 时 译码器是锁存 保持状态 译码器输出将会被保持在 LE 0 时的数值 A B C D 为 BCD 码输入端 QA QB QC QD QE QF QG 为译码输出端 输出为高电平 1 有效 因为数码管电压一般用 0 7V 而电流最大 15mA 所以可计算限流电阻 R 4 1 而本设计以动态扫描的方式显示 那么每位的显示时间在一个扫描周期中实际 只占 1 5 数码管得到的平均电流也只有点亮时驱动电流的 1 5 所以本设计中限流 电阻 R21 R28 选用 60 的电阻 Q A 13 Q B 12 Q C 11 Q D 10 Q E 9 Q F 15 Q G 14 D 6 C 2 B 1 A 7 BI 4 LT 3 V CC 16 LE 5 G ND 8 烟台大学毕业论文 设计 13 2 LED 数码管的简介 作为本设计显示模块的表现部分 选择了两个二位数码管和一个一位数码管 都为共阴极连接 输入端 a b c d e f g 与 CD4511 的输出端 a b c d e f g 相对应连接 小数点 dp 连接到 89C51 的 P2 0 端口 由于采用高频动态扫描于视觉余辉的效果 便可以达到所要求的显示效果 又由于阴极都分别连在 P2 口的端口上 这些端口负 责选通小时高低位 分钟高低位 星期位的显示 P2 1 P2 6 信号为 0 时 选通 下 面简单的介绍二位数码管 二位数码管的引脚图如下所示 图 4 6 二位数码管的引脚图 两个数字的阳极都连接到 CD4511 相应的输出 而 3 4 脚则负责选通那个数字 显示 另外 为了使数码管更亮一些 此处选用五个 PNP 三极管起放大作用 型号为 普通高频放大 PNP8550 三极管 在秒信号的放大上 因为是 P2 7 高电平导通 所 以选用普通低频放大 NPN9013 型号的三极管 为保护三极管 将采用五个限流电阻 接在 P2 1 P2 6 与三极管之间 通常选用 1k 10k 之间 本设计采用 1k 的电阻 与 NPN 之间因为要有 0 7 的压差 所以选用更大的电阻此处选用 2 2k 的电阻 三极 管到两个秒信号之间 仍用 300 的做保护发光二极管 由于 89C51P0 口内部没有上拉电阻 P0 口是一组 8 为漏极开路双向 I O 没有 电源不能输出高电平 不用上拉电阻是不能工作的 所以 P0 口要加上拉电阻 这样 还能让输出高电平信号更稳定 根据一般规律 此处 R17 R20 选用 1k 的上拉电阻 4 3 时钟电路及复位电路的设计时钟电路及复位电路的设计 AT89C51 单片机各功能部件的运行都是以时钟控制信号为基准 有条不紊的一 排一排的工作 因此 时钟频率直接影响单片机的速度 时钟电路的质量也直接影 响单片机系统的稳定性 常见的时钟电路设计有两种方式 一种是内部时钟方式 另一种是外部时钟方式 a 1 b 2 c 10 d 7 e 8 f 5 g 6 dp 9 a g b c d e f a g d c bf e 3 4 烟台大学毕业论文 设计 14 4 3 1 时钟电路时钟电路 1 内部时钟方式 89C51 内部有一个用于构成振荡器的高增益反向放大器 该高增益反向放大器 的输入端为芯片引脚 XTAL1 输出端为引脚 XTAL2 这两个引脚跨接石英晶体振 荡器 简称晶振 和瓷介电容 就构成一个稳定的自己振荡器 图 4 7 为 89C51 内部 时钟方式的振荡器电路 图 4 7 89C51 时钟方式的振荡电路 电路图中的电容 C1 和 C2 典型值通常选择为 30pF 左右 对外界电容的值虽然 没有严格的要求 但电容的大小会影响振荡器频率的高低 起振的快速性和振荡器 的稳定性 晶振的振荡频率范围通常是选在 1 2MHz 12MHZ 之间 本设计选用 12MHz 的晶振 晶振的频率会越高 则系统的时钟频率也就越高 单片机的运行速 度也就越高 但是反过来运行速度快对存储器的速度要求也就越高 对印刷电路板 的工艺要求也相应的高 即要求线间的寄生电容要小 晶振和电容要尽可能安装的 跟单片机芯片靠近 这样可以减少寄生电容 能更好的保证振荡器稳定 可靠地工 作 2 外部时钟方式 外部时钟方式是使用外部振荡脉冲信号 常用于多片 89C51 单片机同时工作 以便于多片 89C51 单片机之间的同步 一般为低于 12MHz 的方波 外部时钟源直接接到 XTAL2 端 通过 XTAL2 端输入到片内的时钟发生器上 电路如图 4 8 所示 由于 XTAL2 的逻辑电平不是 TTL 故建议接一个 4 7 10k 的 上拉电阻 本系统只用到一片单片机芯片 不存在同步的问题 因此采用内部时钟方式 烟台大学毕业论文 设计 15 图 4 8 外部时钟方式振荡电路 4 3 2 复位电路复位电路 计算机在启动时 系统进入复位状态 在复位状态 CPU 和系统都处于一个确 定的初始状态或成为原始状态 在这种状态下 所有的专用寄存器都赋予默认值 单片机复位电路包括片内 片外两部分 片外复位电路通过引脚加到内部复位 电路上 内部复位电路在每个机器周期 S5P2 对片外信号进行一次采样 当 RST 引 脚上出现连续两个机器周期的高电平时 单片机就可以完成一次复位 外部复位电 路就是为内部复位电路提供两个机器周期以上的高电平而设计的 AT89C51 单片机 通常采用上电自动复位和按键手动复位两种方式 上电自动复位电路在通电瞬间 在 RC 电路充电过程中 RST 端出现正脉冲 从而使单片机复位 按键手动复位电路可分为按键电平复位及按键脉冲复位两种 按键电平复位是 将复位端通过电阻与 Vcc 相连 而按键脉冲复位电路是利用 RC 微分电路产生的正 脉冲来达到复位目的 本设计采用按键脉冲复位 电路如图 4 9 所示 烟台大学毕业论文 设计 16 图 4 9 复位电路 根据只要电容充电时间大于两个机器周期以上的时间 就能复位的原则 t RC 其中电阻单位欧姆 电容单位法拉 时间单位秒 选取电容为22uf 电阻 R2 为200 其中电阻 R1为了保护电容而加入 5V 本已小于 C3的击穿电压 故在此 R1可选用常用的1k 的电阻即可 4 4 键盘输入模块键盘输入模块 本设计采用的是独立式非编码键盘的接口电路 连接如图4 10所示 图4 10 键盘电路 图中的每个按键均和89C51的 P3口中一条相连 若没有按键按下时 89C51从 P3口读得引脚电平平均为 1 5V 若某一按键被按下 则该键所对应的端口线变 为低电平 单片机定时对 P3口进行程序查询 即可发现键盘上是否有按键按下以及 烟台大学毕业论文 设计 17 哪个按键被按下 从而通过程序执行相应的操作 这五个按键实现的功能分别如下 AN1按下 对系统时间小时位进行调整 AN2按下 对系统时间分钟位进行调整 AN3按下 对系统时间星期位进行调整 AN4按下 一次时 对浇水时间进行设定 再通过 AN1和 AN2对需要的小 时与分钟进行设定 AN4按下两次时 为对浇水时长进行设定 范围为 0 9999 AN1调整千位和百位 AN2设定十位和个位 按下三次回到正常系统 显示 AN5按下 是为了点亮星期位的小数点 表示此天不浇水 其在 AN3调整 到不需要浇水的天时按下 来点亮此天的小数点位 虽然89C51的 P3口内有上拉电阻 可以不用外界电阻 但是为了增强抗干扰的 能力 本设计在按键电路上都接上一个上拉电阻 大小仍按习惯选用1k 即可 4 5 浇水模块设计浇水模块设计 作为系统的最终执行模块 本设计选取实现八路自动浇水的功能 在系统设置 好每天浇水时间与每路浇水时长后 定时器将会在设定时间开始浇水 每路依次浇 水 浇水的出口 是采用浇灌还是喷灌 由用户根据具体情况自行选用安装 水量 结合设置的浇水时长与选用的水源及管道大小来具体设置 4 5 1 ULN2803的介绍的介绍 浇水开关采用继电器的设计 因此选用了一个 ULN2803 它是驱动用集成电路 片内有8路驱动器 脚1 2 3 4 5 6 7 8分别是这8路驱动器的输入 输入信 号可直接是 TTL 或 CMOS 5 0V 信号 脚18 17 16 15 14 13 12 11分别是8 路驱动器输出 输出是 OC 门 集电极 VCE 50V 驱动电流500MA 可直接驱动灯 或感性负载继电器等 常连接在阵列非常适合逻辑接口电平数字电路 例如 TTL CMOS 或 PMOS 上 NMOS 和较高的电流 电压 如电灯 电磁阀 继电器 打印锤或其他类似的负载 广泛的使用范围 计算机 工业和消费应用 片内8路输出都代有续流二极管 从10脚并联接出 作用是为了防止继电器断开 时产生的反向高压损坏89C51 使用时9脚接地 驱动继电器时10脚接继电器驱动正 电源 例 第一路1脚输入 那么18脚就是输出 驱动继电器 继电器线圈一端接继 电器电源正 继电器线圈另一端接18脚 1脚加高电平 继电器就吸合 其引脚图如图4 11所示 烟台大学毕业论文 设计 18 图4 11 ULN2803引脚图 引脚功能如下 1 8 引脚 输入端 11 18 引脚 输出端 9 引脚 地端 10 引脚 电源 10 脚接正极 9 脚接地 1 进 18 出 2 进 17 出 3 进 16 出 以此类推共 8 路 4 5 2 浇水功能的实现浇水功能的实现 通过上述 ULN2803的介绍 它是一个反向器的作用 设定的浇水的一天到了浇 水时刻时 P1 0 P1 7输出10000000 ULN2803的1口输入高电平 相应的18脚输出低 电平 继电器 K1得点 一路开始浇水 显示模块显示浇水倒计时 倒计时为0000后 P1 0 P1 7输出01000000 从而使第二路开始浇水 以此类推 完成八路自动浇水后 重新显示当前时间 浇水电路如图4 12所示 其中二极管起到在 ULN2803输出电压发生波动时 保 护继电器的作用 所以选择普通的整流二极管 H1N4001 发光二极管是在继电器导 通时随之导通显示本路浇水 其中 R9 R16为发光二极管的限流电阻 在上述计算中 取大于287 的就可 本处选用1k 的作为限流电阻 1 2 3 4 5 6 7 8 GND 9 VCC 10 11 12 13 14 15 16 17 18 烟台大学毕业论文 设计 19 图4 12 浇水控制电路 4 6 电源的设计电源的设计 稳压电源是单片机系统的重要组成部分 它不仅可为系统提供多路电源 还直 接影响到系统的技术指标和抗干扰性 是电路设计中非常关键的一个环节 直流电 源电路一般由电源变压器 整流滤波电路及稳压电路所组成 如图4 13所示 图4 13 直流稳压电源基本组成电框图 整流电路的作用是将交流电压 U1变换成脉动的直流 U2 它主要有半波整流 全 波整流方式 可以由整流二极管构成整流桥堆来执行 常见的整流二极管有 1N4007 1N5148等 本设计选用1N4007 桥堆有 RS210等 滤波电路作用是将脉 K1 VD1 4001 LED1 R9 1k K2 LED2 LED3 K3 5V 18 17 16 15 14 13 12 11 1 2 3 4 5 6 7 8 910 ULN2803 5V VD2 4001 VD3 4001 VD4 4001 R10 1k R11 1k 烟台大学毕业论文 设计 20 动直流 U2滤除纹波 变成纹波小的 U3 常见的电路有 RC 滤波 KL 滤波 型滤 波等 常用的选 RC 滤波电路 其中它们的关系为 4 2 1nUUi 其中 n 分别为变压器的变比 4 3 12 2 1 1 1 UU 每只二极管或桥堆所承受的最大反向电压RMU 4 4 1 2UURM RC 滤波电路中 C 的选择应适应下式 即 RC 放电时间常数应满足 RC 3 5 T 2 4 5 式中 T 为输入交流信号周期 R 整流滤波电路的等效负载电阻 稳压的作用是 将滤波电路输出电压经稳压后 输出较和稳定的电压 常见的稳压电路有三端稳压 器 串联式稳压电路等 电源电路图如图 4 14 所示 图 4 14 电源电路 一个稳压电源输出电压和最大输出电流决定于所选择的三端稳压器 而三端稳 压器是一种标准化的 系列化的通用的线性稳压电源集成电路 本设计中采用 5V 电压所以选用 LM7805稳压器 它具有很好的电压输出精度和稳定性 内部有过流 热过载及输出晶体管安全区提供保护功能 电路使用起来安全可靠 220V 的交流电 压通过变压器变化为交流的低压 然后再经过桥式整流电路的整流和滤波电容 C4滤 波阶段 将会在 LM7805的 Vin 和 GND 两端形成一个并不是十分稳定的直流的电压 该电压经常会因为市电压的波动或负载的变化而发生相应的变化 此直流电压在经 过 LM7805的稳压和电容 C6的滤波作用后便在稳压电源的输出端产生了一个精度高 且稳定性好的直流输出电压 这个最终的稳压电压可作为 TTL 电路或者单片机电路 的电源 Vin 1 GND 2 Vout 3 LM7805 C4 2000uF C6 100uF 1 2 3 4 1N4007 4 C5 0 1uF C7 0 1uF 220V 50Hz 8V 5V 烟台大学毕业论文 设计 21 第五章 系统的程序设计 系统软件部分的设计 是实现系统功能的核心部分 通过编程来完成所需要的 各种功能 是单片机学习的基础 为了更好的实现编程逻辑 就要先画程序框图来 帮助理清 下面将分几个模块的程序框图来了解程序的逻辑 5 1 系统时间显示系统时间显示 本模块将用到定时控制器 本设计通过定义 TINER0中断产生50ms 定时 由 flag 累计定时 20个为1s 程序框图如图5 1所示 否 是 否 是 否 是 否 是 否 是 图 5 1 正常模式下系统时间显示程序框图 flag 0 开始 flag 20 秒加 1 LED9 10 闪 秒 60 秒清零 分加 一 分 60 分清零 时加 一 时 24 时清零 星期加一 星期 8 星期归一 flag 加一 烟台大学毕业论文 设计 22 5 2 键盘控制时间设置键盘控制时间设置 系统键盘模块共设计 AN1 AN6 六个按键 AN1 AN3 负责时间校对 结合 AN4 AN5 按实现浇水时间设置 AN6 为复位按键 框图分为校对系统时间和设置 浇水时间两个模块来介绍 5 2 1 按键校对系统时间按键校对系统时间 是 否 否 是 否 是 否 否 是 否 是 否 是 否 是 图 5 2 正常模式下按键校对系统时间程序框图 正常模式 等待按键按下 是否有按 键按下 AN1 按下 小时加 1 小时 24 小时清零 AN2 按下 分钟加 1 分钟 60 分钟清零 AN3 按下 星期加 1 星期 8 星期归 1 AN6 按下 初始化系 统时间 显示系统时间 烟台大学毕业论文 设计 23 5 2 2 按键设置浇水时间按键设置浇水时间 否 是 否 是 否 否 是 是 否 否 是 是 否 否 否 是 否 否 是 是 是 是 图 5 3 设置模式下按键调整浇水时间程序框图 正常模式 等待按键按下 是否有按 键按下 AN3 按下 星期加 1 AN5 按下 AN1 按下 AN4 按下 一次 两次 AN2 按下 AN1 按下 AN2 按下 设置浇水时间 小时加 1 并 执行校 时的 24 进 位 分钟加 1 并 执行校 时的 60 进 位 前两位 加 1 并执行 100 进 位 后两位 加 1 并执行 100 进 位 点亮 小数 点 此日 不浇 水 设置浇水时长 AN4 三次 显示系统时间 烟台大学毕业论文 设计 24 5 35 3 浇水执行程序框图浇水执行程序框图 是 是 否 否 是 否 是 否 是 否 是 否 是 否 是 否 是 否 是 否 图 5 4 浇水执行程序框图 正常模式 显示时 间 是否到时 今日浇水 1 路浇水 显示倒计时 倒计时 0 倒计时 0 倒计时 0 倒计时 0 倒计时 0 倒计时 0 倒计时 0 倒计时 0 倒计时重置 倒计时重置 倒计时重置 倒计时重置 倒计时重置 倒计时重置 倒计时重置 倒计时重置 2 路浇水 显示倒计时 3 路浇水 显示倒计时 7 路浇水 显示倒计时 8 路浇水 显示倒计时 6 路浇水 显示倒计时 5 路浇水 显示倒计时 4 路浇水 显示倒计时 倒计时减 1 倒计时减 1 倒计时减 1 倒计时减 1 倒计时减 1 倒计时减 1 倒计时减 1 倒计时减 1 显示系统时间 返回 烟台大学毕业论文 设计 25 5 45 4 主程序主程序 系统一共有两套时间体系 系统时间 定时器控制 和浇水开始时间 系统时间是由 Timer0 中断产生 include main h include reg51 h 宏定义和位定义 端口定义 define SEG P0 数码管数据口 define LED P1 仿真时 LED 灯数据口 实际是浇水控制口 define KEY DATAP3 按键接口 位定义 sbit DP P2 1 小数点 sbit TIME 1 P2 2 时 高 sbit TIME 2 P2 3 时 低 sbit TIME 3 P2 4 分 高 sbit TIME 4 P2 5 分 低 sbit TIME 5 P2 6 星期几 sbit TIME 6 P2 7 秒闪烁 宏定义 define KEY NULL 0 xff define TIME 50000 TIMER0 一次定时 50ms define uchar unsigned char define uint unsigned int 全局变量 uchar flag 0 定时器 50Ms 标志 uchar SysSecond 系统时间 秒 uchar SysHour 系统时间 时 uchar SysMinute 系统时间 分 uchar SysDay 系统时间 周 烟台大学毕业论文 设计 26 uchar SECOND FLAG 秒显示标记 1 时 9 10 LED 闪烁 0 闪烁停 止 uchar MON FLAG 浇水天控制标记位 周一 为 1 的时候周一 浇水 否则不浇水 uchar TUE FLAG 浇水天控制标记位 周二 为 1 的时候周二 浇水 否则不浇水 uchar WEN FLAG 浇水天控制标记位 周三 为 1 的时候周三 浇水 否则不浇水 uchar THIR FLAG 浇水天控制标记位 周四 为 1 的时候周四浇 水 否则不浇水 uchar FRI FLAG 浇水天控制标记位 周五 为 1 的时候周五浇 水 否则不浇水 uchar SAT FLAG 浇水天控制标记位 周六 为 1 的时候周六浇 水 否则不浇水 uchar SUN FLAG 浇水天控制标记位 周日 为 1 的时候周日 浇水 否则不浇水 uchar WateringTimeFlag 浇水标志 Timer0 中断倒计时显示控制标志位 为 1 的时候 Timer0 的秒中断让浇水时间递减到 0 uint WateringTime 浇水时长 全局变量 0 9999 uint WateringTime H 浇水时长 高 uint WateringTime L 浇水时长 低 uchar Startwatering HOUR 浇水开始时间 小时 uchar Startwatering minute 浇水开始时间 分钟 函 数 延迟函数 void delayms unsigned int n unsigned int i 0 j 0 for i n i for j 35000 j 延迟函数 烟台大学毕业论文 设计 27 void delayus unsigned int n unsigned int i 0 j 0 for i n i for j0 showcountering WateringTime SysDay 开启第二路浇水装置的电磁阀开始浇水 WateringTime temp LED 0 x02 while WateringTime 0 烟台大学毕业论文 设计 30 showcountering WateringTime SysDay 开启第三路浇水装置的电磁阀开始浇水 WateringTime temp LED 0 x04 while WateringTime 0 showcountering WateringTime SysDay 开启第四路浇水装置的电磁阀开始浇水 WateringTime temp LED 0 x08 while WateringTime 0 showcountering WateringTime SysDay 开启第五路浇水装置的电磁阀开始浇水 WateringTime temp LED 0 x10 while WateringTime 0 showcountering WateringTime SysDay 开启第六路浇水装

温馨提示

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

评论

0/150

提交评论