#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?
thanks man! There was no lcd.c and lcd.h files from wherever i got the code but I was able to download the lcd.h file. unfortunately, most links with the lcd.c file are down and cant download it. Is there anywhere you know I could get it?
lcd.h(21): warning C318: can't open file 'lcd_config.h' lcd.h(32): error C141: syntax error near ';' lcd.h(43): error C141: syntax error near '}'
this what I am getting... i cant locate the syntax errors
Start with the first error, it likely precipitates the subsequent ones..
This tends to be the problem when you take incomplete code off the internet. Unless you have a complete and contemporary set of files to rebuild the project it is going to keep falling over itself. Are you sure the original project is suitable for your board? Was it posted because it didn't work in the first place?
Perhaps better you understand your own chip/board configuration and code your own solution. Doing homework is not about presenting someone else's solution.