Разработка устройств на основе микроконтроллеров AVR фирмы Atmel Corporation

Автор работы: Пользователь скрыл имя, 17 Мая 2012 в 19:37, курсовая работа

Описание

Научно-технический прогресс неутомимо идет вперед, в результате не только в промышленной, но и в бытовой технике все шире используются встроенные компьютерные системы на основе микроконтроллеров.

Содержание

Вступление……………………………………………………………………………...3

Раздел 1. Разработка устройств на основе микроконтроллеров AVR фирмы Atmel Corporation……………………………………………………………………………....4

1.1. Общий обзор микроконтроллеров AVR…………………………………...4

1.2. Программное обеспечение…………………………………………………8

1.2.1. AVR Studio…………………………………………………….……8

1.2.2. Code Vision AVR…………………………………………………...9

1.4. Обзор микроконтроллеров AVR семейства Tiny………………………..10

Раздел 2. Задание на разработку устройства на основе микроконтроллера AVR..13

2.1. Выбор элементов системы управления и разработка принципиальной схемы……………………………………………………………………………13

2.2 Разработка алгоритма управляющей программы………………………...16

Раздел 3. Программная реализация задачи………………………………………….18

Вывод…………………………………………………………………………………..29

Список использованной литературы………………………………………………...30

Работа состоит из  1 файл

Мой курсовой.DOC

— 360.00 Кб (Скачать документ)

■  2 Кбайт  системной программируемой Flash-памяти программ;

■  128 байт EEPROM;

■  128 байт SRAM (ОЗУ);

■  18 линий  ввода—вывода (I/O);

■  32 рабочих  регистра;

■  однопроводной интерфейс для внутрисхемной отладки;

■  два многофункциональных  таймера/счетчика с функцией совпадения;

-   поддержка внешних и внутренних прерывании; последовательный программируемый USART-порт;

-   универсальный последовательный интерфейс с детектором начала передачи;

■  программируемый  сторожевой таймер с внутренним генератором;

■  три программно изменяемых режима энергосбережения.

     В режиме Idle происходит приостановка центрального процессора, остальные системы продолжают работать. Выход из этого режима возможен как по внешнему прерыванию, так и по внутреннему. Например, при переполнении таймера.

     В режиме Power Down сохраняется содержимое регистров, но приостанавливается работа внутреннего генератора и отключаются все остальные функции микросхемы. Выход из режима возможен по внешнему прерыванию или после системного сброса. Такое решение позволяет совмещать быстрый старт с низким энергопотреблением.

     Микросхема  изготовлена с использованием уникальной высокоточной технологии фирмы Atmel. Внутренняя Flash-память программ может быть перепрограммирована при помощи ISP-интерфейса без извлечения микроконтроллера из платы. Объединение 8-разрядного RISC-процессора внутрисистемной перепрограммируемой Flash-памятью на одном кристалле делают микросхему ATtiny2313 мощным средством, которое обеспечивает очень гибкие и недорогие решения многих прикладных задач управления.

     Для микросхемы ATtiny2313, как и всех остальных  микросхем серии AVR, существует полный набор документации и инструментальных программ:

■  компиляторы с языка С;

■  макроассемблеры;

■  программные  отладчики/имитаторы;

■  отладочные комплекты.

Рис. 1.1. Назначение выводов микросхемы ATtiny2313.

Рис. 1.2. Блок-схема микроконтроллера ATtiny2313.

Раздел 2. Задание на разработку устройства на основе микроконтроллера AVR.

      2.1. Выбор элементов  системы управления  и разработка принципиальной схемы. 

