LCD enostavne oznake

E

ericmar

Guest
Zdravo, lahko kdorkoli pls post preprost LCD koda za mene?Samo morate vedeti, kako se kažejo besede v 2x16 LCD.BTW, sem uporabo mikročipa PIC16F877!

Po možnosti v Hi-tech PIC C jeziku!

Pokušam rutinsko če jih pa še vedno
doesnt delo.

I'hv popolnoma ne sanja o programiranju LCD yet.

Hvala za pomoč vseeno!<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Nasmeh" border="0" />
 
Bi morali prebrati eno od LCD Faq's to okoli, na primer tukaj:
http://www.repairfaq.org/filipg/LINK/F_LCD_HD44780.html

Za Hi-Tech koda primeri preverite tukaj:
http://www.microchipc.com/sourcecode/

s spoštovanjem

 
To je primer v PicBasic Pro, vendar logika je ista.Preverite vaš LCD pin povezave in uporabo.

"PicBasic program za dokazovanje delovanja LCD v 4-bitni način
"
"LCD bi moral biti povezan, kakor sledi:
"LCD PIC
"DB4 PortA.0
"DB5 PortA.1
"DB6 PortA.2
"DB7 PortA.3
"RS PortA.4 (dodaj 4.7K pullup upor do 5 voltov)
"E PortB.3
"RW Ground
"Vdd 5 voltov
"Vss Ground
"Vo 20K potenciometra (ali tla)
"DB0-3 št povezati

ADCON1 = 7 'Porta na digitalno

Lcdout $ fe, 1
Zamrzni 500 "Počakajte LCD za zagonske

zanke: Lcdout $ fe, 1 'Clear LCD zaslon
Lcdout "Pozdravljeni" Display Pozdravljeni
Zamrzni 500 "Počakajte ,5 drugi

Lcdout $ fe, $ C0 "napisati v drugi vrstici
Lcdout "Svet"
Zamrzni 500 "Počakajte ,5 drugi

Goto zanka "Ali je vedno

s spoštovanjem

meax98

 
Poleg tega je določen nadzor kode za HD44780 temelji prikazuje:

1 = Počisti zaslon.
2 = Pošlji kazalko na vrh levo položaj.
8 = Prazna brez obračuna.
12 = Izvedi kurzor neviden / obnovil izpis če Neviden.
13 = Vključi vidna utripati kurzor.
14 = Vključi vidna poudarjajo kurzorja.
16 = Premakni kurzor en znak levo.
20 = Premakni kurzor en znak desno.
24 = Poiščite zaslonu en znak v levo (vse vrstice).
26 = Anketa tipkovnice
28 = Poiščite zaslonu en znak desno (vse vrstice).
35 = Kraj Velika mestno
58 = Vpišite Puferna Nazaj Status Mode
59 = Izhod Puferna Nazaj Status Mode
61 = Izvedi navpična vrstica Grafikon
65 = Samodejno prenosne Keypresses na
66 = ozadja Vključeno
67 = Samodejno Line zavijanje na .................( privzeto).
68 = Samodejno Line embaliranje off.
69 = Počisti Ključne Puferna
70 = ozadja Izključeno
71 = Pojdi na pozicijo.
72 = Pojdi v zgornjem levem.
74 = Cursor on.
75 = Cursor off .................................( privzeto).
76 = kurzor levo.
77 = kurzor desno.
78 = Ustvari Custom Character
79 = Samodejno prenosne Keypresses Off
80 = Kontrast
81 = pomaknite na Samodejna.
82 = Samodejno pomikanje dol ..........................( privzeto).
83 = Blink on.
84 = Blink izklop (privzeto).
85 = Nastavite Debounce Time
86 = Splošne namen proizvodnje na.
87 = Splošne namen proizvodnje off ........( privzeto).
88 = Počisti zaslon.
96 = Auto Repeat Mode Off
104 = inicializirati Vodoravna vrstica Grafikon
110 = Velike inicializirati Digits
115 = inicializirati thin Bar Vertical Graf
118 = inicializirati Thick navpična vrstica Grafikon
124 = Izvedi Vodoravna vrstica Grafikon
126 = Samodejni Repeat Mode Vključeno
192 = Premakni kurzor na prvo mesto na drugi liniji.

