belvet
  • Blog

Программу Программатор Простых Чисел

12/13/2016

0 Comments

 

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

Методическая разработка по основным алгоритмам нахождения простых чисел. Работа содержит описания алгоритмов и листинги программ на языке&nbsp.

Algorithm Builder довольно нетрадиционная программа в плане простого проекта – вольтметра, даны схемы программаторов COM и USB. Счетчики реализованы во внутренней памяти программатора и ведут подсчет числа запрограммированных микросхем. Нажмите кнопку с надписью 'Микросхема' или после запуска программы, просто нажмите 'Enter'. Второй — что программатор Б, он удобнее в пользовании. Действительно, адаптер А очень прост, но сопровождающая его программа А неудобна. Число практически равноправных выходных и входных линий вполне достаточно в портах обоих типов. Поэтому с точки зрения. Знание способов программирования и умение написать программы. Во всех примерах используется следующий формат шестнадцатеричных чисел:&nbsp.

Прошивка контроллера. Всем привет. Сегодня у меня для вас новая статья, посвященная одному из самых простых и популярных программаторов AVRок — программаторе Громова — так его называют в сети. Данную статью о программаторе, я планировал еще давно, но все было как- то не до нее . Но вот сейчас и приступим. Запрограммировать контроллер AVR на сегодня возможно двумя способами: 1) С помощью высоковольтного параллельного программатора.

Составим произведение из всех простых чисел вплоть до п. Поскольку программа SLUICE2 требует списка простых чисел, она запоминает каждое.

Это скорее промышленный вариант, так как в этом случае корпус контроллера усаживается в специальную панельку и подав высокое напряжение (большее напряжения питания) зашивается заранее подготовленная программа. После чего контроллер запаивается в плату по месту назначения. Здесь есть ощутимый плюс —  полный контроль над всем нутром контроллера. А процесс зашивки моментальный.

Но если выяснится, что зашитая программа имеет непростительный баг? И что же делать — контроллер ведь уже запаян?

Снова выпаивать? Для радиолюбительской практики такой вариант не подходит, хотя иметь в загашнике высоковольтный программатор будет полезно. В одной  из следующих статей кстати будет очень полезная информация так что не пропустите. Мы пойдем по другому пути — и к нашим услугам внутрисхемный программатор. При этом способе контроллер устанавливается сразу в схему без каких- либо промежуточных действий. В этом случае программа зашивается внутрисхемно.

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

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

Так вот на этот разъем с контроллера выводится 5 сигналов: mosi, miso, sck, reset, GND. Через эти контакты и будет зашиваться программа.

Причем делать это можно многократно — ведь выпаивать нам ничего не придется. Единственное что должно быть сделано так это то, что контроллер должен быть запитан и запущен. Впрочем питание можно подать и с программирующего разъема. Тогда у нас будет уже не пять сигналов а шесть, но это совсем не сложно.

Только здесь есть небольшая особенность — нужно быть внимательным при простановке фьюзов (FUSE) перед зашивкой программы. Если при высоковольтном программировании неправильно зашитый фьюз бит легко правится, то при внутрисхемном программировании будет сложно что- либо исправить. Небольшое отступление. Фьюзы или фьюз биты — это биты конфигурации контроллера. Их нельзя выставить из тела программы. Фьюз биты обычно проставляются перед зашивкой программы — с помощью программатора и программы- прошивальщика. С помощью фьюз битов можно изменить способ тактирования контроллера.

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

Разновидностей внутрисхемных программаторов на сегодня очень и очень много и выбрать приемлемый вариант бывает не просто. Все программаторы делятся по способу подключения к компьютеру,  мне известны три : через LPT, COM, USB. Программатор работающий через порт lpt я заранее не советую, так как его очень просто пожечь, и сколько схемных решений мне не советовали, я этот вариант отбросил сразу же. Кстати да, и самого порта lpt в моей рабочей машинке не было. Вот так- то. В наше время когда порты com и lpt уходят в небытие, единственно рабочий вариант остается USB. Но тут есть ряд проблем. Как правило схемы программаторов, работающих от USB имеют в своем составе микроконтроллер, который естественно нужно прошить, а для прошивки нужен программатор.

Вот такой вот замкнутый круг. Хотя в последнее время на просторах интернета появилась схема usb программатора, которая не требует прошивки. Схема простая, но я с ней плотно не разбирался поэтому говорить о ней я не буду — если очень интересно найдете сами.

