Re: Problemos su PIC18F4620 ir LCD

M

mariale442

Guest
I'm migruojančias mano PIC18F452 kodą į PIC18F4620 ir aš pakimba su LCD kodas.Kokia buvo darbo baudą į 452 dabar ne į 4620.
Ar kas nors susidūrė su tokio pobūdžio problemomis.

Tai prety labai svarbu man, kad tai darbas, kad bet kokia pagalba bus vertinama.

Dėkoju jums visiems.

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" />

Parašytas po 16 minučių:Tai mano kodas.

Nežinau, kuri yra problema

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" />-------------------------------------------------- ---------------------------------------------
Tai failą:
-------------------------------------------------- ---------------------------------------------

#
include "lcdconfig.h"
#
include <p18f4620.h>

VOID lcd_wait ();
VOID lcd_init ();
VOID wrcmd (char);

VOID sustabdyti (INT num)
/ / Elektrifikavimo kasdieninį sustabdyti už
/ / Tam tikrą laikotarpį.
(While (p -)
(/ * neveikimas * /
)
)

VOID lcd_init ()
/ / Initialise LCD ekranas.
(PORTA = TRISA = 0;
TRISB = PORTB = 0xFF;
ADCON1 = 7;
wrcmd (0x30); / / 8-bit mode - 1 eilutė.
wrcmd (LCD_SETVISIBLE
0 x04); / / Rodyti tik - ne ymeklis.
wrcmd (LCD_SETMODE
0 x02); / / Automatinis didinti - Rodyti perėjimas į kairę.
wrcmd (LCD_SETDDADDR
0 x0F); / / Pradinė pozicija dešinėje.
)

VOID clearscreen ()
/ / Clear LCD ekrano ir iš naujo
/ / Pradinę padėtį.
(Wrcmd (LCD_CLS);
wrcmd (LCD_SETDDADDR
0 x00);
)

/***** Elektrifikavimo funkcijos *****/

/ / Rašyti komandą LCD ekranas.
VOID wrcmd (CHAR cmdcode)
(TRISB = 0;
PORTB = cmdcode;

/ / Rašykite PORTB su sklende duomenis į ekraną.
/ / Toggle Pin "E" siųsti komandą.
PORTA = LCD_CMD_WR;
PORTA | = E_PIN_MASK;

Nop ();
PORTA & = ~ E_PIN_MASK;

lcd_wait ();
)

VOID wrdata (CHAR duomenų)
/ / Rašyti Rašmenų į LCD.
(TRISB = 0;
PORTB = duomenys;

PORTA = LCD_DATA_WR;
PORTA | = E_PIN_MASK;

Nop ();

PORTA & = ~ E_PIN_MASK;

lcd_wait ();
)

/ / Palaukite LCD užimtas vėliava aiškus.
VOID lcd_wait ()
(Byte statusą;
TRISB = 0xFF;

PORTA = LCD_BUSY_RD;
daryti
(PORTA | = E_PIN_MASK;

Nop ();

status = PORTB;
PORTA & = ~ E_PIN_MASK;
) While (statusas & 0x80);
)

CHAR BUF [16] = "1. Consultar";

/ / Initialise mūsų kintamieji ir skambinti
/ / Asamblėjos kasdieninį į Initialise LCD ekranas.

VOID calc_display (CHAR BUF [16])
/ / Naudoti Išvesties ir Clearscreen kasdienybe iš
/ / * LCD_Write * surinkimo failą išvesties ascii vertės LCD.
(INT8 i;
clearscreen ();
for (i = 0; i <strlen (BUF); i )
/ / (If (BUF [calc_testkey (BUF ) | | BUF == 0x2D)
(
wrdata (BUF );
Pauzė (5000);
)
/ /)
)Void main (void)
(Lcd_init ();
calc_display (BUF);
)-------------------------------------------------- ---------------------------------------------
tai yra failo pavadinimu:
-------------------------------------------------- ---------------------------------------------

Typedef tuščia VOID;
Typedef int INT;
Typedef pasirašė char INT8;
Typedef pasirašė int INT16;
Typedef pasirašė ilgai Int32;
Typedef Nepasirašytos trumpas;
Typedef char CHAR;
typedef unsigned char byte;
Typedef dvigubo plaustas;
Typedef ilgai ilgai;
Typedef INT8 BOOL;

/ / LCD Config

# define MAX_DISPLAY_CHAR 16/ / LCD registrų adresai (UOSTO B)
# define LCD_CMD_WR 0x00
# define LCD_DATA_WR 0x01
# define LCD_BUSY_RD 0x02
# define LCD_DATA_RD 0x03

/ / LCD Komandos
# define LCD_CLS 0x01
# define LCD_HOME 0x02
# define LCD_SETMODE 0x04
# define LCD_SETVISIBLE 0x08
# define LCD_SHIFT 0x10
# define LCD_SETFUNCTION 0x20
# define LCD_SETCGADDR 0x40
# define LCD_SETDDADDR 0x80

# define E_PIN_MASK 0x04

# define FALSE 0
# define TRUE 1

-------------------------------------------------- ------------------------------------------
padėti meeeeeee ...

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying ar Labai liūdna" border="0" />
 
Max mariale442

Man buvo įdomu, kodėl tu negali pereiti prie rekomenduojama 18F4520 kuris yra beveik viename luste - galbūt jums reikės didesnių Flash ir 4620?

Migracija į 4620 reikia truputį daugiau priežiūros.

Pabandykite ADCON0 ir ADCON1 - jie nėra indentical dėl 452
ir 4620
Manau, jūsų problema gali būti LCD initalisation srityje.- Aš ne tikrinamos išsamiai.

...Viešųjų

 

Welcome to EDABoard.com

Sponsor

Back
Top