8-900-374-94-44
[email protected]
Slide Image
Меню

Pic16F676 как программировать: Как программировать pic16f676

ВольтАмперметр на PIC16F676 и семисегментных индикаторах

  1. Главная|
  2. Устройства|
  3. Microchip
Просмотров: 94110

Семисегментный индикатор Амперметр Вольтметр PIC16F676

Одновременное отображение и напряжения и тока, частота обновления показаний ~ 9Гц. Предусмотрено применение индикаторов как с ОА, так и ОК. Кроме того, возможно применение как одного индикатора, так и двух. Причем, если применяются четырех разрядные, то крайний правый разряд отображает стилизованные единицы измерения «V» или «A».

Но есть ограничение на применение индикаторов с ОА. При таком включении эммитерных повторителей, появляется «засвет» индикаторов измерительными токами. Т.е. при 2х индикаторной схеме целесообразно применять индикаторы с ОК, в таком случае измеряемые токи не будут оказывать влияния на открывание транзисторных ключей.

Если установлены кнопки, то нажатие кн «В» на левом индикаторе отобразит текущий режим этого индикатора, «-U-» или «-I-«. Дальнейшее удержание сменит режим. Для исполнения с одним 3х разрядным индикатором, эта функция поможет вспомнить в каком режиме находится устройство, а для 2х индикаторного исполнения,- поменяет местами отображаемые значения напряжения и тока. В любом случае, для напряжения применена функция гашения незначащих нулей, т.е., если напряжение не превышает значения 9,9В, то на индикаторе мы не увидим первого нуля («_Х.Х»).

Кн «Н» позволяет войти в меню коррекции смещения тока. Это бывает необходимо в случае, если для улучшения линейности показаний тока, было применено смещение ОУ в линейный участок.

Т.е. коррекцией можно удалить «лишние» показания. После кратковременного нажатие кнопки на левом индикаторе (если их два), появится сообщение «ShI» (смещение тока) и индикатор начнет мигать. Пока он мигает, кнопками можно откорректировать смещение. Через несколько секунд индикатор прекратит мигать и данные запишутся в энергонезависимую память. Заодно, в памяти сохранится режим отображения индикатора, который и будет появляться при следующем включении.

Источник: ur5kby.at.ua


Архив для статьи «ВольтАмперметр на PIC16F676 и семисегментных индикаторах»
Описание: Различные версии прошивок микроконтроллера, различные варианты печатных плат SprintLayout5
Размер файла: 167.45 KB Количество загрузок: 11 636 Скачать

Понравилась статья? Поделиться с друзьями:

  • Назад
  • Вперед

3.

5 Пример программы для pic16f676

Пример программы для PIC16F676 (для работы с одним устройством на линии).

Запись в память [4Eh]

Эта команда позволяет устройству управления записывать 3 байта данных в память DS18B20.

Первый байт данных записывается в регистр (TH), второй байт записывается в регистр (TL), и третий байт записывается в регистр конфигурации.

Данные должны быть переданы наименьшим значащим битом вперед.

Для датчиков температуры с паразитным питанием все три байта ДОЛЖНЫ быть записаны командой КОПИРОВАНИЕ ОЗУ В ПЗУ [48h] прежде, чем устройством управления будет сгенерирован импульс сброса, иначе данные будут потеряны.

Чтение памяти [BEh]

Эта команда позволяет Устройство управленияу читать содержание ПАМЯТИ. Передача данных начинается с наименьшего значащего бита байта 0 и продолжается до 9-ого байта (байт 8 — циклический контроль избыточности). Устройство управления может выполнить сброс, чтобы закончить чтение в любое время, если необходимо только часть данных.

Копирование ОЗУ В ПЗУ [48h]

Эта команда копирует содержание регистров (TH, TL) и регистра конфигурации (байты 2, 3 и 4) в ПЗУ. Если устройство используется в режиме паразитного питания, то в пределах не позднее 10 μs

(максимально) после подачи этой команды устройство управление должно установить высокий уровень на шине и поддерживать его в течении не менее 10ms.

Краткий обзор Команды

Устройства iButtons могут работать как автономно на шине, так и поддерживают следующие Сетевые Команды на основе ROM:

• Чтение ROM [33h] (Read)

• Пропуск ROM [CCh] (Skip)

