На рисунке 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.