7. Программа
7.1 Структура программы
Написание и отладка программы производились в программе ProView фирмы Franklin Software Inc.
ProView фирмы Franklin Software Inc. – интегрированная среда разработки программного обеспечения для однокристальных микроконтроллеров семейства Intel 8051 и его клонов. Она включает в себя всё, что нужно для создания, редактирования, компиляции, трансляции, компоновки, загрузки и отладки программ:
- стандартный интерфейс Windows,
- полнофункциональный редактор исходных текстов с выделением синтаксических элементов цветом,
- организатор проекта,
- транслятор с языка C,
- ассемблер,
- отладчик,
- встроенную справочную систему.
Среда разработки подобна Visual C++ Microsoft и Borland C++ для Windows.
ProView объединяет все этапы разработки прикладной программы в единый рекурсивный процесс, когда в любой момент времени возможен быстрый возврат к любому предыдущему этапу.
Программу можно поделить на 4 блока:
1. Инициализация данных.
2. Основной бесконечный цикл.
3. Обработка прерывания по таймеру Т/С 0.
4. Обработка прерывания по таймеру Т/С 1.
В 1-м блоке инициализируются данные и запускается таймер Т/С 0, отвечающий за обновление индикаторов и опрос клавиатуры.
Основной бесконечный цикл отвечает за обновление 3-х байтов, в которых содержится визуальное значение мощности.
Главная же часть программы содержится в 3-м блоке. Прерывание вызывается с частотой 700 Гц, чтобы обеспечить своевременное обновление значений на 7-ми индикаторах (3 индикатора отвечают за мощность, остальные отображают время), не заметное для человеческого глаза.
Параллельно с обновлением значений производится опрос клавиатуры. Если клавиша была нажата, то определяется, какая и допустимо ли действие, которое должно быть вызвано нажатием данной кнопки (например, нельзя увеличить максимальную мощность). Если действие допустимо, то оно производится. Возможные действия: увеличение/уменьшение мощности, увеличение времени, включение микроволновой печи, выключение, сброс времени. В случае включения печи, происходит запуск таймера Т/С 1, который отвечает за обратный отсчет времени, в течение работы микроволновой печи.
4-й блок занимается непосредственно режимом работы. В нем происходит обратный отсчет, регулировка выходной мощности печи. А также изменение визуального значения времени.
7.2 Исходный текст программы
При написании программы использовалась учебная литература. [6].
NAME MicrowavePROGSEGMENTCODE
CONSTSEGMENTCODE
VAR1SEGMENTDATA
BITVARSEGMENTBIT
STACKSEGMENTIDATA
RSEG STACK
DS 10H ; 16 Bytes Stack
CSEG AT 0
USING0 ; Register-Bank 0
JMP START
CSEG AT 03h
reti
CSEG AT 0Bh
ljmpm_TF0
CSEG AT 13h
reti
CSEG AT 1Bh
ljmpm_TF1
CSEG AT 23h
reti
RSEG PROG
START:MOV SP,#STACK-1
; инициализация данных
mov R3, #0h
mov 21h, #00000111b ; задаем начальную мощность
mov 22h, #00010000b ; задаем байт шага (изменяется сдвигом от 10000 до 00001)
mov 30h, #3h ; задаем визуальные начальные значения мощности
mov 31h, #6h
mov 32h, #0h
mov 33h, #0h ; задаем визуальные начальные значения времени
mov 34h, #0h
mov 35h, #0h
mov 36h, #0h
mov 40h, #00111111b ; задаем матрицу цифр, для вывода на индикатор
mov 41h, #00000110b
mov 42h, #01011011b
mov 43h, #01001111b
mov 44h, #01100110b
mov 45h, #01101101b
mov 46h, #01111101b
mov 47h, #00000111b
mov 48h, #01111111b
mov 49h, #01101111b ; задали матрицу цифр, для вывода на индикатор
; 50h код кнопки
mov 55h, #0h ; байт периодов по 10с
mov 56h, #0h ; байт отсчета 10с
mov 57h, #40 ; байт отсчета 2-х секунд (40*0,05)
; инициализация и пуск таймеров
mov TMOD, #00010001b
mov TL0, #LOW(NOT(1428))
mov TH0, #HIGH(NOT(1428))
setb PT0
setb PT1
setb EA
setb ET0
setb ET1
setb TR0
mm:
mov R7, 21h
cjne R7, #1Fh, v_4
mov 30h, #6
mov 31h, #0
mov 32h, #0
sjmp mm
v_4:
mov R7, 21h
cjne R7, #0Fh, v_3
mov 30h, #4
mov 31h, #8
mov 32h, #0
sjmp mm
v_3:
mov R7, 21h
cjne R7, #7, v_2
mov 30h, #3
mov 31h, #6
mov 32h, #0
sjmp mm
v_2:
mov R7, 21h
cjne R7, #3, v_1
mov 30h, #2
mov 31h, #4
mov 32h, #0
sjmp mm
v_1:
mov R7, 21h
cjne R7, #1, mm
mov 30h, #1
mov 31h, #2
mov 32h, #0
sjmp mm
; R3-номер текущего отображаемого индикатора
m_TF0: ;обработка прерывания по 1-му таймеру
mov TH0, #HIGH(NOT(1428))
mov TL0, #LOW(NOT(1428))
;изменение визуальных значений мощности и времени
mov23h, R3
movC, 18h
movP3.3, C
movC, 19h
movP3.4, C
movC, 1Ah
movP3.5, C
cjneR3, #0, m_1; если она не 0, то переходим на m_1
movA, 30h ;вывод цифры на соответствующий индикатор
addA, #40h
movR0, A
movP1, @R0
sjmpm_end
m_1:cjneR3, #1, m_2
movA, 31h
addA, #40h
movR0, A
movP1, @R0
sjmpm_end
m_2:cjneR3, #2, m_3
movA, 32h
addA, #40h
movR0, A
movP1, @R0
sjmpm_end
m_3:cjneR3, #3, m_4
movA, 33h
addA, #40h
movR0, A
movP1, @R0
sjmpm_end
m_4:cjneR3, #4, m_5
movA, 34h
addA, #40h
movR0, A
movP1, @R0
sjmpm_end
m_5:cjneR3, #5, m_6
movA, 35h
addA, #40h
movR0, A
movP1, @R0
sjmpm_end
m_6:movA, 36h
addA, #40h
movR0, A
movP1, @R0
m_end:
jbP3.2, key ;
mov 50h, R3 ; Опрос клавиатуры
sjmpm_13 ; в 50h - код полученной кнопки
key: mov 50h, #80h
m_13:
movR6, 50h
cjne R6, #80h, m_20
ljmp m_11
m_20:
movR6, 50h
cjneR6, #0h, m_21 ;обработка кнопки + время
jbTR1, m_11
movR6, 55h
cjneR6, #240, m_30
sjmpm_11
m_30:
movR6, 56h
cjneR6, #10, mw
inc55h
sjmpm_11
mw:
mov56h, #10
sjmpm_11
m_21:
movR6, 50h
cjneR6, #1h, m_22 ;обработка кнопки + мощность
movA, 21h ; проверка тек. состояния мощности
anlA, #00010000b ; если максимальное,
cjneA, #10000b, m_31 ; то игнорируем
sjmpm_11
m_31:setbC
movA, 21h
RLCA
mov21h, A
sjmpm_11
m_22:
movR6, 50h
cjneR6, #2h, m_23 ; обработка кнопки - мощность
movR6, 21h
cjneR6, #1h, m_32 ; тек. мощность минимальна?
sjmpm_11
m_32:clrC
movA, 21h
RRCA
mov21h, A
sjmpm_11
m_23:
movR6, 50h
cjneR6, #3h, m_24 ; обработка кнопки старт
jbTR1, m_11
movR6, 55h
cjneR6, #0, m_33
movR6, 56h
cjneR6, #0, m_33
sjmpm_11
m_33: movTL1, #LOW(NOT(50000))
movTH1, #HIGH(NOT(50000))
setbTR1
clrP3.0
sjmpm_11
m_24: ; Обработка кнопки стоп
jbTR1, m_34
mov55h, #0h
mov56h, #0h
mov57h, #40
mov22h, #00010000b
sjmpm_11
m_34: clrTR1
setbP3.0
m_11:incR3
cjneR3, #7, m_12
movR3, #0
m_12:reti
m_TF1:
movTH1, #HIGH(NOT(50000))
movTL1, #LOW(NOT(50000))
movA, 21h
anlA, 22h
cjneA, #0, iz_0
setbP3.1
sjmpdc
iz_0:clrP3.1
dc:dec57h ;декремент байта осчета 2-х секунд
movR5, 57h
cjneR5, #20, t_1 ;если 20 то надо -1с
dec56h
sjmpt_end
t_1:
movR5, 57h
cjneR5, #0, t_end ;если 0 то смена шага + проверка на окончание работы и пр.
dec56h
movR5, 22h
cjneR5, #1, t_10
mov22h, #00010000b
movR5, 55h
cjneR5, #0, t_2 ; проверка на 0 интервалов по 10 с
clrTR1
mov22h, #00010000b
setbP3.0
setbP3.1
sjmpt_end
t_2:dec55h
mov56h, #10
sjmpt_11
t_10:movA, 22h ;
RRA
mov22h, A
t_11:mov57h, #40
t_end:
movA, 55h
movR5, 56h
cjneR5, #10, d__
incA
mov36h, #0
sjmpd_1
d__:mov36h, 56h
d_1:movB, #6
divAB
mov35h, B
movB, #6
divAB
mov34h, B
mov33h, A
reti
END
Заключение
В результате разработки была создана система управления микроволновой печью, удовлетворяющая поставленной задаче. В процессе разработки были использованы программы CorelDRAW и ProView фирмы Franklin Software Inc.
... . Производители могут использовать один из нескольких методов оценки: - Сравнение уровня продаж перед началом, во время действия и после окончания программы. - Опросы. - Эксперименты. Глава 2. МАРКЕТИНГОВОЕ ИССЛЕДОВАНИЕ РЫНКА МИКРОВОЛНОВЫХ ПЕЧЕЙ В ГОРОДЕ ПЫТЬ-ЯХ 2.1 Общая характеристика СВЧ-микроволновых печей Появление в начале 60-х микроволновых печей ознаменовало наступление ...
... операциях размещения и приема турецкой стороной при превышении плановых возможностей приема туристов со стороны прямого турецкого партнера ЧП "Аджунавиа-тур". Глава 3. Совершенствование системы управления международным туризмом чп "аджунавиа-тур" 3.1. Обоснование конкурентной привлекательности разработки нового туристического направления в деятельности ЧП "АДЖУНАВИА-ТУР" Настоящее и ...
... значение определяется как проекция центра тяжести фигуры, ограниченной функциями принадлежности выходной переменной с допустимыми значениями. Работу правила можно видеть на рис. 6. Основные шаги разработки нечеткой системы управления с использованием CAD-системы fuzzy TECH 3.0 Процесс разработки проекта нечеткой системы управления на fuzzy TECH разбивается, как уже говорилось, на четыре ...
... контроля за состоянием окружающей среды, при контроле состояния окружающей среды недостаточно полно используются современные информационные технологии, в связи с чем основные направления совершенствования системы управления охраной окружающей среды в Юго-Западном районе должны быть сосредоточены именно в сфере информатизации данного процесса. 2. Исследование методов оценки загрязнения окружающей ...
0 комментариев