Разработка кодового замка на базе микроконтроллера AVR презентация

Содержание


Презентации» Логистика» Разработка кодового замка на базе микроконтроллера AVR
Разработка кодового замка на базе микроконтроллера AVRОчередность этапов разработки
 1. Постановка задачи
 2. Разработка структурной схемы
 3.1. Постановка задачиОписание устройства
 Кодовый замок должен иметь защиту от неправильно введенного кода.
Предварительный выбор оборудования: 
 Выбираем микроконтроллер AVR имеющий четыре порта
 Клавиатура
Состав оборудования кодового замкаИсходные данные
 Тип кода – двоичный;
 Количество комбинаций – 256;
 Количество2. Разработка структурной схемыПодготовка к разработке структурной схемы 
 Требуется выбрать конкретное оборудование (покаРаспределение ресурсов микроконтроллера
 В данной разработке распределение ресурсов сводится к распределениюРазделение системы на подсистемы
 Для удобства проектирования разделим все устройство наСистема вводаТребования к системе ввода
 Требуется:
 1. Ввести код доступа
 2. Подтвердить,Выбор клавиатуры
 Выбираем двоичную клавиатуру
 В качестве кнопок ввода кода –КЛАВИАТУРАСхема включения кнопкиЭквивалентная схема линии портаСхема включения кнопки к порту MK с Pull-up резисторомСистема выводаТребования к системе вывода
 Требуется:
 1. Отображать на индикаторе набранный кодВыбор устройства индикации
 Выберем двоичный индикатор отображения набранного кода на основеУправление электромагнитом замка
 Требуется только открывать и закрывать замок
 Выберем схемуНастройка линий порта на ввод
 Порт А – ввод кода доступа
Настройка линий порта на вывод
 Порт С – отображение введенного кодаСтруктурная схемаАктивный уровень сигнала
 В качестве активного уровня сигнала управления внешними устройствами3. Разработка программного обеспеченияРазработка алгоритма
 Требуется разработать алгоритм работы кодового замкаНастройка портов ввода - выводаРаспределение линий портов 
 Ввод:
 Порт А 
 Порт DРегистры портовНастройка портаВыбор микроконтроллера
 На этом этапе выбираем микроконтроллер семейства AVR, имеющий четыреНаписание текста программы на языке ассемблера:
 В соответствии с ранее разработаннымТиповые программные модули инициализации микроконтроллера:
 Подключение стандартной библиотеки описания имен 
Подключение библиотеки: «Описание имен для ATmega32»
 .NOLIST
 .include "m32def.inc"
 .LISTНастройка портов ввода-выводаНастройка порта А на ввод
 ldi r16, $FF   Настройка порта D на ввод
 ldi r16, $FF   Настройка порта B на вывод
 ldi r16, $FF   Настройка порта C на вывод
 ldi r16, $FF   Настройка стека
 Например, определяем адрес указателя стека SP на ячейку 085FHНастройка указателя стека
 ldi R16, low (RAMEND) 
 out SPL, R16Примеры рабочих программных модулейОжидание нажатия кнопкиКоманды «Скип»
 sbic PINx, n – переход через следующую 		 	Ожидание нажатия кнопки (sbic)
 WAIT_KEY:	wdr
 					sbic PIND, 0
 					rjmp WAIT_KEY
 					nopОжидание отпускания кнопки (sbis)
 WAIT_KEY:	wdr
 					sbis PIND, 0
 					rjmp WAIT_KEY
 					nopИспользование команд ввода/вывода
 В командах ввода-вывода могут быть использованы любые регистрыЧтение порта 
 in r16, PINA  ; ввод информации изЗапись в порт 
 out PORTC, r16  ; вывод информацииВключить или выключить устройство
 Для управления некоторым устройством требуется она линияПример команды cbi 
 cbi PORTC, 2	;Сбросить линию порта C 				;Пример команды sbi 
 sbi PORTC, 2 ;Установить линию порта CПример сравнения содержимого регистров
 Сравним содержимое двух регистров R18 и R20
Используем команду вычитания 
 mov r19, r18 ; копирование заданного 			Реализация ветвлений в программе 
 В зависимости от того, что былиУсловные переходы по флагу «Z» 
 brne NE_RAVNO; переход на метку



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Разработка кодового замка на базе микроконтроллера AVR


Слайд 2
Описание слайда:
Очередность этапов разработки 1. Постановка задачи 2. Разработка структурной схемы 3. Разработка программного обеспечения 4. Разработка электрической принципиальной схемы 5. Комплексная отладка

Слайд 3
Описание слайда:
1. Постановка задачи

Слайд 4
Описание слайда:
Описание устройства Кодовый замок должен иметь защиту от неправильно введенного кода. В случае если неправильный код водится три раза должна срабатывать сигнализация. Предусмотреть индикацию введенного кода и режимы работы кодового замка.

Слайд 5
Описание слайда:
Предварительный выбор оборудования: Выбираем микроконтроллер AVR имеющий четыре порта Клавиатура Усилитель мощности Электромагнит замка Индикатор

Слайд 6
Описание слайда:
Состав оборудования кодового замка

Слайд 7
Описание слайда:
Исходные данные Тип кода – двоичный; Количество комбинаций – 256; Количество попыток ввода кода – 3; Сигнализация неправильно набранного кода.

Слайд 8
Описание слайда:
2. Разработка структурной схемы

Слайд 9
Описание слайда:
Подготовка к разработке структурной схемы Требуется выбрать конкретное оборудование (пока не выбирая микроконтроллер) Затем выбрать конкретный микроконтроллер Выполнить распределение ресурсов микроконтроллера

Слайд 10
Описание слайда:
Распределение ресурсов микроконтроллера В данной разработке распределение ресурсов сводится к распределению портов ввода - вывода

Слайд 11
Описание слайда:
Разделение системы на подсистемы Для удобства проектирования разделим все устройство на две системы: Система ввода Система вывода

Слайд 12
Описание слайда:
Система ввода

Слайд 13
Описание слайда:
Требования к системе ввода Требуется: 1. Ввести код доступа 2. Подтвердить, что код набран верно 3. В случае неправильно набранного кода выполнить сброс кода

Слайд 14
Описание слайда:
Выбор клавиатуры Выбираем двоичную клавиатуру В качестве кнопок ввода кода – 8 тумблеров с фиксацией Кнопки подтверждения и сброса без фиксации

Слайд 15
Описание слайда:
КЛАВИАТУРА

Слайд 16
Описание слайда:
Схема включения кнопки

Слайд 17
Описание слайда:
Эквивалентная схема линии порта

Слайд 18
Описание слайда:
Схема включения кнопки к порту MK с Pull-up резистором

Слайд 19
Описание слайда:
Система вывода

Слайд 20
Описание слайда:
Требования к системе вывода Требуется: 1. Отображать на индикаторе набранный код доступа 2. Управлять электромагнитом замка 3. Возможно подключение звукового сигнала

Слайд 21
Описание слайда:
Выбор устройства индикации Выберем двоичный индикатор отображения набранного кода на основе 8 светодиодов (LED) Добавим еще 2 светодиода: индикатор правильно набранного кода и индикатор неправильно набранного кода

Слайд 22
Описание слайда:
Управление электромагнитом замка Требуется только открывать и закрывать замок Выберем схему с усилителем релейного типа Таким образом нам требуется одна линия вывода для управления электромагнитом замка

Слайд 23
Описание слайда:
Настройка линий порта на ввод Порт А – ввод кода доступа Линия D0 – подтверждение правильно набранного кода

Слайд 24
Описание слайда:
Настройка линий порта на вывод Порт С – отображение введенного кода Линия В0 – подтверждение правильно набранного кода Линия В1 – набран неправильный код Линия В2 – управление замком Линия В3 – управление звуковым сигналом

Слайд 25
Описание слайда:
Структурная схема

Слайд 26
Описание слайда:
Активный уровень сигнала В качестве активного уровня сигнала управления внешними устройствами выбираем ЛОГИЧЕСКИЙ НОЛЬ

Слайд 27
Описание слайда:
3. Разработка программного обеспечения

Слайд 28
Описание слайда:
Разработка алгоритма Требуется разработать алгоритм работы кодового замка

Слайд 29
Описание слайда:
Настройка портов ввода - вывода

Слайд 30
Описание слайда:
Распределение линий портов Ввод: Порт А Порт D

Слайд 31
Описание слайда:
Регистры портов

Слайд 32
Описание слайда:
Настройка порта

Слайд 33
Описание слайда:
Выбор микроконтроллера На этом этапе выбираем микроконтроллер семейства AVR, имеющий четыре порта ввода-вывода. Предположим мы выбрали микроконтроллер ATmega32.

Слайд 34
Описание слайда:
Написание текста программы на языке ассемблера: В соответствии с ранее разработанным алгоритмом пишется программа работы микроконтроллера Ниже будут приведены примеры типовых программных модулей

Слайд 35
Описание слайда:
Типовые программные модули инициализации микроконтроллера: Подключение стандартной библиотеки описания имен Настройка портов ввода-вывода Настройка указателя стека

Слайд 36
Описание слайда:
Подключение библиотеки: «Описание имен для ATmega32» .NOLIST .include "m32def.inc" .LIST

Слайд 37
Описание слайда:
Настройка портов ввода-вывода

Слайд 38
Описание слайда:
Настройка порта А на ввод ldi r16, $FF ; загрузка константы FFH в ; регистр R16 out PORTA, r16; Загрузка содержимого R16 в ; регистр данных порта А)

Слайд 39
Описание слайда:
Настройка порта D на ввод ldi r16, $FF ; загрузка константы FFH в ; регистр R16 out PORTD, r16; Загрузка содержимого R16 в ; регистр данных порта D)

Слайд 40
Описание слайда:
Настройка порта B на вывод ldi r16, $FF ; загрузка константы FFH в ; регистр R16 out PORTB, r16 ; Загрузка содержимого R16 в ;регистр данных порта B ldi r16, $FF ; загрузка константы FFH в ; регистр R16 out DDRB, r16 ; Загрузка содержимого R16 в ;регистр направления порта В

Слайд 41
Описание слайда:
Настройка порта C на вывод ldi r16, $FF ; загрузка константы FFH в ; регистр R16 out PORTC, r16 ; Загрузка содержимого R16 в ;регистр данных порта C ldi r16, $FF ; загрузка константы FFH в ; регистр R16 out DDRC, r16 ; Загрузка содержимого R16 в ;регистр направления порта C

Слайд 42
Описание слайда:
Настройка стека Например, определяем адрес указателя стека SP на ячейку 085FH (последняя ячейка IRAM ATmega32) Содержимое регистра указателя стека определяется: Регистр Н-адрес Н-код SPH 3EH 08H SPL 3DH 5FH