Uporabljajte jo z [$ FE, koda], kot LcdOut $ FE, 1 - LCD jasno ...

meax98

 
To je moja kodiranje v Hi-Tech PIC C!

# define XTAL_FREQ 8MHZ

__CONFIG (XT & WDTDIS & PWRTEN & LVPDIS & DUNPROT & DEBUGDIS);

neveljaven Glavni ()
(TRISA = 0x00;
TRISB = 0x00;
Porta = 0;
PORTB = 0;

/ / - Initialise LCD --
lcd_init ();

/ / - Počisti zaslon --
lcd_clear ();

/ / - Prikaži odpiranju sporočil --
lcd_puts ( "Testing LCD");
DelayMs (40);
PORTB = 0x00;
DelayMs (40);
)

 
does kdorkoli so preproste sorce kodo za uporabo z LCD PIC16F84.LCD je 16x1 in z HD44780 controller.It bi bilo dobro, če bi bilo v assembler.Probably osnovnega jezika bi bilo veliko easyer ampak i havnt našla freeware prevajalniki za osnovno ... če obstaja ...

Hvala!

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Nasmeh" border="0" />
 
zdravo
glej moje strani, vendar v Francoščinahttp://angeliz.free.fr

adijo

 
poskusi tole ...
/ / Xtal = 8Mhz
/ / LCD 4-bitni način
/ / LCD 16x2

# vključujejo <pic.h>
# vključujejo "delay.h"
# vključujejo "delay.c"

statična bit LCD_RS @ ((nepodpisanih) & Porte * 8 1); / / LCD Reg.Izberite
statična bit LCD_EN @ ((nepodpisanih) & Porte * 8 2); / / Enable LCD

# define LCD_STROBE ((LCD_EN = 1), (LCD_EN = 0))

nepotpisani char SCROLL_LEFT, CURSOR_OFF;

lcd_init neveljaven (ničen);
port_init neveljaven (ničen);
neveljaven lcd_write (nepodpisanih char c);
lcd_clear neveljaven (ničen);
neveljaven lcd_puts (const char * s);
neveljaven lcd_putch (char c);
neveljaven lcd_goto (nepodpisanih char c);
neveljaven lcd_scroll (char Smer);
lcd_home neveljaven (ničen);
neveljaven lcd_cursor (char onoff);

Glavni ()
(
port_init ();
lcd_init ();
lcd_goto (0x04);
lcd_puts ( "LCD TEST");
lcd_clear ();

medtem ko (1)
(
lcd_scroll (SCROLL_LEFT);
lcd_goto (0x40);
lcd_puts ( "Dobrodošli v LCD TEST");
DelayMs (150);
)
)

port_init neveljaven (ničen)
(
ADCON1 = 0b10000010;
TRISA = 0x3F;
TRISE = 0b00000000; / / Porte izhodno pristanišče
TRISD = 0b00000000; / / PORTD izhodno pristanišče
)

neveljaven lcd_write (nepodpisanih char c)
(

PORTD = (PORTD & 0xF0) | (c>> 4);
LCD_STROBE;
PORTD = (PORTD & 0xF0) | (c & 0x0F);
LCD_STROBE;
DelayUs (40);
)

lcd_clear neveljaven (ničen)
(
LCD_RS = 0;
lcd_write (0x1); / / - Počisti Zaslon
DelayMs (2);
lcd_write (0x02); / / - Domov zaslonu
DelayMs (2);
)

neveljaven lcd_puts (const char * s)
(
LCD_RS = 1; / / pišite znakov
medtem ko (* e)
lcd_write (* s );
)

neveljaven lcd_goto (nepodpisanih char pos)
(
LCD_RS = 0;
lcd_write (0x80 pos); / / - določa DDRAM Naslov
)

lcd_init neveljaven (ničen)
(
LCD_RS = 0; / / pišite nadzora bytes
DelayMs (15); / / moči na zamudo
PORTD = 0x3; / / pozor!
LCD_STROBE;
DelayMs (5);
LCD_STROBE;
DelayUs (100);
LCD_STROBE;
DelayMs (5);
PORTD = 0x2; / / sklop 4 bitni način
LCD_STROBE;
DelayUs (40);
lcd_write (0x28); / / 4 bit mode, 1 / 16 dajatev, 5x8 font
lcd_write (0x08); / / izklop zaslona
lcd_write (0x0F); / / izpis na Treptati curson o
lcd_write (0x06); / / Način vstopa
)

