Автор работы: Пользователь скрыл имя, 24 Марта 2014 в 21:31, курсовая работа
Телефоны, телевизоры, жидкокристаллические мониторы, кондиционеры, холодильники, новогодние гирлянды, компьютеры и многое другое не могут работать без микроконтроллеров. Микроконтроллеры намного лучше своих предшественников: ламп и полупроводников. Они намного меньших размеров и обладают большей производительностью.
ВВЕДЕНИЕ
Микроконтроллеры (МК) используются во всех сферах жизнедеятельности человека, устройствах, которые окружают его. С помощью программирования микроконтроллера можно решить многие практические задачи аппаратной техники. Трудно представить сферу современной деятельности человека, где не использовались бы данные устройства. Телефоны, телевизоры, жидкокристаллические мониторы, кондиционеры, холодильники, новогодние гирлянды, компьютеры и многое другое не могут работать без микроконтроллеров. Микроконтроллеры намного лучше своих предшественников: ламп и полупроводников. Они намного меньших размеров и обладают большей производительностью.
МК может управлять различными устройствами и принимать от них данные при минимуме дополнительных узлов, так как большое число периферийных схем уже имеется непосредственно на кристалле МК. Это позволяет уменьшить размеры конструкции и снизить потребление от источника питания.
Достаточно широкое распространение имеют МК фирмы ATMEL, которые располагают большими функциональными возможностями.
AVR - это семейство 8-разрядных RISC-микроконтроллеров фирмы Atmel. Эти МК позволяют решить множество задач встроенных систем. Они отличаются от других распространенных в наше время микроконтроллеров большей скоростью работы, большей универсальностью. Кроме того, они очень легко программируются. Их можно перепрограммировать до 1000 раз, причем непосредственно в собранной схеме [1- ст. 9].
Имеются 3 подсемейства МК AVR:
Интересной особенностью семейства МК AVR является то, что система команд всего семейства совместима при переносе программы со слабого на более мощный микроконтроллер.
Современный микроконтроллер — довольно сложное устройство, работу которого не удается описать в деталях вне связи его с дополнительными внешними устройствами. Поэтому в работе будет разработана схема и управляющая программа устройства на основе микроконтроллера, а именно матрица кнопочных переключателей.
1 Структурная схема устройства управления
Для выполнения функций, перечисленных в техническом задании, схема устройства управления матрицы кнопочных переключателей должна содержать следующие блоки:
Все перечисленные устройства и связи между ними показаны на схеме электрической структурной устройства управления на базе микроконтроллера.
На центральный процессорный элемент должна быть возложена задача периодического опроса состояния переключателей клавиатуры с частотой 40Гц.
Алгоритм работы устройства поясняется в главе 2.
2 Алгоритм функционирования схемы
Первым действием в программе производятся начальные установки микроконтроллера, таймера Т0, настройка портов ввода/вывода. Далее происходит пуск таймера и контроллер начинает выполнять опрос клавиатуры.
На одну из линий порта выдается логический «0», а на остальные линии «1». Затем происходит считывание с линий столбцов. Если фиксируется «0», его позиция соответствует номеру столбца нажатой клавиши и вместе с номером текущей строки он используется для определения кода нажатой клавиши. Если на всех входах «1», процедура сканирования продолжается для следующей строки.
Производится однократное обращение к матрице клавиш для определения, нажата ли хотя бы одна из клавиш. Осуществляется циклический опрос клавиатуры до тех пор, пока не будет нажата (а часто и освобождена) клавиша. Будучи встроена в основную программу, вторая процедура блокирует процесс управления объектом на время ожидания нажатия клавиши, а потому обращение к ней осуществляется только при обнаружении нажатой клавиши процедурой опроса состояния клавиатуры. Если же при очередном опросе клавиатуры не было обнаружено ни одной нажатой клавиши, микроконтроллер переводится в состояние пониженного энергопотребления Idle командой Sleep. Выход из этого состояния произойдет по сигналу прерывания, который формируется при переполнении таймера.
Блок-схема алгоритма работы устройства управления представлена на рисунке 1.
3 Выбор элементной базы
В качестве центрального процессорного элемента выбран микроконтроллер ATmega8,структурная схема которого показана на рисунке 3. Он обладает следующими параметрами:
- 23 порта ввода/вывода
- Память для программ составляет 8 Кб с возможностью перезаписать 10 000 раз
- 512 байт флеш-памяти для хранения переменных (100 000 циклов перезаписи)
- 1 Кб ОЗУ и 32 регистра общего назначения
- Два 8-разрядных Таймера/Счетчика с раздельным прескалером, режим сравнения
- 16-разрядный Таймер/Счетчик
- Таймер реального времени с независимым генератором
- 3 канала ШИМ
- 6 каналов 10-разрядного АЦП
- Двухпроводный
- Программируемый
- Интерфейс SPI с режимами Master/Slave
- Программируемый сторожевой
таймер с отдельным
- Встроенный аналоговый компаратор
- Сброс при включении питания, программируемая защита от провалов питания
- Встроенный калиброванный RC-генератор
- Обработка внутренних и внешних прерываний
- 5 режимов с пониженным энергопотреблением: Idle, ADC Noise Reduction, Power-save, Power-down, и Standby
- Напряжение питания 4.5 - 5.5В
- Тактовая частота 0-16 МГц
Расположение выводов модели показано на рисунке 2.
Рисунок 2. Расположение выводов микроконтроллера ATmega8
Микроконтроллер ATmega8 выполнен по технологии CMOS, 8-разрядный, микропотребляющий, основан на AVR-архитектуре PISC. Выполняя одну полноценную инструкцию за один такт, ATmega8 достигает производительности 1 MIPS на МГц, позволяя достигнуть оптимального соотношения производительности к потребляемой энергии.
Память данных предназначена для работы с данными (чтение и запись данных), которые используются в программе-прошивке микроконтроллера ATmega8. Память данных является энергозависимой. Это значит, что при отключении питания микроконтроллера все данные в ней будут потеряны.
В микроконтроллерах ATmega8 размер статической памяти составляет 1 kb, но при необходимости он может быть увеличен до 64kb с помощью внешних блоков памяти (порты A и С при этом окажутся занятыми - они будут применяться для передачи данных и адресов). Для этого необходимо установить седьмой разряд регистра MCUCR в лог 1. SRAM используется для хранения данных, которые не уместились в рабочих регистрах, а также для организации программного стека (особой области памяти, используемой процессором для хранения адресов возврата из подпрограмм, промежуточных вычисление и т.д)
Область регистров общего назначения (рабочих регистров) используется для хранения переменных и указателей. В микроконтроллере mega8 область рабочих регистров состоит из 32-х восьмиразрядных регистров (диапазон адресов 0x000-0x01F). Если прошивка микроконтроллера пишется на языке С, то обращаться к этим регистрам обычно не требуется (хотя к ним можно обратиться при помощи ассемблерных вставок в С-программу).
Регистры ввода/вывода микроконтроллера
В режиме Idle происходит приостановка центрального процессора, остальные системы продолжают работать. Выход из этого режима возможен как по внешнему прерыванию, так и по внутреннему. Например, при переполнении таймера.
Порт В (PB0 - РВ7): Два вывода (РВ6 и PB7) используются для подключения кварцевого резонатора. Выводы РВ2 - РВ5 зарезервированы для внутрисхемного программирования. Таким образом, для общего применения остаются порты PB0 и PB1.
Порт С (PC0 - РС6 : 7 выводов): Порты PC0 - РС5 можно использовать в качестве аналоговых входов. РС6 обычно используется для сброса.
Порт D (PD0 - PD7 : 8 выводов): Эти порты можно использовать для общего применения.
XTAL1, XTAL2. Вход и выход
инвертирующего усилителя
TOSC1, TOSC2. Вход и выход
инвертирующего усилителя
#WR, #RD. Стробы записи
и чтения внешней памяти
ALE. Строб разрешения
фиксации адреса внешней
AVCC. Напряжение питания
аналого-цифрового
В режиме Power Down сохраняется содержимое регистров, но приостанавливается работа внутреннего генератора и отключаются все остальные функции микросхемы. Выход из режима возможен по внешнему прерыванию или после системного сброса. Такое решение позволяет совмещать быстрый старт с низким энергопотреблением.
Состав устройств микроконтроллера AVR меняется от модели к модели, более того, одно и то же устройство в разных моделях использует различные ресурсы микроконтроллера (в частности, различные выводы). Разумеется, существует ряд периферийных устройств, присутствующих во всех микроконтроллерах семейства: сторожевой таймер, 8-разрядный таймер/счетчик реального времени (таймер T0) и, естественно, порты ввода/вывода.
Структурная схема микроконтроллера ATmega8 представлена на рисунке 3.
Внутренний тактовый генератор AVR может запускаться от нескольких источников опорной частоты. Поскольку AVR-микроконтроллеры полностью статические, минимальная допустимая частота ничем не ограничена. Максимальная рабочая частота определяется конкретным типом микроконтроллера и составляет 4,8,14,16 МГц.
Микроконтроллеры AVR имеют в своем составе от 1 до 4 таймеров/ счетчиков общего назначения с разрядностью 8 или 16 бит, которые могут работать и как таймеры от внутреннего источника опорной частоты, и как счетчики внешних событий с внешним тактированием.
Также имеется сторожевой (WDT) таймер, который предназначен для защиты микроконтроллера от сбоев в процессе работы. Он имеет собственный RC-генератор, работающий на частоте 1МГц. WDT-таймер снабжен собственным предделителем входной частоты, что позволяет программно регулировать временной интервал переполнения таймера (т.н. тайм-аут), по истечении которого происходит сброс микроконтроллера.
AVR – микроконтроллеры могут быть переведены программным путем в один из режимов пониженного энергопотребления. Для разных семейств AVR и разных микроконтроллеров в пределах каждого семейства изменяются количество и сочетание доступных режимов пониженного энергопотребления AVR функционируют в широком диапазоне питающих напряжений от 1,8 до 6,0 В. Температурные диапазоны работы микроконтроллеров AVR – коммерческий (0С…70С), индустриальный (-40С…+85С), автомобильный (-40С…+125С) и военный (-55С…+125С).
Принципиальная схема устройства управления на базе микроконтроллера ATmega8 показана на схеме СЕРБ.6100101.Э3. Основной микросхемой в ней является сам микроконтроллер; остальные элементы либо обеспечивают его рабочий режим, либо используются для ввода/вывода информации.
Кварцевый резонатор ZQ с номиналом 1МГц задает тактовую частоту работы микроконтроллера. В результате время выполнения одной команды составит 1мкс. Конденсаторы С1=С2=33 пФ образуют цепь запуска генератора.
Пятнадцать кнопок организованы в матрицу, и при нажатии любой кнопки замыкается строка и столбец. Определив замкнутые строку и столбец, можно определить код нажатой клавиши. Такое сканирование клавиатуры реализуется программно.
Пять линий порта РB0, РB1, РB2, РВ3, РВ4 образуют пять линий кнопок, а к выводам РD0, РD1, РD2 подключены три столбца. Каждая клавиша в такой матрице имеет свой номер, соответствующий ее местоположению.