Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002

.pdf
Скачиваний:
265
Добавлен:
11.03.2016
Размер:
9.1 Mб
Скачать

ГЛАВА 4. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

169

Мнемо­

Операн­

Описание

ника

ды

Загрузить косвенно

LD

Rd,X

LD

0<d<31

Загрузить косвенно с

Rd,X+

 

0<d<31

постинкрементом

LD

Rd, X

Загрузить косвенно с

 

0<d<31

преддекрементом

LD

Rd,Y

Загрузить косвенно

 

0<d<31

 

LD

Rd,Y+

Загрузить косвенно с

 

0<d<31

постинкрементом

LD

Rd,-Y

Загрузить косвенно с

 

0<d<31

преддекрементом

LDD

Rd,Y+q

Загрузить косвенно со

 

0<d<31

смещением

 

0<q<63

 

LD

Rd,Z

Загрузить косвенно

 

0<d<31

 

LD

Rd,Z+

Загрузить косвенно с

 

0<d<31

постинкрементом

LD

Rd,-Z

Загрузить косвенно с

 

0<d<31

преддекрементом

LDD

Rd,Z+q

Загрузить косвенно со

 

0<d<31

смещением

 

0<q<31

 

STS

k,Rr

Записать непосредственно

 

0<r<31

в ОЗУ

 

0<k<65535

 

ST

X,Rr

Записать косвенно

 

0<r<31

 

ST

X+,Rr

Записать косвенно с

 

0:£r<31

постинкрементом

ST

-X,Rr

Записать косвенно с

 

0<r<31

преддекрементом

ST

Y,Rr

Записать косвенно

 

0<r<31

 

ST

Y+,Rr

Записать косвенно с

 

0<r<31

постинкрементом

ST

-Y,Rr

Записать косвенно с

 

0<r<31

преддекрементом

STD

Y+q,Rr

Записать косвенно со

 

0<r<31

смещением

 

0<q<63

 

ST

Z,Rr

Записать косвенно

 

0<r<31

 

ST

Z+,Rr

Записать косвенно с

 

0<r<31

постинкрементом

ST

-Z,Rr

Записать косвенно с

 

0<r<31

преддекрементом

Операция

Rd 4 - (X)

Rd 4 - (X),

Х< - Х +1

Х« - Х - 1, Rd <- (X)

Rd <- (Y),

Rd (Y),

Y « - Y +1

Y 4 - Y - 1,

Rd 4 - (Y)

Rd 4- (Y+q)

Rd 4 - (Z)

Rd 4 - (Z),

Z 4 -Z + 1

Z 4 - Z - 1,

Rd 4- (Z)

Rd 4- (Z+q)

(k) 4- Rr

(X) 4- Rr

(X) 4- Rr, X 4 - X + 1 X 4 - X - 1,

(X)4- Rr

(Y)4- Rr

(Y) 4- Rr, Y 4 - Y + 1 Y 4 - Y - 1,

(Y)4- Rr (Y+q) 4- Rr

(Z)4- Rr

(Z) 4- Rr,

Z 4 - Z + 1

Z 4- Z - 1,

(Z) 4- Rr

Флаги Кол-во циклов

Нет 2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

3

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

Нет

2

170

Мнемо­

Операн­

ника

ды

STD

Z+q,Rr

 

0<r<31

 

0<q<63

LPM

 

IN

Rd,P

 

0<d<31

 

0<P<63

OUT

P.Rr

 

0<r<31

 

0<P<63

PUSH

Rr

 

0^r<31

POP

Rd

 

0<d<31

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Описание

Операция

Флаги

Кол-во

 

 

Нет

циклов

Записать косвенно со

(Z + q )<- Rr

2

смещением

 

 

 

Загрузить байт из памяти

RO <- (Z)

Нет

3

программ

 

Нет

1

Загрузить данные из порта

R d < -P

I/O в регистр

 

 

 

Записать данные из

P <- Rr

Нет

1

регистра в порт I/O

 

 

 

Сохранить регистр в стеке

STACK <- Rr

Нет

2

Выгрузить регистр из стека

Rd <- STACK

Нет

2

Команды ELPM и LPM выполняют загрузку памяти программ. Команда MOV копирует содержимое одного регистра общего назна­

чения в другой.

