Схема электрическая принципиальная к лабораторной работе. На рисунке 19.17 приведена схема электрическая принципиальная к лабораторной работе

На рисунке 19.17 приведена схема электрическая принципиальная к лабораторной работе.

Рисунок 19.17 – Схема электрическая принципиальная к лабораторной

работе № 19

Для ввода дискретной информации в МК широко применяются различные переключатели, кнопки и клавиатуры, либо иные дискретные датчики.

Дискретными выходами МК управляет различными исполнительными устройствами, работающими по принципу включено/выключено.

В схеме два дискретных датчика оформлены в виде двух переключателей SA1 и SA2, подключенных к выводам RA2 и RA3 МК.

Два дискретных выхода оформлены в виде двух светодиодов VD1 и VD2, подключенных к выводам RB15 и RB13 МК соответственно.

Алгоритм и листинг программы к заданию № 19. 1

Схема алгоритма для создания проекта LR19_1 представлена на
рисунке 19.18.

Рисунок 19.18 – Схема алгоритма программы к заданию № 19.1

Листинг (исходный код) программы на языке программирования С к заданию №1 для прошивки МК:

#include <P33FJ32MC204.h>

_FOSC(OSCIOFNC_ON & POSCMD_NONE)

//отключение дополнительной функции порта RA2 – выход

//тактирующего сигнала внутреннего генератора

int main()

{

TRISBbits.TRISB15 = 0; // настройка порта
//RB15 на выход

TRISBbits.TRISB13 = 0; // настройка порта
//RB13 на выход

TRISAbits.TRISA2 = 1; //настройка порта
//RA2 на вход

TRISAbits.TRISA3 = 1; //настройка порта
//RA3 на вход

while (1)

{

LATBbits.LATB15 = PORTAbits.RA2;

// установка соответствующего
// уровня сигнала на RB15

LATBbits.LATB13 = PORTAbits.RA3;

// установка соответствующего

// уровня сигнала на RB15

}

}

Алгоритм и листинг программы к заданию № 19. 2

Схема алгоритма для создания проекта LR19_2 представлена на рисунке 19.19.

Листинг (исходный код) программы на языке программирования С к заданию № 2 для прошивки МК:

#include <P33FJ32MC204.h>

_FOSC(OSCIOFNC_ON & POSCMD_NONE)

int main()

{

TRISBbits.TRISB15 = 0; // настройка порта
//RB15 на выход

TRISBbits.TRISB13 = 0; // настройка порта
//RB13 на выход

TRISAbits.TRISA2 = 1; // настройка порта
//RA2 на вход

TRISAbits.TRISA3 = 1; // настройка порта
//RA3 на вход

while (1)

{

if (PORTAbits.RA2 == PORTAbits.RA3)

{

LATBbits.LATB15 = 0;

LATBbits.LATB13 = 1;

}

else if (PORTAbits.RA2 == 1)

{

LATBbits.LATB15 = 0;

LATBbits.LATB13 = 0;

}

else if (PORTAbits.RA3 == 1)

{

LATBbits.LATB15 = 1;

LATBbits.LATB13 = 1;

}

}

}

Рисунок 19.19 – Схема алгоритма программы к заданию № 19.2

ЛАБОРАТОРНАЯ РАБОТА № 20
РЕАЛИЗАЦИЯ ВРЕМЕННЫХ ФУНКЦИЙ В МИКРОПРОЦЕССОРНЫХ СИСТЕМАХ НА БАЗЕ МИКроконтроллера семейства dsPIC33F

Цель работы

1 Изучить особенности программной и аппаратной реализации временных функций в микроконтроллерах (МК) семейства dsPIC33F.

2 Изучить режимы работы и порядок формирования таймеров МК семейства dsPIC33F.

3 Создать проект, составить исходный код программы реализации временных функций по заданному алгоритму, откомпилировать ее в среде MPLAB IDE 8, записать в память программ МК dsPIC33FJ32MC204 учебного стенда НТЦ-31.000 и выполнить.

4 Исследовать реализацию временных функций с помощью учебного стенда НТЦ-31.000.

Наши рекомендации