ПРОГРАММИРОВАНИЕ


просмотров www.reliablecounter.com
  1. Автоматическая зачистка контактов.
  2. Аналоговое управление.
  3. Выбор программы кнопками.
  4. Внутрисхемный отладчик ICD2-SeVeN.
  5. Еще раз о проверке НЕХ-файлов.
  6. Как подключить кнопку и светодиоды.
  7. Коммутатор для ICSP.
  8. Коммутатор панели ZIF.
  9. О настройке тактового RC-генератора.
  10. Особенности преобразования в 2-10 код.
  11. Проблема чтение-модификация-запись.


Автоматическая "зачистка" контактов кнопок.

Автоматическая зачистка контактов кнопок. Как известно, у кнопок и других устройств с электрическими контактами наблюдается эффект их "дребезга" — неконтролируемое многократное замыкание и размыкание в первые 20...40мс после приложения или снятия механического усилия. С точки зрения физики — это череда локальных пробоев тонкой плёнки окисла, покрывающей соприкасающиеся поверхности контактов. Ситуация усугубляется, если контакты работают в сложных климатических условиях, например, в тёплой влажной атмосфере, а также при наличии пыли и загрязнений. Для уменьшения сопротивления замкнутых контактов, работающих при малых значениях коммутируемого тока, полезно периодически пропускать через них импульсы тока увеличенной амплитуды, в какой-то мере очищающие поверхность от окислов и продуктов износа. По такому принципу работает, например, микросхема МАХ13036 применяемая для сбора информации о состоянии различных контактных датчиков, установленных в автомобиле.

продолжить


Аналоговое управление в микроконтроллерном устройстве.

Аналоговое управление в микроконтроллерном устройстве. При конструировании микроконтроллерного устройства нередко возникает необходимость плавно изменять какой-либо параметр, например, частоту вращения двигателя, температуру, поддерживаемую термостабилизатором, порог срабатывания охранного устройства и многое другое. Способов сделать это цифровыми методами известно довольно много. Однако все они довольно сложны как в аппаратном (для ввода цифрового значения требуются кнопки, клавиатура, валкодер и другие подобные средства), так и в программном отношении. Чтобы сохранить установленное значение при выключенном питании, приходится прибегать к его записи в энергонезависимую память. С точки зрения удобства пользования предпочтительно использовать для регулировки обыкновенный подстроечный или переменный резистор, преобразовав снимаемое с него напряжение в код. Однако усложнять ради этого разрабатываемое устройство, вводя в него АЦП, вряд ли целесообразно. Другое дело, если микроконтроллер (например, PIC12F675) имеет встроенный преобразователь. Тогда, как говорится, нет проблем.

продолжить


Выбор программы кнопками.

Выбор программы кнопками. В исходном состоянии кнопки SB1 и SB2 не нажаты, минусовая цепь питания микроконтроллера разорвана. Нажатием на любую кнопку она замыкается через диод VD2 или VD4, микроконтроллер начинает работать. Он проверяет состояние входных линий GPO и GP1. На соединённом с нажатой кнопкой через диод VD1 или VD2 входе уровень низкий, с отпущенной — высокий, поддерживаемый внутренним резистором микроконтроллера. В зависимости от нажатых кнопок (SB1, SB2 или обеих) начинает исполняться соответствующая ветвь программы. С отпусканием их всех микроконтроллер прекращает работу. При необходимости число кнопок и выбираемых ими программ можно увеличить.

Внутрисхемный отладчик ICD2-SeVeN.

Внутрисхемный отладчик ICD2-SeVeN. Доступная для повторения версия MPLAB-ICD2 дебаггера (внутрисхемного отладчика/программатора PIC контроллеров серий PIC12F, PIC16F, PIC18F и dsPIC30F) компании Microchip. Целью автора было создание конструкции ICD2 - дебаггера с использованием минимального количества дефицитных деталей, без использования SMD-элементной базы, плату для которого с легкостью можно нарисовать от руки. При этом дебаггер является 100% работоспособным и 100% повторяемым в любительских условиях. Дебаггер (внутрисхемный отладчик) является незаменимым средством отладки микропроцессорных систем. Отладка осуществляется на штатном серийном микроконтроллере. Для того, чтобы функционировал режим внутрисхемной отладки, в серийные образцы микроконтроллеров встраивают специальный механизм - ICD (ln-Circuit Debugger). Во время работы микроконтроллера при достижении точки останова или при пошаговой отладке управление передается подпрограмме отладчика. Эта подпрограмма выполняет функцию передачи через дебаггер в компьютер состояния ячеек памяти микроконтроллера, а также изменяет их состояние и переключает режимы работы по команде с компьютера.

продолжить


Еще раз о проверке НЕХ-файлов.

Еще раз о проверке НЕХ-файлов. Проверке НЕХ-фаилов, в том числе полученных сканированием распечаток или набранных вручную, была посвящена статья А. Долгого "Как проверить НЕХ-файл" ("Радио", 2003, №8, с. 27, 28). В ней описана программа, позволяющая найти в НЕХ-файле ошибки и устранить их до ввода кодов в программатор. Ее единственный, пожалуй, недостаток в том, что информация о результатах проверки выводится только в окне предупреждений и сообщений об ошибках. Программа, предлагаемая автором публикуемой ниже статьи, более удобна в работе — она выделяет цветом и строку, содержащую ошибку, и сами ошибочные символы в ней. Кроме того, предусмотрено выделение цветом различных областей данных НЕХ-файла.

