close

Вход

Забыли?

вход по аккаунту

?

ЛАБ ЖКИ

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
-----------
МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ
(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
________________________________________________________
А.В. Иванов
Лабораторная работа № 2а
по курсу
"Проектирование микропроцессорных систем"
ВЫВОД ДННЫХ НА АЛФАВИТНО-ЦИФРОВОЙ ЖК ДИСПЛЕЙ (пpoдoлжитeльнocть лaбoрaтoрнoгo зaнятия - 4 чaca)
Москва Издательство МЭИ 2002
УДК
621.398
Л
УДК 621.398.7
Утверждено учебным управлением МЭИ
Подготовлено на кафедре вычислительных машин, систем и сетей
Рецензент Иванов А.В.
Лабораторная работа № 40 по курсу "Проектирование микропроцессорных систем" Вывод данных на алфавитно-цифровой ЖК-дисплей. - М.: Изд-во МЭИ, 2002. - 16 с.
В ходе выполнения лабораторного занятия студенты осваивают методику отладки программ, написанных на языке ассемблера микроконтроллера семейства MCS51. В качестве примера использована микропроцессорная система, которая состоит из микроконтроллера 8051 и ЖКИ модуля фирмы Powertip.
__________
Учебное издание
Иванов Александр Владимирович Лабораторная работа № 40 по курсу "Проектирование микропроцессорных систем" ВЫВОД ДННЫХ НА АЛФАВИТНО-ЦИФРОВОЙ ЖК-ДИСПЛЕЙ Редактор Редактор издательства
------------------
Темплан издания МЭИ 2001 (II), метод., Подписано к печати
Формат 60х84/16Физ. печ. л.
ТиражИзд. №
------------------
Издательство МЭИ, 111250, Москва, ул. Красноказарменная, д.14
(c) Московский энергетический институт, 2001 г.
ЛАБОРАТОРНАЯ РАБОТА №2а
ВЫВОД ДННЫХ НА АЛФАВИТНО-ЦИФРОВОЙ ЖК-ДИСПЛЕЙ
Цель работы состоит в закреплении навыков программирования на языке ассемблера для микроконтроллеров семейства MCS51 и отладки программ в микpoпpoцeccopныx cиcтeмax на пpимepe вывода данных на алфавитно-цифровой двустрочный жидкокристаллический дисплей с собственным встроенным контроллером.
1. Описание жидкокристаллического дисплея
Структурная схема встроенного контроллера жидкокристаллического дисплея фирмы Powertip показана на рис.1. Данные из буфера данных BD, вход которого программно может быть задан как восьми или четырехразрядный, в зависимости от их назначения поступают в регистр команд IR или в регистр данных DR. В случае 4-разрядного входа данные в регистры записываются за два приема.
Выбор того или иного регистра осуществляется с помощью сигнала Ĉ/D. Если Ĉ/D =0, то выбирается регистр команд IR, иначе (Ĉ/D =1) выбирается регистр данных DR. Данные из регистра DR в зависимости от режима, заданного командой, поступают в память данных DRAM или в память знакогенератора CRAM адресу, содержащемуся в счетчике адреса АС. В память данных записывают информацию, подлежащую отображению на дисплее, а в память знакогенератора - коды символов, отсутствующих в стандартном наборе знакогенератора. Сигнал R/Ŵ задает цикл записи данных или чтения данных. В цикле чтения данных может быть опрошен сигнал BF занятости дисплея. Запись или чтение данных сопровождается сигналом стробирования Е. На временной диаграмме (рис.2) показаны временные соотношения между сигналами Ĉ/D, R/Ŵ, E и D0 - D7 для цикла записи. Цикл чтения отличается только сигналом R/Ŵ, который в активном состоянии должен иметь высокий уровень. Минимальная длительность сигнала Е - 230 нс.
В табл.1 перечислены форматы команд контролера ЖК-дисплея. Установка режима работы дисплея осуществляется в зависимости от значений следующих разрядов команды:
I\D - изменение счетчика адреса АС: 0 - декремент адреса, 1 - инкремент адреса.
S - сдвиг экрана: 0 - сдвига нет, 1 - после записи очередного значения данных в память DRAM экран сдвигается в направлении, определяемом битом I\D. I\D=0 - сдвиг экрана вправо, I\D=1 - сдвиг экрана влево. Во время сдвигов содержимое памяти DRAM не изменяется.
Таблица 1
Форматы команд контроллера ЖК-дисплея
Разряды команды
D7 D6 D5 D4 D3 D2 D1 D0Назначение команды10 0 0 0 0 0 0 1Очистка экрана, адрес АС=0 20 0 0 0 0 0 1 xНачало строки соответствует началу DRAM, адрес АС=030 0 0 0 0 1 I/D SЗадается направление сдвига курсора или символов (экрана)40 0 0 0 1 D C BВыбор режима отображения50 0 0 1 S/C R/L x xСдвиг курсора 60 0 1 DL N F x x Параметры отображения и разрядность входных данных70 1 AC AC AC AC AC ACПрисвоение адреса для CRAM81 AD AD AD AD AD AD ADПрисвоение адреса для DRAM
S/C - сдвиг курсора , если S/C=0. R/L=0 - сдвиг курсора влево, иначе вправо. D/L - разрядность входа буфера данных. 0 - 4 разряда, иначе - 8 разрядов.
N=0 - одна строка, иначе две строки.
F: размер матрицы символов: 0 - 5х8 точек, 1 - 5х10 точек.
D=0 - отображение символов отключено, 1 - включено.
С=1 - курсор отображается в виде черточки, 0 - курсор не виден.
В=1 - курсор отображается в виде мерцающего знакоместа, 0 - курсор не виден.
После включения питания контроллер дисплея устанавливается в режим 8-разрядного входа буфера данных (D/L=1), инкремента счетчика АС (I/D=1), однострочного (N=0) отображения знаков размером 5х8 точек (F=0) и отключения отображения знаков (D=0) и курсора (С=0, В=0). Поэтому после включения питания в контроллер по крайней мере следует загрузить команду №4 включения отображения (0Сh). Рекомендуемая последовательность команд для инициализации контроллера двустрочного дисплея имеет вид: 38h (28h) - режим отображения двух строк с матрицей 5х8 точек и 8-разрядный вход буфера данных (38h) или 4-разрядный вход буфера данных (28h);
0eh - отображение символов включено и включено отображение курсора в виде черточки;
06h - режим автоматического перемещения курсора слева направо после вывода каждого символа.
Чтение регистра IR позволяет определить текущее значение счетчика АС (7 младших разрядов) и значение сигнала занятости BF (старший разряд). Разряд BF равен единице, когда контроллер занят и BF=0 когда контроллер свободен.
Символы, содержащиеся в памяти DRAM, автоматически отображаются на экране дисплея. Каждому знакоместу дисплея соответствует ячейка памяти DRAM. Первому знакоместу верхней строки дисплея присвоен адрес 00h, второму - 01h и т.д. Первому знакоместу нижней строки дисплея присвоен адрес 40h, второму - 41h и т.д. Символ, поступающий в регистр DR записывается в память DRAM по адресу, указанному в АС. Курсор при этом перемещается впрово или влево на одну позицию, а значение АС и увеличивается или уменьшается. Чтобы осуществить переустановку курсора на нужное место, необходимо с помощью команды №8 присвоить АС соответствующий адрес.
В таблице 2 приведен набор символов, которые могут быть отображены на экране дисплея. По горизонтали указан шестнадцатеричный код старшей тетрады, а по вертикали - младшей тетрады.
Таблица 2 Шестнадцатеричные коды символов 0123456789ABCDEF00@P \pБЮчД1 !1AQ aqГЯщЦ2 "2BR brЁбъЩ3 #3CS c sЖвы!!4 $4DTdtЗгьф5%5EUeuИёэц6&6FVfvЙжющ7'7GWgwЛзя8 (8HXhxПИ"9 )9 IYiyУй"↑~A * : JZjzФк"↓éB + ; K[KЧл"C ,< L фlШмD -=M ]mЪн§E .>N ^nЫп¤F /?O _oЭт£
В лабораторной работе используется вариант (рис.3) подключения ЖК-модуля к микроконтроллеру 8051 в режиме 4-разрядного входа буфера данных (в лабораторных установках подключение ЖК-модуля к выводам порта Р1 может быть другое,). В этом случае байт данных записывается в ЖК-модуль за два раза, сначала старшая тетрада байта данных, затем - младшая, последовательность операций записи при этом следующая:
1. - установить соответствующий уровень сигнала на линии Ĉ/D;
2. - вывести значение старшей тетрады байта на линиях BD4 - BD7;
3. - установить на линии сигнал Е=1;
4. - установить на линии сигнал Е=0;
5. - вывести значение младшей тетрады байта на линиях BD4 - BD7;
6. - установить на линии сигнал Е=1;
7. - установить на линии сигнал Е=0;
8. - установить на линиях BD4 - BD7 сигналы высокого уровня.
Одним из вариантов начала программы инициализации контроллера дисплея может служить следующий фрагмент:
clr p1.2 ; установка сигнала Е=0
mov r7,#0 djnz r7,$ ; задержка после включения питания
mov a,#20h ; команда перевода в 4-х разрядный режим записи данных
call write_comand ; подпрограмма записи команды в контроллер дисплея
сall del ;задержка на время установления режима
call lcdini ; подпрограмма записи последовательности команд ини ;циализации
Подпрограммы записи команд (write_comand) или данных (write_data) должны начинаться с опроса бита занятости ВF. Примером подпрограммы опроса бита занятости ВF может служить следующий фрагмент (обратите внимание на изменение использования битов порта Р1 в конкретных лабораторных установках):
wait_bf:
push acc
wait_ll:
mov p1,#11110010b ; C/D=0, R/W=1,E=0 сле
setb p1.2 ; E=1
mov a,p1 ; чтение старшей тетрады регистра IR
clr p1.2 ; E=0
mov b,a ;временное хранение старшей тетрады
setb p1.2
mov a,p1 ;чтение младшей тетрады
clr b_e
mov a,b
jb acc.7,wait_ll ; проверка бита занятости BF
pop acc
ret
2. Домашнее задание
1. Написать на языке Ассемблера семейства MSC51 тексты подпрограмм записи команд контроллера дисплея write_comand, записи данных write_data, инициализации контроллера lcdini.
2. Написать программу, используя перечисленные подпрограммы п.1, вывода на дисплей в первую строку свою фамилию, а во вторую строку номер группы.
КОНТРОЛЬНЫЕ ВОПРОСЫ ПО ДОМАШНЕЙ ПОДГОТОВКЕ
1. Как описать выводы порта Р1, чтобы в случае другого подключения ЖКИмодуля изменить назначение выводов порта Р1, не меняя текст программы?
2. Какие команды использованы для инициализации ЖКИ модуля?
3. Как указать строку ЖКИ модуля?
4. Как указать номер знакоместа в строке?
3. Лабораторное задание
1. Оформить программу п.2 домашней подготовки как модуль и отладить с помощью инструментальных средств PV32.
2. Получить у преподавателя аппаратные средства отладки и проверить вывод данных на дисплей.
4. Содержание отчета
Отчет должен содержать:
- титульный лист;
- текст программы.
КОНТРОЛЬНЫЕ ВОПРОСЫ
ЛИТЕРАТУРА
Документ
Категория
Рефераты
Просмотров
25
Размер файла
102 Кб
Теги
жки, лаб
1/--страниц
Пожаловаться на содержимое документа