49865 (Устройство управления электроплитой), страница 3

2016-07-30СтудИзба

Описание файла

Документ из архива "Устройство управления электроплитой", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49865"

Текст 3 страницы из документа "49865"

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4098
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее