Проекты на pic: PIC — Страница 2 — radiohlam.ru

RPM meter на pic16F84 — Законченные проекты

Давно хотел сбе такую вещь, очень нужно(мне начинающем) отслеживать обороты шпинделя, на метале, люминьке,дереве,пластике,текстолите,…чтоб знать на будущие что есть хорошо а что есть плохо.

 

Набpeл, на сайт.. http://www.jeffree.co.uk/pages/revmaster.htm

Cобрал, все классно и легко и приятно,лениво даже менять исходник под свои надписи-большое спасибо мужику!!

 

Теперь нюнасы…

1)Pic прошивать с своей конфигурациой XC(т.е. Кварц)

2)Питание у LCD 2×16 разное у меня на столе-есть 6 LCD, 2 из 6-и :pin1- плюс, pin2- земля, pin3 констраст,остальные 4-е :pin1 земля,pin2 плюс,pin3 констраст,убедится что все так а то попалить экрaнчик не велика проблема.

3)Eдинственное сложно для доставания это кварц на 3,27MHZ, да и то купил без проблем,с другим кварцем-низя ибо замеры по времени буду не те, не путать с кварцем на 0,327MHZ- как в часах….

 

Теперь глобально…

по сути это частотометр

можно выставить замер 1 на оборот,6 на оборот, 60 на оборот, конечно 60 самое точное.Выставляeтся перемычками.

Интересная фишка что данную схему мжно исползовать как частотометр(на 60) до 22 Khz.

 

Теперь а как все таки снимать замер скорости с вала шпинделя…,оптикой, магнитным датчиком это дело ваше. 1,6,60.

У меня щелевые опторары выдерживают до 10Khz,лениво покупать более быстрые..поставил энкодер на 60 штрихов до 10Krpm тянул OK,, потом фронт пульса не читаем..На 6 все ок,на 1 все ок но и точноcть замера падает(оставим на более быстрые шпинделя 1OKrpm up).

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

 

Материал для энкодера разные от CD болванки,тонкого текстолита,…. я делал из печатной платы на 60штрихов ,и на 6 штрихов делал из диска убитого винта(очень удобно).

 

Encoder design program Scott Boskovich -очень простая прога для данной цели.

 

 

Есть Печатная плата(Sprint-lay) но делал на быструю руку -стыдновато, могу по желанию присобачить.

 

P.s. да, экран спецом поставил наискосок-прикольнее так, ИМХО.

 

 

Прошивка PIC микроконтроллеров с «нуля». / Микроконтроллеры / Блоги по электронике

