Jokainen sai esimerkiksi C-koodi pisteitä matriisi LCD-näyttö?

B

brennbar67

Guest
Jokainen sai noin esimerkki näyttää yhden merkin annetun pisteitä matriisi LCD käyttämällä C-koodia tai kokoonpano?

 
Hei,

Erilaista LCD & LCD Controller edellyttäisivät erilaista koodia.Et maininnut, että.Se on merkityksetön, jos joku post yksi ja olet sitä mieltä, että se ei sinun tyyppi!

 
vuonna ADSP-21160 kokoonpanijalle:#
include "Def21160.h";
#
include "Oma Constants.h";

#
define CLEAR_DISPLAY 0x004
#
define CURSOR_AT_HOME 0x008
#
define ENTRY_MODE_SET_DECR_SH 0x014
#
define ENTRY_MODE_SET_INCR_SH 0x01C
#
define DISPLAY_ON 0x03C
#
define SET_8_BIT_INTERFACE 0x0E0#
define CURSOR_SHIFT_R 0x050
#
define CURSOR_SHIFT_L 0x040
#
define SET_CUR_OFF_BLINK_OFF 0x030
#
define SET_CUR_ON_BLINK_OFF 0x038
#
define DISPLAY_OFF_C_ON_B_OFF 0x028
#
define SHIFT_DISPLAY_LEFT 0x060
#
define SHIFT_DISPLAY_RIGHT 0x070

.SECTION / DM seg_dmda;
. maailmanlaajuinen LCD_Data;
. var LCD_Data;

/ / LCD_Data Formaatti: DB7, DB6, DB5, DB4, DB3, DB2, DB1, DB0, RW, RS.

. ENDSEG;.SECTION / PM seg_pmco;
. maailmanlaajuinen LCD_Write, LCD_Test;LCD_Write:

r0 = dm (LCD_Data);
r0 = lshift r0 2;
dm (LCD_Data) = r0;

r1 = 0;
dm (AuxRegister) = r1;
puhelun LCD_Delay;
r2 = 0x001;
r0 = r0 tai r2;
dm (AuxRegister) = r0;
puhelun LCD_Delay;

r2 = 0xFFE;
r0 = r0 ja r2;
dm (AuxRegister) = r0;
puhelun LCD_Delay;
r0 = 0;
dm (AuxRegister) = r0;
puhelun LCD_Delay;

RTS;LCD_Delay:
lcntr = 300;
tehdä LCD_Loop1 kunnes LCE;
lcntr = 8000;
tehdä LCD_Loop2 kunnes LCE;
LCD_Loop2: NOP;
LCD_Loop1: NOP;
RTS;LCD_Test:

//************************************************ ******************************
/ / Inizializzazione del näyttö LCD
//************************************************ ******************************
r0 = CLEAR_DISPLAY;
dm (LCD_Data) = r0;
Soita LCD_Write;

r0 = CURSOR_AT_HOME;
dm (LCD_Data) = r0;
Soita LCD_Write;

r0 = SET_8_BIT_INTERFACE;
dm (LCD_Data) = r0;
Soita LCD_Write;

/ / visualizza il cursore
r0 = SET_CUR_ON_BLINK_OFF;
dm (LCD_Data) = r0;
Soita LCD_Write;

/ / Ei visualizzare il cursore
r0 = SET_CUR_OFF_BLINK_OFF;
dm (LCD_Data) = r0;
Soita LCD_Write;

//---------------------

//************************************************ ******************************
/ / Scrittura di un carattere sulla prima posizione del näyttö
//************************************************ ******************************

/ / setta l'Indirizzo 0H per DDRAM (posizione CURSORE: 1 ° riga, 1 ° char)
r0 = 0x200;
dm (LCD_Data) = r0;
Soita LCD_Write;

/ / Scrive il carattere "F" sul modulo
r0 = 0x119;
dm (LCD_Data) = r0;
Soita LCD_Write;

//************************************************ ******************************
/ / riempie la prima riga del näyttö, joka partire da Destra, con il carattere "F"
//************************************************ ******************************
r3 = 0x027;
test_var1:
r3 = siirrä r3;
jos eq hypätä end_loop1;

/ / setta l'Indirizzo per DDRAM
/ / (Posizione CURSORE sulla prima riga: dalla prima posizione sulla Destra
/ / Verso la prima posizione sulla sinistra)
r0 = lshift r3 2;
r4 = 0x200;
r0 = r0 tai r4;
dm (LCD_Data) = r0;
Soita LCD_Write;

