- •Цифровые и микропроцессорные устройства
- •Часть 4
- •07.04 2014 Г., протокол № 10
- •Введение
- •Лабораторная работа № 12составление линейных и циклических программ на языке ассемблер Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •Лабораторная работа № 13обучение работе на симуляторе микропроцессора Sim8085 Microprocessor Simulator
- •Содержание отчета
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •2 Индивидуальное задание № 14. 1
- •3 Индивидуальное задание № 14. 2
- •4 Индивидуальное задание № 14. 3
- •Лабораторная работа № 15логические команды и команды сдвига Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Команды сравнения
- •Команды сдвига
- •Индивидуальное задание № 15. 1
- •Индивидуальное задание № 15. 2
- •Индивидуальное задание № 15. 3
- •Лабораторная работа № 16 команды управления Цель работы
- •Подготовка и выполнение работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •1 Теоретическое обоснование
- •2 Индивидуальное задание № 16. 1
- •3 Индивидуальное задание № 16. 2
- •Лабораторная работа № 17обучение работе в интегрированной среде mplab ide
- •Содержание отчета
- •Контрольные вопросы
- •Методические указания
- •1 Структурная схема учебного стенда нтц – 31.000
- •2 Органы управления учебного стенда
- •Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •1. 2 Общий формат инструкций и директив
- •1. 3 Директивы Ассемблера
- •1.4 Числовые константы и системы счисления
- •2 Тренировочный пример составления исходного кода программы
- •Лабораторная работа № 19исследование устройств ввода-вывода дискретных сигналов в микропроцессорных системах на базе миКроконтроллера семейства dsPic33f Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •1 Краткие теоретические сведения
- •2 Схема электрическая принципиальная к лабораторной работе
- •3 Алгоритм и листинг программы к заданию № 19. 1
- •4 Алгоритм и листинг программы к заданию № 19. 2
- •Лабораторная работа № 20реализация временных функций в микропроцессорных системах на базе миКроконтроллера семейства dsPic33f Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •1 Краткие теоретические сведения
- •1.1 Реализация временных функций
- •1.2 Метод программных циклов
- •1.3 Использование таймера/счётчика
- •1.4 Схема электрическая принципиальная к лабораторной работе
- •1. 5 Листинг программы для создания проекта lr20_1
- •1.6 Листинг программы для создания проекта lr20_2
- •1.7 Листинг программы для создания проекта lr20_3
- •Литература
- •Содержание
- •Цифровые и микропроцессорные устройства
- •Часть 4
1.4 Схема электрическая принципиальная к лабораторной работе
Для ввода дискретной информации в микроконтроллер широко применяются различные переключатели, кнопки и клавиатуры, либо иные дискретные датчики.
Дискретными выходами микроконтроллер управляет различными исполнительными устройствами, работающими по принципу включено/выключено.
На рисунке 20.17 приведена схема электрическая принципиальная к лабораторной работе.
Рисунок 20.17 – Схема электрическая принципиальная
В схеме два дискретных датчика оформлены в виде двух переключателей SA1 и SA2, подключенных к выводам RA2 и RA3 микроконтроллера.
Два дискретных выхода оформлены в виде двух светодиодов VD1 и VD2, подключенных к выводам RB15 и RB13 микроконтроллера соответственно.
|
1. 5 Листинг программы для создания проекта lr20_1
#include <P33FJ32MC204.h>
#define FOSC 7370000
#define FCY (FOSC / 2) // Настройка частоты выполнения
// инструкций
_FOSCSEL(FNOSC_FRC) //Настройка работы микроконтроллера
//от внутреннего тактового генератора
void main()
{
TRISBbits.TRISB15 = 0; // Выход VD1 (RB15)
while (1)
{
__delay32(FCY); //Организация временной задержки
LATBbits.LATB15 = 1;
__delay32(FCY);
LATBbits.LATB15 = 0;
}
}
1.6 Листинг программы для создания проекта lr20_2
#include <P33FJ32MC204.h>
_FOSCSEL(FNOSC_FRC) // Настройка работы микроконтроллера
// от внутреннего тактового генератора
// Инициализация таймера T1
void Init_Timer1()
{
T1CON = 0; // Сброс таймера
IFS0bits.T1IF = 0; // Сброс флага прерывания таймера
IEC0bits.T1IE = 1; // Разрешение прерывания от таймера
TMR1 = 0x0000; // Обнуление текущего значения таймера
PR1 = 0x0E65; // Задание периода таймера
T1CONbits.TON = 1; // Разрешение работы таймера и
// Его запуск
}
int _ms = 0;
void __attribute__((interrupt, no_auto_psv)) _T1Interrupt()
// Прерывание таймера T1 по совпадению
{
_ms++;
IFS0bits.T1IF = 0; // Сброс флага прерывания таймера
TMR1 = 0; // Перезапуск таймера
}
void main()
{
Init_Timer1();
TRISBbits.TRISB15 = 0; // Выход VD1 (RB15)
while (1)
{
if (_ms < 1000)
{
LATBbits.LATB15 = 0;
}
else if (_ms < 2000)
{
LATBbits.LATB15 = 1; }
else
{
_ms = 0;
}
}
}
1.7 Листинг программы для создания проекта lr20_3
#include <p33fj32mc204.h>
#define FOSC 7370000
#define FCY (FOSC/2)
_FOSC(OSCIOFNC_ON & POSCMD_NONE)
//Отключение дополнительной функции порта RA2 – выход
// тактирующего сигнала внутреннего генератора
_FOSCSEL(FNOSC_FRC) // Настройка работы от
// внутреннего тактового
// генератора
void __delay32(unsigned long cycles);
int main()
{
TRISBbits.TRISB15 = 0; // Выход VD1 TRISBbits.TRISB13 = 0; // Выход VD2
TRISAbits.TRISA2 = 1; // Вход SA1
TRISAbits.TRISA3 = 1; // Вход SA2
while (1)
{
if (PORTAbits.RA2 == 1 && PORTAbits.RA3 == 1)
//Если тумблеры SA1 и SA2 одновременно включены
{
__delay32(FCY);
LATBbits.LATB15 = 1;
LATBbits.LATB13 = 0;
__delay32(FCY);
LATBbits.LATB15 = 0;
LATBbits.LATB13 = 1;
}
else
{
LATBbits.LATB15 = 0;
LATBbits.LATB13 = 0;
}
}
}
|