Итак, пришло время изучать микроконтроллеры, а потом и их программировать, а так же хотелось собирать устройства на них, схем которых сейчас в интернете ну просто море. Ну нашли схему, купили контроллер, скачали прошивку….а прошивать то чем??? И тут перед радиолюбителем, начинающим осваивать микроконтроллеры, встает вопрос – выбор программатора! Хотелось бы найти оптимальный вариант, по показателю универсальность — простота схемы — надёжность. «Фирменные» программаторы и их аналоги были сразу исключены в связи с довольно сложной схемой, включающей в себя те же микроконтроллеры, которые необходимо программировать. То есть получается «замкнутый круг»: что бы изготовить программатор, необходим программатор.
Вот и начались поиски и эксперименты! В начале выбор пал на PIC JDM. Работает данный программатор от com порта и питается от туда же. Был опробован данный вариант, уверенно запрограммировал 4 из 10 контроллеров, при питании отдельном ситуация улучшилась, но не на много, на некоторых компьютерах он вообще отказался что либо делать да и защиты от «дурака» в нем не предусмотрено. Далее был изучен программатор Pony-Prog. В принципе, почти тоже самое что и JDM.Программатор «Pony-prog», представляет очень простую схему, с питанием от ком-порта компьютера, в связи с чем, на форумах, в Интернете, очень часто появляются вопросы по сбоям при программировании того, или иного микроконтроллера. В результате, выбор был остановлен на модели «Extra-PIC». Посмотрел схему – очень просто, грамотно! На входе стоит MAX 232 преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах с уровнями ТТЛ или КМОП, не перегружает по току COM-порт компьютера, так как использует стандарт эксплуатации RS232, не представляет опасности для COM-порта.
Вот первый плюс!
Работоспособен с любыми COM-портами, как стандартными (±12v; ±10v) так и с нестандартными COM-портами некоторых моделей современных ноутбуков, имеющих пониженные напряжения сигнальных линий, вплоть до ±5v – еще плюс! Поддерживается распространёнными программами IC-PROG, PonyProg, WinPic 800 (WinPic800) и другими – третий плюс!
И питается это все от своего собственного источника питания!
Было решено – надо собирать! Так в журнале Радио 2007 №8 был найден доработанный вариант этого программатора. Он позволял программировать микроконтроллеры в двух режимах.
Известны два способа перевода микроконтроллеров PICmicro в режим программирования:
1.При включённом напряжении питания Vcc поднять напряжение Vpp (на выводе -MCLR) от нуля до 12В
2.При выключенном напряжении Vcc поднять напряжение Vpp от нуля до 12В, затем включить напряжение Vcc
Первый режим — в основном для приборов ранних разработок, он накладывает ограничения на конфигурацию вывода -MCLR, который в этом случае может служить только входом сигнала начальной установки, а во многих микроконтроллерах предусмотрена возможность превратить этот вывод в обычную линию одного из портов. Это еще один плюс данного программатора. Схема его приведена ниже:

Крупнее
Все было собрано на макетке и опробовано. Все прекрасно и устойчиво работает, глюков замечено небыло!
Была отрисована печатка для этого программатора.
depositfiles.com/files/mk49uejin
все было собрано в открытый корпус, фото которого ниже.


Соединительный кабель был изготовлен самостоятельно из отрезка восьмижильного кабеля и стандартных комовских разьемах, никакие нуль модемные тут не прокатят, предупреждаю сразу! К сборке кабеля следует отнестись внимательно, сразу избавитесь от головной боли в дальнейшем. Длина кабеля должна быть не более полутора метров.
Фото кабеля

Итак, программатор собран, кабель тоже, наступил черед проверки всего этого хозяйства на предмет работоспособности, поиск глюков и ошибок.
Сперва наперво устанавливаем программу IC-prog, которую можно скачать на сайте разработчика www.ic-prog.com, Распакуйте программу в отдельный каталог. В образовавшемся каталое должны находиться три файла:
icprog.exe — файл оболочки программатора.
icprog.sys — драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы.
icprog.chm — файл помощи (Help file).
Установили, теперь надо бы ее настроить.
Для этого:
1.(Только для Windows XP): Правой кнопкой щёлкните на файле icprog.exe. «Свойства» >> вкладка «Совместимость» >> Установите «галочку» на «Запустить программу в режиме совместимости с:» >>выберите «Windows 2000».
2.Запустите файл icprog.exe. Выберите «Settings» >> «Options» >> вкладку «Language» >> установите язык «Russian» и нажмите «Ok».
Согласитесь с утверждением «You need to restart IC-Prog now» (нажмите «Ok»). Оболочка программатора перезапустится.
Настройки» >> «Программатор

