📄 waterctrl4-wdt.c
字号:
{
loopcnt = 0;
timerscnt++;
}
if(timerscnt &0x4f)
{
timerscnt ++;
carderrorbyte=CheckCardIsMove();
if(carderrorbyte!=0x01) //card been remove
{
KEYDOWNDS;
KEYUPDS;
goto tillit1;
}
ReflashLcdTimeDpy(1);
}
if(timerscnt==50) //one page display
{
timerscnt ++;
ClearNumDpy(1,1);
DPY_SDZorDJ_Num(SheDSL,0x01);
}
if(timerscnt==100 )
{
timerscnt ++;
ClearNumDpy(4,4);
if(systemflag2&0x10) //display YaLi Volt
{
DPY_YaLi();
systemflag2 &= 0xef;
}
else
{
systemflag2 |= 0x10;
DPY_Volt();
}
systemflag3 &= 0xf7;
}
if(timerscnt==150) //two page display
{
timerscnt ++;
ClearNumDpy(1,1),
DPY_SDZorDJ_Num(DanJ,0x00);
}
if(timerscnt==200 )
{
timerscnt =0;
ClearNumDpy(4,4); //
DPY_LJSLorRQ_Num(LieJSL,1);
}
if(systemflag2&0x08)
{
systemflag &= 0xf7;
KEYDOWNDS;
KEYUPDS;
RevBuffer[0] = 0;
RevBuffer[1] = 5;
RevBuffer[2] = 0;
BCDBytesAdd(SheDSL,RevBuffer,3);
ClearNumDpy(1,1); //display SheDinLiang
DPY_SDZorDJ_Num(SheDSL,0x01);
goto gonogetwater;
}
}
}
else
{ tillit1:
ClearNumDpy(0,0);
Wr1BCDNumToLcd(23,0); //C
Wr1BCDNumToLcd(22,1); //a
Wr1BCDNumToLcd(24,2); //r
Wr1BCDNumToLcd(13,3); //d
Wr1BCDNumToLcd(19,4); //-
Wr1BCDNumToLcd(0,5); //o
Wr1BCDNumToLcd(25,6); //u
Wr1BCDNumToLcd(31,7); //t Wr1BCDNumToLcd(31,7); //t
}
ClearNumDpy(4,4);
DPY_LJSLorRQ_Num(LieJSL,1);
ReflashLcdTimeDpy(1);
tillit2:
if(carderrorbyte != 1)
{
if(carderrorbyte != 0x22)
{
DYP_Failure_Flg();
ClearNumDpy(1,1);
DisplayErrCode(carderrorbyte);
carderrorbyte = 0;
}
}
FM1702PWROFF;
Delay10KTCYx(255); // 0.16s
Delay10KTCYx(255); // 0.16s
Delay10KTCYx(220); // 0.16s
WRITE_E2PROM(LieJSL,LieJiShuiLiangADD,5,0);
for(systemtemp=6;systemtemp>0;systemtemp--)
{
ClearNumDpy(0,0);
ClearNumDpy(2,2);
ClearNumDpy(3,3);
ReflashLcdTimeDpy(1);
Delay10KTCYx(150); // 0.16s
DPY_Card_YLorJE_Num(CardYE);
DPY_SLorJE_Num(YongSL,0);
DPY_SLorJE_Num(YongJE,1);
ReflashLcdTimeDpy(1);
Delay10KTCYx(150); // 0.16s
}
ClearNumDpy(0,0);
Wr1BCDNumToLcd(0,1);
Wr1BCDNumToLcd(25,2);
Wr1BCDNumToLcd(14,3);
Wr1BCDNumToLcd(10,4);
Delay10KTCYx(0);
Delay10KTCYx(0);
ClearNumDpy(0,0);
ClearNumDpy(1,1);
ClearNumDpy(2,2);
ClearNumDpy(3,3);
ClearNumDpy(4,4);
ClearNumDpy(5,5);
LEDCTRL = 0; //CLOSE BACK LED LIGHT
UnDYP_CardOn_Flg();
UnDPY_Failure_Flg();
Dsdisplay();
TURNADOFF;
ADPWROFF;
systemflag |= 0x10; //set flag to note
CLOUT1;
CLOUT2;
SIN1INTDS;
SIN2INTDS;
CLR_INT0F;
CLR_INT1F;
KEYSELDS;
KEYONOFFDS;
KEYDOWNDS;
KEYUPDS;
break;
}
}
}
//-------------------------------------save user note and error manage
if(systemflag & 0x10)
{
systemflag &= 0xef;
WeOneCnToE2();
systemflag4 |= 0x08;
}
//-------------------------------------recevice whole frame from RS485?
if(systemflag & 0x40)//
{
systemflag &= 0xbf;
}
//------------------------------------is velev close??
if(systemflag4 & 0x08)
{
systemflag4 &= 0xf7;
if(VELSTAOPIN)
{
CLVEL;
while(VELSTAOPIN);
RSTVEL;
OPVEL;
Delay10KTCYx(10);
RSTVEL;
}
systemflag3 |= 0x01;
}
//-----------------------------------go to sleep
if(systemflag3 &= 0x01)
{
systemflag3 &= 0xfe;
KEYUPDS;
KEYDOWNEN;
KEYONOFFDS;
KEYSELDS;
countWTRCNT = 0;
Sleep();
}
//------------------------------------------------------
}
}
//*****************************************************************//
//Name :InitialPort
//Input :void
//Output :void
//Function :This function initialize all mcu i/oport
//D.R.P :QiuHao
//Date :06.06.05
//*****************************************************************//
void InitializeSystem(void)
{
INTCONbits.GIE=0;
INTCONbits.PEIE = 0;
//--------------------Close COMPARTOR MOUDLE
CMCON = 0xff;
CVRCON = 0x00;
//-----------------------FM1702 Using I/O Port
/* DS1302 */
SETDSCLK;
SETDSRST;
SETDSDA;
/* AT24C1024 */
SETE2WP;
SETE2CLK;
SETE2DA;
/* MOTOR DREVIC */
SETCLOSE;
SETOPEN;
SETVELSTAOP;
SETVELSTACL;
SETMTRDET_ANIN;
/* SIN1~3 */
SETSIN1;
SETSIN2;
SETSIN3;
SETSOUT1;
SETSOUT2;
SETSOUT3;
/* USER KEY */
SETKEYDOWN;
SETKEYUP;
SETKEYONOFF;
SETKEYSEL;
KEYONOFFDS ;
KEYSELDS;
KEYUPDS;
KEYDOWNDS;
SETKBINT;
/* HT1623 LCD DISPLAY */
SETLEDCTRL ;
SETLCDCS;
SETLCDRD;
SETLCDRW;
SETLCDDA;
/* FM1702 R/W CARD DEVICE */
SETHQCCLK;
SETHQCMN;
SETHQCDI;
SETHQCDO;
SETHQCRST;
SETHQCPWRCTRL;
DSFM1702IO;
/* TC35i R/T SMS DEVICE */
SETGSMPWRCTRL;
SETPD;
SETIGT;
SETDTETXD;
SETDTERXD;
/* buzzer */
SETBZ;
/* PRESSURE DETECT */
SETYLDET_ANIN;
SETYLPWRCTRL;
/* UART1 */
SETTXD1;
SETRXD1;
DSUART1485IO;
/* SOLAD battery charge up CONTRL */
SETCDCTRL;
/* Power Voltage detect */
SETPWRDET_ANIN;
/* SOLAD battery Voltage detect */
SETSPWRDET_ANIN;
/* Temputer detect */
SETTEMPUTERDET_ANIN;
/* Temputer2 detect */
SETTEMPUTER2DET_ANIN;
//-----------------------Pic18f6720 device
/* A/D Conversion Setting */
ADCON0bits.ADON = 0; //close AD moudule
PIE1bits.ADIE = 0; //disable AD Interrupt
ADCON1bits.VCFG1 = 0; //use vcc and vss for Vref
ADCON1bits.VCFG0 = 0;
ADCON1bits.PCFG3 = 1; //AN0~AN6 available
ADCON1bits.PCFG2 = 0;
ADCON1bits.PCFG1 = 0;
ADCON1bits.PCFG0 = 0;
// ADCON2 bits.ADCS2 = 1; //4uS a bit
ADCON2bits.ADCS1 = 1;
ADCON2bits.ADCS0 = 0;
/* close o/i */
SETSIN3OUT;
SIN3INTDS;
SIN3OUT=0;
SOUT3OUT = 0;
// PDOUT = 0;
// IGTOUT = 0;
// DTETXDOUT = 0;
// DDRGbits.RG1 = 0;
// DTERXDOUT = 0;
// BZOUT = 0;
// SETTXD1OUT;
// TXD1OUT = 0;
// DDRCbits.RC7 = 0;
// RXD1OUT = 0;
// HWPWCTRL = 0;
// RS485RT = 0 ;
// HW38KOUT = 0;
/* UART1 for infrared ray */
/*
SPBRG1 = 207; //1.2Kbit/s
//Sent mode
TXSTA1bits.SYNC = 0; //ASYN mode
TXSTA1bits.BRGH = 0; //Low buad reta Mode
TXSTA1bits.TXEN = 1; //TX enialbe
RCSTA1bits.CREN = 1; //Continuum receive enialbe
RCSTA1bits.SPEN = 1; //Serial port1 enabled.
PIE1bits.TX1IE = 0;
IPR1bits.TX1IP = 0;
IPR1bits.RC1IP = 0; //Low prionty int
PIE1bits.RC1IE = 1;
*/
/* UART2 for GSM TC35i */
/*
SPBRG2 = 25; // 25:= 9.6Kbit/s
//Sent mode
TXSTA2bits.SYNC = 0; //ASYN mode
TXSTA2bits.BRGH = 0; //Low buad reta Mode
TXSTA2bits.TXEN = 1; //TX enialbe
RCSTA2bits.CREN = 1; //Continuum receive enialbe
RCSTA2bits.SPEN = 1; //Serial port2 enabled.
PIE3bits.TX2IE = 0;
IPR3bits.TX2IP = 0;
PIE3bits.RC2IE = 1;
IPR3bits.RC2IP = 0;
*/
/* timer0 */
/*
//Do 1s timer for system display
T0CONbits.TMR0ON = 0;
T0CONbits.T08BIT = 0; //16bit timer
T0CONbits.T0CS = 0;
// T0CONbits.T0SE = 0;
T0CONbits.PSA = 0;
T0CONbits.T0PS2 = 1; //64:1
T0CONbits.T0PS1 = 0;
T0CONbits.T0PS0 = 1;
INTCONbits.TMR0IF = 0; //Clear interrupt flag
INTCON2bits.TMR0IP = 0; //low interrupt pironty
TMR0L = 0x00;
TMR0H = 0x00;
INTCONbits.TMR0IE = 0; //Enable interrupt Timer0
*/
/* RBINT */
SETRBINTIP;
IBINTDS;
CLR_RBINTF;
En_dswork();
InitHT1623Port();
InitLcdDpy();
RSTVEL;
Delay10KTCYx(255);
Delay10KTCYx(255);
while(VELSTAOPIN)
{
CLVEL;
}
RSTVEL;
CLR_RBINTF;
Dsdisplay();
/* timer1 */
/*
//Do 0.131s timer for system Open/Close valve
T1CONbits.TMR1ON = 0;
T1CONbits.TMR1CS = 0; //using internal clock
T1CONbits.T1OSCEN = 0; //
T1CONbits.T1CKPS0 = 1; //1:8
T1CONbits.T1CKPS1 = 1; //
T1CONbits.RD16 = 1; //set 16 bit timer
PIR1bits.TMR1IF = 0; //
IPR1bits.TMR1IP = 0; //low interrupt pirnoty
TMR1L = 0x00;
TMR1H = 0x00;
PIE1bits.TMR1IE = 0;
*/
/* timer2 */
/*
//ues for infrared
// TCON2bits.TMR2ON = 0;
// TCON2bits.T2CKPS1 = 0;
// TCON2bits.T2CKPS0 = 0; //Fclk/1=4MHz Tt2 = 0.25uS
// TCON2bits &= 0x00; //0.25uS one
// PR2 = 26; //for 38K
// PR2 = 17; //for 56K
// PR2 = 8; //for 115K
IPR1bits.TMR2IP = 0;
PIR1bits.TMR2IF = 0;
PIE1bits.TMR2IE = 0;
*/
/* timer3 */
/*
//ues for
T3CONbits.TMR3ON = 0;
T3CONbits.T3CKPS1 = 1; // 1/4
T3CONbits.T3CKPS0 = 0;
T3CONbits.RD16 = 1; //16 bit timer
T3CONbits.TMR3CS = 0; //clock from fosc/4 T3CONbits.TMR3ON = 0;
IPR2bits.TMR3IP = 0; //low interrupt pirnoty
PIE2bits.TMR3IE = 0;
PIR2bits.TMR3IF = 0;
TMR3L = 0x00;
TMR3H = 0x00;
*/
/* System Device initialez */
InitE2prom();
ReadTime(systemtime);
WriteTime(systemtime);
// for(systemtemp =0;systemtemp<40;systemtemp++)
// {
// Wr1BCDNumToLcd( 19, systemtemp);
// }
READ_E2PROM(&systemtemp,BeingUserFlagADD,1,0);
if(systemtemp!=0xa5)
{
systemtemp1=0xff;
for(systemtemp = 0;systemtemp < 6;systemtemp++)
{
WRITE_1_BYTE_E2PROM(&systemtemp1,HartCardLoadPWAdd+systemtemp,0);
}
Systemnum[0]=0xff;
Systemnum[1]=0xff;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -