PIC en LCD probleem met het weergeven van

S

scorrpeio

Guest
Hallo,
Ik schreef een codeto scherm enkele gegevens op het LCD display.
Maar ik krijg niet alles op het scherm

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triest" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triest" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triest" border="0" />Code:# include <p18f4520.h># pragma config WDT = OFFvoid Delay (void);

void GetLCDCommand (void);

void GetLCDData (void);void main (void)

(

int index;

char a [10];

TRISA = 0x0; / / PORT A geconfigureerd in O / P-modus

TRISD = 0x00;

GetLCDCommand ();/ / Configure Weergeven als 2-line, 8-bit, 5x7-dots

PORTD = 0x38;

GetLCDCommand ();/ / krijg ik een knipperende cursor weergegeven

PORTD = 0x0F;

GetLCDCommand ();/ / om duidelijk display

PORTD = 0x01;

GetLCDCommand ();while (1)

(

PORTD = 0xff;

GetLCDData ();

))void Delay (void)

(

float index;

for (index = 0; index <10000; index )

(

/ / niets doen

))void GetLCDCommand (void)

(

int index;PORTA = 0b0010;

PORTA = 0b0000;

for (index = 0; index <1000; index )

(

)

)void GetLCDData (void)

(

int index;PORTA = 0b1010;

PORTA = 0b1000;

for (index = 0; index <1000; index )

(

))
 
Heeft u geprobeerd de aanpassing van het contrast spanning op de LCD?

 
Zorg ervoor dat PORTD is niet in PSP-modus.Geconfigureerd in TRISE

Meestal TRISE Bit4 = 0, moet 0 worden standaard.Maar ik wil er zeker en schraapte het.

De andere grote problemen is de timing.U bent waarschijnlijk gaat snel in de CFG geënsceneerd.Ik plak een xxxuS vertragingen tussen het LCD-CFG instructies.

U moet controleren op het LCD-data sheet.de tijden worden gegeven in.

Ik denk niet dat dit is zeer glad code, maar geven u een idee van de vertragingen, het OK was voor mijn toepassing.

U kunt altijd langzaam naar beneden, het werkend te krijgen, ze zijn beurt de snelheid omhoog.

IanCode:# define LCD_STROBE () ((LCD_EN = 1), (LCD_EN = 1), (LCD_EN = 1), (LCD_EN = 0))/ * Initialiseren het LCD - zetten in 4 bit mode * /

void lcd_init ()

(

char init_value;ADCON1 = 0x06; / / Disable analoge pinnen van PORTAinit_value = 0x3;

TRISD = 0;

LCD_RS = 0;

LCD_EN = 0;

LCD_RW = 0;__delay_ms (15); / / wacht 15mSec na macht toegepast,

LCD_DATA = init_value;

__delay_ms (20);

LCD_STROBE ();

__delay_ms (5);

LCD_STROBE ();

__delay_ms (5);

LCD_STROBE ();

__delay_us (200);

LCD_DATA = ((LCD_DATA & 0xF0) | 2); / / Vier bits modus

LCD_STROBE ();lcd_write (0x28) / / Set-interface lengte (Function Set)

lcd_write (0xF) / / Display On, cursor op, Cursor Blink

lcd_clear (); / / Scherm wissen

lcd_write (0x6); / / Set entry mode

)void lcd_write (unsigned char c)

(__delay_us (80);

LCD_DATA = ((LCD_DATA & 0xF0) | ((c>> 4) & 0x0F));

LCD_STROBE ();

__delay_us (5);

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

LCD_STROBE ();

)
 
Ja ...........
Ik probeerde aanpassing van het contrast

Eigenlijk ......... tijdens LCD "Command" ... het doet iets .......... eerste 4 tot 5 lijnen op de linker kant van LCD gaat aan en vervolgens automatisch verdwijnt uitToegevoegd na 2 uur en 31 minuten:Hallo,

Ik denk dat ik 4-bits LCD-scherm en programmeren met voor 8 bit.
Ik ben beetje in de war, Kindly laat het me weten ................... ik het beeld van het LCD-interface verbonden ben met de PIC
Sorry, maar je moet inloggen om deze gehechtheid

 
Heeft u de ADCON1 op 0x0F.= Alle Port A Digital.

ref: http://ww1.microchip.com/downloads/en/DeviceDoc/39631a.pdf
Pagina 105.

De andere PORTA pinnen zijn Multiplexed met analoge
ingangen, de analoge VREF en VREF-ingangen en de comparator
spanning referentie uitgang.De werking van pennen
RA3: RA0 en RA5 als A / D converter ingangen is geselecteerd
door clearing of het instellen van de controle-bits in het ADCON1
register (A / D Control Register 1).
Pins RA0 via RA5 kan ook worden gebruikt als comparator
in-of uitgangen door het vaststellen van de juiste bits in de
CMCON register.Voor het gebruik RA3: RA0 als digitale ingangen, is het
Ook moet het uitschakelen van de comparatoren.
De RA4/T0CKI/C1OUT pin is een Schmitt Trigger ingang.
Alle andere PORTA pinnen hebben TTL input levels en volledige
CMOS uitgang chauffeurs.

Ik zou persoonlijk gebruik van het display in 4bit modus en zet alle gegevens en de controle lijnen op naar Port D.

Ik heb mijn laatste werkdag gehecht LCD-code, zijn voor de HiTech Com.
Hoop dat dit helpt.

Groeten
Ian
Sorry, maar je moet inloggen om deze gehechtheid

 
Hoi.Ik zie niet opnemen voor LCD-bestand in je code zoals # include lcd.c bijvoorbeeld als u CCS C. BTW gebruikt die C-compiler gebruikt u?en versie.Dan kan ik proberen u te helpen met bijzonderheden.

 
Hoe zit het als we veranderen PORTD tot (DB7-DB4 LCD tot PORTD4-7) en E, RS te Portd2 en protd3 waar zijn de veranderingen in deze code kunt u gehecht M1ANH?

Bedankt

 

Welcome to EDABoard.com

Sponsor

Back
Top