Устройство управления электроплитой

2





Содержание



Введение. Постановка задачи	

1. Анализ задачи. Функциональная спецификация системы

1.1 Список функций, выполняемых системой

1.2 Описание интерфейса между системой и пользователем

2. Предварительное проектирование системы

2.1 Разбиение системы на модули

2.2 Соотношение между аппаратными и программными средствами

2.3 Построение структурной схемы аппаратной части

2.4 Описание структурной схемы

3. Проектирование аппаратных средств системы

3.1 Выбор типа микроконтроллера

3.2 Разработка принципиальной схемы системы

3.3 Описание работы системы по принципиальной схеме

4. Проектирование программного обеспечения

4.1 Разработка схемы алгоритма работы системы и программы на ассемблере

4.2 Описание алгоритма работы системы и программы

Выводы и заключение

Список литературы

Приложение






Введение. Постановка задачи



В курсовом проекте необходимо разработать устройство управления двухконфорочной электроплитой на базе микроконтроллера МС68НС11.

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

Необходимо получить информацию, по поводу того, что система должна делать. Для этого необходимо ответить на следующие вопросы:

1) Какие режимы работы обеспечивает устройство?

2) Какие операции выполняет электроплита?

3) При каких условиях электроплита будет работать?

4) При каких условиях электроплита будет прекращать выполнение операции?

Ответив на эти вопросы можно сделать вывод относительно того, что будут представлять собой требования пользователей.

Исходя из заданных данных на курсовой проект, можно выделить следующие функциональные действия которые должно выполнять наше устройство:

1) Обеспечивать управление путем установки комбинации уровня мощности нагревателя и времени приготовления пищи из фиксированного набора значений для каждой из конфорок.

2) Обеспечивать установку уровней мощности нагревателя и интервалов времени с помощью двух кнопок и семисегментного индикатора.



Таблица 1 – Уровни времени

Режимы времени

Время работы в мин.

1

10

2

20

3

30

4

40

5

50



Таблица 2 – Уровни мощности

Режимы мощности

% от max мощности

1

20

2

40

3

60

4

80

5

100



3) Устройство должно быть несложным в управлении.

4) Устройство должно обеспечивать максимальное удобство пользователю (световая и звуковая сигнализация).






1. Анализ задачи. Функциональная спецификация системы



1.1 Список функций, выполняемых системой



Функциональная спецификация должна определять, какие функции должны выполняться для удовлетворения пользователей и обеспечения интерфейса между системой и окружением. Таким образом, функциональная спецификация включает два основных компонента:

1) Список функций, выполняемых системой.

2) Описание интерфейса между системой и пользователем

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

По отношению к требованиям пользователей системы управления электроплитой, функциональная спецификация должна давать ответы на следующие вопросы:

1) Какие средства необходимо предусмотреть для включения работы конфорки?

2) Какие средства необходимо предусмотреть для прекращения работы конфорки по желанию пользователя?

3) Какие средства необходимо предусмотреть для задания режима времени?

4) Какие средства необходимо предусмотреть для задания режима мощности?

5) Какие средства необходимо предусмотреть для оповещения пользователя об окончании работы?

6) Какие средства необходимо предусмотреть для оповещения пользователя о работе конфорки?

7) Какие средства необходимо предусмотреть для одновременного включения конфорок?

Ответив на эти вопросы можно перейти к составлению функциональной спецификации устройства. В рассматриваемой системе:

1) Включение конфорки будет производиться нажатием на кнопку “Старт”.

2) Для того, чтобы пользователю по желанию выключить конфорку, ему необходимо нажать на кнопку выбор конфорки “1” либо “2”,а затем на кнопку “Стоп”.

3) Установка времени работы для каждой конфорки будет осуществляться увеличением или уменьшением режима времени на единицу (режимы времени описаны в пункте «Введение. Постановка задачи» в таблице 1)

4) Установка уровня мощности для каждой конфорки будет осуществляться увеличением или уменьшением режима мощности на единицу (режимы мощности описаны в пункте «Введение. Постановка задачи» в таблице 2)

5) По окончанию работы или при нажатии кнопки “Стоп” будет срабатывать зуммер.

6) При работе конфорки будет гореть соответствующий ей световой индикатор.

7) Если пользователю необходимо включить обе конфорки, может поочередно установить режим работы и включить каждую из них.

Эти ответы содержат информацию, необходимую для определения функциональной спецификации. Представим эту спецификацию в форме, удобной для последующих ссылок и для использования на последующих этапах проектирования. Если распределить спецификацию по категориям входы, выходы, функции, то можно представить функциональную спецификацию в виде:

Функциональная спецификация устройство управления электроплитой:

1) Входы

а) Кнопка “Старт”.

б) Кнопка “Стоп”.

в) Кнопка “Время”.

г) Кнопка “Мощность”.

д) Кнопка “+”.

е) Кнопка “–”.

ж) Кнопка выбор конфорки “1”

з) Кнопка выбор конфорки “2”

2) Выходы

а) Две световых сигнализации (конфорка включена).

б) Звуковой сигнал (окончание работы).

в) Цифровой индикатор (индикация мощности и времени).

г) Уровень мощности.

д) Включение/выключение уровня мощности.

3) Функции.

а) Выбор конфорки. Проверка кнопки “1”, “2”, в соответствии с этим будет работать выход уровень мощности 1 либо 2.

б) Установка времени. Считывается состояния с кнопок “Установка времени”, “+”, “–” и в соответствии с этим высвечивается на световом индикаторе. 

в) Установка мощности. Считывается состояния с кнопок “Установка мощности”, “+”, “–” и тоже высвечивается на световом индикаторе.

г) Пуск конфорки. Считывается состояние с кнопки “Старт” и в соответствии с этим происходит включение конфорки, а также соответствующего ей светового индикатора.

д) Окончание работы. Когда заканчивается установленное время работы конфорки, происходит включение зуммера (в течение 2 с) и выключение соответствующего светового индикатора. 

е) Принудительная остановка. Считывается состояния с кнопок “1” либо “2” и с кнопки “Стоп” в соответствии с этим происходит выключение выбранной конфорки, световой сигнализации и включение зуммера на 2 с.



1.2 Описание интерфейса между системой и пользователем



В разрабатываемом устройстве взаимодействие между системой и пользователем осуществляется с помощью кнопок, светодиодных индикаторов, звуковой сигнализации (рисунок 1.2).

Учёт человеческих факторов при проектировании должен приводить к простоте системы и легкости ее использования. Эти цели достигаются посредством проектирования надлежащего системного интерфейса.

Внешний вид панели управления представлен на рисунке 1.1





Рисунок 1.1 – Внешний вид панели управления



На панели изображены: семисегментный индикатор, который располагается в верхней части панели, также кнопки выбора конфорки, под ними – световые индикаторы конфорок, в нижней части панели располагаются все остальные кнопки, необходимые для управления электроплитой: старт, стоп, время, мощность, +, -.

Алгоритм управления электроплитой: в первую очередь пользователь выбирает конфорку, на которой будет готовить, (с помощью кнопки выбор конфорки “1” либо “2”), затем устанавливает время и мощность подогрева (помощью кнопок “Время”, “Мощность”, “+”, “–”), которые будут отображаться на цифровом индикаторе, после этого пользователь нажимает кнопку “Старт”, загорается соответствующий световой индикатор, на семисегментном индикаторе отображаются выбранные режимы времени и мощности, начнется процесс приготовления. Пользователь в любой момент может выключить электроплиту нажатием кнопок “1” либо “2”,а затем “Стоп”. По окончании работы выключаются светодиоды, семисегментный индикатор, включается зуммер. Если пользователю необходимо включить обе конфорки, он устанавливает режим работы конфорки и включает каждую из них поочередно.





Рисунок 1.2 – Интерфейс между системой и пользователе






2. Предварительное проектирование системы



2.1 Разбиение системы на модули



На основе функциональной спецификации определяем набор модулей, реализующих выполняемые в системе функции. Этот набор составляет первый уровень проектирования системы. После разбиения системы на модули отделяем аппаратные модули от программных. В результате этого строим модульную структуру аппаратных средств устройства, которую оформляем в виде электрической структурной схемы.

Общая модульная структура аппаратных средств устройства управления двухконфорочной электроплитой представлена на рисунке 2.1.





Рисунок 2.1 – Общая модульная структура аппаратных средств микропроцессорной системы



Основу аппаратных средств устройства составляет управляющая микро ЭВМ, которая включает:

1) Процессорный модуль предназначен для обработки информации и управления электроплитой.

2) Модуль ГТИ (генератор тактовых импульсов) предназначен для формирования в системе периодических тактовых импульсов, по которым происходит общая синхронизация работы системы.

3) Модуль памяти предназначен для хранения информации.

4) Модуль интерфейса ввода и модуль интерфейса вывода содержит компоненты, необходимые для связи процессорного модуля с другими модулями устройства.

5) Модуль преобразования входного сигнала и модуль преобразования выходного сигнала предназначен для обмена входными и выходными сигналами с внешним окружением (кнопки, устройства световой и звуковой сигнализации).

6) Модуль таймера предназначен для управления таймером.

Рассмотрим разбиение устройства управления электроплитой на функциональные модули. Из рассмотрения функциональной спецификации следует, что система состоит из трех частей: вход, выход и функции.

1) Входной модуль выполняет считывание состояния со всех кнопок.

2) Выходной модуль выполняет включение/выключение светового и звукового сигнала.

Для части функциональной спецификации функции можно выделить следующие модули:

1) Модуль ожидания. Выполняет проверку состояний всех кнопок и ожидание изменения этих состояний, чтобы предпринять соответствующие действия.

2) Модуль таймера. Выполняет управление таймером: запускает и останавливает таймера, а также считывает его состояние.

3) Модуль проверки. Выполняет проверку состояния всех кнопок. 

4) Модуль восстановления. Выполняет инициализацию устройства при начальном включении питания.

5) Модуль управления конфорками. Выделяет коды уровней мощности и выполняет включение/выключение конфорок.

После разбиения на функциональные модули строится функционально-модульная структура устройства управления электроплитой, которая представляет собой иерархию модулей. На высшем уровне модульной структуры находится исполнительный модуль, который содержит средства, необходимые для реализации управляющей функции. На следующем уровне находятся модуль проверки и модуль ожидания. Затем располагаются модуль управления конфорками и модуль восстановления. Входной модуль, выходной модуль и модуль таймера находятся на самом нижнем уровне иерархии. Полученная модульная структура устройства управления электроплитой представлена на рисунке 2.2.





Рисунок 2.2 - Функционально-модульная структура устройства управления электроплитой



Распределение функций по модулям устройства управления электроплитой:

1)Исполнительный модуль выполняет: 

а) управление системой

2)Входной модуль выполняет следующие действия:

а) считывание состояния кнопки “Старт”

б) считывание состояния кнопки “Стоп”

в) считывание состояния кнопки “Время”

г) считывание состояния кнопки “Мощность”

д) считывание состояния кнопки “+”

е) считывание состояния кнопки “–”

ж) считывание состояния кнопки “1”

з) считывание состояния кнопки “2”

3) Выходной модуль выполняет следующие действия:

а) включение/выключение светового индикатора

б) включение/выключение звукового сигнала 

в) включение/выключение семисегментных индикаторов 

г) подача уровня мощности на соответствующую конфорку

е) включение/выключение нагревателей

4) Модуль ожидания выполняет следующие действия:

а) ожидание включения кнопки “Старт”

б) ожидание включения кнопки “Стоп”

в) ожидание включения кнопки “ Время ”

г) ожидание включения кнопки “Мощность”

д) ожидание включения кнопки “+”

е) ожидание включения кнопки “–”

ж) ожидание включения кнопки “1”

з) ожидание включения кнопки “2”

5) Модуль таймера выполняет следующие действия:

а) запуск таймера

б) останов таймера

в) считывание состояния таймера

6) Модуль проверки выполняет:

а) проверку состояния кнопки “Старт”

б) проверку состояния кнопки “Стоп”

в) проверку состояния кнопки “Время”

г) проверку состояния кнопки “ Мощность”

д) проверку состояния кнопки “+”

е) проверку состояния кнопки “–”

ж) проверку состояния кнопки “1”

з) проверку состояния кнопки “2”

7) Модуль восстановления выполняет:

а) инициализацию системы (аппаратных и программных средств) при начальном включении (включение питания).

8) Модуль управления конфорками выполняет следующие действия:

а) выделяет код уровня мощности

б) включение/выключение конфорки

Полная функционально-модульная структура устройства управления электроплитой, включающая функции для каждого модуля, показана на рисунке 2.3.





Рисунок 2.3 – Функционально-модульная структура устройства управления электроплитой, включающая функции для каждого модуля




2.2 Соотношения между аппаратными и программными средствами



Функция управления системы реализуется управляющей микро ЭВМ в результате выполнения основной (управляющей) программы путем последовательного вызова функций соответствующих программных модулей системы. 

Связь между программными и аппаратными средствами устройства управления электроплитой представлена на рисунке 2.4. Из данного рисунка видно, что функции таймера переданы аппаратным средствам.



 

Рисунок 2.4 – Связь между аппаратными и программными средствами устройства управления электроплитой






2.3 Построение структурной схемы аппаратной части



На основе функций выполняемых системой построим структурную схему аппаратной части.

Электрическая структурная схема проектируемой системы приведена на чертеже БГУИ.ХХХХХХ.001 Э1 в приложении Б.



2.4 Описание структурной схемы



Центральным модулем структурной схемы является процессорный модуль. Он выполняет функции управления процессом обмена данными с периферийными устройствами, обработки информации. В модуле памяти хранятся коды, константы и переменные программ и подпрограмм процессорного модуля. А также в отдельный блок можно выделить модуль ГТИ. Для отсчета требуемых промежутков времени и организации задержек используется модуль таймера. 

Входной и выходной модули необходимы для координирования операций ввода-вывода. Предположительно они будут представлены последовательными и параллельными портами микропроцессорного устройства. Для подключения внешних устройств у микроконтроллера предусмотрено пять восьмиразрядных портов. В нашем случае периферийными устройствами будут служить: кнопки, световые индикаторы, семисегментные индикаторы, средства звуковой сигнализации. Они и будут подключены к входному и выходному модулям.