Задание: На базе 8-розрядного RISK микроконтроллера семейства AVR разработать электронный кодовый замок с функцией музыкального замка и изменением пароля.

      Введение  кода доступа происходит посимвольно  на клавиатурной матрице размером 4х3 и завершается после окончания  контрольного промежутка времени (1с), то есть через 1 секунду после прекращения манипуляций с клавиатурой, при этом фильтруются случайные переключения контактов при нажатии клавиш и одновременном нажатии нескольких клавиш. Длина кода возможна любая, она ограничена только размером ОЗУ и EEPROM микроконтроллера. Матричная организация уменьшает количество занятых выводов МК.

     Проверка  кода доступа происходит сравнением введённого значения с тем, которое  было установлено при конфигурировании кода доступа (которое было записано в EEPROM контроллера).

     При нажатии кнопки звонка генерируются мелодии, записанные в памяти микроконтроллера. Они сохраняется в ПЗУ в виде отсчётов сигнала. Генерация звукового сигнала совершается с помощью пьезоэлектрического динамика подачей на него периодического сигнала звуковой частоты.

     Изменение пароля происходит следующим образом: ввод старого пароля, проверка введенного пароля, если правильно введён, проверка режима записи, если замок находится в режиме записи, то ввод нового пароля, контрольный промежуток времени (1с.), открытие двери.  

      Выбор элементов схемы.

      Во-первых, за основу возьмём микроконтроллер ATtiny2313 (D1), так как для нашей задачи особо высокопроизводительного микроконтроллера не требуется, а эта модель полностью соответствует нашим требованиям, а также она имеет преимущества и особенности , которые были перечислены выше.

      Для более точного подсчёта времени  и корректного воспроизведения  звука возьмём кварцевый резонатор (Q1) рассчитанный на частоту 4МГц. Для его корректной работы также необходимо выбрать С1 и С2, формирующие цепи согласования кварцевого резонатора. Емкости конденсаторов C1 и C2, подключаемых между выводами резонатора и общим проводом, зависят от частоты и типа резонатора. Для кварцевого резонатора на частоту 4 МГц, например, емкость каждого конденсатора составляет порядка 22 пФ.

      Для подключения звукоизлучателя (динамика) применяется ключевой каскад на транзисторе VT1. Это самый простой способ получить звук достаточной

громкости, учитывая, что наш сигнал это прямоугольные  импульсы с амплитудой, почти равной напряжению питания. Транзисторный каскад нужен лишь для повышения нагрузочной способности.

     Микроконтроллер имеет два встроенных таймера/счетчика. Для формирования звука лучше подходит шестнадцатиразрядный таймер. Чем больше разрядов, тем с большей точностью можно выбирать его коэффициент деления.

     Это очень важно для создания нотного стана. Поэтому для формирования звука выберем шестнадцатиразрядный таймер Т1. Теперь определимся с режимом работы нашего таймера. Для генерации звука удобнее всего использовать режим СТС (сброс по совпадению). Нам просто нужно выбрать такой коэффициент деления, чтобы на выходе таймера получить колебания в звуковом диапазоне частот.

     Теперь  определимся с тем, как наш  сигнал будет попадать на внешний вывод микроконтроллера. Микроконтроллер предусматривает прямой вывод сигнала на один из своих выходов. Причем предусмотрены отдельные выходы для каждого из каналов совпадения. Для канала А подобный выход называется ОС1А. Он совмещен с третьим разрядом порта РВ и является альтернативной функцией данного контакта.

     Подключение и отключение сигнала совпадения к внешнему выводу ОС1А производится программным путем. Это позволяет программе в нужный момент включать или выключать звук. Так как для вывода звука мы будем использовать один из разрядов порта РВ, то для подключения датчиков воспользуемся другим портом. А именно портом PD.

      Однако  подобная схема имеет и свой недостаток. В отсутствие звукового сигнала на выходе PB3 микроконтроллера обязательно нужно установить низкий логический уровень. Высокий логический уровень приведет к тому, что транзистор VT1 будет постоянно открыт. Это вызовет недопустимо большой ток через головку VF1. Постоянно протекающий ток через обмотку динамика вызовет излишнюю потерю мощности и может даже вызвать выход из строя, как транзистора, так и динамика. При составлении программы необходимо учесть этот момент.

      Переключатель S11 предназначен для выбора режима работы. Если контакт переключателя S11 (на вход PB7 «0») замкнут, замок переходит в режим «Запись». Разомкнутые контакты (на PB7 «1») соответствуют режиму «Работа».

      Переключатель S11 предназначен для звонка. Если контакт  переключателя S11 (на вход PB6 «0») замкнут, звонок звенит. Разомкнутые контакты (на PB6 «1») – звонок прекращается.

     Схема управления механизмом замка состоит  из транзисторного ключа VT1 и электромагнитного реле К1. Резистор R2 ограничивает ток базы ключа. Диод VD1 служит для защиты от напряжения самоиндукции, возникающей на катушке реле. Питание реле осуществляется от отдельного источника + 12 В (питание микроконтроллера +5 В). Если в качестве VT1 применять транзистор КТ315, то электромагнитное реле может иметь рабочее напряжение +12 В и рабочий ток не более 250 мА. Контакты реле должны быть рассчитаны на управление исполнительным механизмом (соленоидом).

     Звуковая  часть и сам микроконтроллер питаются от напряжения +5 В. А электромагнит замка питается от отдельного источника + 12 В. Напряжение питания, подаваемое на микроконтроллер, обязательно должно быть стабилизированным. Питание на электромагнит стабилизировать совершенно необязательно. Для повышения громкости звонка и для защиты от помех питание для звуковой схемы можно осуществлять от напряжения, поступающего на вход стабилизатора.

     Обычно  напряжение на входе стабилизатора  равно +7...+11 В. Поэтому можно электромагнит и звуковую схему запитывать от одного нестабилизированного источника +12 В. Те же 12 В можно подавать на вход стабилизатора, с выхода которого снимать напряжение +5 В для микроконтроллера.

     Для экономии и уменьшения количества занятых  выводов применяем матричную организацию клавиатуры 3х4. Выводы подключаются к порту PORTD.

     Каждый  вывод строчек клавиатуры подтянут к «плюсу» резистором 2 кОм. Это нужно для того, чтобы в случае, если ни одна кнопка не нажата, на входы контроллера приходила «1». Если этого не сделать – на входе будет так называемое 3-е состояние – не пойми чего. Это не пойми чего, контроллер может понять совершенно произвольно. Может посчитать «нулем», может – «единицей», что вызовет ложные «нажатия» клавиш.

     Выбранный вариант схемы показан на рис. 2.1.

     Рис. 2.1. Принципиальная схема электронного кодового замка. 
 
 
 
 
 
 
 
 
 

     2.2 Разработка алгоритма  управляющей программы.

