ГлавнаяРегистрацияВход Сайт Сокола Сергея Пятница, 26.04.2024, 16:39
  Каталог статей Приветствую Вас Гость | RSS

 
 
Главная » Статьи » Мои статьи

Ассемблер для начинающих (десятый шаг)
Я долго думал, как бы получше завершить начатый мною цикл. У меня было несколько вариантов. Сначала я планировал написать очередную рядовую программу, потом хотел сотворить какой-то большой и фееричный проект. Но в итоге остановился на том, что собственно вы сейчас и прочтете.

А решил я на этот раз заняться просто разговорами без всяких программ. Будем считать, что мы одолели хоть и маленькую, но вершину и можем теперь немного передохнуть и расслабиться. Все дело в том, что возможности используемой нами платы уже почти полностью исчерпаны, а высасывать из пальца никому не нужные задачи тоже неохота.

На протяжении всех девяти шагов я потихоньку сообщал вам новые директивы ассемблера, описывал необходимые нам команды. Настало время узнать вам ВСЁ. На самом деле полное описание всех команд и директив ассемблера с примерами занимает всего несколько страниц текста. Чтобы вам долго не искать это описание на просторах интернета, я выкладываю его здесь. Вы можете ознакомиться с ним, перейдя по этой ссылке.

Возможно, оно покажется вам слишком сокращенным либо наоборот более понятным, чем мои многословные и пространные описания - тут дело зависит от субъективного восприятия.

Давайте же оглянемся назад и подытожим то, что мы уже изучили за это время.

Во-первых, несмотря на мое изначальное намерение не останавливаться на рассмотрении модулей и узлов контроллера, я не удержался и довольно немалую часть времени уделил описанию работы с ними. Хочу заметить, что все вышесказанное на 100% соответствует только контроллеру ATtiny13. В других контроллерах названия регистров или расположение битов в них может отличаться, поэтому перед использованием их необходимо свериться либо с даташитом, либо с рекомендованными мною книгами Евстифеева.

Во-вторых, мы рассмотрели довольно большое количество команд ассемблера, которых будет достаточно в 70-80 процентах случаев для написания программ.

Команды эти охватывают:

- работу с битами регистров ввода-вывода (cbi, sbi, cbis, sbis, sei);
- работу с битами регистров общего назначения (clr, ser, sbrc, sbrs);
- обмен информацией между РВВ и РОН (mov, in, out);
- безусловный и условный переход (rjmp, rcall, ret, reti; brcc, brlo, brsh, brne, breq);
- логические и математические операции между РОН (eor, lsl, inc, dec, add, adc, sub, sbc, cp, cpc);
- логические и математические операции между РОН и константам (ldi, subi, sbci, cpi);
- чтение данных из памяти программ (lpm).

Не рассмотренными оказались команды косвенного чтения и записи в память данных, команды установки и сброса битов статусного регистра, большинство команд логических операций. С ними вы можете ознакомиться в упомянутом выше описании.

Там же вы можете прочитать и об оставленных за пределами нашего внимания директивах ассемблера.

Что же ожидает нас в будущем? Если данный цикл покажется интересным читателям, у меня уже есть задумки по его продолжению, но уже на другом контроллере (ATmega8) и с рассмотрением более продвинутых алгоритмов, таких как: динамическая индикация с использованием 7-сегментых светодиодных индикаторов, работа с цифровыми интерфейсами 1-wire, I2C, SPI, UART, работа с ЖК-дисплеем. Кроме того, есть задумка написать похожие циклы статйе, только для контроллеров PIC и MSP430.

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

Но не будем слишком пессимистичными. Если хоть кому-то этот цикл помог приобщиться к программированию микроконтроллеров, значит моя цель достигнута и время потрачено не зря.

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

Желаю успехов в конструкторской деятельности!

До скорой, надеюсь, встречи!
Категория: Мои статьи | Добавил: mimino (19.01.2012)
Просмотров: 6720 | Комментарии: 13 | Рейтинг: 4.4/8
Всего комментариев: 12
12 Alekesandr  
0
Спасибо. Так мало надо человеку. Просто найти грамотно составленное описание. Макетку собрал за вечер, прошиваю USBTiny, сейчас на шестом уроке