3. Проектирование аппаратных средств системы



3.1 Выбор типа микроконтроллера



Управление и контроль устройством управления электроплитой будет производиться микроконтроллером МС68НС11А8. Он является основой аппаратной части.

В данном проекте микроконтроллер будет работать в однокристальном режиме. Поэтому на входы MODA, MODB нужно подать логические сигналы ‘0’ и ‘1’ соответственно.

Микроконтроллер адресует до 64 Кбайт памяти (адреса $0000-$FFFF), которые делятся на 16 страниц по 4 Кбайта. Полный объем памяти доступен в расширенном режиме, когда к выводам портов B, C подключается внешняя память. В нашем случае используется однокристальный режим работы. Поэтому доступна только внутренняя память микроконтроллера: ПЗУ, РПЗУ, ОЗУ, а порты В, С служат для обмена данными с внешними устройствами. Две последние страницы адресного пространства (адреса $E000-$FFFF) занимает внутреннее масочное ПЗУ, содержимое которого программируется в процессе изготовления микроконтроллера по заказу пользователя. В ПЗУ будет содержаться наша программа. РПЗУ размещается по адресам $B600-$B7FF и в данном курсовом проекте не используется. ОЗУ при начальной установке микроконтроллера (процедура RESET) занимает адресное пространство $0000-$00FF. 



3.2 Разработка принципиальной схемы системы



Для проектируемого устройства управления электроплитой нам понадобятся кнопки, светодиоды, зуммер и семисегментные индикаторы.






3.2.1 Устройства управления светодиодами

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



Таблица 3.1 – Таблица зависимости сопротивления от напряжения питания.

Vcc

R(Ом)

3…4

0

4…5

100

5…8

220

8…12

470

12…15

820





Рисунок 3.1 – Схема управления светодиодом



3.2.2 Управление звуковыми устройствами

Для проектирования устройства управления электроплитой будем использовать полупроводниковый зуммер на транзисторе ZTX300. Для генерации звука на базу ZTX300 необходимо подать высокий уровень напряжения. На рисунке 3.2 представлена схема управления полупроводниковым зуммером на транзисторе ZTX300.






Рисунок 3.2 – Схема управления полупроводниковым зуммером на базе транзистора ZTX300



3.2.3 Многоразрядные светодиодные дисплеи со встроенными схемами управления

Микросхема TSM6234T представляет собой четырехразрядный зеленый светодиодный дисплей со встроенным последовательным входом. Потребляемый каждым сегментом ток равен 2,0мА. Ток необходимый светодиодам, определяется внешним резистором и обычно в 25 раз превышает ток, протекающий через вывод управления яркостью. 

Структура схемы TSM6234T представлена на рисунке 3.3 между выводом управления яркостью и общим выводом должен быть включен конденсатор емкостью 0,1мкФ. Для работы дисплея необходимо два напряжения питания: Vdd и Vled. Напряжение Vdd предназначено для питания внутренней схемы управления и может меняться от 4,75 до 12 В. Потребляемый ток равен 7 мА для напряжения 12 В. Напряжение Vled обычно составляет 5 В и служит для питания светодиодов дисплея.








Рисунок 3.3 – Структура микросхемы TSM6234T



Последовательная передача данных осуществляется по трем ТТЛ - совместимым линиям: «Последовательные данные»,  и CLOC. На рисунке 3.4 изображены временные диаграмма загрузки данных в дисплей.





Рисунок 3.4 – Временные диаграммы светодиодного дисплея TSM6234T




Формат передачи данных состоит из стартовой единицы и 35 бит данных. По каждому положительному фронту тактового импульса биты данных последовательно записываются во входной сдвиговый регистр. Чтобы открыть вход, надо подать на вход  сигнал низкого уровня. При прохождении 36-го фронта тактового импульса генерируется сигнал загрузки, который перезаписывает 35бит данных из регистра сдвига в буфер-защелку. Во время прохождения следующего фронта формируется сигнал «Сброс», который очищает регистр сдвига. При включении питания генерируется сигнал «Сброс или включение», который очищает все регистры сдвига и буфер-защелку. Стартовый бит и тактовый импульс возвращают микросхему в режим загрузки данных. Для очистки дисплея необходимо подать стартовый бит и 35 нулей. Эта процедура также сбрасывает микросхему. Бит 1, следующий сразу за стартом, определяет состояние сегмента А первой цифры, бит 2 – состояние сегмента В первой цифры и т.д.

Функции 35 бит последовательных данных можно определить так:

биты 1…8 – сегменты A…DP первой цифры;

биты 9…16 – сегменты A…DP второй цифры;

биты 17…24 – сегменты A…DP третьей цифры;

биты 25…32 – сегменты A…DP четвертой цифры;



3.3 Описание работы системы по принципиальной схеме



В данном курсовом проекте микроконтроллер будет работать в однокристальном режиме. Поэтому на входы MODA, MODB нужно подать сигналы логических ‘0’ и ‘1’ соответственно.

Кнопка “1” подключена к РС0, “2” – к РС1, “Время” – к РС2, “Мощность” – к РС3, “+” – к РС4, “–” – к РС5, “Старт” – к РС6, “Стоп” – к РС7. При нажатии на кнопку на соответствующий порт подается логический ‘0’.

Светодиоды подключены к порту В (РВ2 – PВ3). Включение и выключение светодиода происходит при подаче логической ‘1’ и ‘0’ соответственно на РВ2, РВ3. 

К порту В (РВ4) подключен зуммер, включение и выключение которого происходит при подаче логической ‘1’ и ‘0’ соответственно на РВ4. 

Отображение информации о времени и мощности осуществляется на семисегментный индикатор, шина данных которого подключены к порту РВ0, а к РВ1 – тактирующий вход. Цифровой индикатор работает в соответствии с описанием, которое приведено в пункте 3.2.3.

Уровни мощности конфорок подключены к порту D (PD0 – PD2). К PD3 – включение/выключение конфорки 1, к PD4 – включение/выключение конфорки 2. При подаче логической ‘1’ на PD3 происходит включение конфорки 1 на установленную мощность(PD0 – PD2). При подаче логической ‘1’ на PD4 происходит включение конфорки 2 на установленную мощность(PD0 – PD2).

Перечень элементов схемы электрической принципиальной приведён на чертеже БГУИ. XXXXXX.002 ПЭ3.

Схема электрическая принципиальная устройства управления электроплитой приведена на чертеже БГУИ. ХХХХХХ.003 Э3.






4. Проектирование программного обеспечения



4.1 Разработка схемы алгоритма работы системы и программы на ассемблере 



С точки зрения программирования разработанное устройство управления электроплитой состоит из программно доступных регистров микроконтроллера и трех портов: В, С и D. Работа системы заключается в определении состояния входных портов, выполнения определённых вычислений и выводе данных из микроконтроллера.

Подробная блок-схема алгоритма программного обеспечения устройства, включающая в себя все аспекты работы периферийных устройств и микроконтроллера приведена в БГУИ. XXXXXX.004 Э8.

