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

Команда sez - Встановити прапорець нульового значення

Описання: Команда встановлює прапорець нульового значення (Z) в регістрі статусу (SREG).

Операція

(i)

Z  1

Синтаксис

Операнди:

Лічильник програм:

(i)

SEZ

None

PC < PC + 1

Булеві вирази регістра статусу (SREG)

I

T

H

S

V

N

Z

C

-

-

-

-

-

-

1

-

Приклад:

.device AT90S1200

.include "1200def.inc"

ser r16 ;всі біти регістра R16 встановлюються в одиницю

out ddrb,r16 ;налаштування порту В на вивід

ldi r17,5 ;записати в регістр R17 число 5

ldi r18,8 ; записати в регістр R18 число 8

add r17,r18 ;додаємо регістри R17 і R18

sez ;встановити прапорець нульового значення в статус-регістрі

out portb,r17 ; вивід значення регістра R17 в порт B

Команда clz - Очистити прапорець нульового значення

Описання: Очистка прапорця нульового значення (Z) в регістрі статусу (SREG).

Операція:

(i)

Z  0

Синтаксис

Операнди:

Лічильник програм:

(i)

CLZ

None

PC < PC + 1

Булеві вирази регістра статусу (SREG)

I

T

H

S

V

N

Z

C

-

-

-

-

-

-

0

-

Приклад:

.device AT90S1200

.include "1200def.inc"

ser r16 ;всі біти регістра R16 встановлюються в одиницю

out ddrb,r16 ;налаштування порту В на вивід

ldi r17,5 ;записати в регістр R17 число 5

ldi r18,-5 ; записати в регістр R18 число -5

add r17,r18 ;додаємо регістри R17 і R18

clz ;очистити прапорець нульового значення в статус-регістрі

out portb,r17 ; вивід значення регістра R17 в порт B

Команда sei - Встановити прапорець глобального переривання

Описання: Команда встановлює прапорець глобального переривання (I) в регістрі статусу (SREG).

Операція

(i)

I  1

Синтаксис

Операнди:

Лічильник програм:

(i)

SEI

None

PC < PC + 1

Булеві вирази регістра статусу (SREG)

I

T

H

S

V

N

Z

C

1

-

-

-

-

-

-

-

Приклад:

.device AT90S1200

.include "1200def.inc"

.org $002 ;організація переривання по переповненню таймера-лічильника

rjmp tim_ovf ;перехід на мітку tim_ovf при виникненні переривання

ser r16 ; всі біти регістра R16 встановлюються в одиницю

out ddrb,r16 ; налаштування порту В на вивід

sei ;установка біта глобального переривання

ldi r20,5 ;записати в регістр R20 число 5

ldi r17,2 ; записати в регістр R17 число 2

out timsk,r17 ;установлюємо в регістрі маски переривання від таймера -;лічильника (TIMSK) біт TOIE0 – біт дозволу переривання по ;переповненню таймера-лічильника

out tifr,r17 ;очищуємо в регістрі прапорців переривання від таймера –;лічильника (TIFR) біт TOV0 – цей біт встановлюється при ;переповненні таймера-лічильника

qq: out tccr0,r20 ;встановлюємо предустановка таймера-лічильника CK/1024

rjmp qq ;перехід на мітку qq

tim_ovf: ;підпрограма, що виконується при перериванні по ;переповненню таймера-лічильника

dec r18 ;декремент регістра R18

inc r19 ;інкремент регістра R19

add r18,r19 ;додаємо регістри R18 і R19

out portb,r18 ; вивід значення регістра R18 в порт B

reti ;вихід із підпрограми переривання

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