Слайд 43
Описание слайда:
Настройка указателя стека ldi R16, low (RAMEND) out SPL, R16 ldi R16, high (RAMEND) out SPH, R16 START: wdr

Слайд 44
Описание слайда:
Примеры рабочих программных модулей

Слайд 45
Описание слайда:
Ожидание нажатия кнопки

Слайд 46
Описание слайда:
Команды «Скип» sbic PINx, n – переход через следующую команду (скип) если бит порта ввода сброшен sbis PINx, n – переход через следующую команду (скип) если бит порта ввода установлен

Слайд 47
Описание слайда:
Ожидание нажатия кнопки (sbic) WAIT_KEY: wdr sbic PIND, 0 rjmp WAIT_KEY nop

Слайд 48
Описание слайда:
Ожидание отпускания кнопки (sbis) WAIT_KEY: wdr sbis PIND, 0 rjmp WAIT_KEY nop

Слайд 49
Описание слайда:
Использование команд ввода/вывода В командах ввода-вывода могут быть использованы любые регистры с именами от R0 до R31 В примерах приведенных далее в качестве регистра будет использован только регистр R16

Слайд 50
Описание слайда:
Чтение порта in r16, PINA ; ввод информации из порта A ; в регистр r16 in r16, PIND ; ввод информации из порта D в ;регистр r16

Слайд 51
Описание слайда:
Запись в порт out PORTC, r16 ; вывод информации из ; регистра r16 в порт C out PORTD, r16 ; вывод информации из ; регистра r16 в порт D

Слайд 52
Описание слайда:
Включить или выключить устройство Для управления некоторым устройством требуется она линия вывода Рекомендуется использовать команды операций с отдельными битами порта cbi – сбросить (в ноль) линию порта sbi – установить (е единицу) линию порта

Слайд 53
Описание слайда:
Пример команды cbi cbi PORTC, 2 ;Сбросить линию порта C ; с номером 2

Слайд 54
Описание слайда:
Пример команды sbi sbi PORTC, 2 ;Установить линию порта C ;с номером 2

Слайд 55
Описание слайда:
Пример сравнения содержимого регистров Сравним содержимое двух регистров R18 и R20 R18 – заданная величина R20 – неизвестная величина Требуется определить равны они или нет

Слайд 56
Описание слайда:
Используем команду вычитания mov r19, r18 ; копирование заданного ; значения sub r19, r20 ; вычитание неизвестной ; величины из копии заданного После операции вычитания в r19 помещается разность и устанавливаются флаги (С, Z и т.д.)

Слайд 57
Описание слайда:
Реализация ветвлений в программе В зависимости от того, что были равны или не равны значения в регистрах, требуется организовать ветвления в программе. Используем команды условных переходов

Слайд 58
Описание слайда:
Условные переходы по флагу «Z» brne NE_RAVNO; переход на метку ;«NE_RAVNO» если ; результат не равен нулю ; флаг «Z» сброшен breq RAVNO ; переход на метку ;«RAVNO» если ; результат равен нулю ; флаг «Z» установлен


Скачать презентацию на тему Разработка кодового замка на базе микроконтроллера AVR можно ниже:

Похожие презентации