Листинг программы с комментариями приведен в приложении А. 



4.2 Описание алгоритмаработы системы и программы



Служебные регистры определяют конфигурацию и режимы работы микроконтроллера. 

Содержимое регистра INIT (рисунок 4.1) определяет старшие четыре разряда адреса (номер страницы) размещения ОЗУ (биты RAM3-RAM0) и блока внутренних регистров (биты REG3-REG0). При начальной установке микроконтроллера биты данного регистра принимают значения RAM3-RAM0 = 0000 (обращение к странице 0), REG3-REG0 = 0001 (обращение к странице 1). В нашем курсовом проекте принимаются значения, установленные после начальной установки.



7

6

5

4

3

2

1

0

RAM3

RAM2

RAM1

RAM0

REG3

REG2

REG1

REG0

Рисунок 4.1 – Служебный регистр INIT (адрес $103D)




Длительность такта микроконтроллера TC = 1/Ft определяется генератором тактовых импульсов (ГТИ). Частота следования тактовых импульсов Ft задается кварцевым резонатором, подключаемым к выводам EXTAL и XTAL, или внешним генератором, подключаемым к выводу XTAL. В нашем случае выбран кварцевый резонатор с частотой 8MHz. При этом частота Ft в 4 раза меньше частоты внешнего резонатора или генератора Ft = Fg/4. Импульсы с частотой Ft поступают на выход E микроконтроллера и используются для синхронизации работы других устройств системы. 

Так как микроконтроллер работает в рабочем однокристальном режиме, то в процессе начальной установки при включении питания или поступлении сигнала RESET# = 0 в программный счетчик PC загружаются два байта: старший байт PCH из ячейки памяти с адресом $FFFE, младший байт PCL – $FFFF. Эти байты являются адресом первой команды, выполняемой микроконтроллером после начальной установки. Так как микроконтроллер работает в однокристальном режиме, данные байты выбираются из внутреннего ПЗУ. При включении питания требуется время 4064ТC для запуска ГТИ и установки начального состояния регистров, после чего начинается нормальная работа микроконтроллера. Для начальной установки по сигналу RESET# его длительность должна быть не меньше 4ТC.

В курсовом проекте для обмена данными с внешними устройствами используются параллельные порты В, С и D. Порты А и E не используются.

При работе портов В, С и D используется блок квитированного обмена (БКО), который обеспечивает прием и выдачу сигналов квитирования STRA, STRB. Функционирование портов B и C определяется регистром управления PIOC (рисунок 4.2), входящим в состав БКО. При значении разряда HNDS = 0 в этом регистре порт В работает в режиме стробированного вывода, порт С – в режиме стробированного ввода. При значении HNDS = 1 порт В работает в режиме нестробированного вывода, а порт С используется для двунаправленного обмена с квитированием.




7

6

5

4

3

2

1

0

STAF

STAI

CWOM

HNDS

OIN

PLS

EGA

INVB

Рисунок 3.3 – Регистр управления PIOC (адрес $1002)



Порт В (регистр PORTB, адрес $1004) используется как 8-разрядный порт вывода данных. Если в регистре управления PIOC установлено значение разряда HNDS = 0, то порт В работает в режиме стробированного вывода. В этом режиме запись данных в регистр PORTB сопровождается формированием импульса на выходе STRB длительностью 2TC, который служит для внешних устройств запросом на прием данных с выводов порта PB7-PB0. Активный уровень этого импульса определяется значением разряда INVB в регистре PIOC: при INVB = 0 формируется импульс низкого уровня, при INVB = 1 – высокого уровня. Если значение разряда HNDS = 1, то порт В работает в режиме нестробированного вывода, при котором не происходит формирование стробирующего сигнала на выходе STRB. 

Порт C используется как 8-разрядный двунаправленный порт. Направление передачи данных определяется для каждого вывода порта путем установки значения соответствующего разряда в регистре направления DDRC (адрес $1007).

При установке в этом регистре значения i-го разряда в 0 i-й вывод порта используется как вход, при установке в 1 – как выход. В курсовом проекте порт С работает всегда на ввод данных.

Порт C имеет два регистра данных: PORTC (адрес $1003) и PORTCL (адрес $1005). Запись данных в регистр PORTCL с выводов порта PC7-PC0 стробируется сигналом на входе STRA, запись или чтение регистра PORTC не сопровождается сигналами квитирования. При чтении регистра PORTC в микроконтроллер вводятся данные, соответствующие текущему состоянию выводов PC7-PC0, при чтении регистра PORTCL вводятся данные, записанные в этот регистр при подаче стробирующего сигнала на вход STRA. При записи в регистры PORTC и PORTCL данные поступают также на выводы порта С, используемые в качестве выходов. При этом запись в PORTCL сопровождается формированием соответствующих сигналов квитирования на выводах STRA и STRB. Так как в данном курсовом порт С служит для стробированного ввода, то обращение к нему происходит через регистр PORTCL. 

В программе будем использовать ячейку с меткой MY_CONFIG.Биты в ней показаны на рисунке 3.4.



7

6

5

4

3

2

1

0

0

0

0

0

RAB_KON2

RAB_KON1

Время/мощн.

№ конф.

Рисунок 3.4 – Ячейка с меткой MY_CONFIG



Если RAB_KON2=1, то конфорка 2 работает. Если 0 – то нет. 

Если RAB_KON1=1, то конфорка 1 работает. Если 0 – то нет.

Если Время/мощн.=1, то работает режим установки мощности. Если 0 – работает режим установки времени.

Если № конф.=1, то работает режим установки конфорки 2. Если 0 – работает режим установки конфорки 1.

В курсовом проекте порт С и D работает на вывод управляющих сигналов к простым исполнительным устройствам. Порт В служит как для приёма сигналов с кнопок. Для этого необходимо установить флаги в регистре HPRIO в 00000110, PIOC – 00011011, DDRC – 00000000, DDRC – 00000000.

В контроллере имеется встроенный таймер. Он реализован на базе 16-разрядного счетчика TCNT (адрес старшего байта $100E, адрес младшего байта $100F). Этот счетчик запускается при начальной установке микроконтроллера, и после запуска его состояние может быть только считано, например командами LDD, LDX, LDY. Частота счета зависит от значения разрядов PR1-PR0 в регистре TMSK2 и составляет FCNT = Ft/Kd, где значение Kd определяется по таблице 3.1. Таким образом, при тактовой частоте Ft = 2 МГц временное разрешение таймера равно TCNT=500 нс, а максимальное время счета при Kd = 16 составляет 524 мс. При разработке таймера точность определения времени определяется десятыми секунды, поэтому используется максимальное время счета, но отсчитывается определённое кол-во импульсов (30d4h) и осуществляется прерывание. При переключении счетчика из состояния $FFFF в состояние $0000 устанавливается признак переполнения TOF=1 в регистре TFLG2. При этом формируется запрос прерывания, если в регистре TMSK2 установлен разряд разрешения данного запроса TOI = 1.

В нашем курсовом проекте устанавливаем максимальное время счета таймера равное 524 мс. 



Таблица 3.1 – Коэффициенты Kd и Kt таймера

PR1

PR0

Коэффициент деления частоты таймера Kd

 RTR

 RTR

Коэффициент Kt

0

0

1

0

0

1

0

1

4

0

1

2

1

0

8

1

0

4

1

1

16

1

1

8






Выводы и заключение



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

Спроектированное устройство управления двухконфорочной электроплитой полностью соответствует требованиям пользователя.






Приложение



0001 0000 DataAddr	EQU	$0000

0002 e000 CodeAddr	EQU	$E000

0003 0070 STACK	EQU	$0070

0004 

0005 *******************

0006 1004 PORTB	EQU	$1004

0007 1003 PORTC	EQU	$1003

0008 1008 PORTD	EQU	$1008

0009 1002 PIOC	EQU	$1002

0010 1007 DDRC	EQU	$1007

0011 1009 DDRD	EQU	$1009

0012 *******************

0013 100e TCNT	EQU	$100E

0014 1025 TFLG2	EQU	$1025

0015 1022 TMSK1	EQU	$1022

0016 1024 TMSK2	EQU	$1024

0017 *******************

0018 0000 	ORG	DataAddr

0019 0000 00 MY_CONFIG	FCB	0	

0020 0001 00 VREMYA1	FCB	0	*время отображения для конфорки 1

0021 0002 00 VREMYA2	FCB	0	*время отображения для конфорки 2

0022 0003 00 VR1	FCB	0	*время в минутах для конфорки 1

0023 0004 00 VR2	FCB	0	*время в минутах для конфорки 2

0024 0005 00 VR_SK1	FCB	0	*время отображения для конфорки 1 в семисигм. коде

0025 0006 00 VR_SK2	FCB	0	*время отображения для конфорки 2 в семисигм. коде

0026 0007 00 POWER1	FCB	0	*мощность отображения для конфорки 1

0027 0008 00 POWER2	FCB	0	*мощность отображения для конфорки 2

0028 0009 00 POWER_SK1	FCB	0	*мощность отображения для конфорки 1 в семисигм. коде

0029 000a 00 POWER_SK2	FCB	0	*мощность отображения для конфорки 1 в семисигм. коде

0030 000b 00 TIME1	FCB	0	*ячейка памяти для таймера конфорки 1

0031 000c 00 TIME2	FCB	0	*ячейка памяти для таймера конфорки 2

0032 000d 00 PORTBB	FCB	0

0033 000e 00 PORTDD	FCB	0

0034 000f 00 X1	FCB	0

0035 *******************

0036 

0037 e000 	ORG	CodeAddr

0038 e000 8e 00 70 	 start	LDS	#STACK

0039 e003 bd e0 0b 	JSR INICIALIZ	*инициализация системы

0040 e006 bd e2 34 	JSR VYVOD_VRiPOW	*вывод на индикаторы

0041 e009 20 2e 	BRA	KNOPKI

0042 	

0043 e00b 86 1b INICIALIZ	LDAA	#%00011011	* В – нестробированый вывод

0044 e00d b7 10 02 	STAA	PIOC	 

0045 e010 86 03 	LDAA	#%00000011	* Коэф.деления таймера =16

0046 e012 b7 10 24 	STAA	TMSK2

0047 e015 86 ff 	LDAA	#$FF	*инициализац.

0048 e017 b7 10 07 	STAA	DDRC	*порта С на ввод

0049 e01a 86 00 	LDAA	#$00	*инициализац.

0050 e01c b7 10 09 	STAA	DDRD	*порта D на вывод

0051 e01f b7 10 22 	STAA	TMSK1	*запрещение прерываний таймера

0052 e022 b7 10 04 	STAA PORTB	*гашение индикаторов

0053 e025 97 00 	STAA	MY_CONFIG	*установка начального режима

0054 e027 96 01 	LDAA	1

0055 e029 97 01 	STAA	VREMYA1

0056 e02b 97 02 	STAA	VREMYA2

0057 e02d 97 07 	STAA	POWER1

0058 e02f 97 08 	STAA	POWER2

0059 e031 39 	RTS

0060 	

0061 e032 b6 10 25 PROV_TOF	LDAA	TFLG2	*равен ли TOF единице

0062 e035 84 80 	ANDA	#%10000000	*если да то сброс

0063 e037 26 46 	BNE	SBROS_TOF

0064 e039 b6 10 03 KNOPKI	LDAA	PORTC

0065 e03c 84 01 	ANDA	#%00000001	*проверка нажатия кнопки "1"

0066 e03e 26 46 	BNE	KNOPKA_1

0067 e040 b6 10 03 	LDAA	PORTC

0068 e043 84 02 	ANDA	#%00000010	*проверка нажатия кнопки "2"	

0069 e045 26 3f 	BNE	KNOPKA_1

0070 e047 b6 10 03 	LDAA	PORTC

0071 e04a 84 04 	ANDA	#%00000100	*проверка нажатия кнопки "Время"	

0072 e04c 26 4e 	BNE	KNOPKA_VREMYA

0073 e04e b6 10 03 	LDAA	PORTC

0074 e051 84 08 	ANDA	#%00001000	*проверка нажатия кнопки "Мощность"	

0075 e053 26 4f 	BNE	KNOPKA_POWER

0076 e055 b6 10 03 	LDAA	PORTC

0077 e058 84 10 	ANDA	#%00010000	*проверка нажатия кнопки "+"	

0078 e05a 26 50 	BNE	KNOPKA_PLYUS

0079 e05c b6 10 03 	LDAA	PORTC

0080 e05f 84 20 	ANDA	#%00100000	*проверка нажатия кнопки "-"	

0081 e061 26 fe 	BNE	KNOPKA_MINUS

0082 e063 b6 10 03 	LDAA	PORTC

0083 e066 84 40 	ANDA	#%01000000	*проверка нажатия кнопки "Старт"	

0084 e068 26 fe 	BNE	KNOPKA_PUSK

0085 e06a b6 10 03 	LDAA	PORTC

0086 e06d 84 80 	ANDA	#%10000000	*проверка нажатия кнопки "Стоп"

0087 e06f 26 fe 	BNE	KNOPKA_STOP

0088 e071 96 00 	LDAA	MY_CONFIG

0089 e073 84 04 	ANDA	#%00000100	*проверка работы конфорки 1	

0090 e075 26 fe 	BNE	RAB_KON1

0091 e077 96 00 PROV_KON2	LDAA	MY_CONFIG

0092 e079 84 08 	ANDA	#%00001000	*проверка работы конфорки 2	

0093 e07b 26 fe 	BNE	RAB_KON2

0094 e07d 20 b3 	BRA	PROV_TOF

0095 	

0096 

0097 e07f b6 10 25 SBROS_TOF	LDAA	TFLG2	*сброс TOF в 0

0098 e082 8a 80 	ORAA	#%10000000	

0099 e084 20 b3 	BRA	KNOPKI

0100 

0101 

0102 

0103 

0104 e086 96 00 KNOPKA_1	LDAA	MY_CONFIG	*режим установка 	конфорки1

0105 e088 84 fe 	ANDA	#%11111110

0106 e08a 97 00 	STAA	MY_CONFIG

0107 e08c bd e2 34 	JSR	VYVOD_VRiPOW	*вывод на индикаторы

