Мегаобучалка Главная | О нас | Обратная связь


Программа управления ЖКИ типа MT -16 S 2 DH



2019-12-29 343 Обсуждений (0)
Программа управления ЖКИ типа MT -16 S 2 DH 0.00 из 5.00 0 оценок




 

Жидкокристаллические индикаторы (ЖКИ), иначе, жидкокристаллические дисплеи (ЖКД) или LCD-индикаторы (liquid crystal display) практически полностью заменили светодиодные индикаторы во многих устройствах. Единственным недостатком ЖКИ является то, что им трудно пользоваться при малой освещенности.

В настоящее время широко применяется двухстрочный ЖКИ MT-16S2DH с контроллером HD44780 фирмы Hitachi. Если необходим дисплей на четыре строки по 40 символов, то можно включить блок управления М50530 или пару контроллеров HD44780. Индикатор имеет 14 выводов.

Таблица 3.1 - Выводы подключения ЖКИ

вывод 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Функ. Gnd Vdd V0 RS R/W E D0 D1 D2 D3 D4 D5 D6 D7

 

Напряжение питание нормировано и составляет 5В. На вывод V0 подается напряжение регулировки контрастности табло через подстроечный резистор 10 кОм, включенный между «землей» и выводом Vdd. Модуль HD44780 содержит два регистра: регистр команд IR (Instraction Register) и регистр данных DR (Data Register).

Выбор регистров осуществляется путем подачи сигнала управления от микроконтроллера на вывод RS: если RS = 0, то будет подключен регистр команд, а если RS = 1, то регистр данных. Вывод R/W – чтение - 1/запись - 0, а вывод Е (Enable) – для строб-сигнала положительной полярности (+5В) длительностью не менее 450 нс, в течение которого записываются передаваемые биты.

Рисунок 3.1 – Схема подключения ЖКИ к микроконтроллеру

Как правило, в микроконтроллерных системах управления  для задания режимов функционирования ЖКИ используется порт Е (Е0, Е1 и Е2), питание и подсветка подключаются напрямую - +5В, а данные или команды подаются от любого свободного порта.

Регистр команд IR выполняет следующие функции: смещение курсора, гашение табло или установку адреса ин­дикатора. Регистр данных DR служит для промежуточного хранения дан­ных, которые затем с помощью внутренних операций автоматически передаются впамять отображаемых данных (DD — Display Data) или в память знакогенерато­ра (CG — Character Generator).

В начале каждого сброса данных на ЖКИ необходимо убедится в его свободности по флагу занятости (разряд 7). Установленный флаг занятости (лог. 1) означает, что модуль HD44780 занят выполнением внутренней операции и в данный момент к приему не готов.

Считывание данных из памяти DD или CG выполняется через регистр данных DR. После того как микроконтроллер записывает некоторый адрес в регистр IR, байт данных, расположенный в памяти по этому адресу, с помощью внутренней операции переписывается в регистр DR. Процесс чтения завершается считыванием байта данных из этого регистра. Когда текущая операция чтения завершена, с помощью функции автоинкремента в регистр данных DR записывается байт данных, извлеченный из памяти по следующему адресу, который будет использован при очередном считывании.

Счетчик адреса, по сути, состоит из двух частей и содержит текущий адрес как в памяти DD-RAM, так и в памяти CG-RAM. После того как в регистр IR записана команда установки адреса DD-RAM или CG-RAM, этот адрес с помощью внутренней операции автоматически переносится в соответствующий счетчик. Когда запись в память DD/CG (или чтения из нее) завершена, соответствующий счетчик автомата инкрементируется.

В модуле HD44780 используется две разные памяти:

- DD-RAM - для хранения отображаемых данных;

- CG-RAM - для хранения битовых комбинаций, которые соответствуют матрице размером 5x8 или 5x10 (определяет форму символа).

Доступ как к одной, так и к другой памяти осуществляется по текущему адресу, хранимому в счетчике адреса.

Емкость памяти DD-RAM составляет 80 знаков, представленных в 8-разрядной ASCII-кодировке. Из них на двухстрочном табло могут быть одновременно отображены 16 символов в каждой строке, однако с помощью операции сдвига последующие символы также могут оказаться в отображаемой области (выделено жирным).