• Соответствие ROM [55h] (Match)

• Поиск ROM [F0h] (Search)

После выполнения любой команды ROM, устройства достигает уровня Транспорта (способно передавать свои данные памяти).

Чтение ROM [33h] (Read) используется, чтобы прочитать ROM память устройства, если на шине оно только одно. После посылки этой команды Главное устройство должен генерировать 64 слота времени считывания. iButton пошлет содержимое его ROM памяти младшим битом вперед, начиная с кода семейства, сопровождаемого серийным номером и байтом циклического контроля избыточности.

Если на шине несколько iButtons устройств, то для чтения ROM памяти необходимо воспользоваться командой Поиск ROM [F0h] (Search), чтобы определить содержание ROM памяти устройств прежде, чем к ним можно будет обратиться.

Если содержание ROM памяти не представляет интерес, потому что на шине только одно iButton, поиск может быть пропущен, посылая команду Пропуск ROM [CCh] (Skip). Немедленно после этой команды, устройство достигает Транспортного уровня.

Команды Соответствие ROM [55h] (Match) может использоваться, чтобы обратиться к интересующему устройству, если на шине присутствует несколько iButtons устройств.

Код ROM выполняет функцию адреса устройства, чтобы активизировать его Транспортный уровень. Тот же самый Код ROM не может активировать более 1 устройства, так как соответствие кодов ROM только одному устройству определено при их производстве. Если два iButtons имеют то же самое серийный номер, их семейные коды будут отличны. Этим способом, исключается любой беспорядок или неопределенность.

После подачи команды Соответствие ROM [55h] (Match), Главное устройством будет послано в течение следующих 64 слотов времени содержание ROM памяти требуемого устройства. Последовательность битов

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

Команда Поиск ROM [F0h] (Search)

Если Главное устройство не знает серийный номер устройства подключенного к шине, то существует возможность идентифицировать коды ROM каждого устройства подключенного к шине. Для этого необходимо использовать команду Поиск ROM [F0h] (Search). Эта команда действует как команда Чтения ROM объединенная с командой Соответствия ROM.

Процесс выглядит следующим образом: После формирования главным устройством команды Поиск ROM [F0h] (Search) все устройства iButtons последовательно будут формировать на шине состояние «0» и «1» соответствующие их значению фактического бита ROM в течение двух Времен (тактов) считывания после формирования команды ROM Поиска.

Если все устройства содержат в этой позиции двоичного разряда:

• «0», чтение будет «01»;

• «1», результат будет «10»;

Если устройства содержат в этой позиции двоичного разряда и «1» и «0», чтение приведет «00» битов, указывая на конфликт.

Главное устройство в следующем (третьем такте) слоте Времени формирует разрядное значение 1 или 0, чтобы отобрать устройства, которые останутся в процессе выбора.

Все устройства у которых бит не соответствует биту сформированному главным устройством перейдут в состояние ожидания и будут находиться в нем пока они не получают Импульс Сброса. После первой стадия выбора, будут следовать 63 читающих/выбора цикла, пока, наконец, главное устройство не определит Код ROM одного подчиненного устройства и обратиться к нему.

Каждая стадия выбора состоит из двух слотов Времени считывания и один слот Времени записи. Полный процесс изучения и одновременная адресация — приблизительно три раза длина команды ROM Соответствия, но это позволяет выбрать из всех связанных устройств последовательно все коды ROM.

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

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

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

Четыре устройства установлены на шине. Их двоичное содержание ROM следующее:

устройство 1: xxxxxx10101100

устройство 2: xxxxxx01010101

устройство 3: xxxxxx10101111

устройство 4: xxxxxx10001000

для упрощения символом «x» заменены старшие биты и показаны только младшие восемь битов содержания ROM.

Поиск младшего бита происходить следующим образом:

1. Главное устройство начинает последовательность инициализации

• формирует Импульс Сброса.

• iButtons отвечают формированием импульсов Присутствия.

2. Тогда Главное устройство формирует команду Поиск ROM.

3. Главное устройство читает один бит с шины. Каждое устройство ответит, помещая значение первого бита соответствующего его данным ROM. Устройства 1 и 4 поместят «0» на шину, то есть, они установят на шине низкий уровень. Устройства 2 и 3 сформируют «1» позволяя на линии оставаться в высоком уровне. Результат – «логическое И» всех устройств на линии; поэтому Главное устройство читает 0.

Главное устройство будет читать следующий бит. (С тех пор когда команда Search ROM выполняется, все устройства отвечают одновременно). Все устройства помещают на шину дополнение первого бита их соответствующего. Устройства 1 и 4 сформируют «1»; устройства 2 и 3 сформируют «0». Таким образом, на шине будет состояние логического «0». Главное устройство снова читает «0» при формировании дополнительного кода первого информационного разряда ROM (чтение дает «00» — состояние разрядных

конфликтов). Это говорит Главному устройству, что есть устройства на шине содержащие в первом бите как «0», так и «1».

Если бы все устройства имели «0» в этой позиции двоичного разряда, чтение дало бы результат «01»; если бы позиция двоичного разряда содержала во всех устройства «1» результат был бы «10».

4. Главное устройство теперь решает писать «0» и формирует запись его на шину. Эта операция переводит Устройства 2 и 3 (содержащие в этом разряде «1») в пассивное состояние, оставляя только устройства 1 и 4 для участия в процессе поиска.

5. Главное устройство выполняет еще два чтения и получает «01». Это говорит, что все активные устройства имеют 0 в этой позиции двоичного разряда их ROM.

6. Главное устройство тогда пишет 0, чтобы сохранить устройства 1 и 4 активными.

7. Главное устройство выполняет два чтения и получает два «00» биты. Это снова указывает, что в этом разряде присутствуют устройства имеющие «1» и «0».

8. Главное устройство снова пишет 0. Это деактивирует устройство 1, оставляя устройство 4 как единственный активный элемент.

9. Следующие чтения до конца ROM не будет давать состояние разрядных конфликтов. Отсутствие разрядных конфликтов до конца цикла поиска говорит, что происходит чтение ROM только одного активного элемента. Прочитав следующий бит Главное устройство снова посылает этот бит, чтобы сохранить устройство активным. Как только все биты ROM устройства будут известны и последний бит снова послан Главным устройством, устройство готово к принятию команды Транспортного уровня (для обмена информацией).

10. Главное устройство должно изучить данные ROM других устройств.

Поэтому оно запускает следующую последовательность Поиска ROM, повторяя шаги 1 — 7.

11. В самой старшей позиции двоичного разряда, где Главное устройство писало «0» в первом проходе (шаг 8), оно теперь пишет «1». Это снимает выделение устройства 4, оставляя устройство 1 активным.

12. Как в шаге 9, следующие чтения до конца ROM не будет давать состояние разрядным конфликтам. Этим заканчивается второй Поиск ROM, где Главное устройство считывает содержание ROM другого устройства.

13. Главное устройство должен изучить данные ROM других устройств.

Поэтому, оно запускает следующую последовательность Поиска ROM, повторяя шаги 1 — 3.

14. Во втором проходе в наивысшей степени позиция двоичного разряда, где Главное устройство написал 0 в первом проходе (шаг 4), это теперь пишет 1. Это снимает выделение устройств 1 и 4, оставляя устройства 2 и 3 активными.

15. Главное устройство посылает два слота времени считывания и получает

два 0 битов, указывая маленький конфликт.

16. Главное устройство снова решает писать 0. Это снимает выделение устройство 3, оставляя устройство 2 как единственное активное устройство.

17. Как в шаге 9, следующие чтения до конца ROM не будет показывать разрядным конфликтам. Этим заканчивается третий Поиск ROM проходит, где Главное устройство имеет изученный содержание другого ROM.

18. Главное устройство должен изучить данные ROM других устройств.

Поэтому это запускает другую последовательность Поиска ROM, повторяя шаги 13 — 15.

19. В самой высокой позиции двоичного разряда, где Главное устройство написал 0 в предыдущем проходе (ступают 16), это теперь пишет 1. Это снимает выделение устройства 2, оставляя устройство 3 активным.

20. Как в шаге 17, следующие чтения до конца ROM не будет показывать разрядным конфликтам. Это заканчивает четвертый Поиск ROM проходит, где Главное устройство имеет изученный содержание другого ROM.

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

