Описание pic16f628a на русском – Возможность скачать даташит (datasheet) PIC16F628A-E/ML в формате pdf электронных компонентов

PIC16F628A — Меандр — занимательная электроника



В современных промышленных стан­ках используются цифровые уст­ройства для измерения перемещения механизмов, датчиками которых служат электромеханические устройства, на­пример, ПДФ-3М [1] или ЛИР-158 [2] и аналогичные, использующие двухфаз­ный метод счёта. Предлагаемый прибор предназначен для проверки и отбраков­ки таких датчиков. Метод проверки — подсчёт числа импульсов на один обо­рот вала датчика. В приборе, схема которого изображе­на на рис. …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36475

Известно, что для регулирования переменного напряжения при различных экспериментах необходим лабораторный авто­трансформатор. Однако если его нет, можно использовать трансформатор, описанный в [1]. Для повышения оперативности и удобства работы с таким трансформатором в своё время был разработан и описан в [2] блок управления. К сожалению, он довольно сложен, поскольку построен на логических микросхе­мах малой и средней …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35321

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

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/31213

Предлагаем вниманию читателей усовершенствованный вариант прибора, описание которого было опубликовано в [1]. По мнению автора, новый прибор обладает существенными преиму­ществами над прототипом, поскольку не только выводит результаты измере­ния на экран ЖКИ, но и обеспечивает соблюдение условий измерения макси­мальной для используемого в конструк­ции счётчика Гейгера СБМ-20 интенсив­ности радиации 144 мР/ч [2]. Кроме то­го, он измеряет суммарную …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/29650

Этот замок можно использовать для ограничения доступа в поме­щение, гараж, дом, сейф, шкаф. Его исполнительным устройством может служить механизм запирания двери автомобиля. Устройство, схема которого изоб­ражена на рис. 1, позволяет посред­ством введённого кода отпирать дверь и запирать её. Код хранится в EEPROM микроконтроллера DD1, а при включении питания устройства программа копирует его в оператив­ную память. …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/29634

meandr.org

Таблица команд микроконтроллера PIC16F628A

Умный дом

Таблица П.1. Описание полей кодов операций PIC16F628A

Поле

Описание

F

Адрес регистра (от 0x00 до 0x7F)

W

Рабочий регистр (аккумулятор)

Ь

Бит, адресуемый внутри 8-битового регистра

K

Константа или метка

X

Не обслуживаемое расположение (= 0 или 1). Ассемблер будет генерировать код с х = 0. Это рекомендованная форма использования для совместимости со всеми программными средствами Microchip

D

Выбор адресата: d = 0, сохранить результат в W; d = 1, сохранить результат в регистре f. По умолчанию d = 1

Label

Имя метки

TOS

Top of Stack (Верх стека)

PC

Program Counter (Счетчик команд)

PCLATH

Program Counter High Latch (Защелка старшего байта счетчика команд)

GIE

Global Interrupt Enable bit (Бит глобального разрешения прерываний)

WDT

Watchdog Timer/Counter (Watchdog Таймер/Счетчик)

TO

Time out bit (Бит окончания по времени)

PD

Power-down bit (Бит сброса по питанию)

Dest

Адресуется либо регистр W, либо определенный положением регистр

П

Опции

О

Содержимое

—>

Назначить

< >

Поле бита регистра

Є

Во множестве

Italics

Пользовательский термин (шрифт courier)

Мнемоника, операнды

Описание

Циклы

14-битовый код

Статус, касается

Примечания

Байт-ориентированные регистровые операции

ADDWF f, d

Сложить W и f

1

00 0111 dfff ffff

C. DC. Z

1.2

ANDWF f, d

«И» W с f

1

00 0101 dfff ffff

Z

1.2

CLRF £

Очистить f

1

00 0001 1fff ffff

Z

2

CLRW —

Очистить W

1

00 0001 0000 0011

Z

COMF f, d

Дополнение f (двоичное — инвертировать все цифры и добавить 1)

1

00 1001 dfff ffff

Z

1.2

DECF f, d

Декремент f

1

00 0011 dfff ffff

Z

1.2

DECFSZ f, d

Декремент f, Пропустить, если 0

1(2)

00 1011 dfff ffff

1.2,3

INCF f, d

Инкремент f

1

00 1010 dfff ffff

Z

1,2

INCFSZ f, d

Инкремент f, Пропустить, если 0

1(2)

