Смекни!
smekni.com

Методические указания по выполнению курсового проекта для студентов 5 курса специальности 210100 "Управление и информатика в технических системах" (стр. 3 из 9)

9.4. Инженерная интерпретация задачи

На основе изучения поставленной задачи можно выделить пять состояний, в которых может находиться МК-устройство в процессе работы. Анализ работы МК-устройства иногда удобно проводить с использованием аппарата автоматных графов.

Граф контроллера кодового замка показан на рис. 2.

В начальном состоянии (НАЧ) контроллер оказывается после включения питания. Все исполнительные механизмы при этом выключены, замок закрыт. В этом состоянии контроллер может находиться неопределенное время, пока не будет нажата кнопка. После нажатия кнопки (К=0) осуществляется переход в состояние ввода и сравнения кода (ВСК).В состоянии ВСК контроллер инициирует засветку лампы и производит ввод трех контрольных цифр. Если коды не совпадут, то осуществляется возврат в состояние НАЧ, иначе выполняется переход в состояние ОТКР (открывание двери). В состоянии ОТКР зажигается сигнальная лампа, срабатывает соленоид открывания замка и контроллер ожидает открывания двери.

После закрывания двери (состояние ОЖ ЗАКР) контроллер переходит в начальное состояние. Если в состояниях НАЧ и ВСК контроллер обнаружит попытку открывания двери (поворот ручки защелки, D=0), то осуществляется переход в состояние тревожной сигнализации (СИГНАЛ).


Рис. 2. Граф состояний контроллера

Как видно, граф состояний позволяет (к сожалению, далеко не всегда) выполнить формализованное описание работы МК-устройства, которое не только помогает уточнить задачу, но и облегчает разработку схемы алгоритма ее решения.

9.5. Разработка блок-схемы алгоритма

На основе графа состояний разрабатывается не детализированная блок-схема алгоритма (рис.3). Состояние НАЧ реализуется операторами 1-2, состояние ВСК - операторами 3-10, состояние ОТКР - операторами 11-13, состояние ОЖ ЗАКР - операторами 14-16, а состояние СИГНАЛ - операторами 17-24. Оператор 5 является наиболее сложным для программной реализации.


Рис. 3. Блок-схема алгоритма работы контроллера

Как видно, из него имеется второй выход для отслеживания попытки открыть дверь при неправильно набранном коде (D). В блок-схеме отсутствуют операторы ввода. С целью упрощения графического алгоритма они заменены операторами проверки. Это упрощение не искажает смысла процедур, так как в МК51 имеется возможность совмещать в одной команде операцию ввода и операцию проверки бита.

9.6. Разработка прикладной программы

Текст исходной программы работы контроллера системы защиты является основным документом для последующих процедур трансляции, отладки и загрузки объектных кодов в РПП, в которых возможно использование средств автоматизации разработки прикладного программного обеспечения.

Исходный текст программы SEZAM, составленный в полном соответствии со схемой алгоритма, приводится ниже.

;*********************************************

;ОПРЕДЕЛНИЕ СИМВОЛИЧЕСКИХ ИМЕН

;*********************************************

;ОПРЕДЕЛЕНИЕ СИМВОЛИЧЕСКИХ ИМЕН БИТ ПОРТА 1

K BIT P1.2 ;КНОПКА

D BIT P1.3 ;ДАТЧИК ПОВОРОТА РУЧКИ

E BIT P1.5 ;ДАТЧИК ЗАКРЫТИЯ ДВЕРИ

Q BIT P1.4 ;СОЛЕНОИД ЗАМКА

S BIT P1.0 ;ВЫХОД НА ГРОМКОГОВОРИТЕЛЬ

L BIT P1.1 ;ВЫХОД НА ЛАМПУ

CODE_EX DATA 20H ;НАЧАЛО ОБЛАСТИ КОДОВ

;*********************************************

;ПРОГРАММА SEZAM

;*********************************************

ORG 0 ;НАЧАЛЬНЫЙ АДРЕС ПРОГРАММЫ

REPEAT:JNB D,ALARM ;ПЕРЕХОД, ЕСЛИ D=0

JB K,REPEAT ;ПОВТОРИТЬ, ЕСЛИ К=0

JNB K,$ ;ОЖИДАНИЕ ОТЖАТИЯ КНОПКИ

;ВВОД КОДОВ ОТ КНОПКИ

MOV R6,#3 ;(СЧЕТЧИК 1) <— 3

MOV R0,#CODE_EX ;НАЧАЛЬНЫЙ АДРЕС ОБЛАСТИ ;ВВЕДЕННЫХ КОДОВ

