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;
)
)
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;
)
)