Мы пойдем по более сложному пути — займемся изготовление программатора Громова. И кстати если  на задней стенке своего компьютера  вы его не обнаружили, это еще не значит что его нет, так на многих материнских платах он может присутствовать в виде pls штырьков,  нужно почитать документацию к материнской плате. Схема. Схема самого программатора на удивление простая и мне очень жаль, что я не встречал ее раньше. Ее можно собрать даже навесным  монтажом на коленке, но на плате все- таки будет смотреться солиднее. Для этого программатора нам потребуется семь резисторов  по килоому каждый и три маломощных  диода. Так вот схема из диодов и резисторов послужит нам для согласования уровней.

Резисторный делитель из 1. Схему я нарисовал в  программе Eagle CAD, затем путем нескольких незамысловатых движений мышкой родилась вот такая платка. Файлы проекта можете скачать по этой ссылке. Рисунок ее был распечатан на лазерном принтере  и подвержен зверской технологии ЛУТ. На схеме контакты подписаны — не промахнетесь Хочу добавить, что провод желательно брать не длиннее 2.

В моем варианте питание будет подаваться  от компьютера,  поэтому для  удобства  я вывел контактыпитания Pin. GND и Pin+5. Подпаиваем +5 В к крайнему красному проводу, а земля подпаивается к черному. У меня он выглядит так.

Здесь он идет в связке с разъемом DB- 9. M (папа). К плате программатора вся эта конструкция подключается через разъем DB- 9. F. Теперь можно откинуться на спинку стула  и отдохнуть, ведь можно сказать с задачей мы справились — собрали программатор Громова. Поэтому чтобы не устроить сюрприз своему компьютеру советую все хорошенько прозвонить мультиметром и проверить монтаж и только после этого переходить к испытанию нашего девайса. Итак программатор у нас собран и лежит на столе в ожидании.

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

Эту программу написал  автор по фамилии Николаев за что целая армия радиолюбителей говорит ему — СПАСИБО. Кстати саму программу можно скачать с сайта автора или у меня. Выключаем наш компьютер и подключаем программатор разъемом DB- 9. F к COM- порту компьютера.

Разъем питания я подключил к блоку питания родного компьютера. На этом этапе желательно подключить плату нашего программируемого пациента — плату с контроллером. Ну что, теперь минута молчания иии . Ждем когда загрузится наше операционная система.

Запускаем Uniprof. При запуске он у  немного ругнулся, выдав окошко со знакомым ERROR, говорит что у меня что- то неладное с LPT. Но мы не паникуем. Ведь программа совсем не в курсе к какому именно порту подрублен наш контроллер. Тут на выбор кроме ранее упомянутого LPT порта, есть еще набор с COM1 по COM5. Так что простым перебором добиваемся полного опознания нашего контроллера. Контроллер определился, теперь нам нужно выполнить чтение — нажимаем на READ.

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

Но в любом случае это вылечилось установкой галочки «ТОРМОЗ» . Время выполнения чтения оказалось несколько более длительным, но зато результат стал лучше. Вот подходит время таки записать программный HEX файл в наш контроллер, но нужно также не забыть установить правильные фьюз биты.

Доступ к ним открывается нажатием кнопки с надписью FUSE. Выставляем все правильно, предварительно проштудировав даташит на нужный контроллер. Ну что же, теперь остается только нажать на кнопку с красной стрелочкой с названием Prog и дело в шляпе. Как видите запрограммировать контроллер с помощью данной программы совсем не сложно. Чтобы более полно ознакомиться с ней рекомендую почитать справку, там вы найдет ответы на  возникшие вопросы. Вот кстати почитайте об охранной GSM сигнализации, которую я спаял и  запрограммировал.

Чтобы ее сделать мне как раз и пригодился программатор. Дорогие друзья,  совершенно недавно появился очень удобный способ подписки, через сервис Email рассылок. Так что вы можете оставить свой email и получать новые статьи и материалы себе на почту. Кроме того каждый подписавшийся получает подарок, который пригодится каждому радиолюбителю, так  люди подписываются и получают  приятные бонусы, добро пожаловать.

Ну что же, думаю статья окажется для вас полезной и поможет сделать еще один шаг на пути освоения микроконтроллеров. На этом у меня все, желаю вам успехов и главное хорошего настроения! С уважением, Владимир Васильев. В качестве дополнения предлагаю посмотреть видеоролик на тему программирования контроллеров AVR.

Как научиться программировать микроконтроллеры? Бесплатный самоучитель. Микроконтроллеры Что такое микроконтроллер?

Методы представления информации. Приоритеты прерываний. Языки программирования.

