Ознакомление со средой отладки MPLAB. Организация ввода-вывода информации с портов микропроцессора

Страницы работы

Содержание работы

Лабораторная работа №1.

Тема: Ознакомление со средой отладки MPLAB. Организация ввода-вывода информации с портов микропроцессора.

Цель работы: научиться подключать библиотеки, создавать проект, добавлять файлы,  изучить принцип работы портов ввода-вывода микропроцессора PIC16F877, а также принципов программирования при создании устройств управления по типу комбинационного автомата.

Ход работы.

               Перед тем, как приступить работать со средой отладки, необходимо произвести несколько настроек среды, а также создать проект, о чем пойдет речь далее в этом документе, по пунктам:

(MP Lab и HT-TECH PIC 16 должны быть установлены )

  1. Запустить MP Lab.
  2. Для создания проекта выбрать на панели инструментов Project, Project Wizard и далее следовать инструкциям мастера.


3.Выбрать тип программируемого микроконтроллера. В нашем случае PIC16F877/

 


4.Подключить библиотеки (выбрать HI-TECH PICC Toolsuite и прописать в каждом из четырех пунктов путь к файлу под именем PICC.EXE ,который будет находиться в папке BIN компилятора HT-TECH PIC 16).

 


5.Выбираем имя проекта и создаем директорию, в которой разместится наш проект.

 


6.В этом окошке можно подключить уже готовый (заранее набранный) текст программы и подпрограммы.

 


После нажатия на кнопку «Готово» появится окошко рабочей среды, в котором для компиляции готового проекта необходимо нажать на кнопку на панели инструментов под названием Build All. В появившемся окошке Output будет информация о скомпилированном проекте. Если это окошко не появилось автоматически, то его потребуется открыть вручную.

Это сделать  очень просто:

Нажмите View а затем Output.

Окошко рабочей среды выглядит так:

 


Пример программы.

Убедитесь, что вы подключили файл библиотеки cnf.h, если нет, то подключите.

 Для открытия добавленного файла необходимо в дереве папок в левом верхнем углу программы  щелкнуть дважды по требуемой пиктограмме и окошко файла развернется.

Программа будет опрашивать 4 кнопки портов (А4,А5,В4,В5) и отображать их состояние на 4 светодиодах, подключенных к порту В (В1,В2,В3,В4)

Текст програмы на языке С.откротия

//Эта программа позволяет реализовать ввод-вывод информации с портов мк//

//Таблица соответствия при нажатии клавиш//

//***********А4******А5******В4******В5******* В0******В1******В2******В3*******

//*           1         0               0               1               0        *        1               0               0             1             *

//*           2         0               0               0               1        *        0               1               1             0                 *

//*           3         1               0               0               0        *        1               1               1             0             *

//*           4         0               1               0               0        *        0               1               1             1             *

//********************************************************************************

#include<pic.h>                               //подключение библиотек

#include"Cnf.h"

//****************************************************************************//       

void main()                                       //основная часть программы

{

               TRISB = 0b11110000;     //инициализация порта В

               RBPU = 0;                          //втключение подтягивающих резисторов

               ADCON1=0X07;                              //конфигурирование выходов порта как цифровые

               TRISA4 = 1;                       //программирование битов 4 и 5 порта А на ввод

               TRISA5 = 1;

               RB0 = 0;                             //обнуление выводов порта В

               RB1 = 0;

               RB2 = 0;

               RB3 = 0;

//*****************инициализация бесконечного цикла**************************//

               for(;;)

               {            

                                             if((!RB4) && (RB5)&& (RA4)&& (RA5)) //если нажата RB4, то                                                                                                                             //выполняются команды

                                                                                                                        //в фигурных скобочках

                                             {            

                                             RB0 = 1;

                                             RB3 = 1;

                                             }

                                             if((RB4) && (!RB5)&& (RA4)&& (RA5))   //если нажата RB5, то                                                                                                                           //выполняются команды

                                                                                                                        //в фигурных скобочках

                                             {

                                             RB1 = 1;

                                             RB2 = 1;

                                             }

                                             if((RB4) && (RB5)&& (!RA4)&& (RA5))   //если нажата RА4, то                                                                                                                           //выполняются команды

                                                                                                                        //в фигурных скобочках

                                             {

                                             RB0 = 1;

                                             RB1 = 1;

                                             RB2 = 1;

                                             }

                                             if((RB4) && (RB5)&& (RA4)&& (!RA5))   //если нажата RА5, то                                                                                                                           //выполняются команды

                                                                                                                        //в фигурных скобочках

                                             {

                                             RB1 = 1;

                                             RB2 = 1;

                                             RB3 = 1;

                                             }

Похожие материалы

Информация о работе