Первое свидание с МК От автора Не советую это читать. Автор нифига не шарит, с терминологией путается, никакой системы, все как-то по друному расбросано... И вообще статью в топку! Кому это надо, есть нормально написаные статьи, есть даташиты, официальная документация. И тем более дурной стиль - типа видео-статья! Вступление В данном цикле статей в пошаговом режиме научимся программировать на языке С для МК в среде 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
слева на право лпт программатор 5 проводков программатор stk200 мигание светикам на меге8 плата для робота мигание светиком на тини2313