欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機電煮鍋控制程序 可控硅控制 功能很多
[打印本頁]
作者:
20190312
時間:
2019-4-11 11:01
標題:
單片機電煮鍋控制程序 可控硅控制 功能很多
自編的電水壺程序參考下,ESD-SFB-7P201與ESD-SFB-7P202開關面板
單片機源程序如下:
#include "../H/Function_Init.h"
#define LED_COM1 PB4//第一組LED公共端---共陽極 【大火、中火、小火、功能】
#define LED_COM2 PA1//第二組LED公共端---共陽極 【沸水、慢燉、蒸燜、開關】
#define LED_SEG1 PA7//中火、慢燉
#define LED_SEG2 PA6//小火、蒸燜
#define LED_SEG3 PA5//開關、功能
#define LED_SEG4 PB1//大火、沸水
#define CLOSE_DISP {LED_SEG1 = 1;LED_SEG2 = 1;LED_SEG3 =1;LED_SEG4 = 1;LED_COM1 = 0;LED_COM2 = 0;}//關顯示
/*
PB6 電壓檢測【220 110】---AIN13
PB5 過零檢測---AIN12
PB3 溫度檢測1---AIN10
PA3 溫度檢測2
PA4 可控硅控制腳
*/
#define Horizontal 0
#define Vertical 1
#define Pro_Attr Vertical
// 電煮鍋 蒸蛋
#define STATE_OFF 0//關機
#define B_FIRE 6//大火 --- 蛋羹
#define M_FIRE 5//中火 --- 全熟蛋
#define S_FIRE 4//小火 --- 溏心蛋
#define STEWING 1//蒸燜 --- 火鍋
#define S_STEW 2//慢燉 --- 燒開
#define B_WATER 3//沸水 --- 溫泉蛋
/*
------------------------------------------------------------------------------------------------
【蒸蛋機】
大火【蛋羹】 --- 首次96.5度持續保溫60S【功率要求:全功率】,98度持續60S【功率要求:300W】,96度持續420S【功率要求:300W】,98度持續300S【功率要求:300W】,95持續200S【功率要求:200W】
中火【全熟蛋】 --- 首次92度持續保溫35S【功率要求:首次在全電壓后轉100W保溫】,96.7度持續300S【功率要求:100W】
小火【溏心蛋】 --- 首次90度持續保溫30S【功率要求:首次在全電壓后轉100W保溫】,100度持續150S【功率要求:100W】
蒸燜【火鍋】 --- 到100度持續30S后轉,長期沸騰【功率要求:首次在全電壓后轉300W】
慢燉【燒開】 --- 首次98度3~12S內斷電開始保溫,保溫溫度范圍75~90【功率要求:100V 450W/220V 600W】
沸水【溫泉蛋】 --- 首次65度持續保溫5分鐘【功率要求:首次在全電壓后轉100W保溫】,69度持續3分鐘【功率要求:100W】,72度持續13分鐘【功率要求:100W】
------------------------------------------------------------------------------------------------
*/
const uint16 data_ad10[]={//12位AD 精度5.00/4096 = 0;根據電阻分壓,求出模擬值。
4018,4014,4010,4005,4000,3995,3990,3985,3979,3973,//-9~0
3967,3961,3954,3948,3941,//1~5
3933,3925,3917,3909,3900,//6~10
3891,3882,3872,3862,3851,//11~15
3840,3829,3817,3805,3793,//16~20
3779,3766,3752,3738,3723,//21~25
3708,3692,3676,3659,3642,//26~30
3625,3607,3588,3569,3550,//31~35
3530,3509,3488,3467,3445,//36~40
3422,3399,3376,3352,3328,//41~45
3303,3278,3252,3226,3199,//46~50
3172,3145,3117,3089,3060,//51~55
3031,3002,2972,2942,2912,//56~60
2881,2850,2819,2788,2756,//61~65
2724,2692,2659,2627,2595,//66~70
2561,2529,2496,2462,2429,//71~75
2396,2363,2329,2289,2263,//76~80
2229,2196,2163,2129,2096,//81~85
2063,2030,1997,1964,1931,//86~90
1899,1867,1835,1804,1772,//91~95
1741,1711,1680,1650,1621,//96~100
1591,1562,1534,1506,1478,//101~105
1450,1423,1397,1370,1344,//106~110
1319,1294,1269,1245,1221,//111~115
1197,1174,1151,1128,1106,//116~120
1084,1063,1042,1021,1000,//121~125
979,958,938,918,898,//126~130
879,860,842,824,806,//131~135
789,772,755,739,723,//136~140
708,693,678,664,649,//141~145
636,622,609,596,584//146~150
};
uint8 work_mode;//關機
uint8 blink;//呼吸標志
uint8 pwr_vol;//供電電壓
uint8 power;//工作功率
uint8 temperature;//當前溫度
uint8 step;//加熱步驟標志
uint8 temp_err;//溫度異常標志
uint8 stop_change;//停止變換
uint8 drift_max;
uint8 t98_max;
uint8 keyscan_enable;
#define T98_220MAX 80//
#define T98_100MAX 180//
void work_at_b_fire(void);
void work_at_m_fire(void);
void work_at_s_fire(void);
void work_at_stewing(void);
void work_at_s_stew(void);
void work_at_b_water(void);
/*****************************************************
*函數名稱:void ramClear(void)
*函數功能:RAM中數據全部清零
*入口參數:void
*返回值:void
*****************************************************/
void ramClear(void){
__asm{
CLR IAAL;
CLR IAAH;
CLR IAD;
INC IAAL,1;
JBS PSW,C
GOTO $-3;
INC IAAH,1;
JBS IAAH,2
GOTO $-6;
}
}
/*****************************************************
*函數名稱:void sysInit(void)
*函數功能:系統初始化
*入口參數:void
*返回值:void
*****************************************************/
void sysInit(void){//用戶需更改
ANSL =0xFF; //Set Digital port
ANSH =0xFF;
PWEN = 3; // 當BOREN使能時,軟件使能低電壓檢測復位;使能WDT內部RC時鐘
blink = 0;
work_mode = STATE_OFF;//B_FIRE STATE_OFF
temperature = 0;
pwr_vol = PWR_VOL_220AC;//PWR_VOL_220AC
power = PWR_STOP;//
step = 0;
temp_err = 0;
stop_change = 0;
drift_max = Drift_220V;
t98_max = T98_220MAX;
keyscan_enable = 0;
}
/*****************************************************
*函數名稱:void delay100ms(uint8 time)
*函數功能:延時100ms
*入口參數:time—時間計數,單位100ms
*返回值:void
*****************************************************/
void delay100ms(uint8 time){
uint8 i,j,k;
for (i=0; i<time; i++){
for (j=0; j<100; j++){
for (k=0; k<249; k++){
nop();
nop();
//nop();
clr_wdt();
}
}
}
}
/*****************************************************
*函數名稱:void display(void)
*函數功能:顯示函數
*入口參數:void
*返回值:void
*****************************************************/
void display(void){
//開關指示燈在關機狀態下常亮,開機工作狀態下,3s后熄滅
//功能指示燈在開機狀態和切換工作模式狀態時常亮,3s后熄滅
/*
#define LED_COM1 PB4//第一組LED公共端---共陽極 【大火、中火、小火、功能】
#define LED_COM2 PA1//第二組LED公共端---共陽極 【沸水、慢燉、蒸燜、開關】
#define LED_SEG1 PA7//中火、慢燉
#define LED_SEG2 PA6//小火、蒸燜
#define LED_SEG3 PA5//開關、功能
#define LED_SEG4 PB1//大火、沸水
目前:蛋羹1、全熟2、溏心3、火鍋4、燒開5、火鍋6
愚人:
1.豎排的排序:如圖,功能跳轉:默認火鍋,燒開、溫泉、溏心、全熟、蛋羹
愚人:
1.橫排的排序及功能跳轉:默認火鍋,燒開、溫泉、溏心、全熟、蛋羹
*/
static uint8 i = 0;
if(tick2 != 2){
return;
}
CLOSE_DISP
if(i == 0){
LED_COM1 = 1;
if(work_mode != STATE_OFF){
LED_SEG3 = 0;//功能指示燈只有在開機的時候才亮
}
switch(work_mode){
case B_FIRE://大火
if(blink < 6){//小于3s
if(blink%2){
if(Pro_Attr == Vertical){
LED_SEG4 = 0;
}else{
LED_SEG2 = 0;
}
}
}else{
if(blink%7 < 6){
if(Pro_Attr == Vertical){
LED_SEG4 = 0;
}else{
LED_SEG2 = 0;
}
}
}
break;
case M_FIRE://中火
if(blink < 6){//小于3s,
if(blink%2){
LED_SEG1 = 0;
}
}else{
if(blink%7 < 6){
LED_SEG1 = 0;
}
}
break;
case S_FIRE://小火
if(blink < 6){//小于3s,
if(blink%2){
if(Pro_Attr == Vertical){
LED_SEG2 = 0;
}else{
LED_SEG4 = 0;
}
}
}else{
if(blink%7 < 6){
if(Pro_Attr == Vertical){
LED_SEG2 = 0;
}else{
LED_SEG4 = 0;
}
}
}
break;
}
i = 1;
}else{
LED_COM2 = 1;
LED_SEG3 = 0;//開關指示燈永遠亮
switch(work_mode){
case STEWING://蒸燜
if(blink < 6){//小于3s,
if(blink%2){
LED_SEG2 = 0;
}
}else{
if(blink%7 < 6){
LED_SEG2 = 0;
}
}
break;
case S_STEW://慢燉
if(blink < 6){//小于3s
if(blink%2){
LED_SEG1 = 0;
}
}else{
if(blink%7 < 6){
LED_SEG1 = 0;
}
}
break;
case B_WATER://沸水
if(blink < 6){//小于3s
if(blink%2){
LED_SEG4 = 0;
}
}else{
if(blink%7 < 6){
LED_SEG4 = 0;
}
}
break;
}
i = 0;
}
}
/*****************************************************
*函數名稱:void keyScan(void)
*函數功能:工作 //TK_state 使用TK_state參數 對應按鍵狀態位 32bit 按下為1 松開為0
*入口參數:void //TK_state_single 使用TK_state_single參數 對應按鍵狀態位 32bit 按下為1 松開為0 僅一個按鍵有效
*返回值:void
*****************************************************/
void keyScan(void){
static uint8 record = 14,reset = 0;
uint8 tkey = 14;
if(keyscan_enable == 0){
return;
}
if(temp_err){//溫度傳感器異常,不能開機
work_mode = STATE_OFF;
return;
}
if((uint16)TK_state_single&0x1){
tkey = 7;
}else if((uint16)TK_state_single&0x2){
tkey = 9;
}
if(tkey != record){//如果此次按鍵值,與記錄的按鍵值不相同,開始計時,消抖
if(reset){
if(tk_cnt >= TK_CNT){//計時了20ms,觸發按鍵還是沒發生變化
reset = 0;
}else{
return;
}
}else{//重新計數
tk_cnt = 0;
reset = 1;
return;
}
}else{
return;
}
record = tkey;
if(blink > 6){
stop_change = 1;
}else{
blink = 0;
}
switch(tkey){
case 9://觸摸按鍵9 --- 功能按鍵
if((work_mode != STATE_OFF)&&(stop_change != 1)){
work_mode++;
if(work_mode > B_FIRE){
work_mode = STEWING;
}
}
break;
case 7://觸摸按鍵7--- 開關按鍵
if(work_mode != STATE_OFF){
work_mode = STATE_OFF;
blink = 7;//關機立刻刷新工作狀態
}else{
work_mode = STEWING;
blink = 0;
stop_change = 0;
}
break;
default://14
break;
}
}
/*****************************************************
*函數名稱:void stateMonitor(void)
*函數功能:檢測輸入電壓和過零檢測
*入口參數:void
*返回值:void
*****************************************************/
void stateMonitor(void){
uint16 val;
uint8 i;
//【AIN10---RT1溫度采集】【AIN12過零檢測 AIN13電壓檢測】
/*
示波器顯示:220VAC時,采樣點電壓最大值3.6V,最小值3.2V,平均值3.33V
220AC ---> 110DC 110V x [10 / (100+100+10+10)] - 1.4 = 3.6V
100AC ---> 50DC 50V x [10 / (100+100+10+10)] - 1.4 = 0.87V
綜上所述,以2V為分界點,大于2V為220VAC供電,小于2V為100VAC供電
分界采樣值a如下:4096 / 5 *2 = 1638 ===> 取1650即可
*/
//RT1溫度采集
static uint8 temp_old = 0,k = 0;
val = adcSimpling(AIN10);
for(i = 0;i < 160;i++){
if(val < data_ad10[i]){
continue;
}else{
break;
}
}
if(i < 10){//熱敏電阻短路故障 25===2045~2050
temperature = 0xe3;//0xe3
temp_err = 1;
}else if(i > 120){//熱敏電阻開路故障【干燒到110度】
temperature = 0xe3;//0xe2
temp_err = 1;
}else{
temperature = i - 9;//轉化溫度值
temp_old = temperature;
temp_err = 0;
}
if(temp_err){
if(k <= 100){
k++;
temperature = temp_old;
temp_err = 0;
}
}else{
k = 0;
}
//電壓檢測
if(tick1 != 1){
return;
}
if(adcSimpling(AIN13) > 1500){//1650
pwr_vol = PWR_VOL_220AC;//220VAC供電
drift_max = Drift_220V;
t98_max = T98_220MAX;
}else{
pwr_vol = PWR_VOL_100AC;//100VAC供電
drift_max = Drift_100V;
t98_max = T98_100MAX;
}
tick1 = 0;
}
/*****************************************************
*函數名稱:void outputCtrl(void)
*函數功能:輸出控制函數
*入口參數:void
*返回值:void
*****************************************************/
void outputCtrl(void){
/*
P = U*U/R;
加熱管220V 1800W
220V 600W【默認為全電壓、全功率】
100V 350W【默認為全電壓、全功率】
------------------------------------------------------------------------------------------------
【蒸蛋機】
大火【蛋羹】 --- 首次96.5度持續保溫60S【功率要求:全功率】,98度持續60S【功率要求:300W】,96度持續420S【功率要求:300W】,98度持續300S【功率要求:300W】,95持續200S【功率要求:300W】
中火【全熟蛋】 --- 首次92度持續保溫35S【功率要求:首次在全電壓后轉300W保溫】,96.7度持續300S【功率要求:300W】
小火【溏心蛋】 --- 首次90度持續保溫30S【功率要求:首次在全電壓后轉300W保溫】,100度持續150S【功率要求:300W】
蒸燜【火鍋】 --- 到100度持續30S后轉,長期沸騰【功率要求:首次在全電壓后轉300W】
慢燉【燒開】 --- 首次98度3~12S內斷電開始保溫,保溫溫度范圍75~90【功率要求:100V 350W/220V 600W】
沸水【溫泉蛋】 --- 首次65度持續保溫5分鐘【功率要求:首次在全電壓后轉200W保溫】,69度持續3分鐘【功率要求:200W】,72度持續13分鐘【功率要求200W】
【蒸蛋機】---功能修改2019-3-16
中火【全熟蛋】 --- 首次92度持續保溫35S【功率要求:首次分開二段,先全電壓維持40度1`2分鐘后轉350W,來確保冰箱蛋不被由于溫度驟升導致裂)后轉300W保溫】,96.7度持續300S【功率要求:300W】
小火【溏心蛋】 --- 首次90度持續保溫30S【功率要求:首次分開二段,先全電壓維持40度1`2分鐘后轉350W,來確保冰箱蛋不被由于溫度驟升導致裂)后轉300W保溫】,100度持續150S【功率要求:300W】
沸水【溫泉蛋】 --- 首次65度持續保溫5分鐘【功率要求:首次分開二段,先全電壓維持40度1`2分鐘后轉350W,來確保冰箱蛋不被由于溫度驟升導致裂)后轉200W保溫】,69度持續3分鐘【功率要求:200W】,72度持續13分鐘【功率要求200W】
【蒸蛋機】---功能修改2019-3-21
大火【蛋羹】 --- 1.首次96.5度持續保溫60S【1.全功率轉300W】,2.98度持續60S【2.350W】,3.96度持續420S【3.300W】,4.98度持續300S【4.350W】,5.95持續200S【5.300W】
中火【全熟蛋】 --- 1.首次分開二段,先全電壓維持40度1`2分鐘后轉350W到60度持續60S后轉300W到92度保溫35S,2.300W到96持續300S
小火【溏心蛋】 --- 1.首次分開二段,先全電壓維持40度1`2分鐘后轉350W到60度持續60S后350W到90度300W保溫30S,2.350W到100度持續150S
沸水【溫泉蛋】 --- 1.首次分開二段,先全電壓維持40度1`2分鐘后轉350W到67度后轉200W維持保溫5分鐘 2.200W 69度持續保溫3.5分鐘 3.200W 72度持續保溫14分鐘
------------------------------------------------------------------------------------------------
*/
static uint8 old_work_mode = 0;
if(blink > 6){//新的工作模式生效
if(old_work_mode != work_mode){
step = 0;//工作模式變過,操作步驟重新開始
old_work_mode = work_mode;
}
}
switch(old_work_mode){
case STATE_OFF://關機
power = PWR_STOP;
break;
case B_FIRE://大火【蛋羹】
work_at_b_fire();
break;
case M_FIRE://中火【全熟蛋】
work_at_m_fire();
break;
case S_FIRE://小火【溏心蛋】
work_at_s_fire();
break;
case STEWING://蒸燜【火鍋】
work_at_stewing();
break;
case S_STEW://慢燉【燒開】
work_at_s_stew();
break;
case B_WATER://沸水【溫泉蛋】
work_at_b_water();
break;
}
}
//===============================================================================
//全功率時,96度要減,98度不用減
//局部函數,工作在大火模式下
void work_at_b_fire(void){
//大火【蛋羹】 --- 1.首次96.5度持續保溫60S【1.全功率轉300W】,2.98度持續60S【2.350W】,3.96度持續420S【3.300W】,4.98度持續300S【4.350W】,5.95持續200S【5.300W】
if(step == 0){
if(temperature < (96 - 2)){//1.首次96.5度持續保溫60S【1.全功率轉300W】
power = PWR_ALL;
}else{
step = 1;
tickn = 0;
}
}else if(step == 1){
if(tickn < 60){
if(temperature < 96){
power = PWR_300W;
}else{
power = PWR_STOP;
}
}else{
step = 2;
}
}else if(step == 2){//2.98度持續60S【2.350W】
if(temperature < 98-2){
power = PWR_350W;
}else{
step = 3;
tickn = 0;
}
}else if(step == 3){
if(tickn < 60){
if(temperature < 98){
power = PWR_350W;
}else{
power = PWR_STOP;
}
}else{
step = 4;
}
}else if(step == 4){//3.96度持續420S【3.300W】
if(temperature > 96){
power = PWR_STOP;//一定要加
}else{
step = 5;
tickn = 0;
}
}else if(step == 5){
if(tickn < 420){
if(temperature < 96){
power = PWR_300W;
}else{
power = PWR_STOP;
}
}else{
step = 6;
}
}else if(step == 6){//4.98度持續300S【4.350W】
if(temperature < 98-2){
power = PWR_350W;
}else{
step = 7;
tickn = 0;
}
}else if(step == 7){
if(tickn < 300){
if(temperature < 98){
power = PWR_350W;
}else{
power = PWR_STOP;
}
}else{
step = 8;
}
}else if(step == 8){//5.95持續200S【5.300W】
if(temperature > 95){
power = PWR_STOP;//一定要加
}else{
step = 9;
tickn = 0;
}
}else if(step == 9){
if(tickn < 200){
if(temperature < 95){
power = PWR_300W;
}else{
power = PWR_STOP;
}
}else{
work_mode = STATE_OFF;//工作結束,關機
}
}
}
//局部函數,工作在中火模式下
void work_at_m_fire(void){
//中火【全熟蛋】 --- 1.首次分開二段,先全電壓維持40度1`2分鐘后轉350W到60度持續60S后轉300W到92度保溫35S,2.300W到96持續320S
if(step == 0){
if(temperature < 40){
power = PWR_ALL;
}else{
step = 1;
tickn = 0;
}
}else if(step == 1){
if(tickn < 120){
if(temperature < 40){
power = PWR_ALL;
}else{
power = PWR_STOP;
}
}else{
step = 2;
}
}else if(step == 2){
if(temperature < 60){
power = PWR_350W;
}else{
step = 3;
tickn = 0;
}
}else if(step == 3){
if(tickn < 60){
if(temperature < 60){
power = PWR_350W;
}else{
power = PWR_STOP;
}
}else{
step = 4;
}
}else if(step == 4){
if(temperature < 92){
power = PWR_300W;
}else{
step = 5;
tickn = 0;
}
}else if(step == 5){
if(tickn < 35){
if(temperature < 92){
power = PWR_300W;
}else{
power = PWR_STOP;
}
}else{
step = 6;
}
}else if(step == 6){
if(temperature < (97-2)){
power = PWR_300W;
}else{
step = 7;
tickn = 0;
}
}else if(step == 7){
if(tickn < 320){//
if(temperature < 97){
power = PWR_300W;
}else{
power = PWR_STOP;
}
}else{
work_mode = STATE_OFF;//工作結束,關機
}
}
}
//局部函數,工作在小火模式下
void work_at_s_fire(void){
//小火【溏心蛋】 --- 1.首次分開二段,先全電壓維持40度1`2分鐘后轉350W到60度持續60S后350W到90度300W保溫30S,2.350W到100度持續130S
if(step == 0){
if(temperature < 40){
power = PWR_ALL;
}else{
step = 1;
tickn = 0;
}
}else if(step == 1){
if(tickn < 120){
if(temperature < 40){
power = PWR_ALL;
}else{
power = PWR_STOP;
}
}else{
step = 2;
}
}else if(step == 2){
if(temperature < 60){
power = PWR_350W;
}else{
step = 3;
tickn = 0;
}
}else if(step == 3){
if(tickn < 60){
if(temperature < 60){
power = PWR_350W;
}else{
power = PWR_STOP;
}
}else{
step = 4;
}
}else if(step == 4){
if(temperature < 90){
power = PWR_350W;
}else{
step = 5;
tickn = 0;
}
}else if(step == 5){
if(tickn < 30){
if(temperature < 90){
power = PWR_300W;
}else{
power = PWR_STOP;
}
}else{
step = 6;
}
}else if(step == 6){
if(temperature < (100 - 4)){
power = PWR_350W;
}else{
step = 7;
tickn = 0;
}
}else if(step == 7){
if(tickn < 130){
if(temperature < 100){
power = PWR_350W;
}else{
power = PWR_STOP;
}
}else{
work_mode = STATE_OFF;//工作結束,關機
}
}
}
//局部函數,工作在蒸燜模式下
void work_at_stewing(void){
//蒸燜【火鍋】 --- 到100度持續30S后轉,長期沸騰【功率要求:首次在全電壓后轉300W】
if(step == 0){
if(temperature < (100 - 3)){//首次小于100度
power = PWR_ALL;//全功率加熱
}else{
step = 1;//到了100度,進入下一步,進行保溫
tickn = 0;//100度持續,計時30s
}
}else if(step == 1){//到100度持續30S后轉,長期沸騰【功率要求:首次在全電壓后轉300W】
if(tickn < 30){//100度持續30s時間未到
power = PWR_ALL;//全功率加熱
}else{//100度持續30s時間到,進入下一步
step = 2;//長期沸騰
}
}else if(step == 2){//300W,長期沸騰
//300W加熱
power = PWR_300W;//
}
}
//局部函數,工作在慢燉模式下
void work_at_s_stew(void){
//慢燉【燒開】 --- 首次98度3~12S內斷電開始保溫,保溫溫度范圍75~90【功率要求:100V 350W/220V 600W】
static uint8 heat = 0;
if(step == 0){
if(temperature < 90){
power = PWR_ALL;//全功率加熱
}else{
step = 1;//到了90度,進入下一步
tickn = 0;//90度,計時
}
}else if(step == 1){
if((temperature < (98-1))&&(tickn < t98_max)){//首次98度3~12S內斷電
power = PWR_ALL;//全功率加熱
}else{
step = 2;//到了98度,進入下一步
tickn = 0;//98度持續,3~12S內斷電
}
}else if(step == 2){
if(tickn < 12){//3~12S內斷電
if(temperature < 98){//首次98度3~12S內斷電
power = PWR_ALL;//全功率加熱
}else{
power = PWR_STOP;
}
}else{
power = PWR_STOP;
step = 3;//到了3~12s,進入下一步,保溫,保溫溫度范圍75~90
heat = 0;
}
}else if(step == 3){
if(temperature < (75 + 2)){
heat = 1;
}
if(temperature > (90 - 2)){
heat = 0;
}
if(heat){//溫度不在保溫范圍內,需要加熱
power = PWR_ALL;//全功率加熱
}else{
power = PWR_STOP;
}
}
}
//局部函數,工作在沸水模式下
void work_at_b_water(void){
//沸水【溫泉蛋】 --- 1.首次分開二段,先全電壓維持40度1`2分鐘后轉350W到67度后轉200W維持保溫5分鐘 2.200W 69度持續保溫3.5分鐘 3.200W 72度持續保溫14分鐘
if(step == 0){
if(temperature < 40){
power = PWR_ALL;
}else{
step = 1;
tickn = 0;
}
}else if(step == 1){
if(tickn < 120){
if(temperature < 40){
power = PWR_ALL;
}else{
power = PWR_STOP;
}
}else{
step = 2;
}
}else if(step == 2){
if(temperature < 67){
power = PWR_350W;
}else{
step = 3;
tickn = 0;
}
}else if(step == 3){
if(tickn < 300){
if(temperature < 67){
power = PWR_200W;
}else{
power = PWR_STOP;
}
}else{
step = 4;
}
}else if(step == 4){
if(temperature < 69){
power = PWR_200W;
}else{
step = 5;
tickn = 0;
}
}else if(step == 5){
if(tickn < 210){
if(temperature < 69){
power = PWR_200W;
}else{
power = PWR_STOP;
}
}else{
step = 6;
}
}else if(step == 6){
if(temperature < 72){
power = PWR_200W;
}else{
step = 7;
tickn = 0;
}
}else if(step == 7){
if(tickn < 840){
if(temperature < 72){
power = PWR_200W;
}else{
power = PWR_STOP;
}
}else{
work_mode = STATE_OFF;//工作結束,關機
}
}
}
/*****************************************************
*函數名稱:void Customer_Keystatejustpress(void)
*函數功能:觸控任意通道被剛剛檢測到按下狀態
*入口參數:void
*返回值:void
*****************************************************/
void Customer_Keystatejustpress(void){ //TK_state was just freshed you can use the parameter as you want 輸出值: TK_state
}
/*****************************************************
*函數名稱:void Customer_Keystatejustrelease(void)
*函數功能:觸控任意通道被剛剛檢測到釋放
*入口參數:void
*返回值:void
*****************************************************/
void Customer_Keystatejustrelease(void){ //TK_state was just freshed you can use the parameter as you want 輸出值: TK_state
}
復制代碼
/*********************************************************************************
適用于ESD-SFB-7P201與ESD-SFB-7P202開關面板
**********************************************************************************/
#include "./H/Function_Init.h"
/*****************************************************
*函數名稱:void main(void)
*函數功能:主函數
*參數:void
*返回值:void
*****************************************************/
void main(void){
ramClear();
sysInit();//Customer need change
delay100ms(1);
ioInit();
adcInit();
dateInit();
timerInit();
itVectorsInit();
TKInit();
GIE = 1;
Tk_getbaselinedata();//初始化基線
while(!(tick2 == 2));//芯片配置字中的看么狗沒有使能
while(1){
clr_wdt();//清看門狗
Tk_service();
Timer_check();//Check if 10ms tick
keyScan();
stateMonitor();
outputCtrl();
}
}
復制代碼
所有資料51hei提供下載:
test.7z
(594.05 KB, 下載次數: 63)
2019-4-11 19:40 上傳
點擊文件名下載附件
電水壺
下載積分: 黑幣 -5
作者:
admin
時間:
2019-4-11 19:44
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1