This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

I need help with the error stated by the program. Yet I have placed the "END" statement

#include <at89c51xd2.h>
#include <string.h>
#include <stdio.h>
#include "lcd.h"

#define motor1Cnt1 P0_0
#define motor1Cnt2 P0_1
#define motor2Cnt1 P0_2
#define motor2Cnt2 P0_3

#define forward1Led P1_0
#define forward2Led P1_1
#define forward3Led P1_2
#define stopLed P1_3

unsigned char forward1Flag = 0;
unsigned char forward2Flag = 0;
unsigned char forward3Flag = 0;
unsigned char backwardFlag = 1;

void forward1_Handle( void );
void forward2_Handle( void );
void forward3_Handle( void );
void back_Handle( void );
void stop_Handle( void );

void DelayMs( int );

#define f1key P0_4
#define f2key P0_5
#define f3key P0_6
#define bkey P0_7

int bkeyCnt = 0;
void main( void )
{ unsigned char index = 0;

unsigned char *myString1 = "**** WELCOME ***"; unsigned char *myString2 = " TO "; unsigned char *myString3 = " RF BASED "; unsigned char *myString4 = " VEHICLE SPEED "; unsigned char *myString5 = " CONTROL "; unsigned char *myString6 = " SPEED 1 ZONE "; unsigned char *myString7 = "****************"; unsigned char *myString8 = " SPEED 2 ZONE "; unsigned char *myString9 = " SPEED 3 ZONE "; unsigned char *myString10 = " STOP ZONE "; unsigned char *myString11= " BACKWARDS ";

Lcd_Init(); SenStringToLcd ( 1, myString1 ); SenStringToLcd ( 2, myString2 ); DelayMs(300); SenStringToLcd ( 1, myString3 ); SenStringToLcd ( 2, myString7 ); DelayMs(300); SenStringToLcd ( 1, myString4 ); SenStringToLcd ( 2, myString5 ); DelayMs(300);

motor1Cnt1 = 0; motor1Cnt2 = 0; motor2Cnt1 = 0; motor2Cnt2 = 0;

forward1Led = 0; forward2Led = 0; forward3Led = 0; stopLed = 0; DelayMs( 300 ); forward1Led = 1; forward2Led = 1; forward3Led = 1; stopLed = 1; DelayMs( 300 );

while( 1 ){

if( f1key == 0 ){

SenStringToLcd ( 1, myString6 ); SenStringToLcd ( 2, myString7 ); DelayMs(100); forward1Led = 0; forward2Led = 1; forward3Led = 1; stopLed = 1; DelayMs( 200 ); forward1Flag = 1; forward2Flag = 0; forward3Flag = 0; backwardFlag = 1;

}

if( forward1Flag == 1){ forward1_Handle(); }

if( f2key == 0 ){ SenStringToLcd ( 1, myString8 ); SenStringToLcd ( 2, myString7 ); DelayMs(100); forward1Led = 1; forward2Led = 0; forward3Led = 1; stopLed = 1; DelayMs( 200 ); forward1Flag = 0; forward2Flag = 1; forward3Flag = 0; backwardFlag = 1;

} if( forward2Flag == 1){ forward2_Handle(); }

if( f3key == 0 ){

SenStringToLcd ( 1, myString9 ); SenStringToLcd ( 2, myString7 ); DelayMs(100); forward1Led = 1; forward2Led = 1; forward3Led = 0; stopLed = 1; DelayMs( 200 ); forward1Flag = 0; forward2Flag = 0; forward3Flag = 1; backwardFlag = 1; }

if( forward3Flag == 1){ forward3_Handle(); }

if( bkey == 0 ){

forward1Flag = 0; forward2Flag = 0; forward3Flag = 0; if( backwardFlag == 1 ){

SenStringToLcd ( 1, myString11 ); SenStringToLcd ( 2, myString7 ); DelayMs(100); forward1Led = 1; forward2Led = 1; forward3Led = 1; stopLed = 0; DelayMs( 200 ); backwardFlag = 0;

} else{ SenStringToLcd ( 1, myString10 ); SenStringToLcd ( 2, myString7 ); DelayMs(100); forward1Led = 1; forward2Led = 1; forward3Led = 1; stopLed = 1; DelayMs( 200 ); stop_Handle(); backwardFlag = 1; } }

if( backwardFlag == 0 ){ back_Handle(); } }
} void forward1_Handle( void ){

motor1Cnt1 = 1; motor1Cnt2 = 0; motor2Cnt1 = 1; motor2Cnt2 = 0; return;
} void forward2_Handle( void ){ motor1Cnt1 = 1; motor1Cnt2 = 0; motor2Cnt1 = 1; motor2Cnt2 = 0; DelayMs( 40 ); motor1Cnt1 = 0; motor1Cnt2 = 0; motor2Cnt1 = 0; motor2Cnt2 = 0; DelayMs( 10 ); return;
}

void forward3_Handle( void ){ motor1Cnt1 = 1; motor1Cnt2 = 0; motor2Cnt1 = 1; motor2Cnt2 = 0; DelayMs( 20 ); motor1Cnt1 = 0; motor1Cnt2 = 0; motor2Cnt1 = 0; motor2Cnt2 = 0; DelayMs( 10 ); return;
} void back_Handle( void ){

motor1Cnt1 = 0; motor1Cnt2 = 1; motor2Cnt1 = 0; motor2Cnt2 = 1; DelayMs( 20 ); motor1Cnt1 = 0; motor1Cnt2 = 0; motor2Cnt1 = 0; motor2Cnt2 = 0; DelayMs( 10 ); return;
} void stop_Handle( void ){

motor1Cnt1 = 0; motor1Cnt2 = 0; motor2Cnt1 = 0; motor2Cnt2 = 0; DelayMs( 50 ); return;
} END
}

yet the program keep saying error A41, missing END statement. Where have I gone wrong?