Projet

Général

Profil

495 celasherme
/***********************************************************************/
/* */
/* FILE :SP4b2.c */
/* DATE :Tue, May 25, 2021 */
/* DESCRIPTION :main program file. */
/* CPU GROUP :87B */
/* */
/* This file is generated by Renesas Project Generator (Ver.4.18). */
/* NOTE:THIS IS A TYPICAL EXAMPLE. */
/***********************************************************************/
508 celasherme
#include "sfr32c87.h"
495 celasherme
508 celasherme
void lcd_4b(unsigned char car);
void lcd_8b(unsigned char car);
void lcd_com(unsigned char com);
void lcd_init(void);
void lcd_car(unsigned char car);
void tpo_us(unsigned short duree);// temporisation en ?s
void tpo_ms(unsigned short duree);// temporisation en ms
495 celasherme
508 celasherme
495 celasherme
void main(void)
{

508 celasherme
unsigned char c='C';
pd3=0xFF;
lcd_init(); //initialiser avant d'envoyer !!
lcd_car(c);
495 celasherme
}


508 celasherme
void lcd_4b(unsigned char car) // envoi des 4 bits de poids fort
495 celasherme
{
508 celasherme
//pd3=0xFF; // definir les ports du registres pDi ouvert
//p1_2=0; // commande signal E
//p1_4=1;
//p1_5=1;
//p1_6=1;
//p1_7=1;

//p1_4=0;
//p1_5=1;
//p1_6=0;
//p1_7=1;

p3_2=1;
if (car & 0x10)
{
p3_4=1;
}
else
{
p3_4=0;
}

if(car & 0x20)
{
p3_5=1;
}
else
{
p3_5=0;
}

if (car & 0x40)
{
p3_6=1;
}
else
{
p3_6=0;
}

if (car & 0x80)
{
p3_7=1;
}
else
{
p3_7=0;
}
p3_2=0;
495 celasherme
}
508 celasherme

void lcd_8b(unsigned char car) // envoi des 8 bits de donn?e
{
// char a;
// a=c<<4;
// Lcd_4b(a)

// p1_3=p1_7;
// p1_2=p1_6;
// p1_1=p1_5;
// p1_0=p1_4;

lcd_4b(car);
lcd_4b(car<<4);
}


void lcd_com(unsigned char car) // envoi d'une commande
{
p3_0=0; // autorise l'envoi de commande
lcd_8b(car);
}

void lcd_car(unsigned char car) // envoi d'une donn?e ? afficher
{
p3_0=1; // autorise envoi caracteres
lcd_8b(car);
}

void lcd_init(void)
{
p3_0=0;
tpo_ms(15);
lcd_4b(0x30);
tpo_ms(5);
lcd_4b(0x30);
tpo_us(100);
lcd_4b(0x30);
tpo_us(100);
lcd_4b(0x20);
lcd_com(0x28);
lcd_com(0x06);
lcd_com(0x0E);
lcd_com(0x01);
tpo_ms(5);

}

void tpo_us(unsigned short duree) // temporisation en ?s
{
tcspr = 0x8A;
ta0mr = 0x82;
ta0 = duree;
ta0s = 1;
ta0os = 1;
ta0ic = 0x00;
while(ir_ta0ic != 1);
ta0s = 0;
}


void tpo_ms(unsigned short duree)// temporisation en ms
{
tcspr = 0x8A;
ta0mr = 0x82;
ta0 = duree*1000;
ta0s = 1;
ta0os = 1;
ta0ic = 0x00;
while(ir_ta0ic != 1);
ta0s = 0;
}