Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mps.doc
Скачиваний:
9
Добавлен:
18.11.2019
Размер:
3.97 Mб
Скачать

3. Управляющие команды

NOP GOTO k CALL k RETURN

RETFIE SLEEP

CLRWDT - Сбрасывает сторожевой таймер

4. Команды пересылки данных

MOVLW k Заносит в аккумулятор число k.

MOVWF f Заносит значение аккумулятора в ячейку f.

MOVF f,d Заносит содержимое ячейки f в аккумулятор или оставляет его в ячейке f, в зависимости от флага направления D.

5. Команды организации условных переходов (условный пропуск)

BTFSC f,b

Если бит b в ячейке f сброшен (равен нулю), то команда, расположенная непосредственно за данной, не исполняется, а исполняется следующая. Часто следующая команда – GOTO, CALL или RETURN.

Для проверки состояния флагов используется, например, такая конструкция:

BTFSC STATUS, Z

GOTO ... ; переход, если флаг Z установлен, иначе эта команда игнорируется

BTFSS f,b

Если бит b в ячейке f установлен (равен единице), то команда, расположенная непосредственно за данной, не исполняется, а исполняется следующая. См. примечание выше.

INCFSZ f,d

Прибавляет единицу к содержимому ячейки f, результат помещает в аккумулятор или в ячейку f в зависимости от флага d. Не влияет на флаги. Если в результате операции получается нулевое значение, то команда, расположенная непосредственно за данной, не исполняется, а исполняется следующая.

Данная команда иногда применяется для организации циклов со счетчиком.

DECFSZ f,d

Вычитает единицу из содержимого ячейки f, результат помещает в аккумулятор или в ячейку f в зависимости от флага d. Не влияет на флаги. Если в результате операции получается нулевое значение, то команда, расположенная непосредственно за данной, не исполняется, а исполняется следующая.

Данная команда часто применяется для организации циклов со счетчиком.

Пример программы: обнуление ячеек с адресами 20h..2Fh.

……

MOVLW 0x20 ;загрузка в аккумулятор начального адреса

MOVWF FSR ;заносим это значение из акк-ра в FSR, это нужно чтобы ;организовать косвенную адресацию

Next:

CLRF INDF ; обнуляем ячейку, адрес которой лежит в FSR, см выше про ;косвенную адресацию

INCF FSR ; увеличиваем адрес

; закончить нужно на адресе 2F, то есть после последнего увеличения FSR там ;будет 30h, иначе говоря перебросится из 0 в 1 разряд 4.

BTFSS FSR,0x4 ; если 4й разряд равен 1, то прекращаем цикл

GOTO NEXT

End_prog:

…… ; конец программы.

Организация прерываний в PIC.

- внешние прерывания по входу РВ0/INT.

- прерывания от таймера TMR0.

- прерывания от вывода порта RB4 – RB7.

3 источника прерываний.

Используется 1 регистр для организации прерываний. Он 8-разрядный.

GIE – разрешение прерываний, 0 – все запрещены.

IE – interrupt enable.

IRQ – пришло или нет прерывание.

25. Микроконтроллеры с risc архитектурой (семейство avr). Организация памяти. Особенность портов ввода вывода. Обзор системы команд. Пример программы с использованием команд микроконтроллера avr.

AVR –контроллеры.

Выпускает фирма ATMEL, особенность –FLASH память.

Построены с использованием гарвардской архитектуры: отдельно ПП и ПД.

Производительность достигается за счет использования RISC – архитектуры, которая подразумевает сокращенный набор команд. Фактически все команды выполняются отднотипно. Строится конвейер команд. Потребуется большое число РОНов.

AT 90 S 44 34 – 4K ROM; 256 RAM; 256 EEPROM

AT 90 S 85 35 – 8K ROM; 512 RAM; 512 EEPROM

1. 118 команд, все выполняются за 1 такт.

2. SPI – интерфейс для внутрисхемного программирования.

3. 1 тыс. циклов репрограммирования для CODE (память FLASH); 100 тыс. для DATA.

4. 8 канальный 10 битный АЦП.

5. 32 РОН.

6. UART.

7. f = 4 МГц / 8 МГц (для 44 34 и 85 35 соответственно).

