Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры v3.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4 Мб
Скачать
☆

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 =1, то команда, расположенная непосредственно за данной, не исполняется, а исполняется следующая.

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

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

Пример программы: обнуление ячеек с адресами 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-разрядный.

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

IE – interrupt enable.

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

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

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

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

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

AT90S4434 – 4K ROM; 256 RAM; 256 EEPROM

AT90S8535 – 8K ROM; 512 RAM; 512 EEPROM

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

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

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

4. 8-канальный 10-битный АЦП, 32 РОН, UART, два 8р. таймера, один 16р. таймер, WATCH DOG, 3 канала ШИМ, Аналоговый компаратор

5. f = 4 МГц / 8 МГц (для 4434 и 8535 соответственно).

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

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

К 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.

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

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

переноса С; нуля результата В; отрицательного результата N;

арифм. переполнения V; знака S; промежут. переноса H;

используемый пользователем T; разрешения прерывания 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 имеет устройство захвата.

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