продолжить


Как подключить кнопку и светодиоды к одному выводу.

Как подключить кнопку и светодиоды к одному выводу. Во многих случаях число выводов предполагаемого к использованию в разработке микроконтроллера оказывается недостаточным для раздельного подключения к нему всех необходимых внешних цепей. Применение же микроконтроллера с большим числом выводов приводит к удорожанию и увеличению размеров устройства. Но многие порты микроконтроллеров обладают свойством двунаправленности. Воспользовавшись этим, можно объединять на них устройства как ввода (например, кнопки управления), так и индикации (например, светодиоды). Это даст возможность применить микроконтроллер с меньшим числом выводов

продолжить


Коммутатор для ICSP.

Коммутатор для ICSP. Многие радиолюбители используют программатор EXTRAPIC, предназначенный для программирования микроконтроллеров PIC и микросхем памяти с интерфейсом I2С. Этот программатор имеет разъем для внутрисхемного программирования (ICSP) к которому можно подключать рассчитанные на такое программирование платы микроконтроллерных устройств. ICSP позволяет вносить изменения в программу микроконтроллера, не демонтируя его с платы. Для этого на плате должен быть предусмотрен разьем для соединения с программатором пяти выводов микроконтроллера. Это — общий провод (GND или VSS), плюс напряжения питания (VDD или VCC), вход установки микроконтроллера в исходное состояние и перевода его в режим программирования (MCLR или VPP), двунаправленная информационная линия (DATA) и сигнал синхронизации программирования (CLOCK). Остальные выводы микроконтроллера при программировании не используются.

продолжить


Коммутатор панели ZIF для программирования микроконтроллеров.

Коммутатор панели ZIF для программирования микроконтроллеров. Назначение этого коммутатора — простое и удобное подключение микроконтроллеров PIC в корпусах DIP с различным числом выводов к программатору. Все они устанавливаются в одну и ту же 40-гнёздную панель ZIF (Zero Insertion Force — с нулевым усилием вставления) по принципу "первый вывод в первое гнездо". Радиолюбители сегодня широко используют в своих конструкциях микроконтроллеры. Наиболее удобный и распространённый программатор для внутрисхемного (без демонтажа из целевого устройства) программирования микроконтроллеров семейства PIC — PICkit 2 и его модификации. Однако многие радиолюбители предпочитают загружать программу в микроконтроллер ещё до установки его в свою конструкцию. Для этого к PICkit 2 приходится делать приставки с панелью под программируемый микроконтроллер или с несколькими панелями.

продолжить


О настройке тактового RC-генератора.

О настройке тактового RC-генератора. Налаживая один из приборов на микроконтроллере PIC12F675, работающем от встроенного тактового RC-генератора, автор неожиданно для себя обнаружил, что длительность формируемых генератором интервалов времени существенно отличается от требуемых значений. И это несмотря на то, что в программе МК были предусмотрены все рекомендуемые изготовителем операции по точной установке частоты генератора с использованием хранящейся в памяти МК заводской калибровочной константы. Этот казус заставил заняться исследованием характеристик генератора. О результатах проделанной работы рассказывается в статье. Для начала напомним, что установка частоты встроенного RC-генератора в восьми выводных МК PIC12F629 и PIC12F675 (последний отличается лишь наличием встроенного АЦП) производится записью соответствующей константы в регистр OSCCAL, находящийся по адресу 90Н. Это восьмиразрядный регистр, но два его младших двоичных разряда не используются, в них всегда нули. Таким образом, значение настроечной константы может находиться в интервале 0—252 (0—0FCH), изменяясь шагами по четыре единицы.

продолжить


Особенности преобразования двоичного кода числа в 2-10 код.

Особенности преобразования двоичного кода числа в 2-10 код. Двоично-десятичный код используется, как правило, в устройствах ввода-вывода для организации удобного для пользователя способа обмена информации с цифровым устройством и, в первую очередь, в узлах (модулях) индикации. Существует множество подпрограммам (ПП) преобразования двоичного числа в двоично-десятичный код. Во многих из них используется метод левого сдвига. Все комментарии и описания этих ПП отвечают только на один из двух основных вопросов, которые интересуют начинающих и недавно начавших осваивать МК, а именно на вопрос «Как?». А вот на второй, не менее важный, вопрос «Почему именно так?» ответа нет. Автор надеется, что заинтересованный читатель найдет ответ на него в данной статье. Эта статья предназначена для тех, кто только начал осваивать микроконтроллеры (МК), но может быть полезна и более опытным радиолюбителям.

продолжить


Проблема чтение-модификация-запись.

Проблема чтение-модификация-запись. Все, кто изучает программирование микроконтроллеров компании Microchip, рано или поздно сталкиваются с, так называемой, проблемой ЧМЗ(анг. RMW- Read-Modification-Write). Иногда непонимание причин возникновения этой проблемы вводит начинающих программистов МК в ступор. После многочисленных перепроверок выясняется, что код, вроде бы, не содержит ошибок, но, тем не менее, поведение МК остается непредсказуемым. Природа возникновения этой ошибки и способы борьбы с ней рассмотрены в настоящей статье. Проблема ЧМЗ наблюдается для большинства МК фирмы Microchip. Для полного понимания рассмотрим один из случаев возникновения «ошибки». Заметим, что эта проблема возникает как при программировании на языке ассемблера, так и на языках высокого уровня.

продолжить