#ifdef LCD_H
#define LCD_H
/* Установка лог. "1" на линии E */
#define LCD_E_SET PORTA |= 0b01000000
/* Установка лог. "0" на линии E */
#define LCD_E_CLR PORTA &= 0b10111111
/* Установка лог. "1" на линии RS */
#define LCD_RS_SET PORTA |= 0b00010000
/* Установка лог. "0" на линии RS */
#define LCD_RS_CLR PORTA &= 0b11101111
/* Установка лог. "1" на линии RW */
#define LCD_RW_SET PORTA |= 0b00100000
/* Установка лог. "0" на линии RW */
#define LCD_RW_CLR PORTA &= 0b11011111
/* Макрос, указывающий функции, что
передаются команды */
#define LCD_COMMAND 0
/* Макрос, указывающий функции, что
передаются данные */
#define LCD_DATA 1
/* Макрос, указывающий функции, что
производится запуск LCD, при котором не требуется
проверка флага занятости */
#define LCD_STRT 0
/* Макрос, указывающий функции, что
LCD находится в рабочем режиме */
#define LCD_WRK 1
//putcc - помещает байт в регистр комманд
#define putcc(x) lcd_put_byte(x, LCD_COMMAND, LCD_WRK)
//putcd - помещает байт в регистр данных
#define putcd(s) lcd_put_byte(s, LCD_DATA, LCD_WRK)
//Функция установки 6, 5, 4 ножек порта А на вывод информации
extern void init_port_a_out();
//Функция установки 7, 6, 5, 4 ножек порта С на вывод информации
extern void init_port_c_out();
/*Функция установки порта С на считывание информации с установкой подтягивающих резисторов
на 7, 6, 5, 4 ножках*/
extern void init_port_c_in();
/* Функция перемещения курсора в заданную позицию
char col - номер знакоместа по горизонтальной оси
char row - номер строки (0 или 1) */
extern void lcd_gotoxy(char col, char row);
/* функция передачи тетрады в контроллер жки
char tetr - тетрада */
extern void lcd_put_tetr(char tetr);
/* Функция передачи байта в контроллер жки
char b - байт
char rs - переменная, указывающая что передается:
rs = 0 - команда (устанавливается линия RS)
rs = 1 - данные (сбрасывается линия RS)
char st - переменная, указывающая режим работы LCD:
st = 0 - стартовый, без проверки флага занятости контроллера жки
st = 1 - рабочий, с проверкой флага занятости*/
extern void lcd_put_byte(char b, char rs, char st);
/*Функция передачи строки в контроллер жки
char *str - указатель на первый элемент строки.*/
extern void lcd_put_str(char *str);
/*Функция инициализации дисплея в 4-х битном двухстрочном режиме
работы. Размер матрицы символов 5х8 точек. Курсор не отображается.*/
extern void lcd_init();
//Функция сдвига экрана слева направо и справа налево
extern void lcd_repeat();
//Функция очистки экрана
extern void lcd_clear();
//Функция считывания флага занятости
extern unsigned char lcd_check();
#endif // LCD_H