Разработка стенда для изучения средств обеспечения безопасности на основе микропроцессорных систем управления

Построение структурной схемы датчиков и разработка микроконтроллерной системы обеспечения безопасности. Описание интерфейса системы, считывание и обработка данных с помощью сканирования отпечатков пальцев. Использование клавиатуры для ввода пароля.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 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

  • Основные технические требования, предъявляемые к цифроаналоговым преобразователям. Разработка структурной схемы учебного стенда. Описание алгоритма программного обеспечения. Разработка печатной платы. Расчет цены изделия и прибыли от его реализации.

    дипломная работа [2,5 M], добавлен 17.06.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.