Lcd.c description – Arizona Picdem 17 User Manual

Page 53

Advertising
background image

2001 Microchip Technology Inc.

DS39024B-page 47

LCD.C

Description

{

while(BusyXLCD());

#ifdef BIT8

// 8-bit interface

TRIS_DATA_PORT = 0;

// Data port output

DATA_PORT = cmd;

// Write command to

data port

RW_PIN = 0;

// Set the control

signals

RS_PIN = 0;

// for sending a com-

mand

DelayFor18TCY();

E_PIN = 1;

// Clock the command

in

DelayFor18TCY();

E_PIN = 0;

DelayFor18TCY();

TRIS_DATA_PORT = 0xff;// Data port input

#else

// 4-bit interface

#ifdef UPPER

// Upper nibble

interface

TRIS_DATA_PORT &= 0x0f;

DATA_PORT &= 0x0f;

DATA_PORT |= cmd&0xf0;

#else

// Lower nibble

interface

TRIS_DATA_PORT &= 0xf0;

DATA_PORT &= 0xf0;

DATA_PORT |= (cmd>>4)&0x0f;

#endif

RW_PIN = 0;

// Set control sig-

nals for command

RS_PIN = 0;

DelayFor18TCY();

E_PIN = 1;

// Clock command in

DelayFor18TCY();

E_PIN = 0;

#ifdef UPPER

// Upper nibble

interface

DATA_PORT &= 0x0f;

DATA_PORT |= (cmd<<4)&0xf0;

#else

// Lower nibble

interface

DATA_PORT &= 0xf0;

DATA_PORT |= cmd&0x0f;

#endif

DelayFor18TCY();

E_PIN = 1;

// Clock command in

DelayFor18TCY();

E_PIN = 0;

#ifdef UPPER

// Make data nibble

input

TRIS_DATA_PORT |= 0xf0;

#else

TRIS_DATA_PORT |= 0x0f;

#endif

#endif

return;

}

Advertising