Кодовый замок на микроконтроллере
Граф состояний контроллера кодового замка. Последовательность разработки замка зуммерного типа для обеспечения доступа в лабораторию только знающим код замка. Программа тревожной сигнализации. Разработка общей блок схемы алгоритма работы микроконтроллера.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 29.05.2012 |
Размер файла | 32,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Государственное образовательное учреждение
Высшего профессионального образования «СибГУТИ»
Колледж телекоммуникаций и информатики
Курсовая работа
Кодовый замок на микроконтроллере
Группа М-901
Гаврилова Николая Васильевича
2011
ЗАДАНИЕ
НА КУРСОВУЮ РАБОТУ ПО ПРЕДМЕТУ
«Вычислительная техника»
Кодовый замок на микроконтроллере
Исходные данные
В нормальном состоянии электромагнитный замок закрыт. Закрытое состояние сопровождается импульсным свечением светодиода с частотой f Гц. Чтобы открыть замок, необходимо вставить в приемное отверстие считывателя 4-х битную ключ-таблетку параллельного действия. Если набранный код совпадает с эталонным, питание с электромагнита снимается, замок открывается замок открывается на Т сек и можно войти в помещение. При закрывании двери питание на электромагнит замка снова подается.
При попытке открыть дверь с неправильно набранным кодом МК возвращается в исходное состояние, после чего можно повторить попытку открыть дверь. Предусмотреть возможность отпирания замка из помещения.
пояснительная записка
введение.
Разработка принципиальной схемы кодового замка.
Инженерная интерпретация поставленной задачи.
Выбор и описание алгоритма программы.
Формирование текста исходной программы.
Таблица прошивки РПЗУ.
Заключение. Результаты проверки работы программы.
Индивидуальное задание
Вариант |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
Подключение ключа-таблетки |
RA1-RA4 |
RB1-RB4 |
RB2-RB5 |
RB3-RB6 |
RB4-RB7 |
RA1-RA4 |
RB1-RB4 |
RB2-RB5 |
RB3-RB6 |
RB4-RB7 |
|
Частота импульсного свечения, f Гц |
0,8 |
2,0 |
1,25 |
1,2 |
2,5 |
1,5 |
1,8 |
2,2 |
2,4 |
2,8 |
|
Время удержания двери открытой, t, сек |
1,0 |
1,0 |
1,6 |
1,66 |
1,6 |
1,2 |
1,1 |
1,35 |
1,26 |
1,16 |
|
Повышенная оценка «хорошо» |
Отпирание замка из помещения организовать с использованием прерывания по входу RB0/INT или RB4 - RB7 |
Введение
Среди цифровых интегральных микросхем МК сегодня занимают примерно такое же место, как операционные усилители среди аналоговых. Это -- универсальные приборы, их применение в электронных устройствах самого различного назначения, постоянно расширяется. Разработкой и производством МК занимаются почти все крупные и многие средние фирмы, специализирующиеся в области полупроводниковой электроники. Перечень и основные параметры МК некоторых популярных семейств можно найти, например, в [1].
Современные МК (их раньше называли однокристальными микро-ЭВМ) объединяют в своем корпусе мощное процессорное ядро, запоминающие устройства для хранения выполняемой программы и данных, устройства приема входных и формирования выходных сигналов, многочисленные вспомогательные узлы. Общая тенденция современного "микроконтроллеростроения" -- уменьшение числа внешних элементов, необходимых для нормальной работы. На кристалле микросхемы размещают не только компараторы, аналого-цифровые и цифроаналоговые преобразователи, но и всевозможные нагрузочные и "подтягивающие" резисторы, цепи сброса. Выходные буферы МК рассчитывают на непосредственное подключение наиболее типичных нагрузок, например, светодиодных индикаторов. Почти любой из выводов МК (за исключением, конечно, выводов общего провода и питания) разработчик может использовать по своему усмотрению в качестве входа или выхода. В результате довольно сложный по выполняемым функциям прибор нередко удается выполнить всего на одной микросхеме.
Постоянное удешевление МК и расширение их функциональных возможностей снизило порог сложности устройств, которые целесообразно строить на их основе. Сегодня имеет смысл конструировать на МК даже такие приборы, для реализации которых традиционными методами потребовалось бы менее десятка логических микросхем средней и малой степени интеграции. Пожалуй, главным препятствием на этом пути остается консерватизм разработчиков, многие из которых до сих пор считают МК чем-то непостижимо сложным.
Между тем процессы разработки программы для МК и обычной принципиальной схемы цифрового устройства во многом схожи, В обоих случаях "здание" нужной формы строят из элементарных "кирпичей". Просто "кирпичи" разные: в первом случае -- набор логических элементов, во втором -- набор команд микроконтроллера.
Вместо взаимодействия между элементами с помощью обмена сигналами по проводам -- пересылка данных из одной ячейки памяти в другую внутри МК. Процесс пересылки "выплескивается" наружу, когда МК поддерживает связь с подключенными к нему датчиками, индикаторами, исполнительными устройствами и внешней памятью. Различаются и рабочие инструменты разработчика. На смену привычному карандашу, бумаге, паяльнику и осциллографу приходят компьютер и программатор, хотя на последнем этапе отладки изделия без осциллографа и паяльника все же не обойтись.
Еще одна трудность -- недостаточное количество полноценной технической документации и справочной литературы на русском языке. Большинство публикаций подобного рода в периодических изданиях и, особенно в русскоязычном Интернете, зачастую -- не более чем подстрочные переводы английских оригиналов. Причем переводчики, иногда мало знакомые с предметом и терминологией, истолковывают "темные" места по-своему, и они (места) оказываются довольно далекими от истины. Практически отсутствуют русскоязычные программные средства разработки и отладки программ МК.
Главное отличие МК от обычной микросхемы: он не способен делать что-либо полезное, пока в его внутреннее (иногда внешнее) запоминающее устройство не занесена программа -- набор кодов, задающий последовательность операций, которые предстоит выполнять. Процедуру записи кодов в память МК называют его программированием (не путать с предшествующим этому одноименным процессом разработки самой программы).
Необходимость программирования, на первый взгляд, может показаться недостатком. На самом же деле это главное достоинство, благодаря которому можно, изготовив, например, всего одну плату с МК и несколькими соединенными с ним светодиодными индикаторами и кнопками, по желанию, превращать ее в частотомер, счетчик импульсов, электронные часы, цифровой измеритель любой физической величины, пульт дистанционного управления и контроля и многое другое.
Возможность сохранять в секрете коды программы помогает производителям аппаратуры на МК в борьбе с конкурентами. Правда, излишняя секретность программ нередко создает радиолюбителям дополнительные трудности при ремонте или совершенствовании устройств на МК "чужой" разработки. Но это -- другой вопрос.
Еще недавно, приступая к проектированию конструкции на МК, разработчик стоял перед проблемой: можно ли решить поставленную задачу, используя приборы одного двух известных ему типов. Сегодня ситуация изменилась в корне. Из множества доступных МК следует выбрать тот, с помощью которого задача будет решена оптимальным образом. К сожалению, так поступают далеко не все. Возникла даже определенная "мода" на изделия тех или иных типов, образуются своеобразные группировки сторонников МК определенных семейств.
Свой выбор они обосновывают, как правило, на уровне "нравится -- не нравится". Нередко отрицательное мнение о каком-либо приборе объясняется единственной неудачной попыткой его применения, зачастую без попытки анализа и устранения причин неудачи. Некоторые фирмы распространяют документы под названием "Правда о..." с "объективным" сравнением своих приборов с изделиями конкурентов, и, как правило, -- в пользу первых. Особо доверять подобным публикациям не стоит, всегда найдется отчет о сравнении с обратными результатами и выводами.
Следует сказать, что, как и во многих других случаях, заведомо хороших или плохих МК нет и не может быть. Каждый из них способен показать отличные результаты при решении задач определенного класса и с трудом справляется с другими. Отсюда и разнообразие типов. Как правило, выигрыш по одному параметру сопровождается ухудшением других.
Самые простые примеры: МК, рассчитанный на многократное перепрограммирование, всегда дороже однократно программируемого аналога, а более скоростной прибор чувствительнее медленного к импульсным помехам и требовательнее к трассировке печатной платы. Конечно, существуют универсальные приборы, в достаточной мере пригодные для решения широкого класса задач. Тем не менее, проектируя, скажем, устройство с жидкокристаллическим дисплеем, стоит подумать об использовании в нем МК с встроенным контроллером такого дисплея.
Однако если необходимо лишь повторить ту или иную конструкцию, особой возможности выбирать МК нет, нужно использовать указанный в описании или его полный аналог, например, из числа изготавливаемых другими фирмами по лицензии. На вопрос, можно ли заменить МК одного типа другим, зачастую приходится давать отрицательный ответ, хотя теоретически такая возможность имеется: надо лишь переработать программу, а если число и назначение выводов заменяемого и заменяющего МК различны, то и печатную плату.
микроконтроллер кодовый замок
Инженерная интерпретация задачи
На основании анализа поставленной задачи можно выделить пять состояний, в которых может находиться МК-устройство в процессе работы.
Все исполнительные и индикаторные устройства выключены, замок закрыт. В этом состоянии - МК работает по «кольцу»: начальное состояние (НАЧ)>поворот ручки (ПР)>нажатие кнопки (НК)>ввод кода (ВК)>начальное состояние (НАЧ).
В начальном состоянии (НАЧ) МК находится после подачи напряжения Из этого состояния МК может вывести поворот ручки, нажатие кнопки или ввод кода.
В первом случае МК уйдет в режим тревожной сигнализации «СИГНАЛ». во втором случае в режим МК переходит в режим открывания двери (ОТКР). В третьем случае МК принимает код ключа-таблетки.
Граф состояний контроллера кодового замка
Если код ключа не совпадет с эталонным кодом, то осуществляется переход в состояние тревожной сигнализации (СИГНАЛ). в состоянии тревожной сигнализации МК формирует импульсные сигналы для пьезоизлучателя и светодиода и возвращается в исходное состояние.
При совпадении кодов (считывающее устройство примет код ключа-таблетки, совпадающий с эталоном) выполняется переход в состояние открывания двери (ОТКР). В состоянии ОТКР срабатывает электромагнит открывания двери Y1 и МК формирует задержку, необходимую для входа в лабораторию.
После закрывания двери ЗАКР - возврат в исходное состояние - МК переходит в начальное состояние.
Блок-схема алгоритма «Импульсное свечение светодиода»
Светодиод
выкл
Пауза 1 сек
Светодиод
вкл
Световой сигнал
1 сек
рис.4
Разработка кодового замка на МК
Требуется разработать замок зуммерного типа для обеспечения доступа в лабораторию только знающим код замка.
Электромагнитные замки состоят из электромагнита, прикрепленного к дверной коробке, и ответной пластины, монтируемой на дверь. В дежурном режиме на обмотку электромагнита подается постоянный ток удержания, вызывающий сильное магнитное поле, которое притягивает пластину двери, удерживая ее в закрытом состоянии. При снятии постоянного тока магнитное поле пропадает, и дверь может быть открыта. Все электромагнитные замки характеризуются максимальной нагрузкой удержания, (которая измеряется в кг и может доходить до 1000 кг) и малым током потребления.
Программа, которую необходимо занести в память МК DD1, чтобы превратить устройство, выполняющее функцию в кодового замка, приведена в табл. 1.
В нормальном состоянии замок закрыт и вход в лабораторию невозможен. Чтобы открыть замок, необходимо ввести код с помощью ключа-таблетки. Если набранный код совпадает с эталонным, хранящимся в МК, то замок открывается. В этом случае можно повернуть ручку и открыть дверь. После входа в лабораторию и закрытия двери МК переходит в начальное состояние.
При попытке открыть дверь с неправильно набранным кодом МК должен включить сигнал тревоги: перемежающийся световой и звуковой сигнал частотой 1 кГц и длительностью по 1 сек каждый. Выключение сигнала тревоги должно произойти после прекращения попыток открыть дверь при неправильно набранном коде, но не раньше, чем через 6 сек после включения. после отключения сигнализации можно повторить попытку открыть дверь. Предусмотреть возможность открывания замка изнутри.
По причинам, изложенным ниже, был выбран популярный сегодня МК PIC16F84А. В результате родилась схема устройства, содержащего всего одну микросхему.
В устройстве допустимо применение микроконтроллера PIC16F84А с любыми предельной частотой, типом корпуса и рабочим интервалом температур (об этих параметрах говорят цифровые и буквенные индексы после дефиса в обозначении микросхемы, например, -10I/Р). А если совершенствование программы не предполагается, можно использовать и дешевый однократно программируемый аналог PIC16CR84.
Условные обозначения: СК- считыватель кода с ключа-таблетки, BQ1--звуковой индикатор (пьезоизлучатель), VD1- светодиод для световой индикации. Y1 -электромагнит в качестве исполнительного механизма электрического замка, а поскольку непосредственно к выводу порта он не может быть подключен, то VT1 электронный ключ с включенным в коллекторную цепь реле (формирователь сигнала) для согласования выхода МК со входом электрического замка; S1 -датчик поворота ручки; S2 - кнопка для выхода из помещения.
Разработка общей блок схемы алгоритма работы МК
да
да
нет
нет
C1 ZQ1
+5B
C2 K1
O R3
R4 VD1
S1
S2 R5
R1 R2
K11 Y1
+
Uпит
Программа тревожной сигнализации
После того, как мы разработали алгоритм работы МК, можно приступать собственно к написанию программы. наша первая программа выполняет простейшую задачу: выдает перемежающийся световой и звуковой сигнал частотой 1 кГц и длительностью по 1 сек в течение 6 сек. Алгоритм ее работы представлен на рис.5. По включению контроллера программа выставит единицу на линию, к которой подключен светодиод, подождет 1сек, выставит нуль, затем выставит единицу на линию, к которой подключен пьезоизлучатель, подождет 0.5мс, выставит нуль, подождет 0.5мс, а затем повторит все заново в течение 1сек. Всю изложенную выше процедуру будем повторять 6 раз. для PIC16F84A используем генератор с частотой 4000 кГц. Светодиод подключим к линии RB2 (через резистор), зажигать его будем единицей, а пьезоизлучатель - к линии RB3, подавать на него будем импульсный сигнал.
Как уже упоминалось выше, каждый регистр специального назначения контроллера имеет свое название. В ассемблере для обращения к какому-то регистру можно использовать либо адрес этого регистра, либо его название.
Например, записать значение из регистра W в регистр INTCON можно как командой movwf Н'0B' так и командой movwf INTCON. Использование названия более предпочтительно, т.к. оно информативнее для программиста. Однако для того, что бы использовать название регистра сначала необходимо сопоставить само название числовому значению адреса. Сопоставление производится директивой ассемблера EQU. Например, INTCON EQU H'0B'. После этого при ассемблировании текста программы ассемблер при встрече строки “INTCON” будет вместо нее вставлять ее числовое значение 0BH.
Таким образом, все символьные имена регистров, используемых в программе, должны быть предварительно описаны. Однако самостоятельно описывать регистры специального назначения необходимости нет, т.к. в PIC Simulator IDE уже включены файлы с описаниями этих регистров для каждого PIC. Эти файлы необходимо только подключить к основной программе командой «#include». В нашем случае в начале программы нужно написать строку #include p16f84a.inc.
Кроме регистров специального назначения в программе будут использоваться и регистры общего назначения. Их надо описывать самостоятельно. Это можно делать так же с помощью директивы EQU, присвоив каждому символьному названию свой адрес. В нашей программе мы будем пользоваться шестью регистрами - счетчиками времени при формировании задержки на 0,5мс, 1сек. Назовем их cnt0 - cnt6. Таким образом, в программе необходимо написать следующий текст:
RA0-кнопка выхода изнутри
RA1-подключение исполнительного механизма
RA2-подключение светодиода
RB1-RB4-считывание кода
;------------------------------------------------------------------------------------------------------
#include p16f84a.inc
;---------------------------------------------------------------------------------------------------
ETALON equ 8h ;значение эталонного кода
cnt0 equ 10h ;счетчик задержки 0.5 мс
;счетчики задержки 1 сек
cnt1 equ 11h
cnt2 equ 12h
;-------------------------------------------------------------------------------------------
;Инициализация
;-------------------------------------------------------------------------------------------
bsf STATUS,RP0 ; выбор 1-го банка
movlw b'00000001' ;
movwf TRISA ; RB3-RB6 - входы
movlw b'01111000' ; RA0 - вход
movwf TRISB ; RA1-RA2 - выходы
clrf STATUS ; возврат в банк 0
goto Start ;вход в основную программу
;======================================================
;Подпрограммa задержки на 400мс-определяет частоту звука
;======================================================
Delay0.4 ;movlw .2 ; Записать в регистр W константу 2
; movwf Cnt2 ; Скопировать .10 из W в регистр Cnt2
Gama ;movlw .200 ; Записать в регистр W константу .10
;movwf Cnt1 ;cкопировать .100 из W в регистр Cnt1
Beta ;movlw .200 ; Записать в регистр W константу .20
;movwf Cnt0 ; Скопировать .200 из W в регистр Cnt0
Alfa nop ; холостая команда
nop ;
;decfsz Cnt0,f ; Декремент Cnt0 и переход
;goto Alfa ; к Alfa, если ноль
;decfsz Cnt1,f ; Декремент Cnt1 и переход
;goto Beta ; к Beta, если не не ноль
;decfsz Cnt2,f ; Декремент Cnt1 и переход
;goto Gama ; к Gama, если не ноль
return ; конец программы
OPEN
bsf PORTB,2 ;открыть дверь
call delay0.4 ;задержка
bcf PORTB,2 ;закрыть дверь
goto START ;к началу
return
;-------------------------------------------------------------------------------------------
;Основная программа
;======================================================
START
btfsc PORTB,0 ; кнопка нажата?
Goto OPEN
Bsf portB,3
Call delay0.4 ;да, перейти к ОPEN
movf PORTB,W
Bcf portB,3
Call delay0.4 ;нет, код в аккумулятор
btfsc STATUS,Z ;код введен?
Goto START ;нет, к началу
sublw ETALON ;да, вычитаем ETALON-W
btfss STATUS,Z ;коды не равны?
call open
Goto start ;нет. Перейти к Start
;======================================================
end
;======================================================
Размещено на www.allbest.ru
Подобные документы
Принцип работы кодового замка. Проектирование кодового замка с возможностью звуковой сигнализации при попытке подбора кода, на базе микроконтроллера с архитектурой MCS-51. Функциональная схема устройства, составление программы для микроконтроллера.
курсовая работа [3,2 M], добавлен 14.11.2010Разработка электронного кодового замка с использованием микроконтроллера PIC16F676. Назначение отдельных функциональных блоков. Возможные варианты структурных схем. Обоснование выбора структурной схемы устройства. Алгоритм работы структурной схемы.
курсовая работа [334,9 K], добавлен 18.06.2012Разработка электронного кодового замка, предназначенного для запирания дверей, с возможностью ввода кодовой комбинации. Системотехническое и схемотехническое проектирование. Расчет условных размеров печатной платы. Комплексные показатели технологичности.
курсовая работа [333,3 K], добавлен 26.12.2014Электронный замок: общая характеристика и принцип действия. Анализ вариантов реализации устройства. Разработка алгоритма функционирования, структурной и электрической принципиальной схемы электронного замка. Блок-схема алгоритма работы программы.
курсовая работа [363,3 K], добавлен 10.05.2015Общее описание восьмиразрядного высокопроизводительного однокристального микроконтроллера. Порты ввода-вывода. Разработка структурно-функциональной схемы. Выбор элементной базы, основные используемые процедуры. Описание алгоритма программы, ее листинг.
курсовая работа [28,4 K], добавлен 23.12.2012Устройство, принцип работы, обозначения диодных и триодных тиристоров. Вольт-амперные характеристики диодных и триодных тиристоров. Порядок включения тринисторов в цепях постоянного тока. Схема устройства, выполняющего функции дверного кодового замка.
реферат [663,7 K], добавлен 25.06.2014Загальна характеристика принципу роботи електронного замка. Написання коду програми, який забезпечить працездатність пристрою й подальшу його експлуатацію. Розробка принципової схеми і друкованої плати, системи керування створеним електронним замком.
дипломная работа [1,1 M], добавлен 03.05.2015Описание алгоритма работы и разработка структурной схемы микропроцессорной системы управления. Разработка принципиальной схемы. Подключение микроконтроллера, ввод цифровых и аналоговых сигналов. Разработка блок-схемы алгоритма главной программы.
курсовая работа [3,3 M], добавлен 26.06.2016Микросхема 555 - таймер: история создания, фирмы производители и аналоги, основные технические характеристики. Принцип работы и практическое применение. Идеологически устройство чипа. Пример работы кодового замка. Переменный подстрочный резистор.
курсовая работа [4,0 M], добавлен 16.06.2015Разработка системы считывания данных с пяти четырехбитных датчиков. Проектирование структурной схемы микроконтроллера, схемы электрической принципиальной, блок-схемы работы программного обеспечения устройства. Разработка алгоритма основной программы.
контрольная работа [275,4 K], добавлен 08.01.2014