Оптимизированная блок-схема алгоритма ROM Поиска показана на рисунке 3.5.1. Это число объясняет, как выполнить общий поиск ROM. Ради этого блок-схема, данные ROM накоплены в маленький массив, названный Бит ROM, с битами нумеровал 1 — 64. Установка должна назовите перед любой другой функцией, чтобы инициализировать Система с 1 проводом.

Звонок «в Первые» сбросы поиск к начало и идентифицирует первый код ROM, и призывает «Затем» идентифицируйте последовательные коды ROM. Ложное значение возвращенное указывает не больше кодов ROM, которые будут найдены. Время, требуемое изучать содержание одного ROM (нет считая процессорное время Главное устройство) — 960 ms + (8+3*64) *61 ms =13.16 ms. Таким образом возможно идентифицировать до 75 различный iButtons в секунду.

Рисунок 3.5.1. Алгоритм работы

PIC16F676 Распиновка, контакты GPIO, программирование, даташит, приложения

PIC16F676 — малогабаритный микроконтроллер pic , который является одним из лучших вариантов для встраиваемых приложений. Большинству промышленных и бытовых приборов требуется небольшое количество контактов и небольшой объем памяти, что может быть выполнено с помощью PIC16F676. Он надежен для студенческих проектов из-за его высокой производительности, которая улучшена благодаря технологии на основе флэш-памяти. PIC16F676 может быть меньше по размеру, но имеет внутренние 10-битный аналого-цифровой преобразователь в 14-контактном корпусе. Микроконтроллер PIC также поставляется в нескольких корпусах, каждый из которых состоит из 14 контактов. Внутренняя флэш-память микроконтроллера составляет 2 КБ, что отлично подходит для небольших проектов и особенно для разработки небольшой программы.

Схема распиновки PIC16F676

Схема распиновки приведена здесь. Этот микроконтроллер имеет два порта GPIO PORTA и PORTC. Оба этих контакта GPIO имеют несколько функций. Мы подробно рассмотрим каждый вывод GPIO позже в этом разделе.

PIC16F676 Конфигурация контактов GPIO

Здесь перечислены функции и подробная информация обо всех контактах GPIO.

Контакты питания

PIC16F676 имеет только два входа питания . Один используется для подачи питания, а второй используется для создания общего заземления.

  • В ДД – Контакт 1
  • В Нержавеющая сталь – Pin14

CRYSTAL/CLOCK Контакты

Для использования внешних часов или 9Генератор 0003 с PIC16F676 имеет два вывода, один для входа и второй для вывода.

  • OSC1/CLKIN – контакт 2
  • OSC2 — контакт 3

ЦИФРОВЫЕ ВЫХОДНЫЕ КОНТАКТЫ

В этой PIC есть два портов ввода/вывода общего назначения A и C, которые действуют как выходные. Оба порта выдают выходные данные в форме TTL. Выход на этих выводах не будет больше V DD. Эти простые цифровые выходы можно использовать только через программу, но нам нужно будет указать порт для доступа к выводу этого порта. Цифровые выходные контакты в PIC16F676:

  • РА0 — GPIO3
  • РА1 — GPIO12
  • РА2 — GPIO11
  • РА4 — GPIO3
  • РА5 — GPIO2
  • RC0 — GPIO10
  • RC1 — GPIO9
  • RC2 — GPIO8
  • RC3 — GPIO7
  • RC4 — GPIO6
  • RC5 — GPIO5

ВХОДНЫЕ КОНТАКТЫ GPIO

В PIC16F676 каждый контакт обоих портов A и C может использоваться как входной контакт. Эти контакты основаны на TTL и нуждаются в программировании. Эти контакты имеют программируемые входные подтягивающие резисторы. Напряжение на этих выводах не должно быть выше В ДД . Все входные контакты:

  • RA0 — GPIO3
  • РА1 — GPIO12
  • РА2 — GPIO11
  • РА4 — GPIO3
  • РА5 — GPIO2
  • RC0 — GPIO10
  • RC1 — GPIO9
  • RC2 — GPIO8
  • RC3 — GPIO7
  • RC4 — GPIO6
  • RC5 — GPIO5

ПИНЫ ПРЕРЫВАНИЯ

Пины прерывания работают как входные контакты, их основная цель — привлечь внимание контроллера, игнорируя все другие функции. В программе должно быть описано, что должен делать контроллер в случае прерывания. В PIC16F676 есть только один контакт прерывания, подключенный к программному счетчику, и для его активации требуется схемный триггер (ST).

  • INT — GPIO11

