Быстрый Старт с 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).

Соберите простую схему как показано на рисунке:

Принципиальная схема

  1. Подключите Модуль MPLAB-ICD к COM-порту компьютера и подайте на него напряжение питания. Светодиод на плате модуля может светиться или мигать.
  2. Запустите Интегрированную Среду разработки MPLAB.
  3. Options >> Development Mode >> Откроется диалог "Development Mode" >> В окне "Processor" выберите тип процессора PIC16F877 >> На вкладке "Tools" отметьте поле MPLAB-ICD Debugger >> Нажмите "Apply". Окно "Development Mode" можно закрыть.
  4. На этом этапе компьютер попытается установить связь с Модулем MPLAB-ICD. Откроется диалог "MPLAB-ICD".
  5. Если связь установлена корректно, то при нажатии кнопки "Reconnect" в поле "Status" будет появляться сообщение вида: EstComm<0>:port<0> baud<1>, где
  6. На жестком диске, в удобном месте создайте пустую Папку (Директорию/Каталог).
  7. Project >> New Project >> В открывшемся Диалоге "New Project":
  8. В открывшемся диалоге "Edit Project" Проверьте, чтобы в строке "Development Mode" было выбрано "MPLAB ICD PIC16F877". Проверьте, чтобы поле "Language Tool Suite" имело значение Microchip.
  9. File >> New >> Появится новое окно, с названием "Untitled".
  10. Сдвиньте диалог MPLAB-ICD в угол окна, чтобы он не мешал.
  11. В созданном вами окне введите исходный код программы из Листинга 1 (см. ниже)
  12. File >> Save As >> LED1.ASM (Имя файла с исходным кодом программы).
  13. В Диалоге MPLAB-ICD нажмите кнопку "Options". Откроется диалог "ICD Options". Установите или проверьте значения полей "Configuration Bits":
  14. Проверьте установки полей "Program Options":
  15. Закройте диалог "ICD Options".
  16. Project >> Make Project >> Будет выведено окно "Warning", напоминающее, что перед запуском собранной программы её необходимо "прошить" в Отлаживаемый кристалл. Нажмите кнопку "Close" в этом окне. Проверьте, чтобы в окне "Build Results" в заключение была строчка "Build completed successfully." Если это не так – ищите ошибки.
  17. В Диалоге MPLAB-ICD установите:
  18. В Диалоге MPLAB-ICD нажмите кнопку "Program". При отсутствии проблем со связью между Модулем MPLAB-ICD и Отлаживаемым кристаллом, по окончании записи в окне "Status" появится сообщение: "Waiting for user command".
  19. Выполните Debug >> Run >> Animate. (Клавиши Ctrl+F9)
  20. Для останова программы используйте Debug >> Run >> Halt. (Клавиша F5).
  21. Для запуска по шагам используйте Debug >> Run >> Step (Клавиша F7).
  22. Для запуска в реальном времени используйте Debug >> Run >> Run (Клавиша F9).
  23. Project >> Save Project (Сохраните проект).
  24. В случае Анимированного (Animate) выполнения программы светодиод будет мигать с некоторой скоростью, обусловленной общим быстродействием всей связки: Компьютер - Модуль – Отлаживаемый кристалл. Немаловажную роль в этом случае играет значение поля выбора модели считываемых регистров, т.к. после выполнения каждой инструкции процессор будет "сбрасывать" в компьютер значения указанных/выбранных регистров, и чем больше их количество, тем меньше будет результирующая скорость Анимированного выполнения программы.
  25. В случае запуска программы в режиме реального времени (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