Таблица 3.2 – Двухстрочное табло ЖКИ

Позиция 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17   39 40
Адрес DD-RAM 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 .. 26 27
Адрес DD-RAM 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 .. 66 67

 

Первая строка начинается с адреса 00Н, а вторая — с адреса 40Н. Память разбита на две половины по 40 байт каждая, причем между последним адре­сом первой строки и первым адресом второй строки есть разрыв в 24d байта.

После сдвига влево первая строка начинается с адреса $01, а вторая строка — с адреса $41, а после сдвига вправо первая строка начинается с адреса $27, а вто­рая строка — с адреса $67.

Знакогенератор — это память типа ROM, предназначенная для хранения би­товых комбинаций, соответствующих матрице размерами 5x8 или 5x10. В этой памяти можно хранить информацию о 208 символах (матрица 5x8).

В модуле HD44780 реализуются следующие функции:

- начальная инициализация: DL = 1 - 8-разрядный интерфейс, N = 1 -

  двухстрочное табло, F = 0 - матрица 5x8;

- управление табло: D = 0 - табло отключено, С = 0 — курсор отключен,

В = 0 - мерцание отключено;

- очистка табло;

- режим ввода данных: I/D = 1 — инкремент на 1; S = 0 — нет сдвига тa6ло.

Блок – схема программы инициализации ЖКИ имеет вид, представленный на рисунке 3.2.

Рисунок 3.2 – Блок-схема инициализации ЖКИ

Прежде чем разрабатывать программу инициализации необходимо привести полный перечень команд/инструкций для ЖКИ, которые приведены в таблице 3.3.

Таблица 3.3 - Система команд HD44780

