📄 main.c.bak
字号:
goto XsData;
}
if((KEY_P15_7P[0] <= X_Zb) && (X_Zb <= KEY_P15_7P[2]) && (Y_Zb <=KEY_P15_7P[1])&&(KEY_P15_7P[3]<= Y_Zb))
{
a = a * 10 + 7;
goto XsData;
}
if((KEY_P15_8P[0] <= X_Zb) && (X_Zb <= KEY_P15_8P[2]) && (Y_Zb <=KEY_P15_8P[1])&&(KEY_P15_8P[3]<= Y_Zb))
{
a = a * 10 + 8;
goto XsData;
}
if((KEY_P15_9P[0] <= X_Zb) && (X_Zb <= KEY_P15_9P[2]) && (Y_Zb <=KEY_P15_9P[1])&&(KEY_P15_9P[3]<= Y_Zb))
{
a = a * 10 + 9;
goto XsData;
}
}
if((KEY_P15_0P[0] <= X_Zb) && (X_Zb <= KEY_P15_0P[2]) && (Y_Zb <=KEY_P15_0P[1])&&(KEY_P15_0P[3]<= Y_Zb))
{
a = a * 10 + 0;
goto XsData;
}
}
if((KEY_P15_cP[0] <= X_Zb) && (X_Zb <= KEY_P15_cP[2]) && (Y_Zb <=KEY_P15_cP[1])&&(KEY_P15_cP[3]<= Y_Zb))
{
a = a / 10 ;
goto XsData;
}
if((KEY_P15_qP[0] <= X_Zb) && (X_Zb <= KEY_P15_qP[2]) && (Y_Zb <=KEY_P15_qP[1])&&(KEY_P15_qP[3]<= Y_Zb))
*b = a;
goto loop15;
XsData: Return_Point();
Move_Point(5,8);
Clear_Data(Point_Kong,5);
if( a != 0)
{
utoa(a,Point_Date,10);
w = strnlen(Point_Date,10);
Return_Point();
Move_Point(5,8);
Disp_Date(Point_Date,w);
}
goto loop15;
//
over: Flag_Rec = OFF;
}
//************OPEN_ONE MIN************************
void Open_One_Min(void)
{
TCCR0 = _BV(CS02) | _BV(CS01) | _BV(CS00);
TCNT0 = 0;
TIMSK = _BV(TOIE0);
}
//************CLOSE ONE MIN**************
void Close_One_Min(void)
{
TCCR0 = 0;
TCNT0 = 0;
TIMSK = 0;
}
//************ONE TIME OVER**************
static uchar Flag_ONE = OFF;
static uint Count = 0;
static uint GS=0;
SIGNAL( SIG_OVERFLOW0 )
{
if( ++Count < 1688 )
{
GS ++;
if( GS > 280)
{
GS = 0;
Send_byte(0X2A);
}
}
else
{
Flag_ONE = ON;
Count = 0;
}
}
//*********FIX Second 计算器***********************
SIGNAL( SIG_OVERFLOW2 )
{
if( JINYU < Fix_Time)
{
if( ++GS_1S > 28 )
{
GS_1S = 0;
JINYU ++;
DD ++;
AAA1 ++;
}
}
else
{
JINYU = 0;
Flag_1S = ON;
}
}
//*******Time 2*************************
void Open_Fix_Second()
{
TCCR2 = _BV(CS22) | _BV(CS20);
TCNT2 = 0;
TIMSK = _BV(TOIE2);
JINYU = 0;
Flag_1S = OFF;
}
//*********************************
void Close_Fix_Second()
{
TCCR2 = 0;
TCNT2 = 0;
TIMSK = 0;
JINYU = 0;
Flag_1S = OFF;
}
//*********************************
//*********FIX MIN 计算器***********************
static uchar JINYU1 = 0;
static uchar GG=0;
SIGNAL( SIG_OVERFLOW1 )
{
if( JINYU1 < Fix_Time)
{
if( ++GS_1M > 10 )
{
GS_1M = 0;
JINYU1 ++;
GG ++;
}
TCNT1 = 0x573F;
}
else
{
JINYU1 = 0;
Flag_1M = ON;
}
}
//*******Time 1*************************
void Open_Fix_Min()
{
TCCR1B = _BV(CS12) | _BV(CS10);
TCNT1 = 0x573F; //6S中断一次
TIMSK = _BV(TOIE1);
Flag_1M = OFF;
}
//****************************************
void Close_Fix_Min()
{
TCCR1B = 0;
TCNT1 = 0;
TIMSK &= ~_BV(TOIE1);
Flag_1M = OFF;
}
//********显示压力*********
void Disp_Press(uchar a,uchar b )
{
uchar i;
for(i=0;i<8;i++)
{
Press_Mid[i] = PRESS_RX[4+i];
}
Press_Data = strtod(Press_Mid,0);
WWW = Press_Data * 10;
WWW = WWW / 10;
WWW1 = 0;
// utoa( WWW,Point_Date,10);
if( Press_Data<1 )
{
Press_Data *= 1000;
WWW1 = Press_Data;
Return_Point();
Move_Point(a,b+6 );
Disp_Date(Point_Kong,2);
Send_byte(0x6d);
Send_byte(0x54);
}
else
{
Return_Point();
Move_Point(a,b+6);
Disp_Date(Point_Kong,2);
Send_byte(0x20);
Send_byte(0x54);
}
dtostrf(Press_Data,4,2,Point_Date);
i = 4;
Return_Point();
Move_Point(a,b);
Disp_Date(Point_Kong,i);
Return_Point();
Move_Point(a,b);
Disp_Date(Point_Date,i);
}
//*******************************************
void Write_Flow(uchar *p,uchar len)
{
Sc16_Tx_A_OPEN;
Fa_A( p,len);
}
//***********写流量 Rat***********
void Write_Flow_Rat(void)
{
uchar a;
Flow_Ret = ( Fix_Flow * 64000)/100;
utoa(Flow_Ret,Flow_MID,10);
a = strnlen(Flow_MID,10);
Sc16_Tx_A_OPEN;
Sc16_Tx_A_byte('A');
Fa_A( Flow_MID,a);
Fa_A( W_Enter,1 );
}
//***********写流量 Rat=0*********
void Write_Flow_Rat_0(void)
{
uchar a;
Flow_Ret = 0;
utoa(Flow_Ret,Flow_MID,10);
a = strnlen(Flow_MID,10);
Sc16_Tx_A_OPEN;
Sc16_Tx_A_byte('A');
Fa_A( Flow_MID,a);
Fa_A( W_Enter,1 );
}
//***********写流量 P************
void Write_Flow_P(void)
{
uchar a;
utoa(Fix_P,W_PD_MID,10);
a = strnlen(W_PD_MID,10);
Sc16_Tx_A_OPEN;
Fa_A( W_P_21,5);
Fa_A( W_PD_MID,a);
Fa_A( W_Enter,1 );
}
//***********写流量 D************
void Write_Flow_D(void)
{
uchar a;
utoa(Fix_D,W_PD_MID,10);
a = strnlen(W_PD_MID,10);
Sc16_Tx_A_OPEN;
Fa_A( W_D_22,5);
Fa_A( W_PD_MID,a);
Fa_A( W_Enter,1 );
}
//***********读*流量***********************
void Read_Flow( uchar len )
{
Sc16_Rx_A_OPEN;
Flag_ReA = OFF;
Flag_Gf= 0;
Re_PA = 0;
DelayMs(300);
//while( Re_PA < len );
//Flag_ReA = ON;
if( Re_PA > len )
{
Flag_Gf = 1;
Flag_ReA = ON;
}
else
{
Flag_Gf = 0;
}
}
//********显示 流量******************
void Disp_Flow(uchar a,uchar b)
{
uchar i;
Sc16_Tx_A_OPEN;
Fa_A( W_RBS,2);
Read_Flow(40);
if( Flag_Gf == 1 )
{
for(i=0;i<7;i++)
{
Flow_MID[i] = Re_Sc16A[26+i];//[18+i];
}
//********************
Return_Point();
Move_Point(a,b+8 );
//Disp_Date(Point_Kong,2);
Send_byte(0x53);
Send_byte(0x43);
Send_byte(0x43);
Send_byte(0x4d);
//********************
Return_Point();
Move_Point(a,b);
Disp_Date(Point_Kong,7);
Return_Point();
Move_Point(a,b);
Disp_Date(Flow_MID,7);
}
}
//*******************************************
void Write_Value(uchar *p,uchar len )
{
Sc16_Tx_B_OPEN;
Fa_B( p,len);
}
//*******************************************
void Read_Value(uchar len )
{
Sc16_Tx_B_OPEN;
Re_PB = 0;
while( Re_PB < len );
Sc16_Tx_B_OPEN;
}
//********写 Plump 的设置点******************
void Write_Plump_SetPoint(void)
{
Valve =(float) Fix_Press/1000;//加/1000
Valve = 1+(log10( Valve * 10000));
Valve *= 10;
dtostrf(Valve,4,1,Point_Date);
// Write_Value(Plump_Open,2);
// DelayMs(600);
Write_Value(Plump_Set_Point,2);
Write_Value(Point_Date,4);
Write_Value(Plump_End,1);
}
//*************开阀**************************
void Write_Plump_SetPoint_1(void)
{
Valve = 1;
dtostrf(Valve,4,1,Point_Date);
Write_Value(Plump_Set_Point,2);
Write_Value(Point_Date,4);
Write_Value(Plump_End,1);
}
//*************关阀******************************
void Write_Plump_SetPoint_8(void)
{
Valve = 80;
dtostrf(Valve,4,1,Point_Date);
// Write_Value(Plump_Open,2);
// DelayMs(600);
Write_Value(Plump_Set_Point,2);
Write_Value(Point_Date,4);
Write_Value(Plump_End,1);
}
//*******************************************
void Write_Plum_P(void)
{
Valve =Fix_18_P;
dtostrf(Valve,4,1,Point_Date);
Write_Value(Plump_P,1);
Write_Value(Point_Date,4);
Write_Value(Plump_End,1);
}
//*******************************************
void Write_Plum_P90(void)
{
Valve =90;
dtostrf(Valve,4,1,Point_Date);
Write_Value(Plump_P,1);
Write_Value(Point_Date,4);
Write_Value(Plump_End,1);
}
//*******************************************
void Write_Plum_D(void)
{
Valve = Fix_18_D;
dtostrf(Valve,4,1,Point_Date);
Write_Value(Plump_D,1);
Write_Value(Point_Date,4);
Write_Value(Plump_End,1);
}
//*******开电源************************************
void Open_Power(void)
{
sbi(PORTF,PF0);
}
//*******关电源************************************
void Close_Power(void)
{
cbi( PORTF,PF0);
}
//*******************************************
void Open_Window(void)
{
sbi(PORTF,PF1);
}
//*******************************************
void Close_Window(void)
{
cbi( PORTF,PF1);
}
//*******************************************
uchar Flag_Time3= OFF;
SIGNAL( SIG_OVERFLOW3 )
{
TCNT3 = 0xE3DF;
Flag_Time3 = ON;
}
//*******************************************
void Open_Time3(void)
{
TCCR3B = _BV(CS12) | _BV(CS10);
TCNT3 = 0xC7BF; //2S中断一次
ETIMSK = _BV(TOIE3);
Flag_Time3 = OFF;
}
//*******************************************
void Close_Time3(void)
{
TCCR3B = 0;
TCNT3 = 0;
ETIMSK = 0;
Flag_Time3 = OFF;
}
//*******************************************
void GONGF(void)
{
sei();
Close_Power();
Close_Window();
Write_Flow_Rat_0();
DelayMs(6);
Write_Plump_SetPoint_1();
DelayMs(6);
}
//********主程序***********************************
int main()
{
int W1;
uint16_t Buff=0;
uchar a;
uchar bb=0;
//****************************************
MCUCR = 0xc0;
Uart0_Init();
Uart1_Init();
Sc16_Init();
LCD_Init();
DDRF = 0XFF;
PORTF = 0;
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
sei();
Write_Flow(W_One,5); //定义 Flow is A;
Close_Window();
cli();
//*****STEP-1*****************************
eeprom_busy_wait();
W1 = eeprom_read_word(10);
eeprom_busy_wait();
if(W1 != 1)
{
eeprom_busy_wait();
eeprom_write_word(10,1);
eeprom_busy_wait();
//%%%%%%%%%%屏6%%%%%%%%%%%%%%%%%%%
eeprom_write_word(20,45); //Fix_Flow
eeprom_busy_wait();
eeprom_write_word(22,388); //Fix_Press
eeprom_busy_wait();
eeprom_write_word(24,20); //Fix_Time
//%%%%%%%%%%%屏17&&&&&&&&&&&&&&%%%
eeprom_busy_wait();
eeprom_write_word(30,200); //Fix_P
eeprom_busy_wait();
eeprom_write_word(32,500); //Fix_D
eeprom_busy_wait();
//%%%%%%%%%%%%屏18&&&&&&&&&&&&&&&&
eeprom_write_word(40,100); //Fix_18_Press
eeprom_busy_wait();
eeprom_write_word(42,12); //Fix_18_P
eeprom_busy_wait();
eeprom_write_word(44,5); //Fix_18_D
eeprom_busy_wait();
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sei();
goto Pin_2;
}
cli();
Disp_Pin(1);
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
eeprom_busy_wait();
Fix_Flow = eeprom_read_word(20);
eeprom_busy_wait();
Fix_Press = eeprom_read_word(22);
eeprom_busy_wait();
Fix_Time = eeprom_read_word(24);
eeprom_busy_wait();
Fix_P = eeprom_read_word(30);
eeprom_busy_wait();
Fix_D = eeprom_read_word(32);
eeprom_busy_wait();
Fix_18_Press = eeprom_read_word(40);
eeprom_busy_wait();
Fix_18_P = eeprom_read_word(42);
eeprom_busy_wait();
Fix_18_D = eeprom_read_word(44);
Read_Eeprom();
STAR: ratio_x = (float)(touch_rightbottom_x - touch_lefttop_x) / 320;
ratio_y = (float)(touch_rightbottom_y - touch_lefttop_y) / 240;
Key_Wz();
DelayMs(6000);
//*************STEP-2**********************
Pin_4: Disp_Pin(4);
sei();
Close_Power();
Close_Window();
RxLen = 0;
Flag_Rec = OFF;
loop1: while( Flag_Rec == OFF);
RxLen = 0;
Flag_Rec = OFF;
Asc_Dig();
if((KEY_LEFT_P[0] <= X_Zb) && (X_Zb <= KEY_LEFT_P[2]) && (Y_Zb <=KEY_LEFT_P[1])&&(KEY_LEFT_P[3]<= Y_Zb))
goto Pin_16;
if((KEY_RIGH_P[0] <= X_Zb) && (X_Zb <= KEY_RIGH_P[2]) && (Y_Zb <=KEY_RIGH_P[1])&&(KEY_RIGH_P[3]<= Y_Zb))
{
cli();
eeprom_busy_wait();
eeprom_write_word(20,Fix_Flow); //Fix_Flow
eeprom_busy_wait();
eeprom_write_word(22,Fix_Press); //Fix_Press
eeprom_busy_wait();
eeprom_write_word(24,Fix_Time); //Fix_Time
//
eeprom_busy_wait();
eeprom_write_word(30,Fix_P); //Fix_P
eeprom_busy_wait();
eeprom_write_word(32,Fix_D); //Fix_D
eeprom_busy_wait();
//
eeprom_write_word(40,Fix_18_Press); //Fix_18_Press
eeprom_busy_wait();
eeprom_write_word(42,Fix_18_P); //Fix_18_P
eeprom_busy_wait();
eeprom_write_word(44,Fix_18_D); //Fix_18_D
eeprom_busy_wait();
eeprom_busy_wait();
DelayMs(60);
eeprom_busy_wait();
sei();
goto Pin_5;
}
goto loop1;
//*************STEP-3***********************
Pin_16: Disp_Pin(16);
RxLen = 0;
loop2: Flag_Rec = OFF;
while(Flag_Rec == OFF);
Asc_Dig();
if((KEY_P16_1P[0] <= X_Zb) && (X_Zb <= KEY_P16_1P[2]) && (Y_Zb <=KEY_P16_1P[1])&&(KEY_P16_1P[3]<= Y_Zb))
goto Pin_2;
if((KEY_P16_2P[0] <= X_Zb) && (X_Zb <= KEY_P16_2P[2]) && (Y_Zb <=KEY_P16_2P[1])&&(KEY_P16_2P[3]<= Y_Zb))
goto Pin_6;
if((KEY_P16_3P[0] <= X_Zb) && (X_Zb <= KEY_P16_3P[2]) && (Y_Zb <=KEY_P16_3P[1])&&(KEY_P16_3P[3]<= Y_Zb))
goto Pin_17;
if((KEY_LEFT_P[0] <= X_Zb) && (X_Zb <= KEY_LEFT_P[2]) && (Y_Zb <=KEY_LEFT_P[1])&&(KEY_LEFT_P[3]<= Y_Zb))
goto Pin_4;
goto loop2;
//***************************
Pin_2: Disp_Pin(2);
Flag_Rec = OFF;
RxLen = 0;
while( Flag_Rec == OFF );
Asc_Dig();
touch_lefttop_x = X_Zb;
touch_lefttop_y = Y_Zb;
Flag_Rec = OFF;
Disp_Pin(3);
while( Flag_Rec == OFF );
Asc_Dig();
touch_rightbottom_x = X_Zb;
touch_rightbottom_y = Y_Zb;
//********EEprom write******
cli();
Disp_Pin(1);
eeprom_busy_wait();
eeprom_write_word(0,touch_lefttop_x);
eeprom_busy_wait();
eeprom_write_word(2,touch_lefttop_y);
eeprom_busy_wait();
eeprom_write_word(4,touch_rightbottom_x);
eeprom_busy_wait();
eeprom_write_word(6,touch_rightbottom_y);
eeprom_busy_wait();
DelayMs(60);
eeprom_busy_wait();
goto STAR;
//**************************
Pin_5: Disp_Pin(20);
Flag_Rec = ON;
RxLen = 0;
Write_Flow_Rat_0();
Write_Plum_P();
Write_Plum_D();
Open_Window();
Open_Time3();
Brush5: PRESS_Write(PRESS_TX,6);
asm("nop");
if( Flag_ZD == ON)
{
Flag_ZD = OFF;
Disp_Press(7,12);
if( WWW > 750)
{
Close_Time3();
goto Pin_14;
}
}
loop5: Flag_Rec = OFF;
RxLen = 0;
while(Flag_Rec == OFF)
{
if(Flag_Time3 == ON)
{
Flag_Time3 = OFF;
goto Brush5;
}
}
Asc_Dig();
if((KEY_LEFT_P[0] <= X_Zb) && (X_Zb <= KEY_LEFT_P[2]) && (Y_Zb <=KEY_LEFT_P[1])&&(KEY_LEFT_P[3]<= Y_Zb))
{
Close_Time3();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -