monster LCD-code voor PIC

C

crocklip

Guest
Hoi,
Ik gebruik HITECH PICC V.3 compiler om programma een PIC16f877a.Ik wil interface met een standaard 16X2 Hitachi LCD.
Anyway, ik ben van plan het gebruik van een steekproef programma dat is meegeleverd met de software.De volgende code is een routine gebruikt om een byte schrijven naar de LCD in 4-bits modus.

# define LCD_DATA PORTD

# define LCD_STROBE () ((LCD_EN = 1), (LCD_EN = 0))
/ * Schrijf een byte naar de LCD in 4 bit mode * /

void
lcd_write (unsigned char c)
(
DelayUs (40);
LCD_DATA = ((c>> 4) & 0x0F);
LCD_STROBE ();
LCD_DATA = (C & 0x0F);
LCD_STROBE ();
)

Zoals u kunt zien, is de gehele PORTD gebruikt als "LCD_DATA".Maar ik wil alleen stukjes 2-5 van PORTA gebruiken als de andere bits zijn al overgenomen.Gezien het feit dat ik me niet echt begrijp de routine kan ik niet veranderen van de code om mijn eigen pak!Kan iemand mij vertellen hoe ik dit doen?Waarschijnlijk een domme vraag, maar enige hulp zou geweldig zijn!

 
Dit is een lange opname, maar probeer dit?

# define LCD_DATA PORTA

# define LCD_STROBE () ((LCD_EN = 1), (LCD_EN = 0))/ * Schrijf een byte naar de LCD in 4 bit mode * /

void
lcd_write (unsigned char c)
(
DelayUs (40);
LCD_DATA = ((c>> 4) & 0b00111100);
LCD_STROBE ();
LCD_DATA = (C & 0x0F);
LCD_STROBE ();
).................................

Onder uw haven initialisatie, schrijf ADCON1 = 0b10000010, dit is naar de haven ake AI / O-poort in plaats van analoog.Ook zijn er TRISA = 0x00; maken alle havens uitgang.
Ik hoop dat het helpt ... (Oh ive verzonden ua uur nodig hebben uw hulp)Toegevoegd na 54 seconden:Oeps ..deze ..

void
lcd_write (unsigned char c)
(
DelayUs (40);
LCD_DATA = ((c>> 4) & 0b00111100);
LCD_STROBE ();
LCD_DATA = (C & 0b00111100);
LCD_STROBE ();
)

 

Welcome to EDABoard.com

Sponsor

Back
Top