Микроконтроллеры PICmicro |
Начальные сведения
Микроконтроллеры содержат в себе постоянную память программ, ОЗУ данных, и некоторые модели содержат EEPROM (электрически стираемое ППЗУ) данных. Контроллеры с буквой 'F' в маркировке (например PIC16F627) могут быть перепрограммированны не меньше тысячи раз. В них программа записывается в память типа Flash. EEPROM можно перепрограммировать около ста тысяч раз. Память программ в контроллере с буквой 'C' (например PIC16C84) можно запрограммировать только один раз. Отладку программы для такого контроллера необходимо производить на отладочных микроконтроллерах, которые имеют память программ с ультрафиолетовым стиранием. Перед очередным программированием такой микроконтроллер нужно помещать под специальную УФ-лампу (обычно на 3-5 минут).

При программировании микроконтроллера ваша программа помещается в память программы. При включении микроконтроллера команды будут по одной считываться из памяти и выполняться друг за другом. Вектор сброса - это адрес, с которого начнется выполнение программы после сброса. Сброс микроконтроллера происходит при включении, а также при логическом НИЗКОМ уровне на выводе MCLR.
Что такое PICmicro?
PICmicro - это серия 8-битных микроконтроллеров, выпускаемых фирмой Microchip, имеющих одинаковые архитектуру и набор команд. Микроконтроллеры PICmicro группируются по размеру инструкции:
- Base Line: 12-битные инструкции.
- Mid-Range: 14-битные инструкции.
- High-End: 16-битные инструкции.
Архитектура
Микроконтроллеры имеют Гарвардскую архитектуру. Это означает, что доступ к памяти данных и памяти программы осуществляется раздельно.
Как видно из рисунка, при использовании Гарвардской архитектуры размер инстукции может быть больше 8 бит. Размер любой инструкции соответствует размеру слова программной памяти. Инструкция считывается и выполняется за один цикл.
Командный цикл выполняется за 4 такта. Эти четыре такта называют Q1, Q2, Q3 и Q4. Тактирование производится со входа OSC1 (или со внутреннего генератора). На Q1 инкрементируется счетчик программы (PC). Остальные 3 такта инструкция копируется из программной памяти в командный регистр. Одновременно, в течение всего цикла выполняется инструкция, помещенная в командный регистр за прошлый цикл.
Пример подключения PIC16F627
Контроллер питается от напряжения от 3.0 до 5.5 Вольт (для f=20МГц), потребляет от 0.7 до 200 мА (сильно зависит от тактовой частоты и подключенных нагрузок).
Простейшая схема подключения:

Программирование микроконтроллера
Составить программу на ассемблере можно в любом текстовом редакторе, сохранив как неформатированный текст в файл с расширением 'asm'. Удобнее воспользоваться средой MPLab.
MPLab - интегрированная среда разработки для процессоров PICmicro. Скачиваем MPLab с http:\\www.microchip.com. Устанавливаем. Запускаем. Командой File\New создаем новый файл (пока без проекта). В созданном окне редактирования можно набирать текст программы. В составе MPLab есть стандартный PIC-ассемблер MPASM.
Пример программы:
;***********************************************
;* Пример программы для PIC16F627.
;* Версия от 1 января 2001г.
;***********************************************
; Все, что правее точки с запятой - это комментарии.
; Сообщаем компилятору название микроконтроллера.
PROCESSOR PIC16F627
; Подключаем файл с определениями "p16f627.inc".
; Загляните в него, он находится в папке Mplab.
#include <p16f627.inc>
; Задаем слово конфигурации микроконтроллера.
__CONFIG _BODEN_ON & _CP_ALL & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF & _INCRC_OSC_NOCLKOUT
org 0x20 ; Адрес начала ОЗУ.
; Резервируем 1 байт ОЗУ для хранения каких-либо значений.
fREGISTER res 1
ORG 0x000 ; Адрес выполнения первой команды
goto start ; Переход на команду по адресу 'start'
; Метка 'start' - это адрес следующей за меткой команды.
start:
; Помещаем в аккумулятор W константу (десятичное число 15).
movlw d'15'
; Копируем значение W в регистр fREGISTER.
movwf fREGISTER
; Переходим на метку 'start' (заносим в счетчик команд адрес 'start').
goto start
; Программа будет выполняться по кругу вечно.
end
Хотя эта программа ничего не делает (кроме того, что запоминает в fREGISTER число 15), она поможет разобраться в процессе программирования.
Когда вы набрали и сохранили эту или свою программу, ее нужно откомпилировать. В среде MPLAB это можно сделать выбрав пункт меню 'Project/Build Node', или нажав Alt+F10. Если вы пишете в обычном редакторе, запустите 'mpasmwin.exe', выберите ассемблируемый файл нажав на кнопку 'Browse...', далее 'Assemble'.
Результат ассемблирования должен сохраниться в файле с расширением 'hex'. Остается только запустить ПО вашего программатора, выбрать тип процессора, загрузить результирующий файл, вставить микросхему в программатор и нажать кнопку программирования.
Продолжение следует...