Команда Код Описание Время выполнения
Очистка индикатора     Возврат курсора   Установка режима ввода     Вкл/выкл индикатора   Сдвиг курсора или позиции знакоместа   Функциональная настройка      Установка адреса CGRAM Установка адреса DRAM     Считывание флага занятости Запись данных     Считывание данных 0000 0001     0000 0010   0000 0AS0   0000 1DCB   0001 SR00     001L NF00   01ХХХХХХ   10ХХ ХХХХ   В000 0000   Данные     Данные                               Очищает индикатор и возвращает курсор в исходное положение Возвращает курсор в исходное положение Устанавливает направление перемещения (А = 1 приращение) и сдвига (S = 1 сдвиг) курсора Включает/выключает индикатор (D = 1 вкл) (С = 1 курсор включен) (В = 1 курсор мигает) Устанавливает перемещение курсора и сдвиг позиции знакоместа (S =1 сдвиг позиции) (S = 0 R = 1 перемещения курсора вправо Программирование знакоместа (L = 1 восемь разрядов, L = 0 четыре), (N - 1 две строки) (F = 1 мат­рица 5x10 точек, F = 0 матрица 5x7 точек) Устанавливает адрес ОЗУ генератора символов (CG) Устанавливает адрес ОЗУ LCD Считывает флаг занятости (В = 1 занят) Записывает данные на LCD  или в ОЗУ генератора символов Считывает данные с LCD или ОЗУ генератора символов                     1,64 мс     1,б4 мс   40 мкс   40 мкс   40 мкс     40 мкс   40 мкс   40 мкс   0   40 мкс     40 мкс  

 

Ниже приводится программа управления ЖКИ: инициализация, затем опрос занятости и сброс на первую строку дисплея слова «PRIVET.», пользуясь DD-RAM и слова «Привет!» с помощью символов CG-RAM.

include <p!6f377.h>

include <lmO321.h>

; ===================================

; Переменные управления индикатором

; ===================================

;

LCD_DATA   EQU    PORTB

LCD_ DATA TRIS EQU    TRISB

LCD_CNTL    EQU    PORTЕ

E  EQU    1

RRW EQU    0

RS EQU    2

TEMPI1 EQU 0x0 30

; =========================================

;   Начало кода

; =========================================

ORG RESET_V

nор

RESET GOTO START

; =========================================

;   Начало исполняемого кода с адреса 100h

; =========================================

ORG   100h

START

CLRF STATUS

CLRF PORTB

CLRF FORTE

BSF STATUS, RPO

CLRF    TRISB

CLRF    TRISE

BCF STATUS, RPO

; ==========================================

;   Инициализация индикатора

; ==========================================

CLRF    LCD_CNTL

DISPLAY_INIT

MOVLW 0x038            ; Выбираем 8-ми битный интерфейс

MOVWF LCD_DATA

BSF    LCD_CNTL, E   

BCF    LCD_CNTL, E

LCD_DELAY

MOVLW LCD_INIT_DELAY

MOVWF MSD

CLRF  LSD
          CLRF LSD
LOOP 2

DECFSZ LSD, F    ; Delay time = MSD * ((3 * 256) + 3) * Тсу

GOTO LOOP2

DECFSZ MSD,F
END_LCD_DELAY

GOTO LOOP2
CMD_SEQ

MOVLW 0x38

MOVWF LCD_DATA

BSF LCD_CNTL, E

BCF    LCD_CNTL, E

MOVLW DISP_ON

CALL    SEND_CMD

MOVLW CLR_DISP

CALL SEND_CMD

MOVLW ENTRY_INC

CALL    SEND_CMD

MOVLW DD_RAM_ADDR

CALL    SEND_CMD

; ====================================

;   Начало работы

; ====================================

CALL    FUNCTION

GOTO    START

FUNCTION

MOVLW 'P'

CALL    SEND_CHAR

MOVLW 'R’

CALL    SEND_CHAR

MOVLW 'I'

CALL   SEND_CHAR

MOVLW 'V'

CALL    SEND_CHAR

MOVLW 'E’

CALL    SEND_CHAR

MOVLW 'T’

CALL    SEND_CHAR

MOVLW '.’

CALL    SEND_CHAR

MOVLW  B'11000000'

CALL   SEND_CMD

MOVLW h'A8'

CALL    SEND_CHAR

MOVLW h'50’

CALL   SEND_CHAR

MOVLW h'A5’

CALL    SEND_CHAR

MOVLW h'4 2'

CALL    SEND_CHAR

MOVLW h'45'

CALL    SEND_CHAR

MOVLW h'54 '

CALL    SEND_CHAR

              MOVLW h'21'

RETURN

; =====================================

; Подпрограмма вывода символа на экран ЖКИ

; =====================================

SEND_CHAR

MOVWF   CHAR

CALL BUSY_CHECK

MOVF CHAR, W

MOVWF   LCD_DATA

BCF LCD_CNTL, RRW

BSF LCD_CNTL, RS

BSF LCD_CNTL, E

BCF LCD_CNTL, E

RETURN

; ===================================

; Подпрограмма передачи команды на ЖКИ

; ===================================

SEND_CMD

MOVWF CHAR

CALL    BUSY_CHECK

MOVF CHAR, W

MOVWF LCD_DATA

BCF LCD_CNTL, RRW

BCF LCD_CNTL, RS

BSF LCD_CNTL, E

BCF LCD_CNTL,E
RETURN

; ===================================================

; Подпрограмма ожидания разрешения от ЖКИ на передачу

; символа или команды

; ==================================================

 

BUSY_CHECK

BSF STATUS,RPO

MOYLW 0xFF

MOVWF LCD_DATA_TRIS

BCF STATUS, RPO

BCF LCD_CNTL, RS

BSF LCD_CNTL, RRW

BSF LCD_CNTL, E

BCF LCD_CNTL, E

MOVF   LCD_DATA, W                                                   

MOVWF TEMPI

BCF TEMPI, 7

BTFSC  TEMPI, 7

GOTO   BUSY_CHECK

BCF LCD_CNTL, RRW

BSF STATUS, RPO

MOVLW 0x00

MOVWF LCD_DATA_TRIS

BCF STATUS, RPO

RETURN

end

 



2019-12-29 343 Обсуждений (0)
Программа управления ЖКИ типа MT -16 S 2 DH 0.00 из 5.00 0 оценок









Обсуждение в статье: Программа управления ЖКИ типа MT -16 S 2 DH

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (343)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)