Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Thermometer(ElkinAlexanderCoorse.09-V1.2012).docx
Скачиваний:
30
Добавлен:
28.03.2015
Размер:
734.51 Кб
Скачать

2.1 Описание принципа действия и общий алгоритм работы

После подачи питания на устройство, микроконтроллер производит настройку портов, общее конфигурирование, например, отключение компаратора. После этого запускается основной цикл работы микроконтроллера. На этом этапе микроконтроллер дожидается нажатия клавиши «Старт/Останов» для начала измерений.

Вначале инициализируется термодатчик. Так как на линии только один датчик, отправляется команда интерфейса 1-Wireвыбора всех датчиков. Затем отправляется команда начала температурного преобразования. Так как для температурного преобразования нужно определенное время, микроконтроллер ожидает от датчика сигнала завершения температурного преобразования. Для этого он в цикле опрашивает состояние порта датчика, настроенного на ввод данных.

Настройка точности преобразования не производится, т.к. для данной работы достаточно точности 0.5 градуса Цельсия.

После получения сигнала завершения температурного преобразования, датчик вновь инициализируется и считывается содержимое его памяти.

Считанные данные преобразуются в вид, удобный для вывода на индикатор, определяется знак числа. Если оно отрицательное, то происходит преобразования из дополнительного кода в прямой код.

Затем происходит вывод данных на семисегментный индикатор.

Опрашивается порт, к которому подключена клавиша управления. Если клавиша нажата, микроконтроллер переходит в цикл ожидания.

2.2 Блок-схема работы микроконтроллера

3 Разработка функциональной и принципиальной схем устройства

3.1 Принципиальная схема устройства

Данная принципиальная электрическая схема — графическое изображение с помощью условных графических и буквенно-цифровых обозначений (пиктограмм) связей между элементами проектируемого устройства.

На ней видно как между собой связанны составные элементы системы: микроконтроллер, блок семисегментных индикаторов, термодатчиков.

В отличие от разводки печатной платы эта схема не показывает взаимного (физического) расположения элементов, эта лишь указывает на то, какие элементы с какими соединяются.

3.2 Функциональная схема устройства

Устройство управляется микроконтроллером PIC16f628. Для связи с семисегментным индикатором, используются выводыRA2,RA3,RA6 портаPORTAдля передачи номера позиции отображаемого символа и выводыRB0-RB6 портаPORTBдля включения конкретного сегмента.

Для связи с датчиком используется вывод RA1 портаPORTA.

Клавиша «Старт/Останов» подключена к порту RA7

  1. Разработка алгоритмов

    1. Алгоритм инициализации датчика

Для инициализации устройства интерфейса 1-Wireнеобходимо подать на устройство единичный импульс, «провалить» шину примерно на 500 мкс, затем возобновить единичный сигнал и подождать еще 500 мкс.

Код процедуры инициализации датчика:

void InitSensor(void)

{

// подаем на датчик высокий уровень, затем "проваливаем" шину

TRISA = 0xFF;

PORTA = 0x00;

TRISA = 0xFD;

Delay10Microsecond(50);

// высокий уровень

TRISA = 0xFF;

Delay10Microsecond(50);

}

    1. Алгоритм отправки байта данных датчику

Код процедуры отправки байта датчику

Для отправки единицы подается кратковременный низкий уровень, затем высокий уровень на 60 микросекунд.

Для отправки нуля подается сначала низкий уровень на 60 микросекунд, затем кратковременный высокий импульс.

void WriteByte(unsigned char outputByte)

{

unsigned char i;

for (i = 0; i < 8; i++)

{

if (outputByte & 0x01)

{

// Низкий уровень на датчик

PORTA = 0x00;

TRISA = 0xFD;

// Высокий уровень на 60 микросекунд

TRISA = 0xFF;

Delay10Microsecond(6);

}

else

{

// Низкий уровень на 60 микросекунд

PORTA = 0x00;

TRISA = 0xFD;

Delay10Microsecond(6);

// Отключить выводы порта

TRISA = 0xFF;

}

outputByte = outputByte>>1; // Обработка следущего разряда

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]