0108 e08f 20 a8 	BRA	KNOPKI

0109 	

0110 e091 96 00 KNOPKA_2	LDAA	MY_CONFIG	*режим установка 	конфорки 2

0111 e093 8a 01 	ORAA	#%00000001

0112 e095 97 00 	STAA	MY_CONFIG

0113 e097 bd e2 34 	JSR	VYVOD_VRiPOW	*вывод на индикаторы

0114 e09a 20 9d 	BRA	KNOPKI

0115 	

0116 e09c 96 00 KNOPKA_VREMYA	LDAA	MY_CONFIG *режим установка 	времени 

0117 e09e 84 fd 	ANDA	#%11111101

0118 e0a0 97 00 	STAA	MY_CONFIG

0119 e0a2 20 95 	BRA	KNOPKI

0120 	

0121 e0a4 96 00 KNOPKA_POWER	LDAA	MY_CONFIG *режим установка 	мощности

0122 e0a6 8a 02 	ORAA	#%00000010

0123 e0a8 97 00 	STAA	MY_CONFIG

0124 e0aa 20 8d 	BRA	KNOPKI

0125 	

0126 e0ac 96 00 KNOPKA_PLYUS	LDAA MY_CONFIG

0127 e0ae 84 01 	ANDA	#%00000001	*проверка режима установки конфорки

0128 e0b0 26 26 	BNE	KON22

0129 	

0130 e0b2 96 00 KON11	LDAA MY_CONFIG

0131 e0b4 84 02 	ANDA	#%00000010	*режим установка конфорки 1

0132 e0b6 26 10 	BNE	POWER_KON1	*проверка режима установки времени

0133 	

0134 e0b8 96 01 	LDAA	VREMYA1	*режим установка времени

0135 e0ba 8b 01 	ADDA	#1	*VREMYA1+1

0136 e0bc 97 01 	STAA	VREMYA1

0137 e0be 80 06 	SUBA	#6	*если VREMYA1>5, 	то устанавливаем 	VREMYA1=5

0138 e0c0 26 3a 	BNE	END_PLYUS

0139 e0c2 86 05 	LDAA	#5

0140 e0c4 97 01 	STAA	VREMYA1

0141 e0c6 20 34 	BRA	END_PLYUS

0142 	

0143 e0c8 96 07 	POWER_KON1	LDAA	POWER1	*режим установка 	мощности

0144 e0ca 8b 01 	ADDA	#1	*POWER1+1

0145 e0cc 97 07 	STAA	POWER1	*если POWER1>5, то

0146 e0ce 80 06 	SUBA	#6	*устанавливаем 	POWER1=5

0147 e0d0 26 2a 	BNE	END_PLYUS

0148 e0d2 86 05 	LDAA	#5

0149 e0d4 97 07 	STAA	POWER1

0150 e0d6 20 24 	BRA	END_PLYUS	

0151 	

0152 e0d8 96 00 KON22	LDAA MY_CONFIG	*режим установка конфорки 2

0153 e0da 84 02 	ANDA	#%00000010

0154 e0dc 26 10 	BNE	POWER_KON2	*проверка режима установки времени

0155 	

0156 e0de 96 02 	LDAA	VREMYA2	*режим установка времени

0157 e0e0 8b 01 	ADDA	#1	*VREMYA2+1

0158 e0e2 97 02 	STAA	VREMYA2

0159 e0e4 80 06 	SUBA	#6	*если VREMYA2>5, 	то устанавливаем 	VREMYA2=5

0160 e0e6 26 14 	BNE	END_PLYUS

0161 e0e8 86 05 	LDAA	#5

0162 e0ea 97 02 	STAA	VREMYA2

0163 e0ec 20 0e 	BRA	END_PLYUS

0164 	

0165 e0ee 96 08 POWER_KON2	LDAA	POWER2	*режим установка 	мощности

0166 e0f0 8b 01 	ADDA	#1	*POWER2+1

0167 e0f2 97 08 	STAA	POWER2	

0168 e0f4 80 06 	SUBA	#6	*если POWER2>5, то

0169 e0f6 26 04 	BNE	END_PLYUS	*устанавливаем 	POWER2=5

0170 e0f8 86 05 	LDAA	#5

0171 e0fa 97 08 	STAA	POWER2

0172 	

0173 e0fc bd e2 34 END_PLYUS	JSR VYVOD_VRiPOW	*вывод на индикаторы

0174 e0ff 20 fe 	BRA KNOPKI

0175 	

0176 e101 96 00 KNOPKA_MINUS	LDAA MY_CONFIG

0177 e103 84 01 	ANDA	#%00000001	*проверка режима установки конфорки

0178 e105 26 22 	BNE KON222

0179 	

0180 e107 96 00 KON111	LDAA MY_CONFIG	*режим установка конфорки 1

0181 e109 84 02 	ANDA	#%00000010

0182 e10b 26 0e 	BNE	POWER_KON11	*проверка режима установки времени

0183 	

0184 e10d 96 01 	LDAA	VREMYA1	*режим установка времени

0185 e10f 80 01 	SUBA	#1	*VREMYA1-1

0186 e111 97 01 	STAA	VREMYA1

0187 e113 26 34 	BNE	END_MINUS

0188 e115 86 01 	LDAA	#1	*если VREMYA1<1, 	то устанавливаем 	VREMYA1=1

0189 e117 97 01 	STAA	VREMYA1

0190 e119 20 2e 	BRA	END_MINUS

0191 	

0192 e11b 96 07 POWER_KON11	LDAA	POWER1	*режим установка

мощности

0193 e11d 80 01 	SUBA	#1	*POWER1-1

0194 e11f 97 07 	STAA	POWER1

0195 e121 26 26 	BNE	END_MINUS	*если POWER1<1, то

0196 e123 86 01 	LDAA	#1	*устанавливаем 	POWER1=1

0197 e125 97 07 	STAA	POWER1

0198 e127 20 20 	BRA	END_MINUS	

0199 	

0200 e129 96 00 KON222	LDAA MY_CONFIG	*режим установка конфорки 2

0201 e12b 84 02 	ANDA	#%00000010

0202 e12d 26 0e 	BNE	POWER_KON22	*проверка режима установки времени

0203 	

0204 e12f 96 02 	LDAA	VREMYA2	*режим установка времени

0205 e131 80 01 	SUBA	#1	*VREMYA2-1

0206 e133 97 02 	STAA	VREMYA2

0207 e135 26 12 	BNE	END_MINUS

0208 e137 86 01 	LDAA	#1	*если VREMYA2<1, 	то устанавливаем 	VREMYA2=1

0209 e139 97 02 	STAA	VREMYA2

0210 e13b 20 0c 	BRA	END_MINUS

0211 	

0212 e13d 96 08 POWER_KON22	LDAA	POWER2	*режим установка мощности

0213 e13f 80 01 	SUBA	#1	*POWER2-1

0214 e141 97 08 	STAA	POWER2	

0215 e143 26 04 	BNE	END_MINUS	*если POWER2<1, то

0216 e145 86 01 	LDAA	#1	* устанавливаем 	POWER2=1

