访问手机版页面
你的位置:老古开发网 > Pic单片机 > PIC单片机C语言编程 > 正文  
PIC单片机对豆浆机的控制设计
内容导读:

1引言

目前,人们对生活的质量要求越来越高,人们在忙于工作之余,豆浆机是一种新型的家用饮料机,以黄豆为原料,直接加工成熟的热豆浆。若在黄豆中配以芝麻、花生、杏仁等佐料,可以做出各种风味的鲜美饮料。 豆浆机由粉碎黄豆的搅拌机、豆浆加热器和控制电路三大部分组成。用单片机研制的全自动豆浆机的控制电路,只要按下启动按键,豆浆机就开始工作,一会儿就能喝到美味又营养的豆浆。整个过程由单片机全自动控制,让您用起来更加地方便、更加的安全。特用PROTEUS模拟,体验单片机的乐趣。

2豆浆机的功能

单独加热:具有单独加热功能,当达到规定温度时停止加热。

自动工作:流程如下:在有水的情况下,电热管开始加热,当水温上升到82℃时,停止加热,电机开始工作。电机每工作30S然后停止5S为一个周期,持续工作5个周期.当豆浆产生的泡沫碰到防溢电极时,电机停转,等泡沫降下,电机继续工作,当泡沫碰到防溢电极10次后电机持续工作5个周期后,结束并报警。

全过程处于无水报警,停止工作状态:在单独加热、自动工作期间,任何时刻提起豆浆机,都会停止工作并报警。当重新将豆浆机放入水中后,回复以前工作状态。

3系统总体方案介绍

硬件组成如图所示,3个传感器分别测量水位、溢出、温度,2个按键,1个蜂鸣器输出口,2种加热方式选择。

PIC单片机对豆浆机的控制设计

其中,RB1口通过继电器触点接的应是电热丝,但PROTEUS库里没有,只好用一个LED代替一下,只要灯亮说明电热丝正在加热。另外,三个传感器均用开关表示,欠水检测传感器的开关闭后说明有水可以工作,否则不能正常开启;温度传感器开关闭合说明加热到指定温度;溢水检测传感器开关闭合说明豆浆泡沫溢出。上述三个开关均只能手工开启闭合模拟。选用单片机为PIC16F877A.

4.程序(C语言)

#include

unsigned int i=1,j=1,k=1,l,m,n=1,x,y,z;//定义程序用到的变量

void sound(void)//警报声频率子程序

{

for(z=1;z《=10;z++)

{

for(x=1;x《=100;x++)

{

RB2=0;

}

for(y=1;y《=100;y++)

{

RB2=1;

}

}

}

void main(void)//主程序

{//初始化

TRISB=0X00;

TRISC=0XFF;

PORTB=0X20;//电源指示开

while(1)

{

if(RC0==0)//检测是否欠水{

if(RC4==0)//检测加热按钮是否按下

{

while(RC1==1&&RC2==1)//检测温度是否达到规定,是否有溢出

{

RB6=1;//加热指示

RB1=1;//加热

}

sound();//加热完毕报警

}

else

{

RB6=0;//关闭加热指示

RB1=0;//关闭电热丝

}

if(RC3==0)//全自动模式

{//定时器1初始化

T1CON=0X30;

TMR1IF=0;

TMR1IE=1;

TMR1L=0X2B;

TMR1H=0XCF;

while(RC1==1&&i《=6000)//加热10分钟

{

TMR1ON=1;

RB6=1;//加热

RB1=1;

if(TMR1IF==1)

{

TMR1ON=0;

TMR1IF=0;

TMR1L=0X2B;//重新给初值

TMR1H=0XCF;

i++;

}

}

RB6=0;//停止加热

RB1=0;

sound();//加热结束报警

for(m=1;m《=5&&n《=10;m++)//电机循环5个周期

{

while(j《=300&&n《=10)//电机一周期工作30S

{

TMR1ON=1;

if(RC2==0)

{

n++;

}

while(RC2==0)

{

RB0=0;

RB7=0;

}

RB0=1;//MOTOR IS ON

RB7=1;

if(TMR1IF==1)

{

TMR1ON=0;

TMR1IF=0;

TMR1L=0X2B;

TMR1H=0XCF;

j++;

}

}

while(m==5)//5周期结束,报警5声“滴”

{

sound();

for(l=1;l《=15000;l++)

{;}

sound();

for(l=1;l《=20000;l++)

{;}

sound();

for(l=1;l《=15000;l++)

{;}

sound();

for(l=1;l《=20000;l++)

{;}

sound();

m++;

}

sound();//每周期结束报警一声

while(k《=50&&n《=10)//电机每周期停止5S

{

TMR1ON=1;

RB0=0;

RB7=0;

if(TMR1IF==1)

{

TMR1ON=0;

TMR1IF=0;

TMR1L=0X2B;

TMR1H=0XCF;

k++;

}

}

j=0;

k=0;

}

RB0=0;

RB7=0;

n=0;

}

}

}

}(由PROTEUS仿真通过)

标签:豆浆机,PIC单片机,
来源:工程师周亮 作者:lhl545545 时间:2019/4/6 9:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