ВЫВОДЫ КОМПАРАТОРА

 PIC16F676 также имеет компаратор , используемый для сравнения аналоговых входов. Одиночный компаратор использует три вывода, два для входа и один для вывода. Оба входа TTL и ST могут использоваться на этих контактах, но выход всегда будет зависеть от входа. Контакты компаратора в PIC16F676:

  • COUT — GPIO11 (выход)
  • CIN — GPIO12 (вход 1)
  • CIN — GPIO13 (вход 2)

ВЫВОДЫ ТАЙМЕРА

В PIC16F676 есть два внутренних таймера , и один из таймеров имеет вентиль таймера, который в основном используется для управления состоянием питания таймера 1. Выводы таймера PIC16F676:

  • T0CKI — GPIO11
  • T1CKI-GPIO2
  • T1G’ — GPIO3

ВЫВОДЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА

В этом микроконтроллере также есть вывод последовательной связи, но последовательная связь этих выводов будет синхронной и в основном будет использоваться для программирования. Будут использоваться три вывода: один для передачи данных, второй для тактового импульса и третий для напряжения. Пины:

  • ICSPCLK — GPIO12
  • ICSPDAT — GPIO13
  • В ПП – GPIO4

КОНТАКТЫ АНАЛОГОВЫХ ВХОДОВ

PIC 16F676 позволяет внутренним каналам АЦП преобразовывать аналоговый сигнал в цифровой. Для преобразования аналогового сигнала в PIC16F676 имеется всего 8 каналов, которые можно использовать для преобразования в цифровые значения, для хранения преобразованного значения используется 10-битный регистр. Контакт опорного напряжения используется для выбора максимального напряжения между V DD и V ref . Вот все аналоговые и эталонные пины:

  • AN0 — GPIO13
  • AN1 — GPIO12
  • AN2 — GPIO11
  • AN3 — GPIO3
  • AN4 — GPIO10
  • AN5 — GPIO9
  • AN6 — GPIO8
  • AN7 — GPIO7
  • В исх. – GPIO12

КОНТАКТ СБРОСА

PIC поставляется только с одним внешним контактом сброса, которым можно управлять в цифровом виде или с помощью внешней кнопки. Контакт сброса является активным низким контактом и работает по базовой логике ST.

  • MCLR’ — Pin4

Если вы хотите начать с программирования микроконтроллеров pic на языке c или ассемблере, вы можете ознакомиться с этим полным руководством:

  • Программирование микроконтроллеров Pic на c с использованием Mikroc Pro для PIC
  • pic программирование микроконтроллера на языке ассемблера

БЛОК-СХЕМА PIC16F676

Внутренняя блок-схема PIC16F676 показана ниже

ХАРАКТЕРИСТИКИ

Эти функции перечислены в соответствии со спецификацией .

  • Он дает прямые 12 контактов ввода-вывода GPIO в одном небольшом корпусе, который можно использовать для прямого управления светодиодами или другими низковольтными устройствами.
  • PIC 16F676 имеет внутренние часы , которые можно использовать путем инициализации через программу.
  • Возможность автоматического перехода в спящий режим позволяет PIC экономить больше энергии.
  • После того, как код будет запрограммирован внутри, он будет защищен от любой кражи.
  • PIC имеет 8 аналогов в цифровой преобразователь каналов , которые могут хранить данные 8-бит.
  • Имеет два внутренних таймера (Timer0 и Timer1). Входом таймера 1 можно управлять с внешнего вывода.
  • PIC16F676 имеет контакты последовательного программирования, которые можно использовать для программирования через два контакта.
  • IT имеет аналоговый компаратор, который можно использовать с несколькими входами, а их выходы могут быть доступны извне.