1.Проверьте установки, выберите используемый вами COM-порт, нажмите „Ok“.
2.Далее, „Настройки“ >> „Опции“ >> выберите вкладку „Общие“ >> установите „галочку“ на пункте „Вкл. NT/2000/XP драйвер“ >> Нажмите „Ok“ >> если драйвер до этого не был устновлен на вашей системе, в появившемся окне „Confirm“ нажмите „Ok“. Драйвер установится, и оболочка программатора перезапустится.
Примечание:
Для очень „быстрых“ компьютеров возможно потребуется увеличить параметр „Задержка Ввода/Вывода“. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы.
3.»Настройки» >> «Опции» >> выберите вкладку «I2C» >> установите «галочки» на пунктах: «Включить MCLR как VCC» и «Включить запись блоками». Нажмите «Ok».
4.«Настройки» >> «Опции» >> выберите вкладку «Программирование» >> снимите «галочку» с пункта: «Проверка после программирования» и установите «галочку» на пункте «Проверка при программировании». Нажмите «Ok».
Вот и настроили!
Теперь бы нам протестировать программатор в месте с IC-prog. И тут все просто:
Далее, в программе IC-PROG, в меню, запустите: Настройки >> Тест Программатора

Перед выполнением каждого пункта методики тестирвания, не забывайте устанавливать все «поля» в исходное положение (все «галочки» сняты), как показано на рисунке выше.
1.Установите «галочку» в поле «Вкл. Выход Данных», при этом, в поле «Вход Данных» должна появляться «галочка», а на контакте (DATA) разъёма X2, должен установиться уровень лог. «1» (не менее +3,0 вольт). Теперь, замкните между собой контакт (DATA) и контакт (GND) разъёма X2, при этом, отметка в поле «Вход Данных» должна пропадать, пока контакты замкнуты.
2.При установке «галочки» в поле «Вкл. Тактирования», на контакте (CLOCK) разъёма X2, должен устанавливаться уровень лог. «1». (не менее +3,0 вольт).
3.При установке «галочки» в поле «Вкл. Сброс (MCLR)», на контакте (VPP) разъёма X3, должен устанавливаться уровень +13,0… +14,0 вольт, и светиться светодиод D4 (обычно красного цвета).Если переключатель режимов поставить в положение 1 то будет светится светодиод HL3
Если при тестировании, какой-либо сигнал не проходит, следует тщательно проверить весь путь прохождения этого сигнала, включая кабель соединения с COM-портом компьютера.
Тестирование канала данных программатора EXTRAPIC:
1. 13 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
2. 12 вывод микросхемы Da1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
3. 6 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
3. 1 и 2 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
4. 3 вывод микросхемы DD1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
5. 14 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
Если все тестирование прошло успешно, то программатор готов к эксплуатации.
Для подключения микроконтроллера к программатору можно использовать подходящие панельки или же сделать адаптер на основе ZIF панельки (с нулевым усилием прижатия), например как здесь radiokot.ru/circuit/digital/pcmod/18/.
Теперь несколько слов про ICSP — Внутрисхемное программирование
PIC-контроллеров.
При использовании ICSP на плате устройства следует предусмотреть возможность подключения программатора. При программировании с использованием ICSP к программатору должны быть подключены 5 сигнальных линий:
1. GND (VSS) — общий провод.
2. VDD (VCC) — плюс напряжение питания
3. MCLR’ (VPP)- вход сброса микроконтроллера / вход напряжения программирования
4. RB7 (DATA) — двунаправленная шина данных в режиме программирования
5. RB6 (CLOCK) Вход синхронизации в режиме программирования
Остальные выводы микроконтроллера не используются в режиме внутрисхемного программирования.
Вариант подключения ICSP к микроконтроллеру PIC16F84 в корпусе DIP18:

1.Линия MCLR’ развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
2.Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
3.Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
4.Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
Расположение выводов ICSP у PIC-контроллеров:

Эта схема только для справки, выводы программирования лучше уточнить из даташита на микроконтроллер.
Теперь рассмотрим прошивку микроконтроллера в программе IC-prog. Будем рассматривать на примере конструкции вот от сюда rgb73.mylivepage.ru/wiki/1952/579
Вот схема устройства

вот прошивка
Прошиваем контроллер PIC12F629. Данный микроконтроллер для своей работы использует константу osccal — представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ, которая записана в последней ячейке данных пика. Подключаем данный микроконтроллер к программатору.
Ниже на сриншоте красными цифрами показана последовательность действий в программе IC-prog.