CYKLE: CLR А ;СБРОС РЕГИСТРА КОДА

CLR L ;ВКЛЮЧИТЬ ЛАМП/

MOV R5,#l20 ;(СЧЕТЧИК 2) <— 120

LOOP: ACALL DELAY ;ЗАДЕРЖКА 0,05 СЕКУНДЫ

JNB D,ALARM

JNB K,KZERO ;ПЕРЕХОД, ЕСЛИ К=0

DJNZ R5,LOOP ;ЦИКЛ 0ЖИДАНИЯ НЙЖАТИЯ

SJMP PAUSE ;ПЕРЕХО, ЕСЛИ ИСТЕКЛИ 6 СЕК.

KZERO: ACALL DELAY

JNB B,ALARM

JB K,ACCEPT ;ПЕРЕХОД, ЕСЛИ КНОПКИ ОТЖАТА

DJNZ R5,KZERO ;ОЖИДАНИЕ 0ТЖАТИЯ

SJMP PAUSE

ACCEPT:INC А ;ИНКРЕМЕНТ СЧЕТЧИКА НАЖАТИЯ SJMP LOOP

PAUSE: MOV @RO,A ;СОХРАНЕНИЕ ЧИСЛА НАЖАТИЙ INC RO

SETB L ;ВЫКЛЮЧЕНИЕ ЛАМПЫ

ACALL ONESEC ;ЗАДЕРХКА 1 СЕКУНДА

DJNZ R6,CYKLE ;ПОВТОРИТЬ 3 РАЗА

;СРАВНЕНИЕ ВВЕДЕННЫХ ЧИСЕЛ С ЭТАЛОННЫМИ ВАИТАМИ

MOV R0,CODE_EX

CJNE @RO,#7,REPEAT ;СРАВНЕНИЕ СТАРШИХ ЦИФР

INC RO

CJNE @RO,#3,REPEAT ;СРАВНЕНИЕ СРЕДНИХ ЦИФР

INC RO

CJNE @RO,@5,REPEAT;СРАВНЕНИЕ МЛАДВИХ ЦИФР

;ОТКРЫТИЕ ЗАМКА

CLR L ;ВКЛЮЧЕНИЕ ЛАМПЫ

CLR Q ;ОТКРЫТИЕ ЗАМКА

JNB E,$ ;ОЖИДАНИЕ ОТКРЫТИЯ ДВЕРИ

;ЗАКРЫТИЕ ЗАМКА

JB E,$ ;ОЖИДАНИЕ ЗАКРЫТИЯ ДВЕРИ

SETB L ;ВЫКЛЮЧЕНИЕ ЛАМПЫ

SETB Q ;ЗАКРЫТИЕ ЗАМКА

SJMP REPEAT ;ПЕРЕХОД К НАЧАЛУ

;ГРЕВОЖНАЯ СИГНАЛИЗАЦИЯ

;ФОРМИРОВАНИЕ СВЕТОВОГО СИГНАЛА

ALARM: MOV K6,#5 ;(СЧЕТЧИК) <— 5

L3: CLR L ;ВЫКЛЮЧЕНИЕ ЛАМПЫ

CALL ONESEC ;ПАУЗА 1 СЕКУНДА

SETB L ;ВЫКЛПЧЕНИЕ ЛАМПЫ

;ФОРМИРОВАНИЕ ЗВУКОВОГО СИГНАЛА

MOV R5,#5 ;СЧЕТЧИК ПОВТОРЕНИИ

L2: MOV К4,#200 ;ИНТЕРВАЛ 0,2 СЕКУНДЫ

LI: MOV R3,#248 ;ПЕРИОД ПРИБЛИЗИТЕЛЬНО РАВЕН

;1 МИЛЛИСЕКУНДЕ

CPL S ;ИНВЕРТИРОВАНИЕ S

DJNZ R3,$ ;ДЛИТЕЛЬНОСТЬ ИМПУЛЬСА

;ПРИМЕРНО 0,5 МИЛЛИСЕКУНДЫ

BJNZ R4,L1 ;ВНУТРЕННИЙ НИКЛ

DJNZ R5,L2 ;СРЕДНИЙ ЦИКЛ

DJNZ K6,L3 ;ВНЕИНИИ ЦИКЛ

JB D,REPEAT ;ПЕРЕХОД К НАЧАЛУ, ЕСЛИ В=1

MOV R6,#l ;ПРОДОЛЖЕНИЕ ТРЕВОГИ

SJMP L3

;********************************************* ;ПОДПРОГРАММЫ

;*********************************************

;ПОДПРОГРАММА ЗАДЕРжКИ 50 MC, ИСПОЛЬЗУЕТСЯ Т/СО,

;ПОГРЕШНОСТЬ НЕ БОЛЕЕ 2 МКС

DELAY: MOU TMOD,OOOlB ;HACTPUHKA Т/СО

MOV TH0,#HIGH(NOT(50000-16))

MOV TLO,LOW(NOT(50000-16))

SETB TCON.4 ;CTAPT T/CO

DEL-W:JNB TCON.5,DEL_W ;ОЖИДАНИЕ

АNL TCON,#NOT(30H);СТОП Т/СО, СБРОС TFO

RET ;ВОЗВРАТ

;ПОДПРОГРАММА ЗАДЕРЖКИ 1 СЕКУНДА,

! ИСПОЛЬЗУЕТСЯ: ПОДПРОГРАММА DELAY И РЕГИСТР R7

; ПОГРЕШНОСТЬ НЕ БОЛЕЕ 123 МКС

ONESEC: MOV R7,#20 ;СЧЕТЧИК ЦИКЛОВ

SEC_W: ACALL DELAY ;ЗАДЕРХКА 50 МС

OJNZ R7,SEC-W ;ОРГАНИЗАЦИЯ ЦИКЛА

RET ;ВОЗВРАТ

Для реализации временных задержек используются две программы. Подпрограмма DELAY реализует задержку 50 мс с использованием Т/СО. Подпрограмма ONESEC реализует задержку длительностью в 1 с. Для большей наглядности введены символические имена линий порта 1, используемых в работе контроллера замка. После включения питания по сигналу сброса включаются все исполнительные механизмы, в РУС заносится код 07Н, выбирается банк регистров 0 и запрещаются все прерывания. Допустим, что секретная (отпирающая) последовательность цифр образованна цифрами 7, 3 и 5 коды которых задаются в тексте программы.

Опрос кнопки в состоянии ВСК ведется дискретно (один раз в 50 мс), тем самым устраняется дребезг ее контактов. Введенные цифры кода замка сохраняются в РПД, начиная с адреса 20Н (CODE_EX). Генерация звукового сигнала реализуется чисто программным способом, для чего используется трехкратно вложенный цикл. Внутренний цикл задает длительность импульса и паузы примерно по 500 мкс. Тем самым получается периодический сигнал с частотой около 1 кГц и скважностью 2. Следующий цикл (счетчик R4) обеспечивает временной интервал генерации 0,2 с, а внешний цикл (счетчик R5) доводит время звучания до 1 с.

Объектные коды программы должны быть записаны в РПП, начиная с нулевой ячейки.

Длина программы составляет 121 байт; это значит, что МК-устройство допускает значительное расширение своих функциональных возможностей. (Например, можно организовать через УАПП МК51 связь множества кодовых замков с центральным диспетчером для сообщения о количестве человек, находящихся в лабораториях, для экстренных сообщений о многократных попытках несанкционированного входа в лабораторию, для получения от диспетчера нового значения кода и т.п.).

10. Некоторые теоретические и практические вопросы и методы их реализации в КП

10.1. Ввод информации с клавиатуры

Во многих применениях МК работают по заранее заданной программе без вмешательства человека. Наряду с этим существуют интерактивные МК-системы, включающие в контур управления человека-оператора. Простейший пример интерактивной управляющей системы - обслуживаемый МК, требующий ввода информации и ее отображения.

В качестве устройств ввода/вывода информации наиболее широкое распространение в МК-системах получили цифровые, алфавитно-цифровые и специальные клавиатуры, а также линейные дисплеи на семисегментных и матричных светодиодных индикаторах, алфавитно- цифровые и графические дисплеи на газоразрядных, жидкокристаллических и плазменных панелях.

10.1.1. Разновидности клавиатур

В различных по сложности и назначению управляющих системах используются разнообразные клавиатуры для ввода информации:

· простейшие, состоящие из клавиш управления типа СБРОС, ПУСК, ОСТАНОВ и т.д. ;

· цифровые, предназначенные для ввода данных и управления режимом работы МП-системы и состоящей из шестнадцатиричной клавиатуры и управляющих клавиш ЗАГРУЗКА, АДРЕС/ДАННЫЕ, ПОШАГОВЫЙ РЕЖИМ, ИНДИКАЦИЯ и т.д.;

· алфавитно- цифровые

· специализированные клавиатуры, в которых каждой клавише соответствует некоторая процедура процесса управления, например ПОВЫСИТЬ ДАВЛЕНИЕ В МАСЛЯНОЙ МАГИСТРАЛИ, ПОНИЗИТЬ ТЕМПЕРАТУРУ ОХЛАЖДАЮЩЕЙ ЖИДКОСТИ и т.п. ;