Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Why this code is not working?

Status
Not open for further replies.
Advanced Member level 4
Joined
Jul 25, 2012
Messages
1,192
Helped
171
Reputation
342
Reaction score
162
Trophy points
1,343
Visit site
Activity points
0
Hello!

Why this code is not displaying "Cytron Tech" on LCD. The same code if compiled on another system is displaying on LCD, but if compiled on my system the LCD is blank.

It is a Hi Tech C Code. The kabian4.hex displays data on LCD but uart1.hex doesn't display anything on LCD. Kabian4.hex uses the same code but compiled on a different machine. can somebody compile the code for 20 MHz and post the hex file?

Code:
// ===== SMART GROUP ======
// ===== LIM KIA YING T18157 =====
// LCD display with the motor 
// LCD display is to show the direction of the motor
// PORT B and PORT C is for motor 
// PORT D is for LCD display
#include <pic.h>
#include <string.h>
#include <htc.h>
__CONFIG(0x3f32); //3FFB

#define _XTAL_FREQ 20000000
//=========== define of the motor ports ============
#define L293D_E 	RA0         //Enable of L293D
#define L293D_A 	RB1         //Positive of motor
#define L293D_B 	RA2         //Negative of motor
#define L293D_C 	RA3			//Positive of motor
#define L293D_D 	RB2			//Negative of motor
#define L293D_G		RA5		    //Positive of motor
#define L293D_H 	RE0			//Negative of motor
#define L293D_J		RE1			//Positive of motor
#define L293D_K 	RE2			//Negative of motor


//=========== define the LCD ports =================
#define	rs			RB7				//RS pin of the LCD display
#define	e			RB6				//E pin of the LCD display
#define	lcd_data	PORTD			//LCD 8-bit data PORT

//=========== define LED Signal Light =============
#define signal_left  RB5			//Left side LED
#define signal_right RB4			//Right side LED

//=========== define Buzzer ================
#define buzzer		 RB3				//Buzzer

//=========== define switch ===============
#define	switch1		RC0 		//Switch 1 for LENG KABIAN
#define	switch2		RC1 		//Switch 2 for LENG KABIAN
#define	switch3		RC2 		//Switch 3 for LENG KABIAN
#define	switch4		RC3 		//Switch 4 for LENG KABIAN
#define	switch5		RC4 		//Switch 5 for LENG KABIAN
#define	switch6		RC5 		//Switch 6 for LENG KABIAN
#define	switch7		RC6 		//Switch 7 for LENG KABIAN
#define	switch8		RC7 		//Switch 8 for LENG KABIAN

//========== Motor Function Prototypes ===================
void rotate_forward_LCD_1(void);       	  	//Forward run function
void rotate_backward_LCD_1(void);         	//Backward run function
void rotate_leftside_LCD_1(void);	  	  	//Leftside run function
void rotate_rightside_LCD_1(void);    	  	//Rightside run function 
void rotate_forward_LCD_2(void);		  	//Forward run function
void rotate_backward_LCD_2(void);		  	//Backward run function
void rotate_leftside_LCD_2(void);		  	//Leftside run function
void rotate_rightside_LCD_2(void);		  	//Rightside run function
void breaks_1(void);        		  		//Motor stop function
void breaks_2(void);  		 		  		//Motor stop function
void breaks_3(void);        		  		//Motor stop function
void breaks_4(void);  				  		//Motor stop function
void delay_motor(void);            		  	//Some delay (Motor)
void delay_led(void);						//Some delay (LED)
void delay_buzzer(void);					//Some delay (Buzzer)
void command_error(void);					//Command error

//======== LCD Function Prototypes =========							
void delay_lcd(unsigned long data);			
void send_config(unsigned char data);
void send_char(unsigned char data);
void lcd_goto(unsigned char data);
void lcd_clr(void);
void send_string(const char *s);

// ======= UART Function Prototypes =======
void uart_send(unsigned char data);
unsigned char UART_Receive_Char(void);            //receive uart value
unsigned char UART_Receive_String(void);
void uart_str(const char *s);



//======= LED Signal LED ==========
void led_off_l(void);
void led_off_r(void);
void led_signal_left(void);
void led_signal_right(void);
void led_signal_sos(void);
void led_sos_off(void);

