Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratorny_praktikum_chast_4_A5_dorabotanny.docx
Скачиваний:
122
Добавлен:
13.02.2016
Размер:
4.75 Mб
Скачать

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

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

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

работе № 19

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

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

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

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

3 Алгоритм и листинг программы к заданию № 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

}

}

4 Алгоритм и листинг программы к заданию № 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