PIC16F676

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
  • Ток в режиме ожидания составляет 1 нА при 2 В, а рабочий ток составляет 100 мкА при 2 В, но рабочее напряжение зависит от генератора.
  • Внутренний генератор ПОС 4МГц.
  • Диапазон рабочего напряжения PIC16F676 составляет от 2,0 до 5,5 В.
  • PIC16F676 имеет 1024 слова флэш-памяти, 64 байта SRAM и 128 байтов EEPROM.
  • Имеется 8 аналогово-цифровых каналов, но все они используют один 10-битный регистр для хранения преобразованных данных.
  • PIC имеет диапазон рабочих температур от -40 до 125 градусов и диапазон температур хранения от -65 до 150 градусов.
  • Максимальная частота процессора микроконтроллера составляет 1 МГц.
  • Максимальное напряжение на всех выводах не должно быть больше, чем на выводе питания, а ток не должен превышать 250 мА.

ПАМЯТЬ ПРОГРАММ И СТЕК 

PIC16F676 ПРИЛОЖЕНИЯ
  • Используется в основном в начальных приложениях, таких как студенческие проекты, программы разработки и т. д.
  • Небольшие проекты, такие как прокручиваемый дисплей, счетчики или небольшой ЖК-дисплей, также используют PIC16F676.
  • Те устройства, которые требуют аналого-цифрового преобразования относительно времени или других событий, используют PIC16F676 из-за 8 входных каналов.

Альтернативные варианты микроконтроллеров pic: PIC16F877A, PIC16F84A, PIC18F46K22

PIC16F676 Программирование периферийных устройств

Как упоминалось ранее, как и другие микроконтроллеры pic, он предлагает встроенный АЦП, таймеры и функции последовательного программирования. Мы объясняем регистры этих периферийных устройств в этом разделе.

РЕГИСТР ТАЙМЕРА

PIC16F676 имеет два внутренних регистра таймера , значениями которых можно управлять или проверять их в соответствии с требованиями. В этом контроллере timer0 является 8-битным и имеет другой регистр по сравнению с timer1:

time1 является 16-битным таймером и имеет различные функции, а также имеет управляющий контакт, известный как вентиль. :

АНАЛОГО-ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ

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

  • ANCON0 – Регистр аналого-цифрового преобразования
  • ANCON1 — Аналого-цифровое преобразование Регистр 1
  • ANSEL – Регистр аналогового выбора

Эти три регистра будут преобразовывать аналоговые данные в цифровые с другим статусом.

ACON0 будет использоваться для выбора данных, канала и задания аналогового регистра.

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

АРХИТЕКТУРА НАБОРА ИНСТРУКЦИЙ PIC16F676

В PIC16F676 используется 14-битный набор инструкций. Набор инструкций разбит на три части.

Байт-ориентированная операция

В байт-ориентированной системе набор 14-битных инструкций разделен на три части.

  • КОД ОПЕРАЦИИ — 7 бит
  • Адресат — 1 бит
  • Файловый регистр — 6 бит

Бит-ориентированная операция

В бит-ориентированной системе набор инструкций также будет разделен на три части, но имеет разное количество битов для разных операций:

    • КОД ОПЕРАЦИИ – 7 бит
    • Адресат — 2 бита
    • Файловый регистр — 4 бита

Литеральная и контрольная операция

В буквальном и контрольном режиме данные будут разделены на две части.

    • Для инструкций Call и GOTO
      • КОД ОПЕРАЦИИ — 8 бит
      • Литерал — 6 бит
  • Другие инструкции
    • КОД ОПЕРАЦИИ — 11 бит
    • Литерал — 3 бита

Существует некоторое представление для адресата, литерала и файлового бита. Вот таблица для представления каждого доступного значения:

Существует также некоторое представление для OPCODE:

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

Загрузить спецификацию PIC16F676

Знакомство с PIC16F676 — Инженерные проекты

Привет, друзья! Надеюсь у тебя все хорошо. Сегодня я подробно расскажу о Introduction to PIC16F676. Это 8-битный микроконтроллер CMOS PIC, основанный на Flash и разработанный Microchip. Он поставляется с 14-контактным интерфейсом и высокопроизводительным RISC-процессором, что делает его идеальным выбором для большинства электронных приложений, широко связанных со встроенными системами или промышленной автоматизацией. Этот крошечный чип включает в себя все необходимое для разработки индивидуальных студенческих проектов. Объем памяти и количество контактов немного меньше по сравнению с другими контроллерами в сообществе PIC, однако технология на основе флэш-памяти делает это устройство совместимым с внешними устройствами. В этом посте мы обсудим все, что связано с PIC16F676, его распиновку и описание, основные функции, блок-схему, расположение памяти и приложения. Давайте погрузимся прямо в и изучить все, что вам нужно знать.

