Изучение системы команд микроконтроллера AVR
Регистр состояния – SREG
Бит
|
|
|
|
|
|
|
|
|
|
$3F ($5F)
| I
| T
| H
| S
| V
| N
| Z
| C
| SREG
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
· Бит 7 – Разрешение всех прерываний. Для разрешения прерываний этот бит должен быть установлен в состояние 1. Управление разрешением конкретного прерывания выполняется регистром маски прерывания EIMSK и TIMSK. Если этот бит очищен (=0), то ни одно из прерываний не обрабатывается. Бит аппаратно очищается после возникновения прерывания и устанавливается для последующего разрешения прерывания командой RETI.
· Бит 6 – Бит сохранения копии. Команды копирования бита BLD и BST используют этот бит как источник и приемник при операциях с битами. Командой BST бит регистра общего назначения копируется в бит T, командой BLD бит Т копируется в бит регистра общего назначения.
· Бит 5 – Флаг полупереноса. Он указывает на перенос между тетрадами при выполнении ряда арифметических операций.
· Бит 4 – Бит знака. Бит S имеет значение результата операции исключающее ИЛИ (N(+)V) над флагами отрицательного значения (N) и дополнения до двух флага переполнения (V).
· Бит 3 – Дополнение до двух флага переполнения. Он поддерживает арифметику дополнения до двух.
· Бит 2 – Флаг отрицательного значения. Этот флаг указывает на отрицательный результат ряда арифметических и логических операций.
· Бит 1 – Флаг нулевого значения. Этот флаг указывает на нулевой результат ряда арифметических и логических операций.
· Бит 0 – Флаг переноса. Этот флаг указывает на перенос при арифметических и логических операциях.
Микроконтроллер AT90S8535 имеет 4 параллельных порта ввода/вывода A, B, C и D.
Порт А является 8-разрядным двунаправленным портом. Взаимодействие с портом А осуществляется через три регистра в пространстве ввода/вывода памяти данных: регистр данных – PORTA, $1B($3B), регистр направления данных – DDRA, $1A($3A), регистр входных данных – PINA, $19($39). Регистр PINA обеспечивает только возможность чтения, а регистры PORTA и DDRA – возможность чтения и записи. Регистр PINA не является регистром в полном смысле этого слова. Обращение к нему обеспечивает чтение физического состояния каждого вывода порта. Порт А служит также для ввода аналоговых сигналов A/D.
Регистр данных порта А – PORTA
Бит
|
|
|
|
|
|
|
|
|
|
$1B ($3B)
| PORTA7
| PORTA6
| PORTA5
| PORTA4
| PORTA3
| PORTA2
| PORTA1
| PORTA0
| PORTA
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
Регистр направления данных порта А – DDRA
Бит
|
|
|
|
|
|
|
|
|
|
$1A ($3A)
| DDA7
| DDA6
| DDA5
| DDA4
| DDA3
| DDA2
| DDA1
| DDA0
| DDRA
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
Регистр входных данных порта А – PINA
Бит
|
|
|
|
|
|
|
|
|
|
$19 ($39)
| PINA7
| PINA6
| PINA5
| PINA4
| PINA3
| PINA2
| PINA1
| PINA0
| PINA
|
Чтение/Запись
| R
| R
| R
| R
| R
| R
| R
| R
|
|
Исходное значение
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
|
|
Порт В является 8-разрядным двунаправленным портом ввода/вывода. Также как и у порта А взаимодействие с портом В осуществляется через три регистра в пространстве ввода/вывода памяти данных: регистр данных – PORTB, $18($38), регистр направления данных – DDRB, $17($37) и регистр входных данных – PINB, $16($36). Регистр PINB обеспечивает возможность только чтения. Регистр PINB не является регистром в полном смысле этого слова. Обращение к нему обеспечивает чтение физического состояния каждого вывода порта. Выводы порта В могут выполнять альтернативные функции, указанные в табл. 2.1.
Таблица 2.1. Альтернативные функции выводов порта В
Вывод порта
| Альтернативная функция
|
PB0
| T0 – вход тактового сигнала таймера/счетчика 0
|
PB1
| T1 – вход тактового сигнала таймера/счетчика 1
|
PB2
| AIN0 – положительный вывод компаратора
|
PB3
| AIN1 – отрицательный вывод компаратора
|
PB4
| – вход выбора ведомого SPI
|
PB5
| MOSI – установка ведущий выход/ведомый вход SPI
|
PB6
| MISO – установка ведущий вход/ведомый выход SPI
|
PB7
| SCK – тактовый сигнал SPI
|
При использовании выводов для альтернативных функций регистры PORTB, DDRB должны быть установлены соответствующим образом.
Регистр данных порта B – PORTB
Бит
|
|
|
|
|
|
|
|
|
|
$18 ($38)
| PORTB7
| PORTB6
| PORTB5
| PORTB4
| PORTB3
| PORTB2
| PORTB1
| PORTB0
| PORTB
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
Регистр направления данных порта B –DDRB
Бит
|
|
|
|
|
|
|
|
|
|
$17 ($37)
| DDB7
| DDB6
| DDB5
| DDB4
| DDB3
| DDB2
| DDB1
| DDB0
| DDRB
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
Регистр входных данных порта B –PINB
Бит
|
|
|
|
|
|
|
|
|
|
$16 ($36)
| PINB7
| PINB6
| PINB5
| PINB4
| PINB3
| PINB2
| PINB1
| PINB0
| PINB
|
Чтение/Запись
| R
| R
| R
| R
| R
| R
| R
| R
|
|
Исходное значение
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
|
|
Порт С представляет собой 8-разрядный двунаправленный порт ввода/вывода. Также как у портов А и В взаимодействие с портом С осуществляется через три регистра в пространстве ввода/вывода памяти данных: регистр данных – PORTC, $15($35), регистр направления данных – DDRC, $14($34) и регистр входных данных – PINC, $13($33). Регистр PINC обеспечивает только возможность чтения, а регистры PORTC и DDRC – возможность чтения и записи. Регистр PINC не является регистром в полном смысле этого слова. Обращение к нему обеспечивает чтение физического состояния каждого вывода порта.
У порта С только два вывода могут выполнять альтернативные функции: выводы PC6 и PC7 выполняют функции TOSC1 и TOSC2 таймера/счетчика 2.
Регистр данных порта C – PORTC
Бит
|
|
|
|
|
|
|
|
|
|
$15 ($35)
| PORTC7
| PORTC6
| PORTC5
| PORTC4
| PORTC3
| PORTC2
| PORTC1
| PORTC0
| PORTC
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
Регистр направления данных порта C –DDRC
Бит
|
|
|
|
|
|
|
|
|
|
$14 ($34)
| DDC7
| DDC6
| DDC5
| DDC4
| DDC3
| DDC2
| DDC1
| DDC0
| DDRC
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
Регистр входных данных порта C –PINC
Бит
|
|
|
|
|
|
|
|
|
|
$13 ($33)
| PINC7
| PINC6
| PINC5
| PINC4
| PINC3
| PINC2
| PINC1
| PINC0
| PINC
|
Чтение/Запись
| R
| R
| R
| R
| R
| R
| R
| R
|
|
Исходное значение
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
|
|
Порт D является 8-разрядным двунаправленным портом ввода/вывода. Также как и у портов А, В и С взаимодействие с портом D осуществляется через три регистра в пространстве ввода/вывода памяти данных: регистр данных – PORTD, $12($32), регистр направления данных – DDRD, $11($31) и регистр входных данных – PIND, $10($30). Регистр PIND обеспечивает возможность чтения, а регистры PORTD и DDRD – возможность чтения и записи. Регистр PIND не является регистром в полном смысле этого слова. Обращение к нему обеспечивает чтение физического состояния каждого вывода порта.
Выводы порта D могут выполнять альтернативные функции, указанные в табл. 2.2.
Таблица 2.2. Альтернативные функции выводов порта D
Вывод порта
| Альтернативная функция
|
PD0
| RxD – вход приемника UART
|
PD1
| TxD – выход передатчика UART
|
PD2
| INT0 – вход внешнего прерывания 0
|
PD3
| INT1 – вход внешнего прерывания 1
|
PD4
| OC1B – вывод сравнения выхода В таймера/счетчика 1
|
PD5
| OC1А – вывод сравнения выхода А таймера/счетчика 1
|
PD6
| ICP – вход триггера захвата таймера/счетчика 1
|
PD7
| OC2 – вывод сравнения выхода таймера/счетчика 2
|
При использовании выводов для альтернативных функций регистры PORTD, DDRD должны быть установлены соответствующим образом.
Регистр данных порта D – PORTD
Бит
|
|
|
|
|
|
|
|
|
|
$12 ($32)
| PORTD7
| PORTD6
| PORTD5
| PORTD4
| PORTD3
| PORTD2
| PORTD1
| PORTD0
| PORTD
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
Регистр направления данных порта D – DDRD
Бит
|
|
|
|
|
|
|
|
|
|
$11 ($31)
| DDD7
| DDD6
| DDD5
| DDD4
| DDD3
| DDD2
| DDD1
| DDD0
| DDRD
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
Исходное значение
|
|
|
|
|
|
|
|
|
|
Регистр входных данных порта D – PIND
Бит
|
|
|
|
|
|
|
|
|
|
$10 ($30)
| PIND7
| PIND6
| PIND5
| PIND4
| PIND3
| PIND2
| PIND1
| PIND0
| PIND
|
Чтение/Запись
| R
| R
| R
| R
| R
| R
| R
| R
|
|
Исходное значение
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
| Hi-Z
|
|
Так как рассматриваемая работа первая, то для приобретения обучающимися навыков работы с лабораторным комплексом все обучающиеся сначала делают одинаковую работу. Со своих рабочих мест они вводят в ПЭВМ одну и ту же задачу вычитания из числа 5 числа 3, приведённую в п. 1.5.3.1. После компиляции программы она записывается в микроконтроллер рабочего места и демонстрируется её работа преподавателю.
После такого знакомства с комплексом обучающийся приступает к выполнению индивидуального задания. При наличии времени преподаватель может усложнить индивидуальное задание.