0217 e147 97 08 	STAA	POWER2

0218 	

0219 e149 bd e2 34 END_MINUS	JSR VYVOD_VRiPOW	*вывод на индикаторы

0220 e14c 20 fe 	BRA	KNOPKI

0221 	

0222 

0223 e14e 96 00 KNOPKA_PUSK	LDAA MY_CONFIG	*проверка режима 	установки конфорки

0224 e150 84 01 	ANDA	#%00000001

0225 e152 26 29 	BNE	VKL_KON2

0226 

0227 e154 86 73 VKL_KON1	LDAA	#115	*режим установка конфорки 1

0228 e156 97 0b 	STAA	TIME1	*записываем в TIME1 115(115*0,524=60с)

0229 e158 96 0e 	LDAA	PORTDD	*включаем конфорку 	1 на заданную 	мощность

0230 e15a 84 10 	ANDA	#%00010000

0231 e15c 9b 07 	ADDA	POWER1

0232 e15e 8b 08 	ADDA	#%00001000

0233 e160 b7 10 08 	STAA	PORTD

0234 e163 97 0e 	STAA	PORTDD

0235 e165 96 0d 	LDAA	PORTBB

0236 e167 8a 04 	ORAA	#%00000100

0237 e169 b7 10 04 	STAA	PORTB	 	*включаем светодиод1

0238 e16c 97 0d 	STAA	PORTBB

0239 e16e 96 01 	LDAA	VREMYA1	*переводим время из

0240 e170 c6 0a 	LDAB	#10	*режима в минуты

0241 e172 3d 	MUL

0242 e173 97 03 	STAA	VR1

0243 e175 96 00 	LDAA	MY_CONFIG	*устанавливаем, что конфорка 1 работает

0244 e177 8a 04 	ORAA	#%00000100

0245 e179 97 00 	STAA	MY_CONFIG

0246 e17b 20 fe 	BRA	KNOPKI

0247 	

0248 e17d 86 73 VKL_KON2	LDAA	#115	*режим установка конфорки 2

0249 e17f 97 0c 	STAA	TIME2	*записываем в TIME1 115(115*0,524=60с)

0250 e181 96 0e 	LDAA	PORTDD	*включаем конфорку 	2 на заданную 	мощность

0251 e183 84 08 	ANDA	#%00001000

0252 e185 9b 08 	ADDA	POWER2

0253 e187 8b 10 	ADDA	#%00010000

0254 e189 b7 10 08 	STAA	PORTD

0255 e18c 97 0e 	STAA	PORTDD

0256 e18e 96 0d 	LDAA	PORTBB	 	*включаем светодиод2

0257 e190 8a 08 	ORAA	#%00001000

0258 e192 b7 10 04 	STAA	PORTB

0259 e195 b7 10 04 	STAA	PORTB

0260 e198 96 02 	LDAA	VREMYA2	*переводим время из

0261 e19a c6 0a 	LDAB	#10	*режима в минуты

0262 e19c 3d 	MUL

0263 e19d 97 04 	STAA	VR2

0264 e19f 96 00 	LDAA	MY_CONFIG	*устанавливаем, что конфорка 2 работает

0265 e1a1 8a 08 	ORAA	#%00001000

0266 e1a3 97 00 	STAA	MY_CONFIG

0267 e1a5 bd e2 34 	JSR VYVOD_VRiPOW	*вывод на 	индикаторы

0268 e1a8 20 fe 	BRA	KNOPKI

0269 	

0270 	

0271 e1aa 96 00 KNOPKA_STOP	LDAA MY_CONFIG	*проверка режима 	установки конфорки	

0272 e1ac 84 01 	ANDA	#%00000001

0273 e1ae 26 29 	BNE	VYKL_KON2

0274 

0275 e1b0 96 0d VYKL_KON1	LDAA	PORTBB	*режим установка 	конфорки 1

0276 e1b2 8a 10 	ORAA	#%00010000	*включаем зуммер

0277 e1b4 b7 10 04 	STAA	PORTB

0278 e1b7 97 0d 	STAA	PORTBB	

0279 e1b9 86 01 	LDAA	#1

0280 e1bb 97 01 	STAA	VREMYA1	*сброс VREMYA1

0281 e1bd 97 07 	STAA	POWER1	*сброс POWER1

0282 e1bf 96 0e 	LDAA	PORTDD	*выключаем 	конфорку 1

0283 e1c1 84 10 	ANDA	#%00010000

0284 e1c3 b7 10 08 	STAA	PORTD

0285 e1c6 97 0e 	STAA	PORTDD

0286 e1c8 96 00 	LDAA	MY_CONFIG	*устанавливаем, что конфорка 1

0287 e1ca 84 fb 	ANDA	#%11111011	*не работает

0288 e1cc 97 00 	STAA	MY_CONFIG

0289 e1ce 96 0d 	LDAA	PORTBB	*выключаем зуммер и 

светодиод 1

0290 e1d0 84 eb 	ANDA	#%11101011

0291 e1d2 b7 10 04 	STAA	PORTB

0292 e1d5 97 0d 	STAA	PORTBB

0293 e1d7 20 fe 	BRA	KNOPKI

0294 	

0295 e1d9 96 0d VYKL_KON2	LDAA	PORTBB	*режим установка 	конфорки 2

0296 e1db 8a 10 	ORAA	#%00010000	*включаем зуммер

0297 e1dd b7 10 04 	STAA	PORTB

0298 e1e0 97 0d 	STAA	PORTBB	

0299 e1e2 86 01 	LDAA	#1

0300 e1e4 97 02 	STAA	VREMYA2	*сброс VREMYA2

0301 e1e6 97 08 	STAA	POWER2	*сброс POWER2

0302 e1e8 96 0e 	LDAA	PORTDD	*выключаем 	конфорку 2

0303 e1ea 84 08 	ANDA	#%00001000

0304 e1ec b7 10 08 	STAA	PORTD

0305 e1ef 97 0e 	STAA	PORTDD

0306 e1f1 96 00 	LDAA	MY_CONFIG	*устанавливаем, что конфорка 2

0307 e1f3 84 f7 	ANDA	#%11110111	*не работает

0308 e1f5 97 00 	STAA	MY_CONFIG

0309 e1f7 96 0d 	LDAA	PORTBB	*выключаем зуммер 	и светодиод 2

0310 e1f9 84 eb 	ANDA	#%11101011

0311 e1fb b7 10 04 	STAA	PORTB

0312 e1fe 97 0d 	STAA	PORTBB

0313 e200 20 fe 	BRA	KNOPKI

0314 

0315 	

0316 e202 b6 10 25 	 RAB_KON1	LDAA	TFLG2 *конфорка 1 работает

0317 e205 84 80 	ANDA	#%10000000	*проверяем прошло ли 0,5с(TOF=1)

0318 e207 27 fe 	BEQ	PROV_KON2	*если да, то

0319 e209 96 0b 	LDAA	TIME1

0320 e20b 80 01 	SUBA	#1

0321 e20d 97 0b 	STAA	TIME1	*TIME1=TIME1-1

0322 e20f 26 fe 	BNE	PROV_KON2	*если TIME1=0,то