/ / Scrive il carattere "F" sul modulo
r0 = 0x119;
dm (LCD_Data) = r0;
Soita LCD_Write;

r3 = r3-1;
hypätä test_var1;

end_loop1:
/ / scrive il char nella prima posizione di sinistra
r0 = lshift r3 2;
r4 = 0x200;
r0 = r0 tai r4;
dm (LCD_Data) = r0;
Soita LCD_Write;

/ / Scrive il carattere "F" sul modulo
r0 = 0x119;
dm (LCD_Data) = r0;
Soita LCD_Write;//************************************************ ******************************
/ / riempie la seconda riga del näyttö, joka partire da Destra, con il carattere '% "
//************************************************ ******************************

r3 = 0x067;
test_var2:
r3 = siirrä r3;
jos eq hypätä end_loop2;

/ / setta l'Indirizzo per DDRAM
/ / (Posizione CURSORE sulla prima riga: dalla prima posizione sulla Destra
/ / Verso la prima posizione sulla sinistra)
r0 = lshift r3 2;
r4 = 0x200;
r0 = r0 tai r4;
dm (LCD_Data) = r0;
Soita LCD_Write;

/ / Scrive il carattere '% "sul modulo
r0 = 0x095;
dm (LCD_Data) = r0;
Soita LCD_Write;

r3 = r3-1;
hypätä test_var2;

end_loop2:
RTS;

RTS;. ENDSEG;

 
Voi olla jotain hyötyä, sinulla on luultavasti muuttaa sitä

#
include <reg51.h>
#
include "delay.h"

sbit LCD_RS = P1 ^ 0; / / Rekisteröidy valitse
sbit LCD_E = P1 ^ 1; / / Enable

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

/ / Aika millisekunteina
mitätön DelayMs (unsigned char cnt)
(Cnt = 2 * cnt;
tehdä
(DelayUs (500);)
while (- cnt! = 0);
)

/ / Lähetä Näyttö
mitätön lcd_write (unsigned char c)
(
unsigned char Movit;
Movit = (c>> 2);
P1 = (P1 & 0xC3) | (Movit & 0x3C);
LCD_STROBE;
Movit = (c <<2);
P1 = (P1 & 0xC3) | (Movit & 0x3C);
LCD_STROBE;
DelayUs (60);
)

/ / Vapaa-ja sisäasioiden LCD
mitätön lcd_clear (void)
(
LCD_RS = 0;
lcd_write (0x80);
DelayMs (2);
)

/ / Lähetä Character String
mitätön lcd_puts (const char * s)
(
LCD_RS = 1;
while (* s)
lcd_write (* s );
)

/ / Lähetä Merkistötuki
mitätön lcd_putch (char c)
(
LCD_RS = 1;
lcd_write (c);
)

/ /
Asema Kohdistin
mitätön lcd_goto (unsigned char pos)
(
LCD_RS = 0;
lcd_write (0x80 pos);
)

/ / Initialise LCD -
Tila 4 bittiä
mitätön lcd_init (void)
(
LCD_RS = 0;
DelayMs (40); / / teho viive
lcd_write (0x28); / / 4 bittisessä tilassa, 1 / 16 tullaamattomana 5x8 font
LCD_STROBE;
DelayMs (5);
LCD_STROBE;
DelayMs (5);
LCD_STROBE;
lcd_write (0x28);
lcd_write (0x08); / / näyttö pois
lcd_write (0x0C); / / näyttää, kohdistimen pois
lcd_write (0x06); / / merkintä-tilassa
)

OTSIKKO FILE
/ *
* LCD-liitäntä header-tiedosto
* Katso lcd.c lisätietoja
* /

/ * Kirjoittaa tavu on LCD 4 bittisessä tilassa * /

extern mitätön lcd_write (unsigned char);

/ * Selkeät ja kotona LCD * /

extern mitätön lcd_clear (void);

/ * Kirjoittaa merkkijono merkkiä LCD * /

extern mitätön lcd_puts (const char * s);

/ * Go to määritelty kanta * /

extern mitätön lcd_goto (unsigned char pos);

/ * Intialize LCD - soita ennen kaikkea * /

extern mitätön lcd_init (void);

extern mitätön lcd_putch (char);

/ * Aseta kohdistin kanta * /

#
define lcd_cursor (x) lcd_write (((x) & 0x7F) | 0x80)

 

Welcome to EDABoard.com

Sponsor

Back
Top