Быстрый
Старт с MPLAB-ICD.
Шаг
первый.
PIC16F877.
Мигающий светодиод.

При изучении
микроконтроллеров наиболее трудно
сделать Первый Шаг. Подчас очень
непросто найти необходимый минимум
информации, позволяющий начать
работать с прибором. Если вы первый
раз столкнулись с прибором - начало
работы с ним похоже на блуждание по
объемному лабиринту. Вы знаете, что
выход из лабиринта существует, но
найти его сложно из-за большого
объема материала и отсутствия
опыта.
Для начала работы
нам потребуется:
1. Модуль MICD или фирменный MPLAB-ICD с
кАбелями.
2. Установленная Интегрированная
Среда Разработки MPLAB-IDE v5.xx.xx
(доступна бесплатно на www.microchip.com)
3. Источник питания +9v (от +7v до +24v)
для питания Модуля MPLAB-ICD.
4. Микроконтроллер PIC16F877 в корпусе DIP
(наиболее удобно).
5. Кварц 4 МГц (можно любой,
оказавшийся под рукой, но не более
максимальной тактовой частоты
выбранного экземпляра PIC).
Соберите простую
схему как показано на рисунке:

- Подключите
Модуль MPLAB-ICD к COM-порту
компьютера и подайте на него
напряжение питания. Светодиод
на плате модуля может
светиться или мигать.
- Запустите
Интегрированную Среду
разработки MPLAB.
- Options >> Development
Mode >> Откроется диалог
"Development Mode" >> В окне
"Processor" выберите тип
процессора PIC16F877 >> На
вкладке "Tools" отметьте
поле MPLAB-ICD Debugger >> Нажмите
"Apply". Окно "Development Mode"
можно закрыть.
- На этом этапе
компьютер попытается
установить связь с Модулем
MPLAB-ICD. Откроется диалог
"MPLAB-ICD".
- Светодиод
на плате Модуля MPLAB-ICD
должен мигнуть и затем
светиться не мигая.
- Равномерное
мигание светодиода
указывает на отсутствие
связи с компьютером. В этом
случае тщательно
проверьте подключение
Модуля MPLAB-ICD к требуемому
COM-порту, наличие
напряжения питания,
исправность кабеля,
установки драйвера
COM-порта и отсутствие
конфликтов с другими
устройствами.
- Отсутствие
подключения к
Отлаживаемому
микроконтроллеру не будет
служить причиной
отсутствия связи Модуля
MPLAB-ICD с компьютером.
- Если связь
установлена корректно, то при
нажатии кнопки "Reconnect" в
поле "Status" будет
появляться сообщение вида:
EstComm<0>:port<0> baud<1>, где
- EstComm<0> -
Код ошибки (0 = без ошибок).
- port<0> -
Номер COM-порта (0 = COM1, 1 = COM2
…… 3 = COM4).
- baud<1> -
Скорость (0 = 19200 бод, 1 = 56700
бод).
- На жестком
диске, в удобном месте создайте
пустую Папку
(Директорию/Каталог).
- Project >> New Project
>> В открывшемся Диалоге
"New Project":
- В поле
"Directories" укажите путь
к созданной папке.
- В поле
"File Name" укажите
название файла (например,
LED1.PJT)
- Нажмите
"Ok".
- В открывшемся
диалоге "Edit Project"
Проверьте, чтобы в строке
"Development Mode" было выбрано
"MPLAB ICD PIC16F877". Проверьте,
чтобы поле "Language Tool Suite"
имело значение Microchip.
- В поле
"Project Files"
"ткните" мышкой
(выделите) название .HEX
файла (например, LED1.HEX).
- Add Node >>
введите название файла,
который будет содержать
исходный код программы
(например, LED1.ASM) .>>
Нажмите "Ok".
- В Диалоге
"Edit Project" нажмите
"Ok".
- File >> New >>
Появится новое окно, с
названием "Untitled".
- Сдвиньте диалог
MPLAB-ICD в угол окна, чтобы он не
мешал.
- В созданном
вами окне введите исходный код
программы из Листинга 1 (см.
ниже)
- File >> Save As
>> LED1.ASM (Имя файла с исходным
кодом программы).
- В Диалоге MPLAB-ICD
нажмите кнопку "Options".
Откроется диалог "ICD Options".
Установите или проверьте
значения полей "Configuration
Bits":
- "Device" -
PIC16F877
- "Oscillator"
- XT
- "Watchdog
Timer" - Off/Disable
- "Power Up
Timer" - On/Enable
- "Brown out
Detect" - Off/Disable
- "Low Voltage
Program" - Disable
- "Code Protect
Data EE" - code protection off
- "Flash Memory
Write" - Memory written to by EECON
- "Code
Protect" - Code Protection Off
- Проверьте
установки полей "Program
Options":
- "Start
Address" - 0x0000
- "End
Address" - 0x1EFF
- "Program
Memory" - да
- "Configuration
Bits" - да
- "ID
Locations" - да
- "EEPROM
Data" - нет
- "Erase all bef.
Program" - да
- "Enable Debug
Mode" - да
- Закройте диалог
"ICD Options".
- Project >> Make Project
>> Будет выведено окно
"Warning", напоминающее, что
перед запуском собранной
программы её необходимо
"прошить" в Отлаживаемый
кристалл. Нажмите кнопку
"Close" в этом окне.
Проверьте, чтобы в окне "Build
Results" в заключение была
строчка "Build completed successfully."
Если это не так – ищите ошибки.
- В Диалоге MPLAB-ICD
установите:
- В поле
значения диапазона
допустимых тактовых
частот значение,
соответствующее частоте
выбранного кварцевого
резонатора. Для частоты в
4MHz это значение
"2MHz…10MHz".
- В поле
выбора модели считываемых
регистров значение "Minimum
(FSR,PCLATH,STAT,W) Это увеличит
скорость анимированного
выполнения программы.
- В Диалоге MPLAB-ICD
нажмите кнопку "Program". При
отсутствии проблем со связью
между Модулем MPLAB-ICD и
Отлаживаемым кристаллом, по
окончании записи в окне
"Status" появится сообщение:
"Waiting for user command".
- Выполните Debug
>> Run >> Animate. (Клавиши Ctrl+F9)
- Для останова
программы используйте Debug >>
Run >> Halt. (Клавиша F5).
- Для запуска по
шагам используйте Debug >> Run
>> Step (Клавиша F7).
- Для запуска в
реальном времени используйте
Debug >> Run >> Run (Клавиша F9).
- Project >> Save Project
(Сохраните проект).
- В случае
Анимированного (Animate)
выполнения программы
светодиод будет мигать с
некоторой скоростью,
обусловленной общим
быстродействием всей связки:
Компьютер - Модуль –
Отлаживаемый кристалл.
Немаловажную роль в этом
случае играет значение поля
выбора модели считываемых
регистров, т.к. после
выполнения каждой инструкции
процессор будет
"сбрасывать" в компьютер
значения указанных/выбранных
регистров, и чем больше их
количество, тем меньше будет
результирующая скорость
Анимированного выполнения
программы.
- В случае
запуска программы в режиме
реального времени (Run)
светодиод будет мигать с
частотой, значительно выше
воспринимаемой глазом
человека. Для наблюдения
используйте осциллограф.
;================ Начало LED1.ASM ================
;Файл: LED1.ASM
;Версия программы: 1.01
;Дата последней модификации: 02.02.2002
;http://u1.chat.ru
processor 16F877 ;Используемый процессор.
radix dec ;Десятичная система счисления по умолчанию.
include "p16f877.inc" ;Заголовочный файл для микроконтроллера PIC16F877.
;Файл расположен в директории установленной MPLAB-IDE.
org 0x0000 ;Вектор сброса процессора, после сброса программа
;начинает выполняться отсюда.
nop ;Этот nop жизненно необходим для корректной работы MPLAB-ICD
clrf INTCON ;Перестраховываемся, запрещаем все прерывания.
clrf PCLATH ;Перестраховываемся, выбираем Bank 0 Памяти Программ.
goto Start ;Обход вектора прерывания и блока подпрограмм.
org 0x0004 ;Вектор прерывания.
;********** Начало обработчика прерываний **********
;В этой простой программе не используются прерывания
;********** Конец обработчика прерываний************
;***************** Блок подпрограмм ****************
;В этой простой программе нет подпрограмм
;************* Конец блока подпрограмм *************
Start ;Тело программы начинается здесь.
;********** Начало Инициализации процессора ********
clrf PORTD ;Все выводы PORTD переводим в '0'
movlw b'00100000' ;
movwf STATUS ;Выбираем Bank 1 RAM (адреса 80h - FFh)
movlw b'00000000' ;
movwf TRISD ;Все линии PORTD переключаем на выход
clrf STATUS ;Возвращаемся в Bank 0 RAM (адреса RAM 00h - 7Fh)
;********** Конец Инициализации процессора *********
Loop bsf PORTD,7 ;Зажигаем Светодиод
nop ;Тянем время...
nop ;...
nop ;...
bcf PORTD,7 ;Гасим светодиод
nop ;Тянем время...
nop ;...
nop ;...
goto Loop ;Бесконечный цикл.
END ;Конец исходного кода программы
;============= Конец LED1.ASM =====================
|
Все
вопросы, замечания и предложения
можно направить сюда: 
На главную страницу www
5v.ru