roboforum.ruТехнический форум по робототехнике. |
|
|
-= Александр =- писал(а):В общем уже не первый час парюсь с символьным ЖКИ (HD44780). В 8-битном режиме все без проблем было, а вот в 4-битном никак не заводится. Если у кого есть провереный кусок кода на Си - буду рад. :roll:
#define SET_RS (PORTB |= BIT(4))
#define CLR_RS (PORTB &= ~BIT(4))
#define SET_E (PORTB |= BIT(5))
#define CLR_E (PORTB &= ~BIT(5))
#define WRITE_LOW_NIBBLE(x) ( PORTD = (PORTD & 0x0F) | ((x) << 4) )
#define WRITE_HIGH_NIBBLE(x) ( PORTD = (PORTD & 0x0F) | ((x) & 0xF0) )
#define MKS_BYTE 40 /* время на передачу байта на дисплей */
/*
* посылка байта на дисплей с необходимой задержкой
* value - значение
*/
void WriteDelayed(byte value) {
SET_E;
WRITE_HIGH_NIBBLE(value);
CLR_E;
SET_E;
WRITE_LOW_NIBBLE(value);
CLR_E;
delay_us(MKS_BYTE);
}
/*
* инициализация уст-ва
*/
void InitDisplay(void) {
CLR_RS;
WriteDelayed(0x33);
WriteDelayed(0x32);
WriteDelayed(0x28); //4-битный интерфейс, 2 строки, шрифт-5х7 точек
WriteDelayed(0x0c); //включить дисплей, выключить курсор
WriteDelayed(0x06); //Курсор сдвигается вправо при записи, дисплей стоит на месте
}
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15