1)设置三种加热模式:高功率加热、中功率加热、低功率加热。
2)要求系统具有预约功能和保温功能。
3)要求系统具有多种工作模式:烧水模式:直接加热至100℃停止;果茶模式:直接加热至100℃后
改为低功率运行10分钟,然后保温;煲汤模式:直接加热至100℃,中功率20分钟后低功率运行20
分钟,然后保温;火锅模式:直接加热至100℃,转中功率模式持续加热;热奶模式:直接加热至75℃
后转保温模式。
部分程序:
include"stc89c51.h"
#include"typedef.h"
#include
//-----------------------IO配置------------------------------------------
sbitBEEP=P2^2;//蜂鸣器
sbitKEY1=P1^4;//烧水
sbitKEY2=P1^5;//果茶
sbitKEY3=P1^6;//煲汤
sbitKEY4=P1^7;//火锅
sbitKEY5=P3^4;//热奶
sbitKEY6=P3^5;//设置
sbitKEY9=P3^1;//开始
sbitKEY10=P3^0;//暂停停止
#defineDEF_ON0//数码管亮
sbitLED0=P1^0;//温度第1位位选
sbitLED1=P1^1;//温度第2位位选
sbitLED2=P1^2;//温度第3位位选
sbitLED3=P1^3;//温度第4位位选
//继电器IO初始化
#defineULN2003_ON1//开启继电器
#defineULN2003_OFF0//关闭继电器
sbitBW=P2^1;//保温继电器
sbitD_OUT=P2^0;//低功率继电器
sbitZ_OUT=P3^2;//中功率继电器
sbitG_OUT=P3^3;//高功率继电器
#defineT_10033//设定的温度100度,方便演示用了34度
#defineT_7530//设定的温度75度,方便演示用了30度
sbitCS1=P2^5;
sbitCLK1=P2^3;
sbitDATI1=P2^4;
sbitDATO1=P2^4;
//-----------------------------------------------------------------------
//01234567
{256,255,245,230,231,232,220,210,
//89101112131415
205,190,180,370,360,350,340,290,
//1617181920212223
260,250,249,245,220,200,150,102,
//2425262728293031
80,79,78,77,76,75,74,73,
//3233343536373839
72,71,70,69,68,67,66,65,
//4041424344454647
65,64,63,63,62,61,61,60,
//4849505152535455
59,58,58,57,57,56,56,55,
//5657585960616263
55,54,53,53,52,52,51,51,
//6465666768697071
50,50,49,49,48,48,47,47,
//7273747576777879
46,46,45,45,45,44,44,43,
//8081828384858687
43,42,42,42,41,41,40,40,
//8889909192939495
40,39,39,38,38,38,37,37,
//96979899100101102103
36,36,36,35,35,35,34,34,
//104105106107108109110111
34,33,33,32,32,32,31,31,
//112113114115116117118119
31,30,30,30,29,29,29,28,
//120121122123124125126127
28,28,27,27,27,26,26,26,
//128129130131132133134135
25,25,25,24,24,24,23,23,
//135136137138139140141142
23,23,22,22,22,21,21,21,
//142143144145146147148149
21,20,20,20,19,19,19,18,
//150151152153154155156157
18,18,17,17,17,16,16,15,
//158159160161162163164165
15,15,14,14,14,13,13,13,
//166167168169170171172173
12,12,12,11,11,11,10,10,
//174175176177178179180181
10,9,9,9,8,8,7,7,
//182183184185186187188189
7,6,6,6,5,5,4,4,
//190191192193194195196197
4,3,3,2,2,2,1,1,
//198199200201202203204205
0,0,0,0,0,0,0,0,
//206207208209210211212213
//214215216217218219220221
};
u8adc_val;//温度ADC值,ADC0832测得的数值
//这两个变量觉得采集温度的速率,也就是说温度的刷新速率
u16flag_get_dac_time=0;
//----------------------变量初始化---------------------------------------