Команда LDI загружает регистр общего назначения непосредственно константой (только R16 - R32), а команды LD выполняют загрузку ре­ гистра из ячейки ОЗУ при косвенной адресации, используя в качестве источника адреса регистры X, Y, Z, а также варианты с постинкрементом и преддекрементом источника. Команда LDD выполняет эту же операцию при помощи косвенной адресации со смещением. Команда LDS загружает в регистр общего назначения содержимое прямо адресуемой ячейки памя­ ти данных.

Команда ST выполняют обратную операцию относительно LD - за­ носит в косвенно адресуемую ячейку памяти данных содержимое регистра общего назначения, используя также варианты с постинкрементом и преддекрементом адреса. Команда STD выполняет эту же операцию при помощи косвенной адресации со смещением, а команда STS прямо адре­ сует ячейку ОЗУ.

Команда IN заносит содержимое регистра ввода-вывода в регистр общего назначения, а команда OUT выполняет обратную операцию.

Команда PUSH сохраняет содержимое регистра в стеке, а команда POP выполняет обратную операцию. При выполнении этих команд кроме программного счетчика изменяется и значение указателя стека SP.

Обратите внимание, что команды пересылки данных, как и рассмат­ риваемые далее команды переходов значения флагов регистра SREG не изменяют.

ГЛАВА 4. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

171

Команды передачи управления (переходов) приведены ниже.

Команды переходов

М не­ Операн­ моника ды

RJMP k -2K<k<2K

LJMP

 

JMP

k

 

0Sk<4M

RCALL

К

 

-2K<k<2K

ICALL

 

CALL

К

 

<Kk£64K

RET

 

RETI

 

CPSE

Rd.Rr

 

