基于单片机的宠物喂食器电路设计_毕业设计-精品.doc_第1页
基于单片机的宠物喂食器电路设计_毕业设计-精品.doc_第2页
基于单片机的宠物喂食器电路设计_毕业设计-精品.doc_第3页
基于单片机的宠物喂食器电路设计_毕业设计-精品.doc_第4页
基于单片机的宠物喂食器电路设计_毕业设计-精品.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的宠物喂食器电路设计 I 摘要摘要 本设计所研究的是实现一个宠物自动喂食器 即先将宠物饲料放入其中 通过设 定五个喂食时间点 当到达这一时间点后 系统发出喂食信号吸引宠物 自动进行喂 食 本设计主要研究如何设定五个时间点并发出喂食信号 宠物喂食器系统主要包括 单片机控制 自动开关和蜂鸣器提示 倒计时间设定系统 喂食器的喂食过程 通过 键盘设定五个倒计时间 当依次到达这五个时间时 发光二极管发光 蜂鸣器发出响 声 吸引宠物过来进食并自动投放食物 本设计解决了工作时或节假日时由于主人不 在不能对宠物进行喂食 避免了宠物由于饮食不正常所产生的问题 在整个系统中 利用单片机对各个系统进行控制 倒计时系统时间通过六位七段数 码管显示出来 利用键盘设定五个倒计时间 单片机不停的读取时间 并判断是否到 达喂食时间 开关系统电阻和发光二极管表示 发光二级管收到低电平时导通表示 开关打开投放喂食 同时接有蜂鸣器 当到达喂食时间后蜂鸣器发出响声吸引宠物进 行喂食 关键词 智能 定时喂养 单片机 AT89S52 基于单片机的宠物喂食器电路设计 II Abstract The study design is to achieve an automatic pet feeder pet feed into which will set the five fed point when you reach this point in time automatically feeding The main point of how to set the time within the pet food put out Pet feeder system includes MCU control automatic switch and music alert system the remaining time setting system Feeder feeding process the five remaining time set by the keyboard when the order reaches the five time while the timer chip to send a signal relay and music music playback chip a piece of music attracted the pet the relay switch is closed So that a red light emitting diode said switch delivery of food This design solves the holidays when work or not is not the owner of the pet to feed to avoid the pet food is not normal because the problems arising Throughout the system the use of single chip control system of each Countdown to the system time by six out of seven segment digital display Using the keyboard to set the five remaining time microcontroller reads the stop time and to determine whether the feeding time arrives Switching system by the relay and the light emitting diode said switch is closed when the relay received high light emitting diode said switch is running feeding Tip has a music system when the arrival time after feeding a piece of music tips music playback chip to feed pets Key words intelligent automatic feeding MCU 基于单片机的宠物喂食器电路设计 目 录 中文摘要 英文摘要 1 绪论 1 1 1 设计意义 1 1 2 设计要求 1 2 设计方案 2 2 1 按键模块 2 2 2 自动开关模块 2 2 3 蜂鸣器模块 2 2 4 显示模块 3 3 硬件电路的设计 3 3 1 单片机 3 3 1 1 AT89S52 单片机的简介 3 3 1 2 AT89S52 的时钟介绍 5 3 1 3 单片机中断的介绍 7 3 2 电源电路 8 3 3 时钟电路 8 3 4 复位电路 9 3 5 LED 数码管显示 10 3 5 1 数码管显示简介 10 3 5 2 数码管编码表 11 3 6 开关控制 11 3 7 单片机的去抖动 12 4 电路的软件部分 13 参考文献 46 附录 1 47 附录 2 48 附录 3 49 致谢 50 基于单片机的宠物喂食器电路设计 1 1 绪论 1 1 设计意义 单片机自 20 世纪 70 年代问世以来 以其极高的性能价格比受到人们的重视和关 注 应用广泛 发展快速 单片机具有体积小 速度快 抗干扰能力强 环境要求不 高 性能可靠和价格低廉等优点 通常在其外部配置外围电路就可构成一完整的控制 系统 由于具有以上优点 在我国 单片机已广泛应用与工业自动化控制 自动检测 智能仪器仪表 家电电器 电力电子 武器装备 机电一体化设备等各个方面 单片机 亦称单片微电脑或单片微型计算机 它是把中央处理器 CPU 随机存取 存储器 RAM 只读存储器 ROM 输入 输出端口 I 0 等主要计算机功能部件都集成 在一块集成电路芯片上的微型计算机 现在越来越多的家庭都饲养有猫 狗等宠物 但是由于工作等原因 宠物的饮食 规律得不到一定的保障 宠物喂食器可以解决这一问题 宠物自动喂食器可以定时定 量的进食 且设计简单方便 有一定的实用价值 1 2 设计要求 利用单片机的定时功能设计一个宠物自动喂食盒的电路 要求 可以通过键盘输 入至少 3 个倒计时时间 每一个倒计时时间到后 发出宠物开始喂食信号 扩展功能 按照 年 月 日 时 分 的格式输入宠物进食时间 基于单片机的宠物喂食器电路设计 2 2 设计方案 分析本题 根据设计要求先确定了本系统的整体设计原理框图如图 1 按键模块 单片机 自动开关模块 蜂鸣器 显示模块 图 1 系统整体设计原理框图 2 1 按键模块 采用 7 个触键开关 可实现五个倒计时间依次键入 同时还有两个调时按键 再一个复位按键 2 2 自动开关模块 采用三极管和发光二极管近似表示 本系统是基于 52 单片机的宠物自动喂食的 设计 用电阻和发光二极管代替比较容易 当发光二级管接收到一个低电平时开关闭 合 发光二极管导通发出绿光表示自动投食 2 3 蜂鸣器模块 采用一个三极管和一个蜂鸣器 由蜂鸣器发出响声吸引宠物过来进食 当发光二极管亮灯时 蜂鸣器接收到一个低电平 蜂鸣器器发出响声吸引宠物过来进 食 2 4 显示模块 选用数码管显示 用普通的数码管显示简单的数字 符号 字母 只需一次显示 5 个倒计时间 而且每个时间只需显示 6 个数字 即年 月 日 基于单片机的宠物喂食器电路设计 3 3 硬件电路的设计 3 1 单片机 3 1 1 AT89S52 单片机的简介 AT89S52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编程 Flash 存储器 使用 Atmel 公司高密度非易失性存储器技术制造 与工 80C51 产品 指令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编程 亦适于常规编程器 AT89S52 具有以下标准功能 8k 字节 Flash 256 字节 RAM 32 位 I O 口线 看门狗定时器 2 个数据指针 三个 16 位定时器 计数器 一个 6 向量 2 级中断结 构 全双工串行口 片内晶振及时钟电路 另外 AT89S52 可降至 0Hz 静态逻辑操 作 支持 2 种软件可选择节电模式 空闲模式下 CPU 停止工作 允许 RAM 定时 器 计数器 串口 中断继续工作 掉电保护方式下 RAM 内容被保存 振荡器被冻 结 单片机一切工作停止 直到下一个中断或硬件复位为止 3 1 1 1 主要性能 与 MCS 51 单片机产品兼容 8K 字节在系统可编程 Flash 存储器 1000 次擦写周期 全静态操作 0Hz 33Hz 三级加密程序存储器 32 个可编程 I O 口线 三个 16 位定时器 计数器 八个中断源 全双工 UART 串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 基于单片机的宠物喂食器电路设计 4 3 1 1 2AT89S52 双列直插式引脚图 VCC P0 5 AD5 P0 0 AD0 P0 1 AD1 P0 2 AD2 P0 4 AD4 P0 3 AD3 P0 6 AD6 P0 7 AD7 P2 0 A8 P2 2 A10 P2 1 A9 P2 7 A15 P2 6 A14 P2 5 A13 P2 4 A12 P2 3 A11 PSEN ALE PROG EA VPP T2 P1 0 T2EX P1 1 P1 2 P1 3 P1 4 MOSI P1 5 MISO P1 6 SCK P1 7 RXD P3 0 TXD P3 1 T0 P3 4 T1 P3 5 XTAL2 XTAL1 GND RST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 15 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 AT89S52 P3 7RD P3 6WR P3 2INT0 P3 3INT1 图 2 1 AT89S52 双列直插式引脚图 3 1 1 3 端口介绍 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 作为输出口 每位能驱动 8 个 TTL 逻辑电平 对 P0 端口写 1 时 引脚用作高阻抗输入 当访问外部程序和数据 存储器时 P0 口也被作为低 8 位地址 数据复用 在这种模式下 P0 具有内部上拉电 阻 在 flash 编程时 P0 口也用来接收指令字节 在程序校验时 输出指令字节 程序校验时 需要外部上拉电阻 P1 口 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 p1 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为 输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 IIL 此外 P1 0 和 P1 2 分别作定时器 计数器 2 的外部计数输入 P1 0 T2 和 时器 计数器 2 的触发输入 P1 1 T2EX 在 flash 编程和校验时 P1 口接收低 8 位 地址字节 基于单片机的宠物喂食器电路设计 5 P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P2 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为 输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 IIL 在访问外部程序存储器或用 16 位地址读取外部数据存储器 例如执行 MOVX DPTR 时 P2 口送出高八位地址 在这种应用中 P2 口使用很强的内部上拉发送 1 在使用 8 位地址 如 MOVX RI 访问外部数据存储器时 P2 口输出 P2 锁存器的 内容 在 flash 编程和校验时 P2 口也接收高 8 位地址字节和一些控制信号 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 p2 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P3 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为 输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 IIL P3 口亦作为 AT89S52 特殊功能 第二功能 使用 在 flash 编程和校验时 P3 口也接收一些控制信号 3 1 2 AT89S52 的时钟介绍 单片机的工作过程是 取一条指令 译码 进行操作 再取一条指令 译码 进 行微操作 这样自动的一步一步的由微操作依序完成相应指令规定的功能 各指令的 微操作在时间上由严格的次序 各种微操作的时间次序称作为时序 3 1 2 1 AT89S52 的时钟信号产生方式 AT89S52 单片机的时钟信号通常有两种产生方式 一是内部时钟方式 二是外部 时钟方式 内部时钟方式如图 2 2 所示 在 AT89S52 单片机内部有一振荡电路 只要在单片 机的 XTAL1 和 XTAL2 引脚外接石英晶体 就构成了自激振荡器并在单片机内部产生时 钟信号 图中电容器 C1 C2 的作用是稳定频率 快速起振 电容值在 5 30pF 晶 振 CYS 的振荡器频率为 1 2 12MHz 基于单片机的宠物喂食器电路设计 6 图 2 2 内部时钟方式 外部时钟方式是把已有时钟信号引入到单片机内 如图 2 3 所示 此方式多用于 多片 AT89S52 单片机同时工作 以便于各单片机同步 一般要求外部信号高电平的持 续时间大于 20ns 且为频率低于 12MHz 的方波 对于采用 CHMOS 工艺的单片机 外 部时钟主要由 XTAL1 端引入 而 XTAL2 端引脚应悬空 图 2 3 外部时钟方式 3 1 2 2 AT89S52 的时钟信号 晶振周期为最小的时序单元 晶振信号经分频器形成两相错开的时钟信号 P1 和 P2 时钟信号的周期也称为 S 状态 它是晶振周期的两倍 即一个时钟周期包含两个 晶振周期 在每个时钟周期的前半周期 相位 1 有效 在每个时钟周期的后半周期 相位 2 有效 每个时钟周期有两个节拍 P1 和 P2 CPU 以两相时钟 P1 和 P2 为基本节 拍指挥各个部件协调工作 晶振信号 12 分频后形成机器周期 一个晶振周期包含 12 个晶振周期或 6 个时 钟周期 因此每个机器周期的 12 个晶振脉冲可以表示为 S1P1 S2P2 S6P6 晶振 周期和机器周期是单片机内计算其他时间值的基本时序单位 如晶振频率为 12HZ 则机器周期为 1us 指令周期为 1 4us 3 1 3 单片机中断的介绍 在设计中用到了外部中断INT0 INT1和定时器T0 它们的中断请求标志分别为 IE0 IE1和TF0 这些中断请求标志位分别由特殊功能寄存器TCON和TMOD的相应位锁存 在这个设计中 中断允许寄存器是首要介绍的 3 1 3 1 中断允许寄存器 IE 控制 CPU 对中断源的开放或屏蔽 中断的开放和屏蔽实现2级控制 一个总开关中断控制所有的中断 IE的格式如下 基于单片机的宠物喂食器电路设计 7 IEEAESET1EX1ET0EX0 位地址 AFHACHABHAAHA9HA8H 当 EA 0 时 所有的中断请求被屏蔽 CPU 不接受任何请求 当EA 1时 CPU开中断 此时只要五个中断源的中断请求允许为1 则开中断 3 1 3 2 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 2 电源电路 基于单片机的宠物喂食器电路设计 8 单片机电源 220v 转 5v 设计电源电路采用 LM7805 集成稳压器作为稳压器件 用 典型接法 220V 电源整流滤波后送入 LM7805 稳压 在输出端接一个 470U 和 0 1U 电 容进一步滤除纹波 得到 5V 稳压电源 电路如图 2 4 所示 220V 9V 体 TF1 体体体 Vin 5V GND 7805D1 4007 D4 4007 D3 4007 D2 4007C3 220uF 25V C2 1000uF 25V GND VCC 图 2 4 电源电路图 3 3 时钟电路 单片机工作的时间基准 决定单片机工作速度 时钟电路就是振荡电路 向单片 机提供一个正弦波信号作为基准 决定单片机的执行速度 AT89S51 单片机时钟频率 范围 0 33MHz 本电路选择 11 0592MHZ 电路如图 2 5 所示 基于单片机的宠物喂食器电路设计 9 X1 体 体 体 体C5 体 体 C4 体 体 GND 图 2 5 时钟电路图 3 4 复位电路 单片机在启动时都需要复位 以使CPU 及系统各部件处于确定的初始状态 并从初态开始工作 89 系列单片机的复位信号是从 RST 引脚输入到 芯片内的施 密特触发器中的 当系统处于正常工作状态时 且 振荡器稳定后 如果 RST 引 脚上有一个高电平并维持 2 个机器周期 24 个振荡周期 以上 则 CPU 就可以响 应并将系统复位 单片机系统的复位方式有 手动按钮复位 和上电复位 这里选用手动按钮复 位 手动按钮复位需要人为在复位输入端RST 上加入高电平 一般采用的办法是 在 RST 端和正电源 VCC 之间接一个按钮 当人为按下按钮时 则VCC 的 5V 电平 就会直接加到 RST 端 由于人的动作再快也会使按钮保持接通达数十毫秒 所以 完全能够满足复位的时间要求 复位电路工作原理如图所示 VCC 上电时 C 充电 在 10K 电阻上出现电压 使 得单片机复位 几个毫秒后 C 充满 10K 电阻上电流降为 0 电压也为 0 使得单片 机进入工作状态 工作期间 按下 S C 放电 S 松手 C 又充电 在 10K 电阻上出现 电压 使得单片机复位 几个毫秒后 单片机进入工作状态 基于单片机的宠物喂食器电路设计 10 C1 体 体 体 体 SW2 体 体 体 体 体 R1 体 体 R2 体 体 VCC GND RST 图 2 6 复位电路图 3 5 LED数码管显示 3 5 1 数码管显示简介 数码管 LED 串口显示模块通常有两种显示方法 动态显示和静态显示 动态显示 连接方法是将每个二极管的同名端连在一起 而每个显示器的 公共 极 COM 各自独立的接受 I O 线控制 CPU 向字段输出端口输出字型码 所有显示器接 受到相同的字符 而要使用哪个显示器要取决于他们的 COM 的电平 而这段是由 I O 端控制的 由单片机输出 动态扫描时连续的动态扫描 只是肉眼暂留现象 乃发光 二极管的余辉效应 给人的感觉是一组稳定的显示数据 静态显示 静态显示显示效果好 但是功耗大 但不占用端口 只需两个串口 线输出 变成较为简单 而且采用静态显示需要的驱动器件多 硬件成本相对更高 比较以上两种方案 方案一硬件简单程序复杂 方案二硬件复杂程序简单 考虑 到实惠和对自己的编程锻炼 选择方案动态显示 动态扫描方法是用其接口电路把所有显示器的8个笔画字段 a g 和 dp 同名端 连在一起 而每个显示器的公共极 COM 各自独立的接受 I O 线控制 CPU 向字段输出 端口输出字型码时 所有显示器接受到相同的字型码 但究竟使用哪个显示 则取决 于公共极 COM 端 而这一端是由 WR 和 RD 控制的 由单片机决定何时显示哪一位 动态扫描用分时的方法去轮流控制各个显示的 COM 端 时各个显示器轮流亮 在轮流 点亮扫描过程中 每为显示器的点亮时间极为短暂 但由于人的视觉暂留现象及发光 二极管的于辉效应 给人的印象就时一组稳定的显示数据 显示部分电路图 基于单片机的宠物喂食器电路设计 11 图2 7 数码管显示原理 3 5 2 数码管编码表 7段数码管可以包括小数点的0 9的数字和部分的英文字母 为了获得不同的字 符 数码管各段所加的电平也不同 编码也不一样 共阴极数码管的字型 字段和编 码的关系如下表2 表2 数码管编码表 十六进制数h gf edcba显示代码 0 0 x3f 1 0 x06 2 0 x5b 3 0 x4f 4 0 x66 5 0 x6d 6 0 x7d 7 0 x07 8 0 x7f 9 0 x6f 0 x80 3 6 开关控制 本电路要实现可设定 5 个倒计时设计要求 需要 1 个复位键 一个 和一个 基于单片机的宠物喂食器电路设计 12 按键 另外再加 5 个时间设定按键用于实现倒计时间设定 按键时可直接输出 相应倒计时间 3 7 单片机的去抖动 单片机去抖动可以用软件和硬件两种方法 硬件方法就是加去抖动电路 例如在 按键两端并联 10uF 的电容或通过 RS 触发器连接按键 硬件去抖动从根本上避免抖动 软件方法则采用时间延时以躲过抖动 待信号稳定之后再进行键扫描 对于系统软件 量不大的场合 采用软件去除抖动既节约硬件开销又很实用且有效 所以本设计采用 软件去抖动 基于单片机的宠物喂食器电路设计 13 4 电路的软件部分 单片的使用除了硬件 同样也要软件的使用 我们写汇编程序编程 CPU 可执行的 机器码有两种方法 一种是手工汇编 一种是机器汇编 机器汇编通过汇编软件变为 机器码 用于 MSC 51 单片机的汇编软件有早期的 A51 随着单片机开发技术的不断 发展 从使用普通汇编语言到高级语言的不断发展 Keil 是目前最流行开发 MCS 51 系列单片机的软件 Keil c51 汇编 PLM 语言和 C 语言的程序设计 界面友好 Keil 是美国 keilsoftware 公司出品的 52 系列兼容单片机 c 语言开发系统 用过汇编语言 后再使用 C 语言来开发 体会更加深刻 程序框图 基于单片机的宠物喂食器电路设计 14 Y 开始 系统初始化 1 号键按下 1 号盒倒计 时时间设定 开始倒计时 5 号键按下 2 号键按下 3 号键按下 4 号键按下 2 号盒倒计 时时间设定 3 号盒倒计 时时间设定 4 号盒倒计 时时间设定 5 号盒倒计 时时间设定 倒计时完 Y Y Y Y Y 结束 图 2 8 程序框图 源程序如下 include include define uchar unsigned char define uint unsigned int sbit b1 P1 0 sbit b2 P1 1 sbit b3 P1 2 sbit b4 P1 3 基于单片机的宠物喂食器电路设计 15 sbit b5 P1 4 sbit bell P2 6 sbit s1 P3 0 sbit s2 P3 1 sbit s3 P3 2 sbit s4 P3 3 sbit s5 P3 4 sbit add P3 6 sbit dec P3 7 char second1 1 minute1 1 hour1 1 second2 2 minute2 2 hour2 2 second3 3 minute3 3 hour3 3 char second4 4 minute4 4 hour4 4 second5 5 minute5 5 hour5 5 uchar g unsigned char code table 共阴极 0 f 数码管编码 0 x3f 0 x06 0 x5b 0 x4f 0 3 0 x66 0 x6d 0 x7d 0 x07 4 7 0 x7f 0 x6f 0 x77 0 x7c 8 b 0 x39 0 x5e 0 x79 0 x71 c f void delay uint z uint x y for x z x 0 x for y 110 y 0 y void delay1 uint z for z 0 z 基于单片机的宠物喂食器电路设计 16 void display uchar a uchar b uchar c uchar i j i a 10 j a 10 P2 0 xfb P0 table i delay 2 P2 0 xf7 P0 table j delay 2 i b 10 j b 10 P2 0 xef P0 table i delay 2 P2 0 xdf P0 table j delay 2 i c 10 j c 10 P2 0 xfe P0 table i delay 2 P2 0 xfd P0 table j delay 2 基于单片机的宠物喂食器电路设计 17 void delay2 uint z uint x y for x z x 0 x for y 110 y 0 y display 0 0 0 void init EA 1 开总中断 ET0 1 本例中使用的是定时器 T0 如果用 T1 则为 ET1 0 TMOD 0 x10 TMOD 0 x01 定时器工作方式 1 TH0 65535 50000 256 因为晶振用的是 11 0592MHZ 在取初值时 大概 定义为一个中断为 50MS TL0 65535 50000 256 TR0 1 P1 0 xff void turn val1 char newval uchar flag uchar slnum if flag 判断是加一还是减一 newval switch slnum case 1 if newval 23 newval 0 display hour1 minute1 second1 hour1 newval 基于单片机的宠物喂食器电路设计 18 break case 2 if newval 59 newval 0 display hour1 minute1 second1 minute1 newval break case 3 if newval 59 newval 0 display hour1 minute1 second1 second1 newval break default break else newval switch slnum case 1 if newval 0 newval 23 display hour1 minute1 second1 hour1 newval break case 2 if newval 0 newval 59 display hour1 minute1 second1 minute1 newval break case 3 if newval23 newval 0 display hour2 minute2 second2 hour2 newval break case 2 if newval 59 newval 0 display hour2 minute2 second2 minute2 newval break case 3 if newval 59 newval 0 display hour2 minute2 second2 second2 newval break default break else 基于单片机的宠物喂食器电路设计 23 newval switch slnum case 1 if newval 0 newval 23 display hour2 minute2 second2 hour2 newval break case 2 if newval 0 newval 59 display hour2 minute2 second2 minute2 newval break case 3 if newval23 newval 0 display hour3 minute3 second3 hour3 newval break case 2 if newval 59 newval 0 display hour3 minute3 second3 minute3 newval break case 3 if newval 59 newval 0 display hour3 minute3 second3 second3 newval break default break else newval switch slnum case 1 if newval 0 newval 23 display hour3 minute3 second3 hour3 newval break case 2 if newval 0 newval 59 display hour3 minute3 second3 minute3 newval break case 3 if newval23 newval 0 display hour4 minute4 second4 hour4 newval break case 2 if newval 59 newval 0 display hour4 minute4 second4 minute4 newval break case 3 if newval 59 newval 0 display hour4 minute4 second4 second4 newval 基于单片机的宠物喂食器电路设计 32 break default break else newval switch slnum case 1 if newval 0 newval 23 display hour4 minute4 second4 hour4 newval break case 2 if newval 0 newval 59 display hour4 minute4 second4 minute4 newval break case 3 if newval23 newval 0 display hour5 minute5 second5 hour5 newval break case 2 if newval 59 newval 0 display hour5 minute5 second5 minute5 newval break case 3 if newval 59 newval 0 display hour5 minute5 second5 second5 newval break default break else newval switch slnum case 1 if newval 0 newval 23 display hour5 minute5 second5 hour5 newval break 基于单片机的宠物喂食器电路设计 37 case 2 if newval 0 newval 59 display hour5 minute5 second5 minute5 newval break case 3 if newval 0 newval 59 display hour5 minute5 second5 second5 newval break default break void key scan5 void uchar slnum 0 if s5 0 delay 5 if s5 0 while s5 display hour5 minute5 second5 slnum TR0 0 while 1 display hour5 minute5 second5 if s5 0 基于单片机的宠物喂食器电路设计 38 delay 5 if s5 0 while s5 slnum if slnum 1 if add 0 delay 3 if add 0 while add turn val5 hour5 1 1 if dec 0 delay 3 if dec 0 while dec turn val5 hour5 0 1 if slnum 2 if add 0 基于单片机的宠物喂食器电路设计 39 delay 3 if add 0 while add turn val5 minute5 1 2 if dec 0 delay 3 if dec 0 while dec turn val5 minute5 0 2 if slnum 3 if add 0 delay 3 if add 0 while add turn val5 second5 1 3 if dec 0 基于单片机的宠物喂食器电路设计 40 delay 3 if dec 0 while dec turn val5 second5 0 3 写入日寄存器 if slnum 4 slnum 0 break void xian1 if g 20 g 0 second1 if second1 0 second1 59 minute1 if minute1 0 minute1 59 基于单片机的宠物喂食器电路设计 41 hour1 if hour1 0 hour1 0 display hour1 minute1 second1 if second1 0TR0 0 b1 0 bell 0 delay2 5 b1 1 bell 1 void xian2 TR0 1 if g 20 g 0 second2 if second2 0 second2 59 minute2 if minute2 0 minute2 59 hour2 if hour2 0 hour2 0 if second2 0TR0 0 b2 0 bell 0 delay2 5 b2 1 bell 1 基于单片机的宠物喂食器电路设计 42 display hour2 minute2 second2 void xian3 TR0 1 if g 20 g 0 second3 if second3 0 second3 59 minute3 if minute3 0 minute3 59 hour3 if hour3 0 hour3 0 if second3 0TR0 0 b3 0 bell 0 delay2 5 b3 1 bell 1 display hour3 minute3 second3 void xian4 TR0 1 if g 20 基于单片机的宠物喂食器电路设计 43 g 0 second4 if second4 0 second4 59 minute4 if minute4 0 minute4 59 hour4 if hour4 0 hour4 0 if second4 0TR0 0 b4 0 bell 0 delay2 5 b4 1 bell 1 display hour4 minute4 second4 void xian5 TR0 1 if g 20 g 0 second5 if second5 0 second5 59 minute5 基于单片机的宠物喂食器电路设计 44 if minute5 0 minute5 59 hour5 if hour5 0 hour5 0 if second5 0TR0 0 b5 0 bell 0 delay2 5 b5 1 bell 1 while 1 d isplay 0 0 0 display hour5 minute5 second5 void main init while 1 key scan1 key scan2 key scan3 key scan4 key scan5 TR0 1 if second1 0 if second1 0 if second2 0 if second3 0 if second4 0 void time interrupt 1 如果用 T1 的话 应为 interrupt 3 TH0 65535 50000 256 因为晶振用的是 11 0592MHZ 在取初值时 大概定义为一个中断为 50MS TL0 65535 50000 256 g 基于单片机的宠物喂食器电路设计 46 参考文献 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 11 于敬芬 基于 AT89S52 和 TLC0834 的数据采集系统 J 中国水运 学术版 2006 12 王幸之 AT89 系列单片机原理及接口技术 M 北京航天航空出版社 2006 13 康华光 电子技术基础 M 数字部分 高等教育出版社 1998 14 胡汉才 单片机原理及系统设计 M 清华大学出版社 2002

温馨提示

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

最新文档

评论

0/150

提交评论