Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Параметры представлены в таблице 6.
Таблица 6
1 |
Номинальное напряжение питания |
В 5 % |
2 |
Выходное напряжение низкого уровня |
не более 0,4 В |
3 |
Выходное напряжение высокого уровня |
,4...2,2 В |
4 |
Входной ток низкого уровня |
не более -1,6 мА |
5 |
Входной ток высокого уровня |
не более 0,04 мА |
6 |
Напряжение на антизвонном диоде |
не менее -1,5 В |
7 |
Ток потребления |
не более 70 мА |
8 |
Входной пробивной ток |
не более 1 мА |
9 |
Ток утечки на выходе |
не более -0,3 мА |
10 |
Потребляемая статическая мощность |
не более 367,5 мВт |
6.3 Индикаторы
Трехсигментный индикатор E1-3040APR3. [4]
10.16 мм, 3 разряда. Характеристики в таблице 7.
Таблица 7
Цвет свечения |
Кристалл |
Vf(V) |
Сила света Iv (ucd) |
Материал |
Длина волны (nm) |
Раб. |
Макс. |
Мин. |
Раб. |
|
Красный |
GaP |
.0 |
.2 |
Четырехсигментный индикатор E3-4040APR2. [4]
10.16 мм, 4разряда. Характеристики в таблице 8.
Таблица 8
Цвет свечения |
Кристалл |
Vf(V) |
Сила света Iv (ucd) |
Материал |
Длина волны (nm) |
Раб. |
Макс. |
Мин. |
Раб. |
|
Красный |
GaP |
.0 |
.2 |
. Программа
7.1 Структура программы
Написание и отладка программы производились в программе ProView фирмы Franklin Software Inc.
ProView фирмы Franklin Software Inc. интегрированная среда разработки программного обеспечения для однокристальных микроконтроллеров семейства Intel 8051 и его клонов. Она включает в себя всё, что нужно для создания, редактирования, компиляции, трансляции, компоновки, загрузки и отладки программ:
- стандартный интерфейс Windows,
- полнофункциональный редактор исходных текстов с выделением синтаксических элементов цветом,
- организатор проекта,
- транслятор с языка C,
- ассемблер,
- отладчик,
- встроенную справочную систему.
Среда разработки подобна Visual C++ Microsoft и Borland C++ для Windows.
ProView объединяет все этапы разработки прикладной программы в единый рекурсивный процесс, когда в любой момент времени возможен быстрый возврат к любому предыдущему этапу.
Программу можно поделить на 4 блока:
В 1-м блоке инициализируются данные и запускается таймер Т/С 0, отвечающий за обновление индикаторов и опрос клавиатуры.
Основной бесконечный цикл отвечает за обновление 3-х байтов, в которых содержится визуальное значение мощности.
Главная же часть программы содержится в 3-м блоке. Прерывание вызывается с частотой 700 Гц, чтобы обеспечить своевременное обновление значений на 7-ми индикаторах (3 индикатора отвечают за мощность, остальные отображают время), не заметное для человеческого глаза.
Параллельно с обновлением значений производится опрос клавиатуры. Если клавиша была нажата, то определяется, какая и допустимо ли действие, которое должно быть вызвано нажатием данной кнопки (например, нельзя увеличить максимальную мощность). Если действие допустимо, то оно производится. Возможные действия: увеличение/уменьшение мощности, увеличение времени, включение микроволновой печи, выключение, сброс времени. В случае включения печи, происходит запуск таймера Т/С 1, который отвечает за обратный отсчет времени, в течение работы микроволновой печи.
-й блок занимается непосредственно режимом работы. В нем происходит обратный отсчет, регулировка выходной мощности печи. А также изменение визуального значения времени.
7.2 Исходный текст программы
При написании программы использовалась учебная литература. [6].
NAME Microwave
PROGSEGMENTCODE
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.