neveljaven putch (char c)
(
LCD_RS = 1; / / - pisanje črk
lcd_write (c);
)

neveljaven postavlja (char * s)
(
LCD_RS = 1; / / pišite znakov
medtem ko (* e)
lcd_write (* s );
)

neveljaven lcdprint (nepodpisanih char x, char * str nepodpisane)
(
lcd_goto (x);
lcd_puts (STR);
)

neveljaven lcd_scroll (char Direction)
(
LCD_RS = 0; / / - napišite ukaz
if (smer == SCROLL_LEFT)
(
lcd_write (0x18); / / - S / K = 1 R / L = 0 => Poiščite levi
)
še
(
lcd_write (0x1b); / / - S / K = 1 R / L = 1 => Poiščite PRAVICA
)
DelayMs (1);
)

lcd_home neveljaven (ničen)
(
LCD_RS = 0; / / - napišite ukaz
lcd_write (0x02); / / - Domov Everything
DelayMs (2);
)

neveljaven lcd_cursor (char onoff)
(
LCD_RS = 0;
if (onoff == CURSOR_OFF) / / - 0000 1DCB
(/ / - D = Prikaži C = B = Cursor Blink
lcd_write (0x0C); / / - D on / off = 1 C vklop / izklop = 0 B on / off = 0
)
še
(
lcd_write (0x0F); / / - D = 1 C = 1 B = 1 => O Cursor Blink
)
DelayMs (1);
)

 
imp je napisal:

poskusi tole ...

/ / Xtal = 8Mhz

/ / LCD 4-bitni način

/ / LCD 16x2# vključujejo <pic.h>

# vključujejo "delay.h"

# vključujejo "delay.c"statična bit LCD_RS @ ((nepodpisanih) & Porte * 8 1); / / LCD Reg.
Izberite

statična bit LCD_EN @ ((nepodpisanih) & Porte * 8 2); / / Enable LCD# define LCD_STROBE ((LCD_EN = 1), (LCD_EN = 0))nepotpisani char SCROLL_LEFT, CURSOR_OFF;lcd_init neveljaven (ničen);

port_init neveljaven (ničen);

neveljaven lcd_write (nepodpisanih char c);

lcd_clear neveljaven (ničen);

neveljaven lcd_puts (const char * s);

neveljaven lcd_putch (char c);

neveljaven lcd_goto (nepodpisanih char c);

neveljaven lcd_scroll (char Smer);

lcd_home neveljaven (ničen);

neveljaven lcd_cursor (char onoff);Glavni ()

(

port_init ();

lcd_init ();

lcd_goto (0x04);

lcd_puts ( "LCD TEST");

lcd_clear ();medtem ko (1)

(

lcd_scroll (SCROLL_LEFT);

lcd_goto (0x40);

lcd_puts ( "Dobrodošli v LCD TEST");

DelayMs (150);

)

)port_init neveljaven (ničen)

(

ADCON1 = 0b10000010;

TRISA = 0x3F;

TRISE = 0b00000000; / / Porte izhodno pristanišče

TRISD = 0b00000000; / / PORTD izhodno pristanišče

)neveljaven lcd_write (nepodpisanih char c)

(PORTD = (PORTD & 0xF0) | (c>> 4);

LCD_STROBE;

PORTD = (PORTD & 0xF0) | (c & 0x0F);

LCD_STROBE;

DelayUs (40);

)lcd_clear neveljaven (ničen)

(

LCD_RS = 0;

lcd_write (0x1); / / - Počisti Zaslon

DelayMs (2);

lcd_write (0x02); / / - Domov zaslonu

DelayMs (2);

)neveljaven lcd_puts (const char * s)

(

LCD_RS = 1; / / pišite znakov

medtem ko (* e)

lcd_write (* s );

)neveljaven lcd_goto (nepodpisanih char pos)

(

LCD_RS = 0;

lcd_write (0x80 pos); / / - določa DDRAM Naslov

)lcd_init neveljaven (ničen)

