Лабораторная работа №1.
Тема: Ознакомление со средой отладки MPLAB. Организация ввода-вывода информации с портов микропроцессора.
Цель работы: научиться подключать библиотеки, создавать проект, добавлять файлы, изучить принцип работы портов ввода-вывода микропроцессора PIC16F877, а также принципов программирования при создании устройств управления по типу комбинационного автомата.
Ход работы.
Перед тем, как приступить работать со средой отладки, необходимо произвести несколько настроек среды, а также создать проект, о чем пойдет речь далее в этом документе, по пунктам:
(MP Lab и HT-TECH PIC 16 должны быть установлены )
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;
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.