SPI Lcd Library

MikroPascal PRO для ARM предоставляет библиотеку для связи с Lcd (с совместимыми с HD44780 контроллерами) в 4-битном режиме через интерфейс SPI.

Для создания пользовательского набора символов Lcd используйте инструмент Lcd Custom Character.

  Important :

Дерево зависимостей библиотеки

SPI Lcd Library Dependency Tree

Внешние зависимости библиотеки SPI Lcd

Реализация подпрограмм библиотеки SPI Lcd основана на процедурах Библиотеки расширений порта.

Внешние зависимости такие же, как и у Внешние зависимости библиотеки расширений порта.

Библиотечные процедуры

SPI_Lcd_Config

Прототип

procedure SPI_Lcd_Config(DeviceAddress : byte);

Описание

Инициализирует модуль Lcd через интерфейс SPI.

Параметры
  • DeviceAddress: Программный адрес расширителя SPI, см. Схему внизу этой страницы
Возвращает

Ничего.

Требует

Внешние зависимости такие же, как и у Внешние зависимости библиотеки расширений порта.
Модуль SPI должен быть инициализирован. См. также процедуры SPIx_InitиSPIx_Init_Advanced.

Пример

Stellaris

// Port Expander module connections
var SPExpanderRST           : sbit at GPIO_PORTA_DATA0_bit;
    SPExpanderCS            : sbit at GPIO_PORTA_DATA1_bit;
    SPExpanderRST_Direction : sbit at GPIO_PORTA_DIR0_bit;
    SPExpanderCS_Direction  : sbit at GPIO_PORTA_DIR1_bit;
// End Port Expander module connections

// If Port Expander Library uses SPI1 module
SPI1_Init();                           // Initialize SPI module used with PortExpander
SPI_Lcd_Config(0);                     // initialize Lcd over SPI interface

MSP432

// Port Expander module connections
var SPExpanderRST           : sbit at DIO_P6OUT.B0;
    SPExpanderCS            : sbit at DIO_P6OUT.B1;
    SPExpanderRST_Direction : sbit at DIO_P6DIR.B0;
    SPExpanderCS_Direction  : sbit at DIO_P6DIR.B1;
// End Port Expander module connections
...

// If Port Expander Library uses SPI module :
SPI1_Init();  // Initialize SPI module used with PortExpander
SPI_Lcd_Config(0);

STM32

// Port Expander module connections
var SPExpanderRST           : sbit at GPIOB_ODR.B0;
    SPExpanderCS            : sbit at GPIOB_ODR.B1;
// End Port Expander module connections

// Initialize SPI module used with PortExpander
SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER or _SPI_8_BIT or
                   _SPI_CLK_IDLE_LOW or _SPI_FIRST_CLK_EDGE_TRANSITION or
                   _SPI_MSB_FIRST or _SPI_SS_DISABLE or _SPI_SSM_ENABLE or _SPI_SSI_1,
                   @_GPIO_MODULE_SPI1_PB345);

SPI_Lcd_Config(0);                     // initialize Lcd over SPI interface

CEC1x02

// Port Expander module connections
var SPExpanderRST : sbit at GPIO_OUTPUT_PIN_027_bit;
    SPExpanderCS  : sbit at GPIO_OUTPUT_PIN_146_bit;
// End Port Expander module connections

...

// Initialize SPI module used with PortExpander
SPI0_Init_Advanced(1000000,0,0);

SPI_Lcd_Config(0);
Замечания

Нет.

SPI_Lcd_Out

Прототип

procedure SPI_Lcd_Out(row, column : byte; var text : string);

Описание

Распечатывает текст на Lcd, начиная с указанной позиции. Обе строковые переменные и литералы могут передаваться как текст.

Параметры
  • row: номер строки начальной позиции
  • column: номер столбца начальной позиции
  • text: текст, который будет написан
Возвращает

Ничего.

Требует

Lcd необходимо инициализировать для связи SPI, см. также процедуру SPI_Lcd_Config.