//========== Buzzer Function Prototypes ======
void buzzer_stop(void);

// ========== Program Start ==============

unsigned int count = 0, count1 = 0, uart_receive_flag, cmp_;
unsigned char myString[4] = "XX", myString2[4];

void interrupt ISR(void)
{
	
	if(RCIF)  //If UART Rx Interrupt
	{
			
		if(OERR) //if over run error, then reset the receiver
		{
			CREN = 0;
			CREN = 1;
		}
		
		myString[count] = RCREG;
		myString2[count1] = RCREG;
		count++;
		count1++;
		if(count == 2) count = 0;
		if(count1 == 3) count1 = 0;
		RCIF = 0;
							
	}
}

				           				   		
// ===========  MOTOR CODING ============

void rotate_forward_LCD_1(){
        L293D_A = 1;             				//Make positive of motor 1
        L293D_B = 0;             				//Make negative of motor 0
        L293D_E = 1;             				//Enable L293D
		unsigned long delay_time=5000;
		//setup ADC
		//ADCON1 = 0b00000110;					//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);				//clear display at lcd
		send_config(0b00000010);				//lcd return to home 
		send_config(0b00000110);				//entry mode-cursor increase 1
		send_config(0b00001100);				//display on, cursor off and cursor blink off
		send_config(0b00111000);				//function set
		//display startup message	
		lcd_clr();								//clear lcd
		lcd_goto(5);							//set the lcd cursor to location 0
		send_string("PSM.L");					//display "Cytron Tech."
		lcd_goto(27);							//set the lcd cursor to location 20
		send_string("UP");						//display "SK40C"
}

