Multisim and Ultiboard

cancel
Showing results for 
Search instead for 
Did you mean: 

Custom character lcd 16x2

There's a problem with building custom characters in Multisim 11.0.. I used 16x2 lcd, but on using the following code it shows only the first character. Tried everything, but no progress... Can someone pls tell me a fix to it..

 

}

//Program to create and display custom characters  smilies, heart, musical note symbol

#include<reg51.h>
sfr lcd_data_pin=0xA0; 
sbit rs=P3^0;  //Register select pin
sbit rw=P3^1;  // Read write pin
sbit en=P3^6;  //Enable pin

void delay(unsigned int count)  // Function to provide time delay in msec.
{
int i,j;
for(i=0;i<count;i++)
  for(j=0;j<1275;j++);
}

void lcd_command(unsigned char comm)  //Function to send commands to LCD.
{
lcd_data_pin=comm;
en=1; 
rs=0; 
rw=0; 
delay(1);
en=0;
}

void lcd_data(unsigned char disp)  //Function to send data to LCD
{
lcd_data_pin=disp;
en=1; 
rs=1; 
rw=0; 
delay(1);
en=0;
}

void lcd_ini()  //Function to initialize the LCD
{
lcd_command(0x38);  
delay(2);
lcd_command(0x0F); 
delay(2);
lcd_command(0x82);  //Set cursor to blink at line 1 positon 2
delay(2);
}

void character()
{
lcd_command(64);  //Address where values of the first custom character is stored
lcd_data(0);
lcd_data(10);
lcd_data(21);
lcd_data(17);
lcd_data(10);
lcd_data(4);
lcd_data(0);
lcd_data(0);
lcd_command(0xC0);  //Address of the location where the character is to be displayed
lcd_data(0);  // Displaying the character created at address 0x64 
delay(10);

lcd_command(72);
lcd_data(0);
lcd_data(0);
lcd_data(0);
lcd_data(10);
lcd_data(0);
lcd_data(4);
lcd_data(17);
lcd_data(14);
lcd_command(0x80);
lcd_data(1);
delay(10);

lcd_command(80);
lcd_data(0);
lcd_data(0);
lcd_data(10);
lcd_data(0);
lcd_data(4);
lcd_data(0);
lcd_data(14);
lcd_data(17);
lcd_command(0x82);
lcd_data(2);
delay(10);
lcd_command(88);
lcd_data(1);
lcd_data(3);
lcd_data(5);
lcd_data(9);
lcd_data(9);
lcd_data(11);
lcd_data(27);
lcd_data(24);
lcd_command(0x84);
lcd_data(3);
delay(10);

lcd_command(96);
lcd_data(0);
lcd_data(10);
lcd_data(0);
lcd_data(31);
lcd_data(17);
lcd_data(14);
lcd_data(0);
lcd_data(0);
lcd_command(0x86);
lcd_data(4);
delay(10);

lcd_command(104);
lcd_data(10);
lcd_data(0);
lcd_data(4);
lcd_data(0);
lcd_data(14);
lcd_data(17);
lcd_data(17);
lcd_data(14);
lcd_command(0xC2);
lcd_data(5);
delay(10);

lcd_command(112);
lcd_data(0);
lcd_data(10);
lcd_data(0);
lcd_data(0);
lcd_data(4);
lcd_data(0);
lcd_data(31);
lcd_data(0);
lcd_command(0xC4);
lcd_data(6);
delay(10);

lcd_command(120);
lcd_data(0);
lcd_data(17);
lcd_data(10);
lcd_data(17);
lcd_data(4);
lcd_data(0);
lcd_data(14);
lcd_data(17);
lcd_command(0xC6);
lcd_data(7);
delay(10);
}

void main()
{
lcd_ini();
character(); 


					
				
			
			
				
			
			
				
			
			
			
			
			
			
		
0 Kudos
Message 1 of 2
(4,612 Views)

Pls ignore the syntax.. I've actually changed the syntax as required by the Multisim, but pasted here the code from original source website..

 

Also I used #include <htc.h> in place of first line as shown in image..

0 Kudos
Message 2 of 2
(4,611 Views)