|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
豆?jié){機(jī)仿真
豆?jié){機(jī)程序
豆?jié){機(jī)仿真電路圖+程序源碼
void main()
{
u8 jiyi=0;
beep=1;
Motor=0;//關(guān)電機(jī)
M_LED=1;//關(guān)電機(jī)指示燈
LED=0;
LCD_Initial();
LCD_Print(2,0, "soybean milk");
LCD_Print(4,1, "machine");
delayms(300);
LCD_Write(0x00, 0x01);//清屏
LCD_Print(0,0, "Please Add Water");
LCD_Print(0,1, "Percentage:000 ");
TIME_INIT_0();//開(kāi)定時(shí)器
while(1)
{
KEY();
/***********************************************漿液溢出***********************************************/
if(yichu_flag==1)
{
LCD_Write(0x00, 0x01);//清屏
LCD_Print(0,0,"Foam Over");
LCD_Print(0,1,"Time: S");
Motor=0;//關(guān)電機(jī)
M_LED=1;//關(guān)電機(jī)指示燈
jiyi=Star_Flag;//記錄系統(tǒng)運(yùn)行狀態(tài)
Star_Flag=0;
Timeyichu_Set=10;//設(shè)置10秒消泡沫
yichu_flag=2;
}
if(yichu_flag==2)
{
Timeyichu=yichu_fen*60+yichu_miao;//計(jì)算時(shí)間
dis[1]=Timeyichu/10+'0';
dis[2]=Timeyichu%10+'0';
LCD_Print(5,1,&dis[1]);
LCD_Print(6,1,&dis[2]);
if(Timeyichu>=Timeyichu_Set)//達(dá)到預(yù)設(shè)
{
Timeyichu_Set=0;
yichu_haomiao=0;
yichu_miao=0;
yichu_fen=0;
yichu_flag=0;
if(jiyi%2==0)
Star_Flag=jiyi-1;//恢復(fù)系統(tǒng)運(yùn)行狀態(tài)
else
Star_Flag=jiyi;//恢復(fù)系統(tǒng)運(yùn)行狀態(tài)
}
}
/***************************************1600W加熱到80℃*******************************************/
if(Star_Flag==1)//正常啟動(dòng)
{
LCD_Print(0,0,"Power:1600W");
LCD_Print(0,1,"Tempe: ");
LCD_Print(10,1,WD);
Star_Flag=2;//將進(jìn)入1600W加熱到80度
}
if(Star_Flag==2)//1600W加熱到80度
{
while(1)
{
if(temp>0&&temp<=1600)
{
chuli(temp,Temp_Dis); //數(shù)據(jù)處理
LCD_PutChar(6,1,&Temp_Dis[0]);
LCD_PutChar(7,1,&Temp_Dis[1]);
LCD_Print(8,1,".");
LCD_PutChar(9,1,&Temp_Dis[2]);
if(temp>800)
break;
}
}
haomiao=0;
miao=0;
fen=0;
Star_Flag=3;//將進(jìn)入啟動(dòng)電機(jī)打漿,加熱功率1600W
}
/****************************************打漿120S不加熱*****************************************/
if(Star_Flag==3)//啟動(dòng)電機(jī)打漿120s
{
Motor=1;//啟動(dòng)電機(jī)打漿
M_LED=0;//開(kāi)電機(jī)指示燈
LCD_Write(0x00, 0x01);//清屏
LCD_Print(0,0,"No Heating");
LCD_Print(0,1,"Motor Star: S");
Time_Set=120;//設(shè)定電機(jī)打漿120秒
Star_Flag=4;//將進(jìn)入等待打漿時(shí)間到
}
if(Star_Flag==4)//等待打漿時(shí)間到
{
Time=fen*60+miao;//計(jì)算時(shí)間
dis[0]=Time/100+'0';
dis[1]=Time%100/10+'0';
dis[2]=Time%100%10+'0';
LCD_Print(11,1,&dis[0]);
LCD_Print(12,1,&dis[1]);
LCD_Print(13,1,&dis[2]);
if(Time>=Time_Set)
{
Time_Set=0;
haomiao=0;
miao=0;
fen=0;
Star_Flag=5;//將進(jìn)入800W加熱,打漿同時(shí)進(jìn)行,60s
}
}
/*****************************************800W煮漿同時(shí)打漿*****************************************/
if(Star_Flag==5)//800W加熱,打漿同時(shí)進(jìn)行,60s
{
Motor=1;//啟動(dòng)電機(jī)打漿
M_LED=0;//開(kāi)電機(jī)指示燈
LCD_Write(0x00, 0x01);//清屏
LCD_Print(0,0,"Power:800W");
LCD_Print(0,1,"Motor Star: S");
Time_Set=60;//設(shè)定800W加熱同時(shí)電機(jī)打漿60秒
Star_Flag=6;//將進(jìn)入等待煮漿打漿時(shí)間到
}
if(Star_Flag==6)//等待煮漿打漿時(shí)間到
{
Time=fen*60+miao;//計(jì)算時(shí)間
dis[1]=Time/10+'0';
dis[2]=Time%10+'0';
LCD_Print(12,1,&dis[1]);
LCD_Print(13,1,&dis[2]);
if(Time>=Time_Set)
{
Time_Set=0;
haomiao=0;
miao=0;
fen=0;
Motor=0;//關(guān)閉電機(jī)打漿
M_LED=1;//關(guān)電機(jī)指示燈
Star_Flag=7;//將進(jìn)入煮漿
}
}
/*******************************************450W煮漿60s,350W煮漿120s*****************************************/
if(Star_Flag==7)//煮漿
{
LCD_Write(0x00, 0x01);//清屏
Time_Set=180;//設(shè)定180s煮漿
Star_Flag=8;//將進(jìn)入等待煮漿打漿時(shí)間到
}
if(Star_Flag==8)//煮漿
{
Time=fen*60+miao;//計(jì)算時(shí)間
if(Time<=60)//400W煮漿
{
LCD_Print(0,0,"Power:400W");
LCD_Print(0,1,"Time: S");
dis[1]=(Time)/10+'0';
dis[2]=(Time)%10+'0';
LCD_Print(6,1,&dis[1]);
LCD_Print(7,1,&dis[2]);
}
if(Time>60&&Time<=180)//350W煮漿
{
LCD_Print(0,0,"Power:350W");
LCD_Print(0,1,"Time: S");
dis[0]=(Time-60)/100+'0';
dis[1]=(Time-60)%100/10+'0';
dis[2]=(Time-60)%100%10+'0';
LCD_Print(5,1,&dis[0]);
LCD_Print(6,1,&dis[1]);
LCD_Print(7,1,&dis[2]);
}
if(Time>=Time_Set)
{
Time_Set=0;
haomiao=0;
miao=0;
fen=0;
Star_Flag=9;//將進(jìn)結(jié)束
}
}
/********************************************結(jié)束10s**************************************/
if(Star_Flag==9)//結(jié)束
{
LCD_Write(0x00, 0x01);//清屏
LCD_Print(0,0,"End of Run");
LCD_Print(0,1,"Time: S");
Time_Set=10;//設(shè)定10s
Star_Flag=10;
}
if(Star_Flag==10)//結(jié)束
{
Time=fen*60+miao;//計(jì)算時(shí)間
dis[1]=Time/10+'0';
dis[2]=Time%10+'0';
LCD_Print(6,1,&dis[1]);
LCD_Print(7,1,&dis[2]);
if(Time>=Time_Set)
{
Time_Set=0;
haomiao=0;
miao=0;
fen=0;
Star_Flag=11;//將進(jìn)入蜂鳴器
}
}
/********************************************10后報(bào)警*******************************************/
if(Star_Flag==11)//蜂鳴器
{
Time_Set=2;//設(shè)定10s
Star_Flag=12;
}
if(Star_Flag==12)//蜂鳴器
{
Time=fen*60+miao;//計(jì)算時(shí)間
if(Time>0&&Time<=1)
{
beep=0;
}
if(Time>1&&Time<=2)
{
beep=1;
}
if(Time>=Time_Set)
{
haomiao=0;
miao=0;
fen=0;
}
}
}
}
Proteus7.5版本的仿真工程dsn文件和代碼下載:
豆?jié){機(jī).zip
(233.21 KB, 下載次數(shù): 127)
2021-8-24 15:39 上傳
點(diǎn)擊文件名下載附件
豆?jié){機(jī)
|
評(píng)分
-
查看全部評(píng)分
|