- •1.Функциональное описание микроконтроллера i80196kc
- •1.1. Обзор архитектуры
- •1.1.1. Ядро 80xc196kc
- •1.1.1.1. Файловый регистр (Register File)
- •1.1.1.2. Регистровое арифметико-логическое устройство (ралу)
- •1.1.1.4. Контроллер памяти ( Memory Controller)
- •1.1.1.5. Контроллер прерываний и pts (Interrupt Controller)
- •1.2. Параметры синхронизации
- •1.3. Внутренние периферийные устройства
- •1.3.1. Стандартные порты ввода-вывода
- •1.3.2. Последовательный порт ввода-вывода
- •1.3.3. Быстродействующий модуль
- •1.3.4. Аналого-Цифровой Преобразователь (ацп)
- •1.3.5. Широтно-импульсный модулятор (шим)
- •1.3.6. Сторожевой Таймер
- •2.Введение в программирование 8xc196kc
- •2.1. Типы программирования микроконтроллера
- •2.2. Система команд
- •2.3. Типы данных
- •2.4. Способы адресации
- •3. Карта памяти микроконтроллера i80c196kc
- •3.1. Основные разделы памяти
- •3.1.1. Разделы внешней памяти
- •3.1.2. Порты 3 и 4
- •3.1.3. Программная память и Память Специального назначения
- •3.1.3.1. Управление доступом к внутренней или внешней памяти
- •3.1.3.2. Память для программ
- •3.1.3.3. Память специального назначения
- •3.1.4. Регистровый Файл(Register File)
- •3.1.4.1. Указатель Вершины стека (sp)
- •3.1.4.2 Регистры Специальных Функций
- •3.2. Работа через горизонтальное окно
- •3.2.1. Выбор hWindow
- •3.3.1. Выбор vWindow
- •3.3.2. Работа с вертикальными окнами и Способы Адресации
- •4. Прерывания
- •4.1 Обработка Прерывания
- •4.2. Описание работы Контроллера Прерывания
- •4.3. Описание работы Периферийной Станции Транзакций(pts)
- •4.4. Приоритеты Прерывания
- •4.5. Изменение Приоритетов Прерывания
- •4.6. Программы Обработки прерывания
- •4.7. Распознавание Прерываний
- •4.8. Время Ожидания Прерывания
- •4.9. Специальные Прерывания
- •4.9.1. Прерывание по Невыполняемому Коду
- •4.9.2. Прерывание по Ловушке Программного
- •4.9.3. Немаскируемое Прерывание
- •4.10. Программирование Прерываний
- •4.11. Предоставление pts Прерывания
- •4.12. Предоставление Стандартных Прерываний
- •4.13. Выбор Источников Прерывания
- •4.14. Регистры Маскирования Прерываний
- •4.15. Регистры Захвата Прерывания
- •4.16. Pts Прерывания
- •4.16.1. Управляющие Блоки pts
- •4.16.1.1. Регистр ptscount
- •4.16.1.2. Прерывание End-of-pts
- •4.16.1.3. Регистр ptscon
- •4.16.2. Краткий Обзор Режима Одиночной
- •4.16.2.1. Пример Режима Одиночной Передачи
- •4.16.3. Краткий Обзор Режима Поблочной
- •4.16.3.1. Пример Режима Поблочной Пересылки
- •4.16.4. Краткий Обзор Режима Сканирования
- •4.16.4.1. Pts Циклы в Режиме Сканирования ацп
- •11Eh ad_result для ach0
- •102H ad_result для acHx
- •100H ad_command для acHx
- •4.16.5. Hsi. Краткий Обзор Режима
- •4.16.5.1. Пример Режима hsi
- •4.16.6. Hso. Краткий Обзор Режима
- •4.16.6.1. Пример Режима hso
- •6. Парраллельные порты ввода - вывода
- •6.1. Краткий Функциональный Обзор
- •6.2.Контакты Порта Ввода
- •6.3. Контакты Порта Вывода
- •6.4. Контакты квази-двунаправленного порта
- •6.5 Контакты Двунаправленного Порта с открытым стоком
- •6.6.Программирование Портов ввода-вывода
- •6.7.Организация Портов Ввода
- •6.7.1. Порт 0
- •6.8. Организация Портов Вывода
- •6.9. Порт 1
- •6.10. Порт 2
- •6.11. Доступ к Порту 3 и Порту 4
- •6.11.1. Порт 3 и Порт 4
- •6.12. Особенности работы с квази - двунаправленными портами
6.4. Контакты квази-двунаправленного порта
Квази - Двунаправленные контакты могут использоваться как для ввода, так и для вывода ( без потребности в логике управления направлением ). Эти контакты выводят сильно управляемый сигнал низкого уровня(0) или слабо управляемый сигнал высокого уровня(1). Слабый сигнал высокого уровня можно внешне изменить(на 0), обеспечивая функции ввода. На рис.25 приведена схема контакта квази-двунаправленного порта
Подобно контакту порта ввода, он имеет триггер выборки(Sample Latch) и буфер чтения. Подобно контакту порта вывода, он имеет защелку порта(Port Latch).
Выходной драйвер(Q1,Q2,Q3,Q4) обеспечивает функции квази - двунаправленного порта.
Выход контакта может иметь только два статических значения: сильно управляемое низкое(0) или слабо управляемое высокое(1).
Запись нуля в контакт порта разрешает работу сильного низкого драйвера(Q3) и поэтому изменить значение контакта с 0 на 1 невозможно.
Запись единицы в контакт порта отключает сильный низкий драйвер (Q2) и допускает работу очень слабого высокого драйвера (Q3). Для того, чтобы быстро получить контакт высокого значения , сильный высокий драйвер (Q1) допускается в течение одного времени состояния и затем блокируется (активным остаётся только Q3).
Способность перевозбуждать(изменять 1 на 0) слабый драйвер вывода - это то, что дает контакту квази-двуна-правленного порта возможность ввода.
Так как контакт квази - двунаправленного порта имеет схему чтения, возможно непосредственно читать значение контакта ( в отличие от контактов порта вывода). Однако, так как контакт порта может внешне изменяться на нуль, чтение контакта порта может ложно указать на то, что в него был записан нуль.
Выход контакта квази - двунаправленного порта также содержит нагрузочный драйвер (Q3) который допускается всякий раз, когда в защелку вывода записывается единица.
Этот нагрузочный драйвер обеспечивает очень маленький ток, который заставляет контакт из высокоимпедансного состояния переходить к высокому (единичному) значению.
6.5 Контакты Двунаправленного Порта с открытым стоком
Контакты Двунапраленного Порта с открытым стоком функционируют подобно квази -двунаправленным контактам порта, за исключением того, что нет никаких сильных или слабых высоких драйверов. На рис.26 приведена схема
контакта Двунапраленного Порта с открытым стоком .
Запись нуля на защелку порта допускает сильный низкий драйвер (Q1). Пока Q1 активен, невозможно извне перевозбудить нуль без того, чтобы не нарушить работу устройства. Единица, записанная в защелку порта отключает Q1 и переводит контакт порта в высокоимпедансное состояние.
Внешне, контакт порта может быть высоко управляемым с помощью нагрузочного резистора или логического ключа.
6.6.Программирование Портов ввода-вывода
Для чтения или записи контактов порта каждый из пяти портов ввода-вывода имеет связанный с ним Регистр Специальных Функций (SFR). Некоторые из портов ввода-вывода имеют дополнительный SFR, который реконфигурирует контакт порта,чтобы поддерживать альтернативную функцию .
Не все SFRs портов являются и читаемыми и записываемыми одновременно( например, SFR Порта 0 только читаем ). Также, не все SFRs существуют в одном и том же горизонтальном окне (например, запись в регистры управления SFR осуществляется в HWindow 0, а чтение в HWindow 15 ).
IOPORT0, IOPORT1, и IOPORT2 - SFRs, используемые для того, чтобы читать Порт 0, читать/записывать Порт 1, и читать/записывать Порт 2, соответственно.
Таблица 9 показывает, что происходит при чтении или записи каждого порта ввода-вывода и какие условия могут вызвать непредвиденный результат.
Таблица 9. Операции Чтения/Записи Портов
Операция Чтения Операция Записи
Порт 0 (IOPORT0)
Читает текущее значение. Не возможна.Запись
Порт не должен читаться в IOPORT0 не
когда выполняется A/Ц воздействует на P0
преобразование но воздействует на контроллер скорости
передачи
Порт 1 (IOPORT1)
Операция Чтения Операция Записи
Читает текущее значение Запись изменяет состояние
контактов. В контакт защелки порта. Изменение
порта может быть записано защелки контакта порта
значение единицы, но возвра- не влияет на контакт
щено значение нуля, поскольку порта, если выбрана
оно может внешне измениться альтернативная функция
Порт 2 (IOPORT2)
Читает текущее значение кон- Запись изменяет состояние
тактов порта, за исключением защелки порта, за
тех контактов, которые только исключением контактов
для вывода .Контакты только для только для ввода, запись
вывода возвращают неопределен- в которые игнорируется
ное значение и должны быть за-
маскированы
Порты 3,4 (1FFEH)
Читает текущее значение контак- Запись изменяет состояние
тов порта. В контакт порта защёлки контакта порта.
может быть записана 1, а Любой внешний доступ
прочитан 0, поскольку она контроллера шины переза-
может быть внешне перезаписана писывает значение защелки
контакта порта для вы- полнения операций на шине
Порты 3 и 4 всегда доступны вместе через операцию чтения/записи слова.
После сброса устройства, все порты ввода-вывода, за исключением Порта 3 и Порта 4, функционируют как порты ввода-вывода. При EA#=0 - во время переднего фронта RESET#, Порт 3 и Порт 4 функционируют как системная шина
адреса / данных и не могут использоваться как порты ввода-вывода,.
Полностью или частично Порт 0, Порт 1, и Порт 2
могут быть сконфигурированы ,чтобы допустить альтернативные функции контактов.