Часто повторяющиеся задачи. Методы трансляции программы. Среды разработки программ.

Запаивая еще одну микросхему на очередную плату или перерезая дорожку на плате в десятый раз для внесения очередных (но не последних) изменений в новое устройство, вы начинаете подумывать: «А не бросить мне это нудное занятие?!» Ваше новое устройство получается не таким, как вам бы хотелось, но и изменять схему и переделывать всё на плате вам уже надоело. Перелистывая журналы по электронике, вы всё чаще встречаете слова: процессор, микроконтроллер, прошивка, программирование. Но эти слова для вас не имеют конкретного значения.

Вы где- то слышали, а может даже и держали в руках то, о чем вы даже думаете с благоговейным трепетом! То, что уменьшает размеры устройств, наделяя их недостижимыми для вас возможностями! Вы уже несколько раз пытались освоить микроконтроллеры, даже приобрели пару книг из серии «. Проходило какое- то время, и всё останавливалось на самом интересном месте: схемы, показанные в книгах, вам были понятны, но вот методы создания программы для вас так и остались загадкой. Набрать несколько символов на английском (или каком- то там) языке в указанной книгой программе для вас не проблема.

Но не ясна СУТЬ и МЕТОДЫ использования этих загадочных символов, последовательность которых в книге называли программой. Вы винили себя в тупости и откладывали идею освоения микроконтроллеров в дальний ящик. Вы и так прекрасно справляетесь: у вас есть много- много микросхем, на которых вы разрабатываете свои устройства. Вы в панике, начинаете искать заброшенные книжки, и вспоминать всё ранее прочитанное. Вы поближе знакомитесь с этим парнишкой, и под видом стороннего разговора начинаете расспрашивать его о микроконтроллерах и их возможностях.

И он спокойно говорит о том, что контроллеры для него хобби. Вы просите его рассказать вам об их устройстве. Его ответы просты и незатейливы. Что такое микроконтроллер? Микроконтроллер — это маленький специализированный компьютер, по- русски микро- ЭВМ. Причем, эта микро- ЭВМ выполнена в одной микросхеме, на одном кристалле. Отсюда и полное название: «однокристальная микро- ЭВМ».

Эти команды выполняет процессор: этакий «мега- мозг», имеющий в своем составе АЛУ — арифметически- логическое устройство. Т. е, процессор «умеет» выполнять математические действия и производить логические операции над данными. Разрядность процессора. Методы представления информации. И процессор, и память — цифровые устройства, которые «понимают» сигналы только двух уровней: есть напряжение/ток, и нет напряжения/тока на линии.

Эти два состояния принято записывать так: логическая единица — «1», и логический ноль — «0». Команды и данные — это набор единичек и нулей. Одна линия (называют разрядом) при двух её состояниях может передать только два значения. Но при увеличении количества разрядов увеличивается и количество значений: два разряда — уже четыре, а восемь разрядов — уже 2. Разряд принято называть битом: один разряд это один бит. А набор из восьми разрядов — байтом: восемь бит это один байт. Но один байт имеет только 2.

Для передачи большего количества информации используется несколько, последовательно расположенных в памяти, байт. Два байта передают уже 6. Три байта — 1. 67. Система команд процессора.

При разработке процессора в него закладывают возможность выполнения определенных команд. Команды, которые данный процессор в состоянии выполнять, называют набором команд. Самые распространенные арифметические и логические команды, а также команды работы с портами — линиями связи процессора с внешним миром. Математически действия нам понятны: сложение, вычитание и другие.

Под логическими действиями понимаются такие действия: сравнение — больше, меньше, равно; работа над разрядами ячейки памяти или регистра: обнуление или его установка, а также операции сдвига разрядов влево или вправо. Данные могут быть считаны из памяти. Память — место, где какое- то время могут храниться программа и/или данные. Они могут храниться кратковременно — до отключения питания, или долговременно — независимо от наличия напряжения питания. Память первого типа используется для хранения промежуточных данных, используемых при выполнении различных операций. Поэтому её так и называют — «оперативная память».

Память второго типа чаще используется для хранения программы. Типов долговременной памяти несколько: однократно программируемая память, память с электрическим стиранием и память, стираемая ультрафиолетовым или рентгеновским излучением. Физическое устройство и принцип работы памяти может быть разным, но суть одна: хранить данные. Для описания хранилища данных используют понятие «ячейка». Следовательно, чем больше ячеек, тем больше данных может быть сохранено.