0323 e211 96 03 	LDAA	VR1	*VR1=VR1-1

0324 e213 80 01 	SUBA	#1

0325 e215 97 03 	STAA	VR1	*если время вышло, 	то переходим к 	выключению 	конфорки 1

0326 e217 26 fe 	BNE	PROV_KON2	*если нет, то – к 	проверки RAB_KON2

0327 e219 20 95 	BRA	VYKL_KON1

0328 

0329 e21b b6 10 25 	RAB_KON2	LDAA	TFLG2 *конфорка 2 работает

0330 e21e 84 80 	ANDA	#%10000000	*проверяем прошло ли 0,5с(TOF=1)

0331 e220 27 fe 	BEQ	PROV_TOF	*если да, то

0332 e222 96 0c 	LDAA	TIME2

0333 e224 80 01 	SUBA	#1

0334 e226 97 0c 	STAA	TIME2	*TIME2=TIME2-1

0335 e228 26 fe 	BNE	PROV_TOF	*если TIME2=0,то

0336 e22a 96 04 	LDAA	VR2	*VR2=VR2-1

0337 e22c 80 01 	SUBA	#1

0338 e22e 97 04 	STAA	VR2	*если время вышло, 	то переходим к 	выключению 	конфорки 2

0339 e230 26 fe 	BNE	PROV_TOF	*если нет, то – к 	проверки PROV_TOF

0340 e232 20 fe 	BRA	VYKL_KON2

0341 	

0342 e234 96 00 VYVOD_VRiPOW	LDAA MY_CONFIG	*проверка режима 	установки конфорки

0343 e236 84 01 	ANDA	#%00000001

0344 e238 26 30 	BNE	KON2

0345 	

0346 e23a 96 01 KON1	LDAA	VREMYA1	*режим установка конфорки 1

0347 e23c bd e2 a1 	JSR	PEREVOD	*переводим 	VREMYA1 и 	POWER1 в 	семисегментный код

0348 e23f d7 05 	STAB	VR_SK1	

0349 e241 96 07 	LDAA	POWER1

0350 e243 bd e2 a1 	JSR	PEREVOD

0351 e246 d7 09 	STAB	POWER_SK1

0352 	

0353 e248 96 0d 	LDAA	PORTBB	*подаем стартовую еденицу

0354 e24a 8a 02 	ORAA	#%00000010

0355 e24c b7 10 04 	STAA	PORTB

0356 e24f 97 0d 	STAA	PORTBB

0357 e251 84 fd 	ANDA	#%11111101

0358 e253 b7 10 04 	STAA	PORTB

0359 e256 97 0d 	STAA	PORTBB

0360 	

0361 e258 96 05 	LDAA	VR_SK1	*выводим на 	индикатор время

0362 e25a ce 00 08 	LDX	#8

0363 e25d bd e2 c5 	JSR	VVOD

0364 e260 96 09 	LDAA	POWER_SK1	*и мощность

0365 e262 ce 00 08 	LDX	#8

0366 e265 bd e2 c5 	JSR	VVOD

0367 e268 20 2e 	BRA	END_VYVOD	

0368 

0369 e26a 96 02 KON2	LDAA	VREMYA2	*режим установка конфорки 2

0370 e26c bd e2 a1 	JSR	PEREVOD	*переводим 	VREMYA2 и 	POWER2 в 	семисегментный код

0371 e26f d7 06 	STAB	VR_SK2

0372 e271 96 08 	LDAA	POWER2

0373 e273 bd e2 a1 	JSR	PEREVOD

0374 e276 d7 0a 	STAB	POWER_SK2

0375 	

0376 e278 96 0d 	LDAA	PORTBB	*подаем стартовую единицу

0377 e27a 8a 02 	ORAA	#%00000010

0378 e27c b7 10 04 	STAA	PORTB

0379 e27f 97 0d 	STAA	PORTBB

0380 e281 84 fd 	ANDA	#%11111101

0381 e283 b7 10 04 	STAA	PORTB

0382 e286 97 0d 	STAA	PORTBB

0383 	

0384 e288 96 06 	LDAA	VR_SK2	*выводим на 	индикатор время

0385 e28a ce 00 08 	LDX	#8

0386 e28d bd e2 c5 	JSR	VVOD

0387 e290 96 0a 	LDAA	POWER_SK2	*и мощность

0388 e292 ce 00 08 	LDX	#8

0389 e295 bd e2 c5 	JSR	VVOD

0390 	

0391 e298 86 00 END_VYVOD	LDAA	#0	*на остальные индикаторы ничего 	не выводим

0392 e29a ce 00 13 	LDX	#19	

0393 e29d bd e2 c5 	JSR	VVOD

0394 e2a0 39 	RTS

0395 	

0396 e2a1 4a PEREVOD	DECA	*проверяем число и

0397 e2a2 27 0c 	BEQ	N1	*в соответствии с его

0398 e2a4 4a 	DECA	 *значением 	сохраняем

0399 e2a5 27 0d 	BEQ	N2	*семисегментный код

0400 e2a7 4a 	DECA

0401 e2a8 27 0e 	BEQ	N3

0402 e2aa 4a 	DECA

0403 e2ab 27 0f 	BEQ	N4

0404 e2ad 4a 	DECA

0405 e2ae 27 10 	BEQ	N5

0406 e2b0 c6 06 N1	LDAB	#%00000110

0407 e2b2 20 10 	BRA	END_PEREV

0408 e2b4 c6 5b N2	LDAB	#%01011011

0409 e2b6 20 0c 	BRA	END_PEREV

0410 e2b8 c6 4f N3	LDAB	#%01001111

0411 e2ba 20 08 	BRA	END_PEREV

0412 e2bc c6 66 N4	LDAB	#%01100110 

0413 e2be 20 04 	BRA	END_PEREV

0414 e2c0 c6 6d N5	LDAB	#%01101101

0415 e2c2 20 00 	BRA	END_PEREV

0416 e2c4 39 END_PEREV	RTS

0417 

0418 e2c5 16 VVOD	TAB	*выводим заданную 	цифру на индикатор

0419 e2c6 c4 01 	ANDB	#%00000001

0420 e2c8 d7 0f 	STAB	X1

0421 e2ca d6 0d 	LDAB	PORTBB

0422 e2cc c4 fe 	ANDB	#%11111110

0423 e2ce d7 0d 	STAB	PORTBB

0424 e2d0 db 0f 	ADDB	X1

0425 e2d2 f7 10 04 	STAB	PORTB

0426 e2d5 d7 0d 	STAB	PORTBB	

0427 e2d7 ca 02 	ORAB	#%00000010

0428 e2d9 f7 10 04 	STAB	PORTB

0429 e2dc d7 0d 	STAB	PORTBB

0430 e2de c4 fd 	ANDB	#%11111101

0431 e2e0 f7 10 04 	STAB	PORTB

0432 e2e3 d7 0d 	STAB	PORTBB

0433 e2e5 44 	LSRA

0434 e2e6 09 	DEX

0435 e2e7 26 dc 	BNE	VVOD	

0436 e2e9 39 	RTS	

0437 	

0438 fffe 	ORG	$FFFE

0439 fffe e0 00 	FDB	start