11 Роман Р  
0
Спасибо за статьи! Сейчас на 4 шаге. Вообще, я уже изучил довольно плотно платформу Arduino, перелез на STM32, но сейчас решил сделать себе фонарик на светодиоде, вернее хочу драйвер просто свой сделать без лишних режимов и думаю что Attiny13a как раз отличное решение для такой конструкции. Вы как раз описали почти все что мне нужно. Спасибо Вам.

10 VLAD  
0
Спасибо автору за данный цикл статей. Впервые проработав его, получил великолепный багаж знаний по МК. В разное время пробывал самостоятельно разобраться по книгам и все уходило в песок, т. к. возникали вопросы, на которые не находилось ответов. Сдесь же всё так разжовано, что просто песня!. Спасибо за данный цикл, привязанный к такому маленькому, но такому ёмкому контроллеру. С нетерпением буду ждать новых статей по другому МК. С П А С И Б О!

9 Diego  
0
Сергей, огромное спасибо за ваши труды. "Пугающий мир" ассемблера и микроконтроллеров, благодаря вам, превратился в увлекательную страну приключений и бессонных ночей за статьями и домашними заданиями :) с нетерпением жду нового цикла.

8 Vladimir  
0
Большое спасибо за статьи, более интересно хотелось бы увидеть на ATmega8 динамическая индикация с использованием LCD индикаторов, как вы и планируйте. Народ ждет!!!

6 AVRик  
0
Сергей !
Приступил к изучению ЕЕПРОМ, пока туда записать ни одной цифры не получилось.
Кусок кода програмного для изучения, если возможно.

7 mimino  
0
Владимир!
Пока, к сожалению, не могу представить кода, нет времени... sad
Пока могу посоветовать только искать в интернете. Извините...

5 Александр  
0
Надо поддержать автора этих статей. Я сам очень полюбил это занятие, программировать контроллеры, хочу больше уделять этому делу времени. Иногда возникают вопросы ответ на которые иной раз приходится искать очень долгое время и готов отдать всё но только чтобы найти ответ:) может ли автор этих статей помогать в таких ситуацыях за определюнную плату?
Может зделать закладку на сайте под названием "Ответы на сложные вопросы платно"
Посетитиль входит туда под своим именем и поролем, у не го там сумма, он задаёт вопрос и на него добросовестно отвечают, и если его ответ удавлетваряет, он скидывает определюнную сумму со своего счота, в эту систему могут войти только те у кого есть на считу мумма.
Помоему несложно как вам?

4 stic  
0
много перебрал разных "начинаний" для avr микроконтроллеров и Ваш оказался лучшим..потому что похож на модульный принцип..т.е. если у меня будут этакие кубики законченную функциональность которых я знаю то уже можно пользоваться..а уж если мне понадобится то стану углубляться в каждый из них..вот в таком ключе мне кажется самое эффективное обучение..ведь многое быстро устаревает..и чтобы посчитать на калькуляторе мне необязательно знать как в нем взаимосвязаны элементы:)..спасибо

3 Mikle  
0
Автору большое спасибо...все очень подробно описано и без проблем переносится на другие мк, статьи очень помогли, еще раз СПАСИБО!!))
ps: с нетерпением жду новых статей...

1 Roma  
0
Автору огромное спасибо та труд. Все расжевано и в рот положено, осталось только проглотить. Молодец! Так держать. Буду ждать новых статей. Ещё раз ОГРОМНОЕ спасибо.

2 mimino  
0
Спасибо за теплые слова. Приятно слышать, что труды не пропадают даром, а кому-то пригождаются. К сожалению, сейчас не так много времени на поддержку сайта, но постараюсь к лету разродиться очередным циклом.

Имя *:
Email *:
Код *:
 
 
Категории раздела
Мои статьи [20]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Вход на сайт

Поиск

Посетители

Погода
GISMETEO: Погода по г.Мариуполь

 

Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz