Sari la conținut
ELFORUM - Forumul electronistilor

PIC18F97J60 si SC1602A


Vizitator Mareshal

Postări Recomandate

Vizitator Mareshal

Vreau sa aprind LCD-ul(SC1602A) de pe placa de la olimex: Olimex Maxi Web (Schema la pagina 8: http://www.olimex.com/dev/pdf/PIC/PIC-MAXI-WEB.pdf).

 

Am codul asta

#define LCD_PORT PORTE#define LCD_E PORTHbits.RH0#define LCD_RW PORTHbits.RH1#define LCD_L PORTGbits.RG5	TRISE = 0;        LCD_L = 0;	LCD_PORT = 0;	LCD_PORT = (LCD_PORT & 0x0F) | ('c' & 0xF0);	LCD_E = 0;

Am incercat sa dau tot portul G ca output, dar tot nu vrea. Ratez ceva, si nu stiu unde.

Link spre comentariu
  • Răspunsuri 15
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • MatyC

    6

  • kit

    2

  • ramsesrr

    1

Top autori în acest subiect

lipseste initializarea lcd-ului?OpenXLCD(FOUR_BIT & LINES_5X7);asta daca folosesti C18.in plus, primul lucru pe care-l faci este sa initializezi lcd-ul, abia apoi faci si alte initializari.baftalein plus, scrierea pe lcd se face cu strcpypgm2ram(lcd,"terminat");putsXLCD(lcd);sau putrsXLCD("terminat");mai trebuie apoi sa modifici xlcd.h pentru a fi conform cu ce ai tu pe placa (portul de date si pinii de comanda)indicat ar fi sa citesti datasheetul lcd-ului, acolo gasesti date complete despre toate astea.

Link spre comentariu

Dupa cum vad portul G bitul 5 este folosit pentru control PWM al iluminari afisajului. Nu are nici o legatura cu afisarea caracterelor pe afisaj. Insa nu am inteles ce problema ai. Nu se aprinde ledul de backlight sau nu reusesti sa initializezi LCD-ul?Bucata de cod prezentata nu ne ajuta cu nimic.

Link spre comentariu
Vizitator Mareshal

Prima problema e sa aprind lumina de fundal

 

@kit

/* DATA_PORT defines the port to which the LCD data lines are connected */ #define DATA_PORT      		PORTE #define TRIS_DATA_PORT 		TRISE/* CTRL_PORT defines the port where the control lines are connected. * These are just samples, change to match your application. */ #define RW_PIN   LATHbits.LATH1   		/* PORT for RW */ #define TRIS_RW  TRISHbits.TRISH1    	/* TRIS for RW */ #define RS_PIN   LATHbits.LATH2   		/* PORT for RS */ #define TRIS_RS  TRISHbits.TRISH2    	/* TRIS for RS */ #define E_PIN    LATHbits.LATH0  		/* PORT for D  */ #define TRIS_E   TRISHbits.TRISH0    	/* TRIS for E  */

+

 

OpenXLCD(FOUR_BIT & LINES_5X7);

Am incercat si rutina de scriere, si tot numic.

 

LE: Conform datasheetului: http://microelect.net/lcd/charact/SC1602A.pdf , pinul 2-lea este VDD cu un max de 5V. Am masurat acum si am 1.25V pe el. Si aproape toti ceilalti pini au la fel.

Link spre comentariu

Pai nu e bine cu tensiunile. Din pdf-ul placi vad ca LCD-ul se conecteaza direct la 5V, care este activ prin shuntarea jumperului 5V_E. Insa tot in document se specifica ca default este in scurt. Este un pad pe pcb care se cositoreste sau nu. Verifica pentru inceput problema tensiunilor. Procesorul este alimentat la 3,3v care la fel are un jumper.L.E Afisajul chiar daca scrie SC1602 tine cont ca la baza este un HD44780.

Link spre comentariu
Vizitator Mareshal

Cu alimentarea am rezolvat. Am si un potentiometru care regleaza contrastul(cu surubelnita). Mai e problema scrierii.

 

LE: se blocheaza aici: OpenXLCD(FOUR_BIT & LINES_5X7);

 

Am modificat programul sa arate asa

// aprinde ledPORTJbits.RJ0 = 0xFF;	Delay1KTCYx(2);		OpenXLCD(FOUR_BIT & LINES_5X7);		LCD_L = 0;	// light LCD	LCD_PORT = 0;	LCD_PORT = (LCD_PORT & 0x0F) | ('c' & 0xF0);	LCD_E = 0;	// stinge led	PORTJbits.RJ0 = 0x00;	Delay1KTCYx(2);

La executare, led-ul ramane aprins, deci nu programul nu trece de initializarea LCDului

Link spre comentariu

// stinge led   PORTJbits.RJ0 = 0x00;   Delay1KTCYx(2);

Ce treaba are ledul cu Portul J? Ledul de backlight este clar pe portul G.5, plus ca este definit mai sus ca LED_L.

LED_L = 0; sau LED_L=1; face diferenta intre aprins sau stins.

 

Ai instalat TCP/IP Stack de la microchip? L-ai patch-uit cu cel de la olimex?

 

L.E Mda. Vad ca patch-ul de la Olimex nu este pentru versiunea actuala de la microchip. Citeste documentul lui Tom Nguyen.

Link spre comentariu
Vizitator Mareshal

Am aprins doar un led de control, care se afla pe placa. il aprind, initializez LCD-ul, il sting. Dar din moment ce el sta aprins, e clar ca nu trece de rutina de initializare. Am dreptate sau nu ?Ce treaba are stiva tcp/ip cu LCD-ul ? :jytuiyu

Link spre comentariu

Ma gandeam la ledul de backlight. Vad ca folosesti C18, ma gandeam ca folosesti librariile de la Olimex. Pe asta nu l-am studiat.Care este timpul intre aprinderea si stingerea ledului galben?

Link spre comentariu

Cine crezi ca a mai cumparat placa aia de dezvoltare? Toate sfaturile care le vei primi sunt ca idee generala. Pe situl la olimex ai tot ce trebuie in afara de rabdare. http://olimex.com/dev/pdf/PIC/PIC-MAXI-WEB%20tom%20nguyen.pdf este un document facut de un alt utilizator al plăci care ai cumparat-o. Si acolo ai sa afli ce este "TCP/IP Stack" parte componenta al kitului de dezvoltare oferit de Microchip sub numele de "Microchip Solution", care in momentul de fata versiunea oferita pe situl microchip nu mai corespunde patch-ului oferit de Olimex.

Insa am observat ca nu foloseshti asha ceva ci mergi direct cu C18. Eu nu am lucrat cu el, dar sunt informatii destule pe net. Din bucata aia de cod cu ledul aprins si stins, ar trebui sa mearga. Dar scuza-ma, ca eu shtiu ce inseama "arigato" insa nu trebuie sa afirm ca stiu japoneza.

Posteaza tot codul sursa sa vedem in ansamblu ce ai facut. kit vad ca a lucrat mai mult cu C18. Eu am testat limbajul C cu cc5x si Hitech.

Link spre comentariu

LE: se blocheaza aici: OpenXLCD(FOUR_BIT & LINES_5X7);

pai daca ai aflat la care functie se blocheaza, mergi cu executia pas cu pas si in interiorul acesteia, sa vezi la care instructiune ia o pauza. posibil sa ia pauza la una din liniile ce contin:while( BusyXLCD() );de fapt, cel mai probabil la prima aparitie. in cazul asta, verifica pinii, tensiunile, configuratia xlcd.h...schimbarea platformei nu ajuta cu nimic. solutii magice nu exista, exista doar toceala si iar toceala. urmata de multa munca.bafta!
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări