Юрий Ревич - Занимательная микроэлектроника

Здесь есть возможность читать онлайн «Юрий Ревич - Занимательная микроэлектроника» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2007, ISBN: 2007, Издательство: БХВ-Петербург, Жанр: sci_radio, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Занимательная микроэлектроника: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Занимательная микроэлектроника»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Книга на практических примерах рассказывает о том как проектировать, отлаживать и изготавливать современные электронные устройства в домашних условиях. Теоретические основы, физические принципы работы электронных схем и различных типов радиоэлектронных компонентов иллюстрируются практическими примерами в виде законченных радиолюбительских конструкций и дополняются советами по технологии изготовления любительской аппаратуры. На доступном уровне излагаются теоретические основы цифровой техники — математическая логика и различные системы счисления. Вторая часть книги полностью посвящена программированию микроконтроллеров, как основы современной электроники. Особое внимание уделяется обмену данными микроэлектронных устройств с персональным компьютером, приводятся примеры программ на Delphi.
Для широкого круга радиолюбителей

Занимательная микроэлектроника — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Занимательная микроэлектроника», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

.def temp = r16 ;регистр r16 есть переменная temp

.def counter = r16 ;регистр r16 есть переменная counter

Изменение tempбудет автоматически означать изменение counterи наоборот. Иногда этим пользуются, если в разных частях программы один регистр применяется для разных по смыслу вещей (и вы можете встретить такие примеры в фирменных «аппнотах»). В общем случае к такой возможности следует прибегать лишь в исключительных случаях — слишком много ошибок можно наделать.

С помощью директивы equ, вообще говоря, можно определять довольно сложные выражения, но этим пользуются редко, гораздо чаще ее применяют для определения переменных, которые располагаются не в регистрах, а в области SRAM. Например, следующая последовательность директив и команд запишет содержимое регистра counter в SRAM по адресу $60(для большинства моделей, кроме старших Mega, это первый свободный адрес после занятых адресами регистров):

.equ memory_address = $60

clr ZH

ldi ZL,memory_address

st Z,counter

В заключение темы еще раз напомним, что имена переменных (как и команд, и меток) нечувствительны к регистру букв, что еще один плюс для AVR-ассемблера по отношению к языку С, где они по умолчанию различаются, и у начинающих это приводит к множеству ошибок.

Система команд AVR

С некоторыми командами мы уже познакомились, но еще не знаем толком, что они означают. Теперь я постараюсь разобрать основные команды и их использование. Подчеркну, что речь идет только о части самых употребительных и концептуально важных команд, потому что всего команд для AVR от 90 до 133 (в зависимости от контроллера), и только их подробное описание, например в [2], занимает почти 70 страниц, гораздо больше, чем описание собственно AVR-ассемблера. С теми командами, которые выпадут из рассмотрения здесь, мы познакомимся по ходу дела в дальнейшем. Выборочный перечень базовых команд с их описанием, достаточный для составления большинства законченных программ, вы также найдете в Приложении 4 . Однако в любом случае при написании собственных программ вам будет необходимо иметь справочник по командам, в роли которого может выступать как [1, 2], так и англоязычный документ PDF с описанием конкретного контроллера, который легко добывается с сайта Atmel. Учтите, что в неофициальных пособиях могут быть ошибки, так в [1, 2] они встречаются в достаточном количестве, хотя в последних изданиях их, возможно, и исправили.

Формат команды

Прежде всего, заметим, что команды (инструкции, операции — мы будем употреблять эти слова как синонимы) контроллера записываются в определенном формате. Сначала идет собственно мнемоническое название команды, которое может состоять из двух ( ld, st), трех ( mov, ldi, sei, add) или четырех ( breq, brne, sbiw) символов. Затем после пробела (любого их числа, допустимы также знаки табуляции), если это предусмотрено форматом команды, идут операнды: имена регистров или константы (а также выражения), над которыми производится операция (на самом деле это не имена, а адреса, но мы не будем забывать про включение inc-файлов и создание собственных определений, и оперировать только с именами, так будет гораздо меньше ошибок).

Если операндов два (больше не бывает), то они перечисляются через запятую (с любым числом пробелов до или после нее, или вообще без них). Причем тут действует важное правило: во всех ассемблерах второй операнд является первым по смыслу действия (т. е. источником), а первый — приемником (результатом). Например, команда ldi temp, 1расшифровывается, как «загрузить единицу в регистр temp», а операция sub temp, counterвычитает counterиз temp, а не наоборот, и результат помещает также в temp.

Заметки на полях

Такая запись (действие— приемник— источник) стандартна для всех ассемблеров, и называется прямой польской записью: когда сначала просят налить чай (действие), потом указывают, в какой стакан (первый операнд, он же результат), и только после этого сообщают, где находится чайник (второй операнд). В отличие от обычной инфиксной , когда сначала указывается стакан (первый операнд), в который нужно налить чай (действие), ах да, вот из этого чайника (второй операнд). Если кто-то пробовал пользоваться некоторыми старыми моделями настольных калькуляторов, то там использовалась обратная польская запись, когда сначала указываются оба операнда, а потом действие (стакан и чайник, затем указывается, что нужно налить из второго в первый). Это наиболее удобно для компьютерных устройств (потому что позволяет без лишних сложностей реализовать операции вычисления по формулам со скобками любой степени вложенности), но отнюдь не для человека, т. к. счет на таких калькуляторах требовал специальной тренировки. В то же время ассемблерный порядок операндов обычно не доставляет трудностей при обучении, и довольно логичен: сначала главный операнд, который будет изменяться, а потом тот, с помощью которого и производятся изменения.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Занимательная микроэлектроника»

Представляем Вашему вниманию похожие книги на «Занимательная микроэлектроника» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Занимательная микроэлектроника»

Обсуждение, отзывы о книге «Занимательная микроэлектроника» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x