8. 2 x 8р. таймера; 1x 16р. таймер, WATCH DOG.

9. 3 канала ШИМ.

10. Аналоговый компаратор.

11. 3 режима энергосбережения.

12. Прерывания (внутренние и внешние).

Особенность: к I/O регистрам можно обращаться как к регистрам и как к области памяти.

РМ – Program Memory. Все команды 16-разрядные.

SRAM – ОЗУ статического типа. 0 – 255 – минимальный размер (в байтах).

64 I/O – SFR (здесь название другое).

!!!Расширения с использованием внешней памяти здесь нет!!

Здесь есть внутрисхемное программирование (через СОМ или SPI).

EEPROM – приблизительно 1000 циклов перепрограммирования.

ЗП идет долго, а СЧ быстро.

Состав РОНов.

В некоторых командах может быть использованы все РОНы, а в некоторых – только 2ая половина. К этим ячейкам памяти можно обращаться по имени, так и по адресу.

Соответствие адресов РОНов в адресном пространстве внутренней памяти данных.

Это общее пространство внутренней памяти данных.

Регистры I/O внутри пронумерованы от 0 до 3FH (здесь к ним идет обращение по этим адресам). Но в общем пространстве сквозная нумерация (020Н – 05FH).

SP (3DH, 3EH) – указатель стека.

Команда LDI 3E, 60H ;загрузка регистров с непосредств. адресацией

Но есть команды загрузки в ПД, тогда нужно использовать адрес 05EH.

Обзор системы команд.

Флаги формируются при выполнении некоторых команд, они записываются в регистр состояний:

1. переноса С;

2. нуля результата В;

3. отрицательного результата N;

4. арифм. переполнения V;

5. знака S;

6. промежут. переноса H;

7. используемый пользователем T;

8. разрешения прерывания I.

Группы команд:

- пересылок;

- арифм. и логич. операций;

- передачи управления;

- побитных операций.

Группа команд пересылок.

MOV Rd, Rr

Эта команда используется только для регистров.

LDI Rd, K

K – число, Rd – РОН. Команда с непосредственной адресацией.

LDS Rd, (K)

К – адрес памяти SRAM. Команда загрузки РОНа из содержимого памяти SRAM.

STS (K), Rd – пересылка содержимого регистра в память SRAM.

Косвенная адресация.

Для косв.адресации используется три пары регистров.

Х = R26, R27. Y = R28, R29. Z = R30, R31.

X, Y, Z – имена пар.

Команды с косв. адресацией будут записаны в след. формате:

LD Rd, X

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

Несколько конструкций косв. адресации:

С постизменением адреса: LD Rd, X+ (с автоинкрементом – адрес после выполнения этой команды изменится на 1).

LD Rd, - X (c предавтоинкрементом – адрес меняется на 1 перед выполнением команды).

ST X, Rd

XLAT (8086) - > MOVC (8051)

Z – адрес ПП.

LPM ; R0 < - (Z)

IN Rd, P

OUT P, Rd

Группа команд передачи управления.

JMP K

- относит. безусл. переход.

- косв.безусл. переход.

CALL K – вызов подпрограммы

RET

RETI

BRBS S, K ; переход по биту S (если S=1)

BRBC S, K ; переход, если S=0

SKIP

SBRS Rr, b ; b = 1

SBRC Rr, b ; b = 0

SBIS P, b ; b = 1

SBIC P, b ; b = 0

Задача: пусть требуется переслать строку символов, содержащуюся в ПП, в ПД SRAM.

ORG 0050H

TABL: db 1, 2, 3, 4

LDI R16, 4

LDI R28, 0

LDI R29, 60H

LDI R30, 0

LDI R31, 50H

M1: LPM

ST Y+, R0

INC R30

DEC R16

BFNE M1

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

1. Адрес регистра для выбора направления передачи.

2. Адрес защелки порта.

3. Адрес в режиме ввода (нет спец. регистра).

Таймеры/счетчики.

3 таймера: Т1 – 16-разрядный, Т0, Т2 – 8-разрядные.

Т2 имеет канал сравнения и при сравнении текущего значения с заданным формируется сигнал на выводе порта D. Этот же вывод может использоваться как вывод ШИМа. Т1 имеет устройство захвата.

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