|
|
З
|
а
|
м
|
а
|
ч
|
и
|
в
|
А
|
н
|
и
|
е
|
|
|
Т
|
е
|
м
|
п
|
е
|
р
|
|
4
|
0
|
|
В
|
р
|
е
|
м
|
я
|
Время каждую минуту убывает на единицу и по достижению нулевого значения
переходит на следующий шаг.
Во время исполнения режима клавиатура не блокируется и мы можем с помощью
клавиш “+” ,“-“ изменять значение времени для данного режима.
3. Выбор элементной базы
Для реализации заданной МПС необходимы следующие элементы:
- Микроконтроллер Aduc812.
- ЖКИ фирмы Hitachi
серии 44780
3 инвертора
датчик температуры
Нагревательный элемент (электрическая спираль) с блоком
управления
Насос с БУ
Двигатель с БУ
Клапан с БУ.
Шести кнопочная клавиатура для задания необходимых параметров .
ЖКИ фирмы Hitachi
серии 44780
Датчики уровня воды
Стабилизатор K145EH5A.
.1 Выбор Контроллера
Для реализации МПС выбран МК Aduc812. Это контроллер по своим параметрам полностью подходит для выполнения
поставленной задачи, имеет небольшую стоимость , и программируется на языке PL/M-51.
Технические характеристики:
Общее описание:
Микроконтроллер ADuC812: интегральная 12- разрядная система сбора
информации ,включающая в себя 3 счетчика таймера, 8-ми канальный 12-ти
разрядный АЦП и два 12-ти разрядных ЦАП, 8 Кб FLASH ПЗУ, 640 байт FLASH данных, 256 Байт внутреннего ОЗУ. Позволяет
адресовать 16 Мб внешнего ОЗУ и 64 Кб памяти программ. Система прерываний имеет
9 источников, 2 уровня приоритетов.
Память
8 Кбайт Flash памяти программ
байт Flash памяти данных
Внутренний генератор подкачки заряда
байт внутренней памяти данных
Мбайт пространства внешней памяти данных
Кбайт пространства внешней памяти программ
Аналоговый ввод/вывод
8-канкльный прецизионный 12-разрядный АЦП
Встроенный 200ppm/oC ИОН
Высокая скорость выборок 200 к SPS
Контроллер канала ПДП к внешней памяти данных
Два 12-разрядных ЦАП с вольтовым выходом
Внутренний температурный сенсор
МГц номинальная частота [16 МГц- макс.]
Три 16-разрядных счетчика/таймера
программируемые линии ввода/вывода.
Порт с высоким током -Порт 3
источников прерываний, 2 уровня приоритета.
Питание
Специфицирован для работы от 3В до 5В
Режимы работы нормальный, холостой и дежурный
Последовательный порт UART
-х проводной (I2C) и SPI порт
Сторожевой таймер (WDT)
Монитор источника питания
Функциональная блок-схема
.2 Выбор ЖКИ
Для реализации системы воспользуемся индикатором фирмы Hitachi серии 44780, вид которого показан на
рисунке:
Рис.1
ЖКИ фирмы Hitachi
Индикатор
поставляется в виде печатной платы с собственно индикатором и схемой
управления. Электронная схема облегчает управление ЖКИ со стороны контроллера,
которому не приходится формировать сложные сигналы. Данные на индикатор
подаются по восьми линиям (DB0-DB7). Линии управления:
E -линия
стробирования /синхронизации.
R/W -
линия выбора операции (запись или чтение)
RS - линия
определяет тип передаваемой информации (данные или команды)
Также имеются две линии для подачи напряжения 5В-Vdd и Vcc и
линия для управления контрастом ЖКИ-Vo.,напряжения на которой обычно регулируется с помощью подстрочного
резистора, который позволяет регулировать контраст при отображении информации.
.3 Выбор датчиков уровня воды
Датчики уровня воды организованы следующим образом. В резервуаре
установлены контакты подключенные к питанию через сопротивление ,а сам
резервуар подключен к массе. При заполнении резервуара водой (т.к вода имеет
сопротивление порядка 10-100кОм, в зависимости от состава ),происходит
замыкание контактов на массу, и тем самым мы можем определить уровень воды .
При заполнении мы смотрим на состояние датчика максимального уровня , и если
состояние равно логическому нулю то резервуар полон. При откачки мы смотрим на
состояние датчика уровня минимума , и если равно единице, то вода откачена.
Основным достоинством такого датчика является его дешевизна и простота замены.
.4 Выбор датчика температуры
Датчик температуры представляет собой терморезистор
,сопротивление которого изменяется за счет изменения температуры , а
следовательно меняется и величина проходимо через него напряжения ,по величине
которого (при помощи встроенного в микроконтроллер АЦП ) можно определить
значение температуры. Основным достоинством такого датчика является его
дешевизна и простота замены.
3.5Стабилизатор
Стабилизатор К145ЕН5А предназначен для получения из напряжения питания
12В, напряжение питания 5В для питания МК, цифровой логики и ЖКИ.
.6 Блоки управления
Блоки управления - реализованы в виде внешних модулей (ключей на полевых
транзисторах ) ,при подаче на них управляющего напряжение 0.5 В с контролера и
они камутируют мощную 220В нагрузку.
.7 Клавиатура
Клавиатура построена как коммутационная матрица. Матрица коммутации в
данном случае двумерная, каждый ее узел содержит клавишу, которая коммутирует
один столбец матрицы с одной из строк.
Путем сканирования столбцов можно следить за состоянием клавиатуры.
Когда ни одна из кнопок не нажата , на всех линиях строк должен быть
высокий уровень (1).При замыкании одной из кнопок во время опроса
соответствующего столбца на линии строк вместо 1 будет 0.
В результате МК может зафиксировать факт нажатия и определить ,какая
клавиша нажата.
4. Распределение портов ввода/вывода
Порт
|
Назначение
|
P 0.0 -P0.7
|
Передачи данных на ЖКИ
Разрешение выполнения операций обмена ЖКИ
|
P1.0
|
Датчик температуры
|
P2.0-P2.4
|
Управляющие клавиши.
|
P2.5-P2.7
|
Датчики уровня воды
|
P3.0-P3.2
|
Сигналы управления ЖКИ
|
P3.3-P3.4
|
БУ двигателем
|
P3.5
|
БУ насосом.
|
P 3.6
|
БУ нагревательным
элементом.
|
P 3.7
|
БУ клапаном слива
|
5.Описание и функционирование программы
В программе предусмотрены 2 обработчика прерываний:
1) от АЦП (канал 6)-……..
2) от таймера- в нем мы выполняем:
а) подсчет секунд, минут, и определение прошедшего времени для заданного
режима, при этом заданное время дикриминтируется и выводится на ЖДИ .(вывод
осуществляется не в обработчики а в основной программе, т.к ЖКИ достаточно
медленен ), по установленному флагу обработчика дисплея.
б) Сканирование клавиатуры - осуществляется поочередной подачей нулей на Р2.3
и Р2.4,что определяет сканируемы столбец, при этом проверяются разряды с Р2.0
по Р2.3 и определяется какая клавиша нажата.
г)Управление направлением и
по таймеру 1 скоростью вращения двигателя , в соответствии с
установленным режимом. При этом бит Р3.4 задает направление вращения , а бит Р
3.3 -скорость вращения с помощью широтно импульсной модуляции.
Основная программа состоит из 2-х основных блоков :
)Инициализации и установка параметров для всех режимов
Для каждого режима выводится стандартное время и пользователь может
увеличить или уменьшить это значение .так же для режимов стирки и замачивания
вводится и температура, при этом смена параметров аналогична.
В режиме стирка добавляется перебор типов стирки (мягкая ,грубая ткань,
шерсть , белье и нормальный режим ) .Для режима отжима задается время и
скорость вращения двигателя.
)Непосредственное прохождение всех режимов стирки заданных в 1-ой
части, при этом клавиатура не блокируется и можно изменить текущее
значение времени для действующего режима
Листинг программы
list p=16c57, f=inhx8m
PORTA EQU 0x0005 EQU 0x0006 EQU 0x0007 EQU 0x0003 EQU 0x0010 EQU 0x0011 EQU 0x0012
;Registers Delay EQU 0x0013
REG2 EQU 0x0014 EQU 0x0015 0 START
;Delay 1min 0FFH REG1 0FFH REG2 074H REG3: REG1,1 LOOP1 REG2,1 LOOP1 REG3,1 LOOP1 0
;SWITCH ON TEMP 0H PORTB
;Change datchik 1H TEMP,0 STATUS,2 T40 2H TEMP,0 STATUS,2 T60 3H
TEMP,0 STATUS,2 T80 : PORTB,5 OFF_TEMP T40: PORTB,4 OFF_TEMP T60
: PORTB,3 OFF_TEMP T80_TEMP:
;SWITCH OFF TEMP 81H PORTB 0
;PortA on write 0FH 5
;PortC on write 0FFH 7
;Clear LCD 1 PORTC
;LCD - DATA 0FH PORTA
;INPUT - TERM:
;T 54H PORTC
;E 45H PORTC
;R 52H PORTC
;M 4DH PORTC
;: 3AH PORTC 0:
;Begin setting and control .5 INCR .4 TEMP
;Set PortB on read 0FFh 6:
;if press '+' then goto ADD PORTB,0 ADD
;if press '-' then goto SUB PORTB,1 SUB
;Read time wash PORTB,3 TIMEF,0 PORTB,4 TIMEF,1 PORTB,5 TIMEF,2
;if press 'Wash' then goto WASH PORTB,2 WASH CONTROL: DISPLAY
;Temp<>80 - ? 80 TEMP,0 STATUS,2 EXIT_ADD
;Increament meaning temperature - 0x0010 2 TEMP,1
;Temperature in W 48 TEMP,1 PORTC ;Output
on LCD - TEMP - ASCII 48 PORTC ;Output on LCD - 0 - ASCII_ADD: 0: DISPLAY
;Temp<>40 - ? 40 TEMP,0 STATUS,2 EXIT_SUB
;Decreament meaning temperature - 0x0010 2 TEMP,1
;Temperature in W 48 TEMP,1 PORTC ;Output
on LCD - TEMP - ASCII 48 PORTC ;Output on LCD - 0 - ASCII_SUB: 0:
;Process wash 0C1H ;11000001b 6 ;PortB
;Input water - SWITCH ON PUMP 1H PORTB_WATER: PORTB,2 OFF_PUMP INPUT_WATER _PUMP:
;SWITCH OFF PUMP 0C0H PORTB WARM:
;SWITCH ON MOTOR - ON CLOCK 41H PORTB DELAY
;SWITCH OFF MOTOR 0C1H PORTB WARM
;SWITCH ON MOTOR - UN CLOCK 80H PORTB DELAY
;SWITCH OFF MOTOR 0C1H PORTB WARM INCR,1 INCTIME ROUND: TIMEF,1 EXIT .5 INCR ROUND:
;SWITCH ON PUMP 40H PORTB DELAY
;SWITCH OFF PUMP 0C0H PORTB
;RINSE
;SWITCH ON PUMP 1H PORTB_WATER_R: PORTB,2 OFF_PUMP_R INPUT_WATER_R_PUMP_R:
;SWITCH OFF PUMP 0C0H PORTB
;SWITCH ON MOTOR - ON CLOCK 41H PORTB DELAY
;SWITCH OFF MOTOR 0C1H PORTB
;SWITCH ON PUMP 40H PORTB DELAY
;SWITCH OFF PUMP 0C0H PORTB
;INPUT LCD - STOP
;Clear LCD 1 PORTC
;LCD - DATA 0FH PORTA
;INPUT - STOP:
;S 53H PORTC
;T 54H PORTC
;O 51H PORTC
;P 50H PORTC