Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие. MS Word.doc
Скачиваний:
40
Добавлен:
02.05.2014
Размер:
1.05 Mб
Скачать

Табличные вычисления

При вычислении сложных функций необязательно применять итерационные методы. Можно задать результат таблично. Для этого в Intel8051 в контроллерах предназначен метод косвенной адресации по сумме базового и индексного регистра. Т.е. в указатель данных загружается начальный индекс таблицы, а в аккумулятор – аргумент (строка таблицы). Скорость вычислений при таком способе возрастает на несколько порядков.

Использование какого-либо ЯВУ существенно упрощает формирование таблиц и создаёт их как включаемый файл.

Пример: формирование синуса для байтного аргумента 0/2.

Теперь файл подключим в программу:.

В контроллерах PIC16 для определения табличных значений предназначена команда:

Возможен только один способ доступа к элементам таблицы – по значению РС. Каждая таблица должна иметь следующую команду: . Предварительно в старшую часть РС должна быть записана старшая половина адреса.

При операциях с младшей частью РС отсутствует перенос в старший байт, поэтому таблица должна целиком помещаться в области 256 слов при неизменном девятом бите РС.

23.10.2000

Порты ввода-вывода

MCs51: эти контроллеры имеют 4 порта, выделяется 0 порт. Он является двунаправленным: в зависимости от используемой команды переходит автоматическое переключение на ввод или вывод с мультиплексированием адреса. Порт может находиться вZ-состоянии. В самом простом виде структура портов следующая:

Когда информация записывается в порт, триггер-защёлка устанавливается в соответствующее состояние. При выполнении команд ЧТЕНИЕ, МОДИФИКАЦИЯ, ЗАПИСЬ чтение производится не с линии порта, а с триггера. Команды для работы с портом:

Если линии порта Р3 используются для альтернативных функций, то в соответствующие разряды должны быть записаны ‘1‘.

При работе с внешней памятью Р0 всегда используется целиком. Если используются только команды

то Р2 можно использовать для других целей. Если используются команды

или внешняя память команд, то Р2 выполняет альтернативную функцию вывода старшего байта адреса.

PIC16:

РИС2.

К порту относится 2 регистра; можно прочитать их с помощью “чтение порта” и ”чтение TRIS”; можно записать в них с помощью “запись в порт” и ”записьTRIS”.

PIC16С74 – наиболее полно оснащённый контроллер семейства PIC:

  1. 32 линии ввода-вывода;

  2. 5 портов А Е;

  3. все линии ,кроме RA4, трехстабильные;

  4. имеет нагрузочную способность по току до 25мА.

К линиям порта BRB7RB4 подключён транзистор с высокоомным каналом с током 100мкА, соединяющий вход с питанием +U.

Таймер-счётчик

MCs51: здесь 2 т/с. для их управления есть 2 регистра. При работе т/с в качестве счётчика внешних событий счётный вход “Т“ проверяется 1 раз за машинный цикл и должен держаться на одном уровне. У т/с 4 режима работы(в зависимости от установки бит М0 и М1):

  1. 0 режим – используется для обеспечения совместимости с ранним семейством MCs48;

  2. 1 режим – его можно пояснить на рисунке:

TL TH

TF

1

1

Бит GATEпозволяет использовать таймер для измерения длительности импульсного сигнала по входуINTили использовать счётчик для подсчёта импульсов на входе Т при включённом сигнале-окнеINT.

Т/с работают на увеличение содержимого, и временные задержки определяются по формуле: . Чем меньше задержка, тем больше надо в таймер записывать.

25.10.2000

  1. 2 режим: здесь младший байт используется, как перезапускаемый восьмиразрядный счётчик.

При каждом переполнении TLпроисходит автоматическая перезагрузка изTHвTL, т.е. счёт называется не с начала, а со значенияTH. Т.о. можно задавать частные интервалы; используется, например, широтно-импульсная модуляция и для задания опорной частоты последовательного интерфейса, с которым аппаратно связан т/с1.

  1. 3 режим: определяет работу т/с0 и представляет собой 2 независимых восьмиразрядных регистра.

TL0 может работать и в режиме таймера, и в режиме счётчика.TH0 может быть только таймером.

В режимах 02 т/с1 всегда включён, но при переходе всех бит в 0 флаг переполнения не устанавливается. Т/с1 в режиме 3 выключается. Этот режим обычно используют, когда требуется работа интерфейса и двух таймеров или интерфейса, таймера и счётчика.

PIC16

