Микропроцессорная техника: практический курс : учебное пособие для студентов Физико-технологического института, обучающихся по направлениям подготовки "Ядерная физика и технологии", "Биомедицинская инженерия"
Доступ к периферийным устройствам через ПЛИС
Download 0.63 Mb. Pdf ko'rish
|
978-5-321-02171-21 2012 (1)
3.4. Доступ к периферийным устройствам через ПЛИС
Лабораторный стенд SDK-1 содержит ряд периферийных устройств, доступных через регистры ПЛИС (табл. 3.2). Это клавиатура, жид- кокристаллический (ЖК) дисплей, линейка из восьми светодиодов, внешний параллельный порт и звуковой излучатель. Все регистры ПЛИС расположены на странице 8 внешней памяти данных. Для до- ступа к регистрам ПЛИС нужно сначала выбрать 8-ю страницу внеш- ней памяти данных. Для этого служит специальный регистр DPP (ад- рес 84H) – указатель страницы данных. Необходимо помнить, что при переключении страниц становятся недоступными все данные, разме- щенные на других страницах памяти. Т.е. перед обращением к DPP все передаваемые данные необходимо разместить в резидентной па- мяти данных. Кроме того, перед записью в регистр DPP необходимо временно сохранить его предыдущее содержимое (номер предыдущей страницы). После окончания работы с регистрами ПЛИС необходимо восстановить предыдущее содержимое регистра DPP. Подпрограмма PUTBYTE иллюстрирует технологию доступа к ре- гистрам ПЛИС лабораторного стенда SDK-1. Программа подробно прокомментирована. Следует обратить особое внимание на приемы корректной работы с регистрами микроконтроллера и на технологию доступа к страницам внешней памяти данных. 66 3.4. Доступ к периферийным устройствам через ПЛИС Таблица 3.2. Спецификация регистров ПЛИС Адрес Регистр Доступ Назначение 080000H KB R/W Регистр клавиатуры 080001H DATA_IND R/W Регистр шины данных ЖК-дисплея 080002H EXT_LO R/W Регистр данных внешн. порта (d7. . .d0) 080003H EXT_HI R/W Регистр данных внешн. порта (d15. . .d8) 080004H ENA W Регистр управления внешним пор- том ввода-вывода, звуком и сигна- лом INT0 080006H C_IND W Регистр управления ЖК-дисплеем 080007H SV W Регистр управления светодиодами ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ðÏÄÐÒÏÇÒÁÍÍÁ PUTBYTE ; ÷Ù×ÏÄ ÂÁÊÔÁ × ÒÅÇÉÓÔÒ ðìéó (0h...7h) ÓÔÅÎÄÁ. ; (A) -- ÂÁÊÔ ÄÁÎÎÙÈ; (dptr) -- ÁÄÒÅÓ ÒÅÇ. ðìéó. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; putbyte: push dpp ; óÏÈÒ. ÎÏÍÅÒ ÔÅËÕÝÅÊ ÓÔÒ. mov dpp,#08d ; ðÅÒÅÈÏÄ ÎÁ 8-À ÓÔÒ. movx @dptr,A ; úÁÐÉÓØ × ÒÅÇÉÓÔÒ ðìéó. pop dpp ; ÷ÏÓÓÔ. ÎÏÍÅÒÁ ÓÔÒ. ret ; ; ëÏÎÅà ÐÏÄÐÒÏÇÒÁÍÍÙ PUTBYTE end ; 3.4.1. Светодиодные излучатели Для работы с линейкой светодиодов служит регистр SV, каждый бит которого управляет свечением одного светодиода. Единичное зна- чение бита соответствует свечению светодиода. Программирование светодиодных излучателей сводится к выводу байта данных в регистр SV (табл. 3.2). Для иллюстрации приведем программу, которая ко- пирует байт данных из аккумулятора в регистр SV с использованием подпрограммы PUTBYTE. 67 3. Лабораторный практикум ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ÷Ù×ÏÄ ÂÁÊÔÁ ÎÁ ÌÉÎÅÊËÕ Ó×ÅÔÏÄÉÏÄÏ× ÓÔÅÎÄÁ SDK-1 ; Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÏÄÐÒÏÇÒÁÍÍÙ putbyte ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; org 02000h ; îÁÞÁÌÏ SRAM ÷ðð. dpp data 84h ; áÄÒÅÓ ÒÅÇÉÓÔÒÁ dpp. mov a,#11000011b ; âÁÊÔ ÄÁÎÎÙÈ ÄÌÑ ×Ù×ÏÄÁ. call svdisp ; sjmp $ ; ëÏÎÅà ÐÒÏÇÒÁÍÍÙ. svdisp: mov dptr,#07h ; áÄÒÅÓ ÒÅÇ. Ó×ÅÔÏÄÉÏÄÏ×. call putbyte ; ret ; end ; 3.4.2. Жидкокристаллический дисплей Двухстрочный дисплей на основе жидкокристаллических индика- торов типа WH1602B-YGK-CP (Winstar Display) содержит 32 знако- места (по 16 знакомест в каждой строке). После сброса вывод проис- ходит в левую верхнюю позицию дисплея. При каждом выводе курсор автоматически сдвигается вправо на следующее знакоместо. Данный дисплей не переводит автоматически строку и не возвращает автома- тически курсор в начало строки. Это необходимо осуществлять вруч- ную при помощи специальных команд. Дисплей имеет встроенный знакогенератор, содержащий различ- ные символы, цифры и буквы (латиница и кириллица). Каждый символ кодируется одним байтом. Большинство символов с кодами 00H. . .7FH соответствуют таковым для ASCII кодировки. В частности, сюда вхо- дят знаки препинания, цифры, а также строчные и прописные латин- ские буквы. Наличие ASCII кодировки дает возможность использо- вать литералы для задания кода символов при программировании. Кириллица имеет нестандартную кодировку: знакогенератор содер- жит лишь кириллические символы, отличающиеся по начертанию от латиницы. Все прочие кириллические символы необходимо заменять латинскими символами, сходными по начертанию. Для взаимодействия с жидкокристаллическим дисплеем служат два регистра ПЛИС (табл. 3.2). Регистр данных DATA_IND позволяет уста- навливать данные на шине данных дисплея и считывать их оттуда. При этом необходимо также использовать регистр управления дисплеем C_IND (табл. 3.3). В этом регистре программист может использовать лишь три младших бита. В табл. 3.4 приведены некоторые наиболее употребительные ко- манды для работы с дисплеем. Приведенный набор команд достато- 68 3.4. Доступ к периферийным устройствам через ПЛИС Таблица 3.3. Спецификация битов регистра C_IND Бит Поле Описание 0 E Бит управления входом «E» ЖК-дисплея. Наличие по- ложительного импульса 0–1–0 на входе «E» фиксирует информацию на шине ЖК-дисплея. Данные и сигналы RS, RW к этому моменту должны быть уже установ- лены. Операцию чтения следует проводить при уста- новленном значении «E» = 1 1 RW Переключение шины ЖК-дисплея на чтение (1), за- пись (0) 2 RS Переключение режимов команды (0) или данные (1) Таблица 3.4. Примеры команд управления дисплеем Команда RS RW Регистр DATA_IND Очистка дисплея 0 0 0 0 0 0 0 0 0 1 Возврат в начало стро- ки 0 0 0 0 0 0 0 0 1 × Установка текущей по- зиции курсора 0 0 1 a6 a5 a4 a3 a2 a1 a0 Чтение флага занято- сти (BF) и текущей по- зиции курсора 0 1 BF a6 a5 a4 a3 a2 a1 a0 Download 0.63 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling