#include<reg52.h> //header file #define lcd P2 sbit rs=P3^7; sbit rw=P3^6; sbit en=P3^5; sbit start=P1^2; sbit stop=P1^1; sbit buzzer=P1^0; sbit slide_sw=P1^4; sbit relay=P1^3; void lcddata(unsigned char); void lcdcmd(unsigned char); void lcd_init( ); void delay(unsigned int); void lcdstring(unsigned char*); void display(unsigned char); void delay1(unsigned long); unsigned int time,speed; unsigned int time_count; unsigned int time_sec,sec; void main() { unsigned char high_byte, low_byte; unsigned int timel ; lcd_init(); //Initialise the LCD lcdcmd(0X80); //select LCD 1st line starting position lcdstring(" SPEED CHECKER "); //Display string on LCD lcdcmd(0XC0); //select the LCD2nfdline starting position lcdstring(" FOR HIGHWAYS "); //display string on LCD start=stop=1; //initialise the start&stop while(1) { if(start==1) lcdcmd(0X01); //cleear the LCD lcdcmd(0X80); //select the LCD 1st line starting positAn lcdstring(" START "); //display string on LCD time_count=0; //clear the time_count sec=0; //clear the seconds time_sec=0; //clear the timesec TMOD=0X10; //select the timerl in model mode TH1=0X00; // load the timerl high count TL1=0X00; //load the timerl low count TMOD=0X01; //select the timer0 in model mode TH0=0X00; // load the timer0 high count TL0=0X00; // load the timer0 high count TR0=1; //start the timer0 TR1=1; //start the timerl } if(stop==1) { TR0=0; //stop the timer0 TR1=0; //stop the timed. lcdcmd(0X80); //select the lcd 1st line starting position lcdstring(" STOP "); //display string on LCD high_byte=TH0; // copy the timer0 high count low_byte=TL0; //copy the timer0 low count delay1() time=( (time_count*71.1066) + (( ((256*high_byte)+low_byte)*(1.085) ) )) ;//calculate the time lcdcmd(0X80); //select the lcd 1st line starting position lcdstring("TIME: "); //display string on LCD lcdcmd(0X85); //select the lcd 1st line 5th position timel=(time/1000); display(timel); //dispaly the time lcdcmd(0X8A); //select the lcd 1st line 10th position lcdstring("sec"); lcdcmd(0XC0); //select the lcd 2nd line starting position lcdstring("SPEED: "); //display the string on LCD lcdcmd(0XC6); //select the lcd 2nd line 6th position speed=(360/(timel)); // calculate the speed display(speed); //dispaly the speed lcdcmd(0XCA); //select the lcdstring("KMPH"); if(slide_sw==0) { if(speed>40) // if speed is greater than 40KM { buzzer=1;//switch ON the buzzer relay=1 // switch ON the relay delay(50000); relay=0; //switch OFF relay } else
{ buzzer=0; // switch OFF buzzer relay=0; //switch off relay } if(slide_sw==1) { if(speed>60) //if speed MOR than 60KM { buzzer=1 // switch ON buzzer relay=1//switch ON relay delay(50000); relay=0; //switch off relay } else { buzzer=0;//swiych OFF buzzer relay=0; //switch off relay } } } } } void lcd_init() { lcdcmd(0X38); //select 5x7 matrix lcd 8,6x2 LCD lcdcmd(0X0E); // display On curser blinking lcdcmd(0X06); // shift the curser to right lcdcmd(0X80); //select the lcd lst line starting position } void lcdcmd(unsigned char cmd) { lcd=cmd; //copy the command on the Data bus rs=0; //rs=0 for command rw=0; //rw =0 for writing en=1; //make enable pin high en=0; //make enable pin low } void lcddata(unsigned char dat) { lcd=dat; //copy the Data on the Data bus rs=1; //rs=1 for Data rw=0; //rw=0 for writing en=1; //make enable pin high en=0; //make enable pin low } void lcdstring(unsigned char*str) { while(*str!='\0') { lcddata(*str); str++; } } void display(unsigned char num) // display the speed { unsigned char templ,buffer[4],t=0; temp1=num%10; buffer[0]=templ+0X30; temp1=num%10; buffer[1]=templ+0X30; num=num/10; temp1=num%10; buffer[2] =templ+0X30; num = num/10; temp1=num%10; buffer[3]=templ+0X30; if(buffer[0]=='0') { if(buffer[1]=='0') { if(buffer[2]=='0') { lcddata(buffer[3]); return; } else { for(t=2;t<=3;t++) lcddata(buffer[t]); return; } } else { for(t=1;t<=3;t++); lcddata(buffer[t]); return; } } else { for(t=0;t<=3;t++); lcddata(buffer[t]); } } void delay(unsigned int itime) { unsigned int i; for(i=0;i<itime;i++); } void delay1() { unsigned int m,n; for(m=0;m<100;m++) { for(n=0;n<4000;n++); } } void TIMERl_ISR()interrupt1 //timerlinterrupt service routine { unsigned int sec,time_sec; time_sec++; //increment the timesec if(time_sec==60) { time_sec=0; sec++, lcdcmd(0XC7); display(sec); //display the time } } this is the code i'm getting the following errors
Build target 'Target 1' compiling done.c... done.c(78): error C141: syntax error near 'delay' done.c(92): error C141: syntax error near 'relay' done.c(93): error C141: syntax error near 'delay' done.c(139): error C202: 'temp1': undefined identifier done.c(141): error C202: 'temp1': undefined identifier done.c(144): error C202: 'temp1': undefined identifier done.c(147): error C202: 'temp1': undefined identifier done.c(184): error C236: '_delay1': different length of parameter lists done.c(192): error C132: 'interrupt1': not in formal parameter list done.c(192): error C141: syntax error near '{' done.c(193): error C132: 'sec': not in formal parameter list done.c(193): error C132: 'time_sec': not in formal parameter list done.c(194): error C132: 'time_sec': not in formal parameter list done.c(194): error C141: syntax error near '++' done.c(197): error C244: 'time_sec': can't initialize, bad type or class done.c(197): error C132: 'time_sec': not in formal parameter list done.c(198): error C132: 'sec': not in formal parameter list done.c(198): error C141: syntax error near '++' done.c(199): error C132: 'lcdcmd': not in formal parameter list done.c(200): error C132: '_display': not in formal parameter list done.c(201): error C141: syntax error near '}'
"Read the instructions about posting source"
It's not like they are hard to find or difficult to understand - look at the picture: www.danlhenry.com/.../keil_code.png
Note the format of an error message:
done.c(78): error C141: syntax error near 'delay'
1. It starts with the name of the file in which the problem was found; here, "done.c"
2. It gives the line number on which the problem was found; here, 78
3. It gives the error code; here, C141
4. It gives a description of the error.
Important things to note:
As already noted, address the first -reported error first. It is very common that one error will cause a load of consequent errors - so fixing the one will also fix all the others.
Your editor shows you line numbers, but we don't get that on the forum - so you are going to have to show which line is which.
You can look-up the error codes here: Compiler Errors: http://www.keil.com/support/man/docs/c51/c51_errors.htm BL51 Linker Errors: http://www.keil.com/support/man/docs/bl51/bl51_errors.htm LX51 Linker Errors: http://www.keil.com/support/man/docs/lx51/lx51_errors.htm
It is important to understand the difference between Compiler & Linker errors.
It is assumed that you understand the 'C' programming language, and the tools.
If you don't understand the terms used in an error message, look them up in your 'C' textbook and/or the tool manuals.