
- •1.1.Анализ Технического Задания
- •1.2.Цель и назначение проекта
- •1.2.1.Анализ требований
- •1.2.1.1.Технические требования
- •1.3. Выбор аналога
- •1.3.1. Обзор однокристальных микроконтроллеров(мк)
- •1.3.1.1. Микроконтроллеры семейства mcs-51
- •Базовая архитектура семейства
- •1.4. Микроконтроллеры компании SiliconLabs (Cygnal)
- •1.5. Микроконтроллеры фирмы philips
- •1.6. Микроконтроллеры фирмы siemens
Система управления светофорами на пешеходном переходе
Разработать программное обеспечение для системы управления светофорами на пешеходном переходе (Рис. 4.1,а).
На пешеходном переходе размещены два светофора для транспорта, управляемые сигналами: R (RED) — красный, Y (YELLOW) — жёлтый, G (GREEN) — зелёный; а также два светофора для пешеходов, управляемые сигналами: rd — красный, gr —зелёный. Кроме того, перекрёсток оборудован кнопками запроса перехода s1 и s2.
Нетрудно убедиться в том, что система управления должна работать, как конечно-автоматная модель, граф переходов которой показан на Рис. 4.1,б. Генерируемые в каждом из состояний выходные сигналы указаны на выносках. Система имеет четыре состояния: GREEN (включён зелёный сигнал для транспорта и красный — для пешеходов), YELLOW (включён жёлтый сигнал для транспорта и красный - для пешеходов), RED (включён красный сигнал для транспорта и зелёный - для пешеходов) и YELRED (включены красный и жёлтый сигналы для транспорта и красный - для пешеходов). Входными сигналами системы являются сигнал нажатия на одну из кнопок запроса перехода S = s1 V s21), а также внутренний флаг окончания отсчета заданного времени Tend.
1)V — операция ИЛИ, дизъюнкция.
а)
YELLOW
Tend(5c)
YELLOWRED
б)
Рис. 4.1. Система управления светофорами на пешеходном переходе: а) схема системы; б) конечно-автоматная модель.
Сразу после сброса система переходит в состояние GREEN, в котором включён зелёный сигнал для транспорта и красный — для пешеходов. После нажатия кнопки, если прошло не менее 10 секунд после возврата системы в состояние GREEN, (S х Tend) система переходит в состояние YELLOW и включает жёлтый свет для транспорта, для пешеходов продолжает гореть красный сигнал. Транспорт останавливается. Через 5 секунд (Tend) система переходит в состояние RED и включает красный свет для транспорта и зелёный — для пешеходов. Пешеходы переходят дорогу. Через 20 секунд (Tend) система переходит в состояние YELRED, включает красный свет для пешеходов и красный вместе с жёлтым - для транспорта. Пешеходы завершают переход, а транспорт готовится начать движение. Ещё через 5 секунд (Tend) система возвращается в состояние GREEN и снова ожидает нажатия на кнопку запроса перехода. Таким образом, модель адекватно описывает требуемое поведение системы (длительность временных интервалов выбрана условно).
Формально построенные в соответствии с моделью граф-схемы главного алгоритма управления светофорами TRAFFIC_LIGHT и процедуры обработки прерывания ISR_TM3 приведены на Рис. 4.2. Поскольку основной функцией каждого из состояний является сохранение управляющих сигналов, заданных оператором инициализации, тело цикла не содержит операторов. Исключение можно сделать только для состояния RED, когда пешеходы переходят дорогу. В этот момент нужно очищать флаг запроса перехода, так как эти запросы удовлетворяются именно в этом состоянии и новые запросы являются ложными. В процедуре обработки прерывания вычисляется входной сигнал S = s1 V s2, производится декремент переменной отсчёта времени TIME и установка флага Tend, если она равна после этого 0. С учетом требуемых временных интервалов время переполнения таймера можно выбрать равным 100 мс.
Конфигурирование МК для данной задачи включает запрет сторожевого таймера, а также конфигурирование таймеров и портов ввода/вывода. Для этого с помощью мастера конфигурации (Configuration Wizard 2) можно открыть окно Timers и на вкладке Timer 3 нажать кнопку конфигурации прерываний (Configure Timer Interrupts), что вызывает открытие окна конфигурации прерываний Interrupts. Там надо установить флажок разрешения прерываний Enable Timer 3 Interrupt и нажать кнопку ОК, что возвращает процесс к продолжению конфигурации таймера 3. Далее надо установить флажок разрешения таймера Enable Timer и ввести начальное (Timer Initial Value) и перезагружаемое (Timer Reload Value) значения для данного таймера, рассчитанные с учётом частоты SYSCLK = 2 МГц, коэффициента предделения SYSCLK/12 и времени переполнения 100 мс:
Timer Reload Value = 65536 - 100000*2/12 ≈ 48869 = ВЕЕ5Н.
Вид окна Timers после конфигурирования показан на Рис. 4.3. Нажатие кнопки ОК в этом окне завершает конфигурирование таймеров. Затем можно открыть окно Port I/O, выбрать для выводов портов Р1.3, Р1.4, Р1.5, Р1.6 и Р1.7 режим Push-Pull и установить флажок Enable Crossbar (см. Рис. 4.3). Нажатие кнопки ОК в этом окне завершает конфигурацию МК. После этого код конфигурации, сохранённый в файле TrafficLight_conf, содержит четыре подпрограммы: конфигурации источников сброса, конфигурации таймеров, конфигурации ввода/вывода и конфигурации прерываний.
Рис. 4.2. Система управления светофорами на пешеходном переходе: граф-схема алгоритма
Puc. 4..1. Система управления светофорами па пешеходном переходе: конфигурация МК.
Исходный код для системы управления светофорами на пешеходном переходе, сохранённый в файле TrafficLight, приведён ниже.
;-------------------------------------------------------------------------------------------------------
; Задача 30: Система управления светофорами на пешеходном переходе
;--------------------------------------------------------------------------------------------------------
;----------------------------------------------------------------
;TrafficLight.ASM
;--------------- Глобальные/локальные переменные ----------------
$INCLUDE(C8051F020.INC) ; Файл с определениями для МК
extrn code (Init_Device)
;------------------------ Константы ----------------------------
R equ P1.7 ; RED - Красный для транспорта
Y equ P1.6 ; YELLOW - Желтый для транспорта
G equ P1.5 ; GREEN - Зеленый для транспорта
rd equ P1.4 ; red - Красный для пешеходов
gr equ P1.3 ; green - Зеленый для пешеходов
s1 equ P1.1 ; Кнопка запроса перехода 1
s2 equ P1.0 ; Кнопка запроса перехода 2
Tmr3if equ 80H ; Маска флага прерывания таймера 3
;------------------------- Сегменты -----------------------------
my_stack segment idata
rseg my_stack
ds 10h
my_data SEGMENT DATA
RSEG my_data
TIME: DS 1 ; Счетчик времени
my_bit SEGMENT BIT
RSEG my_bit
Tend: dbit 1 ; Флаг окончания интервала времени
S: dbit 1 ; Флаг нажатия кнопок запроса перехода
cseg at 0
;-------------------- Вектора прерываний ------------------------
org 00h ; Вектор сброса
LJMP Config
ORG 073h ; Вектор таймера 3
ljmp ISR_TM3
org 0B3h ; Конец области прерываний
;--------------------- Код инициализации ------------------------
Config: mov sp,#my_stack-1 ; Инициализация стека
lcall Init_Device ; Вызов подпрограммы конфигурации
mov P1,#13h ; Инициализация порта rd=1, s1,s2 - входы
clr S ; Очистить флаг нажатия кнопок
clr Tend ; Очистить флаг времени
setb EA ; Разрешить прерывания
;--------------------- Главная программа ------------------------
;********** Состояние GREEN *************************
GREEN: clr R ; Инициализация состояния GREEN
clr Y
setb G
mov TIME,#100
waitg: jnb S,$ ; S and Tend?
jbc Tend,YELLOW
sjmp waitg
;********** Состояние YELLOW ************************
YELLOW: clr G ; Инициализация состояния YELLOW
setb Y
mov TIME,#50
waity1: jbc Tend,RED ; Tend?
sjmp waity1
;********** Состояние RED ***************************
RED: clr Y ; Инициализация состояния RED
setb R
clr rd
setb gr
mov TIME,#200
waitr: clr S ; Очистить флаг нажатия кнопок
jbc Tend,YELRED ; Tend?
sjmp waitr
;********** State YELRED ************************
YELRED: setb Y ; Инициализация состояния YELRED
clr gr
setb rd
mov TIME,#50
waity2: jbc Tend,GREEN ; Tend?
sjmp waity2
;------------- Подпрограммы обработки прерываний ----------------
ISR_TM3:anl tmr3cn,#not(Tmr3if); Очистить флаг прерывания таймера 3
mov c,s1 ; S = s1 or s2
orl c,s2
mov S,c
djnz TIME,skip ; TIME = 0?
setb Tend ; Установить Tend
skip: reti
END
В разделе «Константы» присвоены символические имена выводам порта Р1 МК, а также присвоено значение для маски сброса флага прерывания таймера 3, поскольку регистр управления этого таймера не является бит-адресуемым. В разделе «Сегменты» определён переместимый сегмент DATA, в котором зарезервирован 1 байт для переменной отсчёта времени TIME, и переместимый сегмент BIT, в котором определены флаги Tend и S. В разделе «Векторы прерываний» в дополнение к традиционному вектору сброса определён вектор прерывания таймера 3 в соответствии с Табл. 1.4. В разделе «Код инициализации» добавлены команды инициализации порта Р1 и флагов, а также команда глобального разрешения прерывании. Код, приведённый в разделах «Главная программа» и «Подпрограммы обработки прерываний», построен согласно граф-схеме Рис. 4.2 и снабжён подробными комментариями. Для проверки состояний флагов и перехода с одновременным сбросом флага использована специальная команда jbc bit, rel.
1.1.Анализ Технического Задания
Техническое задание представленное в приложении, содержит несколько основных положений.
Назначение:
Разрабатываемая автоматизированная система, предназначена для эффективного пропуска автотранспорта и безопасного перехода пешеходов через дорогу, во избежание пробок и заторов на дорогах и несчастных случаев при передвижении пешеходов.
Функции:
Разрабатываемая автоматизированная система должна выполнять функцию по смене показаний сигналов светофоров для автотранспортав зависимости от сигналов поданных для включения разрешающих сигналов пешеходных светофоров.
1.2.Цель и назначение проекта
Цель проекта – спроектировать программное обеспечение для автоматизации системы управления оборудованием, на основе микроконтроллера (ОЭВМ)1C8051F300.
1.2.1.Анализ требований
Конечной целью дипломного проекта является создание ПОдля автоматизации системы управления оборудованием на основе ОЭВМ, из тех, которые в настоящее время представлены разработчиками.
Иными словами, микропроцессорная система повышенной надежности - это такая микропроцессорная система, которая может быть продана потребителю в условиях рыночной экономики. В этом смысле микропроцессорная система относится к категории товара.
Существует множество характеристик качества программного обеспечения. Однако, рассматривая программный продукт как товар, можно уменьшить их общее количество и выделить следующие специфические для программного обеспечения характеристики качества.
1.2.1.1.Технические требования
В качестве технических требований мы примем:
Нивелирование тепловыделения. Данное требование характерно для всех микропроцессорных систем. Так как при работе, у морально устаревших аналогов, высокий уровень тепловыделения может привести к выходу из строя микропроцессорной системы.
Уменьшение энергопотребления.Данное требование характерно для всех микроконтроллерных систем. Чем меньше энергопотребление микроконтроллера, тем дольше срок службы элемента автономного питания. И соответственно тем меньше будут затраты экономические затраты на расходные материалы в целом.
Отказоустойчивость. Данное требование характерно для всех систем управления устройствами, например систему управления станками (ЧПУ-числовое программное устройство)
1.3. Выбор аналога
С развитием электроники сменилась элементная база ЭВМ – появились машины на транзисторах, а затем на микросхемах. Однако по традиции продолжали разрабатываться большие и мощные ЭВМ. И вот в середине 60-х годов появился новый класс вычислительных машин – однокристальные ЭВМ.
Разработчики ОЭВМ исходили из того, что не везде нужны все (максимальные) возможности больших ЭВМ, не всегда требуется большая точность вычислений, большие объемы памяти или длительное хранение промежуточных результатов. Зато для целого ряда применений, таких, как управление производственным оборудованием или научным экспериментом, необходимо вводить и выводить специальные сигналы, учитывать течение времени, реагировать на случайно происходящие события.
Вместе с этим, есть то минимальное ядро, без которого аппаратура еще не ЭВМ. Эти компоненты уже давно определились :АЛУ2, процессор, ОЗУ, устройства ввода/вывода.
С развитием электроники сменилась элементная база ЭВМ – появились машины на транзисторах, а затем на микросхемах. Однако по традиции продолжали разрабатываться большие и мощные ЭВМ. И вот в середине 60-х годов появился новый класс вычислительных машин – однокристальные ЭВМ.
Разработчики ОЭВМ исходили из того, что не везде нужны все (максимальные) возможности больших ЭВМ, не всегда требуется большая точность вычислений, большие объемы памяти или длительное хранение промежуточных результатов. Зато для целого ряда применений, таких, как управление производственным оборудованием или научным экспериментом, необходимо вводить и выводить специальные сигналы, учитывать течение времени, реагировать на случайно происходящие события.
Вместе с этим, есть то минимальное ядро, без которого аппаратура еще не ЭВМ. Эти компоненты уже давно определились :АЛУ, процессор, ОЗУ, устройства ввода/вывода.