Разработка системы управления кондиционером

Программа mwlow записывает в слот нулевое значение. Действие подпрограммы сводится к формированию в пределах слота отрицательного импульса длительностью 80 мкс.

Подпрограмма mwhi чуть сложнее. Она выполняет запись в слот единичного значения. Действие подпрограммы начинается с формирования синхроимпульса длительностью 5 мкс. Для формирования такой длительности производится однократное обраще

ние к подпрограмме Delay. После завершения синхроимпульса формируется задержка 75 мкс. Эта задержка доводит длительность слота до стандартной величины.

Подпрограмма Dely служит для формирования временных интервалов. Как видно из текста подпрограммы, она представляет собой один оператор nор и завершается командой выхода из подпрограммы. Такая подпрограмма обеспечивает задержку, примерно равную 5 мкс. Подпрограмму Delay удобно использовать при формировании относительно больших задержек по времени, включая вызов этой подпрограммы в тело пустого цикла. Команда пор не выполняет абсолютно никаких действий. В то же время, ее выполнение занимает один машинный цикл микроконтроллера. При тактовой частоте, равной 12 МГц, длительность машинного цикла будет одна микросекунда (12/12 = 1 мкс). В микросхеме АТ89С2051 частота тактового генератора делится на 12. Для формирования небольших временных интервалов достаточно нескольких операторов пор, поставленных подряд друг за другом. Для более длительных интервалов применяется пустой цикл. Цикл просто выполняет несколько пустых операторов определенное число раз. В представленных здесь подпрограммах широко используются оба способа формирования временных интервалов. В качестве счетчика цикла используется специальная ячейка памяти, обозначенная в программе, как LoopCnt.

Подпрограмма wr8LAN выводит содержимое байта, полученного через аккумулятор, бит за битом в режиме записи. Именно поэтому описываемая подпрограмма представляет собой, по сути, цикл для передачи битов. Регистр r1 используется в качестве параметра цикла. Начальное значение r1 равно восьми (по числу битов в байте). Выполнение цикла начинается с команды извлечения очередного бита. Для этого содержимое аккумулятора сдвигается вправо при помощи команды rrс. Действие этой команды приводит к тому, что очередной бит оказывается в ячейке признака переноса CY.

Затем программа оценивает значение этого бита. Если он равен единице, вызывается подпрограмма записи единицы в слот mwhi. В противном случае вызывается подпрограмма mwlow для записи в слот нуля. После выполнения одной из этих программ управление передается по метке wb3. В этой строке находится команда организации цикла. Она передает управление на начало цикла, если это не последний бит, и завершает цикл, если бит последний.

Подпрограмма wr1LAN предназначена для передачи по шине одного бита в режиме записи. Эта подпрограмма очень похожа на wr8LAN. Отличие только в отсутствии цикла. Бит информации, предназначенный для передачи по шине 1-Wire, передается в подпрограмму через ячейку CY. В зависимости от значения этого бита выполняется либо подпрограмма mwhi, либо mwlow.

Подпрограмма rd8LAN предназначена для чтения одного байта по шине 1-Wire. Программа возвращает прочитанный байт в аккумулятор. Основная часть подпрограммы — это цикл ввода битов. В качестве параметра цикла используется регистр r1. Первая команда, выполняемая в теле цикла — вызов подпрограммы чтения слота. Она помещает прочитанный бит в ячейку CY. Затем бит помещается в аккумулятор методом сдвига. Сдвиг производится при помощи команды rrс. После каждого такого сдвига в аккумулятор «вдвигается» очередной прочитанный бит. После восьми циклов сдвига аккумулятор будет содержать полноценный прочитанный байт. Оператор djnz служит для организации всего этого цикла.

Подпрограмма rdlLAN предназначена для чтения одного бита из линии 1-Wire. Она вызывает подпрограмму чтения слота mrslot.

В ОЗУ микроконтроллера температура записана в двоичном виде. Перед нами стоит задача: перевести это значение из двоичной системы в десятичную. И лишь затем вывести его на экран.

Для двоично-десятичного преобразования удобно использовать команду целочисленного деления div. Для того, чтобы осуществить двоично-десятичное преобразование, нужно выполнить целочисленное деление исходного числа на 10. После такой операции аккумулятор будет содержать частное, а регистр b — остаток от деления. Частное будет соответствовать количеству десятков, а остаток — количеству единиц в десятичном представлении числа.

Затем можно просто вывести на экран два этих числа. Сначала содержимое аккумулятора, а затем содержимое регистра b. В результате, на экране мы получим изображение целой части значения температуры в десятичном виде. Такой простой метод преобразования будет правильно работать только в том случае, если целая часть числа не превышает значения 99. При большем значении температуры в старшем разряде полученного десятичного числа будут появляться буквы: частное от деления будет больше 10. Однако для измерения температуры помещения диапазона (0 .60)°С вполне достаточно. Для реализации описанного алгоритма разработана подпрограмма prtmp. Подпрограмма prtmp читает два байта температуры из буфера bufLAN и выводит значение целой части температуры на экран в десятичном виде.

Подпрограмма reoh обеспечивает режим охлаждения работы кондиционера. Она дискретно (с интервалом в 3мин.) вклычает и выключает компрессор и вентилятор и анализирует разницу Туст и Тпм. Если Тпм меньше Туст на 2 градуса в течении двух циклов работы кондиционера в режиме охлаждения, то кондиционер переходит в режим обогрева (подпрограмма reoh с помощью аккумулятора переходит к метке in4 основной программы). Если нет, то кондиционер остается в режиме охлаждения (переходит к метке in5). Подпрограмма reoh так же вызывает подпрограмму zader ( если клавиша нажата, то переход с помощью аккумулятора к метке in1).

Подпрограмма reob обеспечивает режим обогрева работы кондиционера. Она не представлена в приложении 1, но работает аналогично подпрограмме reoh (включает и выключает не компрессор, а нагревательный элемент).

ЗАКЛЮЧЕНИЕ

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

Разработанная система управления позволяет поддерживать заданную температуру в помещении, удовлетворяет основным требованиям: обеспечивает экономичность, низкую стоимость, простоту в использовании и минимальные затраты на эксплуатацию.

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

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13 


Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы