Tout le monde a par exemple le code C de l'affichage ACL à matrice de points?

B

brennbar67

Guest
Quiconque a une par exemple pour afficher le caractère unique sur les points matrice LCD à l'aide de code C ou de l'ensemble?

 
Salut,

Différents types de contrôleur LCD & LCD, il faudrait différents types de code.Vous
n'avez pas mentionné cela.Il
est dénué de sens si
quelqu'un poste un et vous trouvez que ce
n'est pas pour votre type!

 
ADSP-21160 dans l'assembleur:#
include "Def21160.h";
#
include "Mon 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;
. LCD_Data mondial;
. LCD_Data var;

/ / LCD_Data Format: DB7, DB6, DB5, DB4, BD3, DB2, DB1, DB0, RW, RS.

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

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

r1 = 0;
dm (AuxRegister) = r1;
LCD_Delay appel;
r2 = 0x001;
r0 = r0 ou r2;
dm (AuxRegister) = r0;
LCD_Delay appel;

r2 = 0xFFE;
r0 = r0 et r2;
dm (AuxRegister) = r0;
LCD_Delay appel;
r0 = 0;
dm (AuxRegister) = r0;
LCD_Delay appel;

RTS;LCD_Delay:
lcntr = 300;
jusqu'à ce que ne LCD_Loop1 LCE;
lcntr = 8000;
jusqu'à ce que ne LCD_Loop2 LCE;
LCD_Loop2: nop;
LCD_Loop1: nop;
RTS;LCD_Test:

//************************************************ ******************************
/ / Inizializzazione del affichage LCD
//************************************************ ******************************
r0 = CLEAR_DISPLAY;
dm (LCD_Data) = r0;
Appel LCD_Write;

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

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

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

/ / Non visualiser il cursore
r0 = SET_CUR_OFF_BLINK_OFF;
dm (LCD_Data) = r0;
Appel LCD_Write;

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

//************************************************ ******************************
/ / Scrittura di un carattere posizione sulla prima del affichage
//************************************************ ******************************

/ / Setta l'indirizzo 0H par DDRAM (POSIZIONE cursore: riga 1 °, 1 ° char)
r0 = 0x200;
dm (LCD_Data) = r0;
Appel LCD_Write;

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

//************************************************ ******************************
/ / riempie la prima riga del affichage, une partire da destra, con il carattere 'F'
//************************************************ ******************************
r3 = 0x027;
test_var1:
r3 = pass r3;
si eq end_loop1 saut;

/ / Setta l'indirizzo par DDRAM
/ / (POSIZIONE cursore sulla prima riga: dalla prima posizione sulla destra
/ / Verso la prima posizione sulla sinistra)
r0 = lshift r3 par 2;
r4 = 0x200;
r0 = r0 ou r4;
dm (LCD_Data) = r0;
Appel LCD_Write;

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

r3 = r3-1;
Passer test_var1;

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

/ / Scrive il carattere 'F' sul modulo
r0 = 0x119;
dm (LCD_Data) = r0;
Appel LCD_Write;//************************************************ ******************************
/ / riempie la seconda riga del affichage, une partire da destra, con il carattere '%'
//************************************************ ******************************

r3 = 0x067;
test_var2:
r3 = pass r3;
si eq end_loop2 saut;

/ / Setta l'indirizzo par DDRAM
/ / (POSIZIONE cursore sulla prima riga: dalla prima posizione sulla destra
/ / Verso la prima posizione sulla sinistra)
r0 = lshift r3 par 2;
r4 = 0x200;
r0 = r0 ou r4;
dm (LCD_Data) = r0;
Appel LCD_Write;

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

r3 = r3-1;
Passer test_var2;

end_loop2:
RTS;

RTS;. ENDSEG;

 
Mai être utile, vous aurez probablement à le modifier

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

sbit LCD_RS ^ P1 = 0; / / Register sélectionner
sbit LCD_E = P1 ^ 1 / / Enable

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

/ / Temps en millisecondes
void DelayMs (unsigned char cnt)
Cnt = (2 * cnt;
faire
(DelayUs (500);)
while (- cnt! = 0);
)

/ / Envoyer à l'affichage
void 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);
)

/ / Effacer l'écran LCD et à la maison
void lcd_clear (void)
(
LCD_RS = 0;
lcd_write (0x80);
DelayMs (2);
)

/ / Envoyer Character String
lcd_puts void (const char * s)
(
LCD_RS = 1;
while (* s)
lcd_write (* s );
)

/ / Envoyer un personnage
void lcd_putch (char c)
(
LCD_RS = 1;
lcd_write (c);
)

/ / Position du curseur
void lcd_goto (unsigned char pos)
(
LCD_RS = 0;
lcd_write (0x80 pos);
)

/ / Initialise l'écran - en mode 4 bits
void lcd_init (void)
(
LCD_RS = 0;
DelayMs (40) / / puissance sur le retard
lcd_write (0x28) / / 4 bits, 1 / 16 devoir, 5x8 font
LCD_STROBE;
DelayMs (5);
LCD_STROBE;
DelayMs (5);
LCD_STROBE;
lcd_write (0x28);
lcd_write (0x08) / / affichage de
lcd_write (0x0C); / / affichage, le curseur de
lcd_write (0x06) / / mode d'entrée
)

TETE DE FILE
/ *
* LCD interface de fichiers d'entête
* Voir lcd.c pour en savoir plus
* /

/ * Écrire un octet à l'écran LCD en mode 4 bits * /

extern void lcd_write (unsigned char);

/ * Clear et d'accueil de l'écran LCD * /

extern void lcd_clear (void);

/ * Écrire une chaîne de caractères à l'écran * /

extern void lcd_puts (const char * s);

/ * Aller à la position * /

extern void lcd_goto (unsigned char pos);

/ * Intialize l'écran LCD - appel avant toute chose * /

extern void lcd_init (void);

extern void lcd_putch (char);

/ * Définir la position du curseur * /

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

 

Welcome to EDABoard.com

Sponsor

Back
Top