Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[2]

Все устройства ввода/вывода и периферийные устройства процессора располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода/вывода. К регистрам 00h..1Fh можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS. Дополнительную информацию по этому вопросу можно найти в описании системы команд.

При использовании специальных команд IN, OUT, SBIS и SBIC, должны использоваться адреса $00..$3F. При доступе к регистру ввода/вывода как к ячейке ОЗУ, к его адресу необходимо добавить $20. В приведенной выше таблице адреса регистров в памяти данных приведены в скобках. Для совместимости с другими устройствами при доступе к зарезервированным битам в них должен записываться ноль, зарезервированные адреса в пространстве ввода/вывода не должны записываться

Регистр состояния - SREG 3Fh(5Fh)

Регистр состояния расположен по адресу 3Fh (5Fh) пространства ввода/вывода и определен следующим образом:

3Fh(5Fh)

7

6

5

4

3

2

1

0

I

T

H

S

V

N

Z

S

R\W

R\W

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

Бит 7 -I: Общее разрешение прерываний. Для разрешения прерываний этот бит должен быть установлен в единицу. Управление отдельными прерываниями производится регистрами маски прерываний - GIMSK и TIMSK. Если флаг сброшен (0), независимо от состояния GIMSK/TIMSK прерывания запрещены. Бит I очищается аппаратно после входа в прерывание и восстанавливается командой RETI, для разрешения обработки последующих прерываний.

Бит 6 - T: Хранение копируемого бита. Команды копирования битов BLD (Bit LoaD) и BST (Bit STore) используют этот бит как источник и приемник обрабатываемого бита. Бит из регистра регистрового файла может быть скопирован в T командой BST, бит T может быть скопирован в бит регистрового файла командой BLD.

Бит 5-H: Флаг половинного переноса. Этот флаг индицирует перенос из младшей половины байта при некоторых арифметических операциях. Более подробно об этом можно прочитать в описании системы команд.

Бит 4 - S: бит знака, S = N XOR V. Бит S всегда равен исключающему ИЛИ между флагами N (отрицательный результат) и V (переполнение дополнения до двух). Более подробно об этом можно прочитать в описании системы команд.

Бит 3 - V: Флаг переполнения дополнения до двух. Этот флаг поддерживает арифметику с дополнением до двух. Более подробно об этом можно прочитать в описании системы команд.

Бит 2 - N: Флаг отрицательного результата. Этот флаг индицирует отрицательный результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.

Бит 1 - Z: Флаг нулевого результата. Этот флаг индицирует нулевой результат различных арифметических и логических операций. Более подробно об этом можно прочитать в описании системы команд.

Бит 0 - C: Флаг переноса. Этот флаг индицирует перенос в арифметических и логических операциях. Более подробно об этом можно прочитать в описании системы команд.


Указатель стека SP

Этот 8-разрядный регистр с адресом 3Dh (5Dh) хранит указатель стека процессора. 8-ми разрядов достаточно, для адресации ОЗУ в пределах 60h -DFh.

3Dh(5Dh)

7

6

5

4

3

2

1

0

SP7

SP6

SP5

SP4

SP3

SP2

SP1

SP0

R\W

R\W

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

Указатель стека указывает на область памяти в которой расположен стек вызова подпрограмм и прерваний. Область стека в ОЗУ должна быть задана до того как произойдет любой вызов подпрограммы или будут разрешены прерывания. Указатель стека уменьшается на 1 при записи данных в стек командой PUSH и уменьшается на 2 при вызове подпрограммы командой CALL или обработке прерывания. Указатель стека увеличивается на 1 при выборе данных из стека командой POP и увеличивается на 2 при выполнении команд возврата из подпрограммы или обработчика прерывания (RET или RETI).

***Стек процессора работает с предварительным инкрементом и постдекрементом

Сброс и обработка прерываний.