00 1111 dfff ffff

1,2,3

IORWF f, d

Включающее «ИЛИ» W с f

1

00 0100 dfff ffff

Z

1.2

MOVF f, d

Переместить f

1

00 1000 dfff ffff

Z

1,2

MOVWF f

Переместить W в f

1

00 0000 1fff ffff

NOP —

Нет операции

1

00 0000 OxxO 0000

RLF f, d

Сдвинуть влево через перенос

1

00 1101 dfff ffff

С

1,2

RRF f, d

Сдвинуть вправо через перенос

1

00 1100 dfff ffff

С

1,2

SUBWF f, d

Вычесть W из f

1

00 0010 dfff ffff

С, DC, Z

1,2

SWAPF f, d

Поменять местами полубайты f

1

00 1110 dfff ffff

1,2

XORWF f, d

Исключающее «ИЛИ» W с f

1

00 0110 dfff ffff

Z

1,2

Бит-ориентированные регистровые операции

BCF f, b

Очистить бит f

1

01 OObb bfffffff

1.2

BSF f,■b

Установить бит f

1

01 01 bb bfffffff

1.2

BTFSC f, b

Проверить бит f, пропустить, если сброшен

1(2)

01 10bb bfffffff

3

BTFSS f, b

Проверит бит f, пропустить, если установлен

1(2)

01 11bb bfffffff

3

Операции управления и с константами

ADDLW k

Сложить константу и W

1

11 111 x kkkk kkkk

C, DC, Z

ANDLW k

«И» константы с W

1

11 1001 kkkk kkkk

Z

CALL k

Вызвать подпрограмму

2

10 Okkk kkkk kkkk

TO. PD

CLRWDT —

Очистить сторожевой таймер (Watchdog)

1

00 0000 0110 0100

GOTO k

Перейти к адресу

2

10 1kkk kkkk kkkk

IORLW k

Включающее «ИЛИ» константы с W

1

11 1000 kkkk kkkk

Z

MOVLW k

Переместить константу в W

1

11 OOxx kkkk kkkk

RETFIE —

Возврат из прерывания

2

00 0000 0000 1001

RETLW k

Возврат с константой в W

2

11 01 xx kkkk kkkk

RETURN —

Возврат из подпрограммы

2

00 0000 0000 1000

TO, PD

SLEEP —

Переход в режим Standby

1

00 0000 0110 0011

SUBLW k

Вычесть W из константы

1

11 11 Ox kkkk kkkk

C, DC, Z

XORLW k

Исключающее «ИЛИ» константы с W

1

11 1010 kkkk kkkk

Z

Примечания.

1. Когда модифицируется регистр I/O как функция сама по себе (то есть, MOVF PORTB, 1), используемое зна­чение будет то же, что значение на самом выводе. На­пример, если данные на выводе, конфигурированном как ввод «1», сбрасываются внешним устройством, воз­вращаемые данные — это «О».

2. Если эта инструкция выполняется на регистре TMR0 (и применено d = 1), предделитель будет очищен, если назначен для TimerO Module.

3. Если счетчик команд (PC) модифицируется или прове­ряемое условие истинно, инструкция требует двух цик­лов. Второй цикл выполняется как NOP.

Вторая версия основной программы на языке С++

/****************^ * TOC o «1-3» h z Copyright (С) 2006 by Vladimir Gololobov * * [email protected] ru * * * * This program is free software; you can redistribute it …

Циклы

Циклы выполняют выражения или блоки выражений до тех пор, пока выражение условия не становится истинным. Наша программа требует двух циклов (один вложен в дру­гой). Пока пользователь желает угадывать последовательно­сти: { …

Две полезные схемы

Первая схема относится к настенному выключателю, работа­ющему по протоколу XI0. Что полезного можно почерпнуть из этой схемы? Например, организацию сканирования сети и управления триаком. Схему я привожу, как она сохранилась …

msd.com.ua

Показать содержимое по тегу: pic16f628a

Конструкция 2-х канального термометра на PIC16F628A и DS18B20, предназначенного для домашнего применения, заинтересовала, как простых радиолюбителей, так и тех у кого есть автомобиль.

Для применения в автомобиле конструкция термометра претерпела ряд изменений, как схемотехнических, так и программных. Надпись «Дом» была заменена на «Салон», а в нижней строке дисплея теперь выводится напряжение бортовой сети автомобиля. При реализации функции измерения напряжения бортовой сети возникли трудности, связанные с отсутствием у примененного микроконтроллера цифро-аналогового преобразователя (АЦП). Зато в микроконтроллере имеется модуль компараторов, который и был использован для измерения бортового напряжения. С помощью модуля компараторов оказалось возможным измерять напряжение в диапазоне входных напряжений от 5,6В до 16В с дискретностью измерения 0,7В. Это самый оптимальный вариант для решения поставленной задачи без замены микроконтроллера. Зная напряжения бортовой сети можно оценить состояние аккумуляторной батареи. Сразу при включении устройства (с помощью замка зажигания или другим способом) выполняется измерение бортового напряжения. Если величина бортового напряжение оказалась меньше чем 10,5В автомобильный термометр-вольтметр оповестит звуковым сигналом (в течении 1,5с.) и одновременно выведет в нижней строке дисплея сообщение «Аккум — разряжен» примерно на 3…4с. Далее в нижней строке будет отображаться текущее значение бортового напряжения. Если величина напряжения будет меньше 5,6В на индикаторе будет отображаться сообщение  «Напряжение <6B», а если больше 16В — «Напряжение >16B».

Описание схемы:

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

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

Резисторы R11…R15, совмесно с входными встроенными защитными цепями индикатора, обеспечивают согласование уровней сигналов управления, поступающих на индикатор.

Питание индикатора осуществляется от параметрического стабилизатора напряжения, обеспечивающего значение напряжения питания индикатора около +3,3В. Стабилизатор напряжения выполнен на стабилитроне V5, резисторе R10 и конденсаторе фильтра С8. Питание на стабилизатор поступает от источника стабилизированного напряжения +5В. Измерение температур осуществляется цифровыми датчиками температуры U1 и U2 фирмы Maxim DS18B20. Эти датчики имеют заводскую калибровку и позволяют измерять температуру окружающей среды от -55 до +125°С, причем в интервале -10…+85°С производитель гарантирует абсолютную погрешность измерения не хуже ±0,5°С. На границах диапазона измеряемых температур точность ухудшается до ±2°С.Индикация показаний термометра во всем диапазоне измеряемых температур выполняется с дискретностью ±0.1°C.

Обмен данными и командами между микроконтроллером D1 и датчиками температуры U1 и U2 осуществляется с помощью последовательного интерфейсного канала 1-Wire. Для упрощения программного обеспечения датчики подключены на отдельные входы микроконтроллера. Протокол обмена при этом по шине 1-Wire упрощается : не требуется адресация датчиков и их предварительная инициализация.

Резисторы R4, R6 являются нагрузочными резистороми для линий интерфейса 1-Wire. Резисторы R5, R7 выполняют функцию защиты внутреннего источника питания термометра при коротком замыкании цепей питаний датчиков.

Разъем Х3 используется для внутрисхемного программирования микроконтроллера D1. Его необходимо устанавливать в случае использования микроконтроллера в SMD исполнении или когда микроконтроллер в DIP корпусе непосредственно впаивается в плату, а не устанавливается в панельку. Разъем Х3 обеспечивает непосредственное подключение программатора PICKIT2 к термометру.

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

Внутренняя схема питания автомобильного термометра реализована следующим образом:- с разъема Х4 бортовое напряжение поступает через диод V1 и резистор R3 на микросхему интегрального стабилизатора напряжения U3 типа 7805.

Данная микросхема из напряжения бортовой сети формирует стабилизированное напряжение +5В для питания микроконтроллера, параметрического стабилизатора индикатора и цифровых датчиков температуры;

— Диод V1 препятствует прохождению импульсных помех отрицательного напряжения в цепи питания термометра, защищает устройство при неправильной подачи питания на устройство (переполюсовка питания), а также совместно с конденсатором С1 препятствует перезапуску микроконтроллера устройства при провалах напряжения бортовой сети при включении стартера автомобиля или других энергоемких потребителей электроэнергии автомобиля; — Резистор R3 совместно с ограничительным диодом (супрессором) V2 защищает внутренние цепи термометра от перенапряжений, возникающих от влияния импульсных помех.

Узел формирования аналогового сигнала, необходимого для измерения напряжения бортовой сети, собран на резистивном делителе напряжения R1,R2, конденсаторе C2 помехоподовляющего фильтра (R1, C2), и диодах V3, V4, защищающих совместно с резистором R1 аналоговый вход микроконтроллера от перенапряжений.

Желательно для повышения точности измерения напряжения резисторы R1 и R2 использовать с 1% точностью, но так, как дискретность измерения очень большая (0,7В) — это условие не обязательно.

Мощность резистора R3 должна быть не менее 0,5Вт, а мощность стальных резисторов может быть 0,125Вт для выводных и 0,1Вт для SMD резисторов

Опытный образец автомобильного термометра был собран на односторонней печатной плате:

 

Внимание печатная плата и монтаж опытного образца выполнены по схеме — Shema_avto_termo_3310_pic16f628.spl, файл которой представлен ниже. Отличие от представленной выше схемы только в оформлении и в позиционных обозначениях элементов. 

Скачать архив всего проэкта: 93.78 KB

shemu.ru

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА PIC

МИКРОКОНТРОЛЛЕРЫ PIC

     Ещё несколько лет назад, для сборки какого-либо цифрового устройства требовался десяток, а то и два логических микросхем типа К155, К561 и другие. Помимо трудностей сборки и настройки, такие устройства обладали слишком большими габаритами и энергопотреблением. Но технологии не стоят на месте, и вот, им на смену пришли микроконтроллеры PIC. Аббревиатура PIC, расшифровывается как Peripheral Interface Controller. Буквальный перевод: периферийный интерфейсный контроллер. Выпускает эти контроллеры американская компания Microchip Technology. Существуют 8, 16 и 32-битные микроконтроллеры под маркой PIC. Они представляют собой микpоконтpоллеpы с RISC аpхитектуpой, встpоенным ЭППЗУ пpогpаммы и ОЗУ данных. Скачать руководство по микроконтроллерам PIC можно здесь. А здесь имеется хорошая книга «Радиолюбительские схемы на PIC контроллерах» — описание десятков схем и конструкций: часы, таймеры, программаторы и многое другое.

     Работа 8-ми битных микроконтроллеров основывается на 12-ти разрядной архитектуре слова программ и предоставлены, как наиболее дешевое решение. Среднее семейство представлено микроконтроллерами серий PIC12 и PIC16, и имеет ширину слова программ 14 бит. Микроконтроллеры работают в диапазоне питающих напряжений от 2.0 до 5.5В, имеют встроенную систему прерываний, аппаратный стек, энергонезависимую память данных EEPROM. Набор периферии: USB, SPI, I2С, USART, LCD, АЦП и другие.

     В новых микроконтроллерах применена улучшенная архитектура 8-ми битных PIC контроллеров PIC12 и PIC16. При этом увеличен объём памяти программ и данных, улучшен аппаратный стек, имеются дополнительные источники сброса, расширена периферия для создания сенсорных пользовательских интерфейсов, уменьшено время входа в прерывание и размер кода, увеличена производительность на 50 %.

     Семейство 16-ти разрядных микроконтроллеров представлены в модификациях PIC24F — производительность ядра [email protected]МГц и PIC24H — [email protected]МГц. Отличаются они технологией изготовления FLASH программной памяти. 

     Особенности микроконтроллеров PIC24F и PIC24H:

 Выполнение команды за 2 такта генератора
 Время отклика на прерывание — 5 командных тактов
 Доступ к памяти за 1 командный такт
 Аппаратный умножитель 
 Аппаратный делитель 32/16 и 16/16 чисел
 Питающие напряжения 2.0…3.6В, один источник питания.
 Внутрисхемное и само- программирование
 Встроенный генератор с PLL
 Расширенная периферия (до 3-х SPI, до 3-х I2C, до 4-х UART с поддержкой IrDA, LIN, CAN и расширенный ECAN, USB OTG)
 Модуль измерения времени заряда, для управление ёмкостными сенсорами
 Ток портов ввода/вывода около мА
 До девяти 16-битных таймеров
 До восьми модулей захвата
 Энергосберегающие режимы
 До двух АЦП с 32 каналами и с конфигурируемой разрядностью
 До восьми 16-битных модулей сравнения / генерации ШИМ 

     Самыми продвинутыми контроллерами являются 32-разрядные PIC32. Их особенности: ядро MIPS32 M4K, частота такта 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.53 Dhrystone MIPS/МГц, порты ввода/вывода относятся к основному частотному диапазону, дополнительный частотный диапазон для периферии из основного посредством программно настраиваемого делителя, до 32 кБ SRAM и 512 кБ Flash с кэшем предвыборки, совместимость по выводам и отладочным средствам с 16-битными контроллерами, аппаратный умножитель и делитель с независимым конвейером, оптимизированным по скорости выполнения, набор расширенных инструкций MIPS16e, независимый от основного ядра контроллер USB.

     Схемы и устройства на PIC контроллерах можно питать от сети 220 вольт без понижающего трансформатора. Для этого достаточно спаять простую схему бестрансформаторного источника 5В, которая обеспечивает ток нагрузки около 0.1А. Для уменьшения влияния наводок и помех следует неиспользуемые выводы микроконтроллера подключать к шине земли. При разводке печатной платы обязательно установите фильтрующий конденсатор, емкостью 0,1 мкф, между выводами питания. Цепи генератора тактовых импульсов и сброса микроконтроллера делайте покороче. По периметру платы стоит провести шину земли.

     В настоящее время семейство микроконтроллеров PIC представлено такими моделями:

ТИП Память,байт ОЗУ,байт Частота,МГц

PIC12C508 512×12 25 4
PIC12C508A 512×12 25 4
PIC12C509 1024×12 41 4
PIC12C509A 1024×12 41 4
PIC12C671 1024×14 127 10
PIC12C672 2048×14 127 10
PIC12CE518 512×12 25 4
PIC12CE519 1024×12 41 4
PIC12CE673 1024×14 127 10
PIC12CE674 1024×14 128 10
PIC12CR509A 1024×12 41 4
PIC12F629 1024 64 20
PIC12F675 1024 64 20
PIC14000 4096×14 192 20
PIC16C432 2048×12 128 20
PIC16C433 2048×12 128 10
PIC16C505 1024×12 72 20
PIC16C52 384×12 25 4
PIC16C54 512×12 25 20
PIC16C54A 512×12 25 20
PIC16C54C 512×12 25 20
PIC16C55 512×12 24 20
PIC16C554 512×14 80 20
PIC16C558 2048×14 128 20
PIC16C55A 512×12 24 20
PIC16C56 1024×12 25 20
PIC16C56A 1024×12 25 20
PIC16C57 2048×12 72 20
PIC16C57C 2048×12 72 20
PIC16C58A 2048×14 73 20
PIC16C58B 2048×12 73 20
PIC16C61 1024×14 36 20
PIC16C620 512×14 80 20
PIC16C620A 512×14 96 20
PIC16C621 1024×14 80 20
PIC16C621A 1024×14 80 20
PIC16C622 2048×14 128 20
PIC16C622A 2048×14 128 20
PIC16C62A 2048×14 128 20
PIC16C62B 2048×14 128 20
PIC16C63 4096×14 192 20
PIC16C63A 4096×14 192 20
PIC16C642 4096×14 176 20
PIC16C64A 2048×14 128 20
PIC16C65A 4096×14 192 20
PIC16C65B 4096×14 192 20
PIC16C66 8192×14 368 20
PIC16C662 4096×14 176 20
PIC16C67 8192×14 368 20
PIC16C71 1024×14 36 20
PIC16C710 512×14 36 20
PIC16C711 1024×14 68 20
PIC16C712 1024×14 128 20
PIC16C715 2048×14 128 20
PIC16C716 2048×14 128 20
PIC16c717 2048×14 256 20
PIC16C72 2048×14 128 20
PIC16C72A 2048×14 128 20
PIC16C73 4096×14 192 20
PIC16C73A 4096×14 192 20
PIC16C73B 4096×14 192 20
PIC16C74 4096×14 192 20
PIC16C745 8192×14 256 24
PIC16C74A 4096×14 192 20
PIC16C74B 4096×14 192 20
PIC16C76 8192×14 368 20
PIC16C765 8192×14 256 24
PIC16C77 8192×14 368 20
PIC16C770 2048×14 256 20
PIC16C771 4096×14 256 20
PIC16C773 2048×14 256 20
PIC16C774 2048×14 256 20
PIC16C781 1024×14 128 20
PIC16C782 2048×14 128 20
PIC16C923 4096×14 176 8
PIC16C924 4096×14 176 8
PIC16C925 4096×14 196 20
PIC16C926 4096×14 336 20
PIC16CE623 512×14 96 20
PIC16CE624 1024×14 96 20
PIC16CE625 2048×14 128 20
PIC16CR54A 512×12 25 20
PIC16CR54b 512×12 25 20
PIC16CR54C 512×12 25 20
PIC16CR56A 2048×14 25 20
PIC16CR57A 4096×14 72 20
PIC16CR57b 2048×12 72 20
PIC16CR57C 2048×12 72 20
PIC16CR58A 2048×12 73 20
PIC16CR58B 2048×12 73 20
PIC16CR62 2048×14 128 20
PIC16CR63 4096×14 192 20
PIC16CR64 4096×14 192 20
PIC16CR65 4096×14 192 20
PIC16CR72 2048×14 128 20
PIC16CR83 512×14 36 10
PIC16CR84 1024×14 68 10
PIC16F627 1024×14 224 20
PIC16F627A 1024 224 20
PIC16F628 2048×14 224 20
PIC16F628A 2048 224 20
PIC16F630 1024 64 20
PIC16F648A 4096 256 20
PIC16F676 1024 64 20
PIC16F72 2048 128 20
PIC16F73 4096×14 192 20
PIC16F74 4096×14 192 20
PIC16F76 8192×14 368 20
PIC16F77 8192×14 368 20
PIC16F818 1024 128 20
PIC16F819 2048 256 20
PIC16F83 512×14 36 10
PIC16F84 1024×14 68 10
PIC16F84A 1024×14 68 10
PIC16F85 1024×14 128 20
PIC16F86 2048×14 128 20
PIC16F87 4096×14 192 20
PIC16F870 2048×14 128 20
PIC16F871 2048×14 128 20
PIC16F872 2048×14 128 20
PIC16F873 4096×14 192 20
PIC16F873A 4096×14 192 20
PIC16F874 4096×14 192 20
PIC16F874A 4096×14 192 20
PIC16F876 8192×14 368 20
PIC16F876A 8192×14 368 20
PIC16F877 8192×14 368 20
PIC16F877A 8192×14 368 20
PIC16F88 4096×14 192 20
PIC16F89 4096×14 192 20
PIC16HV540 512×12 25 20
PIC16LC74B 4096×14 192 16
PIC17C42 2048×16 232 33
PIC17C42A 2048×16 232 33
PIC17C43 4096×16 454 33
PIC17C44 8092×16 454 33
PIC17C752 8192×16 454 33
PIC17C756 16384×16 902 33
PIC17C756a 16384×16 902 33
PIC17C762 8192×16 678 33
PIC17C766 16384×16 902 33
PIC17CR42A 2048×16 232 33
PIC17CR43 2048×16 232 33
PIC17LC752 8192×16 678 16
PIC17LC756A 16384×16 902 16
PIC18C242 8192×16 512 40
PIC18C252 16384×16 1536 40
PIC18C442 8192×16 512 40
PIC18C452 16384×16 1536 40
PIC18C658 16384×16 1536 40
PIC18C801 — 1536 25
PIC18C858 16384×16 1536 40
PIC18F010 1024×16 256 40
PIC18F012 1024×16 256 40
PIC18F020 2048×16 256 40
PIC18F022 2048×16 256 40
PIC18F1220 2048 256 40
PIC18F1230 2048×16 256 40
PIC18F1320 4096 256 40
PIC18F1330 4096×16 256 40
PIC18F2220 2048 512 40
PIC18F232 8192×12 512 40
PIC18F2320 4096 512 40
PIC18F2331 4096×16 512 40
PIC18F242 8192×16 768 40
PIC18F2431 8192×16 768 40
PIC18F2450 8192×16 1024 40
PIC18F248 8192×16 768 40
PIC18F252 16384×16 1536 40
PIC18F2550 16384×16 1024 40
PIC18F258 16384×16 1536 40
PIC18F4220 2048 512 40
PIC18F432 8192×12 512 40
PIC18F4320 4096 512 40
PIC18F4331 4096×16 512 40
PIC18F442 8192×16 768 40
PIC18F4431 8192×16 768 40
PIC18F4450 8192×16 1024 40
PIC18F448 8192×16 768 40
PIC18F452 16384×16 1536 40
PIC18F4550 16384×16 1024 40
PIC18F458 16384×16 1536 40
PIC18F6520 16384×16 2048 40
PIC18F6585 24576 3072 40
PIC18F6620 32768×16 3840 40
PIC18F6680 32768 3072 40
PIC18F6720 65536×16 3840 40
PIC18F8520 16384×16 2048 40
PIC18F8585 24576 3072 40
PIC18F8620 32768×16 3840 40
PIC18F8680 32768 3072 40
PIC18F8720 65536×16 3840 40

 

     Для программирования контроллеров нужны компьютеp, пpогpамматоp, подключаемый к паpаллельному поpту компьютеpа, сама микpосхема контроллер (PIC16F84), макетная плата, 8 светодиодов, источник +5 В и панелька для микpосхемы. Простую и популярную программу PonyProg2000 можно скачать в разделе софт.

     ФОРУМ по микрорконтроллерам

   Схемы на микроконтроллерах

 

elwo.ru

Микроконтроллеры PIC16, общие сведения, организация памяти | RadioLaba.ru


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

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

Для написания программ на ассемблере в микроконтроллерах PIC16 используется 35 простых команд (инструкций), так что выучить и разобраться в них совсем не сложно. К статье прикрепил pdf файл с командами, для желающих изучить команды.

Большинство команд выполняются за один машинный цикл, но есть команды, для которых требуется два машинных цикла. Длительность машинного цикла равна 4 периодам тактового генератора. Например, если у нас стоит кварц на 4 МГц, то длительность машинного цикла равна 1 мкс, при частоте кварца в 20 МГц (что является максимумом для этих микроконтроллеров), машинный цикл равен 200 нс или 0,2 мкс.

В микроконтроллерах семейства PIC16 имеется 3 вида памяти: память программ, память данных и энергонезависимая память EEPROM.

Память данных состоит из регистров общего назначения (GPR) и регистров специального назначения (SFR). Все эти регистры однобайтные, и являются элементами оперативной памяти микроконтроллера, то есть хранят информацию только при наличии питания, операции с обоими типами регистров выполняется одними и теми же командами.

Регистры специального назначения предназначены для управления функциями ядра и периферийными модулями микроконтроллера, названия регистров одинаковы для всех типов микроконтроллеров семейства PIC16, что очень удобно при переходе с одного микроконтроллера на другой.

Регистры общего назначения используется как временная память при выполнении различных логических и вычислительных операций, проще говоря, это ОЗУ.

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

Чтобы обратиться к какому либо регистру (выполнить операцию над ним), необходимо сначала указать банк, в котором расположен этот регистр. Банк выбирается с помощью битов RP1, RP0 регистра STATUS, который определен во всех банках, то есть к регистру STATUS можно обращаться независимо от того какой банк выбран, что является очевидным, иначе мы не смогли бы переключать банки. Некоторые важные регистры специального назначения также определены сразу в нескольких банках. Регистры ОЗУ также могут быть определены в нескольких банках, на карте памяти данных при этом пишется “accesses 70h-7Fh” (Доступ к 70h-7Fh). В случае микроконтроллера PIC16F628A, к 16-ти регистрам, расположенным по адресам 70h-7Fh, можно обращаться независимо от выбранного банка. Все это относится к непосредственной адресации, кроме которой существует еще косвенная адресация. Вообще не стоит сильно пугаться этих банков, когда используется небольшое количество регистров ОЗУ, все операции в основном выполняются в одном банке (Банк 0), переключаться приходиться лишь при обращении к некоторым регистрам специального назначения.

Для реализации косвенной адресации используется регистр специального назначения FSR, а также физически не реализованный регистр INDF. Чтобы обратиться к какому-либо регистру (например PORTB), необходимо записать его адрес в регистр FSR, после чего содержимое регистра PORTB условно окажется в регистре INDF. Условно потому что обращение к регистру INDF на самом деле вызовет действие с регистром PORTB. Косвенную адресацию удобно применять при обращении к большому количеству регистров расположенных последовательно в памяти данных. Выполняя однотипную операцию с регистром INDF, с последующим инкрементом регистра FSR, можно прооперировать большое количество регистров. При использовании косвенной адресации также следует указать банк местонахождения регистра, адрес которого записывают в FSR. При данной адресации банк указывается одним битом IRP регистра STATUS, так как адресация работает в пределах 2-х банков. Если бит IRP сброшен (значение равно 0), можно обращаться к регистрам 0-го и 1-го банка, при установленном бите (значение равно 1), обращение идет к регистрам 2-го и 3-го банка.

В памяти программ располагается сам код программы в виде последовательности команд. Команды 14-ти разрядные, ячейку памяти программ еще называют словом. Например, у PIC16F628A объем памяти равен 2K x 14 слов (2048 х 14), то есть в памяти программ можно разместить 2048 команд. В счетчике команд PC находится адрес выполняемой команды, регистр счетчика 13-ти разрядный и разделен на два регистра: старший байт PCH и младший PCL, регистр PCL доступен для записи и чтения, он относится к регистрам специального назначения. Регистр PCH недоступен, все операции с ним выполняются через дополнительный регистр специального назначения PCLATH. Так как счетчик 13-ти разрядный, то в регистрах PCH и PCLATH используются только 5 бит. Всего с помощью 13-ти разрядов можно адресовать 8192 слова, поэтому это максимальный объем памяти программ для микроконтроллеров PIC16.

В ходе последовательного выполнения команд содержимое регистра PCL (адрес команды) автоматически инкрементируется, при переполнении происходит инкремент содержимого PCH. Если изменить содержимое регистра PCL, путем записи нового значения или выполнения арифметических операций, можно перескочить на другой участок кода программы, таким образом осуществляется вычисляемый переход. При использовании команд изменяющих значение регистра PCL, содержимое регистра PCLATH передается регистру PCH, то же самое происходит при выполнении команд GOTO и CALL.

Следует знать, что в случае вычисляемого перехода при переполнении регистра PCL (например, в результате операции сложения), регистр PCH не инкрементируется. Например, на момент сложения (прибавляем число 9) значение регистра PCL равнялось 250, а значение PCLATH равно 0, после выполнения команды в PCL будет лежать число 4, но инкремента PCH не произойдет, в PCH запишется число 0 из регистра PCLATH. Тем самым мы попадем на команду с адресом 4 (0004h) (PCH=xxx00000, PCL=00000100), вместо того чтобы попасть на команду с адресом 260 (0104h) (PCH=xxx00001, PCL=00000100). При использовании вычисляемого перехода необходимо предварительно записать значение в регистр PCLATH, после чего изменять значение PCL, или же просто не допускать переполнения PCL. Вычисляемый переход в основном используется для табличного чтения данных, описанного в статье таблица данных.

А теперь расскажу о страницах памяти, команды CALL и GOTO имеют 11-ти разрядное поле для указания адреса, поэтому можно спокойно применять эти команды в пределах 2048 слов (это размер одной страницы) памяти программ, не задумываясь о регистрах PCH и PCLATH. У микроконтроллера PIC16F628A объем памяти равен одной странице, поэтому там все просто. В микроконтроллерах с большей памятью при переходах с помощью команд CALL и GOTO необходимо заранее запрограммировать 3-й и 4-й бит в регистре PCLATH, чтобы попасть на нужный участок кода памяти программ.

Например, нам нужно попасть на метку PROG расположенную по адресу 3500 (0DACh) (PCH=xxx01101, PCL=10101100), этот адрес находится уже на первой странице памяти, до нее шла нулевая страница. Перед вызовом команды CALL PROG, 3-й и 4-й бит регистра PCLATH сброшены, после выполнения команды в регистре PCL будет лежать число 172 (PCL=10101100), так как поле задания адреса 11-ти разрядное, в регистр PCH запишется число 5, а в 3-й и 4-й бит запишутся нули из регистра PCLATH, тем самым мы попадем на команду с адресом 1452 (05ACh) (PCH=xxx000101, PCL=10101100). Чтобы правильно попасть на метку PROG, перед вызовом команды CALL PROG, необходимо установить 3-й бит регистра PCLATH в 1. Таким образом, 3-им и 4-ым битом мы выбираем одну из 4-х страниц памяти программ, в пределах страницы манипуляций с этими битами производить не надо.

При возврате из одной страницы в другую с помощью команд RETURN, RETLW изменять значение битов не требуется, так как стек 13-ти разрядный. Но надо учесть, что после выполнения этих инструкций, значение регистра PCLATH не изменяется (оно вообще никогда не изменяется само по себе), это справедливо и для инструкции возврата из подпрограммы обработки прерывания RETFIE, и если мы снова воспользуемся командами перехода, мы можем попасть не на тот участок кода. Поэтому перед выполнением команд перехода после инструкций возврата, необходимо правильно запрограммировать биты регистра PCLATH, или изменить их значение перед выполнением команды возврата.

Чтобы лучше разобраться с вычисляемым переходом и страницами памяти программ, можно поэкспериментировать в отладчике MPLAB.

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

Таблица команд ассемблера для микроконтроллеров PIC12,16

Последние записи:

radiolaba.ru