File "lcd_ancien.c"
Full Path: /home/analogde/www/68hc11/lcd_ancien.c
File size: 1.49 KB
MIME-type: text/plain
Charset: 8 bit
/* driver pour LCD OKI 6202 */
/* millenium grald.festou@worldonline.fr */
/* prvoir la validation de CSIO1 dand crt11.s */
#define IRWRIN *(unsigned char volatile*)(_IO_BASE+0x60)
#define DR_WRITIN *(unsigned char volatile*)(_IO_BASE+0x61)
#define right 1
#define left 0
//#include <stdio.h>
//#include <hc11.h>
void lcdinit(void);
void rtn_home(void);
void lcd_on(void);
void lcd_off(void);
void lcd_shift(char nb_sh);
void lcdwait(int cnt);
void status(void);
void lcd_cls(void);
void curs_on(void);
void curs_off(void);
char getkey(void);
int cnt;
void
lcdinit(void)
{
IRWRIN=0x38; /* mode 8 bits */
lcdwait(3);
IRWRIN=0x06; /* mode */
lcd_cls(); /* clear display */
rtn_home();
}
void
rtn_home(void)
{
status();
IRWRIN=0x02; /* return home */
}
void
lcd_on(void)
{
status();
IRWRIN=0x0C; /* disp on */
}
void
lcd_off(void)
{
status();
IRWRIN=0xB; /* disp off */
}
void
curs_on(void)
{
status();
IRWRIN=0x0F; /* curseur on */
}
void
curs_off(void)
{
status();
IRWRIN=0x0C;
}
void
lcd_shift(char nb_sh)
{
lcdwait(10);
if (nb_sh)
{
status();
IRWRIN=0x18; /* shift gauche */
}
else
{
status();
IRWRIN=0x1F; /* shift droite */
}
}
void
status(void) /* attend que l'afficheur soit pret recevoir une commande */
{
while ((IRWRIN & 0x80)==0x80); /* attente busy */
return;
}
void
lcd_cls(void) /* effacement de l'afficheur */
{
status();
IRWRIN=1; /* c'est le code d'ffacement */
}
void lcdwait(int cnt)
{
int i;
for(;cnt;cnt--)
for(i=0;i<1000;i++);
}