Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7sem / metods_7_sem_2.doc
Скачиваний:
30
Добавлен:
19.04.2015
Размер:
1.09 Mб
Скачать

Лабораторная работа №2. Исследование работы цап.

Тема:Цифро-аналоговое преобразование. Обработка данных.

Цель работы:Научиться обрабатывать и выводить аналоговую величину.

Учебная задача:Разработка программ вывода аналоговых величин для различных методов измерения.

Порядок выполнения лабораторной работы.

  1. Изучить комплекс МК-ЦАП.

  2. Разработать алгоритм для выполнения индивидуального задания.

  3. Разработать программу для выполнения индивидуального задания.

  4. Ввести программу индивидуального задания на ПК.

  5. С помощью ПОС проанализировать выполнение индивидуальной программы

  6. Загрузить программу в стенд ОЭВМ. Убедиться в правильном выполнении индивидуального задания, при отрицательном результате осуществить изменение алгоритма либо программы. Повторить загрузку программы в стенд ОЭВМ

  7. Распечатать листинг правильно работающей программы.

  8. Ответить на контрольные вопросы преподавателя

  9. Представить в отчете алгоритм работы программы.

Пример программы для работы с измерительным комплексом

Вывести на правую пару знакомест индикатора число 128d (ЦАП включен). Затем вывести ЦАП число 128d (2,5В) (индикатор выключен). Вывод данных и индикацию выполнять последовательно с задержкой 1с.

#include <avr/io.h> //Подключаем библиотеку ввода/вывода

#include <avr/delay.h>//Подключаем библиотеку задержки

unsigned int a=0;

int main (void){

DDRD=0b11111111; //

DDRC=0b11111111; //

a=128;

while(1)

{

_delay_ms(1000); //Задержка 1 с

PORTD=0b11101111; //

PORTC=a; //

_delay_ms(1000); //Задержка 1 с

PORTD=0b11111010; //

PORTC=a; //

}

}

  1. - Варианты индивидуальных заданий л.р. №2

№.вар

Текст индивидуального задания

Не четный

вариант

Занести в переменную aчисло0Xd, в переменнуюbчисло0Yd. Найти их сумму, затем умножить эту сумму на число 20d. Результат вывести на левую пару знакомест индикатора и ЦАП. Организовать вывод сигнала на индикатор с периодомX,Yсек, на ЦАП с периодомXY/Y сек. Вывод данных и индикацию выполнять последовательно. Организовать запуск системы по кнопкеSW1 и остановкуSW2.

Четный

вариант

Занести в переменную cчисло0Xd, в переменнуюdчисло0Yd. Найти их сумму, затем умножить эту сумму на число 20d. Результат вывести на правую пару знакомест индикатора и ЦАП. Организовать вывод сигнала на индикатор с периодомX,Yсек, на ЦАП с периодомXY/Y сек. Вывод данных и индикацию выполнять последовательно. Организовать запуск системы по кнопкеSW1 и остановкуSW3.

Где X– первая цифра номера варианта,Y– вторая цифра номера варианта.

Рисунок 2 - Схема для лабораторной работы №2.

Лабораторная работа №3. Программирование режимов обслуживания матричной клавиатуры.

Тема:Программирование режимов обслуживания матричной клавиатуры.

Цель работы:Научиться выполнять опрос матричной клавиатуры.

Учебная задача:Освоение методов программирования и работы с матричной клавиатурой.

Порядок выполнения лабораторной работы.

  1. Изучить систему работы матричной клавиатуры.

  2. Разработать алгоритм для выполнения индивидуального задания.

  3. Разработать программу для выполнения индивидуального задания.

  4. Ввести программу индивидуального задания на ПК.

  5. С помощью ПОС проанализировать выполнение индивидуальной программы

  6. Загрузить программу в виртуальный стенд ОЭВМ. Убедиться в правильном выполнении индивидуального задания, при отрицательном результате осуществить изменение алгоритма либо программы. Повторить загрузку программы в стенд ОЭВМ

  7. Распечатать листинг правильно работающей программы.

  8. Ответить на контрольные вопросы преподавателя.

  9. Представить в отчете алгоритм работы программы.

Пример выполнения лабораторной работы №3

Задание: реализовать опрос цифровой клавиатуры. Результат выводит в правую пару знакомест статического индикатора.

#include <avr/io.h> //Подключаем библиотеку ввода/вывода

#include <avr/delay.h>//Подключаем библиотеку задержки

unsigned int a=0, K_in=0, K_out=0, K_st=0;

int main (void);

int Keys (void);

int Keys (void)

{

PORTB = 0b00011111;

_delay_loop_2(10000);

K_st=PINB;

PORTB = 0x00;

switch(K_st){

case 0b00111111:

K_st=0;

break;

case 0b01011111:

K_st=1;

break;

case 0b10011111:

K_st=2;

break;

default:

a=0;

};

PORTB = 0b11100000;

_delay_loop_2(10000);

K_in=PINB;

PORTB = 0x00;

switch(K_in){

case 0b11100001:

K_out=1+K_st;

break;

case 0b11100010:

K_out=4+K_st;

break;

case 0b11100100:

K_out=7+K_st;

break;

case 0b11101000:

K_out=10+K_st;

break;

default:

a=0;

};

if (K_out==11){

K_out=0;

}

return K_out;

}

int main (void){

DDRA=0b11111111; //

DDRB=0b00000000; //

DDRC=0b11111111; //

DDRD=0b11111111; //

while(1)

{

PORTD=0b11111010; //

PORTC=Keys(); //

}

}

Соседние файлы в папке 7sem