(

LCD_RS = 0; / / pišite nadzora bytes

DelayMs (15); / / moči na zamudo

PORTD = 0x3; / / pozor!

LCD_STROBE;

DelayMs (5);

LCD_STROBE;

DelayUs (100);

LCD_STROBE;

DelayMs (5);

PORTD = 0x2; / / sklop 4 bitni način

LCD_STROBE;

DelayUs (40);

lcd_write (0x28); / / 4 bit mode, 1 / 16 dajatev, 5x8 font

lcd_write (0x08); / / izklop zaslona

lcd_write (0x0F); / / izpis na Treptati curson o

lcd_write (0x06); / / Način vstopa

)neveljaven putch (char c)

(

LCD_RS = 1; / / - pisanje črk

lcd_write (c);

)neveljaven postavlja (char * s)

(

LCD_RS = 1; / / pišite znakov

medtem ko (* e)

lcd_write (* s );

)neveljaven lcdprint (nepodpisanih char x, char * str nepodpisane)

(

lcd_goto (x);

lcd_puts (STR);

)neveljaven lcd_scroll (char Direction)

(

LCD_RS = 0; / / - napišite ukaz

if (smer == SCROLL_LEFT)

(

lcd_write (0x18); / / - S / K = 1 R / L = 0 => Poiščite levi

)

še

(

lcd_write (0x1b); / / - S / K = 1 R / L = 1 => Poiščite PRAVICA

)

DelayMs (1);

)lcd_home neveljaven (ničen)

(

LCD_RS = 0; / / - napišite ukaz

lcd_write (0x02); / / - Domov Everything

DelayMs (2);

)neveljaven lcd_cursor (char onoff)

(

LCD_RS = 0;

if (onoff == CURSOR_OFF) / / - 0000 1DCB

(/ / - D = Prikaži C = B = Cursor Blink

lcd_write (0x0C); / / - D on / off = 1 C vklop / izklop = 0 B on / off = 0

)

še

(

lcd_write (0x0F); / / - D = 1 C = 1 B = 1 => O Cursor Blink

)

DelayMs (1);

)
 
ericmar wrote:

hi imp,

Thanks for ur help!
To je vsekakor odličen primer za mene.
Vendar pa lahko vem, wat Porta se uporabljajo za v Ur kodo?

 
hi ericmar,

Koda je napisana za PIC16F877, njena inbuild ADC.
ADCON1 se uporablja za konfiguriranje pristanišču zatiči za PORT-A in Port-E.

ADCON1 = 0b10000010;
-> Pomeni, da so vsi žebljički v pristanišču-A so analogni i / p.
in vse nožice za PORT-E so digitalne I /
O nožice.

Pred kodo vključuje ADC del tudi, i odstraniti, ker
o que Ur., nanaša samo na LCD, vendar še nisem spomnil, da predložijo svoje pripombe
TRISA, če to naredi zmedo, se opravičujem za napako.

Za boljše razumevanje iti thro "na obrazcu.

IMP

 
imp je napisal:

hi ericmar,Koda je napisana za PIC16F877, njena inbuild ADC.

ADCON1 se uporablja za konfiguriranje pristanišču zatiči za PORT-A in Port-E.ADCON1 = 0b10000010;

-> Pomeni, da so vsi žebljički v pristanišču-A so analogni i / p.

in vse nožice za PORT-E so digitalne I / O nožice.IMP
 
Hi-tech PIC C jezika, si oglejte v mestu
http://www.microchipc.com/<img src="http://www.edaboard.com/images/smiles/icon_surprised.gif" alt="Presenečen" border="0" />

nooknikz

 
lcd.h

/ / filename: lcd.h

//***********************************************
/ / # define NOP () ASM ( "NOP");
# define E PORTDbits.RD1
# define WR PORTDbits.RD2
# define RS PORTDbits.RD3
//***********************************************