Алгоритм программы, и алгоритмы подпрограмм. 

Рис 2.2. Алгоритм основного цикла.

Рис 2.2. Алгоритм прерывания по таймеру Т1. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Раздел 3. Программная реализация задачи.

;------------------------- Псевдокоманды управления 

.include "tn2313def.inc" ; Присоединение файла описаний

.list     ; Включение листинга 

.def drebL = R1  ; Буфер антидребезга младший байт

.def drebH = R2  ; Буфер антидребезга старший байт

.def temp1 = R3

.def temp = R16  ; Вспомогательный регистр

.def data = R17  ; Регистр передачи данных

.def flz = R18  ; Фаза работы замка

.def count = R19  ; Регистр передачи данных

.def addre = R20  ; Текущий адрес в EEPROM

.def prewcode = R21 ; Временный буфер кода

.def Key =  R22  ; Код клавиши

.def loop = R23  ; Регистр счетчика

.def fnota = R24  ; Частота текущей ноты

.def dnota = R25  ; Длительность текущей ноты

.DEF LastKey=r9

.DEF DelayVar=r7

;------------------------- Определение  констант 

.equ bsize = 30  ; Размер буффера для хранения кода

.equ zad = 3000  ; Порог чувствительности

.equ kandr = 20  ; Константа антидребезга 
 

;------------------------- Резервирование  ячеек памяти (SRAM) 

            .dseg   ; Выбираем сегмент ОЗУ

            .org 0x60 ; Устанавливаем текущий адрес сегмента 

bufr: .byte bsize ; Буфер для приема кода

melod: .byte 1  ; Номер текущей мелодии 

;------------------------- Резервирование  ячеек памяти  (EEPROM) 

            .eseg   ; Выбираем сегмент ОЗУ

            .org 0x08 ; Устанавливаем текущий адрес сегмента 

klen: .byte 1  ; Резервирование ячейки для хранения длины кода

bufe: .byte bsize ; Буфер для хранения кода 
 
 

;------------------------- Начало  программного кода 

            .cseg    ; Выбор сегмента программного кода

            .org 0  ; Устанеовка текущего адреса на ноль 

start: rjmp init ; Переход на начало программы

            reti   ; Внешнее прерывание 0

            reti   ; Внешнее прерывание 1

            reti   ; Прерывание по захвату таймера T1

            rjmp propr ; Прерывание по совпадению T1

            rjmp propr ; Прерывание по переполнению T1

            reti   ; Прерывание по переполнению T0

            reti   ; Прерывание UART прием завершен

Информация о работе Разработка устройств на основе микроконтроллеров AVR фирмы Atmel Corporation