SPI Lcd Library
MikroPascal PRO для ARM предоставляет библиотеку для связи с Lcd (с совместимыми с HD44780 контроллерами) в 4-битном режиме через интерфейс SPI.
Для создания пользовательского набора символов Lcd используйте инструмент Lcd Custom Character.
Important :
- При использовании этой библиотеки с MCU семейства ARM следует помнить о несовместимости их напряжений с определенным количеством модулей Lcd.
Таким образом, может потребоваться дополнительный внешний источник питания для этих модулей.
Библиотека использует модуль SPI для связи. Пользователь должен инициализировать соответствующий SPI-модуль перед использованием библиотеки SPI Lcd.
Для MCU с несколькими модулями SPI можно инициализировать все из них, а затем переключиться с помощью процедуры SPI_Set_Active (). См. также фугкции SPI Library. - Эта библиотека предназначена для работы с выводом платы адаптера последовательной шины MikroElektronika, см. Схему в нижней части этой страницы для деталей.
Дерево зависимостей библиотеки
Внешние зависимости библиотеки SPI Lcd
Реализация подпрограмм библиотеки SPI Lcd основана на процедурах Библиотеки расширений порта.
Внешние зависимости такие же, как и у Внешние зависимости библиотеки расширений порта.
Библиотечные процедуры
SPI_Lcd_Config
| Прототип |
procedure SPI_Lcd_Config(DeviceAddress : byte); |
|---|---|
| Описание |
Инициализирует модуль Lcd через интерфейс SPI. |
| Параметры |
|
| Возвращает |
Ничего. |
| Требует |
Внешние зависимости такие же, как и у Внешние зависимости библиотеки расширений порта.
|
| Пример |
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, начиная с указанной позиции. Обе строковые переменные и литералы могут передаваться как текст. |
| Параметры |
|
| Возвращает |
Ничего. |
| Требует |
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 в текущей позиции курсора. Обе строковые переменные и литералы могут передаваться как текст. |
| Параметры |
|
| Возвращает |
Ничего. |
| Требует |
Lcd необходимо инициализировать для связи SPI, см. также процедуру SPI_Lcd_Config. |
| Пример |
// Выводит текст "Here!" в текущей позиции курсора:
SPI_Lcd_Out_CP('Here!');
|
| Замечания |
Нет. |
SPI_Lcd_Chr
| Прототип |
procedure SPI_Lcd_Chr(Row, Column, Out_Char : byte); |
|---|---|
| Описание |
Печатает символ на Lcd в указанной позиции. Обе переменные и литералы могут передаваться как символ. |
| Параметры |
|
| Возвращает |
Ничего. |
| Требует |
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 в текущей позиции курсора. Обе переменные и литералы могут передаваться как символ. |
| Параметры |
|
| Возвращает |
Ничего. |
| Требует |
Lcd необходимо инициализировать для связи SPI, см. также процедуру SPI_Lcd_Config. |
| Пример |
// Выводит символ «e» в текущей позиции курсора:
SPI_Lcd_Chr_Cp('e');
|
| Замечания |
Нет. |
SPI_Lcd_Cmd
| Прототип |
procedure SPI_Lcd_Cmd(out_char : byte); |
|---|---|
| Описание |
Отправляет команду на Lcd. |
| Параметры |
|
| Возвращает |
Ничего. |
| Требует |
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 | Сдвинуть дисплей вправо без изменения отображаемых данных ОЗУ |