tazzf_68 发表于 2007-1-7 22:39

哪位朋友帮忙改进一下豆浆机原程序(学习中)

&nbsp;#include&nbsp;&quot;reg51.h&quot;<br />#include&quot;intrins.h&nbsp;&quot;<br />sbit&nbsp;led_yello_power=P1^0;<br />sbit&nbsp;led_green_heat=P3^7;<br />sbit&nbsp;led_red_auto=P1^4;<br />sbit&nbsp;beep=P3^5;<br />sbit&nbsp;heat=P1^5;<br />sbit&nbsp;run=P1^7;<br /><br />sbit&nbsp;func_select=P1^6;<br />sbit&nbsp;start=P1^2;<br />unsigned&nbsp;char&nbsp;n=0;<br />unsigned&nbsp;char&nbsp;func_flag=0;<br />unsigned&nbsp;char&nbsp;&nbsp;stop=1;<br />void&nbsp;delay(int&nbsp;n)<br />{int&nbsp;&nbsp;j,k;<br />for(k=0;k&ltn;k++)<br />&nbsp;{for(j=0;j&lt55;j++);<br />&nbsp;&nbsp;}<br />&nbsp;<br />}<br /><br /><br />void&nbsp;ok1(void)<br />{<br />&nbsp;while(func_select==1&&start==1)<br />&nbsp;{beep=1;<br />&nbsp;&nbsp;led_red_auto=1;<br />&nbsp;&nbsp;delay(250);<br />&nbsp;&nbsp;beep=0;<br />&nbsp;&nbsp;led_red_auto=0;<br />&nbsp;&nbsp;delay(500);<br />&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;ok2(void)<br />{<br />&nbsp;while(func_select==1&&start==1)<br />&nbsp;{beep=1;<br />&nbsp;&nbsp;led_green_heat=1;<br />&nbsp;&nbsp;delay(250);<br />&nbsp;&nbsp;beep=0;<br />&nbsp;&nbsp;led_green_heat=0;<br />&nbsp;&nbsp;delay(500);<br />&nbsp;&nbsp;}<br />}<br />void&nbsp;init(void)<br />{<br />&nbsp;P1=0x5f;<br />&nbsp;P3=0xff;&nbsp;<br />&nbsp;delay(100);<br />&nbsp;P1=0x54;<br />&nbsp;P3=0x0f;<br />&nbsp;func_flag=0;<br />&nbsp;stop=1;<br /><br />}<br /><br />void&nbsp;ex0_1(void)&nbsp;interrupt&nbsp;0<br />{n++;<br />EX0=0;<br />heat=0;<br />delay(1000);<br />EX0=1;<br /><br />}<br /><br /><br /><br />void&nbsp;func_heat(void)<br />{while(n&lt3)heat=1;&nbsp;<br />&nbsp;heat=0;<br />&nbsp;}<br /><br /><br />void&nbsp;func_auto(void)<br />{unsigned&nbsp;char&nbsp;i;<br />for(i=0;i&lt5;i++)<br />&nbsp;{run=1;<br />&nbsp;delay(18000);<br />&nbsp;run=0;<br />&nbsp;delay(8000);<br />&nbsp;}<br />}<br /><br /><br />&nbsp;<br />&nbsp;&nbsp;void&nbsp;scan_key(void)<br />&nbsp;{if(func_select==0||start==0)<br />&nbsp;&nbsp;&nbsp;{&nbsp;delay(200);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(func_select==0||start==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;if(func_select==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{while(func_select==0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(func_flag==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;func_flag=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led_green_heat=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led_red_auto=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;func_flag=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led_green_heat=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led_red_auto=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;start==0)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;while(start==0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(stop==0)stop=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />}<br /><br /><br />void&nbsp;main(void)<br /><br />{init();<br />&nbsp;&nbsp;IT0=1;<br />&nbsp;&nbsp;EX0=1;<br />&nbsp;&nbsp;EA=1;<br /><br />&nbsp;&nbsp;<br />while(1)<br />{<br />&nbsp;&nbsp;scan_key();<br />&nbsp;&nbsp;while(stop==1)scan_key();<br />&nbsp;&nbsp;&nbsp;&nbsp;if(stop==0&&func_flag==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;func_auto();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func_heat();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok1();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(stop==0&&func_flag==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{func_heat();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok2();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;<br /><br />init();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />}<br /><br /><br /><br />&nbsp;&nbsp;}&nbsp;

conwh 发表于 2007-1-7 22:42

SJMP $

joson 发表于 2007-1-8 11:25

我手上有现成的程序

但是我不知道你豆浆机有几档速度可调,以及按键的处理若是一致的话,就不用进行更改了。

tazzf_68 发表于 2007-1-8 14:55

哪位朋友帮忙改进一下豆浆机原程序(学习中)

两个按钮,开机三灯闪烁,按功能键确定功能(干豆,湿豆,加热相应三灯指示)按开始键工作,先转几次,再加热,后再转几次,再加热至开,再加热开几次。最后停止报警完事。调速可能就是干、湿豆选择吧?应该两个吧,传感器一个防溢触头,一个接电机外壳(接电5v),一个接加热管外壳,看别的豆浆机资料,应该有温度检测,不知为什么没有?谢谢帮助!!

conwh 发表于 2007-1-8 20:51

就是个简单的时间控制

yzq13246068880 发表于 2020-5-20 16:16

页: [1]
查看完整版本: 哪位朋友帮忙改进一下豆浆机原程序(学习中)