Разработка стенда для изучения средств обеспечения безопасности на основе микропроцессорных систем управления
Построение структурной схемы датчиков и разработка микроконтроллерной системы обеспечения безопасности. Описание интерфейса системы, считывание и обработка данных с помощью сканирования отпечатков пальцев. Использование клавиатуры для ввода пароля.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 04.02.2016 |
Размер файла | 3,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
// номер карты считан успешно, то обрабатываем
// полученные данные
if(!mfrc522.PICC_IsNewCardPresent() &
!mfrc522.PICC_ReadCardSerial() )
{
// обработка полученных данных хранящихся в mfrc522.uid
delay(50);
}
}
}
Цифровая клавиатура
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
//указываемпиныстрок
introws[]={GPIO_Pin_0, GPIO_Pin_1,
GPIO_Pin_2, GPIO_Pin_3};
/указываем пины столбцов
intcols[]={GPIO_Pin_4, GPIO_Pin_5,
GPIO_Pin_6, GPIO_Pin_7};
//массив с соответствиями кодов нажатых кнопок
charsimbols[][2]=
{
{0,'1'},
{1,'2'},
{2,'3'},
{3,'A'},
{4,'4'},
{5,'5'},
{6,'6'},
{7,'B'},
{8,'7'},
{9,'8'},
{10,'9'},
{11,'C'},
{12,'*'},
{13,'0'},
{14,'#'},
{15,'D'}
};
// Процедура инициализации
voidInitGPIO(void){
//зададим питание
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,
ENABLE);
GPIO_InitTypeDefGPIOInit;
// Объявим инициализируемыепины
GPIOInit.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_1 |
GPIO_Pin_2 | GPIO_Pin_3);
// Установим скорость порта
GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;
// Укажем, что пины будут работать в режиме вывода
GPIOInit.GPIO_Mode = GPIO_Mode_Out_PP;
// Инициализируем пины согласно установленным в
// структуре параметрам
GPIO_Init(GPIOB, &GPIOInit);
// Объявим инициализируемыепины
GPIOInit.GPIO_Pin = (GPIO_Pin_4 | GPIO_Pin_5 |
GPIO_Pin_6 | GPIO_Pin_7);
// Установим скорость порта
GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;
// Укажем, что пины будут работать в режиме ввода
GPIOInit.GPIO_Mode = GPIO_Mode_IN_FLOATING;
// Инициализируем пины согласно установленным в
// структуре параметрам
GPIO_Init(GPIOB, &GPIOInit);
}
// функция поиска кода нажатой клавиши
// по ее положению (строка/столбец)
charFindKey(unsigned intkeyCode)
{
inti=0;
// в цикле перебираем все занесенные значения в массив
// и ищем совпадения с нужным элементом
for(i=0; i<16; i++){
if(simbols[i][0]==keyCode){
returnsimbols[i][1];
}
}
//если код не найден возвращаем '-'
return'-';
}
intmain(void)
{
InitGPIO();
while(1)
{
inti=0;
intj=0;
charcurrentKey;
//цикл для перехода по всем строкам
for(i=0;i<4;i++)
{
//подаем на текущую строку высокий уровень
GPIO_SetBits(GPIOB, rows[i]);
//цикл для переходов по всем столбцам
for(j=0;j<4;j++)
{
//если уровень высокий, то кнопка нажата
if(GPIO_ReadInputDataBit(GPIOB, cols[j]) == 1)
{
//выводим в терминал код нажатой кнопки
currentKey = FindKey(4*i+j);
}
}
//выключаем высокий уровень для пройденной строки
GPIO_ResetBits(GPIOB, rows[i]);
}
}
}
Сканер отпечатков пальцев
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
// процедуразадержки
voiddelay(uint32_t ms)
{
volatileuint32_t nCount;
RCC_ClocksTypeDefRCC_Clocks;
RCC_GetClocksFreq (&RCC_Clocks);
nCount=(RCC_Clocks.HCLK_Frequency/1000)*ms;
for(; nCount!=0; nCount--);
}
// процедура получения номера отпечатка
uint8_tgetFingerprintID()
{
uint8_t p = finger.getImage();
switch(p)
{
caseFINGERPRINT_OK:
Serial.println("Отпечатокнайден");
break;
caseFINGERPRINT_NOFINGER:
Serial.println("Отпечатокнеобнаружен");
returnp;
caseFINGERPRINT_PACKETRECIEVEERR:
Serial.println("Ошибкасвязи");
returnp;
caseFINGERPRINT_IMAGEFAIL:
Serial.println("Ошибкаизображения");
returnp;
default:
Serial.println("Неизвестнаяошибка");
returnp;
}
// Ошибок нет, продолжаем обработку
p = finger.image2Tz();
switch(p)
{
caseFINGERPRINT_OK:
Serial.println("Изображениепреобразовано");
break;
caseFINGERPRINT_IMAGEMESS:
Serial.println("Изображениеиспорчено");
returnp;
caseFINGERPRINT_PACKETRECIEVEERR:
Serial.println("Ошибкасвязи");
returnp;
caseFINGERPRINT_FEATUREFAIL:
Serial.println("Неудалосьраспознатьотпечаток");
returnp;
caseFINGERPRINT_INVALIDIMAGE:
Serial.println("Не удалось распознать отпечаток");
returnp;
default:
Serial.println("Неизвестнаяошибка");
returnp;
}
// Если изображение успешно преобразовано, то
// продолжаем обработку
p = finger.fingerFastSearch();
if(p == FINGERPRINT_OK)
{
Serial.println("Шаблоннайден");
} elseif(p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Ошибкасвязи");
returnp;
} elseif(p == FINGERPRINT_NOTFOUND) {
Serial.println("Не найден шаблон");
returnp;
} else{
Serial.println("Неизвестная ошибка");
returnp;
}
// если шаблон найден успешно, то продолжаем
Serial.print("Найден ID #"); Serial.print(finger.fingerID);
Serial.print(" сточностью "); Serial.println(finger.confidence);
}
// функция считывания отпечатка
// если не нашли возвращаем -1, иначе номер шаблона
intgetFingerprintIDez() {
uint8_t p = finger.getImage();
if(p != FINGERPRINT_OK) return-1;
p = finger.image2Tz();
if(p != FINGERPRINT_OK) return-1;
p = finger.fingerFastSearch();
if(p != FINGERPRINT_OK) return-1;
// если шаблон найден, то продолжаем
Serial.print("Найден ID #"); Serial.print(finger.fingerID);
Serial.print(" сточностью "); Serial.println(finger.confidence);
returnfinger.fingerID;
}
// главнаяпроцедура
intmain(void)
{
SoftwareSerialmySerial(GPIOA, GPIO_Pin_2,
GPIO_Pin_3);
Adafruit_Fingerprint finger =
Adafruit_Fingerprint(&mySerial);
// считываниеотпечатка
while(1)
{
getFingerprintIDez();
delay(50);
}
Размещено на Allbest.ru
Подобные документы
Разработка системы считывания данных с пяти четырехбитных датчиков. Проектирование структурной схемы микроконтроллера, схемы электрической принципиальной, блок-схемы работы программного обеспечения устройства. Разработка алгоритма основной программы.
контрольная работа [275,4 K], добавлен 08.01.2014Разработка интерфейса и уточнённой структурной схемы, процессорного модуля, подсистем памяти и ввода/вывода, алгоритма программного обеспечения. Оценка памяти программ и данных. Структура адресного пространства. Организация клавиатуры и индикации.
курсовая работа [2,4 M], добавлен 09.08.2015Структурная схема микроконтроллерной системы. Схемы подключения микроконтроллера, цифровых и аналоговых сигналов, линейного дисплея и клавиатуры. Текст главной программы на языке Ассемблера для МК51. Программа ввода и обработки аналоговой информации.
курсовая работа [372,6 K], добавлен 19.12.2013Разработка микроконтроллерной системы обработки дискретных и аналоговых сигналов. Обработка информации, поступающей с датчиков. Управление технологическим параметром в заданных пределах. Карта распределения адресного пространства памяти контроллера.
курсовая работа [968,3 K], добавлен 27.12.2014Принципиальные схемы вычислительного канала, устройств сравнения и контроля, безопасного ввода информации. Разработка алгоритма управления состоянием переезда, передачи и программного обеспечения. Расчет показателей безотказности и безопасности системы.
курсовая работа [822,8 K], добавлен 08.02.2014Обзор системы управления микроклиматом FC-403-65. Разработка структурной схемы системы управления температурным режимом теплицы. Выбор датчиков и исполнительных механизмов, принципиальная схема их подключения. Разработка инструкций по эксплуатации.
дипломная работа [1,8 M], добавлен 10.04.2017Принципы построения систем безопасности: принципы законности и своевременности и т.д. Рассматривается разработка концепции безопасности – обобщения системы взглядов на проблему безопасности объекта на различных этапах и уровнях его функционирования.
реферат [16,4 K], добавлен 21.01.2009Разработка структурной схемы ЦА-УПЧ. Синтез комбинационного цифрового устройства. Регистр параллельного действия, построенный на синхронных D-триггерах. Структура сумматора параллельного действия. Разработка схемы запуска, клавиатуры и зануления.
курсовая работа [225,3 K], добавлен 07.12.2012История обеспечения безопасности в открытых и закрытых компьютерных сетях. Применение административных и технических средств ее защиты, аппаратное обеспечение. Проблемы информационной безопасности в интернете. Построение системы хранения данных.
контрольная работа [108,0 K], добавлен 14.01.2014Исследование интегрированной системы безопасности (ИСБ), ее состава, функций и особенностей применения в авиапредприятии. Классификация технических средств и системы обеспечения безопасности авиапредприятия. ИСБ OnGuard 2000 с открытой архитектурой.
дипломная работа [79,0 K], добавлен 07.06.2011