Скачиваний:
30
Добавлен:
03.06.2014
Размер:
7.32 Mб
Скачать

6.9. Порт 1

Аббревиатура - IOPORT1

Адрес 0FH

Чтение/запись в окне Hwindow0

Все контакты порта 1 - квази-двунаправленные, пока не выбрана их альтернативная функция. Если контакты порта сконфигурированы как контакты ввода-вывода, их можно читать или записывать. Если выбрана альтернативная функция контактов, из них можно только читать. Альтернативная функция контактов порта выбирается соответствующим управляющим регистром(см. табл.8). Альтернативные функции рассматриваются в описании периферийных модулей микропроцессора.

6.10. Порт 2

Аббревиатура - IOPORT2

Адрес 10H

Чтение/запись в окне Hwindow0

Порт 2 содержит контакты “только для ввода”, “только для вывода”, и квази-двунаправленные. Альтернативная функция контактов порта выбирается соответствующим управляющим регистром(см. табл.8). Альтернативные функции рассматриваются в описании периферийных модулей микропроцессора.

6.11. Доступ к Порту 3 и Порту 4

Доступ к Порту 3 и 4 может быть легко выполнен из внутреннего регистра Порта 3 и Порта 4 (IOPORT34) в ячейке 1FFEH. Обратите Внимание,что к портам 3 и 4 можно обращаться только как к слову. Невозможно читать или записывать Порт 3 или Порт 4 отдельно. Чтобы использовать Порты 3 и 4 как порты ввода-вывода, устройство должно быть установлено для внутреннего выполнения

Так как команды LD и ST требуют использования внутренних регистров, перед использованием данных необходимо сначала переслать информацию порта в нижний регистровый файл Если данные уже внутренние, команда LD не нужна.

Пример записи слова в Порты 3 и 4:

LD intreg, portdata ; Регистр < - данные

ST intreg, 1FFEH ; Регистр - > Порт 3 и 4

Для ввода из Портов 3 и 4 требуется, чтобы сначала в регистры портов были записаны единицы , чтобы установить конфигурацию входной схемы порта.

Это будет переводить порты в высокоимпедансный режим.

Обратите Внимание, что по этому входному условию порты сбрасываются.

Если в порт были записаны нули, то в контакты, которые должны быть использованы для ввода, должны быть записаны единицы.

Условия чтения Порта 3 и 4 при заранее записанных нулях следующие:

LD intrega, #0FFFFH ; Изменение режима порта

ST intrega, 1FFEH ; Регистр - > Порт 3 и 4

; LD & ST не нужны, если

; предварительно выводы установлены в 1

LD intregb, 1FFEH ; Регистр < - Порт 3 и 4

Обратите Внимание что формат команд LD и ST одинаков ,но места источника и приёмника в команде противоположны.

6.11.1. Порт 3 и Порт 4

Контакты Портов 3 и 4 имеют две функции ввода-вывода.

Они функционируют или(и) как двунаправленный порт с открытым стоком(P3.x,P4.x), или(и) как двунаправленная системная шина адреса /данных(ADx) ( с сильным низким и высоким выходным драйвером контактов ) .

Функционирование Портов 3 и 4 зависит от состояния контакта EA#(External Access) во время последнего сброса и от потребности обращения к внешней памяти программ /данных.

Контакт EA# не только определяет функцию контактов Порта 3 и 4, но также определяет то, что происходит при обращении к портам.

Если во время сброса устройства EA=0 , Порты 3 и 4 используются для того, чтобы только поддерживать системную шину адреса / данных. Чтение или запись по адресу Портов 3 и 4( 1FFEH ), интерпретируется как доступ к внешней шине, а не как доступ к порту.

Когда во время сброса устройства EA=1, Порты 3 и 4 осуществляют две функции: ввод-вывод и системная шина адреса / данных.

Обычно функция ввода-вывода портов - как у контактов с открытым стоком: нуль, записанный в защелку порта по адресу 1FFEH включает сильный низкий драйвер, в то время как единица, записанная в защелку порта отключает сильный низкий драйвер и переводит контакт в высокоимпедансное состояние. Запись единицы в контакт порта дает возможность использовать его для ввода. Чтение или запись в порт интерпретируется как внутренний доступ, так что никакой внешний цикл шины не выполняется.

Если не выполняется цикл внешней шины, порты 3 и 4 все время остаются портами ввода-вывода с открытым стоком.

Любой доступ к адресу, не интерпретируемому как внутренний адрес ,приводит к выполнению внешнего цикла шины. Выполняя цикл шины, Порты 3 и 4 временно переключаются, чтобы поддерживать функцию системной шины адреса / данных. Это означает, что во время записи адреса и данных в цикле шины ,контакты порта используют сильные высокие и сильные низкие драйверы, а во время чтения они в высокоимпедансном состоянии .

После того, как цикл шины завершается, контакты порта переключаются обратно к их функции порта ввода-вывода. Состояние контакта порта после переключения обратно к функции ввода-вывода зависит от последнего записанного в защелку порта значения.

В прикладных программах, которые используют системную шину адреса / данных, значение, программируемое в защелку порта имеет некоторое значение. Значение защелки порта появляется на шине в течение времен простоя ( то есть, в течение тех времен, когда Порты 3 и 4 - не системная шина адреса / данных). Запись нуля в Порты 3 и 4 приводит к сильному низкому управлению системной шиной адреса/данных при простое , а запись единиц в Порты 3 и 4 переводит системную шину адреса / данных в высокоимпедансное состояние.

Как защелка порта должна быть записана, зависит от прикладной программы. Запись нуля означает, что при простое шина управляется низко(сильный низкий уровень) , при записи единиц означает, что шина переводится в высокоимпедансное состояние. Высокоимпедансная шина может вызывать чрезмерный ток, но его легко зафиксировать, поместив на шине нагрузочные резисторы.Наличие низкого управления шиной избавляет от потребности в резисторах, но

проект должен гарантировать, что в то же самое время никакое другое устройство не может управлять шиной (поскольку может возникнуть короткое замыкание ).

Когда Порты 3 и 4 используются исключительно как шина адреса / данных системы, и осуществляется доступ по несуществующему адресу, оконечные нагрузочные резисторы

устанавливают на шине 0FFFFH .

Примечание

Выборка команды из неcуществующей памяти - индикация отказа системы или отказа программного обеспечения, устройство при этом сбрасывается и предотвращает дальнейшую работу.

Соседние файлы в папке lab96