void rotate_backward_LCD_1(){
        L293D_A = 0;            				//Make positive of motor 0
        L293D_B = 1;             				//Make negative of motor 1
        L293D_E = 1;             				//Enable L293D
		unsigned long delay_time=5000;
		//setup ADC
		ADCON1 = 0b00000110;					//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);				//clear display at lcd
		send_config(0b00000010);				//lcd return to home 
		send_config(0b00000110);				//entry mode-cursor increase 1
		send_config(0b00001100);				//display on, cursor off and cursor blink off
		send_config(0b00111000);				//function set
		//display startup message	
		lcd_clr();								//clear lcd
		lcd_goto(5);							//set the lcd cursor to location 0
		send_string("PSM.L");					//display "Cytron Tech."
		lcd_goto(25);							//set the lcd cursor to location 20
		send_string("DOWN");					//display "SK40C"
}
void rotate_leftside_LCD_1(){
        L293D_C = 1;             				//Make positive of motor 1
        L293D_D = 0;             				//Make negative of motor 0
        L293D_E = 1;             				//Enable L293D
		unsigned long delay_time=5000;
		//setup ADC
		ADCON1 = 0b00000110;					//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);				//clear display at lcd
		send_config(0b00000010);				//lcd return to home 
		send_config(0b00000110);				//entry mode-cursor increase 1
		send_config(0b00001100);				//display on, cursor off and cursor blink off
		send_config(0b00111000);				//function set
		//display startup message	
		lcd_clr();								//clear lcd
		lcd_goto(5);							//set the lcd cursor to location 0
		send_string("PSM.L");					//display "Cytron Tech."
		lcd_goto(25);							//set the lcd cursor to location 20
		send_string("LEFT");					//display "SK40C"
}
void rotate_rightside_LCD_1(){
        L293D_C = 0;             				//Make positive of motor 0
        L293D_D = 1;             				//Make negative of motor 1
        L293D_E = 1;             				//Enable L293D
		unsigned long delay_time=5000;
		//setup ADC
		ADCON1 = 0b00000110;					//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);				//clear display at lcd
		send_config(0b00000010);				//lcd return to home 
		send_config(0b00000110);				//entry mode-cursor increase 1
		send_config(0b00001100);				//display on, cursor off and cursor blink off
		send_config(0b00111000);				//function set
		//display startup message	
		lcd_clr();								//clear lcd
		lcd_goto(5);							//set the lcd cursor to location 0
		send_string("PSM.L");					//display "Cytron Tech."
		lcd_goto(25);							//set the lcd cursor to location 20
		send_string("RIGHT");					//display "SK40C"
}
void rotate_forward_LCD_2(){
        L293D_G = 1;             			//Make positive of motor 1
        L293D_H = 0;             			//Make negative of motor 0
        L293D_E = 1;             			//Enable L293D
		unsigned long delay_time=5000;
		//setup ADC
		ADCON1 = 0b00000110;				//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);			//clear display at lcd
		send_config(0b00000010);			//lcd return to home 
		send_config(0b00000110);			//entry mode-cursor increase 1
		send_config(0b00001100);			//display on, cursor off and cursor blink off
		send_config(0b00111000);			//function set
		//display startup message	
		lcd_clr();							//clear lcd
		lcd_goto(5);						//set the lcd cursor to location 0
		send_string("PSM.R");				//display "Cytron Tech."
		lcd_goto(27);						//set the lcd cursor to location 20
		send_string("UP");					//display "SK40C"
}
void rotate_backward_LCD_2(){
        L293D_G = 0;             			//Make positive of motor 0
        L293D_H = 1;             			//Make negative of motor 1
        L293D_E = 1;             			//Enable L293D
		unsigned long delay_time=5000;
		//setup ADC
		ADCON1 = 0b00000110;				//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);			//clear display at lcd
		send_config(0b00000010);			//lcd return to home 
		send_config(0b00000110);			//entry mode-cursor increase 1
		send_config(0b00001100);			//display on, cursor off and cursor blink off
		send_config(0b00111000);			//function set
		//display startup message	
		lcd_clr();							//clear lcd
		lcd_goto(5);						//set the lcd cursor to location 0
		send_string("PSM.R");				//display "Cytron Tech."
		lcd_goto(25);						//set the lcd cursor to location 20
		send_string("DOWN");				//display "SK40C"
}
void rotate_leftside_LCD_2(){
        L293D_J = 1;             			//Make positive of motor 1
        L293D_K = 0;             			//Make negative of motor 0
        L293D_E = 1;             			//Enable L293D
		unsigned long delay_time=5000;
		//setup ADC
		ADCON1 = 0b00000110;				//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);			//clear display at lcd
		send_config(0b00000010);			//lcd return to home 
		send_config(0b00000110);			//entry mode-cursor increase 1
		send_config(0b00001100);			//display on, cursor off and cursor blink off
		send_config(0b00111000);			//function set
		//display startup message	
		lcd_clr();							//clear lcd
		lcd_goto(5);						//set the lcd cursor to location 0
		send_string("PSM.R");				//display "Cytron Tech."
		lcd_goto(25);						//set the lcd cursor to location 20
		send_string("LEFT");				//display "SK40C"
}
void rotate_rightside_LCD_2(){
        L293D_J = 0;             			//Make positive of motor 0
        L293D_K = 1;             			//Make negative of motor 1
        L293D_E = 1;             			//Enable L293D
		unsigned long delay_time=5000;
		//setup ADC
		ADCON1 = 0b00000110;				//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);			//clear display at lcd
		send_config(0b00000010);			//lcd return to home 
		send_config(0b00000110);			//entry mode-cursor increase 1
		send_config(0b00001100);			//display on, cursor off and cursor blink off
		send_config(0b00111000);			//function set
		//display startup message	
		lcd_clr();							//clear lcd
		lcd_goto(5);						//set the lcd cursor to location 0
		send_string("PSM.R");				//display "Cytron Tech."
		lcd_goto(25);						//set the lcd cursor to location 20
		send_string("RIGHT");				//display "SK40C"
}

void command_error(){

		buzzer=1;
		unsigned long delay_time=5000;
		//setup ADC
		//ADCON1 = 0b00000110;				//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);			//clear display at lcd
		send_config(0b00000010);			//lcd return to home 
		send_config(0b00000110);			//entry mode-cursor increase 1
		send_config(0b00001100);			//display on, cursor off and cursor blink off
		send_config(0b00111000);			//function set
		//display startup message	
		lcd_clr();							//clear lcd
		lcd_goto(5);						//set the lcd cursor to location 0
		send_string("COMMAND");				//display "Cytron Tech."
		lcd_goto(25);						//set the lcd cursor to location 20
		send_string("ERROR");				//display "SK40C"
		
}
 	
void breaks_1(){

        L293D_A = 0;             //Make positive of motor 0
        L293D_B = 0;             //Make negative of motor 0
        L293D_E = 0;             //Disable L293D

}
void breaks_2(){
        L293D_C = 0;            //Make positive of motor 0
        L293D_D = 0;             //Make negative of motor 0
        L293D_E = 0;             //Disable L293D
}
void breaks_3(){
        L293D_G = 0;             //Make positive of motor 0
        L293D_H = 0;             //Make negative of motor 0
        L293D_E = 0;             //Disable L293D
}
void breaks_4(){
        L293D_J = 0;             //Make positive of motor 0
        L293D_K = 0;             //Make negative of motor 0
        L293D_E = 0;             //Disable L293D
}
void buzzer_stop(){
		buzzer=0;
}

// ======== LED Signal Light ==========
void led_signal_left()
{
		signal_left=1;
		unsigned long delay_time=5000;
		//setup ADC
		ADCON1 = 0b00000110;					//set ADx pin digital I/O
		//configure lcd
		send_config(0b00000001);				//clear display at lcd
		send_config(0b00000010);				//lcd return to home 
		send_config(0b00000110);				//entry mode-cursor increase 1
		send_config(0b00001100);				//display on, cursor off and cursor blink off
		send_config(0b00111000);				//function set
		//display startup message	
		lcd_clr();								//clear lcd
		lcd_goto(5);							//set the lcd cursor to location 0
		send_string("SIGNAL");					//display "Cytron Tech."
		lcd_goto(25);							//set the lcd cursor to location 20
		send_string("LEFT");					//display "SK40C"
	
}

void led_signal_right()
{
	signal_right=1;
	unsigned long delay_time=5000;
	//setup ADC
	ADCON1 = 0b00000110;					//set ADx pin digital I/O
	//configure lcd
	send_config(0b00000001);				//clear display at lcd
	send_config(0b00000010);				//lcd return to home 
	send_config(0b00000110);				//entry mode-cursor increase 1
	send_config(0b00001100);				//display on, cursor off and cursor blink off
	send_config(0b00111000);				//function set
	//display startup message	
	lcd_clr();								//clear lcd
	lcd_goto(5);							//set the lcd cursor to location 0
	send_string("SIGNAL");					//display "Cytron Tech."
	lcd_goto(25);							//set the lcd cursor to location 20
	send_string("RIGHT");					//display "SK40C"
}
void led_signal_sos()
{	
	signal_right=1;
	signal_left=1;
	unsigned long delay_time=5000;
	//setup ADC
	ADCON1 = 0b00000110;					//set ADx pin digital I/O
	//configure lcd
	send_config(0b00000001);				//clear display at lcd
	send_config(0b00000010);				//lcd return to home 
	send_config(0b00000110);				//entry mode-cursor increase 1
	send_config(0b00001100);				//display on, cursor off and cursor blink off
	send_config(0b00111000);				//function set
	//display startup message	
	lcd_clr();								//clear lcd
	lcd_goto(3);							//set the lcd cursor to location 0
	send_string("EMERGENCY");					//display "Cytron Tech."
	lcd_goto(23);							//set the lcd cursor to location 20
	send_string("EMERGENCY");					//display "SK40C"
}
void led_off_l()
{
	signal_left=0;
}
void led_off_r()
{
	signal_right=0;
}
void led_sos_off()
{
	signal_left=0;
	signal_right=0;
}
// ========= TIME DELAY ============
void delay_motor(){                			//delay for motor
    unsigned char i,j,k;
    for(i=0;i<0x20;i++)
        for(j=0;j<100;j++)
                for(k=0;k<100;k++);
}

void delay_led(){
    unsigned char i,j,k;
    for(i=0;i<0x20;i++)
        for(j=0;j<255;j++)
                for(k=0;k<255;k++);
}
void delay_buzzer(){
    unsigned char i,j,k;
    for(i=0;i<0x20;i++)
        for(j=0;j<150;j++)
                for(k=0;k<150;k++);
}

