Word版可编辑-宠物定时喂养器设计精心整理.doc_第1页
Word版可编辑-宠物定时喂养器设计精心整理.doc_第2页
Word版可编辑-宠物定时喂养器设计精心整理.doc_第3页
Word版可编辑-宠物定时喂养器设计精心整理.doc_第4页
Word版可编辑-宠物定时喂养器设计精心整理.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

XXX 学院学院 毕业论文 设计 宠物定时喂养器设计 系 部 电子信息与控制工程系 专 业 名 称 电气自动化技术 班 级 电气 11401 班 姓 名 x x 峰 学 号 2014xxx 指 导 教 师 李 龙 2016 年 2 月 28 日 摘 要 I 摘 要 由于生活节奏的不断加快 当宠物主人上班或外出时 宠物食物和水的供给问题 越来越突出化 特别是当人们长时间出差在外或是旅游度假时 不能及时对家中的宠 物给予很好地照顾 宠物的饮食问题常成为困扰主人外出时的一个负担 本设计是针 对此问题而设计的一种自动定时的宠物喂食机器提高宠物的喂养质量 减轻主人的负 担 对人们的出行减少了后顾之忧 本设计采用了 AT89C51 单片机来控制 LCD 显示面板来显示时间以及显示 5 个段 的定时时间 用按键控制设置 5 个定时时间点 每当定时时间点到时 蜂鸣器 喂水 阀门 喂食阀门立即同时动作 蜂鸣器工作 16S 它的工作主要实现提醒宠物进食 喂水和喂食阀门打开 2S 后自动关闭 食物自上往下流入容器中 供应宠物喂食喝水 本设计解决了工作时或节假日时由于主人不在不能对宠物进行喂食 避免了宠物由于 饮食不正常所产生的问题 关键词关键词 定时喂食 手动喂食 AT89C51 单片机 目 录 II 目 录 1 引言引言 1 2 方案论证与设计方案论证与设计 2 2 1 设计要求 2 2 2 方案论证 2 2 2 1 声音模块 2 2 2 3 显示模块 3 2 2 3 定时模块 3 2 3 按键模块 4 2 4 手动 自动工作模式 4 3 硬件电路设计硬件电路设计 5 3 1 单片机特性 5 3 2 单片机中断的介绍 6 3 3 TMOD 工作方式控制寄存器 7 3 4 复位电路和晶振电路设计 7 3 5 按键电路设计 8 3 6 报警电路描述 9 3 7 显示模块的设计 10 3 8 电源电路 10 3 9 时钟芯片 10 4 电路软件设计电路软件设计 12 4 1 系统总程序流程图 12 4 2 按键的初始化程序 12 4 3 按键的识别程序 14 4 4 蜂鸣器输出程序 15 4 5 时钟芯片初始化程序 15 4 6 液晶显示 16 5 仿真结果仿真结果 17 结结 论论 19 致致 谢谢 20 参考文献参考文献 21 附录附录 22 附录附录 1 22 1 引言 1 1 1 引言引言 随着 21 世纪的到来 中国社会发展的迅速 中国农村每年消失的村庄不计奇数 每年都还趋于上升的趋势 城市的人口迅速增多 充分体现出毛主席的一句话 从农 村包容城市的战略 改革开放 30 多年来国家的 GDP 增速迅速 人们的生活水平越来 越高 而人们对生活的质量 不在是改革开放初期时 只为了填饱肚子 人们思想的 寄托也形成了多样式 年轻人为了生存 为了事业 为了家庭在外打拼 在亲情方面 年轻人是有心而无力 想在家照顾老母亲 老父亲报答他们的养育之恩 但是迫于生 活的压力 年轻人都在为了生活而四处奔波 就形成了家中的空巢老人之说 随着 80 90 主导社会 社会各个阶层各种的压力 大多数人的心里寄托发生了变化 很多 家庭会养起小动物 但是 人们工作的和学习是十分的繁忙 当人们外出时间比较长 时 对宠物的食物和水的供给就出现比较大的问题 特别是当人们出差在外或者是 旅游度假时 经常不能及时的对家中的宠物给予很好地照顾 宠物的饮食常成为困扰 人们主要问题 本设计就是针对此问题而设计的一种装置 它对家居智能化起到了积极地作用 在提高人们生活效率与乐趣的同时 也对人们的出行减少了后顾之忧 本设计大大的 改善了宠物主人们的出行方便 主要功能是实现定时喂养 可以帮助人们在出行不方 便之余 宠物的进食问题得到快速解决 大大的改善了人们出行的快捷方便 无后顾 之忧 2 方案论证与设计 2 2 方案论证与设计 2 12 1 设计要求设计要求 利用单片机的定时功能设计一个宠物自动喂食盒的电路 该设计由食物盒 水槽 驱动电机 阀门及驱动电机组成 设计要求 可以通过键盘输入 5 个定时喂养的时间 每到设定时间后 电动机开始工作 驱动食物盒的阀门打开 食物落入盒中 同时蜂 鸣器鸣叫 吸引宠物进食 时间设定按照 年 月 日 时 分 的格式输入宠物进食时间 2 22 2 方案方案论证论证 分析本题 根据设计要求先确定了本系统的整体设计原理框图如图 2 1 按键模块 单片机 电机驱动模块 声音模块 显示模块 图 2 1 系统整体设计原理框图 当设置好的时间一到 蜂鸣器 喂食阀门 喂水阀门同时开始工作 喂水阀门和 喂食阀门打开的时间为 2 秒 食物和水会从上往下流入容器中 2 秒过后喂水阀门 喂 食阀门同时关闭 蜂鸣器工作 16 秒提醒宠物就食 时间一到蜂鸣器就会自动关闭如图 2 2 所示 2 2 2 2 1 1 声声音音模模块块 方案一 采用一个三极管和一个蜂鸣器 由蜂鸣器发出响声吸引宠物过来进食 蜂鸣器接收到一个低电平 蜂鸣器器发出响声吸引宠物过来进食 方案二 采用扬声器 当时间到的时候扬声器立刻开始工作 按照设定好的音乐 2 方案论证与设计 3 响起 吸引宠物过来进行进食 由于是用单片机来控制宠物定时喂养设计 选着蜂鸣器可以简单一些 只需要一 种声音就可以实现提示功能 虽然扬声器可以选择多种音乐的切换 但是它的电路较 为复杂 根据以上两个方案 采用方案一 图 2 2 系统原理图 2 2 2 2 3 3 显显示示模模块块 方案一 选用数码管显示 用普通的数码管显示简单的数字 符号 字母 只需 一次显示 5 个倒计时间 而且每个时间只需显示 6 个数字 即年 月 日 方案二 采用 LCD 显示屏 可以显示时间 设定的时间 方便更好的操作 显示 界面的功能多一些 方案一中的数码管它显示的内容比较单一 且电路复杂 不易操作 根据以上两 个方案 采用方案二 2 2 2 2 3 3 定定时时模模块块 方案一 采用外部定时设备 定时器 控制时间使电机正常工作 方案二 采用 AT89C51 单片机定时器模块 控制好时间使电动机正常工作 第一种方案需要购买一个外部设备 定时器 提高了成本 占用了空间 第二个 方案不需要外部设备 定时器 直接用 AT89C51 单片机定时器可以实现 根据以上两 2 方案论证与设计 4 个方案 采用第二种方案 2 32 3 按键模块按键模块 方案一 选用独立式键盘 键盘接口中使用多少根 I O 线 键盘中就有几个按键 键盘接口使用了 8 根 I O 口线 该键盘就有 8 个按键 这种类型的键盘 其按键比较 少 且键盘中各按键的工作互不干扰 独立式键盘的缺点是需要占用比较多的 I O 口 线 当单片机应用系统键盘中需要的按键比较少或 I O 口线比较富余时 可以采用这 样类型的键盘 方案二 选用行列式键盘 行列式键盘是用 N 条 I O 线作为行线 M 条 I O 线作 为列线组成的键盘 在行线和列线的每个交叉点上 设置一个按键中按键的个数是 M N 个 这种形式的键盘结构 能够有效的提高单片机系统中 I O 的利用率 列线接 P1 0 P1 3 行线接 P1 4 P1 7 行列适用于按键输入多的情况 方案三 采用 6 个按键开关 可实现五个倒计时间依次键入 分为 设置时间按 钮 加时间按钮 减时间按钮 设置定时按钮 手动模式切换按钮 手动喂食按钮 独立式占用的 I O 口比较多 较为复杂 行列式键盘在本设计在本设计中设计起 来较为复杂用 因此采用方案三 2 42 4 手动手动 自动自动工作模式工作模式 本系统是可以处于手动及自动两种工作模式 手动模式下 由主人通过按键控制 系统工作 在自动模式下 设置的定时时间一到 蜂鸣器开始响起时间 16S 同时电 动机转动 食物阀门 喂水阀门同时打开时间 2S 水和食物将放到容器中 等待宠物 来就食 3 硬件电路设计 5 3 硬件电路设计 3 13 1 单片机单片机特性特性 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器 FPEROM Falsh Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS8 位微处理器 简称单片机 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由于将多功能 8 位 CPU 和闪烁存储器组合在单个 芯片中 ATMEL 的 AT89C51 是一种高效微控制器 AT89C2051 是它的一种精简版本 AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 其具有以下 特性 1 与 MCS 51 兼容 2 4K 字节可编程闪烁存储器 3 寿命 1000 写 擦循 4 数据保留时间 10 年 5 全静态工作 0Hz 24Hz 6 三级程序存储器锁定 7 128 8 位内部 RAM 8 32 可编程 I O 线 9 两个 16 位定时器 计数器 10 5 个中断源 11 可编程串行通道 12 低功耗的闲置和掉电模式 13 片内振荡器和时钟电路 端口介绍 1 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 2 P1 口 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 p1 输出缓冲器能驱 动 4 个 TTL 逻辑电平 3 P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器能驱 3 硬件电路设计 6 动 4 个 TTL 逻辑电平 4 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 p2 输出缓冲器能驱 动 4 个 TTL 逻辑电平 图 3 1 AT89C51 引脚图 端口介绍 5 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 6 P1 口 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 p1 输出缓冲器能驱 动 4 个 TTL 逻辑电平 7 P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器能驱 动 4 个 TTL 逻辑电平 8 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 p2 输出缓冲器能驱 动 4 个 TTL 逻辑电平 3 23 2 单片机中断的介绍单片机中断的介绍 在设计中用到了外部中断 INT0 INT1 和定时器 T0 它们的中断请求标志分别为 IE0 IE1 和 TF0 这些中断请求标志位分别由特殊功能寄存器 TCON 和 TMOD 的相应位锁 存 在这个设计中 中断允许寄存器是首要介绍的 3 4 1 中断允许寄存器 IE 控制 CPU 对中断源的开放或屏蔽 IEEAESET1EX1ET0EX0 3 硬件电路设计 7 位地址 AFHACHABHAAHA9HA8H 当 EA 0 时 所有的中断请求被屏蔽 CPU 不接受任何请求 当 EA 1 时 CPU 开中断 此时只要五个中断源的中断请求允许为 1 则开中断 3 33 3 TMOD TMOD 工作方式控制寄存器工作方式控制寄存器 用于选择定时器 计数器的工作模式 字节地址为 89H 8 位分 2 组 高 4 位控制 T1 低 4 位控制 T0 其格式如下 D7D6D5D4D3D2D1D0 TMODGATEC TM1M0GATEC TM1M0 下面对工作方式选择位做说明 M1 M0 工作方式选择位 M1 M0 共有 4 种编码 分别对应 4 种工作方式 如表 1 表 1 工作方式选择 M1 M0 工作方式 0 0 方式0 为13位定时器 计数器 0 1 方式1 为16位定时器 计数器 1 0 方式2 8位的常数自动重新装载的定时器 计数器 1 1 方式3 仅适应于T0 T0分为两个8位的计数器 停止计数 中断的触发方式 电平触发方式和下降沿触发方式 3 43 4 复位电路复位电路和晶振电路设计和晶振电路设计 复位电路的作用是一种用来使电路恢复到起始状态的电路设备 复位电路一般采 3 硬件电路设计 8 用如下两种方式 1 上电复位 上电瞬间 电容充电电流最大 电容相当于短路 RST 端为高电平 自动复位 电容两端的电压达到电源电压时 电容充电电流为零 电容相当于开路 RST 端为低电平 程序正常运行 2 手动复位 首先经过上电复位 当按下按键时 RST 直接与 VCC 相连 为高 电平形成复位 同时电解电容被短路放电 按键松开时 VCC 对电容充电 充电电流 在电阻上 RST 依然为高电平 仍然是复位 充电完成后 电容相当于开路 RST 为 低电平 正常工作 复位电路工作原理如图所示 VCC 上电时 C 充电 在 10K 电阻 上出现电压 使得单片机复位 几个毫秒后 C 充满 10K 电阻上电流降为 0 电压也 为 0 使得单片机进入工作状态 工作期间 按下 S C 放电 S 松手 C 又充电 在 10K 电阻上出现电压 使得单片机复位 几个毫秒后 单片机进入工作状态 如图 3 1 3 2 所示 图 3 1 上电复位 图 3 2 手动复位 3 3 5 5 按键电路设计按键电路设计 本电路有六个开关按钮组成分别为 设置时间按钮 加按钮 减按钮 设置定时 按钮 手动模式切换按钮 手动喂食按钮 设置时间按钮 当宠物定时喂养设计开始以后 LCD 显示屏会显示当天的年 月 日以及时 分 秒 如果与当天的时间发生错误时 我们可以按设置时间按钮 设置准确 的时间 包括时 分 秒 年 月 日 为方便下面的定时做好准备 加按钮 当设置 LCD 显示屏的时间时 可以才用加按钮来快速调节时间 大大的 方便设置时间的速度 加按钮也是设置定时时间调节的主要快捷按钮 减按钮 当设置 LCD 显示屏的时间时 可以才用减按钮来快速调节时间 大大的 方便设置时间的速度 减按钮也是设置定时时间调节的主要快捷按钮 设置定时按钮 本设计采用了 5 个设定时间点来控制宠物定时喂养工作的 设置 3 硬件电路设计 9 定时按钮可以设置 5 个不同的时间点 每个时间点到 蜂鸣器 水阀门 食物阀门立 即工作 水阀门和食物阀门 2S 过后立即关闭 食物自上往下流入容器中 当 17S 过后 蜂鸣器停止工作 手动模式切换按钮 当按下手动手动模式切换按钮 LCD 显示屏会显示 auto hand Auto 是自动喂食 当切换成 auto 模式时 此时设置的定时时间才会工 作 否则它不会工作 当切换在 hand 时是手动操作 此时的定时时间不会因为时间到 就会工作 因为此时设置的是手动操作 它在为手动喂食按钮控制做准备 手动喂食按钮 当手动模式切换按钮切换在 hand 时 此时按下手动喂食按钮蜂鸣 器 喂水阀门 喂食阀门立刻打开 此时的工作是没有时间限制的 食物也是从上往 下 流入到容器内 当键盘中按键数量较多时 可以采用矩阵键盘减少 I O 口的占用 在本设计中按 键数量较少 采用独立按键 当按下按键 单片机相应的端口检测到低电平 按键电 路如图 3 3 所示 图 3 3 按键电路图 3 63 6 报警电路描述报警电路描述 蜂鸣器的端口分为正负两个端口 正极接三极管 负极接地 工作原理 三极管 主要是做驱动放大电流 单片机的 IO 口驱动能力不够让蜂鸣器发出声音 所以我们通 过三极管放大驱动电流 从而可以让蜂鸣器发出声音 当输出高电平时 三极管导通 集电极电流通过蜂鸣器让蜂鸣器发出声音 16S 当输出低电平时 三极管截止 没有 电流流过蜂鸣器 所以就不会发出声音 如图 3 4 所示 3 硬件电路设计 10 图 3 4 报警电路图 3 73 7 显示模块的设计显示模块的设计 此 LCD 显示屏的主要功能是显示时间和手动与自动的切换 也是按钮操作的显示 窗口 端口介绍 VSS 电源接地 VDD 电源正极 RS 数据命令选择端 RW 读写选 择端 E 使能信号 D0 D7I O 端 该液晶显示屏是通过时钟芯片来控制实现的 显 示年 月 日 时 分 秒 hand auto 如图 3 5 3 6 所示 图 3 5 液晶 1602 显示屏 图 3 6 液晶 1602 显示屏 3 83 8 电源电路电源电路 单片机电源 220v 转 5v 设计电源电路采用 LM7805 集成稳压器作为稳压器件 用 典型接法 220V 电源整流滤波后送入 LM7805 稳压 在输出端接一个 470U 和 0 1U 电 容进一步滤除纹波 得到 5V 稳压电源如图 3 6 所示 220V 9V 压 TF1 压 压 压 Vin 5V GND 7805D1 4007 D4 4007 D3 4007 D2 4007C3 220uF 25V C2 1000uF 25V GND VCC 图 3 6 电源电路图 3 硬件电路设计 11 3 93 9 时钟时钟芯片芯片 时钟芯片是日常生活中应用最为广泛的消费类电子产品之一 它为人们提供精确 的实时时间 可以对年 月 日 时 分 秒进行计时 且具有闰年补偿等多种功能 或者为电子系统提供精确的时间基准 在本设计中 时钟芯片向单片机提供日期等信 息 时钟芯片及日期显示如图 3 7 3 8 所示 图 3 7 时钟芯片 图 3 8 LED1602 显示 4 电路软件设计 12 4 电路软件设计 4 14 1 系统总程序流程图系统总程序流程图 图 4 1 系统流程图 本设计分手动和自动两种工作模式 在自动模式下 当设置好的时间一到 蜂鸣 器 喂食阀门 喂水阀门同时开始工作 喂水阀门和喂食阀门打开的时间为 2 秒 食 物和水会从上往下流入容器中 2 秒过后喂水阀门 喂食阀门同时关闭 蜂鸣器工作 16 秒提醒宠物就食 时间一到蜂鸣器就会自动关闭 4 24 2 按键的初始化程序按键的初始化程序 在本设计中 单片机的 P1 0 为设置时间 P1 1 为设置 P1 2 为设置 P1 3 为 设置预定时间 P1 4 为设置切换模式 P1 5 为手动喂食如图 4 2 所示 4 电路软件设计 13 图 4 2 初始化流程图 初始化化程序如下 uchar st1 2 5 7 uchar st2 2 14 16 uchar st3 2 17 0 uchar st4 2 20 0 uchar st5 2 23 0 按键 sbit key1 P1 0 设置时间 sbit key2 P1 1 设置 sbit key3 P1 2 设置 sbit key4 P1 3 设置预定时间 sbit key5 P1 4 设置切换模式 sbit key6 P1 5 手动喂食 4 电路软件设计 14 4 34 3 按键的识别按键的识别程序程序 程序设计中按键的检查采用的是查询方式 以按键 P1 0 为例 当检测到 KEY1 0 时 进入相应的设置时间处理程序 如下图 4 3 所示 图 4 3 按键识别流程图 void set0 0 按键的程序 切换 if key1 0 moshi moshi 1 9 if moshi 8 ds1302 settime beerc moshi 0 while key1 0 4 电路软件设计 15 4 44 4 蜂鸣器输出程序蜂鸣器输出程序 蜂鸣器采用 P2 3 口作为输出口如图 4 4 所示 4 4 所示如图 void beerc 蜂鸣器 beer 0 delay ms 100 beer 1 4 54 5 时钟芯片初始化程序时钟芯片初始化程序 始终芯片在本设计提供日历等相关信息 下面为始终芯片的初始化程序 sbit SLCK P3 5 时钟芯片的程序 sbit IO P3 7 输出数据口 sbit RST P3 6 复位口 define io IO 1 define DDR 1 nop define DDR 0 IO 1 4 电路软件设计 16 define SLCK1 SLCK 1 define SLCK0 SLCK 0 define IO1 IO 1 define IO0 IO 0 define RST1 RST 1 define RST0 RST 0 unsigned char time 0 x00 0 x0b 0 x0b 0 x02 0 x01 0 x01 0 x0c 写入 dat void ds1302 write unsigned char dat uchar i DDR 1 for i 0 i 1 SLCK0 nop SLCK1 nop 4 64 6 液晶显示液晶显示 液晶的初始化 它主的功能就是显示时分秒 lcd1602 adr 0 x40 lcd1602 writenumber 0 x30 time 2 100 10 lcd1602 adr 0 x41 lcd1602 writenumber 0 x30 time 2 10 显示分 lcd1602 adr 0 x42 lcd1602 writenumber lcd1602 adr 0 x43 lcd1602 writenumber 0 x30 time 1 100 10 lcd1602 adr 0 x44 lcd1602 writenumber 0 x30 time 1 10 显示秒 lcd1602 adr 0 x45 lcd1602 writenumber lcd1602 adr 0 x46 lcd1602 writenumber 0 x30 time 0 100 10 lcd1602 adr 0 x47 lcd1602 writenumber 0 x30 time 0 10 详细程序见附录 5 仿真结果 17 5 仿真结果 图 5 1 仿真效果图 该设计可以根据实际情况选择手动喂食或是自动喂食 自动喂食 把 LCD 显示屏手动切换按钮调制 auto 模式 依次设置定时 TIME1 TIME2 TIME3 TIME4 TIME5 当时间一到蜂鸣器立即开始工作 15S 提醒 宠物就食 此时打开水阀门和打开食物阀门的步进电机开始正转带动阀门打开 2S 此 时食物和水从上往下流入容器中 2S 时间一到步进电机反转工作带动阀门立即关闭 此时蜂鸣器还在工作 当 16S 时间一到蜂鸣器停止工作 手动喂食 把 LCD 显示屏手动切换按钮调制 hand 模式 按下手动喂食按钮 蜂鸣 器 打开水阀门 打开食物阀门三个同时工作 直到手松开手动按钮 操作步骤 设置时间操作 通过设置时间按钮 LCD 显示屏来显示设置时间的年 月 日 时 分 秒利用加减按钮来增加或减小时间数值的大小如图 4 2 所示 5 仿真结果 18 图 5 2LCD 显示设置时间 设置定时时间 本设计分为 5 个时间段为 Time1 Time2 Time3 Time4 Time5 如图 4 3 所示 图 5 3 显示设置定时时间 手动或自动的切换 手动模式切换按钮主要是实现手动喂食和自动喂食的切换功能 如图 4 4 4 5 所示 图 5 4 手动模式 图 5 5 自动模式 结论 19 结 论 本设计主要研究如何设定五个时间点并发出喂食信号 宠物喂食器系统主要包括 单片机控制 自动开关和蜂鸣器提示 倒计时间设定系统 喂食器的喂食过程 通过 键盘设定五个倒计时间 当依次到达这五个时间时 发光二极管发光 蜂鸣器发出响 声 吸引宠物过来进食并自动投放食物 本设计解决了工作时或节假日时由于主人不 在不能对宠物进行喂食 避免了宠物由于饮食不正常所产生的问题 改善了宠物主人 外出的时间 有了这个宠物定时喂养器 就可以让宠物宝宝们不会因为主人外出而影 响到进食了 宠物们也可以快乐的健康的成长 主人也可以不用愁外出宠物没有人喂 养了 致谢 20 致 谢 我想向曾经给我帮助和支持的人们表示衷心的感谢 首先要感谢我的指导老师李 龙 他指明了毕业设计的努力方向 使这次毕业设计成了我的一个良好实践锻炼的机 会 使我的视野开阔了 思维更清晰了 其次还要感谢大学三年以来所有的老师 他 她 们为我打下自动化专业知识的基础 同时还要感谢帮助过我同学们 正是因为 有了你们的支持和鼓励 此次毕业设计才会顺利完成 参考文献 21 参考文献 1 童诗白主编 模拟电子技术基础 修订 2 版 北京 高等教育出版社 1988 2 阎石主编 数字电子技术基础 修订 3 版 北京 高等教育出版社 1988 3 胡汉才主编 单片机原理及其接口技术 第二版 北京 清华大学出版社 2004 4 张毅刚主编 单片机原理及应用 北京 高等教育出版社 5 马忠梅等编著 单片机 C 语言应用程序设计 第四版 北京航空航天大学出版社 2007 1 6 何立民 MCS 51 单片机应用系统设计 北京航空航天大学出版社 1998 7 7 徐爱军 单片机高级语言 C51 应用程序设计 电子工业出版社 1997 7 8 张志良 单片机原理与控制技术 北京 机械工业出版社 2008 9 于海生 微型计算机控制技术 北京 清华大学出版社 1999 3 10 康华光 电子技术基础 M 模拟部分 高等教育出版社 1998 附录 22 附录 附录附录 1 1 源程序清单 include include include define uchar unsigned char define uint unsigned int 用液晶屏显示参数 uchar code zifx0 0123456789abcdef uchar code zifu0 2015 05 01 Mon uchar code zifu1 12 00 00 用液晶屏显示参数 uchar code zifu2 SET Time1 uchar code zifu3 08 00 用液晶屏显示参数 uchar code zifu4 SET Time2 uchar code zifu5 12 00 用液晶屏显示参数 uchar code zifu6 SET Time3 uchar code zifu7 17 00 用液晶屏显示参数 uchar code zifu8 SET Time4 uchar code zifu9 20 00 用液晶屏显示参数 uchar code zifu10 SET Time5 uchar code zifu11 23 00 定义时间 uchar st1 2 5 7 uchar st2 2 14 16 uchar st3 2 17 0 uchar st4 2 20 0 uchar st5 2 23 0 按键 sbit key1 P1 0 设置时间 sbit key2 P1 1 设置 sbit key3 P1 2 设置 sbit key4 P1 3 设置预定时间 sbit key5 P1 4 设置切换模式 sbit key6 P1 5 手动喂食 uchar hand 0 手动模式 uchar bzmoshi 0 显示模式 uchar moshi 0 设置时间显示模式 uchar bzx 0 设置选择 uint jishus 0 显示闪烁变量 uint jishuc1 提醒 附录 23 uint jishuc2 提醒 sbit beer P2 3 sbit out1 P2 4 sbit out2 P2 5 DS1302 时钟芯片 时钟 sbit SLCK P3 5 输出数据口 sbit IO P3 7 复位口 sbit RST P3 6 define io IO 1 define DDR 1 nop define DDR 0 IO 1 define SLCK1 SLCK 1 define SLCK0 SLCK 0 define IO1 IO 1 define IO0 IO 0 define RST1 RST 1 define RST0 RST 0 unsigned char time 0 x00 0 x0b 0 x0b 0 x02 0 x01 0 x01 0 x0c 写入 dat void ds1302 write unsigned char dat uchar i DDR 1 for i 0 i 1 SLCK0 nop SLCK1 nop 输出 dat unsigned char ds1302 read uchar i uchar dat 0 x00 DDR 0 for i 0 i 8 i SLCK1 nop SLCK0 nop if io dat 1 i return dat 16 10 dat 16 附录 24 读取指定地址 adress 中的 dat unsigned char ds1302 readadress unsigned char adress uchar dat RST0 nop SLCK0 nop RST1 nop ds1302 write adress dat ds1302 read SLCK1 nop RST0 nop return dat 在指定地址 adress 写入 dat void ds1302 writeadress unsigned char adress unsigned char dat RST0 nop SLCK0 nop RST1 nop ds1302 write adress ds1302 write dat SLCK1 nop RST0 读取时间 void ds1302 readtime uchar i uchar adress 0 x81 for i 0 i 7 i time i ds1302 readadress adress adress 2 nop nop nop nop 设置时间 void ds1302 settime uchar i ds1302 writeadress 0 x8E 0 x00 for i 0 i 7 i ds1302 writeadress 0X80 2 i time i 10 4 time i 10 nop nop nop nop 附录 25 ds1302 writeadress 0 x8E 0 x80 sbit RS P2 0 写信号 sbit RWW P2 1 读信号 sbit E P2 2 使能信号 define e1 E 1 define rd1 RWW 1 define rs1 RS 1 define e0 E 0 define rd0 RWW 0 define rs0 RS 0 define PP P0 延时函数 ms void delay ms uint t uint i j for i 0 i t i for j 0 j0 t 写 1602 控制字 void lcd1602 writecrtl uchar dat rd0 读信号置 0 rs0 写信号置 0 delay us 5 PP dat e1 使能信号置 1 delay us 5 e0 使能信号置 0 写 1602 数据 void lcd1602 writenumber uchar dat rd0 读信号置 0 rs1 写信号置 1 delay us 5 PP dat e1 使能信号置 1 附录 26 delay us 5 e0 使能信号置 0 1602 初始化 void lcd1602 init lcd1602 writecrtl 0 x38 显示模式 lcd1602 writecrtl 0 x06 显示光标移动位置 lcd1602 writecrtl 0 x0c 显示开及光标设置 lcd1602 writecrtl 0 x01 显示清屏 显示地址 void lcd1602 adr uchar dat lcd1602 writecrtl 0 x80 dat 行显示 void LCD1602 string uchar hang uchar lie uchar const p uchar a if hang 1 a 0 x00 if hang 2 a 0 x40 a a lie 1 lcd1602 adr a while 1 if p 0 break lcd1602 writenumber p p uchar code zifux 1234567812345678 LCD1602 string 1 1 zifux LCD1602 string 2 1 zifux void beerc 蜂鸣器 beer 0 delay ms 100 beer 1 显示 void xianshi0 附录 27 读取时间 ds1302 readtime 显示年月日 lcd1602 adr 0 x00 lcd1602 writenumber 0 x30 2 lcd1602 adr 0 x01 lcd1602 writenumber 0 x30 0 显示年 lcd1602 adr 0 x02 lcd1602 writenumber 0 x30 time 6 100 10 lcd1602 adr 0 x03 lcd1602 writenumber 0 x30 time 6 10 显示 月 lcd1602 adr 0 x04 lcd1602 writenumber lcd1602 adr 0 x05 lcd1602 writenumber 0 x30 time 4 100 10 lcd1602 adr 0 x06 lcd1602 writenumber 0 x30 time 4 10 显示 日 lcd1602 adr 0 x07 lcd1602 writenumber lcd1602 adr 0 x08 lcd1602 writenumber 0 x30 time 3 100 10 lcd1602 adr 0 x09 lcd1602 writenumber 0 x30 time 3 10 显示 星期 lcd1602 adr 0 x0a lcd1602 writenumber if time 5 1 lcd1602 writenumber M lcd1602 writenumber o lcd1602 writenumber n lcd16 02 writenumber if time 5 2 lcd1602 writenumber T lcd1602 writenumber u lcd1602 writenumber e lcd160 2 writenumber if time 5 3 lcd1602 writenumber W lcd1602 writenumber e lcd1602 writenumber d lcd16 02 writenumber if time 5 4 lcd1602 writenumber T lcd1602 writenumber h lcd1602 writenumber u lcd160 2 writenumber if time 5 5 lcd1602 writenumber F lcd1602 writenumber r lcd1602 writenumber i lcd1602 writenumber if time 5 6 lcd1602 writenumber S lcd1602 writenumber a lcd1602 writenumber t lcd160 2 writenumber if time 5 7 lcd1602 writenumber S lcd1602 writenumber u lcd1602 writenumber n lcd160 2 writenumber 显示时 lcd1602 adr 0 x40 lcd1602 writenumber 0 x30 time 2 100 10 lcd1602 adr 0 x41 lcd1602 writenumber 0 x30 time 2 10 显示分 附录 28 lcd1602 adr 0 x42 lcd1602 writenumber lcd1602 adr 0 x43 lcd1602 writenumber 0 x30 time 1 100 10 lcd1602 adr 0 x44 lcd1602 writenumber 0 x30 time 1 10 显示秒 lcd1602 adr 0 x45 lcd1602 writenumber lcd1602 adr 0 x46 lcd1602 writenumber 0 x30 time 0 100 10 lcd1602 adr 0 x47 lcd1602 writenumber 0 x30 time 0 10 lcd1602 writenumber lcd1602 writenumber if hand 0 lcd1602 writenumber h lcd1602 writenumber a lcd1602 writenumber n lcd1602 writenumber d if hand 1 lcd1602 writenumber a lcd1602 writenumber u lcd1602 writenumber t lcd1602 writenumber o uchar bzs void xianshi00 bzs if bzs 40 bzs 0 当相应的年月日 时分秒 模式对应时则进行修改 lcd1602 adr 0 x00 lcd1602 writenumber 0 x30 2 lcd1602 adr 0 x01 lcd1602 writenumber 0 x30 0 调节年 lcd1602 adr 0 x02 lcd1602 writenumber 0 x30 time 6 100 10 lcd1602 adr 0 x03 if moshi 1 else lcd1602 writenumber 0 x30 time 6 10 调节月 lcd1602 adr 0 x04 lcd1602 writenumber lcd1602 adr 0 x05 lcd1602 writenumber 0 x30 time 4 100 10 lcd1602 adr 0 x06 if moshi 2 else lcd1602 writenumber 0 x30 time 4 10 调节日 附录 29 lcd1602 adr 0 x07 lcd1602 writenumber lcd1602 adr 0 x08 lcd1602 writenumber 0 x30 time 3 100 10 lcd1602 adr 0 x09 if moshi 3 else lcd1602 writenumber 0 x30 time 3 10 空格显示星期 lcd1602 adr 0 x0a lcd1602 writenumber if time 5 1 lcd1602 writenumber M lcd1602 writenumber o lcd1602 writenumber n lcd16 02 writenumber if time 5 2 lcd1602 writenumber T lcd1602 writenumber u lcd1602 writenumber e lcd160 2 writenumber if time 5 3 lcd1602 writenumber W lcd1602 writenumber e lcd1602 writenumber d lcd16 02 writenumber if time 5 4 lcd1602 writenumber T lcd1602 writenumber h lcd1602 writenumber u lcd160 2 writenumber if time 5 5 lcd1602 writenumber F lcd1602 writenumber r lcd1602 writenumber i lcd1602 writenumber if time 5 6 lcd1602 writenumber S lcd1602 writenumber a lcd1602 writenumber t lcd160 2 writenumber if time 5 7 lcd1602 writenumber S lcd1602 writenumber u lcd1602 writenumber n lcd160 2 writenumber if moshi 4 lcd1602 writenumber else lcd1602 writenumber 调节时 lcd1602 adr 0 x40 lcd1602 writenumber 0 x30 time 2 100 10 lcd1602 adr 0 x41 if moshi 5 else lcd1602 writenumber 0 x30 time 2 10 调节分 lcd1602 adr 0 x42 lcd1602 writenumber lcd1602 adr 0 x43 lcd1602 writenumber 0 x30 time 1 100 10 if moshi 6 else lcd1602 writenumber 0 x30 time 1 10 调节秒 lcd1602 adr 0 x45 lcd1602 writenumber lcd1602 adr 0 x46 lcd1602 writenumber 0 x30 time 0 100 10 lcd1602 adr 0 x47 if moshi 7 else lcd1602 writenumber 0 x30 time 0 10 附录 30 按键按下时相应模式下该参数加 1 if key2 0 delay ms 4 if key2 0 按键按下时相应模式下该参数加 1 if moshi 1 time 6 time 6 1 100 按键按下时相应模式下该参数加 1 if moshi 2 time 4 time 4 1 13 if time 4 0 time 4 1 按键按下时相应模式下该参数加 1 if moshi 3 if time 4 1 time 3 time 3 1 32 if time 4 2 if time 6 4 0 time 3 time 3 1 30 else time 3 time 3 1 29 if time 4 3 time 3 time 3 1 32 if time 4 4 time 3 time 3 1 31 if time 4 5 time 3 time 3 1 32 if time 4 6 time 3 time 3 1 31 if time 4 7 time 3 time 3 1 32 if time 4 8 time 3 time 3 1 32 if time 4 9 time 3 time 3 1 31 if time 4 10 time 3 time 3 1 32 if time 4 11 time 3 time 3 1 31 if time 4 12 time 3 time 3 1 32 if time 3 0 time 3 1 按键按下时相应模式下该参数加 1 if moshi 4 moshi 3 time 5 time 5 1 8 if time 5 0 time 5 1 按键按下时相应模式下该参数加 1 if moshi 5 time 2 time 2 1 24 按键按下时相应模式下该参数加 1 if moshi 6 time 1 time 1 1

温馨提示

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

评论

0/150

提交评论