基于51单片机宠物自动投料喂食器控制系统仿真设计( proteus仿真+程序+讲解视频)
仿真图proteus 7.8及以上
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0029
视频讲解
基于51单片机的宠物自动投料喂食器控制系统proteus仿真设计
主要功能:
结合实际情况,基于51单片机设计宠物自动投料喂食器控制系统。该系统应满足的功能要求为:
电机驱动,数码管(或液晶)显示、独立键盘。
具体功能:
\1. 采用C语言。
\2. 通过小键盘设置自动/手动喂食模式切换。
\3. 自动模式下,可设置喂食时间和当前时间,步进电机正转模拟投食,投食结束后电机反转:手动模式下,按键手动喂食开,手动喂食关;
\4. 数码管(或液晶)显示每次喂食时间和当前时间。
\5. 上位机监控功能要求:通过串口或USB口实现上/下位机通信,能够显示步进电机当前状态。
资料下载链接(可点击):
【腾讯文档】S0029 网盘链接
以下为本设计资料展示图:
仿真
开始仿真
开始仿真后显示当前实时时间,mos代表当前运行模式Z代表自动,S代表手动。串口显示电机工作状态Z是正转F是反转。按下自动模式按键,运行模式改为自动模式。按下手动模式按键,运行模式改为手动模式。手动模式下短按设置分别可以设置定时时间和当前实时时间,通过加减按键做调整,定时时间到电机正转后再反转。手动模式下,开盖按键电机正转模拟投食,关盖按键按下电机反转模拟投食结束。
程序:
主函数
void main(){
xiezhilin(0x01); //显示清屏
xiezhilin(0x38); //显示模式设置
xiezhilin(0x0c); //光标设置
TH1 = 0xFD; //晶振11.0592mhz 波特率设为9600
TL1 = 0xFD;
TMOD = 0x21; //定时器1方式2
SCON = 0x50; //串口接收使能
ES = 0; //串口中断使能 //使用外中断函数必须ES为0
TR1 = 1; //定时器1使能
TI = 0; //发送中断标记位,必须设置
EA = 1;
xianshi(0x80+0,'m');//显示m
xianshi(0x80+1,'o');//显示O
xianshi(0x80+2,'s');//显示S
xianshi(0x80+14,'D');//显示D
xianshi(0x80+15,'Y');//显示Y
dushi();
shijian=1;
while(1){
ms++;
if(ms>=5){aa=~aa;ms=0;dushi();}
if(shu=='Z')z_zhuan();
if(shu=='F')f_zhuan();
shu=0;
key();
xian();
if((shi==shi_n)&&(fen==fen_n)&&(miao==miao_n)){//定时时间到
shijian=1;
}
if(shijian==1){//定时时间到之后,延时一段时间再反转,期间读取时间。
z_zhuan();
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
f_zhuan();
shijian=0;
}
}
}
资料清单:
文章开头有下载链接