(Kd<31,

 

0<r<31

SBRC

Rr,b

 

0<r<31

 

0<b^7

SBRS

Rr,b

 

(Kr<31

 

0<b<7

SBIC

P,b

 

0<P£31

 

0<b<7

SBIS

P,b

 

(Kr<31

 

CKb:£7

BRBS

s,k

 

0<s<7

 

-64<k<+63

BRBC

s,k

 

0<s^7

 

-64<k^+63

BREQ

k

 

-64^k<+63

BRNE

k

 

-64<k<+63

Описание

Перейти относительно

Перейти косвенно Перейти

Вызвать подпрограмму относительно Вызвать подпрограмму косвенно

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

Сравнить и пропустить, если равно

Пропустить, если бит в регистре очищен

Пропустить, если бит в регистре установлен

Пропустить, если бит в регистре I/O очищен

Пропустить, если бит в регистре I/O установлен

Перейти, если бит в регистре статуса установлен

Перейти, если бит в регистре статуса очищен

Перейти, если равно

Перейти, если не равно

BRCS

k

Перейти, если флаг

 

-64^k<+63

переноса установлен

BRCC

k

Перейти, если флаг

 

-64^k<+63

переноса очищен

BRSH

k

Перейти, если равно или

 

-64<k<+63

больше (без знака)

Операция

PC 4- PC + k + 1

P C 4 -Z

PC 4 - k

PC 4- PC + k + 1

PC 4- Z

PC 4 - k

PC 4 - STACK

PC 4 - STACK if Rd=Rr then

PC 4- PC + 2 (or 3)

if Rr(b)=0 then

PC 4- PC + 2 (or 3)

if Rr(b)=1 then

PC 4 - PC + 2 (or 3)

if l/OP(b)=0 then PC 4- PC + 2 (or 3)

if l/OP(b)=1 then PC 4 - PC + 2 (or 3)

if SREG(s)=1 then PC 4 - PC + k + 1

if SREG(s)=0 then PC 4 - PC + k + 1

if Rd=Rr(Z=1) then PC 4- PC + k + 1 if Rd*Rr(Z=0) then PC 4- PC + k + 1 if C=1 then

PC 4 - PC + k + 1 if C=0then

PC 4 - PC + k + 1 if Rd>Rr (C=0) then

PC 4- PC + k + 1

Ф лаги Кол-во

Нет

циклов

2

Нет

2

Нет

3

Нет

3

Нет

3

Нет

4

Нет

4

1

4

Нет

1/2/3

Нет

1/2/3

Нет

1/2/3

Нет

1/2/3

Нет

1/2/3

Нет

1/2

Нет

1/2

Нет

1/2

Нет

1/2

Нет

1/2

Нет

1/2

Нет

1/2

172

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Мне­

Операн­

Описание

моника

ды

Перейти, если меньше

BRLO

к

 

-64<к<+63

(без знака)

BRMI

к

Перейти, если минус

 

-64<к<+63

 

BRPL

к

Перейти, если плюс

 

-64<к<+63

 

BRGE

к

Перейти, если больше или

 

-64<к<+63

равно (с учетом знака)

BRLT

к

Перейти, если меньше чем

 

-64<к<+63

(со знаком)

BRHS

к

Перейти, если флаг

 

-64^к<+63

полупереноса установлен

BRHC

к

Перейти, если флаг

 

-64<к<+63

полупереноса очищен

BRTS

к

Перейти, если флаг Т

 

-64<к<+63 установлен

BRTC

к

Перейти, если флаг Т

 

-64<к<+63 очищен

BRVS

к

Перейти, если флаг

 

-64<к<+63

переполнения установлен

BRVC

к

Перейти, если флаг

 

-64<к<+63 переполнения очищен

BRIE

к

Перейти, если глобальное

 

-64^к<+63

прерывание разрешено

BRID

к

Перейти, если глобальное

 

-64<к<+63

прерывание запрещено

Операция

Флаги

Кол-во

 

 

циклов

if Rd<Rr (С=1)

Нет

1/2

then

 

 

PC 4- PC + k + 1

 

1/2

if N=1 then

Нет

PC 4 - PC + k + 1

 

 

if N=0then

Нет

1/2

PC 4- PC + k + 1

 

 

if Rd>Rr(N®V=0) then

PC 4 - PC + k + 1 if Rd<Rr(N®V=1) then

PC 4 - PC + k + 1 if H=1 then

PC 4 - PC + k + 1 if H=0 then

PC 4 - PC + k + 1 . if T=1 then

PC 4 - PC + k + 1 if T=0then

PC 4 - PC + k + 1 if V=1 then

PC 4 - PC + k + 1 if V=0then

PC 4 - PC + k + 1 if 1=1 then

PC 4 - PC + k + 1 if l=0 then

PC 4 - PC + k + 1

Нет 1/2

Нет 1/2

Нет 1/2

Нет 1/2

Нет 1/2

Нет 1/2

Нет 1/2

Нет 1/2

Нет 1/2

Нет 1/2

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

Арифметические операции являются операциями над 8-разрядными целыми числами. Для выполнения целочисленных операций над длинны­ ми словами служат команды сложения и вычитания с учетом флага пере­ носа. Для выполнения операций над числами с плавающей точкой, реа­ лизации тригонометрических функций и т.д. служат библиотеки периода выполнения, входящие в состав интегрированной системы программиро­ вания «ТурбоАссемблер-AVR».

Арифметические и логические команды, а также команды сдвигов и операций с битами приведены в следующих двух таблицах.

ГЛАВА 4. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

173

 

А риф м етические и логические команды

Мне­

Операнды

Описание

Операция

моника

 

 

 

ADD

Rd.Rr

 

0<d<31

 

0<r<31

ADC

Rd.Rr

 

0<d<31

ADIW

0<r<31

Rd,K

 

de{24,26,28,30}

 

0<K<63

SUB

Rd.Rr

 

0<d<31

 

0<r<31

SUBI

Rd, К

 

16<d<31

 

0<K<255

SBC

Rd, Rr

 

0<d<31

 

0<r<31

SBCI

Rd, К

 

16<d<31

 

0<K<255

SBIW

Rd, К

 

de{24,26,28,30}

 

0<K<63

AND

Rd, Rr

 

0<d<31

 

0<r<31

ANDI

Rd, К

 

16<d<31

 

0£K<255

OR

Rd, Rr

 

0<d<31

 

0<r£31

ORI

Rd, К

 

16<d<31

 

0<K<255

EOR

Rd, Rr

 

0<d<31

 

0<r^31

COM

Rd

NEG

0^d<31

Rd

SBR

0<d<31

Rd, К

 

16<d<31

 

0<K<255

Сложить без переноса

Сложить с переносом

Сложить непосредст­ венное значение со словом

Вычесть без заема

Вычесть непосредст­ венное значение

Вычесть с заемом

Вычесть непосредст­ венное значение с заемом

Вычесть непосредст­ венное значение из слова

Выполнить логическое

AND

Логическое AND

Логическое OR

Логическое OR с непосредственным значением

Исключающее OR

Дополнение до единицы Дополнение до двух

Установить биты в регистре

Rd 4- Rd + Rr

Rd 4 - Rd + Rr + С

Rdh:Rdl 4 - Rdh:Rdl

+ К

Rd 4- Rd - Rr

Rd 4 - Rd - К

Rd 4 - Rd - Rr - С

Rd 4 - Rd - К - С

Rdh:Rdl 4 - Rdh:Rdl

- К

Rd 4 - Rd • Rr

Rd 4 - Rd • К

Rd 4 - Rd v Rr

Rd 4 - Rd v К

Rd 4 - Rd Ф Rr

Rd 4 - SFF - Rd

Rd 4 - S00 - Rd

Rd 4 - Rd v К

Флаги

K -b o

Z, С,

циклов

1

N, V, H

 

Z, C,

1

N, V, H

 

Z, C,

2

N, V

 

Z, C,

1

N, V, H

 

Z, C,

1

N, V, H

 

Z, C,

1

N, V, H

 

z, c,

1

N, V, H

 

z, c,

2

N, V

 

Z, N, V

1

Z, N, V

1

Z, N, V

1

Z, N, V

1

Z, N, V

1

z, C,

1

N, V

 

z, C,

1

N, V, H

1

Z, N, V

174

 

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

 

 

 

 

 

Мне­

Операнды

Описание

Операция

Флаги

К-во

моника

 

 

 

Z, N, V

циклов

CBR

Rd, К

Очистить биты в

Rd 4- Rd • (SFF - К)

1

 

1 6 ^ 3 1

регистре

 

 

 

 

0<K<255

 

 

Z, N, V

1

INC

Rd

Инкрементировать

Rd 4 - Rd + 1

 

0<d<31

 

 

Z, N, V

1

DEC

Rd

Декрементировать

Rd 4 - Rd - 1

 

0<d<31

Проверить на ноль

 

Z, N, V

1

TST

Rd

Rd 4 - Rd • Rd

 

0<d<31

или минус

 

Z, N, V

1

CLR

Rd

Очистить регистр

Rd 4 - Rd Ф Rd

 

0<d<31

 

 

нет

1

SER

Rd

Установить все биты

Rd 4 - SFF

 

16^d<31

регистра

 

z, C,

1

CP

Rd, Rr

Сравнить

Rd - Rr

 

0<d<31

 

 

N, V, H

 

 

0<r<31

 

 

z, C,

 

CPC

Rd, Rr

Сравнить с учетом

Rd - R r - С

1

 

0<d<31

переноса

 

N, V, H

 

 

0<r<31

 

 

z, C,

 

CPI

Rd, К

Сравнить с константой

Rd - К

1

 

16^d<31

 

 

N, V, H

 

 

0<K<255

 

 

 

 

 

 

Команды сдвигов и операций с битами

 

 

Мне­

Операнды

Описание

Операция

Флаги

Кол-во

моника

 

 

 

 

циклов

LSL

Rd

Логически сдвинуть

Rd(n+1) 4 - Rd(n),

Z,C,N,V,H

1

LSR

0<d<31

влево

Rd(0) 4-0, С 4 - Rd(7)

 

 

Rd

Логически сдвинуть

Rd(n) 4- Rd(n+1),

Z.C.N.V

1

ROL

0<d<31

вправо

Rd(7) 4-0, С 4 - Rd(0)

 

 

Rd

Сдвинуть влево через

Rd(0) 4—C,

Z,C,N,V,H

1

 

0<d<31

перенос

Rd(n+1) 4 - Rd(n),

 

 

ROR

Rd

Сдвинуть вправо

С 4 - Rd(7)

 

 

Rd(7) 4—C,

Z,C,N,V

1

 

0<d<31

через перенос

Rd(n) 4 - Rd(n+1),

 

 

ASR

Rd

Арифметически

С 4 - Rd(0)

 

 

Rd(n) 4 - Rd(n+1),

Z.C.N.V

1

SWAP

(Kd<31

сдвинуть вправо

С 4- Rd(0), n=0...6

 

 

Rd

Поменять нибблы

Rd(3...0) 4» Rd(7...4

Нет

1

BSET

0<d<31

местами

)

 

 

s

Установить флаг

SREG(s)4- 1

SREG(s)

1

BCLR

0<s<7

 

 

 

 

s

Очистить флаг

SREG(s)4- 0

SREG(s)

1

SBI

0<s<7

 

 

 

 

P,b

Установить бит в

l/0(P,b)4- 1

Нет

2

 

0<P<31

регистре I/O

 

 

 

 

0<b<7

 

 

 

 

ГЛАВА 4. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

Мне*

Операнды

Описание

моника

 

 

CBI

P,b

Очистить бит в

 

0<P<31

регистре I/O

BST

0<b<7

Переписать бит из

Rd,b

 

0<d<31

регистра во флаг Т

BLD

0<b<7

Загрузить Т флаг в бит

Rd,b

 

0<d<31

регистра

 

0£b£7

 

SEC

 

Установить флаг

 

 

переноса

CLC

 

Очистить флаг

 

 

переноса

SEN

 

Установить флаг

 

 

отрицательного

CLN

 

значения

 

Очистить флаг

 

 

отрицательного

SEZ

 

значения

 

Установить флаг

CLZ

 

нулевого значения

 

Очистить флаг

SEI

 

нулевого значения

 

Установить флаг

 

 

глобального

CLI

 

прерывания

 

Очистить флаг гло­

SES

 

бального прерывания

 

Установить флаг знака

CLS

 

Очистить флаг знака

SEV

 

Установить флаг

CLV

 

переполнения

 

Очистить флаг

SET

 

переполнения

 

Установить флаг Т

CLT

 

Очистить флаг Т

SEH

 

Установить флаг

CLH

 

полупереноса

 

Очистить флаг

 

 

полупереноса

NOP

 

Выполнить холостую

SLEEP

 

команду

 

Установить режим

 

 

SLEEP

WDR

 

Сбросить сторожевой

 

 

таймер

Операция

l/0(P ,b)4- 0

Т«- Rd(b)

Rd(b) 4 - Т

С<- 1

С<- 0

N4- 1

N 4 -0

Z4— 1

Z<- 0

\< - 1

\<- 0

S<- 1

S 4 -0

V4- 1

V 4 -0

Т4- 1

Т4—0

Н4— 1

Н4—0

См. описание команды в Приложении 2 См. описание команды в Приложении 2

175

Флаги Кол-во циклов

Нет 2

Т1

Нет 1

С1

С1

N 1

N

1

Z

1

Z

1

I

1

I

1

S

1

S

1

V

1

V1

т1

т1

н1

н1

Нет 1

Нет 1

Нет 1

176

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

 

4 .4 . Параллельные порты

У микроконтроллера ATmegal03 имеется 6 параллельных портов ввода/вывода.

4.4.1. Порт А

Порт А является 8-разрядным двунаправленным портом вво­ да/вывода, оснащен встроенными нагрузочными резисторами.

Взаимодействие с портом А осуществляется через три расположен­ ных в пространстве ввода/вывода (памяти данных) регистра: регистр порта данных PORTA, регистр направления данных DDRA и регистр входных данных PINA. Регистр входных данных обеспечивает только возможность чтения, регистры порта данных и направления данных обес­ печивают возможность и чтения и записи.

Все выводы порта А оснащены индивидуально подключаемыми встроенными нагрузочными резисторами. Выходные буферы порта А обеспечивают ток до 20 мА, что достаточно для прямого управления све­ тодиодными индикаторами. Если выводы РАО - РА7 используются в ка­ честве входов и внешним сигналом удерживаются на низком уровне, то вытекающий ток обеспечивается подключением внутренних нагрузочных резисторов.

Выводы порта А могут выполнять альтернативную функцию. При взаимодействии с внешней памятью данных они могут формировать младшие разряды мультиплексированной шины адреса/данных. Альтер­ нативная функция включается установкой бита SRE регистра MCUCR, при этом установки регистра направления данных игнорируются.

Регистр данных порта А - PORTA

 

7

6

5

4

3

2

1

0

$1В ($ЗВ ) PORTA7 PORTA6

PORTA5

PORTA4

PORTA3 PORTA2 PORTA1 PORTAO PORTA

Исх.код

0

0

0

0

0

0

0

0

 

7

Регистр направления

данных порта А - DDRA

 

 

6

5

4

3

2

1

0

 

$1А ($ЗА) DDA7

DDA6

DDA5

DDA4

DDA3

DDA2

DDA1

DDA0

DDRA

Исх.код

0

0

0

0

0

0

0

0

 

 

7

Регистр входных данных порта А - PINА

 

 

 

6

5

4

3

2

1

0

 

$19 ($39) PINA7

PINA6

PINA5

PINA4

PINA3

PINA2

PINA1

PINA0

PINA

Исх.код

0

0

0

0

0

0

0

0

 

ГЛАВА 4. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

177

PINA не является регистром, при обращении по этому адресу чита­ ются значения на выводах порта. При чтении регистра PORTA читается состояние защелок данных порта А.

Все восемь линий порта А при его использовании в качестве цифро­ вого устройства ввода/вывода работают одинаково. Соответствующий бит DDAn определяет направление вывода, а бит PORTAn = 1 при рабо­ те вывода в качестве входа подключает нагрузочный резистор. После сброса выводы портов находятся в третьем состоянии.

Воздействие битов DDAn на работу выводов порта А

DDAn

PORTAn

I/O

Нагрузочный

Описание

0

 

 

резистор

Третье состояние

0

Вход

Не подключен

0

1

Вход

Подключен

При входном низком уровне РАп

 

 

 

 

обеспечивает вытекающий ток

1

0

Выход

Не подключен

Низкий уровень, двухтактный выход

1

1

Выход

Не подключен

Высокий уровень, двухтактный выход

4.4.2. Порт В

Порт В является 8-разрядным двунаправленным портом вво­ да/вывода, оснащен встроенными нагрузочными резисторами.

Взаимодействие с портом В осуществляется через три расположен­ ных в пространстве ввода/вывода (памяти данных) регистра: регистр порта данных PORTB, регистр направления данных DDRB и регистр входных данных PINB. Регистр входных данных обеспечивает только возможность чтения, регистры порта данных и направления данных обес­ печивают возможность и чтения и записи.

Все выводы порта В оснащены индивидуально подключаемыми встроенными нагрузочными резисторами. Выходные буферы порта В обеспечивают ток до 20 мА, что достаточно для прямого управления све­ тодиодными индикаторами. Если выводы РВО - РВ7 используются в ка­ честве входов и внешним сигналом удерживаются на низком уровне, то вытекающий ток обеспечивается подключением внутренних нагрузочных резисторов. Выводы порта В могут выполнять следующие альтернатив­ ные функции:

Альтернативные фукции выводов порта В

Вывод порта

РВО РВ1 РВ2 РВЗ РВ4 РВ5 РВ6 РВ7

Альтернативная функция

SS - вход выбора ведомого устройства SPI SCK - тактовый сигнал порта SPI

MOSI - линия выход ведущего / вход ведомого порта SPI MISO - линия вход ведущего / выход ведомого порта SPI OCOA/PWMOA - выход сравнения и PWM таймера/счетчикаО

OC1A/PWM1A - выход А сравнения и PWM таймера/счетчика1 OC1B/PWM1B - выход В сравнения и PWM таймера/счетчика 1 OC2/PWM2 - выход сравнения и PWM таймера/счетчика2

178

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

 

При использовании выводов для выполнения альтернативных функ­ ций регистры DDRB й PORTB должны быть установлены соответствую­ щим образом.

Регистр данных порта В - PORTB

 

7

6

5

4

3

2

1

0

$ 18($ 38) PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTBO PORTB

Исх.код

0

0

0

0

0

0

0

0

Регистр направления данных порта В - DDRB

 

7

6

5

4

3

2

1

0

$17 ($37) DDB7

DDB6

DDB5

DDB4

DDB3

ODB2

DDB1

DDB0 DDRB

Исх.код

0

0

0

0

0

0

0

0

 

 

 

Регистр выводов входа порта В -

PINВ

 

 

7

6

5

4

3

2

1

0

 

 

PINB7

PINB6

PINB5

PINB4

PINB3

PINB2

PINB1

PINB0

PINB

Исх.код

0

0

0

0

0

0

0

0

 

PINB не является регистром, обращение по этому адресу обеспечива­ ет чтение логического состояния каждого вывода порта. При чтении реги­ стра PORTB читается состояние защелок данных порта В.

Все восемь выводов порта В при его использовании в качестве циф­ рового устройства ввода/вывода работают одинаково. Соответствующий бит DDBn определяет направление вывода, а бит PORTBn = 1 при рабо­ те вывода в качестве входа подключает нагрузочный резистор. После сброса выводы портов находятся в третьем состоянии.

Воздействие битов DDBn на работу выводов порта В

DDBn PORTBn

I/O

Нагрузочный

Описание

 

 

резистор

 

0

0

0

1

1

0

1

1

Вход

Не подключен

Третье состояние

Вход

Подключен

При входном низком уровне РВп

 

 

обеспечивает вытекающий ток

Выход

Не подключен

Низкий уровень, двухтактный выход

Выход

Не подключен

Высокий уровень, двухтактный выход

4.4.3. Порт С

Порт С представляет собой 8-разрядный выходной порт. Кроме ос­ новной функции выводы порта С выполняют альтернативную функцию при работе с внешней памятью данных. В этом режиме через линии порта С выводится старший байт адреса внешней памяти.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]