Désolé du retard MikeMike je passe rarement par ici, voici le code (il ne passe pas en pièce jointe).
Cordialement.
/***********************************************************************/
/* */
/* FILE :lcd.c */
/* DATE :Mon, Oct 24, 2005 */
/* DESCRIPTION :Main Program */
/* CPU TYPE

ther */
/* */
/* This file is generated by Renesas Project Generator (Ver.4.0). */
/* */
/***********************************************************************/
#include "sfr_r813.h";
static unsigned char Port0;
void delayus (long micros)
{
long t;
for (t = micros; t >= 0 ; t--)
{
asm("nop");
}
}
void lcddata(unsigned char data)
{
delayus(100);
Port0 = data & 0xF0;
Port0 = Port0 + 0x04; //rs = 1
p0 = Port0;
p0 = Port0 + 0x08; //E = 1
asm("nop");
p0 = Port0; //E = 0
Port0 = ((data & 0x0f)<<4);
Port0 = Port0 + 0x04; //rs = 1
p0 = Port0;
p0 = Port0 + 0x08; //E = 1
asm("nop");
p0 = Port0; //E = 0
delayus (100);
}
void lcdctrl(unsigned char data)
{
Port0 = data & 0xF0;
p0 = Port0;
p0 = Port0 + 0x08; //E = 1
asm("nop");
p0 = Port0; //E = 0
Port0 = ((data & 0x0f)<<4);
Port0 = Port0 + 0x01;
p0 = Port0;
p0 = Port0 + 0x08; //E = 1
asm("nop");
p0 = Port0; //E = 0
delayus (100);
}
void initlcd (void)
{
delayus(15000);
lcdctrl(0x28);
delayus(5000);
lcdctrl(0x28);
delayus(1000);
lcdctrl(0x28);
delayus(1000);
lcdctrl(0x0c);
delayus(1000);
lcdctrl(0x01);
delayus(5000);
}
void lcd_integer (unsigned int data)
{
unsigned char byt;
byt = data / 1000;
data = data - byt * 1000;
lcddata(byt + 48);
byt = data / 100;
data = data - byt * 100;
lcddata(byt + 48);
byt = data / 10;
data = data - byt * 10;
lcddata(byt + 48);
lcddata(data + 48);
}
void lcd_text (char text[20])
{
unsigned int i;
i = 0;
while ((!(text[i] == 0)) & (i < 20))
{
lcddata (text[i]);
i = i + 1;
}
}
void lcd_pos (unsigned int Zeile, unsigned int Spalte)
{
lcdctrl (0x80 + Spalte-1 + 0x40*(Zeile-1));
//delayus(100);
}
void main(void)
{
unsigned char dummy;
/*-------------------------------------------------
- Change on-chip oscillator clock to Main clock -
-------------------------------------------------*/
prc0 = 1; /* Protect off */
cm13 = 1; /* Xin Xout */
cm15 = 1; /* XCIN-XCOUT drive capacity select bit : HIGH */
cm05 = 0; /* Xin on */
cm16 = 0; /* Main clock = No division mode */
cm17 = 0;
cm06 = 0; /* CM16 and CM17 enable */
asm("nop"); /* Waiting for stable of oscillation */
asm("nop");
asm("nop");
asm("nop");
ocd2 = 0; /* Main clock change */
prc0 = 0; /* Protect on */
prc2 = 1; //PD0 protect off
pd0 = 0xfd; //LCD port, fit 1 input of AD
prc2 = 0; //PD0 protect on
initlcd();
lcddata (48);
lcddata (49);
lcddata (50);
lcddata (51);
lcddata (52);
lcddata (53);
lcddata (54);
lcddata (55);
lcddata (56);
lcddata (57);
lcddata (65);
lcddata (66);
lcddata (67);
lcddata (68);
lcddata (69);
lcddata (70);
lcddata (65);
lcddata (66);
lcddata (67);
lcddata (68);
lcddata (69);
lcddata (70);
lcddata (48);
lcddata (49);
lcddata (50);
lcddata (51);
lcddata (52);
lcddata (53);
lcddata (54);
lcddata (55);
lcddata (56);
lcddata (57);
//test delayus
pd1=255;
while (1)
{ p1=9;
delayus(500000);
p1=6;
delayus(500000);
}
}