Problem in lcd interfacing with pic16f877a

Status
Not open for further replies.

Nice to hear it.....
 


Hi,
nice to here your mistake. To make the rolling display jst look on the data sheet of LCD for left/right shift mode....
just make a initial command for shift is enough... U doesn't need to command it to shift for every time...
 

hi friends ,,i want to display seconds from 00 to 59 in seven segment display .for that i am using 2 led displays.i am not clear about multiplexing .it will be kindfull if you helped me in it.i tried the code ,but its not working in simulation its malfunctioning
Code:
//common anode display

#include<pic.h>
#define _XTAL_FREQ 20000000
#define ctrl0 RD0
#define ctrl1 RD1
#define ctrl2 RD3
#define ctrl3 RD4
unsigned char digidisp=0;
static int min2,min1,sec2,sec1;
unsigned char digival[10]={0xc0,0xf9,0XA4,0xB0,0x19,0X6D,0x7D,0x07,0x7F,0X6F};
void interrupt isr()
{
TMR0IF=0;

TMR0=0X00;
ctrl0=ctrl1=ctrl2=ctrl3=0;
digidisp++;
digidisp=digidisp%4;

switch(digidisp)
{
case 0:
{

PORTB=digival[sec2];
ctrl0=1;
break;
}
case 1:
{

PORTB=digival[sec1];
ctrl1=1;
break;
}
case 2:
{

PORTB=digival[min1];
ctrl2=1;
break;
}
case 3:
{

PORTB=digival[min2];
ctrl3=1;
break;
}
}
}


void main()
{
TRISB=0X00;
PORTB=0X00;
TRISD=0X00;
PORTD=0X00;
OPTION_REG=0X00;
TMR0=0X00;
TMR0IF=0;
GIE=1;
PEIE=1;
TMR0IE=1;
min2=min1=sec2=sec1=0;
while(1)        // Forward counting
     {
          min2=min1=sec2=sec1=0;
          
                for(sec2=0;sec2<6;sec2++)
                {
                     for(sec1=0;sec1<10;sec1++)
                     {
                    __delay_ms(1000);
                    }
                }
               
        
     
}
}
 

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…