1. Выбрать тип микроконтроллера
2. Нажать кнопку «Читать микросхему»
В окне «Программный код» в самой последней ячейке будет наша константа для данного контроллера. Для каждого контроллера константа своя!Не сотрите ее, запишите на бумажку и наклейте ее на микросхему!
Идем далее

3. Нажимаем кнопку «Открыть файл…», выбираем нашу прошивку. В окне программного кода появится код прошивки.
4. Спускаемся к концу кода, на последней ячейке жмем правой клавишей мыши и выбираем в меню «править область», в поле «Шестнадцатеричные» вводим значение константы, которую записали, нажимаем «ОК».
5. Нажимаем «программировать микросхему».
Пойдет процесс программирования, если все прошло успешно, то программа выведет соответствующее уведомление.
Вытаскиваем микросхему из программатора и вставляем в собранный макет. Включаем питание. Нажимаем кнопку пуск.Ура работает! Вот видео работы мигалки
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
С этим разобрались. А вот что делать если у нас есть файл исходного кода на ассемблере asm, а нам нужен файл прошивки hex? Тут необходим компилятор. и он есть — это Mplab, в этой программе можно как писать прошивки так и компилировать. Вот окно компилятора

Устанавливаем Mplab
Находим в установленной Mplab программу MPASMWIN.exe, обычно находится в папке — Microchip — MPASM Suite — MPASMWIN.exe
Запускаем ее. В окне (4) Browse находим наш исходник (1) .asm, в окне (5) Processor выбираем наш микроконтроллер, нажимаем Assemble и в той же папке где вы указали исходник появится ваша прошивка .HEX Вот и все готово!
Надеюсь эта статья поможет начинающим в освоении PIC контроллеров! Удачи!

Самоучитель по программированию PIC контроллеров

В 2006-м году возникло у меня желание освоить ассемблер для PIC микроконтроллеров. Решение осваивть именно PIC-и сформировалось не случайно. Для начала всего лишь 35 команд ассемблера. Запомнить наизусть их можно за несколько дней применяя на практике, при написании собственной программы. Или же просто заучить, пользуясь даташитом на любой из PIC контроллеров. Благо, что часть документации доступна на русском языке.

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

В сети много сайтов с микроконтроллерной тематикой, но часто эта информация выложена в виде этакого винигрета, в котором разобраться, имея нулевой опыт в программировании чипов очень трудно.
После запуска схемы «первый проект на микроконтроллере» — мигания светодиодом начался судорожный поиск дельной информации. И совершенно случайно, рыская по сети в поисках информации по очередной схеме из журнала «Радио» (частотомер Денисова) вышел на сайт Евгения Корабельникова.

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

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

Если Вам нужен быстрый старт и программирование на ассемблере для PIC контроллеров, то рекомендую сайт Евгения Александровича.



Самоучитель по программированию PIC контроллеров для начинающих 

(руководство по конструированию устройств на микроконтроллерах)

Автор: Корабельников Евгений Александрович         г. Липецк




Общие замечания по стратегии «въезда».

«Самоучитель…» составлен таким образом, что, в случаях наличия каких-то неясностей, возникающих после прочтения предыдущих разделов, в последующих разделах, они постепенно проясняются за счет дополнительной информации. На первичной стадии «въезда», главное — понять смысл, а все остальное к нему, со временем, приложится.

Содержание


