Содержание
Введение
Постановка задачи
Описание системы
Выбор микроконтроллера
Описание структуры системы
Спецификация элементов
Характеристики элементов
6.1 Стабилизатор на КР142ЕН5
6.2 Дешифратор К155ИД13
6.3 Индикаторы
Программа
7.1 Структура
7.2 Текст
Заключение
Введение
Появление микропроцессоров сыграло важную роль в развитии электронных вычислительных средств, являющихся основой автоматизации в различных сферах человеческой деятельности.
Современный микропроцессор – довольно сложное устройство, работу которого нельзя описать в деталях вне связи с системой, в составе которой он функционирует (в отличие от других более простых электронных приборов). Поэтому в данном курсовом проекте описывается система, обеспечивающая работу микроволновой печи, как пример простейшей микропроцессорной системы.
Контроллер для микроволновой печи представляет собой устройство, которое:
обрабатывает сигналы, поступающие с панели управления;
обеспечивает заданный режим работы в течение заданного времени;
обеспечивает индикацию оставшегося времени работы печи и мощность.
Это достигается с помощью простых схемотехнических решений и программных средств.
1. Постановка задачи
Задачей данного проекта является создание системы управления микроволновой печью. Мощность печи составляет 600 Вт. Пользователь задает один из 5-ти режимов работы (600 Вт, 480 Вт, 360 Вт, 240 и 120 Вт), затем выставляет необходимое время работы печи (от 10 с до 40 мин) с шагом по 10 с. После он должен нажать кнопку «Старт». Во время работы печи включается подсветка, вращается подставка, для лучшего распределения энергии и включается вентиляция печи. В случае необходимости пользователь может менять мощность по ходу работы печи, также временно приостановить работу (с последующей возможностью увеличения времени работы печи) или остановить ее совсем. По окончании времени работы печь автоматически отключается. На лицевой панели печи отображается установленная мощность и время, оставшееся до конца работы печи.
2. Описание системы
Структурная схема системы представлена на рисунке 1.
/>
Рис. 1.
1 – установка времени работы и мощности, а также пуск/останов.
2 – отображение установленной мощности и времени, оставшегося до конца работы.
3 – основной прибор комплекса, обрабатывающий поступающую информацию и управляющий внешними устройствами.
4 – микроволновый излучатель.
5 – служит для вентиляции печи во время приготовления пищи.
6 – двигатель вращает подставку, на которую ставиться приготавливаемая пища, для лучшего распределения энергии.
7 – подсветка позволяет следить за процессом приготовления пищи.
Вид клавиатуры.
Кнопки «+ мощность» и «- мощность» для изменения мощности работы печи.
«+ 10 с.» увеличивает время работы на 10 с.
«Старт» — включение печи.
«Стоп/Сброс» выключение печи, а если она выключена, то сброс времени
При подаче питания устанавливается режим работы ожидания, т.е. время сброшено, печь выключена, начальная мощность 360 Вт. С клавиатуры можно ввести время работы, изменить мощность, включить и выключить печь.
Таким образом, можно регулировать режимы приготовления/разогрева пищи.
На дисплее, в зависимости от установленного времени и мощности будут отображаться соответствующие параметры.
3. Выбор микроконтроллера
Центральное место в схеме занимает микроконтроллер, который выполняет арифметические и логические операции, осуществляет программное управление процессом обработки информации, организует взаимодействие всех устройств, входящих в систему. Работа МК происходит под воздействием сигналов схемы синхронизации и начальной установки.
Я остановил свой выбор на микроконтроллере семейства АТ89 фирмы Atmel.
Фирма Atmel Corporation — один из крупнейших мировых производителей микросхем энергонезависимой памяти. Фирма поставляет микросхемы энергонезависимой памяти практически всех видов: EEPROM с параллельным интерфейсом объемом до 4-х Мбит и несколькими типами последовательных интерфейсов объемом до 1-го Мбит, Flash EEPROM одноблочного и многоблочного типа с 8-ми и 16-ти разрядным параллельным интерфейсом объемом до 16-ми Мбит, многоблочные Flash EEPROM с последовательным интерфейсом объемом до 32-ти Мбит, 8-ми и 16-ти разрядные однократно программируемые EPROM cерии 27ххх до 8 Мбит, EEPROM для загрузки микросхем FPGA.
Богатый опыт производства электрически перепрограммируемой памяти позволил фирме Atmel выйти на рынок с недорогими микроконтроллерами семейства MCS-51 (AT89Cxx), оснащенными Flash EEPROM для хранения программ. Будучи 100% совместимыми как программно, так и аппаратно со стандартными микросхемами семейства MCS-51 и обладающими очень выгодной ценой, микроконтроллеры серии AT89Cxx становятся отличным выбором в условиях снижения или прекращения их производства такими традиционными производителями, как Intel. Кроме того, эти микроконтроллеры значительно более удобны и экономически выгодны на этапе разработки устройства, так как не требуют специальных отладочных вариантов микроконтроллеров и исключают процесс стирания с помощью источника ультрафиолетового излучения. Микроконтроллеры изготавливаются по КМОП (CMOS) технологии и имеют полностью статическую структуру. Микроконтроллер разработан с применением статической логики, которая не требует непрерывной синхронизации. Поэтому частота тактового генератора может быть уменьшена или же он может быть остановлен в ожидании события, требующего обработки. Это также способствует снижению потребления по питанию. В состав семейства входят микроконтроллеры 15-ти типов (май 1998). [2]
Основными элементами базовой архитектуры семейства (архитектуры микроконтроллера 8051) являются:
— 8-разрядное АЛУ;
— 4 банка регистров, по 8 в каждом;
— внутренняя (резидентная) память программ 4 Кбайт, имеющая тип ROM или EPROM (8751);
— внутренняя (резидентная) память данных 128 байт;
— 21 регистр специальных функций;
— булевый процессор;
— два 16-разрядных таймера/счетчика;
— контроллер последовательного порта (UART);
— контроллер обработки прерываний с двумя уровнями приоритетов;
— четыре 8-разрядных порта ввода/вывода, два из которых используются в качестве шины адреса/данных для доступа к внешней памяти программ и данных;
— встроенный тактовый генератор. [1]
Кроме стандартных микроконтроллеров из семейства MCS-51 (80C51, 80C52) фирма Atmel создала также несколько собственных модификаций. Прежде всего, это сокращенные микроконтроллеры, выполненные в 20-ти выводных корпусах, AT89C1051, AT89C2051 и AT89C4051, обладающие различным объемом памяти и имеющие меньшее число линий ввода/вывода, чем их 40-ка выводные собратья, тем не менее являющиеся полностью программно и аппаратно с ними совместимыми в рамках доступных ресурсов. Мы используем в своем проекте микроконтроллер AT89C1051 из-за малого объема памяти используемой в данной работе.
Базовая структура микроконтроллеров совпадает с базовой структурой микроконтроллеров семейства MCS-51 и отечественных микроконтроллеров серий 1816/51 и 1830/51, однако микроконтроллеры многих типов содержат новые запоминающие и периферийные устройства, а некоторые устройства базовой структуры имеют иные характеристики
Микроконтроллеры семейства AT89 выпускаются для работы при разных значениях напряжения питания и тактовой частоты, определяемой частотой подключенного к микроконтроллеру кварцевого резонатора. Диапазоны значений напряжения питания (Vcc) и тактовой частоты (Fosc) у микроконтроллера указаны в Таблице 1. Ток потребления зависит от величины напряжения питания и тактовой частоты. В Таблице 1 приведены значения тока потребления в рабочем режиме (Icc) при максимальном значении напряжения питания и Fosc=12 МГц.
Таблица 1
Тип МК
Vcc (В)
Fosc (МГц)
Icc (мА)
N
АТ89С1051
2,7-6,0
0-24
15
20
Кроме рабочего режима в микроконтроллере может быть переведен в энергосберегающие режимы работы — режим холостого хода (Idle Mode) и режим пониженного энергопотребления (Power Down Mode).
В режиме холостого хода процессор остановлен, периферийные устройства продолжают работать, коды в IRAM сохраняются. Ток потребления уменьшается в 4-5 раз. Перевод в режим холостого хода выполняется по команде в программе, выход из режима — по сигналу сброса или при поступлении любого разрешенного запроса прерывания.
Микроконтроллеры выпускаются в корпусах разных типов с разным числом выводов, при этом число выводов, используемых для подключения микроконтроллера к схеме устройства, может отличаться от числа выводов корпуса. В Таблице 1 указано число выводов (N), используемых для подключения микроконтроллера к схеме устройства.
Микроконтроллеры, имеющие N=20, выпускаются в корпусах PDIP20 и SOIC20. Все микроконтроллеры семейства АТ89 программируются и перепрограммируются пользователем. [2]
Стандартно микроконтроллеры имеют 5 источников прерываний: 2 внешних прерывания, 2 прерывания по таймеру и прерывание от последовательного порта. Прерывание по каждому источнику может быть индивидуально разрешено или запрещено путем установки или сброса в соответствующих битов в регистре разрешения прерываний IE, расположенном в пространстве SFR. Для каждого из источников прерываний может быть запрограммирован один из двух уровней приоритета путем установки или сброса соответствующего бита в регистре приоритетов прерываний IP. [3]
4. Описание структуры системы
Принципиальная электрическая схема приведена на рисунке 2.
Центральное место в схеме занимает выбранный выше микроконтроллер. К нему подключаются периферийные устройства.
В нашем случае, периферийными устройствами будут служить: клавиатура, семисегментные индикаторы, излучатель, двигатель, вентилятор и лампочка.
/>
Рис.2
При реализации клавиатуры и индикации были применены дешифраторы К155ИД13 и два индикатора: трехсегментный E1-3040APR3 и четырехсегментный E3-4040APR2. При питании схемы использовался стабилизатор напряжения КР142ЕН5А. Все характеристики этих элементов приведены ниже.--PAGE_BREAK--
Логическая блок-схема приведена на рисунках 3, 4, 5, 6.
/>
Рис.3
Прерывание по таймеру 0
/>
Рис. 4
Прерывание по таймеру 1
/>
Рис.5
5. Спецификация элементов системы
Спецификация элементов используемых в системе приведена в таблице 3.
Таблица 3
Обозначение элемента
Название элемента
Тип элемента
DD0,DD1
Дешифратор
К155ИД13
HG0
Трехсегментный индикатор
Е1-3040APR3
HG1
Четырехсегментный индикатор
Е3-4040APR2
R3…R9
Резистор
3 кОм
R2
Резистор
5 кОм
R0,R1
Резистор
1.5 кОм
R10
Резистор
5.1 кОм
DA1
Стабилизатор
КР142ЕН5А
SW1…SW5
Ключи
K0,K1
Реле
РЭС-6
VT0, VT1
Транзистор
КТ315Б
VT2…VT8
Транзистор
КТ361Б
VD0,VD1,VD3, VD4
Диод
VD522
VD2, VD5
Стабилитрон
1N5240C
C0, C1
Конденсатор
0,33 мкФ
C3, C4
Конденсатор
30 пФ
С5
Конденсатор
10мФ
С2
Конденсатор
100мФ
ZQ
Кварцевый резонатор
12 МГц
6. Характеристики элементов
6.1 Стабилизатор фиксированного напряжения 5 вольт КР142ЕН5А
Микросхема КР142ЕН5А трехвыводной стабилизатор с фиксированным выходным напряжением 5 вольт могут найти применение в широком спектре радиоэлектронных устройств в качестве источниках питания логических систем, измерительной технике, устройств высококачественного воспроизведения и других радиоэлектронных устройств. Внешние компоненты могут быть использованы для ускорения переходных процессов. Входной конденсатор необходим только в том случае, если регулятор находиться на расстоянии более 5 см от фильтрующего конденсатора источника питания.
Существует четыре разновидности таких приборов — на это указывают буквы в конце маркировки: А, Б, В или Г. Чтобы обеспечить нормальную работу чипа, параллельно его входу подключают конденсатор не менее 1 мкФ, а параллельно выходу не менее 2,2 мкФ. Выходное стабилизированное напряжение для чипа с маркировкой А составляет 5±0,1 В, Б — 6±0,12 В, В — 5±0,18 В, Г — 6±0,21 В.
Номинальное входное напряжение — 15 В, минимальное для КР142ЕН5(А, В) — 7,5 В, для КР142ЕН5(Б, Г) — 8,5 В. Максимальный выходной ток для чипов с индексами А и Б — 3 А, для В и Г — 2 А. Собственный потребляемый ток — 10 мА. Рассеиваемая теплоотводом мощность — 10 Вт. Температура окружающей среды, при которых чипы сохраняют работоспособность — от -45°С до +100°С. [4], [5].
Основные характеристики
Допустимый выходной ток 1А
Не требуются внешние компоненты
Внутренняя термозащита
Защита выходного транзистора
Внутреннее ограничение тока КЗ
/>
Рис. 6
Расположение выводов
1 Вход
2 Земля
3 Выход
Электрические характеристики
Все параметры преведены в таблице 4 при Vin=10В, Iout=500mA, 0°C
Таблица 4
Наименование
Обозначение
Условия измерения
Мин.
Тип.
Макс.
Единица измерения
Выходное напряжение
Vout
Tj=25°C
4.9
5.0
5.1
B
7B
5mA
Pt
4.75
-
5.25
B
Нестабильность по
входному напряжению
Voline
Tj=25°C
7B
-
3
100
mB
8B
-
1
50
mB
Нестабильность потоку нагрузки
Vo
load
Tj=25°C
5mA
-
15
100
mB
продолжение
--PAGE_BREAK----PAGE_BREAK--
Раб.
Красный
GaP
700
5.0
5.2
360
600
7. Программа
7.1 Структура программы
Написание и отладка программы производились в программе ProView фирмы Franklin Software Inc.
ProView фирмы Franklin Software Inc. – интегрированная среда разработки программного обеспечения для однокристальных микроконтроллеров семейства Intel 8051 и его клонов. Она включает в себя всё, что нужно для создания, редактирования, компиляции, трансляции, компоновки, загрузки и отладки программ:
— стандартный интерфейс Windows,
— полнофункциональный редактор исходных текстов с выделением синтаксических элементов цветом,
— организатор проекта,
— транслятор с языка C,
— ассемблер,
— отладчик,
— встроенную справочную систему.
Среда разработки подобна Visual C++ Microsoft и Borland C++ для Windows.
ProView объединяет все этапы разработки прикладной программы в единый рекурсивный процесс, когда в любой момент времени возможен быстрый возврат к любому предыдущему этапу.
Программу можно поделить на 4 блока:
Инициализация данных.
Основной бесконечный цикл.
Обработка прерывания по таймеру Т/С 0.
Обработка прерывания по таймеру Т/С 1.
В 1-м блоке инициализируются данные и запускается таймер Т/С 0, отвечающий за обновление индикаторов и опрос клавиатуры.
Основной бесконечный цикл отвечает за обновление 3-х байтов, в которых содержится визуальное значение мощности.
Главная же часть программы содержится в 3-м блоке. Прерывание вызывается с частотой 700 Гц, чтобы обеспечить своевременное обновление значений на 7-ми индикаторах (3 индикатора отвечают за мощность, остальные отображают время), не заметное для человеческого глаза.
Параллельно с обновлением значений производится опрос клавиатуры. Если клавиша была нажата, то определяется, какая и допустимо ли действие, которое должно быть вызвано нажатием данной кнопки (например, нельзя увеличить максимальную мощность). Если действие допустимо, то оно производится. Возможные действия: увеличение/уменьшение мощности, увеличение времени, включение микроволновой печи, выключение, сброс времени. В случае включения печи, происходит запуск таймера Т/С 1, который отвечает за обратный отсчет времени, в течение работы микроволновой печи.
4-й блок занимается непосредственно режимом работы. В нем происходит обратный отсчет, регулировка выходной мощности печи. А также изменение визуального значения времени.
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 продолжение
--PAGE_BREAK--
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.