void main(){                 		  //Our main function

	TRISA=0x00;					      //One side of Motor
	TRISB=0x00;						  //LCD and Buzzer
	TRISD=0x00;						  //LCD display
	TRISE=0x00;						  //One side of Motor
	PORTA=0;						  //Switch
	PORTB=0;
	PORTD=0;
	PORTE=0;
	TRISC=0xFF;						  //Switch
	PORTC=0;						  //Switch
	
	ADCON1 = 0b10000111;
	CMCON = 0b00000111;
	CVROE = 0;
	
	//Configure UART
    SPBRG=129;            //set baud rate as 9600 baud
    BRGH=1;                //baud rate high speed option
    TXEN=0;                //disable transmission
    TX9 =0;                //8-bit transmission
    RX9 =0;                //8-bit reception   
    CREN=1;                //enable reception
    SPEN=1;                //enable serial port
	SYNC = 0;
	SPEN = 1;
	RX9 = 0;
	CREN = 1;
	FERR = 0;
	OERR = 0;
	TXIE = 0;
	RCIE = 1;
			
	//Include these settings
	GIE  = 1;  		//Enable global interrupts
	PEIE = 1;  		//Enable Peripheral Interrupts

	count = 0;
	
	lcd_goto(2);						//set the lcd cursor to location 0
	send_string("Cytron Tech");

	while(1) {									//Do this infinitely
							
		if((myString[0] == 'L') && (myString[1] == 'U'))
		{
		//PORTBbits.RB4 = 1;
		rotate_forward_LCD_1();       	    	//Run forward
        delay_motor();             		  		//Some delay
		lcd_clr();								//clear lcd
        breaks_1();                   			//Stop
        delay_motor();                      	//Some delay
		}
		else if((myString[0] == 'L') && (myString[1] == 'D'))						//if data received, turn left mirror down
        {
		rotate_backward_LCD_1();      	     	//Run Backwards
        delay_motor();                  	    //Some delay
		lcd_clr();								//clear lcd
        breaks_1();                   			//Stop
        delay_motor();                     	    //Some delay	
		}
		else if((myString[0] == 'L') && (myString[1] == 'L'))						//if data received, turn left mirror left 
		{
		rotate_leftside_LCD_1();    	  		//Run left
		delay_motor();     	              		//Some delay
        lcd_clr();								//clear lcd
		breaks_2();         		  			//Stop
        delay_motor();             		  		//Some delay
		}
		else if((myString[0] == 'L') && (myString[1] == 'R'))						//if data received, turn left mirror right
		{
		rotate_rightside_LCD_1();		  		//Run right
		delay_motor();           			    //Some delay
		lcd_clr();								//clear lcd
        breaks_2();         		 			//Stop
        delay_motor();                      	//Some delay
		}
		else if((myString[0] == 'R') && (myString[1] == 'U'))						//if data received, turn right mirror up
		{
		rotate_forward_LCD_2();           		//Run forward
        delay_motor();           			  	//Some delay
		lcd_clr();								//clear lcd
        breaks_3();         		   			//Stop
        delay_motor();             		  		//Some delay
		}
		else if((myString[0] == 'R') && (myString[1] == 'D'))						//if data received, turn right mirror down
		{
        rotate_backward_LCD_2();          		//Run Backwards
        delay_motor();            		  		//Some delay
		lcd_clr();								//clear lcd
        breaks_3();       			  			//Stop
        delay_motor();         		  	    	//Some delay
		}
		else if ((myString[0] == 'R') && (myString[1] == 'L'))						//if data received, turn right mirror left
		{
		rotate_leftside_LCD_2();	      		//Run left
		delay_motor();   			          	//Some delay
		lcd_clr();								//clear lcd
        breaks_4();        	  		 	 		//Stop
        delay_motor();                      	//Some delay
		}
		else if((myString[0] == 'R') && (myString[1] == 'R'))						//if data received, turn right mirror right
		{
		rotate_rightside_LCD_2();	      		//Run right
		delay_motor();             		  		//Some delay
		lcd_clr();								//clear lcd
        breaks_4();         		  			//Stop
        delay_motor();             		  		//Some delay
		}
		else if ((myString[0] == 'L') && (myString[1] == 'S'))						//if data received, left signal is lighted up
		{
		led_signal_left();	      				//LED Signal light turn left
		delay_led();             		  		//Some delay
		lcd_clr();								//clear lcd
		led_off_l();							//LED Signal light off
        delay_motor();             		  		//Some delay
		}
		else if((myString[0] == 'R') && (myString[1] == 'S'))						//if data received, right signal is lighted up
		{
		led_signal_right();	      				//LED Signal light turn right
		delay_led();             		  		//Some delay
		lcd_clr();								//clear lcd
		led_off_r();							//LED Signal light off
        delay_motor();             		  		//Some delay
		}
		else if((myString2[0] == 'S') && (myString2[1] == 'O') && (myString2[2] == 'S'))			//if data received, emergency signal light will be lighted up
		{
		led_signal_sos();						//Emergency light on
		delay_led();             		  		//Some delay
		lcd_clr();								//clear lcd
		led_sos_off();							//Emergency light off
        delay_motor();             		  		//Some delay
		}
		//else if ((myString[0] != 'L') || (myString[0] != 'R') || (myString2[0] != 'S') 
		//|| (myString[1] != 'R') || (myString[1] != 'L') || (myString[1] != 'U') 
		//|| (myString[1] != 'D') || (myString2[1] != 'O') || (myString2[2] != 'S') 
		//|| (myString[0] != 'X') || (myString[1] != 'X'))
		else if ((myString[0] != 'L') && (myString[1] != 'U') ||
			(myString[0] != 'L') && (myString[1] != 'D') ||
			(myString[0] != 'L') && (myString[1] != 'R') ||
			(myString[0] != 'L') && (myString[1] != 'L') ||
			(myString[0] != 'R') && (myString[1] != 'U') ||
			(myString[0] != 'R') && (myString[1] != 'D') ||
			(myString[0] != 'R') && (myString[1] != 'R') ||
			(myString[0] != 'R') && (myString[1] != 'L') ||
			(myString[0] != 'L') && (myString[1] != 'S') ||
			(myString[0] != 'R') && (myString[1] != 'S') ||
			(myString[0] != 'X') && (myString[1] != 'X') ||
			(myString2[0] != 'S') && (myString2[1] != 'O') && (myString2[2] != 'S'))
		{
		command_error();						//Command error
		delay_buzzer();             		  		//Some delay
		lcd_clr();								//clear lcd
        buzzer_stop();							//
        delay_motor();             		  		//Some delay
		}
		else if((myString[0] == 'X') && (myString[1] == 'X'))
		{
			lcd_goto(2);						//set the lcd cursor to location 0
			send_string("Cytron Tech");				
		}
		else {
			;
		}
	}
} 			        
					