//***********************************************
Cursor_On neveljaven (ničen);
Lcd_Clear neveljaven (ničen);
Lcd_Line2 neveljaven (ničen);
Lcd_Line1 neveljaven (ničen);
Lcd_Shift neveljaven (ničen);
Cursor_Right neveljaven (ničen);
Cursor_Left neveljaven (ničen);
neveljaven Lcd_Puts (const char * ROM-ov);
Init_Lcd neveljaven (ničen);
neveljaven Write_Lcd_Cmd (nepodpisanih char cmd);
neveljaven Write_Lcd_Data (nepodpisanih char data);
neveljaven Lcd_Goto (nepodpisanih char pos);
//***********************************************

lcd.c
/ / filename: lcd.c

# vključujejo <delays.h>
# vključujejo "lcd.h"

Init_Lcd neveljaven (ničen) / / inicializacijo LCD zaslona
(

PORTD = 0x01;
TRISD = 0;
Delay10KTCYx (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />

;
PORTD = 0x31;
E = 1;
Nop ();
E = 0;
Delay10KTCYx (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />

;
PORTD = 0x31;
E = 1;
Nop ();
E = 0;
Delay10TCYx (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />

;
PORTD = 0x31;
E = 1;
Nop ();
E = 0;
Delay10KTCYx (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />

;
PORTD = 0x21;
E = 1;
Nop ();
E = 0;
Delay10KTCYx (3);
Write_Lcd_Cmd (0x28); / / define 4 bit vmesnik, 2 črtici.5x7 pik
Write_Lcd_Cmd (0x0c); / / izpis na kazalko na Treptati off
Write_Lcd_Cmd (0x01); / / jasen prikaz
Write_Lcd_Cmd (0x06); / / vpis nastavljenim ..
Write_Lcd_Cmd (0x28);
)

neveljaven Write_Lcd_Cmd (nepodpisanih char cmd) / / subroutiune za LCD ukazov
(
char x;
x = cmd | 0x01;
PORTD = x & 0xf1;
E = 1;
Nop ();
E = 0;
x = (cmd <<4) | 0x01;
PORTD = x & 0xf1;
E = 1;
Nop ();
E = 0;
Delay10KTCYx (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />

;

)

neveljaven Write_Lcd_Data (nepodpisanih char data) / / Potprogram za LCD podatkov
(
nepotpisani char x;
PORTD = 0x01;
x = podatki | 0x01;
RS = 1;
PORTD = x & 0xf1;
RS = 1;
E = 1;
Nop ();
E = 0;
x = (podatke <<4) | 0x01;
PORTD = x & 0xf1;
RS = 1;
E = 1;
Nop ();
E = 0;
RS = 0;
Delay10KTCYx (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />

;
PORTDbits.RD0 = 1;
)

Cursor_On neveljaven (ničen) (Write_Lcd_Cmd (0x0f);)
Lcd_Clear neveljaven (ničen) (Write_Lcd_Cmd (0x01);)
Lcd_Line2 neveljaven (ničen) (Write_Lcd_Cmd (0xc0);)
Lcd_Line1 neveljaven (ničen) (Write_Lcd_Cmd (0x02);)
Lcd_Shift neveljaven (ničen) (Write_Lcd_Cmd (0x1c);)
Cursor_Right neveljaven (ničen) (Write_Lcd_Cmd (0x14);)
Cursor_Left neveljaven (ničen) (Write_Lcd_Cmd (0x10);)

neveljaven Lcd_Puts (const char * ROM-ov)

(
medtem ko (* e)
(
Write_Lcd_Data (* e);
i ;
)
)

neveljaven Lcd_Goto (nepodpisanih char pos)
(
Write_Lcd_Cmd (0x80 pos);
)

 
muko wrote:

lcd.h/ / filename: lcd.h//***********************************************

/ / # define NOP () ASM ( "NOP");

# define E PORTDbits.RD1

# define WR PORTDbits.RD2

# define RS PORTDbits.RD3

//***********************************************//***********************************************

Cursor_On neveljaven (ničen);

Lcd_Clear neveljaven (ničen);

Lcd_Line2 neveljaven (ničen);

Lcd_Line1 neveljaven (ničen);

Lcd_Shift neveljaven (ničen);

Cursor_Right neveljaven (ničen);

Cursor_Left neveljaven (ničen);

neveljaven Lcd_Puts (const char * ROM-ov);

Init_Lcd neveljaven (ničen);

neveljaven Write_Lcd_Cmd (nepodpisanih char cmd);

neveljaven Write_Lcd_Data (nepodpisanih char data);

neveljaven Lcd_Goto (nepodpisanih char pos);

//***********************************************lcd.c

/ / filename: lcd.c# vključujejo <delays.h>

# vključujejo "lcd.h"Init_Lcd neveljaven (ničen) / / inicializacijo LCD zaslona

(PORTD = 0x01;

TRISD = 0;

Delay10KTCYx (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" /> ;

PORTD = 0x31;

E = 1;

Nop ();

E = 0;

Delay10KTCYx (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" /> ;

PORTD = 0x31;

E = 1;

Nop ();

E = 0;

Delay10TCYx (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" /> ;

PORTD = 0x31;

E = 1;

Nop ();

E = 0;

Delay10KTCYx (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" /> ;

PORTD = 0x21;

E = 1;

Nop ();

E = 0;

Delay10KTCYx (3);

Write_Lcd_Cmd (0x28); / / define 4 bit vmesnik, 2 črtici.
5x7 pik

Write_Lcd_Cmd (0x0c); / / izpis na kazalko na Treptati off

Write_Lcd_Cmd (0x01); / / jasen prikaz

Write_Lcd_Cmd (0x06); / / vpis nastavljenim ..

Write_Lcd_Cmd (0x28);

)neveljaven Write_Lcd_Cmd (nepodpisanih char cmd) / / subroutiune za LCD ukazov

(

char x;

x = cmd | 0x01;

PORTD = x & 0xf1;

E = 1;

Nop ();

E = 0;

x = (cmd <<4) | 0x01;

PORTD = x & 0xf1;

E = 1;

Nop ();

E = 0;

Delay10KTCYx (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" /> ;)neveljaven Write_Lcd_Data (nepodpisanih char data) / / Potprogram za LCD podatkov

(

nepotpisani char x;

PORTD = 0x01;

x = podatki | 0x01;

RS = 1;

PORTD = x & 0xf1;

RS = 1;

E = 1;

Nop ();

E = 0;

x = (podatke <<4) | 0x01;

PORTD = x & 0xf1;

RS = 1;

E = 1;

Nop ();

E = 0;

RS = 0;

Delay10KTCYx (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" /> ;

PORTDbits.RD0 = 1;

)Cursor_On neveljaven (ničen) (Write_Lcd_Cmd (0x0f);)

Lcd_Clear neveljaven (ničen) (Write_Lcd_Cmd (0x01);)

Lcd_Line2 neveljaven (ničen) (Write_Lcd_Cmd (0xc0);)

Lcd_Line1 neveljaven (ničen) (Write_Lcd_Cmd (0x02);)

Lcd_Shift neveljaven (ničen) (Write_Lcd_Cmd (0x1c);)

Cursor_Right neveljaven (ničen) (Write_Lcd_Cmd (0x14);)

Cursor_Left neveljaven (ničen) (Write_Lcd_Cmd (0x10);)neveljaven Lcd_Puts (const char * ROM-ov)(

medtem ko (* e)

(

Write_Lcd_Data (* e);

i ;

)

)neveljaven Lcd_Goto (nepodpisanih char pos)

(

Write_Lcd_Cmd (0x80 pos);

)
 
Ali ima kdo kodo za inicializacijo "Res LCD Modul MTC-C162DPRN-2N"?
BasicStamp programiranja je prednost.Hvala lepa!

 
Robo je napisal:

Ali ima kdo kodo za inicializacijo "Res LCD Modul MTC-C162DPRN-2N"?

BasicStamp programiranja je prednost.
Hvala lepa!
 
Uau, izgleda, da je dober kraj za začetek z.Bom ga ...
Hvala Nick!

 
imp je napisal:

poskusi tole ...

/ / Xtal = 8Mhz

/ / LCD 4-bitni način

/ / LCD 16x2# vključujejo <pic.h>

# vključujejo "delay.h"

# vključujejo "delay.c"statična bit LCD_RS @ ((nepodpisanih) & Porte * 8 1); / / LCD Reg.
Izberite

statična bit LCD_EN @ ((nepodpisanih) & Porte * 8 2); / / Enable LCD# define LCD_STROBE ((LCD_EN = 1), (LCD_EN = 0))nepotpisani char SCROLL_LEFT, CURSOR_OFF;lcd_init neveljaven (ničen);

port_init neveljaven (ničen);

neveljaven lcd_write (nepodpisanih char c);

lcd_clear neveljaven (ničen);

neveljaven lcd_puts (const char * s);

neveljaven lcd_putch (char c);

neveljaven lcd_goto (nepodpisanih char c);

neveljaven lcd_scroll (char Smer);

lcd_home neveljaven (ničen);

neveljaven lcd_cursor (char onoff);Glavni ()

(

port_init ();

lcd_init ();

lcd_goto (0x04);

lcd_puts ( "LCD TEST");

lcd_clear ();medtem ko (1)

(

lcd_scroll (SCROLL_LEFT);

lcd_goto (0x40);

lcd_puts ( "Dobrodošli v LCD TEST");

DelayMs (150);

)

)port_init neveljaven (ničen)

(

ADCON1 = 0b10000010;

TRISA = 0x3F;

TRISE = 0b00000000; / / Porte izhodno pristanišče

TRISD = 0b00000000; / / PORTD izhodno pristanišče

)neveljaven lcd_write (nepodpisanih char c)

(PORTD = (PORTD & 0xF0) | (c>> 4);

LCD_STROBE;

PORTD = (PORTD & 0xF0) | (c & 0x0F);

LCD_STROBE;

DelayUs (40);

)lcd_clear neveljaven (ničen)

(

LCD_RS = 0;

lcd_write (0x1); / / - Počisti Zaslon

DelayMs (2);

lcd_write (0x02); / / - Domov zaslonu

DelayMs (2);

)neveljaven lcd_puts (const char * s)

(

LCD_RS = 1; / / pišite znakov

medtem ko (* e)

lcd_write (* s );

)neveljaven lcd_goto (nepodpisanih char pos)

(

LCD_RS = 0;

lcd_write (0x80 pos); / / - določa DDRAM Naslov

)lcd_init neveljaven (ničen)

(

LCD_RS = 0; / / pišite nadzora bytes

DelayMs (15); / / moči na zamudo

PORTD = 0x3; / / pozor!

LCD_STROBE;

DelayMs (5);

LCD_STROBE;

DelayUs (100);

LCD_STROBE;

DelayMs (5);

PORTD = 0x2; / / sklop 4 bitni način

LCD_STROBE;

DelayUs (40);

lcd_write (0x28); / / 4 bit mode, 1 / 16 dajatev, 5x8 font

lcd_write (0x08); / / izklop zaslona

lcd_write (0x0F); / / izpis na Treptati curson o

lcd_write (0x06); / / Način vstopa

)neveljaven putch (char c)

(

LCD_RS = 1; / / - pisanje črk

lcd_write (c);

)neveljaven postavlja (char * s)

(

LCD_RS = 1; / / pišite znakov

medtem ko (* e)

lcd_write (* s );

)neveljaven lcdprint (nepodpisanih char x, char * str nepodpisane)

(

lcd_goto (x);

lcd_puts (STR);

)neveljaven lcd_scroll (char Direction)

(

LCD_RS = 0; / / - napišite ukaz

if (smer == SCROLL_LEFT)

(

lcd_write (0x18); / / - S / K = 1 R / L = 0 => Poiščite levi

)

še

(

lcd_write (0x1b); / / - S / K = 1 R / L = 1 => Poiščite PRAVICA

)

DelayMs (1);

)lcd_home neveljaven (ničen)

(

LCD_RS = 0; / / - napišite ukaz

lcd_write (0x02); / / - Domov Everything

DelayMs (2);

)neveljaven lcd_cursor (char onoff)

(

LCD_RS = 0;

if (onoff == CURSOR_OFF) / / - 0000 1DCB

(/ / - D = Prikaži C = B = Cursor Blink

lcd_write (0x0C); / / - D on / off = 1 C vklop / izklop = 0 B on / off = 0

)

še

(

lcd_write (0x0F); / / - D = 1 C = 1 B = 1 => O Cursor Blink

)

DelayMs (1);

)
 

Welcome to EDABoard.com

Sponsor

Back
Top