HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи > Чужие Статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Первое свидание с МК
  #1  
Старый 21.08.2008, 22:18
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
С нами: 9746246

Репутация: 806
По умолчанию Первое свидание с МК

Первое свидание с МК
От автора

Не советую это читать. Автор нифига не шарит, с терминологией путается, никакой системы, все как-то по друному расбросано... И вообще статью в топку! Кому это надо, есть нормально написаные статьи, есть даташиты, официальная документация. И тем более дурной стиль - типа видео-статья!

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

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

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

Создание программ для МК. CodeVision. Proteus.
Part 1

Нужно скачать:
CodeVision, Proteus, Справка по микроконтроллеру AVR Mega8 от фирмы Atmel - качаем с этой страницы.
Видео к статье № 1-1
Видео к статье № 1-2
Видео к статье № 1-3


Пояснения к видео № 1-1

Вначале идет установка программы. Дальше создается новый файл и включается генератор начального кода. Генератору говорим, что будем использовать микроконтроллера AVR Mega8. Проект делается именно на нем в связи с отличным соотношением качества, функциональности и цены. А также устанавливаем частоту работы его в 1 МГц, потому что в соответствии с даташитом (документацией) по этому МК – 1 МГц это частота роботы с настройками по умолчанию.

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

Общение с внешним миром происходит через выводы МК. AVR Mega8 имеет 28 ножек в DIP-корпусе, который очень удобен для паяния, так как достаточно большой имеет размер. Поскольку МК это цифровое устройство, то и на его выводах может быть лишь 1 или 0 если смотреть со стороны программы.

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

В МК AVR Mega8 есть шесть регистров для управления выходами МК – PORTB, PORTC, PORTD, DDRB, DDRC, DDRD. Мы видим что названия регистра состоит с PORT и DDR а также букв B, C, D. Дело в том что по архитектуре 8 ножек объединяются в один порт – и эти порты управляются 2-мя регистрами. Для порта C, например, это – PORTC, DDRC.



На рисунке выше видно схематический вид сверху Mega8. И с нее видно что в порт C входят ножки с номерами 1,23-28. Два регистра нам дано чтобы с помощью одного управлять направлением (определим ножка будет служить для считывания значения напряжения, или сама будет изменять напряжение), а вторая будет непосредственно управлять напряжением на выводе. Ну об этом немного позже.

Перейдем к видео, дальше удаляем лишние комментарии и код, который не нужен. Дело в том что при включении МК во все регистры заноситься 0, а тогда не имеет смысла те команды которые при начальной инициализации еще записывают туда 0.

Ну немного отошли от практики, теперь давайте перейдем к симуляторе…

Пояснения к видео № 1-2

Сначала идет установка Proteus, а потом соберем нужную нам схему, а именно радугу. Для этого идем в библиотеку и ищем там нужные нам элементы. А именно МК, светодиоды, а также резисторы. МК для управление, светодиоды для отображения, а резисторы чтобы ограничить ток. Дело в том что мы будем работать с напряжением 5 вольт – будем брать его от USB, и если мы подключим напрямую светодиоды то можем посчитать что там будет довольно большой ток по закону Ома и они сгорят. Но резистры ограничат ток, и их надо будет подбирать экспериментальным путем от 300 Ом до приблизительно 600 Ом – это связано с тем, что разные светодиоды (а у нас они разные - цветом) могут по-разному светить и для регулирования этого будем использовать разные резисторы.

Посмотрим, как можно управлять горением светодиодов…

Пояснения к видео № 1-3
Видим что сначала установим в регистре направления первые три бита в 1, чтобы показать что они будут работать как выходы. Делается это командой
DDRC=0x07;
В видео видели, что чтобы вручную все это не просчитывать, можно в генераторе начального кода выставить все, а потом скопировать нужное.

Дальше идут команды
PORTC.0=0;//off
PORTC.1=1;//on
PORTC.2=0;//off


Например PORTC.2=0 означает такое – записать в регистр PORTC в бит 2-рой 0.Тоесть указать ему что на ножке PC2 с номером 25, должен быть на выходе 0, то есть 0 вольт.

Дальше командой #include подключаем библиотеку для работы с задержками. А именно что бы использовать функцию - delay_ms() где в скобках указываем сколько миллисекунд МК должен подождать.

В вас может возникнуть вопрос – а почему я не удалил
// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;


А потому что все устройства в начале выключены, так как МК в них записывает 0. А такое мудрое устройство как аналоговый компаратор если в его регистре ACSR в старшем 7-мом бите 0, то он включается и будет тратить электроэнергию, а что бы сэкономить выключим его записав в старший регистр 1.

Теперь советую немного по играться со всем этим и ждать продолжения, где будет написана и отлажена полностью программа с кодовым названием "Радуга".

Автор не несет ответсвенности вообще!
Оригинал находиться по адресу - http://tutamc.com/page/avr4all1.html
 

  #2  
Старый 22.08.2008, 08:27
Folc
Постоянный
Регистрация: 12.02.2007
Сообщений: 316
С нами: 10128136

Репутация: 159
По умолчанию

Я ни хрена не разбираюсь в МК, но видел работы. Спасибо за статью, может как нить на досуге почитаю)
 

  #3  
Старый 25.08.2008, 00:45
saitrizer
Новичок
Регистрация: 23.08.2008
Сообщений: 7
С нами: 9323844

Репутация: 0
Talking

слева на право
лпт программатор 5 проводков
программатор stk200
мигание светикам на меге8
плата для робота
мигание светиком на тини2313
 
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первое апреля на просторых интернета-всё постим тут NFM Болталка 4 01.04.2008 08:16



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.