Знакомство с PIC16F676
  • PIC16F676 — это 8-разрядный микроконтроллер PIC с 14-контактной компоновкой. Он основан на флэш-памяти, где высокопроизводительный процессор увеличивает скорость обработки.
  • Он поставляется в трех пакетах: PDIP, SOIC и TSSOP. Все три версии доступны в 14-контактной конфигурации.
  • PIC16F676 содержит память программ с объемом памяти около 1,7 КБ, в то время как объем памяти RAM и EEPROM составляет 64 байта и 128 байт соответственно.
  • В устройство добавлен один модуль АЦП, который является 10-разрядным и имеет 8 аналоговых каналов. Этот модуль играет жизненно важную роль для взаимодействия с датчиками и преобразования аналоговых значений в цифровые.

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

У вас есть краткий обзор этого контроллера. В этом разделе мы рассмотрим как распиновку, так и описание каждого контакта. Давайте начнем.

Распиновка

На следующем рисунке показана распиновка PIC16F676.

Описание контакта

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

Контакт № Имя контакта Контакт Описание
13 РА0 АН0 CIN+ ICSPDAT Контакт цифрового ввода/вывода Аналоговый канал 0 Вход компаратора Данные для программирования
12 РА1 АН1 ЦИН- VREF ICSPCLK Контакт цифрового ввода/вывода Аналоговый канал 1 Вход компаратора Опорное напряжение Программирование часов
11 РА2 АН2 COUT T0CKI ИНТ Контакт цифрового ввода/вывода Аналоговый канал 2 Выход компаратора Тактовый вход для Timer0 Прерывание
4 РА3 MCLR ВПП Контакт цифрового ввода/вывода Мастер Очистить Сброс Программирование входа напряжения
3 РА4 T1G АН3 OSC2 CLKOUT Цифровой ввод/вывод Таймер ворот 1 Аналоговый канал 3 Выход кварцевого генератора. В режиме RC этот вывод имеет 1/4 частоты OSC1.
2 РА5 T1CKI OSC1 КЛКИН Контакт цифрового ввода/вывода Часы Таймер1 Вход кварцевого генератора Вход внешнего тактового сигнала
10 RC0 АН4 Контакт цифрового ввода/вывода Аналоговый канал 4
9 RC1 АН5 Контакт цифрового ввода/вывода Аналоговый канал 5
8 РК2 АН6 Контакт цифрового ввода/вывода Аналоговый канал 6
7 РК3 АН7 Контакт цифрового ввода/вывода Аналоговый канал 7
6 RC4 Контакт цифрового ввода/вывода
5 RC5 Контакт цифрового ввода/вывода
14 ВСС Контакт заземления
1 ВДД Контакт подачи напряжения
2.
Характеристики PIC16F676

Вы уже получили распиновку и описание каждого контакта. В этом разделе мы выделяем и обсуждаем особенности этого контроллера, которые делают его уникальным среди аналогов. На следующем рисунке показаны полные характеристики PIC16F676.

Характеристики PIC16F676
Количество контактов 14
ЦП 8-битная ПОС
Рабочее напряжение от 2 до 5,5 В
Программная память 1,7 К
Тип памяти программ Вспышка
ОЗУ 64 байта
ЭСППЗУ 128 байт
АЦП Количество каналов АЦП 10-битный 8
Порты ввода-вывода (2) Контакты ввода/вывода А, С 12
Режим энергосбережения Да
Внешний осциллятор до 20 МГц
Таймер (2) 16-битный таймер (1) 8-битный таймер (1)
Производитель Микрочип
Компараторы 1
Индивидуальные программируемые слабые подтягивания Да
Сохранение данных EEPROM 40 лет
Сторожевой таймер Да
Сброс при включении Да
Основной сброс сброса Да
Внутрисхемное последовательное программирование Да
Минимальная рабочая температура -40 С
Максимальная рабочая температура 125 С

Эти функции помогут вам выбрать нужный контроллер и принять окончательное решение на основе требований вашего проекта.

3. Функции PIC16F676

С этим модулем PIC связано несколько функций. Ниже приведены основные функции PIC16F676.

Основной сброс сброса (MCLR)