Введение
1.   Готовим инструменты. Изготовление программатора и работа с ним.
2.   Что такое микроконтроллер, и как он работает.
3.   Система команд PIC16F84A.
4.   Что такое программа и правила ее составления. Пример создания программы автоколебательного мультивибратора. Директивы. Принципиальная схема мультивибратора
5.   Интегрированная среда проектирования MPLAB IDE и работа в ней.
6.   Что дальше?
7.   Пример создания программы (начало).
8.   Пример создания программы (продолжение).
9.   Работа в симуляторе. Отладка программы.
10. Как отследить выполнение программы
11. Прерывания. Стек. Пример разработки программы с уходом в прерывания.
12. Организация вычисляемого перехода. Работа с EEPROM памятью данных.
13. Флаги. Работа с флагами. Как работает цифровой компаратор. Перенос и заем.
14. Пример задействования флага С в трехбайтном суммирующем устройстве. Циклический сдвиг. Операция умножения.
15. Введение в принцип построения подпрограммы динамической индикации. Косвенная адресация.
16. Преобразование двоичных чисел в двоично-десятичные. Окончательное формирование текста подпрограммы динамической индикации.
17. Принцип счета. Работа с таймером TMR0. Принцип установки групп команд счета в текст программы.
Заключение

Скачать самоучитель
287 страниц в формате PDF
размер файла 3,21 Мб

Скачать приложения
Приложения к самоучителю с сайта автора
формат PDF
размер файла 2,5 Мб


Скачать MPLAB версии 5.70.40
файл на файлообменнике
размер архива 25 Мб

Микроконтроллеры 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

Главная страница проекта Picprojects


Дополнительный Информация

  • Печать Рисунок печатной платы

  • Для поддержка проектов на этом сайте посетите Picprojects Форум поддержки

  • Связаться Picprojects

  • Как сделать создавать файлы HEX с помощью MPLAB IDE

  • Многократное движение Светодиоды от вывода PIC I / O

  • ICSP Информация для программирования

  • Где купить ПИК программатор

  • Заявление об ограничении ответственности и Условия использования


  • Если вы построить PIC Project и хотите сказать спасибо, как насчет того, чтобы сделать небольшой пожертвование?

Главная страница проекта Picprojects


Дополнительный Информация

  • Печать Рисунок печатной платы

  • Для поддержка проектов на этом сайте посетите Picprojects Форум поддержки

  • Связаться Picprojects

  • Практические инструкции создавать файлы HEX с помощью MPLAB IDE

  • Многократное движение Светодиоды от вывода PIC I / O

  • ICSP Информация для программирования

  • Где купить ПИК программатор

  • Заявление об ограничении ответственности и Условия использования


  • Если вы построить PIC Project и хотите сказать спасибо, как насчет того, чтобы сделать небольшой пожертвование?

Последние идеи и темы проектов микроконтроллеров Pic

Получите самый широкий список проектов микроконтроллеров PIC для вашего обучения и исследований.В наш список входит широкий спектр проектов на основе PIC для студентов, исследователей и инженеров. Мы постоянно исследуем проекты PIC и перечисляем инновационные темы и идеи в Интернете для дальнейшей разработки изображений.
Название PIC изначально было аббревиатурой от «Peripheral Interface Controller». Хотя аббревиатура осталась прежней, позже название было изменено на «Программируемый интеллектуальный компьютер». Эти микроконтроллеры PIC в основном используются студентами-любителями и преподавателями из-за их низкой стоимости, особенно в области электроники и робототехники.Микроконтроллеры PIC популярны из-за широкой доступности, низкой стоимости, простоты перепрограммирования с помощью встроенной EEPROM, большого разнообразия информации, доступной в Интернете, множества инструментов программирования на основе изображений и поддержки сообщества для разработки систем на основе PIC. Таким образом, студенты, инженеры и исследователи также создают множество проектов на основе микроконтроллеров PIC. Первые части семейства были доступны в 1976 году; к 2013 году компания поставила более двенадцати миллиардов отдельных деталей, используемых во многих встраиваемых системах.Сегодня многие студенты-инженеры и энтузиасты проявляют большой интерес к проектам встраиваемых систем, в которых используются микроконтроллеры PIC. Среди всех микроконтроллеров PIC наряду с 8051 долгое время были наиболее распространенными разновидностями. Микроконтроллер PIC наиболее известен среди непромышленных применений из-за низкой стоимости. Популярность микроконтроллеров PIC привела к увеличению количества разработок проектов микроконтроллеров PIC. NevonProjects предоставляет множество идей и тем проектов для микроконтроллеров pic для изучения и изучения исследований.

