Название: Микроконтроллеры - Методические указания (Г.Г. Матушкин)

Жанр: Технические

Просмотров: 1159


Рекомендуемая литература

 

1. Микроконтроллеры. Лабораторный стенд mCV-Lab. Составил Е.Д. Ба-

ран. – Новосибирск:  изд-во НГТУ, 2001.

2. Микроконтроллеры MCS-196. Общая характеристика. Руководство по работе в среде проектирования ProjectBuilder. Составили Е.Д. Баран, С.В. Квеглис, В.В. Кожекин. – Новосибирск: Изд-во НГТУ, 1996.

3. Козаченко В.Ф. Микроконтроллеры: руководство по применению 16 разрядных микроконтроллеров Intel MCS-196/296 во встроенных системах управления. – М.: Изд-во ЭКОМ, 1997.

4. Бродин В.Б., Шагурин И.И. Микроконтроллеры. Архитектура, программирование, интерфейс. – М.: Изд-во ЭКОМ, 1999.

5. 196 Microcontroller Family Fact Sheet. – Intel Corporation. 1994.

6. 8XC196KC/8XC196KD User's Manual. – Intel Corporation. 1993.

7. EV80C196KC Microcontroller Evaluation Board User's Manual. – Intel Corporation. 1992.

8. 196KD-20 Microcontroller Target Board User's Manual. – Intel Corporation. 1993.

Приложение П1

 

Таблица П1.1

 

Карта распределения адресного пространства микроконтроллеров

8XC196KC и 8XC196KD семейства  MCS-196

 

KC                                                                                         KD

 

FFFFH

 

6000H

 

 

Внешняя память или устройства ввода/вывода

 

 

  FFFFH

 

   A000H

5FFFH

 

2080H

Внутренняя память программ ROM / EPROM

или внешняя память

   9FFFH

 

   2080H

207FH

 

2000H

 

Регистры специального назначения (SFR) периферийных устройств

 

   207FH

 

   2000H

1FFFH

Порт 4

   1FFFH

1FFEH

Порт 3

   1FFEH

1FFDH

 

0200H

 

Внешняя память (ОЗУ или ПЗУ)

   1FFDH

 

   0400H

01FFH

 

001AH

 

Внутреннее регистровое ОЗУ

   03FFH

 

   001AH

0019H

0018H

Указатель стека

   0019H

   0018H

0017H

 

0000H

 

Регистры специального назначения (SFR)

центрального процессора

 

   0017H

 

   0000H

 

 

Более детальное распределение адресного пространства, отведенного под регистры специального назначения центрального процессора в рассматриваемых типах микроконтроллеров, приведено в табл. П1.2.

Таблица П1.2

 

Распределение адресного пространства в области регистров специального назначения

ЦП (8XC196KC/KD) для горизонтальных окон: HWindow0, HWindow1 и HWindow15

 

Адрес

HWindow0 (Read)

HWindow0 (Write)

HWindow1 (Read/Write)

HWindow15 (Read)

Hwindow15 (Write)

17H

IOS2

PWM0_CONTROL

PWM2_CONTROL

PWM0_CONTROL

IOS2

16H

IOS1

IOC1

PWM1_CONTROL

IOC1

IOS1

15H

IOS0

IOC0

Reserved

IOC0

IOS0

14H

WSR

WSR

WSR

WSR

WSR

13H

INT_MASK1

INT_MASK1

INT_MASK1

INT_MASK1

INT_MASK1

12H

INT_PEND1

INT_PEND1

INT_PEND1

INT_PEND1

INT_PEND1

11H

SP_STAT

SP_CON

Reserved

SP_CON

SP_STAT

10H

IOPORT2

IOPORT2

Reserved

Reserved

Reserved

0FH

IOPORT1

IOPORT1

Reserved

Reserved

Reserved

0EH

IOPORT0

BAUD_RATE

Reserved

Reserved

Reserved

0DH

TIMER2 (Hi)

TIMER2 (Hi)

Reserved

T2CAPTURE (Hi)

T2CAPTURE (Hi)

0CH

TIMER2 (Lo)

TIMER2 (Lo)

IOC3

T2CAPTURE (Lo)

T2CAPTURE (Lo)

0BH

TIMER1 (Hi)

IOC2

Reserved

IOC2

TIMER1 (Hi)

0AH

TIMER1 (Lo)

WATCHDOG

Reserved

WATCHDOG

TIMER1 (Lo)

09H

INT_PEND

IND_PEND

IND_PEND

INT_PEND

INT_PEND

08H

INT_MASK

INT_MASK

INT_MASK

INT_MASK

INT_MASK

07H

SBUF (RX)

SBUF (TX)

PTSSRV (Hi)

SBUF (TX)

SBUF (RX)

06H

HSI_STATUS