TMR0: может работать и как таймер, и как счётчик. В режиме таймера инкремент производится каждый командный цикл, если не используется предварительный делитель. В режиме счётчика инкремент производится либо положительным, либо отрицательным фронтом в зависимости от битаRTE(регистрOPTION). Предварительный делитель может быть использован или сTMR0, или со сторожевым таймером в зависимости от битаPSA.

Для формирования точных переменных задержек можно использовать дополнительно 1 или несколько РОН для расширения разрядности счётчика. Тогда делитель отключается от таймера, а длительность задержки определяется:

Перед началом задержки загружаются расчётные значения в регистр и таймер, затем по каждому прерыванию таймера регистр декрементируется, и если стал равным 0, то задержка закончена.

TMR1: 2 регистраTMR1HиTMR1Lпрограммно доступны.

Биты

Обозначение

Назначение

5

T1CKPS1

Настройка делителя:

S1 S0

значение

0 0

1:1

0 1

1:2

1 0

1:4

1 1

1:8

4

T1CKPS0

3

T1OSCEN

Разрешение внешнего генератора

2

T1SYNC

Контроль синхронизации (1 – таймер на синхронизирован внутренней частотой, 0 – наоборот)

1

TMR1CS

1 – счётчик, 0 – таймер

0

TMR1ON

Включение счёта

TMR1 может работать с модулями ССР.

TMR2: восьми битный с дополнительными предварительным и дополнительным делителями. Он может работать только в режиме таймера.

Для управления таймером TMR2 служит регистрT2CON.

Биты

Обозначение

назначение

6

TOUTPS3

Настройка выходного делителя

0000 1:1

0001 1:2

1111 1:16

5

TOUTPS2

4

TOUTPS1

3

TOUTPS0

2

TMR2ON

Включение счёта

1

T2CKPS1

Настройка предварительного делителя

00 1:2, 01 1:4, 1х 1:16

0

T2CKPS0

TMR2 инкрементируется пока не достигнет величины, записанной в регистре периодаPR2. после этого он обнуляется и начинает счёт сначала. Выходной сигнал до дополнительного делителя используется в качестве сигналов сдвига для последовательного порта в синхронном режиме.

30.10.2000 и 4.11.2000.

CCP – Compare/ Capture (захват)/PWM

PWM – Pulse Width Modulation (широко-импульсная модуляция)

Каждый из двух модулей CCPможет выполнять одну из функций:

  1. чтение “на лету” без остановки счёта;

  2. генерирование сигнала сравнения;

  3. генерирование сигнала с ШИМ.

Кроме этого каждый модуль содержит 16-ти битовый регистр-защёлку;

CPRxH:CPRxL

И управляющего регистра конфигурации CCPxCON.

1 режим:Capture(захват) используется для изменения временных интервалов и периодов. В регистрыCCPRпереписывается содержимое таймера1 по сигналу на входеRC2 (дляCCP1). Сигналы на защёлкивание можно определить:

  • отрицательный фронт;

  • положительный фронт;

  • один раз на каждый четвёртый отрицательный фронт;

  • один раз на каждый шестнадцатый отрицательный фронт.

При защёлкивании устанавливается флаг прерывания CCPxIF.

2 режим: Сравнение. Сравнивается содержимое таймера1 иCCPR. Встроенный триггер устанавливается при равенстве этих значений. Сигнал с этого триггера поступает на внешний вывод и в виде флага прерывания. Внутренний триггер можно использовать для перезапуска других устройств:

  • сбрасывать таймер;

  • производить запуск АЦП без вмешательства программы.

3режим: В режиме ШИМ обеспечивается 10-ти битное расширение. Участвует только таймер2. этот режим является простейшим аналогом ЦАП.

Период ШИМ = <PR2 + 1> * 4fQ* <TMR2 с предделителем>

Длительность ШИМ = DC1*fQ- <TMR2 с предделителем>

DC1 – 10-ти битное значение, составленное из

CCPRxL(старшие 8 разрядов)

CCPxCON<5:4> (2 младших)

Минимальное время периода ШИМ для стандартных частот опорного генератора

Разрешение,

бит

Опорная частота

20 МГц

10 МГц

4 МГц

10

19.53 кГц

9.77 кГц

3.9 кГц

9

39 кГц

19.53 кГц

7.8 кГц

8

78

39

15.6

6

312.5

156

62.5

Регистры конфигурации CCP1CONиCCP2CON:

Биты

Обозначение

Назначение

5

CCPxX

В режиме ШИМ 2 мл. бита длительности

4

CCPxY

3

CCPxM3

Выбор режима модуля

2

CCPxM2

1

CCPxM1

0

CCPxM0

Соседние файлы в предмете Микропроцессорные системы