SPI Lcd Library
MikroPascal PRO для ARM предоставляет библиотеку для связи с Lcd (с совместимыми с HD44780 контроллерами) в 4-битном режиме через интерфейс SPI.
Для создания пользовательского набора символов Lcd используйте инструмент Lcd Custom Character.
- При использовании этой библиотеки с 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 | Сдвинуть дисплей вправо без изменения отображаемых данных ОЗУ |