Нужен индивидуальный проект / система PIC?



Прочая электроника Категории проектов

Nevonprojects является одним из пионеров исследований в области проектов на базе микроконтроллеров PIC. Мы предлагаем новейшие идеи и темы проектов микроконтроллеров PIC для студентов, инженеров и исследователей. Наши исследователи каждый месяц постоянно исследуют новые проекты микроконтроллеров PIC. Получите проекты микроконтроллеров PIC с исходным кодом для обучения и исследований.У нас есть большое количество проектов на основе PIC для обучения и руководства. Наш список инновационных проектов PIC представляет собой сборник проектов на основе PIC, которые созданы для выполнения различных промышленных, а также домашних приложений и автоматизации различных ручных задач. Наши комплекты для самообучения на основе PIC включают в себя все детали системы с объяснением принципиальной схемы и объяснением разработки исходного кода, а также руководствами по созданию всего комплекта проекта для вашего понимания разработки системы.Наши исследователи постоянно ищут лучшие темы и идеи по микроконтроллеру PIC, ожидающие реализации.




Home — Справка разработчика

Переключить навигацию

  • Инструменты разработки
    • Какие инструменты мне нужны?
    • Программные инструменты
      • Начни здесь
      • MPLAB® X IDE
        • Начни здесь
        • Установка
        • Введение в среду разработки MPLAB X
        • Переход на MPLAB X IDE
          • Переход с MPLAB IDE v8
          • Переход с Atmel Studio
        • Конфигурация
        • Плагины
        • Пользовательский интерфейс
        • Проектов
        • Файлы
        • Редактор
          • Редактор
          • Интерфейс и ярлыки
          • Основные задачи
          • Внешний вид
          • Динамическая обратная связь
          • Навигация
          • Поиск, замена и рефакторинг
          • Инструменты повышения производительности
            • Инструменты повышения производительности
            • Автоматическое форматирование кода
            • Список задач
            • Сравнение файлов (diff)
            • Создать документацию
        • Управление окнами
        • Сочетания клавиш
        • Отладка
        • Контроль версий
        • Автоматизация
          • Язык управления стимулами (SCL)
          • Отладчик командной строки
          • (MDB)
          • IDE Scripting с Groovy
        • Устранение неполадок
        • Работа вне MPLAB X IDE
        • Другие ресурсы
      • Улучшенная версия MPLAB Xpress
      • MPLAB Xpress
      • MPLAB IPE
      • Программирование на C
      • Компиляторы
      • MPLAB® XC
        • Начни здесь
        • Компилятор
        • MPLAB® XC8
        • Компилятор
        • MPLAB XC16
        • Компилятор
        • MPLAB XC32
        • Компилятор
        • MPLAB XC32 ++
        • Кодовое покрытие
        • MPLAB
      • Сборщики
      • IAR C / C ++ Компилятор
      • Конфигуратор кода MPLAB (MCC)
      • MPLAB Harmony версии 2
      • MPLAB Harmony версии 3
      • Atmel® Studio IDE
      • Atmel START (ASF4)
      • Advanced Software Framework v3 (ASF3);
        • Начни здесь
        • ASF3 Учебники
          • ASF Audio Sine Tone Учебное пособие
          • Интерфейсный ЖК-дисплей
          • с SAM L22 MCU Учебное пособие
      • Блоки устройств MPLAB® для Simulink®
      • Утилиты
      • Инструменты проектирования
      • FPGA
      • Аналоговый симулятор MPLAB® Mindi ™
    • Аппаратные средства
      • Начни здесь
      • Сравнение аппаратных средств
      • Инструменты отладки и память устройства
      • Исполнительный отладчик
      • Демонстрационные платы и стартовые наборы
      • Внутрисхемный эмулятор
      • MPLAB® REAL ICE ™
      • Эмулятор
      • SAM-ICE JTAG
      • Внутрисхемный эмулятор
      • Atmel® ICE
      • Отладчик мощности
      • MPLAB® ICD 3 внутрисхемный отладчик
      • MPLAB® ICD 4 внутрисхемный отладчик
      • Внутрисхемный отладчик
      • PICkit ™ 3
      • MPLAB® PICkit ™ 4 Внутрисхемный отладчик
      • MPLAB® Snap
      • MPLAB PM3 Универсальный программатор устройств
      • Принадлежности
        • Заголовки эмуляции и пакеты расширения эмуляции
        • Пакеты расширения процессора
        • и заголовки отладки
          • Начни здесь
          • PEPs и обзор заголовков отладки
          • Требуемый список заголовков отладки
            • Таблица обязательных отладочных заголовков
            • AC162050, AC162058
            • AC162052, AC162055, AC162056, AC162057
            • AC162053, AC162054
            • AC162059, AC162070, AC162096
            • AC162060
            • AC162061
            • AC162066
            • AC162083
            • AC244023, AC244024
            • AC244028
            • AC244045
            • AC244051, AC244052, AC244061
            • AC244062
          • Необязательный список заголовков отладки
            • Дополнительный список заголовков отладки — устройства PIC12 / 16
            • Дополнительный список заголовков отладки — Устройства PIC18
            • Необязательный список заголовков отладки — устройства PIC24
          • Целевые следы заголовка отладки
          • Отладочные подключения заголовков
      • SEGGER J-Link
      • Решения для сетевых инструментов
      • K2L
      • Консультации по проектированию средств разработки
      • Ограничения отладки
      • — микроконтроллеры PIC
      • Инженерно-технические примечания (ETN) [[li]] Встроенные платформы chipKIT ™
  • Проектов
    • Начни здесь
    • Преобразование мощности
      • AN2039 Четырехканальный секвенсор питания PIC16F1XXX
    • 8-битные микроконтроллеры PIC®
    • 8-битные микроконтроллеры AVR®
    • 16-битные микроконтроллеры PIC®
    • 32-битные микроконтроллеры SAM
    • 32-разрядные микропроцессоры SAM
      • Разработка приложений SAM MPU с помощью MPLAB X IDE
      • Примеры пакетов программного обеспечения
      • SAM MPU
    • Запланировано дополнительное содержание…
  • Продукты
    • 8-битные микроконтроллеры PIC
    • 8-битные микроконтроллеры AVR
      • Начни здесь
      • Структура 8-битного микроконтроллера AVR®
      • 8-битные периферийные устройства AVR®
        • Осциллятор
        • USART
        • прерываний
        • аналоговый компаратор и опорное напряжение
        • Таймер / счетчики
        • Внутренний датчик температуры
        • Работа с низким энергопотреблением
        • Сброс источников
      • Начало работы с микроконтроллерами AVR®
      • Использование микроконтроллеров AVR® с Atmel START
      • Запланировано дополнительное содержание…
    • 16-битные микроконтроллеры PIC и dsPIC DSC
      • Начни здесь
      • Обзор 16-разрядной архитектуры
      • Двухъядерный контроллер
      • dsPIC33CH
      • CPU и набор инструкций
      • Память
        • Программная память
        • Память данных
      • Периферийные устройства
        • Сводка по 16-битной периферии
        • Цифровой ввод / вывод
        • Интеллектуальный аналог
        • Контроль формы волны
        • Сроки и измерения
        • Безопасность и мониторинг
        • Связь
        • Пользовательский интерфейс
        • Защищенные данные
        • Гибкость системы и низкое энергопотребление
      • прерываний
      • MCU и конфигурация осциллятора
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *