Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Система управления светофорами на пешеходном пе...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
265.22 Кб
Скачать

Система управления светофорами на пешеходном переходе

Разработать программное обеспечение для системы управления светофорами на пешеходном переходе (Рис. 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-х годов появился новый класс вычислительных машин – однокристальные ЭВМ.

Разработчики ОЭВМ исходили из того, что не везде нужны все (максимальные) возможности больших ЭВМ, не всегда требуется большая точность вычислений, большие объемы памяти или длительное хранение промежуточных результатов. Зато для целого ряда применений, таких, как управление производственным оборудованием или научным экспериментом, необходимо вводить и выводить специальные сигналы, учитывать течение времени, реагировать на случайно происходящие события.

Вместе с этим, есть то минимальное ядро, без которого аппаратура еще не ЭВМ. Эти компоненты уже давно определились :АЛУ, процессор, ОЗУ, устройства ввода/вывода.