Вариант 11 Лабораторная работа 05 |
250,00 ₽
Просмотров: 821
|
Тип работы: | Лабораторная работа |
Название предмета: | Микропроцессоры и цифровая обработка сигналов |
Тема/вариант: | Вариант 11 Лабораторная работа 05 |
Объем работы: | 4 |
ВУЗ: | СибГУТИ |
Дата выполнения: | 2013-08-23 |
Размер файла, тип файла: | 368.64 Kb, , H, C, LST, OBJ, HEX, LNP, M51, OPT, PLG, UV2, BAK, DOC |
Прикрепленные файлы: |
Курс 231Микропроцессоры и цифровая обработка сигналов (3997 Kb)
|
Лабораторная работа № 5
Разработка цифрового измерителя температуры
В качестве цифрового датчика температуры в схеме стенда используется цифровой датчик DS18B20 фирмы Dallas Semiconductor (D1), который с помощью однопроводного интерфейса подключен к разряду 7 порта P0. Для работы с температурным датчиком можно воспользоваться следующими готовыми файлами:
ADuC842.h – файл в котором описаны все регистры специальных функций ADuC842
dallas.c – модуль, для измерения температуры (на языке С)
dallas.h заголовочный файл с описанием функций модуля dallas.c
Перед созданием проекта нужно предварительно создать папку (например TEMP) и поместить в нее файлы ADuC842.h, dallas.c, dallas.h.
Далее с помощью среды Keil в этой папке создать двухмодульный проект с файлами main.c и dallas.c. Предварительно в файл main.c поместить свою программу. В модуле dallas.c описана функция GetTemp(), при обращении к которой происходит измерение температуры и присваивание ее значения этой функции. Температура измеряется в виде двухразрядного, положительного десятичного числа. Таким образом, для измерения температуры можно записать следующий оператор:
T=GetTemp();
Переменной Т будет присвоено значение измеренной температуры.
1. ЗАДАНИЕ К РАБОТЕ.
1.1. Разработать программу, измеряющую температуру в лаборатории с удаленным доступом и выводящую значение температуры на цифровой индикатор.
1.2. С помощью среды программирования Keil создать двухмодульный прект, состоящий из модулей main.c и dallas.c.
1.3. Определить реальную температуру в лаборатории.
1.4. Скопировать изображение стенды с результатами измерений в отчет.
Исходный текст программы
#include "ADuC842.h"
#include "dallas.h"
unsigned char digit0[10] = {0xB7, 0x14, 0x73, 0x76, 0xd4, 0x66, 0xe7, 0x34, 0xf7, 0xf6};
unsigned char digit2[10] = {0xD7, 0x11, 0xE3, 0x73, 0x35, 0x76, 0xf6, 0x13, 0xf7, 0x77};
void main() {
char t;
P0 = P2 = 0;
t = GetTemp();
P0 = digit0[t/10];
P2 = digit2[t%10];
while (1);
}
Сообщить другу