- •Оглавление
- •Послідовний периферійний інтерфейс (spi).
- •Аналоговий компаратор.
- •Команди обміну даними. Приклади використання.
- •Адресний простір мікроконтролера Atmel avr.
- •Логічні та арифметичні команди. Приклади використання.
- •Способи адресації операндів Atmel avr.
- •Переривання в мікроконтролерах Atmel avr.
- •Команди розгалуження. Приклади використання.
- •Універсальний асинхронний приймач-передавач. Протокол зв’язку rs-232.
- •Основні архітектури 8-бітних мікропроцесорних пристроїв.
- •Будова ядра мікроконтролера Atmel avr.
- •Функції. Угода про виклики функцій.
- •Типи даних та їх розміщення в пам’яті мікроконтролера.
- •Організація циклів на мові Сі. Приклади використання.
- •Універсальний асинхронний приймач-передавач. Протокол зв’язку rs-422.
- •Інтерфейс шини can.
- •Компіляція та оптимізація програм.
- •Цифро-аналогові перетворювачі.
- •Організація обробки переривань на мові Сі.
- •Послідовний інтерфейс зв’язку i2c
- •Аналогово-цифрові перетворювачі.
Аналоговий компаратор.
Самая простая задача микропроцессорной системы – это слежение за уровнем аналогового сигнала на предмет нахождения его в некотором диапазоне значений. Самый простой технологически изготавливаемый блок аналогового ввода это аналоговый компаратор. Принцип работы показан на рис. 5.1
Рисунок 5.1
Аналоговый компаратор имеет два входа – прямой (Вход+) и инверсный (Вход-). Когда напряжение на Входе+ больше чем на Входе-, то на выходе компаратора присутствует низкий уровень, а если наоборот – то высокий. Компаратор так же может обладать гистерезисом – областью в которой его выходное состояние не меняется. Для некоторых применений нужно минимизировать эту область, а для других – расширить. В МПУ аналоговые компараторы обладают минимальным гистерезисом.
Для того, что бы сравнивать сигнал с эталоном служит встроенный источник опорного напряжения (ИОН). Он обладает собственной стабильностью параметров, оговариваемых в описании конкретного МПУ. Для удобства использования встроенных ИОН их часто соединяют с внутренним делителем, который позволяет управлять выходным напряжением источника.
Команди обміну даними. Приклади використання.
Одна из наиболее часто используемых команд - МОV позволяет в защищенном режиме переслать байт или слово из регистра в регистр, из памяти в регистр или из регистра в память. Тип пересылаемых данных (байт или слово) определяется регистром, участвующим в пересылке. Ниже приводятся примеры использования команды:
mov ах,Table {Пересылка слова из памяти в АХ}
mov Table,ah {Пересылка байта из АН в память}
mov ds,ax {Пересылка в сегмент данных}
mov es:[bx],ax {Пересылка слова в память: базовая адресация с заменой сегмента}
mov ch,-17 {Переслать константу в регистр}
mov Table,$FF {Переслать константу в память}
С помощью MOV нельзя пересылать:
из памяти в память, например, вместо
mov Mem1,Mem2
следует использовать
mov ax,Mem2
mov Mem1,ax
константу или переменную в DS, например, нельзя
mov DS,Data_Seg
нужно:
mov ax,Data_Seg
mov ds,ax
один сегментный регистр в другой, например, нельзя
mov es, ds
но можно
mov ax,ds
mov es,ax
в регистр CS; значение этого регистра (сегмента кода) автоматически меняется при выполнении дальних команд CALL и JMP; кроме того, он загружается из стека при выполнении команды RETF (выход из дальней процедуры).
Для временного сохранения регистров и данных, а также для обмена значениями между регистрами широко используются стековые команды PUSH и POP. Каждая из них работает со словом, т.е. в стек нельзя поместить или извлечь из него одиночный байт. При выполнении PUSH вначале уменьшается на 2 содержимое указателя SP, а затем операнд помещается по адресу SS: SP. При извлечении из стека сначала читается память по адресу SS: SP, а затем SP увеличивается на 2. Таким образом, при заполнении указатель вершины стека SP смещается к младшим адресам, а при освобождении -к старшим. При работе со стеком следует помнить о специфике использования стековой памяти («последним пришел - первым ушел»), а также о том, что эта память интенсивно используется при вызове процедур, т.е. состояние стека к моменту выхода из процедуры должно быть строго согласовано с дальнейшей работой программы. Первое условие определяет порядок извлечения данных из стека - он должен быть обратным порядку, в котором эти данные помещались в стек. Второе условие фактически означает, что после выхода из процедуры указатель SP должен содержать то же смещение, что и к моменту входа в нее. Иными словами, процедура не должна «забыть» в стеке лишнее слово или взять из него больше нужного.
Команда загрузки адреса LEA загружает в регистр адрес (смещение) нужного участка памяти. Этого же можно достичь с помощью зарезервированного слова OFFSET, стоящего перед именем переменной. Например:
mov ax, OFFSET X {Загружаем смещение X в АХ}
lea ax,X {To же действие}
Разница состоит в том, что в случае команды LEA разрешается использовать индексную адресацию, что особенно удобно при пересылке массивов данных.
Две другие команды адресной загрузки - LDS и LES загружают первое 16-разрядное слово из источника в регистр-приемник, а затем следующее слово - в регистр DS или ES, т.е. они рассчитаны на загрузку полного адреса операнда (сегмента и смещения).
