Файл: Разработка устройства управления на основе микроконтроллера attiny.docx
Добавлен: 12.12.2023
Просмотров: 74
Скачиваний: 6
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВОНАУКИИВЫСШЕГООБРАЗОВАНИЯ
РОССИЙСКОЙФЕДЕРАЦИИ
федеральное государственное бюджетное образовательное учреждение высшего образования «Казанский национальный исследовательский технический университет им. А.Н. Туполева-КАИ»
(КНИТУ-КАИ)
Институт Автоматики и электронного приборостроения
Кафедра электрооборудования
КУРСОВАЯ РАБОТА
по дисциплине «Микропроцессорные устройства электротехнических комплексов»
на тему: «Разработка устройства управления на основе микроконтроллера ATtiny»
Студент: Хамидуллин А.Р.
Учебная группа:3432
Преподаватель: Дудка Н. А.
Казань, 2022
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
Студенту учебной группы №3432 Хамидуллину А.Р.
По дисциплине «Микропроцессорные устройства электротехнических комплексов»
1.Тема проекта: «Кодовый замок »
2. Перечень подлежащих разработке вопросов:
- постановка задачи на разработку устройства управления на основе микроконтроллера;
- разработка принципиальной электрической схемы устройства управления на основе микроконтроллера; при разработке схемы предусмотреть использование для формирования входного сигнала кнопки, а для контроля состояния выходных сигналов – светодиода (светодиодов); использовать кварцевый резонатор с частотой 1 МГц для стабилизации частоты внутреннего генератора;
- словесно описать алгоритм работы устройства с детализацией операций, достаточных для разработки схемы алгоритма работы устройства;
- разработать схему алгоритма работы устройства управления;
- разработать программу на языке программирования Си для микроконтроллера ATtiny 2313 фирмы AVR;
- произвести отладку и компиляцию разработанной программы в программной среде CodeVisionAVR.
3. Исходные данные
1) Инструкция с техническим описанием микроконтроллера фирмы AtmelATtiny2313.
2) Программное обеспечение интегрированной среды разработки CodeVisionAVR.
Дата выдачи задания: 1 декабря 2022 г.
Руководитель проекта __________ Дудка Н. А.
(подпись)
Студент __Хамидуллин А.Р.________ __________
(подпись) (Фамилия, Инициалы)
Оглавление
Введение 3
Постановка задачи 4
Описание алгоритма работы устройства. 6
Блок схема алгоритма 8
Программа для микроконтроллера на языке программирования Си 10
Отладка и компиляция программы работы устройства управления в программной среде CodeVisionAVR. 16
Введение
Кодовые замки являются эффективным средством предотвращения доступа посторонних лиц к охраняемым помещениям. К их достоинствам можно отнести простоту в обращении, надёжность, возможность обеспечить высокую степень защиты, относительную лёгкость смены кода (по сравнению со сменой обычного механического замка). Также немаловажными являются отсутствие необходимости изготовления ключей при предоставлении доступа большому количеству людей и невозможность физической потери ключа. Недостатком таких систем можно назвать возможность для злоумышленника подсмотреть код или подобрать его. Однако, при большой разрядности кода или наличии конструктивных особенностей, препятствующих подбору кода, таких как ограничение количества попыток или введение временной задержки между неудачными попытками, эта задача сильно затрудняется, поэтому последний недостаток нельзя назвать существенным. В данном курсовом проекте осуществляется разработка электронного кодового замка с использованием микроконтроллера.
Постановка задачи
Разработать устройство управления в виде кодового замка. При
разработке в качестве микропроцессорного устройства, обеспечивающего
Формирование и обработку кодовой комбинации, использовать
микроконтроллер ATtiny2313. В качестве исполнительного устройства
использовать транзисторный ключ и электромагнитное реле.
Кодовая комбинация должна состоять из 4 цифр. Для набора кодовой
комбинации необходимо использовать 10 кнопок (обозначения «0» — «9»)
Для сброса неправильной комбинации использовать кнопку «Сброс». Для
забора кодовой комбинации использовать кнопку «Код». Для набора
кодовой комбинации необходимо произвести одновременное нажатие
кнопки «Код» и кнопок из набора цифр «0» - «9». Кнопки подключаются к
порту D и порту В. Кодовая комбинация набирается на порте D. Для подачи
управляющего сигнала на вход ключа использовать ИМС КМ155ЛИТ, выход
которой подключен к транзистору через резистор (схема с фиксированным
током базы), а входы подключены к выводам порта В. Кнопку «Кол»
подключить к выводу РОВТВ.7 Кнопку «Сброс» подключить к выводу
РОRTА.2. Для организации сброса ВС - цепочку подключить к порту
РОRTА.2
Источником тактового сигнала выбрать кварцевый резонатор c номинальной частотой 900 КГц. Длительность импульса сброса должна быть не менее 2.5 мкс.
Исходные данные для принципиальной электрической схемы
Микроконтроллер ATtiny2313.
RС- пепочка для сброса: С=100мкф, R = 100 Oм.
Диоды схемы И — Д102А, резистор R=1 кОм.
Транзисторный ключ: транзистор VT КТЗ15, резистор R= 2 кОм.
Электромагнитное реле: питание 12 Вольт и ток не более 250 мА, диод
для защиты от напряжения самоиндукции — Д102А.
Питание микроконтроллера - 5 Вольт.
Cхема электрическая принципиальная
Описание алгоритма работы устройства.
Укажем нашему устройству управления кодовый замок с комбинацией 9876. Кнопка «Код» должна быть отпущена при подаче напряжения на замок. Далее мы начинаем вводить нашу комбинацию, чтобы открыть замок. При нажатии на кнопку «Код» выдерживается пауза в 2 секунды, в течении этого времени мы должны нажать кнопки «1», «2», «3», «5».
Программа записывает комбинацию из 4 элементов. Исходя из нашего задания, проверяется 7 кнопок с «1» по «7» и при обнаружении первой кнопки, проверяется вторая и так по порядку.
Если будут нажаты необходимые кнопки кода, то на входы элемента и поступят единицы, а с его выхода на базу транзистора — высокий уровень сигнала, который откроет транзистор. Далее сработает реле и откроется замок.
После открытия кодового замка сработает задержка 2 секунды. Если в течение данного времени не открыть дверь, на входы логического элемента и поступят нули и с его выхода будет ноль, который закроет транзистор, что приведет к закрытию замка.
Если замок не был открыт, цикл будет повторяться до бесконечности.
Блок схема алгоритма
Рис.2-Блок схема алгоритма
Программа для микроконтроллера на языке программирования Си
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.5a Evaluation
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project : 19 вариант
Version : 1
Date : 22.12.2022
Author : Хамидуллин Артур Ринатович
non-commercial use only
Company : KNITU-KAI
Comments:
Chip type : ATtiny2313
AVR Core Clock frequency: 900,0000 KHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/
#include
#include
// Declare your global variables here
void main(void)
{
// Declare your local variables here
unsigned char temp;
int i,n,j;
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTB=0xFF;
DDRB=0x00;
// Port D initialization
// Func6=Out Func5=Out Func4=Out Func3=Out Func2=In Func1=In Func0=In
// State6=0 State5=0 State4=0 State3=0 State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x78;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
DIDR=0x00;
while (1)
{
while (PINB.7 == 0)
{
delay_ms(2000);
for (j = 1; j < 5; j++)
{
temp = PINB;
for (i = 1; i < 8; i++)
{
if (temp & 1 == 0)
n = i;
temp = temp»1;
}
if (n == 9) PORTB.3 = 1;
if (n == 8) PORTB.4 = 1;
if (n == 7) PORTB.5 = 1;
if (n == 6) PORTB.6 = 1;
}
}
delay_ms(2000);
PORTB.3 = 0;
PORTB.4 = 0;
PORTB.5 = 0;
PORTB.6 = 0;
}
}