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

 

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

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

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

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

 

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

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

 

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

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

Листинг (исходный код) программы на языке программирования С к заданию №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.18 – Схема алгоритма программы к заданию №1

 

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

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

 

 

 

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

 

Листинг (исходный код) программы на языке программирования С к заданию №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;

}

}

}

 

ЛАБОРАТОРНАЯ РАБОТА №20

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

Цель работы

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

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

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

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