Инициализация и настройка ЖКИ

#include <tiny2313.h>

/*

#define LCD_E PORTC_Bit4

#define LCD_RW PORTC_Bit5

#define LCD_RS PORTC_Bit6

#define LCD_DATA PORTC

#define LCD_PIN PINC

#define LCD_DDR DDRC

*/

#define E PORTD.2

#define WR PORTD.1

#define RS PORTD.0

#define LCD_DATA PORTD

#define LCD_PIN PIND

#define LCD_DDR DDRD

#define CLRBIT(ADDR, BIT) (ADDR |= (1<<BIT))

#define SETBIT(ADDR, BIT) (ADDR &= ~(1<<BIT))

char ini_cmd[]={0x03,0x03,0x03,0x02,0x02,0x0d,0x00,0x0d,0x00,0x01,0x00,0x06};

//==================================

void Delay(int i) // программная задержка

{

while(--i>0x00);

}

//===============================

void SendDataToDisplay(unsigned char Data, unsigned char Mode)

{

//PORTB - 8bit Data

/*PORTD - PD0 - RS

PD1 - RW

PD2 - E */

CLRBIT(PORTD,E);

if (Mode)

SETBIT(PORTD,RS);

else

CLRBIT(PORTD,RS);

PORTB = Data;

CLRBIT(PORTD,WR);

SETBIT(PORTD,E);

Delay(4);

CLRBIT(PORTD,E);

}

//========================

void DisplayInit(void)

{

Delay(30);

SendDataToDisplay(0x30,1); //режим работы дисплея – ширина шины данных 8 бит

Delay(5);

SendDataToDisplay(0x30,1);

Delay(1);

SendDataToDisplay(0x30,1);

SendDataToDisplay(0x38,1); // шина данных 8 бит

//размер развертки 2 строки

//размер матр. Символов – 5х10

SendDataToDisplay(0x08,1); //выкл. Наличие изображения

SendDataToDisplay(1,1); //очистка экрана

SendDataToDisplay(0x6,1); //счетчик адреса настроить на увеличение

SendDataToDisplay(0xC,1); //вкл. изображение

}

unsigned char ReadDatafromDisplay(unsigned char Mode)

{

unsigned char a;

CLRBIT(PORTD, E);

if (Mode)

SETBIT(PORTD,RS);

else

CLRBIT(PORTD,RS);

DDRB &= 0x00; //установка порта на чтение

PORTB |= 0xFF;

Delay(4);

a = PORTB;

CLRBIT(PORTD,E);

return a;

}

Другие публикации

Однополосный связной передатчик
техника радиопередающих устройств развивается непрерывно и интенсивно. Это обусловлено определяющей ролью передатчиков в энергопотреблении, качестве работы, надежност ...

Автомобильная система видеонаблюдения
По данным приведенным департаментом ГАИ Министерства внутренних дел Украины, на дорогах страны происходит более 500 ДТП в сутки. Что примерно равно цифре 180-190 ти ...

Меню

Copyright @2021, TECHsectors.ru.