У каждой из ячеек имеется индивидуальный адрес. Процессор обращается к значению ячейки памяти именно по её адресу. Порты. Данные так же могут быть получены из внешних устройств через линии связи — выводы микроконтроллера. Эти линии связи называют портами, а по- научному: устройства ввода и вывода данных. Выводы порта могут быть входами, с использованием которых процессор получает информацию извне от разных датчиков, или быть выходами, подавая сигналы на которые можно управлять внешними устройствами.

В современных микроконтроллерах выводы практически всех портов двунаправленные, т. Универсальные порты необходимо настраивать — установить режим работы на ввод или вывод. Для этого имеется специальная ячейка в памяти — регистр управления режимами работы порта. Например, для того, чтобы сделать входом необходимый вывод (разряд) порта, в разряд регистра управления записывают 1 или 0, в зависимости от модели микроконтроллера.

Периферийные устройства. Но микроконтроллер содержит в своем составе не только процессор и память. Основную роль играют так называемые периферийные устройства: таймеры, счетчики, аналоговые компараторы, цифро- аналоговые и аналогово- цифровые преобразователи, устройства последовательного обмена информацией (часто их называют последовательным портом).

Часто микроконтроллер имеет и некоторое количество ячеек энергонезависимой памяти (чаще всего Flash), в которой могут быть сохранены различные данные. Семейства микроконтроллеров. Наличие всех перечисленных устройств в составе микроконтроллера необязательно.

Чаще всего производитель выпускает несколько моделей изделий, имеющих в своем составе различные периферийные устройства. Микроконтроллеры с одним типом процессора (и набором исполняемых машинных кодов), но различными периферийными устройствами, относят к одному семейству. Так и говорят: микроконтроллеры семейства ATtiny. Многофункциональность выводов микроконтроллера. Может возникнуть вопрос: как все эти устройства «общаются» с внешним миром, если у большинства микросхем в корпусе DIP не более 4. Для решения проблемы нехватки выводов используют метод объединения функций нескольких устройств с использованием одного вывода. Например, выводы одного из портов (8 разрядов – 8 выводов) также используется и для работы аналогово- цифрового преобразователя, а выводы другого порта — как входы аналоговых компараторов, последовательного порта или для подключения других встроенных узлов.

Для управления режимами работы выводов используется специальный регистр управления режимами работы порта (о нем рассказывалось ранее, при объяснении принципов работы портов). В большинстве микроконтроллеров выводы имеют несколько функций. Если обратиться к технической документации на контроллер, то при описании функции вывода будет сделано замечание об основной и об альтернативной функции данного вывода. Например: PD0/RX — нулевой разряд порта D одновременно является и входом последовательного порта, PB1/Ain. В одновременно является входом аналогового компаратора. Команды для процессора даются в определенном порядке, в соответствии с ранее разработанным алгоритмом.

Алгоритм — это последовательность выполнения процессором. Причем команды должна быть понятна процессору, и при этом иметь однозначное толкование, без какой- либо самостоятельности при её выполнении. Например: начало программы; сделать нулевой разряд порта входом; сделать седьмой разряд порта выходом; считать значение нулевого разряда порта; если он равен логической единице, то выполнить следующие действия: загрузить в седьмой разряд порта логическую единицу; вернуться к началу программы. Так мы описали алгоритм работы схемы, состоящей из выключателя, лампочки (или другой нагрузки) и источника питания. Результат выполнения будет таков: при нажатии кнопки на вход порта поступает напряжение, процессор выполняет программу — подает на выход порта напряжение. И пока контакты буду замкнуты, на выходе порта будет напряжение.

Поэтому были разработаны методы графического описания алгоритма. Вот пример графической записи вышеописанного алгоритма. Графический метод описания алгоритма Команды ветвления: условный и безусловный переходы. К особым командам процессора относятся команды условного и безусловного перехода.

Для того чтобы понять это, необходимо объяснить такое понятие как «указатель адреса выполняемой команды». У процессора имеется специальный регистр, в котором хранится адрес выполняемой в текущий момент команды. При подаче питания этот регистр обнуляется — в него записывается ноль. Далее процессор начинает выполнять команды, хранящиеся в памяти, начиная с нулевого адреса — ведь в регистре указателя адреса выполняемой команды указан ноль.

Выполнив команду, этот указатель инкриминируется, т. Процессор считывает следующую команду из памяти по адресу, указанную в указателе.

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

0 Comments



Leave a Reply.

    Author

    Write something about yourself. No need to be fancy, just an overview.

    Archives

    October 2016

    Categories

    All

    RSS Feed

Powered by
  • Blog
✕