Каталог статей

Главная » Все схемы » Теория » Изучаем микроконтроллеры

Выбранная схема!!!


539
Создание программ для микроконтроллеров PIC. Шаг 2.
Установите программу MPLAB 5.70.40 и сам пакет Proteus VSM. Материал к статье тут. Желательно начать везжать
в программирование с книги “Самоучитель”, что находится в архиве.
Теперь мы можем приступить к написанию простейшей программы для PIC. Выберем к примеру микроконтроллер PIC16F84A, он лучше всех подходит для экспериментов начинающим программистам. Еще нам нужен светодиод и кнопка.
Задача: передать сигнал из кнопки на светодиод (на первый взгляд дурацкая, но для примера то, что нужно). И так запустим проект «Less_2» в ISIS, перед вами должна появится картинка как на рис.1, правда с небольшим дополнением (добавлен элемент «НЕ» и резистор подтяжки).

Жмем на кнопку плей внизу и смотрим что происходит. Если нажать кнопку в схеме, то сигнал логической 1 падает в логический 0 (потенциал с резистора закорачивается на корпус), дальше этот ноль поступает на вход логического элемента «НЕ» который на выходе дает противоположное значение — логическую 1 и поступает на вход микроконтроллера А0. Так как программа все время работает, она просто перебрасывает значение порта А на порт В. (см. рис.2).

Теперь попробуем разобраться как все таки работает сама программа, чтобы было более понятно и наглядно. Для этого остановим проект и нажмем на кнопку «пауза», после этого должно появится окно исходника программы как показано на рис.3.

Симулятор перешел в пошаговый режим исполнения команд программы. Зайдите теперь в вкладку ISIS «Отладка» и выберите 4-ый пункт «PIC CPU Registers», должно появится еще одно окно как показано на рис.4.

Теперь мы готовы к пошаговому исполнению кода. Посмотрите на состояние битов регистра PORTB в окне «PIC CPU Registers», оно может иметь случайное значение, в моем случае PORTB=00000111. Нажмите один раз F11 (только сделайте активным окно исходника) и вы выполните первую команду «CLRF PORTB». Посмотрите как изменится состояние PORTB после выполнения этой команды (он будет равен 00000000). Для удобства наблюдения за схемой сделайте расстановку окон например как на рис.5.

Теперь посмотрите на значения 5-го бита (считать нужно справа налево начиная с нулевого бита) регистра STATUS, он сейчас равен нулю. А следующая команда как раз заставит этот бит стать в единицу. Жмем F11 и убеждаемся в этом, теперь мы в первом банке, а были в нулевом. Теперь можно менять содержимое всех нужных нам регистров в этом банке. А нам нужны только два — TRISB и TRISA, чтобы настроить их согласно нашей задаче. Мы видим следующую команду CLRF TRISB, это настраивает PORTB на выход, нужно запомнить простую вещь — ноль это вывод на выход, единица — на вход. И так смотрим в окошко «PIC CPU Registers» жмем один раз F11 и смотрим как регистр TRISB стал равным 00000000. Есть! PORTB настроен на выход! Далее мы видим команду MOVLW B'00000001'. Эта команда заносит так сказать константу определенную программистом. Снова смотрите в окошко «PIC CPU Registers» какое содержимое аккумулятора W? И каким оно станет после нажатия F11? Все верно, там стало нужное нам число 00000001. Теперь мы перенесем его в регистр TRISA, жмем F11 и вывод PORTA,0 настроен на вход, куда мы и поцепили нашу кнопку через логический элемент «НЕ». Дальше следует команда BCF STATUS,5, что переведет нас в нулевой банк. Все, настройки мы сделали, и теперь можем спокойно изучить самый интересный кусочек нашей программы. Он начинается с метки Start, название этой метки может быть любым, каким вы пожелаете. Мы подобрались к команде MOVF PORTA,W, она считывает состояние входов PORTA, в нашем случае нам интересен только вывод А0. Давайте нажмем на красненький кружочек возле самой кнопки, это зафиксирует ее в нажатом положении, и даст возможность
удобно следить за работой программы. Жмем еще раз F11, мы выполнили команду MOVF PORTA,W но из-за инерционности срабатывания кнопки микроконтроллер не воспринял нажатие и передал в аккумулятор значение 00000000. Это нормально. Жмем F11 дальше, и выполняем команду MOVWF PORTB. Все верно — светодиод не горит, жмем и возвращаемся на первую команду после метки Start, на этот момент логическая единица на выводе А0 уже успела сформироваться и программа с легкостью переносит ее на светодиод :). Чтобы запустить в реальном времени программу нажмите F12. Наслаждайтесь работой программы и хорошо изучите ее.

Категория: Изучаем микроконтроллеры | Добавил: Habble (06.11.2010)
Просмотров: 8127 | Комментарии: 2 | Теги: ar | Рейтинг: 5.0/3


Всего комментариев: 2
0
2 Habble   (12.12.2010 16:35) [Материал]
Да, желательно, но это зависит от версии, например у меня версия 7.7, работает очень стабильно.

Пожалуйста остав

0
1 andr-yildler   (12.12.2010 03:06) [Материал]
Работая с этой прогой как можно чаще сохраняйтесь

Пожалуйста остав

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2025