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!
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!