HSO_COMMAND

PTSSRV (Lo)

HSO_COMMAND

HSI_STATUS

05H

HSI_TIME (Hi)

HSO_TIME (Hi)

PTSSEL (Hi)

HSO_TIME (Hi)

HSI_TIME  (Hi)

04H

HSI_TIME (Lo)

HSO_TIME (Lo)

PTSSEL (Lo)

HSO_TIME (Lo)

HSI_TIME  (Lo)

03H

AD_RESULT (Hi)

HSI_MODE

AD_TIME

HSI_MODE

AD_RESULT (Hi)

02H

AD_RESULT (Lo)

AD_COMMAND

Reserved

AD_COMMAND

AD_RESULT (Lo)

01H

ZERO_REG (Hi)

ZERO_REG (Hi)

ZERO_REG (Hi)

ZERO_REG (Hi)

ZERO_REG (Hi)

00H

ZERO_REG (Lo)

ZERO_REG (Lo)

ZERO_REG (Lo)

ZERO_REG (Lo)

ZERO_REG (Lo)

 

 

В каждый момент времени может быть активным только одно горизонтальное окно – HWindow0, HWindow1 или HWindow15. Переключение между тремя горизонтальными окнами (селектирование окон) производится путем записи в регистр селектирования окон WSR номера горизонтального окна, например:

                                 LDB    WSR,   #0;             LDB    WSR,   #1;               LDB   WSR,   #15.

 

Таблица П1.3

 

Регистры специального назначения центрального процессора

 

Наименование регистра

Назначение регистра

ZERO_REG (Hi/Lo)

Нулевой регистр, содержимое которого всегда равно 0. Используется как базовое значение при индексации и как константа при вычислениях и сравнении

AD_RESULT (Hi/Lo)

Регистр результата аналого-цифрового преобразования. Содержит старший (Hi) и младший (Lo) байты результата аналого-цифрового преобразования (байты можно только считывать)

AD_COMMAND

Регистр управления аналого-цифровым преобразованием. Используется для задания номера канала преобразования, разрядности результата преобразования и способа запуска на преобразование

AD_TIME

A/D Conversion Time – регистр, используемый для задания момента выборки и времени одного преобразования

HSI_MODE

Регистр режима HSI. Содержимое регистра задает режим работы высокоскоростного модуля

HSI_TIME (Hi/Lo)

Регистр, содержащий старший (Hi) и младший (Lo) байты значения момента времени срабатывания высокоскоростного входного модуля (слово можно только считывать)

HSO_TIME (Hi/Lo)

Регистр, содержимое которого определяет момент времени выполнения модулем высокоскоростного вывода команды, занесенной в регистр команд (Command Register)

 

 

Продолжение табл. П1.3

 

HSO_COMMAND

Регистр команд высокоскоростного модуля вывода. Содержимое его определяет действие, которое должно произойти в момент времени, заданный содержимым регистров HSO_TIME

HSI_STATUS

Регистр состояния модуля высокоскоростного ввода. Его содержимое характеризует, на каком входе (выводе) определено и зафиксировано в регистре HSI_TIME событие, а также отображает текущее состояние выводов

SBUF (Tx)

Буферный регистр передачи последовательного порта, содержащий информацию, которая должна быть выдана на внешнее устройство

SBUF (Rx)

Буферный регистр приема последовательного порта, содержащий байт, принятый на последовательный порт

INT_MASK

INT_MASK1

Регистры масок прерываний – позволяют запрещать или разрешать индивидуальные прерывания

INT_PEND

INT_PEND1

Регистры отложенных прерываний – биты этих регистров устанавливаются аппаратно и показывают, от каких источников поступили запросы прерываний, которые должны быть обслужены

WATCHDOG

Регистр сторожевого таймера – периодически перезаписывается, чтобы предупредить автоматический сброс MCU после каждых 64К тактов

IOPORT0

Регистр порта 0 – используется для записи и чтения порта 0

IOPORT1

Регистр порта 1 – используется для записи и чтения порта 1

IOPORT2

Регистр порта 2 – используется для записи и чтения порта 2

BAUD_RATE

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

TIMER1

Таймер 1 (Hi/Lo) – старший и младший байты таймера 1 (читаются только словом)

TIMER2

Таймер 2 (Hi/Lo) – старший и младший байты таймера 2 (читаются только словом)

SP_STAT

Serial Port Status – показывает состояние последовательного порта.

SP_CON

Serial Port Control – используется для задания режима работы последовательного порта

IOS0

Регистр состояния ввода/вывода 0 – содержит информацию о состоянии HSO (модуля высокоскоростного вывода)

 

Окончание табл. П1.3

 

IOS1

Регистр состояния ввода/вывода 1 – содержит информацию о состоянии таймеров и HSI (модуля высокоскоростного ввода)

IOS2

Регистр состояния ввода/вывода 2 – содержит информацию о появлении внешних событий

IOC0

Регистр управления ввода/вывода 0 – используется для управления альтернативными функциями выводов HSI, источниками сброса таймера 2 и источниками тактирования таймера 2

IOC1

Регистр управления ввода/вывода 1 – используется для управления альтернативными функциями выводов порта 2, прерываниями таймеров и прерываниями HS.

IOC2

Регистр управления ввода/вывода 2 – используется для разрешения или запрещения режима быстрого инкремента, работы счетчика в режиме суммирования или вычитания, а также выбора границы переполнения при прерывании по переполнению таймера 2 (INT 12)

PWM0_CONTROL

PWM1_CONTROL

PWM2_CONTROL

Регистры управления широтно-импульсной модуляцией – установка длительности ШИМ-импульса

WSR

Window Select Register – регистр выбора горизонтального окна

PT/SSEL (Hi/Lo)

PTS Select Register – регистр выбора PTS – используется  для задания либо PTS цикла, либо обслуживания стандартного прерывания для каждого из 15 маскируемых запросов

PTSSRV (Hi/Lo)

PTS Service Register – регистр обслуживания PTS – биты этого регистра устанавливаются аппаратно по выполнению PTS цикла. При этом генерируется стандартное прерывание «End-of-PTS»

T2CAPTURE (Hi/Lo)

Timer 2 Capture – регистр захвата таймера 2 – используется для фиксирования содержимого таймера 2 в момент появления нарастающего фронта сигнала на выводе P2.7 и генерирования прерывания захвата таймера 2

 

 

Приложение П2

 

Система команд микроконтроллеров семейства MCS-196

 

Таблица П2.1

 

Флаги слова состояния программы PSW

 

Мнемоника

Описание

 

 

C

Carry flag. Флаг переноса. Устанавливается для индикации арифметического переноса из старшего разряда АЛУ или состояния, когда последний значащий бит выдвигается за пределы операнда. Если при выполнении операции вычитания возникает заем, то флаг переноса очищается

 

 

N

Negative flag. Флаг отрицательного результата. Уста-навливается при отрицательном результате операции. Выставляется корректно даже в том случае, если происходит переполнение. Для всех операций сдвига и нормализации (NORML) устанавливается равным старшему биту результата, даже тогда, когда счетчик числа сдвигов содержит нуль

 

 

ST

Sticky bit flag. Флаг бита «липучки» Устанавливается для индикации состояния, когда в процессе сдвига вправо хотя бы одна единица была записана во флаг переноса. Этот бит не определен после операции умножения. Флаг бита липучки может использоваться вместе с флагом переноса для повышения разрешающей способности при округлении результатов операций

 

 

V

Overflow flag. Флаг переполнения. Устанавливается, когда результат операции слишком велик и не может быть корректно размещен в пределах имеющейся разрядной сетки. Для операций сдвига флаг переполнения устанавливается, когда старший бит операнда изменяется в процессе сдвига. Для операций деления флаг переполнения устанавливается тогда, когда целая часть результата выходит за пределы слова при делении длинного слова на слово или  за пределы байта при делении слова на байт

 

 

VT

Overflow-trap flag. Флаг - ловушка переполнения. Уста-навливается тогда, когда флаг переполнения установлен, но сбрасывается исключительно командами CLRVT, JVT, JNVT. Позволяет выполнять проверку возможного переполнения в конце последовательности связанных арифметических операций, что более эффективно, чем тестирование флага переполнения после каждой отдельной операции

 

 

Окончание табл. П2.1

 

Мнемоника

Описание

 

 

Z

Zero flag. Флаг нуля. Устанавливается при нулевом результате операции. Команды, предназначенные для организаций вычислений с многократной точностью (например, ADDC, SUBC) и использующие бит переноса, выработанный в результате предыдущей операцией, не могут устанавливать флаг нуля. Однако они могут очищать его. Это гарантирует, что флаг нуля отразит результат всего вычисления, а не последней операции

 

 

Таблица П2.2

 

Влияние флагов состояния процессора на работу команд

условных переходов Jcond

 

Мнемокод условия: cond

Условие перехода

Переход если

C

C = 0

флаг установлен

E

Z = 1

эквивалентно

GE

N = 0

число со знаком больше или равно

GT

(N= 0) AND (Z = 0)

число со знаком больше

H

(C = 1) AND (Z = 0)

выше (для чисел без знака)

LE

(N = 1) OR (Z = 1)

число со знаком меньше или равно

LT

N = 1

число со знаком меньше

NC

C = 0

флаг переноса очищен

NE

Z = 0

не эквивалентно

NH

(C= 0) OR (Z = 1)

не выше (для чисел без знака)

NST

<\/a>") //-->