ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Чужие Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

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

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

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

Вступление
В данном цикле статей в пошаговом режиме научимся программировать на языке С для МК в среде 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
Folc
Постоянный
Регистрация: 12.02.2007
Сообщений: 316
Провел на форуме:
1573335

Репутация: 159
Отправить сообщение для Folc с помощью ICQ
По умолчанию

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

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

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

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первое апреля на просторых интернета-всё постим тут NFM Болталка 4 01.04.2008 08:16
GeForce 9800 GTS: первое фото и некоторые подробности humansapiens Новости мира "железа" 8 30.03.2008 17:29
Первое знакомство с платой Ecs A780gm-a на чипсете Amd Rs780 Mr. P.S. Новости мира "железа" 0 14.01.2008 18:19



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


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




ANTICHAT.XYZ