serijos LCD (sąsajos CD4094) Error!

M

member_tdh

Guest
Please help me!

IPS -> CD4094 (8-bit) -> LCD = neveiks!

# include "lcd.h"

//------------------------------------- LCD funkcijų --------- ---------------------------
tuščia LcdWriteCmd (byte CMD)
(
RB1 = 0; / / RW = 0;
rb3 = 0; / / RS = 0
rb0 = 1; / / E = 1
out_lcd (cmd);
# ASM NOP # endasm
# ASM NOP # endasm
# ASM NOP # endasm
# ASM NOP # endasm
rb0 = 0; / / E = 0
)

tuščia LcdWriteChar (byte duomenys)
(
RB1 = 0; / / RW = 0;
rb3 = 1; / / RS = 1
rb0 = 1; / / E = 1
out_lcd (duomenys);
# ASM NOP # endasm
# ASM NOP # endasm
# ASM NOP # endasm
# ASM NOP # endasm
rb0 = 0; / / E = 0
rb3 = 0; / / RS = 0
)

tuščia LcdWriteString (unsigned char * str)
(
/ / Rb3 = 1; / / RS = 1
while (* str! = '\ 0')
(
LcdWriteChar (* str);
str;
)
)

tuščia LcdGoto (unsigned char eilutės unsigned char GO)
(

rb3 = 0; / / RS = 0, jei norite parašyti komandą
if (eilės == 1) LcdWriteCmd (LCD_LINE_1 pos);
else if (eilės == 2) LcdWriteCmd (LCD_LINE_2 pos);
else if (eilės == 3) LcdWriteCmd (LCD_LINE_3 pos);
else if (eilės == 4) LcdWriteCmd (LCD_LINE_4 pos);
rb3 = 1; / / RS = 1, jei norite parašyti duomenų
)

tuščia LcdClearRow (unsigned char eilutės)
(
Byte I

LcdGoto (row, 0);
for (i = 0; i <20; i ) LcdWriteChar ( '');
)

tuščia LcdClear (tuščia)
(

rb3 = 0; / / RS = 0, jei norite parašyti komandą
LcdWriteCmd (LCD_CMD_CLEAR) / / išvalyti kalbomis
delay_us (2);
LcdWriteCmd (LCD_CMD_HOME) / / Pagrindinis ekranas
delay_us (2);
rb3 = 1; / / RS = 1, jei norite parašyti duomenų
)

tuščia LcdInit (tuščia)
(
delay_us (15000);
RB1 = 0; / / RW = 0;
rb3 = 0; / / RS = 0
rb0 = 0; / / E = 0
LcdWriteCmd (0x30);
delay_us (40);
LcdWriteCmd (0x30);
delay_us (40);
LcdWriteCmd (0x30);
delay_us (1000);
LcdWriteCmd (0x38); / / funkcija nustatyti sąsają ilgis: 8 bitų režimu, 2lines, 5x7 šriftas
/ / LcdWriteCmd (0x2C);
delay_us (40);
LcdWriteCmd (0x08); / / vitrinos išjungti, išjungti žymeklio, blink off
delay_us (40);
LcdWriteCmd (0x0C) / / rodyti, žymeklį, Blink d.
delay_us (40);
LcdWriteCmd (0x06); / / įvežimo būdas nustatyti, žymeklį perkelkite teisę, be poslinkio
delay_us (40);
LcdWriteCmd (0x01); / / vitrinos aiškiai
delay_us (2000);
)

tuščia out_lcd (byte x)
(
Byte I

ra4 = 0;
RA3 = 0;
for (i = 0; i <8; i )
(
RA3 = 0;
if (x & 0x80) ra4 = 1;
kitas ra4 = 0;
# ASM NOP # endasm
RA3 = 1;
# ASM NOP # endasm
x <<= 1;
)
)

 
Labas,

1.Kur yra jūsų pagrindinė funkcija kažką parodyti?

2.Taip pat prašome parodyti kaip 4.094 prijungtas tarp IPS ir LCD schematiškai.

Linkėjimai,
Laktronics

 
Labas!

trisa4 = 0; / / 4094_data
trisa3 = 0; / / 4094_clock
ra4 = 0;
RA3 = 0;Main.c Pareigos:

# include "16f88.h"

void main (void)
(
trisb3 = 0; / / lcd_RS
trisb1 = 0; / / lcd_RW
trisb0 = 0; / / lcd_E
rb3 = 0; RB1 = 0; rb0 = 0;

LcdInit ();
LcdClear ();
LcdGoto (1,0);
LcdWriteChar ( '');
/ / LcdWriteString ( "abcdef");

/ / klaida: nerodo char "A" arba eilutę.

while (1)
(

)

)

 
Labas,
1.Be LCDGoto () funkciją, iš LCD_Line_X vertės nėra nurodytos, manau, ji yra nurodyta LCD.h failas.Tuo atveju, jei vertės Line_x yra nurodyta kaip 00h, 40h ir tt, jums reikia pridėti prie tų 80h, kaip už komplektą DDRAM ADRESAS komanda vertybes.Prašome tai patikrinti ir ištaisyti, jei reikia.

2.Be LCD_INIT įprasta, pagal DISPLAY_ON komandą, turite neįjungtas žymeklį, komandos vertė čia turėtų būti 0X0E ir ne 0X0C.Manau, kad kursorius yra įjungtas ne bet kur kitur?

3.Eilutės nebus rodomas, nes jis iš komentarų.

Linkėjimai,
Laktronics

 
Labas!

Į "lcd.h" file: Aš Lcd_line apibrėžti kaip:

# define LCD_LINE_1 0x80 / * bitų 7 visada rinkinys: 0x80 = 0x00 * /
# define LCD_LINE_2 0xC0 / * 2 eilutė padėtyje 40 * /
# define LCD_LINE_3 0x94 / * 3-oji linija pozicijos 14 * /
# define LCD_LINE_4 0xD4 / * 4nd linijos padėtį 54 * /

ir ... Jūs esate teisus:

LcdWriteCmd (0x0E) / / rodyti, žymeklį, Blink d.

ne LcdWriteCmd (0x0C);<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Labai tau ačiū!

Good luck to you!

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top