基于单片机的宠物喂食器电路设计毕业设计.docx
- 文档编号:30730326
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:58
- 大小:280.96KB
基于单片机的宠物喂食器电路设计毕业设计.docx
《基于单片机的宠物喂食器电路设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的宠物喂食器电路设计毕业设计.docx(58页珍藏版)》请在冰豆网上搜索。
基于单片机的宠物喂食器电路设计毕业设计
摘要
本设计所研究的是实现一个宠物自动喂食器,即先将宠物饲料放入其中,通过设定五个喂食时间点,当到达这一时间点后,系统发出喂食信号吸引宠物,自动进行喂食。
本设计主要研究如何设定五个时间点并发出喂食信号。
宠物喂食器系统主要包括单片机控制、自动开关和蜂鸣器提示、倒计时间设定系统。
喂食器的喂食过程,通过键盘设定五个倒计时间,当依次到达这五个时间时,发光二极管发光,蜂鸣器发出响声,吸引宠物过来进食并自动投放食物。
本设计解决了工作时或节假日时由于主人不在不能对宠物进行喂食,避免了宠物由于饮食不正常所产生的问题。
在整个系统中,利用单片机对各个系统进行控制。
倒计时系统时间通过六位七段数码管显示出来。
利用键盘设定五个倒计时间,单片机不停的读取时间,并判断是否到达喂食时间。
开关系统电阻和发光二极管表示,发光二级管收到低电平时导通表示开关打开投放喂食。
同时接有蜂鸣器,当到达喂食时间后蜂鸣器发出响声吸引宠物进行喂食。
关键词:
智能;定时喂养;单片机AT89S52;
Abstract
Thestudydesignistoachieveanautomaticpetfeeder,petfeedintowhichwillsetthefivefedpoint,whenyoureachthispointintime,automaticallyfeeding.Themainpointofhowtosetthetimewithinthepetfoodputout.PetfeedersystemincludesMCUcontrol,automaticswitchandmusicalertsystem,theremainingtimesettingsystem.Feederfeedingprocess,thefiveremainingtimesetbythekeyboard,whentheorderreachesthefivetime,whilethetimerchiptosendasignalrelayandmusic,musicplaybackchip,apieceofmusicattractedthepet,therelayswitchisclosedSothataredlightemittingdiode,saidswitchdeliveryoffood.Thisdesignsolvestheholidayswhenworkornotisnottheownerofthepettofeed,toavoidthepetfoodisnotnormalbecausetheproblemsarising.
Throughoutthesystem,theuseofsinglechipcontrolsystemofeach.Countdowntothesystemtimebysixoutofsevensegmentdigitaldisplay.Usingthekeyboardtosetthefiveremainingtime,microcontrollerreadsthestoptimeandtodeterminewhetherthefeedingtimearrives.Switchingsystembytherelayandthelight-emittingdiode,saidswitchisclosedwhentherelayreceivedhighlight-emittingdiode,saidswitchisrunningfeeding.Tiphasamusicsystem,whenthearrivaltimeafterfeedingapieceofmusictipsmusicplaybackchiptofeedpets.
Keywords:
intelligent;automaticfeeding;MCU
中文摘要
英文摘要
1绪论
1.1设计意义
单片机自20世纪70年代问世以来,以其极高的性能价格比受到人们的重视和关注,应用广泛,发展快速。
单片机具有体积小、速度快、抗干扰能力强,环境要求不高,性能可靠和价格低廉等优点,通常在其外部配置外围电路就可构成一完整的控制系统。
由于具有以上优点,在我国,单片机已广泛应用与工业自动化控制、自动检测、智能仪器仪表、家电电器、电力电子、武器装备、机电一体化设备等各个方面。
单片机,亦称单片微电脑或单片微型计算机。
它是把中央处理器(CPU)、随机存取
存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
现在越来越多的家庭都饲养有猫、狗等宠物,但是由于工作等原因,宠物的饮食
规律得不到一定的保障,宠物喂食器可以解决这一问题,宠物自动喂食器可以定时定
量的进食,且设计简单方便,有一定的实用价值。
1.2设计要求
利用单片机的定时功能设计一个宠物自动喂食盒的电路,要求:
可以通过键盘输入至少3个倒计时时间,每一个倒计时时间到后,发出宠物开始喂食信号;
扩展功能:
按照年/月/日/时/分的格式输入宠物进食时间;
2设计方案
分析本题,根据设计要求先确定了本系统的整体设计原理框图如图1:
图1系统整体设计原理框图
2.1按键模块
采用7个触键开关,可实现五个倒计时间依次键入,同时还有两个调时按键,再一个复位按键。
2.2自动开关模块
采用三极管和发光二极管近似表示。
本系统是基于52单片机的宠物自动喂食的设计,用电阻和发光二极管代替比较容易,当发光二级管接收到一个低电平时开关闭合,发光二极管导通发出绿光表示自动投食。
2.3蜂鸣器模块
采用一个三极管和一个蜂鸣器,由蜂鸣器发出响声吸引宠物过来进食。
当发光二极管亮灯时,蜂鸣器接收到一个低电平,蜂鸣器器发出响声吸引宠物过来进
食。
2.4显示模块
选用数码管显示,用普通的数码管显示简单的数字、符号、字母。
只需一次显示5个倒计时间,而且每个时间只需显示6个数字,即年/月/日。
3硬件电路的设计
3.1单片机
3.1.1AT89S52单片机的简介
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串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
掉电标识符
3.1.1.2AT89S52双列直插式引脚图
图2.1AT89S52双列直插式引脚图
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位地址字节。
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.2AT89S52的时钟介绍
单片机的工作过程是:
取一条指令、译码、进行操作,再取一条指令、译码、进行微操作,这样自动的一步一步的由微操作依序完成相应指令规定的功能。
各指令的微操作在时间上由严格的次序,各种微操作的时间次序称作为时序。
3.1.2.1AT89S52的时钟信号产生方式
AT89S52单片机的时钟信号通常有两种产生方式:
一是内部时钟方式,二是外部时钟方式。
内部时钟方式如图2.2所示。
在AT89S52单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体,就构成了自激振荡器并在单片机内部产生时钟信号。
图中电容器C1、C2的作用是稳定频率,快速起振,电容值在5~30pF;晶振CYS的振荡器频率为1.2~12MHz。
图2.2内部时钟方式
外部时钟方式是把已有时钟信号引入到单片机内,如图2.3所示。
此方式多用于多片AT89S52单片机同时工作。
以便于各单片机同步。
一般要求外部信号高电平的持续时间大于20ns,且为频率低于12MHz的方波。
对于采用CHMOS工艺的单片机,外部时钟主要由XTAL1端引入,而XTAL2端引脚应悬空。
图2.3外部时钟方式
3.1.2.2AT89S52的时钟信号
晶振周期为最小的时序单元。
晶振信号经分频器形成两相错开的时钟信号P1和P2.时钟信号的周期也称为S状态,它是晶振周期的两倍。
即一个时钟周期包含两个晶振周期。
在每个时钟周期的前半周期,相位1有效,在每个时钟周期的后半周期,相位2有效。
每个时钟周期有两个节拍P1和P2,CPU以两相时钟P1和P2为基本节拍指挥各个部件协调工作。
晶振信号12分频后形成机器周期。
一个晶振周期包含12个晶振周期或6个时钟周期。
因此每个机器周期的12个晶振脉冲可以表示为S1P1S2P2……S6P6。
晶振周期和机器周期是单片机内计算其他时间值的基本时序单位。
如晶振频率为12HZ,则机器周期为1us,指令周期为1-4us。
3.1.3单片机中断的介绍
在设计中用到了外部中断INT0/INT1和定时器T0。
它们的中断请求标志分别为IE0,IE1和TF0。
这些中断请求标志位分别由特殊功能寄存器TCON和TMOD的相应位锁存。
在这个设计中,中断允许寄存器是首要介绍的。
3.1.3.1中断允许寄存器IE控制CPU对中断源的开放或屏蔽。
中断的开放和屏蔽实现2级控制,一个总开关中断控制所有的中断。
IE的格式如下:
IE
EA
ES
ET1
EX1
ET0
EX0
位地址
AFH
ACH
ABH
AAH
A9H
A8H
当EA=0时,所有的中断请求被屏蔽,CPU不接受任何请求。
当EA=1时,CPU开中断,此时只要五个中断源的中断请求允许为1,则开中断。
3.1.3.2TMOD-工作方式控制寄存器
用于选择定时器/计数器的工作模式,字节地址为89H,8位分2组,高4位控制T1,低4位控制T0,其格式如下:
D7
D6
D5
D4
D3
D2
D1
D0
TMOD
GATE
C/T
M1
M0
GATE
C/T
M1
M0
下面对工作方式选择位做说明:
M1M0---工作方式选择位,M1M0共有4种编码,分别对应4种工作方式。
如表1:
表1工作方式选择
M1M0
工作方式
00
方式0,为13位定时器/计数器
01
方式1,为16位定时器/计数器
10
方式2,8位的常数自动重新装载的定时器/计数器
11
方式3,仅适应于T0,T0分为两个8位的计数器,停止计数
中断的触发方式:
电平触发方式和下降沿触发方式。
3.2电源电路
单片机电源(220v转5v)设计电源电路采用LM7805集成稳压器作为稳压器件,用典型接法,220V电源整流滤波后送入LM7805稳压,在输出端接一个470U和0.1U电容进一步滤除纹波,得到5V稳压电源。
电路如图2.4所示
图2.4电源电路图
3.3时钟电路
单片机工作的时间基准,决定单片机工作速度。
时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。
AT89S51单片机时钟频率范围:
0—33MHz,本电路选择11.0592MHZ。
电路如图2.5所示。
图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电阻上出现电压,使得单片机复位。
几个毫秒后,单片机进入工作状态。
图2.6复位电路图
3.5LED数码管显示
3.5.1数码管显示简介
数码管LED串口显示模块通常有两种显示方法:
动态显示和静态显示。
动态显示:
连接方法是将每个二极管的同名端连在一起,而每个显示器的公共极COM各自独立的接受I/O线控制,CPU向字段输出端口输出字型码,所有显示器接受到相同的字符,而要使用哪个显示器要取决于他们的COM的电平,而这段是由I/O端控制的,由单片机输出。
动态扫描时连续的动态扫描,只是肉眼暂留现象,乃发光二极管的余辉效应,给人的感觉是一组稳定的显示数据。
静态显示:
静态显示显示效果好,但是功耗大,但不占用端口,只需两个串口线输出,变成较为简单。
而且采用静态显示需要的驱动器件多,硬件成本相对更高。
比较以上两种方案,方案一硬件简单程序复杂,方案二硬件复杂程序简单,考虑到实惠和对自己的编程锻炼,选择方案动态显示。
动态扫描方法是用其接口电路把所有显示器的8个笔画字段(a—g和dp)同名端连在一起,而每个显示器的公共极COM各自独立的接受I/O线控制。
CPU向字段输出端口输出字型码时,所有显示器接受到相同的字型码,但究竟使用哪个显示,则取决于公共极COM端,而这一端是由/WR和/RD控制的,由单片机决定何时显示哪一位。
动态扫描用分时的方法去轮流控制各个显示的COM端,时各个显示器轮流亮。
在轮流点亮扫描过程中,每为显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管的于辉效应,给人的印象就时一组稳定的显示数据。
显示部分电路图:
图2.7数码管显示原理
3.5.2数码管编码表
7段数码管可以包括小数点的0~9的数字和部分的英文字母,为了获得不同的字符,数码管各段所加的电平也不同,编码也不一样。
共阴极数码管的字型,字段和编码的关系如下表2:
表2数码管编码表
十六进制数
hgfedcba
显示代码
0
00111111
0x3f
1
00000110
0x06
2
01011011
0x5b
3
01001111
0x4f
4
01100110
0x66
5
01101101
0x6d
6
01111101
0x7d
7
00000111
0x07
8
01111111
0x7f
9
01101111
0x6f
.
10000000
0x80
3.6开关控制
本电路要实现可设定5个倒计时设计要求,需要1个复位键,一个“+”和一个“-”按键,另外再加5个时间设定按键用于实现倒计时间设定,按键时可直接输出相应倒计时间。
3.7单片机的去抖动
单片机去抖动可以用软件和硬件两种方法。
硬件方法就是加去抖动电路,例如在按键两端并联10uF的电容或通过RS触发器连接按键,硬件去抖动从根本上避免抖动;软件方法则采用时间延时以躲过抖动,待信号稳定之后再进行键扫描。
对于系统软件量不大的场合,采用软件去除抖动既节约硬件开销又很实用且有效。
所以本设计采用软件去抖动。
4电路的软件部分
单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程CPU可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。
机器汇编通过汇编软件变为机器码,用于MSC-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从使用普通汇编语言到高级语言的不断发展,Keil是目前最流行开发MCS-51系列单片机的软件。
Keilc51汇编,PLM语言和C语言的程序设计,界面友好。
Keil是美国keilsoftware公司出品的52系列兼容单片机c语言开发系统。
用过汇编语言后再使用C语言来开发,体会更加深刻。
程序框图:
图2.8程序框图
源程序如下:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitb1=P1^0;
sbitb2=P1^1;
sbitb3=P1^2;
sbitb4=P1^3;
sbitb5=P1^4;
sbitbell=P2^6;
sbits1=P3^0;
sbits2=P3^1;
sbits3=P3^2;
sbits4=P3^3;
sbits5=P3^4;
sbitadd=P3^6;
sbitdec=P3^7;
charsecond1=1,minute1=1,hour1=1,second2=2,minute2=2,hour2=2,second3=3,minute3=3,hour3=3;
charsecond4=4,minute4=4,hour4=4,second5=5,minute5=5,hour5=5;
ucharg;
unsignedcharcodetable[]={//共阴极0~f数码管编码
0x3f,0x06,0x5b,0x4f,//0~3
0x66,0x6d,0x7d,0x07,//4~7
0x7f,0x6f,0x77,0x7c,//8~b
0x39,0x5e,0x79,0x71//c~f
};
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voiddelay1(uintz)
{
for(;z>0;z--);
}
voiddisplay(uchara,ucharb,ucharc)
{
uchari,j;
i=a/10;
j=a%10;
P2=0xfb;
P0=table[i];
delay
(2);
P2=0xf7;
P0=table[j];
delay
(2);
i=b/10;
j=b%10;
P2=0xef;
P0=table[i];
delay
(2);
P2=0xdf;
P0=table[j];
delay
(2);
i=c/10;
j=c%10;
P2=0xfe;
P0=table[i];
delay
(2);
P2=0xfd;
P0=table[j];
delay
(2);
}
voiddelay2(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--)
display(0,0,0);
}
voidinit()
{
EA=1;//开总中断
ET0=1;//本例中使用的是定时器T0,如果用T1。
则为ET1=0,TMOD=0x10。
TMOD=0x01;//定时器工作方式1
TH0=(65535-50000)/256;//因为晶振用的是11.0592MHZ。
在取初值时,大概定义为一个中断为50MS
TL0=(65535-50000)%256;
TR0=1;
P1=0xff;
}
voidturn_val1(charnewval,ucharflag,ucharslnum)
{
if(flag)//判断是加一还是减一
{
newval++;
switch(slnum)
{
case1:
if(newval>23)newval=0;
display(hour1,minute1,second1);
hour1=newval;
break;
case2:
if(newval>59)newval=0;
display(hour1,minute1,second1);
minute1=newval;
break;
case3:
if(newval>59)newval=0;
display(hour1,minute1,second1);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 宠物 喂食 电路设计 毕业设计