Problem displaying phrase in a 16x2 LCD

Discussion in 'C' started by granix, Apr 6, 2006.

  1. granix

    granix New Member

    Joined:
    Apr 6, 2006
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    i'm trying to display a phrase to a 16x2 LCD using 8051 and C programming .But a line of square dots keep on displaying on the LCD,without displaying the phrase.
    can u help me verify what wrong with the code????
    your help is greatly appreciated.
    Code:
    #include <reg52.h>
    #include <intrins.h>    
    
    typedef unsigned char bit_8;
    
    #define CLR 0
    #define SETB 1
    
    sbit DB0 = P1^0;
    sbit DB1 = P1^1;
    sbit DB2 = P1^2;
    sbit DB3 = P1^3;
    sbit DB4 = P1^4;
    sbit DB5 = P1^5;
    sbit DB6 = P1^6;
    sbit DB7 = P1^7;
    sbit EN = P3^7;
    sbit RS = P3^6;
    sbit RW = P3^5;
    sbit DATA = P1;
    sbit D7=P1^7;
    bit_8 code *days[]={"*Sun*","*Mon*","*Tue*","*Wed*","*Thu*","*Fri*","*Sat*"};		
    
    bit_8 code *val[]={"0","1","2","3","4","5","6","7","8","9","10","11","12"};			
    bit flag;
    
    bit_8 month=1,date=1,hh,lmin,hmin,hsec,lsec,day=0,lyear=5,hyear=0,date_count;
    
    sbit Ready = P3^7;
    
    
    
    void ini(void);
    void command(bit_8);
    void data_in(bit_8*);
    void busy(void);
    
    
    
    void main()
    {
    	bit_8 temp;
    	ini();
    	data_in("i love u");
    }
    
    
    
    void ini()
    {	
    	command(56);
    	command(12);
    	command(1);
    	command(6);
    }
    
    
    void busy()
    {
    	D7=1;
    	RS=0;
    	RW=1;
    	while(D7!=0)
    	{
    		EN=0;
    		EN=1;
    	}
    }
    
    
    
    void command(bit_8 val)
    {
    	busy();
    	P1=val;
    	RS=0;
    	RW=0;
    	EN=1;
    	EN=0;
    }
    
    
    
    void data_in(bit_8 *string)
    {
    	bit_8 i;
    	busy();
    	for(i=0;string[i]!='\0';i++)
    		{
    			P1=string[i];
    			RS=1;
    			RW=0;
    			EN=1;
    			EN=0;
    		}
    }
     
  2. yabadabadoo

    yabadabadoo New Member

    Joined:
    Apr 13, 2006
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    attach '/0' and then send "i love you" to data_in(). Or attach it in data_in () before FOR loop.

    try it ... i am not sure...
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice