i am using at89c52. i compiled the below c program its showing error as given below whats is the error in this program
c(4): warning C318: can't open file 'usart.h' c(5): warning C318: can't open file 'lcd.h' c(6): warning C318: can't open file 'gsm.h' c(47): warning C206: 'DelayMs': missing function-prototype c(47): error C267: 'DelayMs': requires ANSI-style prototype
#include <at89c51xd2.h> #include <string.h> #include <stdio.h> #include "usart.h" #include "lcd.h" #include "gsm.h"
// Inputs #define moistureSensor1 P1_4 #define moistureSensor2 P1_5 #define moistureSensor3 P1_6 #define moistureSensor4 P1_7
//Outputs #define relayMotor P0_0 #define NOR_CONDITION 1 #define DRY_CONDITION 2 #define WET_CONDITION 3
unsigned char fieldStatus = 0;
unsigned char motorOnFlag = 0; unsigned char motorOffFlag = 0; unsigned char moisSenCnt = 0; unsigned char mtOnSmsFlag = 0; unsigned char mtOffSmsFlag = 0;
unsigned char smsSendFlag = 0; xdata unsigned char smsMessage[ 100 ];
void main( void ) { xdata unsigned char messageBuffer[200]; int retValue = 0; unsigned char *myString1 = "Starting........"; unsigned char *myString2 = "................"; unsigned char *myString3 = "Wting 4 Command "; unsigned char *myString4 = "Command Recieved"; unsigned char colunCount = 0, index = 0; xdata unsigned char gsmCommand[7]; unsigned int waitCnt = 0;
P2 = 0xFF; P3 = 0xFF; relayMotor=0; Delay_Ms(5);
Lcd_Init(); SenStringToLcd ( 1, myString1 ); SenStringToLcd ( 2, myString2 );
smsSendFlag = 0;
USART_Init_9600();
retValue = DeleteSms(); if( retValue == 0 ){
SenStringToLcd ( 1, "GSM Modem is " ); SenStringToLcd ( 2, "Not Functioning " ); }
while(1){
moisSenCnt = 0; motorOnFlag = 0; motorOffFlag = 0;
SenStringToLcd ( 1, " Sensing field " ); SenStringToLcd ( 2, " Condition " ); DelayMs( 100 );
if( moistureSensor1 == 1 ) moisSenCnt++; if( moistureSensor2 == 1 ) moisSenCnt++; if( moistureSensor3 == 1 ) moisSenCnt++; if( moistureSensor4 == 1 ) moisSenCnt++;
SenStringToLcd ( 1, " Field Sensed " ); SenStringToLcd ( 2, "****************" );
fieldStatus = NOR_CONDITION;
if( moisSenCnt <= 2 ){ fieldStatus = DRY_CONDITION; motorOnFlag = 1; motorOffFlag = 0; relayMotor=1; SenStringToLcd ( 1, "Field Is In Dry " ); SenStringToLcd ( 2, " Condition " ); DelayMs( 300 ); } else{ fieldStatus = WET_CONDITION; motorOffFlag = 1; motorOnFlag = 0; relayMotor=0; SenStringToLcd ( 1, "Field Is In Wet " ); SenStringToLcd ( 2, " Condition " ); DelayMs( 00 ); } SenStringToLcd ( 1, "****************" ); SenStringToLcd ( 2, "****************" ); DelayMs( 100 );
SenStringToLcd ( 2, myString3 ); DelayMs( 100 ); SenStringToLcd ( 2, myString2 ); DelayMs( 100 );
retValue = 0; strcpy( messageBuffer, "\0" ); retValue = ReadSms( messageBuffer ); if( retValue == 1 ){
index = 0; colunCount = 0; waitCnt = 0; while( (colunCount < 6) && (waitCnt < 10000) ){ if( messageBuffer[ index ] == '"' ){ colunCount++; } index++; waitCnt++; }
SenStringToLcd ( 1, myString4 ); strcpy( gsmCommand, "\0" ); strncpy( gsmCommand, &messageBuffer[index+2],6 ); gsmCommand[6] = '\0'; SenStringToLcd ( 2, myString2 ); DelayMs( 10 ); SenStringToLcd ( 2, gsmCommand ); DelayMs( 250 );
if ( !strcmp( gsmCommand, "MTR ON" ) ){ relayMotor=1; motorOnFlag = 1; motorOffFlag = 0; SenStringToLcd ( 1, " MOTOR ON " ); SenStringToLcd ( 2, "****************" ); } else if ( !strcmp( gsmCommand, "MTR OF" ) ){ relayMotor=0; motorOffFlag = 1; motorOnFlag = 0; SenStringToLcd ( 1, " MOTOR OFF " ); SenStringToLcd ( 2, "****************" ); } else if ( !strcmp( gsmCommand, "GIFMOD" ) ){ smsSendFlag = 1; SenStringToLcd ( 1, "Request Received" ); SenStringToLcd ( 2, "****************" ); DelayMs( 100 ); } else{ SenStringToLcd ( 1, "Invalid Command " ); DelayMs( 200 ); SenStringToLcd ( 2, "Received " ); DelayMs( 200 ); }
if( smsSendFlag == 1 ){
if( fieldStatus == NOR_CONDITION ){ strcpy( smsMessage, "Field Is In Normal Condition." ); SendSms( "+919490045729", smsMessage ); DelayMs( 500 ); SendSms( "+919703935935", smsMessage ); DelayMs( 500 ); } else if( fieldStatus == DRY_CONDITION ){ strcpy( smsMessage, "Field Is In Dry Condition." ); SendSms( "+919490045729", smsMessage ); DelayMs( 500 ); SendSms( "+919703935935", smsMessage ); DelayMs( 500 ); } else if( fieldStatus == WET_CONDITION ){ strcpy( smsMessage, "Field Is In Wet Condition." ); SendSms( "+919490045729", smsMessage ); DelayMs( 500 ); SendSms( "+919703935935", smsMessage ); DelayMs( 500 ); } else{ } }
if( motorOnFlag == 1 && mtOnSmsFlag == 0){
motorOnFlag = 0; mtOnSmsFlag = 1; mtOffSmsFlag = 0; strcpy( smsMessage, "Motor On In the field" ); SendSms( "+919490045729", smsMessage ); DelayMs( 500 ); SendSms( "+919703935935", smsMessage ); DelayMs( 500 ); } if( motorOffFlag == 1 && mtOffSmsFlag == 0){
motorOffFlag = 0; mtOffSmsFlag = 1; mtOnSmsFlag = 0; strcpy( smsMessage, "Motor Off In the field" ); SendSms( "+919490045729", smsMessage ); DelayMs( 500 ); SendSms( "+919703935935", smsMessage ); DelayMs( 500 ); }
SenStringToLcd ( 1, "Command Executed"); DelayMs( 300 );
while( DeleteSms() == 0); SenStringToLcd ( 1, "Command Deleted "); SenStringToLcd ( 2, myString2 ); } } // End Of while(1); }