// ========== LCD CODING ========
void delay_lcd(unsigned long data)			//delay function, the delay time
{											//depend on the given value
	for( ;data>0;data--);
}

void send_config(unsigned char data)		//send lcd configuration 
{
	rs=0;									//set lcd to configuration mode
	lcd_data=data;							//lcd data port = data
	e=1;									//pulse e to confirm the data
	delay_lcd(50);
	e=0;
	delay_lcd(50);
}

void send_char(unsigned char data)			//send lcd character
{
 	rs=1;									//set lcd to display mode
	lcd_data=data;							//lcd data port = data
	e=1;									//pulse e to confirm the data
	delay_lcd(10);
	e=0;
	delay_lcd(10);
}

void lcd_goto(unsigned char data)			//set the location of the lcd cursor
{											//if the given value is (0-15) the 
 	if(data<16)								//cursor will be at the upper line
	{										//if the given value is (20-35) the 
	 	send_config(0x80+data);				//cursor will be at the lower line
	}										//location of the lcd cursor(2X16):
	else									// -----------------------------------------------------
	{										// | |00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15| |
	 	data=data-20;						// | |20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35| |
		send_config(0xc0+data);				// -----------------------------------------------------	
	}
}

void lcd_clr(void)							//clear the lcd
{
 	send_config(0x01);
	delay_lcd(600);
	
}

void send_string(const char *s)				//send a string to display in the lcd
{          
  	while (s && *s)send_char (*s++);
}
 

Attachments

  • uart1 lcd problem.rar
    277.2 KB · Views: 72

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top