宠物定时喂食器设计与开发毕业论文.doc_第1页
宠物定时喂食器设计与开发毕业论文.doc_第2页
宠物定时喂食器设计与开发毕业论文.doc_第3页
宠物定时喂食器设计与开发毕业论文.doc_第4页
宠物定时喂食器设计与开发毕业论文.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

宠物定时喂食器设计与开发毕业论文目 录1引言11.1研究背景11.2功能概述11.3社会意义12系统方案设计22.1总体设计方案构思22.2系统组成模块设计22.2.1单片机芯片的选择22.2.2时钟显示电路32.2.3时钟芯片的选择32.2.4温度传感器的选择43系统硬件设计53.1 AT89S52单片机简介53.2 单片机模块设计83.2.1单片机主控系统83.2.2单片机的复位电路93.2.3时钟电路103.3主要模块功能103.3.1液晶显示模块LCD12864103.3.2按键模块123.3.3蜂鸣器模块133.3.4照明灯133.3.5 DS1302133.3.6 DS18B20温度测试模块153.3.7电机控阀门163.4电源电路设计183.4.1电源电路原理183.4.2电源电路模块设计思路184系统软件设计204.1主程序流程图204.1.1主流程概述204.1.2设计思想214.2程序设计软件概述214.3软件调试225系统调试235.1硬件调试方法235.2硬件调试技巧235.3调试遇到问题24结 论25参考文献26致 谢27附录1 电路原理图28附录2 主程序29附录3 实物图441引言1.1研究背景宠物自动喂食器是一种非常有实用价值的设备,它的应用给宠物爱好者和小型饲养企业带来了很大的便利。传统的喂养方式不方便,不可靠,造成人力的大量浪费,饲养动物的数量自然受到很大的限制,这样就严重影响了中小型动物饲养企业的发展,无法满足现代人的需求。所以在这里我们提出一种由单片机控制的宠物自动喂食器,以步进电机为执行元件,其结构简单,价格便宜。具有安全、稳定、可靠、简单、实用特点,并增加了许多新功能,如温度测试功能和万年历,能更加方便记录宠物的生长周期。随着科学技术的发展,人民生活水平的日益提高,宠物爱好者也越来越多了,宠物也步入了一个上流阶段,因此对宠物饲养管理逐渐走进市场,成为广大市民及民营企业家的致富手段甚至成为大型国有企业的经营方式。基于此,我们设计实现智能控制的宠物自动喂食器。1.2功能概述利用单片机的定时功能设计一个宠物自动喂食器的电路,要求:系统利用单片机(AT89S52)对各个模块进行控制,通过键盘设定喂食时间,LCD12864显示定时时间。到达这个时间时,发光二极管发光,蜂鸣器发出响声,吸引宠物过来进食并自动投放食物。加入的万年历和温度传感器,方便记录宠物的生长周期。1.3社会意义在竞争日益激烈的今天,各行各业为提高竞争力,纷纷推出了各种新、奇的事物来吸引消费者。经过长时间的市场调查,发现广大市民及民营企业家大多还采用传统的人工喂养方式,这种方式不但耗费了大量的人力资源,而且由于现在的人力成本的不断增加,大大增加了企业的投入成本。此外还会由于饲养人员长时间的从事单调重复的工作,造成对工作的热情锐减,也不能使宠物的饮食规律得到保障。本设计就是为了同时满足这些需要而设计的智能宠物自动喂食器。2系统方案设计2.1总体设计方案构思设计一个宠物自动喂食器要想实现自动控制、正常显示时间、温度测试和闹钟提示的功能,就要细分到各个模块去实现。首先要具备一个主控系统控制整个电路正常工作,可以由通过单片机担任这样的任务,还要有显示时间的模块电路, 闹钟的设置可以通过按键随意更改,电机控制门阀自动投放食物。电源电路的模块给整个电路供电,喂食过程中伴随照明灯的点亮。分析设计,根据要求之后确定了本系统的整体的设计原理框图如下图2-1所示。其中包括:单片机最小系统、显示电路、时钟电路、电源电路、电机控阀门、按键电路、温度测试、照明灯和闹钟提示。电源电路设计AT89S52最小系统LCD12864显示 DS1302时钟电路DS18B20温度检测电机控阀门闹钟提示按键电路照明灯图2-1 系统整体设计原理框图2.2系统组成模块设计2.2.1单片机芯片的选择 方案一:采用89C51芯片作为主控系统,Flash ROM的内部有4KB ROM的存储空间,能在3V的低压下工作,且和MCS-51系列的单片机完全兼容,但在电路设计由于它没有ISP在线编程技术的功能,当进行电路调试时,对程序的进行修改或对程序的新增功能程序时,可能会使芯片烧坏。 方案二:若使用AT89S52,其片内ROM是Flash ROM,能在3V的超低压正常工作,而且和MCS-51系列单片机也是兼容的,此芯片内部有8KB ROM的存储空间,也有89C51的功能和在线编程可擦除技术,进行电路调试时,由于需要随时要对程序进行修改和新增一些程序的功能,因此选择AT89S52作为主控系统。2.2.2时钟显示电路方案一:时钟显示可以采用多位七段LED数码管显示,七段 LED数码管的显示位数有限制,且耗能多,增加一位都要在硬件和程序设计方面增加很多工作量,不利于电路的扩展,而且无法显示年、月、日、星期这些汉字,使显示不够直观、灵活。但是这种设计方案在显示位数比较少的时候性价比很高,价格也很便宜。方案二:若采用点阵式数码管显示,由于点阵式数码管是由八行八列的发光二极管组成,对于显示文字较适合,但本课题设计中的显示数字多字符很少,且这种方案耗能多,不符合现代人的节能理念,也不适宜采用此种方案。方案三:若采用LCD液晶显示器显示,LCD液晶显示不但耗能少,而且能够显示年、月、日和星期等汉字,在显示方面变得更加灵活,当需要改变显示时,只要改变软件设计就可以,不用改变硬件电路的设计,电路的功能很容易扩展,另外,这种设计硬件也很简洁。当显示位数很少时采用LCD液晶显示的方案,价格显得昂贵。根据以上三种方案能够看出方案三的耗能少、显示灵活、易于电路的扩展,而且软件设计和硬件设计都比较简单,所以采用方案三,即采用LCD12864液晶显示。2.2.3时钟芯片的选择 方案一:采用单片机定时计数器来提供秒信号,使程序实现年、月、日、星期、时、分、秒计数的功能。此方案虽然减少芯片的数目,节约成本,但会产生较大的时间误差,因此不适合此方案。 方案二:采用DS1302芯片实现时钟,DS1302芯片可以自动对秒、时、分、周、月、年、以及闰年补偿的年进行计数。它是一种高性能的芯片,而且精度也很高,工作电压在2.5V-5.5V之间,因此,选择 DS1302作为时钟芯片。2.2.4温度传感器的选择 方案一:选用热敏电阻为传感器,根据热敏电阻的阻值随温度变化的特性,用热敏电阻和一个相应电阻串联实现分压,并进行A/D转换。此方案要通过A/D转换电路,使得硬件的成本增加。而且热敏电阻的感温特性曲线不是线性的,会使测量误差较大。方案二:采用数字式传感器DS18B20,此类传感器为数字式传感器而且进行数据传输只需要一条数据,与单片机连接很容易,可除去A/D模块,减少硬件的成本,进而使系统电路更加简化。另外,数字式温度传感器不但测量范围广,而且测量精度高。3系统硬件设计3.1 AT89S52单片机简介AT89S52是一种低功耗、高性能的CMOS 8位微控制器,它有8K在线系统可编程的Flash 存储器。使用Atmel公司高密度存储器技术制造,与工业80C51 产品指令和引脚能够完全兼容。片上Flash允许程序存储器在系统可编程,适用于常规的编程器。具有8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统带来更灵活、有效的解决方法。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。一、主要性能l l 与MCS-51单片机产品兼容l 1000次的擦写周期l l 8K字节在线系统可编程Flash存储器l l 工作电压4.0V-5.5Vl l 全静态地操作:0Hz33Hzl 256*8字节的内部数据存储器l l 32个可编程I/O口线l l 三个16位定时器/计数器l l 八个中断源l l 全双工UART串行通道l l 低功耗空闲和掉电模式l l 掉电后中断可唤醒l l 看门狗定时器l l 双数据指针l l 掉电标识符图3-1 AT89S52双列直插式引脚图l l 快速编程周期l l 灵活ISP编程(字节和 模式) 二、端口介绍P0口:它是一个8位漏极开路的双向I/O口。为输出口时,每位能够驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当对外部程序和数据存储器访问时,P0口也被作为低8位地址/数据复用。在此模式下,P0内部有上拉电阻。在flash编程时,P0口也可以用来接收指令字节;对程序校验时,输出指令字节。P1口:P1口是一个内部有上拉电阻的8位双向I/O口,P1口输出缓冲器能驱动4个TTL逻辑电平。当对P1端口写“1”时,端口被内部上拉电阻拉高,此时可以作为输入口。当为输入时,引脚被外部拉低,由于内部电阻的原因,会输出电流(IIL)。表3-1 P1口第二功能使用介绍引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.2MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK (在系统编程用)P2口:P2口是一个内部有上拉电阻的8位双向I/O口,P2输出缓冲器能够驱动4个TTL逻辑电平。当对P2端口写“1”时,端口被内部上拉电阻拉高,此时可以作为输入口。当为输入时,引脚被外部拉低,由于内部电阻的原因,会输出电流(IIL)。P3口:P3口是一个内部有上拉电阻的8位双向I/O 口,P2输出缓冲器能够驱动4个TTL逻辑电平。当对P3端口写“1”时,端口被内部上拉电阻拉高,此时可以作为输入口。当为输入时,引脚被外部拉低,由于内部电阻的原因,会输出电流(IIL)。P3口有AT89S52特殊功能(第二功能)。当对flash编程和校验时,P3口会收到一些控制信号。表3-2 P3口作为AT89S52特殊功能(第二功能)使用介绍Port PinAlternate FunctionsP3.0RXD (serial input port)P3.1TXD (serial output port)P3.2INT0 (external interrupt 0)P3.3INT1 (external interrupt 1)P3.4T0 (timer 0 external input)P3.5T1 (timer 1 external input)P3.6WR (external data memory write strobe)P3.7RD (external data memory read strobe)三、单片机的中断AT89S52单片机 有六个中断源:两个外部中断(INT0 和INT1)和一个串行中断。每个中断源都可通过置位或者清除特殊寄存器IE中的相关中断允许控制位,分别使中断源有效或无效。IE还包括一个中断允许总控制位EA,它能够一次禁止所有的中断。1.中断允许寄存器IE控制CPU对中断源的开放或屏蔽。中断的开放和屏蔽实现2级控制,一个总开关中断控制所有的中断。IE的格式如下表3-3:表3-3 IE的格式表IEEAESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H当EA=0时,所有的中断请求被屏蔽,CPU不接受任何请求。当EA=1时,CPU开中断,此时只要五个中断源中断请求允许为1,则开中断。2.TMOD工作方式控制寄存器用于选择定时器/计数器的工作模式,字节地址为89H,8位分2组,高4位控制T1,低4位控制T0,其格式如下: 表3-4 TMOD-工作方式控制寄存器D7D6D5D4D3D2D1D0TMODGATEC/TM1M0GATEC/TM1M0下面对工作方式选择位做说明:M1 M0-工作方式选择位,M1 M0共有4种编码,分别对应4种工作方式。如表3-5所示。表3-5 工作方式选择M1M0工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,8位的常数自动重新装载的定时器/计数器11方式3,仅适应于T0,T0分为两个8位的计数器,停止计数3.2 单片机模块设计3.2.1单片机主控系统单片机中央处理系统的方案设计,选用ATMEL公司的AT89C52单片机作为中央处理器,该单片机除了拥有MCS-51系列单片机的所有优点外,内部还具有8K的在系统可编程FLASH存储器,低功耗的空闲和掉电模式,极大的降低了电路的功耗,还包含定时器、程序存储器和数据存储器等硬件,能够符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。单片机模块是主要的设计部分,整个控制都是依靠单片机来完成的,单片机的主控系统如下图3-2所示图3-2 单片机主控系统原理图3.2.2单片机的复位电路复位电路由极性电容与电阻组成,如图3-3所示,通过高电平使单片机复位,时钟电路开始工作后,当高电平的时间超过大约2us时,复位就可实现。此复位电路同时具备了手动复位和上电复位的功能,开机加电时上电复位发生,由系统自动完成,手动复位借助一个按键实现,当程序运行时,如果遇到死机、死循环或程序“跑飞”的情况,运用手动复位便可实现重新启动。图3-3 AT89S52复位电路3.2.3时钟电路时钟振荡电路图3-4所示,时钟振荡电路用在产生单片机正常工作时所需要的时钟信号,电路由两个27pF的瓷片电容和一个32768Hz的晶振组成,并接入到单片机的X1和X2引脚处,使单片机工作于内部振荡模式。此电路在加电后延迟大约10ms振荡器起振,在X2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。电路中两个电容C30、C31的作用使电路快速起振,提高电路的运行速度,对于AT89S52其工作频率为0至33MHz,在这个范围内单片机能够正常的工作。图3-4 时钟振荡电路3.3主要模块功能3.3.1液晶显示模块LCD128641.概述带中文字库的12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、操作指令方便,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.电压和功耗都比较小。2.基本特性1) 低电源电压(VDD:+3.0-+5.5V)2) 显示分辨率:12864点 3) 内置汉字字库,提供8192个1616点阵汉字(简繁体可选) 4) 2MHZ时钟频率 5) 视角方向:6点 6) 显示方式:正显、半透、STN7) 驱动方式:1/32DUTY,1/5BIAS 8) 背光方式:侧部高亮白色LED,功耗仅仅为普通LED的1/51/10 9) 通讯方式:串行、并口可选 10) 不需要片选信号,使软件设计简化11) 工作温度: 0 - +55 ,存储温度: -20 - +603.LCD12864的管脚说明LCD12864的管脚命名下表3-6:表3-6 LCD12864的管脚命名表管脚名称功能1GND地2VDD逻辑电源3V0LCD电源4D/I数据/指令控制信号:D/I=1,数据输入;D/I=0,指令输入5R/W数据指令读写控制信号R/W-1,数据指令读出R/W-0,数据指令写输入6E允许控制信号7-14D0-D7数据总线15CS1片选信号高电平有效16CS2片选信号高电平有效17RST复位信号低电平有效18VEE负电源-10V输出19-20LEDA,LEDK电源能提供环境光4.字符显示字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如表3-7所示。表3-7 字符显示RAM在液晶模块中的地址表80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH5.液晶显示模块LCD12864连接原理图显示模块LCD12864显示定时时间,按照 年/月/日/时/分的格式输入宠物进食时间。显示模块电路如图3-5示,液晶模块的1管脚和20管脚接电源地,2管脚接电源给液晶显示器供电。图3-5 液晶显示模块LCD12864连接原理图3.3.2按键模块 按键模块采用7个触键开关、六个设置按键和一个复位按键。在电路中的连接如图3-6所示。图3-6 按键模块连接原理图3.3.3蜂鸣器模块 蜂鸣器模块采用的是三极管和一个蜂鸣器,由蜂鸣器发出响声吸引宠物过来进食。当发光二极管亮灯时,蜂鸣器接收到一个高平,蜂鸣器发出响声来引宠物,蜂鸣器的连接图如图3-7所示。图3-7 蜂鸣器模块连接图3.3.4照明灯照明灯由单片机控制,用来给喂食器一个照明装置。电路由继电器控制照明灯,继电器模块连接如图3-8所示,P114端接照明灯。图3-8 继电器模块连接3.3.5 DS1302DS1302时钟电路模块由单片机采集它的时钟数据经过程序处理,最后给LCD显示。连接如图3-9所示。图3-9 DS1302电路模块连接原理图1)DS1302的特点DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用的是SPI三线接口,而且能够与CPU进行同步通信,可采用突发方式一次传送多个字节的RAM数据时钟信号与时钟信号。DS1302时钟可提供秒、分、时、星期、月和年,可以进行自动调整。工作电压范围是2.5V-5.5V。供电是双电源供电的方式,具有对后背电源进行细电流充电的能力。DS1302的外部引脚分配如图3-10所示。图3-10 DS1302的外部引脚分配各引脚的功能如下:l VCC1:主电源;l VCC2:备用电源;当Vcc2Vcc1时,由Vcc2向DS1302供电;当Vcc2Vcc1时,由Vcc1向DS1302供电;l SCLK:串行时钟,输入;l I/O:三线接口时的双向数据线;l X1和X2:是振荡源,接一个32.768kHz晶振。l RST:是复位/片选线,根据RST输入驱动置高电平来启动所有数据的传送。 2)DS1302的控制字节DS1302的控制字节 DS1302 的控制字如表3-8所示。表3-8 DS1302的控制字节1RAM CKA4A3A2A1A0RAM K3.3.6 DS18B20温度测试模块1)DS18B20温度测试模块检测室内温度变化,温度过高蜂鸣提示,要求室内该通风。DS18B20是数字式的温度传感器,它的测量精度高,电路连接非常简单,此类传感器只需要一条数据线就能进行数据传输,温度测试模块连接原理图如图3-11所示。图3-11 DS18B20温度测试模块连接原理图2)DS18B20内部结构包括四部分:温度传感器、配置寄存器、64位光刻ROM、非挥发的温度报警触发器TH和TL。DS18B20的管脚如图3-12所示,DQ为数字信号输入输出端;GND为电源地;VDD为外接供电电源输入端。图3-12 DS18B20的管脚3)温度传感器:温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。DS18 B20的精度误差为 2C 。测量是通过“一线总线”的数字方式传输,提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。新产品支持3V5.5V的电压,设计更灵活、方便、价格便宜,体积小。4)DS18B20产品的特点a) 一个端口就可以实现通信。b) DS18B20中的每个器件都有独特的序列号。c) 现实应用中不需要外部元器件便可测量温度。d) 测量温度范围在55C125C之间。e) 数字温度计的分辨率可以从9位到12位选择。f) 内部有温度上、下限告警设置。3.3.7电机控阀门电机控阀门采用步进电机和步进电机驱动模块实现门控装置。一、歩进电机的应用步进电机是将电脉冲信号转变为线位移或角位移的开环控制元件。当非超载时,脉冲信号的频率和脉冲数决定电机的转速和停止的位置,电机不受负载变化影响,只要电机加一个脉冲信号,电机就会转过一个步距角。步进电机的应用很广泛,但并不能像普通的交流电机和直流电机在正常情况下使用。它必须由功率驱动电路和双环形脉冲信号等构成控制系统才可使用。因此用好步进电机并不是一件很容易的事,它涉及到计算机、电机、机械、电子等许多的专业知识。二、驱动控制系统使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统,其方框图如图3-13所示图3-13 驱动控制组成框图1)产生脉冲信号脉冲信号由CPU或单片机产生,它的占空比为0.3-0.4左右,一般脉冲信号电机转速和占空比成正比。2)信号分配 我厂生产的感应子式步进电机以二、四相电机为主,二相电机工作方式主要有单四拍和双八拍二种。 3)功率放大 驱动系统最为重要的部分是功率放大。当步进电机的转速一定时其转矩被它的动态平均电流所控制。平均电流和电机力矩成正比,为了得到大的平均电流这就要使驱动系统克服电机的反电势。 4)细分驱动器在步进电机步距角不能满足使用的条件下,可采用细分驱动器来驱动步进电机,细分驱动器的原理是通过改变相邻(A,B)电流的大小,以改变合成磁场的夹角来控制步进电机运转的。图3-14 细分驱动器的原理图三、电机原理ULN2003 是高耐压、大电流达林顿陈列,具有工作电压高、电流增益高、温度范围广、负载能力强等特点。适应于各类高速大功率驱动的系统,它由七个硅NPN 管组成,电机控阀门采用步进电机和步进电机驱动模块实现门控装置。步进电机驱动模块连接图如图3-15所示图3-15 步进电机驱动模块连接图3.4电源电路设计3.4.1电源电路原理单片机电源的设计电路采用LM7805为稳压器件,电路如图3-1所示.采用典型接法,220V电源整流滤波后进入LM7805稳压,在输出端接一个470U和0.1U电容进一步滤除纹波,得到5V稳压电源。电路为输出电压+5V的稳压电源。它由电源变压器T1,桥式整流电路D0,滤波电容C1、C2,防止自激电容C222、C3和一只固定式三端稳压器(7805)构成的。图3-16 电源电路原理图3.4.2电源电路模块设计思路1.电路实现功能:该电路输入家用220V的交流电,经过全桥整流,稳压输出稳定的5V直流电。2.特点:方便、输出电压稳定,最大输出电流为1A,电路能带动一定的负载。3.电路工作原理:工作原理框图如图3-17所示。220V交流电全桥整流稳压7805稳压5V直流电输出图3-17 源电路原理流程框图1)从图上看变压器输入端经过一个保险连接电源插头,如果变压器或后面的电路发生短路,保险内的金属细丝就会因大电流引发的高温溶化后断开。2)变压器后面是一个桥式整流电路,此电路由4个二极管组成,整流后就得到一个电压波动很大的直流电源,所以在这里接一个电解电容。3)变压器输出端的12V电压经桥式整流并电容滤波,在电容C2两端大约会有13V多一点的电压,假如从电容两端直接加一个负载,当负载变化或交流电源有少许波动都会使C2两端的电压发生较大幅度的变化,因此要得到一个比较稳定的电压,在这里接一个三端稳压器的元件。 4)因为我们要输出5V的电压,所以选用7805,7805前面的字母可能会因生产厂家不同而不同。LM7805最大可以输出1A的电流,内部有限流式短路保护,短时间内。5)三端稳压器后面接一个C2的电容,这个电容有滤波和阻尼作用。最后在C223两端接一个输出电源的插针,可用于与其它用电器连接,比如MP3等。虽然7805最大电流是一安培,但实际使用一般不要超过500mA,否则会发热很大,容易烧坏。一般负载电有200mA以上时需要散热片。4.思路方法:平时对于5V的直流电源需求的情况比较多,在单片机,以及一些电路中应用的较多,因此,为了更方便快捷的由220V的交流电得到这样的电源,因此设计了这样一个电源电路模块。首先,翻阅了参考书,复习了整流稳压的一些电路知识,然后设计出一个实现电路,使用了portel99绘制出电路图,对电路进行简单的仿真和校验。最后进行调试证明方法可行。4系统软件设计4.1主程序流程图4.1.1主流程概述主程序包括按键模块、LCD16864显示模块、DS1302时钟模块、DS18B20温度测试模块、电机控阀门、闹铃模块等。通过开始查询按键,有键按下则开始调整时间和设置闹钟,若没有按下,则执行下面的时间、日期及闹钟时间的显示,最后依次循环这些相同的操作,相应流程图如图4-1所示:图4-1 程序主流程图4.1.2设计思想 本课题的设计思想是根据宠物自动喂食器的要求来设计的,如图4-1所示。程序的主要流程的大致过程如下所示:1)首先初始化各个硬件设备,初始化所需的定时器、中断等;2)程序初始化之后,正常情况下给宠物自动添加食物;3)DS18B20温度测试和DS1302时钟电路模块开始工作;4)接着进行数据的读取,判断LED12864显示是否正确,分三种情况来说:l 若LED显示器没按定时器的要求正确显示,通过按键进行调整闹铃,直到正确为止;l 若万年历的数据显示不正确,也是通过按键进行调整年、月、日、时、分、秒,直到调整到我们需要的时间显示;l 若显示正确,能够在显示器上直观的看出显示的正确结果。5)当调整好闹铃和万年历时,当到达设定时间时,蜂鸣器发出声音,彩灯点亮,步进电机会控制门阀打开宠物喂食器,进而使得宠物进食,一直循环进行;6)最后结束显示万年历。4.2程序设计软件概述本设计是以AT89S52最小系统为主控,通过编写软件控制单片机,通过按键操作设定喂食时间和调整万年历,实现温度和万年历的显示,喂食过程伴随照明灯的点亮,启动闹铃。本系统中单片机的开发软件是采用 KeilC51软件,该软件集编译和调试于一体,包括查看单片机I/O口,串口通信,定时器等内部资源。下载软件和程序写入。KeilC51是美国公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在结构性、功能、可读性、可维护性显著的优势,所以很容易学。此软件包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。如果你使用C语言编程,那么KeilC51就是你的最佳选择,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编,PLM语言和C语言的程序设计。4.3软件调试1.使用Keil软件编程步骤:1) 使用软件Project菜单项中的New Project建立一个新的工程。2) 为新工程选择芯片,添加源程序文件(.c 或是.asm)。3) 对工程进行相关的配置,Option for Target1配置页面窗口中选中Output页面中的Create HEX选项。4) 编写程序并使用Project菜单项中的Build All子菜单为应用创建可执行(.HEX)。2.调试程序调试程序是发现查找程序的逻辑错误的过程。1) AT89S52单片机下载线,打开实验 箱电源。2) 打开电脑桌面上的双龙电子软件SLISP。3) 在SLISP软件界面中,器件选择AT89S52, FLASH存储器选择由Keil软件生成的*.Hex文件,之后点击软件界面最下方的编程按钮,下载程序,下载完成,单片机会自己执行程序。4) 观察程序执行结果,程序运行结果与预期不一致,则返回Keil编程界面,检查程序逻辑。5系统调试5.1硬件调试方法1.是焊接的顺序问题。当初板子做好以后,我一口气就把所有的元件焊上去了,这样对于没有调试过的板子,就很难找到原因。所以焊接的顺序很重要,应该是应该按功能划分的器件进行焊接,顺序是功能部件的焊接-调试(OK)-另一功能部件的焊接,这样能容易找到问题的所在。2.调试功能划分的器件上出现问题,按以下步骤进行:1)检查原理图连接是否正确。2)检查原理图与PCB图的一致性。3)检查原理图与器件的DATASHEET上引脚是否一致。4)用万用表检查是否有虚焊,引脚短路现象。5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确。6)用示波器进行检测。如我就是通过示波器对SRAM各个引脚进行检查,发现地址线都是有信号的,而数据线无信号出现,才找到问题所在。7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。3.多观察,多思考。在调试过程中,对于出现的任何现象都不要放过,问题的解决就是从一些小的现象入手的。4.软件的调试要和硬件配合进行,往往问题可能不是硬件上的问题。5.2硬件调试技巧1.排除逻辑故障这类故障往往是由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。2.排除元器件失效造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。3.排除电源故障在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V4.8V之间属正常。5.3调试遇到问题1. LCD12864调试在测试中遇到LCD12864不能够显示出时间和日期,经过检查才发现是LCD12864的背光没有调好,通过调节接在LCD12864上3脚上的滑动变阻器,改变所给的电压,可以清晰地看见了LCD能够显示。2.对于DS1302在测试发现上电后不久会发热,在检查电路过程中,不是因为发现芯片短路,最终检查发现原来是DS1302的引脚接法不正确,给+5V的应该是芯片的脚,给后备电池的是1脚,换过来之后,芯片就不发热了,而且可以正常显示出我们要显示的时间和日期。3. 电源调试将变压器接入电路,接到220V的电源,用万用表测量发现有的地方没有接电源线,出现断路现象。结 论结 论本设计所研究的是基于单片机技术的智能喂食系统,实现一个宠物自动喂食器,主要包括单片机AT89S52控制、电源电路设计、电机控阀门、按键电路、显示模块、照明灯DS1302电路模块、DS18B20温度测试模块和蜂鸣器模块,宠物喂食器的发展和应用给饲养宠物者带来了很大的便利,意义重大。宠物喂食器主要是通过蜂鸣器发出声音吸引宠物过来进食,蜂鸣器发出的音乐是由程序控制的,音乐内容可以根据程序随时改变,非常方便。喂食时间通过键盘设定不同的时间点,当依次到达时间时,控制阀门打开,发光二极管发光,蜂鸣器发出音乐,吸引宠物进食并自动投放食物。温度传感器DS18B20是能随时测试室内温度,万年历能显示年、月、日、星期、时、分、秒,方便记录宠物的生长周期,更好的改善宠物的生活。此设备最大特点就是使用户能够操作简单、易懂、灵活;且安全、稳定、智能性高、性价比高,是一款小功率的智能宠物喂食系统。随着现代人们饲养宠物意识的增强以及科学技术的快速发展,相信该喂食系统必将在更广阔的领域得到更深层次的应用。本系统在喂食过程中由单片机AT89S52主控整个系统,对宠物更好的喂养;喂食过程中伴随着照明灯的点亮,照明灯是由一个继电器控制的。有万年历、温度显示、闹钟提醒等很有实用价值。本设计同时也存在着一些不足之处:没有设置更多的食物放置槽,能方便宠物进食不同的食物和更好的饮水。本设计还有很多可以完善的地方,可以着手从下面几个方面继续扩展:1.该系统还可以加入远程短信通知模块,如果设备出故障及室内温度过高可以通知用户,让用户更好的喂养宠物。使功能更加可靠完善。2.可以设置4个或更多的食物放置槽,按提前设置的时间依次打开,由电机控制阀门打开食物槽,方便宠物进食。3.本设计可以设置几个不同的定点时间,这样即使宠物饲养者几天不在家,宠物的饮食规律也能得到保障。参考文献参考文献1 阎石主编.数字电子技术基础.修订3版.高等教育出版社.1988.2 童诗白主编.模拟电子技术基础.修订2版.高等教育出版社.1988.3 胡汉才主编.单片机原理及其接口技术.(第二版).清华大学出版社.2004.4 张毅刚主编.单片机原理及应用.高等教育出版社.5 何立民.MCS-51单片机应用系统设计.北京航空航天大学出版社.1998.7.6 徐爱军.单片机高级语言C51应用程序设计.电子工业出版社.1997.7.7 张志良.单片机原理与控制技术.机械工业出版社.2008.8 于海生.微型计算机控制技术.清华大学出版社.1999.3.9 康华光.电子技术基础模拟部分高等教育出版社.2005.10 于敬芬.基于AT89S52和TLC0834的数据采集系统中国水运(学术版).2006.11 王幸之.AT89系列单片机原理及接口技术北京航天航空出版社.2006.12 康华光.电子技术基础数字部分高等教育出版社.1998.13 胡汉才.单片机原理及系统设计清华大学出版社.2002.14 邱关源.罗先觉.电路基础.高等教育出版社(第五版).2006.15 曹玲芝.电子信息工程专业英语.华中科技大学出版社.2007.16 刘勇.数字电路.电子工业出版社.2003.1.17 V. Yu. Teplov. A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect. J .2002.致 谢致 谢毕业设计是我大学学习生活的很重要的学习任务,是对我的一次综合考核。也为了使我的综合技能有一个很大的提高。在毕业设计过程中,不仅系统的复习了以前所学的知识,又学习了许多新知识,使我的知识结构更加系统化和完善。同时,也提高了我独立分析问题、解决问题的能力。而我能够顺利完成毕业设计,仅仅依靠个人的努力是远远不够的。首先,对我的指导老师丁学文老师表示崇高的敬意和衷心的感谢。本设计的很多工作都是在于老师的耐心指导和辅导下完成的,从立题到论文结束,都渗透着于老师的心血,每当课题遇到困难,丁老师都给我鼓励和指导建议,使我能够克服各种困难,顺利完成课题。老师渊博的知识、严谨的治学态度、实事求是的作风、和蔼可亲的态度、崇高的敬业精神深深的感动了我,并使我懂得了一定要做一个诚实、认真、踏踏实实、责任心强的人,丁老师的言传身教将使我终身受益。丁老师有独到的见解,令我茅塞顿开,使我的毕业设计能够顺利圆满的地完成。感谢他在科研和学习生活中对我的支持、鼓励、关怀和教诲。我想借此机会向丁老师表示衷心的感谢!我还要感谢我的同学和舍友。感谢你们在大学五年里对我生活、学习上的帮助。一起共同经历了很多欢乐和难忘的时光,大学校园里有我们的欢声笑语,五年里,我们共同成长,共同进步。在这里,我祝愿我的每一位同学在以后的人生道路上能够实现自己的理想,事业有成。其次,我要感谢我的母校天津职业技术师范大学,特别是在我即将踏上工作岗位时,给予我这样一个锻炼、学习的机会,使我加深了对以前知识的理解,拓宽了知识面,也提高了我对所学知识的综合的应用能力。在此,祝愿我的母校以后发展得更好!我还特别感谢我的父母亲,在我成长的过程中,你们给我足够的物质和精神上的支持,让我顺利地完成大学五年的学业并且找到了一份理想的工作。我会尽力的减轻着家里的负担,用我的未来向你们承诺一个好的生活,更好的回报你们。附录附录1 电路原理图附 录附录2 主程序#include #include #include LCD12864.h#include DS1302.h#include DS18B20.h#include nongli.h#include displaytime.h#include zk.h#include bell.h#include HW.H#include delay.h#include main_MOTO.h#define uint unsigned int#define uchar unsigned char/*-定义按键-*/sbit K1 = P00; /K1-设置sbit K2 = P01; /K2-确认、返回sbit K3 = P02; /K3-加sbit K4 = P03; /K4-减/K5=P14,K5-控制闹钟的打开与关闭,在hw.h中定义/sbit J1 = P06;sbit J2 = P07;/*-函数声明-*/ void ds_w0(void);void ds_w(void);void Conver_week(bit c,uchar year,uchar month,uchar day);/*-定义全局变量-*/bit w=0; /调时标志位uchar int0_flag=0;uint int0_flag_1=0;unsigned charyy,mo,dd,xq,hh,mm,ss,month_moon,day_moon,week,tiangan,dizhi,moont

温馨提示

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

评论

0/150

提交评论