M
mariale442
Guest
Ja som sa sťahuje moje PIC18F452 kód do PIC18F4620 a som uviazol s LCD kódu.Čo bolo v poriadku na 452 teraz nie je v 4620.
Má niekto stretol s týmto typom problémov.
Je preto veľmi dôležité, pre mňa, aby to fungovať tak akýkoľvek druh pomoci by ocenili.
Ďakujem vám všetkým.
<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />
Pridané po 16 minútach:To je môj kód.
Neviem, čo je problém
<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />-------------------------------------------------- ---------------------------------------------
Toto je zdrojový súbor:
-------------------------------------------------- ---------------------------------------------
#
Include "lcdconfig.h"
#
Include <p18f4620.h>
Void lcd_wait ();
Void lcd_init ();
Void wrcmd (CHAR);
Void pauza (INT num)
/ / Utility a tak pauza pre
/ / A dobu.
(While (num -)
(/ * Nič robiť * /
)
)
Void lcd_init ()
/ / Inicializova na LCD displeja.
(PORTA = TRIS = 0;
TRISB = PORTB = 0xFF;
ADCON1 = 7;
wrcmd (0x30); / / 8-bit režim - 1 line.
wrcmd (LCD_SETVISIBLE 0 X04); / / Zobraz iba - bez kurzorov.
wrcmd (LCD_SETMODE 0 x02); / / Automatická inkrementace - Displej posun doľava.
wrcmd (LCD_SETDDADDR 0 x0F); / / východiskovej polohy krajnej pravice.
)
Void clearscreen ()
/ / Clear LCD obrazovka a reset
/ / Počiatočné pozície.
(Wrcmd (LCD_CLS);
wrcmd (LCD_SETDDADDR 0 x00);
)
/***** Užitkové funkcie *****/
/ / Napíš príkaz na LCD displeji.
Void wrcmd (CHAR cmdcode)
(TRISB = 0;
PORTB = cmdcode;
/ / PORTB Napíšte na západku dát do displeja.
/ / Prepínač Pin 'E' poslať príkaz.
PORTA = LCD_CMD_WR;
PORTA | = E_PIN_MASK;
Nop ();
PORTA & = ~ E_PIN_MASK;
lcd_wait ();
)
Void wrdata (CHAR data)
/ /
Write znak na LCD displeja.
(TRISB = 0;
PORTB = data;
PORTA = LCD_DATA_WR;
PORTA | = E_PIN_MASK;
Nop ();
PORTA & = ~ E_PIN_MASK;
lcd_wait ();
)
/ /
Wait for LCD obsadené vlajku jasné.
Void lcd_wait ()
(BYTE postavenie;
TRISB = 0xFF;
PORTA = LCD_BUSY_RD;
robiť
(PORTA | = E_PIN_MASK;
Nop ();
status = PORTB;
PORTA & = ~ E_PIN_MASK;
) While (stav & 0x80);
)
BUF CHAR [16] = "1. Consultar";
/ / Inicializova našej premenné a volania
/ / Zhromaždenie rutinné inicializovať na LCD displeji.
Void calc_display (BUF CHAR [16])
/ / Pomocou výstupu a Clearscreen rutin z
/ / * * LCD_Write montáž do výstupného súboru ASCII hodnôt na LCD.
(INT8 i;
clearscreen ();
for (i = 0; i <strlen (BUF), i )
/ / (If (BUF [calc_testkey (BUF ) | | BUF == 0x2D)
(
wrdata (BUF );
pause (5000);
)
/ /)
)Void main (void)
(Lcd_init ();
calc_display (BUF);
)-------------------------------------------------- ---------------------------------------------
toto je hlavička súboru:
-------------------------------------------------- ---------------------------------------------
typedef void Void;
typedef int INT;
typedef char INT8 podpísaná;
typedef int podpísaná INT16;
typedef podpísaná dlho INT32;
typedef unsigned krátke WORD;
typedef char CHAR;
typedef unsigned char BYTE;
typedef float dvojaký;
typedef dlhá dlhá;
typedef INT8 Bool;
/ / LCD Config
#
Define MAX_DISPLAY_CHAR 16/ / LCD registroch adresy (Port B)
#
Define LCD_CMD_WR 0x00
#
Define LCD_DATA_WR 0x01
#
Define LCD_BUSY_RD 0x02
#
Define LCD_DATA_RD 0x03
/ / LCD Príkazy
#
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
-------------------------------------------------- ------------------------------------------
pomozte meeeeeee ...
<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />
Má niekto stretol s týmto typom problémov.
Je preto veľmi dôležité, pre mňa, aby to fungovať tak akýkoľvek druh pomoci by ocenili.
Ďakujem vám všetkým.
<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />
Pridané po 16 minútach:To je môj kód.
Neviem, čo je problém
<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />-------------------------------------------------- ---------------------------------------------
Toto je zdrojový súbor:
-------------------------------------------------- ---------------------------------------------
#
Include "lcdconfig.h"
#
Include <p18f4620.h>
Void lcd_wait ();
Void lcd_init ();
Void wrcmd (CHAR);
Void pauza (INT num)
/ / Utility a tak pauza pre
/ / A dobu.
(While (num -)
(/ * Nič robiť * /
)
)
Void lcd_init ()
/ / Inicializova na LCD displeja.
(PORTA = TRIS = 0;
TRISB = PORTB = 0xFF;
ADCON1 = 7;
wrcmd (0x30); / / 8-bit režim - 1 line.
wrcmd (LCD_SETVISIBLE 0 X04); / / Zobraz iba - bez kurzorov.
wrcmd (LCD_SETMODE 0 x02); / / Automatická inkrementace - Displej posun doľava.
wrcmd (LCD_SETDDADDR 0 x0F); / / východiskovej polohy krajnej pravice.
)
Void clearscreen ()
/ / Clear LCD obrazovka a reset
/ / Počiatočné pozície.
(Wrcmd (LCD_CLS);
wrcmd (LCD_SETDDADDR 0 x00);
)
/***** Užitkové funkcie *****/
/ / Napíš príkaz na LCD displeji.
Void wrcmd (CHAR cmdcode)
(TRISB = 0;
PORTB = cmdcode;
/ / PORTB Napíšte na západku dát do displeja.
/ / Prepínač Pin 'E' poslať príkaz.
PORTA = LCD_CMD_WR;
PORTA | = E_PIN_MASK;
Nop ();
PORTA & = ~ E_PIN_MASK;
lcd_wait ();
)
Void wrdata (CHAR data)
/ /
Write znak na LCD displeja.
(TRISB = 0;
PORTB = data;
PORTA = LCD_DATA_WR;
PORTA | = E_PIN_MASK;
Nop ();
PORTA & = ~ E_PIN_MASK;
lcd_wait ();
)
/ /
Wait for LCD obsadené vlajku jasné.
Void lcd_wait ()
(BYTE postavenie;
TRISB = 0xFF;
PORTA = LCD_BUSY_RD;
robiť
(PORTA | = E_PIN_MASK;
Nop ();
status = PORTB;
PORTA & = ~ E_PIN_MASK;
) While (stav & 0x80);
)
BUF CHAR [16] = "1. Consultar";
/ / Inicializova našej premenné a volania
/ / Zhromaždenie rutinné inicializovať na LCD displeji.
Void calc_display (BUF CHAR [16])
/ / Pomocou výstupu a Clearscreen rutin z
/ / * * LCD_Write montáž do výstupného súboru ASCII hodnôt na LCD.
(INT8 i;
clearscreen ();
for (i = 0; i <strlen (BUF), i )
/ / (If (BUF [calc_testkey (BUF ) | | BUF == 0x2D)
(
wrdata (BUF );
pause (5000);
)
/ /)
)Void main (void)
(Lcd_init ();
calc_display (BUF);
)-------------------------------------------------- ---------------------------------------------
toto je hlavička súboru:
-------------------------------------------------- ---------------------------------------------
typedef void Void;
typedef int INT;
typedef char INT8 podpísaná;
typedef int podpísaná INT16;
typedef podpísaná dlho INT32;
typedef unsigned krátke WORD;
typedef char CHAR;
typedef unsigned char BYTE;
typedef float dvojaký;
typedef dlhá dlhá;
typedef INT8 Bool;
/ / LCD Config
#
Define MAX_DISPLAY_CHAR 16/ / LCD registroch adresy (Port B)
#
Define LCD_CMD_WR 0x00
#
Define LCD_DATA_WR 0x01
#
Define LCD_BUSY_RD 0x02
#
Define LCD_DATA_RD 0x03
/ / LCD Príkazy
#
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
-------------------------------------------------- ------------------------------------------
pomozte meeeeeee ...
<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />