Главная » Микроконтроллеры
Призовой фонд
на август 2017 г.
1. Регулируемый паяльник 60 Вт
Паяльник
2. Тестер компонентов LCR-T4
Паяльник
3. 350 руб.
От пользователей

Предисловие

Приветствую всех любителей, специалистов и просто людей интересующихся микропроцессорной техникой!

За последние годы у меня скопилось большое количество самых разных наработок по программированию микроконтроллеров AVR. Немного сгруппировав уже готовый материал, я решил оформить его в виде одной цельной книги. В самом начале я не знал, что у меня получится, но теперь, последний раз просматривая материал, решил, что ее формат - это учебник/справочник по программированию на языке ассемблера в соотношении примерно 40/60 %. В книге освещено множество различных аспектов программирования и, так или иначе, затронуты все без исключения внутренние модули AVR. Но самое главное это то, что подавляющее большинство программ позаимствованы из реально работающих и проверенных временем программ.

Работа над книгой не вызвала у меня ни каких затруднений и прошла очень легко. Странно, но только теперь, когда пришло время написать предисловие, я не знаю что сказать… В доступной литературе про AVR написано очень много и мне не хотелось бы повторятся. Вопрос прямого сравнения микроконтроллеров различных типов я (не без усилий воли) также хочу обойти стороной. Тогда что же остается? Думаю объяснить, а почему же именно ассемблер?

Ведь всем понятно, что основным инструментом современного разработчика является, конечно, “Си”. Тем более, когда имеется в виду большой объем памяти и, тем более, если речь идет об AVR, где поддержка компиляторов языков высокого уровня была положена в основу архитектуры. При сравнении ассемблера и “Си”, лично у меня всегда возникают образы лопаты и экскаватора. Экскаватор выполняет огромные объемы однотипной работы, он быстро выроет любой котлован. Но есть места, куда экскаватор элементарно не может заехать, не говоря уже о небольших траншеях сложной формы. Вот здесь то и нужна лопата. Не стоит забывать также, что экскаватор не всегда имеется в наличии, а вот лопата всегда под рукой и она ничего не стоит.

Сейчас я хочу обратиться в первую очередь к тем, кто только начинает делать первые шаги и на кого, в целом, и рассчитана данная книга. Существует мнение, что к изучению микроконтроллеров можно подходить с позиций рассмотрения “черного ящика”. Я категорически против такой модели! Можно успешно заниматься программированием компьютерной техники и не знать ни одной команды процессора, но нельзя вести разработку на основе 8-разрядных микроконтроллеров досконально не зная их внутреннюю структуру. Именно поэтому в самом начале необходимо создать как минимум пару-тройку проектов на ассемблере и только потом уже переходить на “Си”. Обещаю, что в этом случае успеха вам не избежать.

И буквально несколько слов, о соглашениях принятых в этой книге. Все примеры, если это отдельно не оговорено в тексте, для единообразия привязаны к модели AVR ATmega8-16PU. Числовая система, принятая по умолчанию, – десятичная. Заголовки всех подпрограмм имеют однотипное оформление, где находится описание используемых регистров и других параметров. Подпрограммы  имеют подробные комментарии, начинающиеся с символа “;”. Метки, пользовательские имена регистров и ячеек памяти, а также мнемоники команд, директивы ассемблера и встроенные функции состоят из прописных букв. Числовые константы, имена регистров общего назначения, регистров ввода-вывода и их битов написаны заглавными буквами. Например:

;  	  Имена из прописных букв:
;  initial - метка
;  temp – пользовательское имя регистра
;  ldi, out, cbi, sbi – мнемоники команд
;  .equ, .def, .cseg, .org – директивы ассемблера
;  low(), high() – встроенные функции
;
;     Имена из заглавных букв:
;  LED, RAMEND – числовые константа
;  R16 – имя регистра общего назначения
;  SPH, SPL, PORTB, DDRB – регистры ввода-вывода
;  PB2 – бит регистра ввода-вывода


        .equ  LED  = PB2   
        .def  temp = R16  
            
        .cseg
        .org 0
        rjmp  initial 
        .......                                          

        .org 0x20
 initial: ldi   temp,low(RAMEND)                                 
        out   SPL,
        ldi   temp,high(RAMEND)                                
        out   SPH,
        cbi   PORTB,LED                                        
        sbi   DDRB,LED  
        .......  

Все программы на ассемблере могут быть оттранслированы в среде IDE AVR Studio любых версии, вплоть до самых ранних. Для разработки программного обеспечения высокого уровня был использован компилятор Delphi 2007 for Win32, но исходные тексты должны быть распознаны и более ранними версиями начиная с Delphi 6.

Тексты всех ассемблерных программ были тщательно проверены, но исключать наличие опечаток все-таки нельзя. Поэтому любые сообщения о найденных неточностях, а также общих замечаниях связанных с книгой вы можете присылать на мой электронный адрес kotigyr@mail.ru

И в заключении пользуясь возможностью, хочу поблагодарить за терпение мою маму и жену Марину. Мне понадобилось немало времени для осознания того, что эти две женщины явно либо где-то рядом, стоят за всеми достижениями в моей жизни. Марина, прости меня за многие тысячи часов украденных у семьи и потраченных на занятия электроникой.

Искренне желаю всем счастья и успехов во всех ваших начинаниях!

Перейти к следующей части:

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (2) | Я собрал (0) | Подписаться

0
Димас #
Много теории очень мало практики, лучше было бы наоборот
Ответить
0
Володя #
sbi   PORTD,PD2     ;настраиваем на ввод линию 2 порта D (альтернативная   
sbi   DDRD,PD2      ;функция INT0) и подключаем к ней внутренний резистор
А разве на ввод, это когда sbi DDRD? Это же единица в порт д, или нет?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Паяльная станция Hakko 936 Квадрокоптер Syma X11
вверх