В процессоре предусмотрены 13 источников прерываний. Эти прерывания и сброс имеют различные векторы в области памяти программ. Каждому из прерываний присвоен отдельный бит разрешающий данное прерывание при установке бита в 1, если бит I регистра состояния разрешает общее обслуживание прерываний.

Самые младшие адреса памяти программ определены как векторы сброса и прерываний. Полный список векторов прерываний приведен в таблице Этот список определяет и приоритет различных прерываний. Меньшие адреса соответствуют более высокому уровню приоритета. Самый высокий уровень у сброса, следующий приоритет у INT0 - внешнего запроса прерывания 0 и т. д. Ниже приведена типичная программа обработки сброса и векторов прерываний:

000h

rjmp RESET

Обработка сброса

001h

rjmp EXT INT0

Обработка IRQ0

002h

rjmp EXT INT1

Обработка IRQ1

003h

rjmp TIM1 CAPT

Обработка захвата таймера 1

004h

rjmp TIM1 COMP

Обработка совпадения таймера 1

005h

rjmp TIM1 OVF

Обработка переполнения таймера 1

006h

rjmp TIM0 OVF

Обработка переполнения таймера 0

007h

rjmp SPI STC

Обработка передачи по SPI

008h

rjmp UART RXC

Обработка приема байта

009h

rjmp UART DRE

Обработка освобождения UDR

00Ah

rjmp UART TXC

Обработка передачи байта

00Bh

rjmp ADC

Обработка преобразования АЦП

00Ch

rjmp EE RDY

Обработка готовности EEPROM

00Dh

rjmp ANA COMP

Обработка аналогов. компаратора

00Eh

Основная программа

Начало основной программы


Сброс и векторы прерываний.

Номер вектора

Адрес

Источник

Описание прерывания

1

000h

RESET

Ножка сброса, сторожевой таймер Brown-Out reset

2

001h

INT0

Внешнее прерывание 0

3

002h

INT1

Внешнее прерывание 1

4

003h

TIMER1 CAPT

Захват таймера/счетчика 1

5

004h

TIMER1 COMP

Совпаден. таймера/счетчика 1

6

005h

TIMER1 OVF

Переполнение таймера/счетчика 1

7

006h

TIMER0 OVF

Переполнение таймера/счетчика 0

8

007h

SPI, STC

Передача по SPI завершена

9

008h

UART RX

Последоват.порт прием закончен

10

009h

UART UDRE

Посл.порт регистр данных пуст

11

00Ah

UART TX

Посл.порт передача закончена

12

00Bh

ADC

Преобразование АЦП завершено

13

00Ch

RDY

EEPROM готово

14

00Dh

COMP

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

ИСТОЧНИКИ СБРОСА

AT90S2333/4433 имеют четыре источника сброса.

*Сброс по включению питания. Процессор сбрасывается при подаче питания на выводы VCC и GND.

*Внешний сброс. Процессор сбрасывается при подаче низкого уровня на вывод RESET на время более двух периодов тактовой частоты.

*Сброс от сторожевого таймера. Процессор сбрасывается по окончанию времени отработки сторожевого таймера, если разрешена его работа.

*Brown-Out сброс сброс при падении Vcc ниже некоторого значения.

Во время сброса все регистры ввода/вывода устанавливаются в начальные значения, программа начинает выполняться с адреса $000, по этому адресу должна быть записана команда RJMP - относительный переход на программу обработки сброса. Если в программе не разрешаются прерывания и векторы прерываний не используются, в первых адресах памяти может быть записана программа.

Сброс по включению питания

Импульс сброса по включению питания генерируется внутренней схемой. Уровень срабатывания схемы - 2.2В. Сброс производится когда напряжение питания превысит уровень срабатывания. Схема сброса по включению питания не дает процессору запускаться до тех пор, пока напряжение не достигнет безопасного уровня. При достижении безопасного уровня напряжения включается счетчик задержки определяющий длительность сброса. Эта длительность задается битами-перемычками и может устанавливаться в одно из восьми значений приведенных в таблице 4.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18]