Пример
// Выводит текст "Hello!" на Lcd, начиная с строки 1, столбец 3:
SPI_Lcd_Out(1, 3, 'Hello!');
Замечания

Нет.

SPI_Lcd_Out_Cp

Прототип

procedure SPI_Lcd_Out_CP(var text : string); // write text at current pos

Описание

Распечатывает текст на Lcd в текущей позиции курсора. Обе строковые переменные и литералы могут передаваться как текст.

Параметры
  • text: текст, который будет написан
Возвращает

Ничего.

Требует

Lcd необходимо инициализировать для связи SPI, см. также процедуру SPI_Lcd_Config.

Пример
// Выводит текст "Here!" в текущей позиции курсора:
SPI_Lcd_Out_CP('Here!');
Замечания

Нет.

SPI_Lcd_Chr

Прототип

procedure SPI_Lcd_Chr(Row, Column, Out_Char : byte);

Описание

Печатает символ на Lcd в указанной позиции. Обе переменные и литералы могут передаваться как символ.

Параметры
  • Row: номер строки записи
  • Column: запись номер колонки
  • Out_Char: символ, который нужно записать
Возвращает

Ничего.

Требует

Lcd необходимо инициализировать для связи SPI, см. также процедуру SPI_Lcd_Config.

Пример
// Выводит символ "i" в строке 2, колонке 3:
SPI_Lcd_Chr(2, 3, 'i');
Замечания

Нет.

SPI_Lcd_Chr_Cp

Прототип

procedure SPI_Lcd_Chr_CP(Out_Char : byte);

Описание

Печатает символ на Lcd в текущей позиции курсора. Обе переменные и литералы могут передаваться как символ.

Параметры
  • Out_Char: character to be written
Возвращает

Ничего.

Требует

Lcd необходимо инициализировать для связи SPI, см. также процедуру SPI_Lcd_Config.

Пример
// Выводит символ «e» в текущей позиции курсора:
SPI_Lcd_Chr_Cp('e');
Замечания

Нет.

SPI_Lcd_Cmd

Прототип

procedure SPI_Lcd_Cmd(out_char : byte);

Описание

Отправляет команду на Lcd.

Параметры
  • out_char: command to be sent
Возвращает

Ничего.

Требует

Lcd необходимо инициализировать для связи SPI, см. также процедуру SPI_Lcd_Config.

Пример
// Очистить дисплей Lcd:
SPI_Lcd_Cmd(_LCD_CLEAR);
Замечания

Предопределенные константы могут быть переданы в подпрограмму, см. Доступные команды SPI Lcd.

Доступные команды SPI Lcd

Команда Lcd SPI Предназеачение
_LCD_FIRST_ROW Переместить курсор в 1-ю строку
_LCD_SECOND_ROW Перемещение курсора во вторую строку
_LCD_THIRD_ROW Переместить курсор на 3-ю строку
_LCD_FOURTH_ROW Переместите курсор на четвертую строку
_LCD_CLEAR Очистить дисплей
_LCD_RETURN_HOME Верните курсор в исходное положение, верните сдвинутый дисплей в исходное положение. Дисплей данных ОЗУ не изменяется.
_LCD_CURSOR_OFF Отключить курсор
_LCD_UNDERLINE_ON Подчеркните курсор на
_LCD_BLINK_CURSOR_ON Наведите курсор на
_LCD_MOVE_CURSOR_LEFT Перемещение курсора влево без изменения отображаемых данных ОЗУ
_LCD_MOVE_CURSOR_RIGHT Перемещение курсора вправо без изменения отображаемых данных ОЗУ
_LCD_TURN_ON Включить отображение Lcd
_LCD_TURN_OFF Отключить отображение Lcd
_LCD_SHIFT_LEFT Отображение сдвига влево без изменения отображаемых данных ОЗУ
_LCD_SHIFT_RIGHT Сдвинуть дисплей вправо без изменения отображаемых данных ОЗУ