MCLR — это внешний сброс микросхемы, который выполняется путем удержания на этом выводе НИЗКОГО уровня. Этот вывод не зависит от внутренних сбросов, которые также содержат фильтр помех для обнаружения и удаления малых импульсов на пути.

Таймер

PIC16F676 поставляется с двумя таймерами, один из которых 8-битный, а другой 16-битный. Они могут использоваться в обоих направлениях, т. е. как таймер, а также как счетчик. Оба таймера имеют возможность выбора часов. Режим таймера используется для создания задержки в любой функции, в то время как счетчик используется для подсчета количества внутренних элементов любой функции.

Внутрисхемное последовательное программирование

Внутрисхемное последовательное программирование  (ICSP), также называемое внутрисистемным Программирование  (ISP), добавляется в устройство, что помогает в программировании устройства после установки в определенный проект.

Сторожевой таймер

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

4. Компилятор PIC
  • Компилятор — это программное обеспечение, используемое для написания программы для выполнения желаемых функций на микроконтроллере. Microchip поставляется со своим собственным стандартным компилятором под названием MPLAB C18 Compiler. Вы можете получить этот компилятор онлайн с официального сайта Microchip.
  • Эти 3 лучших компилятора PIC C предоставляют вам множество вариантов на выбор в зависимости от ваших требований, однако для этой цели в основном используется MikroC Pro For PIC .
  • Код, который мы пишем в компиляторе, создает шестнадцатеричный файл, который затем перемещается в микроконтроллер для вызова и выполнения нужных инструкций.
  • Горелки используются для записи и включения определенной программы в контроллер. На рынке доступно множество неофициальных программ для записи, но PICKit3 остается впереди с точки зрения простоты использования и качества работы.
5. Схема памяти PIC16F676

Память этого контроллера в основном делится на два типа, называемые Организация памяти программ (ПЗУ) Организация памяти данных (ОЗУ) Память программ хранит программу постоянно и также известна как ПЗУ или энергонезависимая память. Он поставляется с 13-битным счетчиком программ, который может адресовать пространство памяти программ 8k x 14. Первое пространство памяти 1k x 14, покрывающее (0000h — 03FFh), может быть реализовано физически. Адрес, сохраненный в векторе сброса, загружается контроллером и остается равным 000h, а вектор прерывания остается равным 0004h.

Оперативная память, также известная как память данных или энергозависимая память, временно хранит программу и зависит от источника питания. Он удаляет сохраненную программу при отключении питания. Память данных в основном разделена на два банка, которые дополнительно содержат два типа регистров, называемых Регистры специального назначения Регистры общего назначения Первые 32 ячейки каждого банка зарезервированы для регистров специальных функций, которые в основном используются для обработки и управления периферийными функциями и классифицируются как 9.0003 «Ядро и периферия». . В то время как регистры общего назначения остаются на уровне 20h–5Fh, сопоставлены между обоими банками и реализованы как статическая оперативная память.

СТАТУС Регистр.  Этот регистр в основном используется для переключения между банками и содержит

  • Состояние сброса
  • Арифметический статус ALU
  • Биты выбора банка для памяти данных (SRAM)

W Регистрация. Регистр W не относится ни к какому банку регистров и адресуется только программой. Это GPR, а регистр STATUS относится к категории SFR. ТРИС.  Этот регистр настраивает PORTA как вход или выход. Значение 0 указывает на вход, а значение 0 указывает на выход. ТРИС.  Этот регистр похож на TRISA и настраивает контакты как вход или выход для PORTC.

6. Блок-схема PIC16F676

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

  • Этот модуль PIC поставляется с двумя портами, называемыми PORTA и PORTC, и каждый порт содержит 6 контактов. В нем отсутствуют некоторые функции, такие как USART, и меньше места в памяти.
7. PIC16F676 Проекты и приложения

Микроконтроллеры PIC широко используются во многих электронных системах автоматизации вождения. Ниже приведены основные области применения этой версии контроллера.

  • Прототип пользовательских схем
  • GPS и системы безопасности
  • Проекты центрального отопления
  • Студенческие проекты по интерфейсу датчиков и управлению двигателем
  • Используется в домашней и промышленной автоматизации
  • Встроенная система
8. Зачем использовать микроконтроллеры PIC