
- •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.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уществующей памяти - индикация отказа системы или отказа программного обеспечения, устройство при этом сбрасывается и предотвращает дальнейшую работу.