Автор работы: Пользователь скрыл имя, 25 Декабря 2011 в 15:25, курсовая работа
Используя средства языка программирования необходимо создать цифровой тахометр на основе микроконтроллера ATtiny 2313 семейства AVR. Должны выполняться действия: измерение оборотов двигателя, вывод значений оборотов на светодиодный индикатор, возможность уменьшения яркости индикатора при включении габаритных огней.
1 Теоретическая часть 3
1.1 Аннотация 3
1.2 Постановка задачи 3
1.3 Общие сведения о микроконтроллерах AVR 3
1.4 Описание ATtiny2313 3
1.5 Основные параметры ATtiny2313 4
1.6 Блок-схема ATtiny2313 6
1.7 Расположение выводов ATtiny2313 7
1.8 Программирование микроконтроллера с использованием программы на языке С 8
2 Конструкторская часть 9
2.1 Общие сведения.Функциональное назначение используемых программ 9
2.2 Реальзация 10
2.3 Схема принципиальная 10
2.4 Вызов и загрузка 11
3 Заключение 11
4 Быблиографический список 11
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Южно-Уральский государственный университет
Кафедра "Конструирование и производство радиоаппаратуры"
КУРСОВАЯ РАБОТА
по дисциплине "Цифровые устройства и микропроцессоры"
Тема: " Автомобильный
тахометр "
Руководитель проекта:
Ершов А.В.
«23»_декабря__2011 г.
Разработал студент
группы: ПС-440
Хабибжанов
М.В.
«23»_декабря
2011 г.
Челябинск 2011
Оглавление
Данный курсовой проект представляет собой тахометр, реализованный на микроконтроллере AVR. Задача устройства измерение оборотов двигателя.
Используя средства языка программирования необходимо создать цифровой тахометр на основе микроконтроллера ATtiny 2313 семейства AVR. Должны выполняться действия: измерение оборотов двигателя, вывод значений оборотов на светодиодный индикатор, возможность уменьшения яркости индикатора при включении габаритных огней.
Микроконтроллер - компьютер на одной микросхеме. Предназначен для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в микроконтроллер программой. В отличие от микропроцессоров, используемых в персональных компьютерах, микроконтроллеры содержат встроенные дополнительные устройства. Эти устройства выполняют свои задачи под управлением микропроцессорного ядра микроконтроллера.
С развитием микроэлектроники микроконтроллеры AVR получили широкое распространение в нашей жизни. Это устройства, в которых объединены процессор и периферийное оборудование. Такое объединение позволяет уменьшить массу стоимость и энергопотребление проектируемого устройства.
Типичный современный микроконтроллер имеет следующие встроенные схемы: центральное процессорное устройство (ЦПУ), память программ, оперативная память данных, тактовый генератор, цепь сброса, последовательный порт, таймер, таймер, аналого-цифровой преобразователь (АЦП). Устройства памяти включают оперативную память (RAM), постоянные запоминающие устройства (ROM), перепрограммируемую ROM (EPROM), электрически перепрограммируемую ROM (EEPROM). Таймеры включают, и часы реального времени, и таймеры прерываний. Средства I/O включают последовательные порты связи, параллельные порты (I/O линии), аналого-цифровые преобразователи (A/D), цифроаналоговые преобразователи (D/A), драйверы жидкокристаллического дисплея (LCD) или драйверы вакуумного флуоресцентного дисплея (VFD). Встроенные устройства обладают повышенной надежностью, поскольку они не требуют никаких внешних электрических цепей.
ATtiny2313 - низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny2313 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
AVR
ядро объединяет
богатую систему
команд и 32 рабочих
регистра общего
назначения. Все 32
регистра непосредственно
связаны с арифметико-
ATtiny2313 имеет следующие характеристики: 2 КБ программируемой в системе Flash память программы, 128 байтную EEPROM память данных, 128 байтное SRAM (статическое ОЗУ), 18 линий ввода - вывода общего применения, 32 рабочих регистра общего назначения, однопроводный интерфейс для встроенного отладчика, два гибких таймера/счетчика со схемами сравнения, внутренние и внешние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового условия, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, но ОЗУ, таймеры/счетчики и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует. Это позволяет очень быстро запустить микропроцессор, сохраняя при этом в режиме бездействия мощность.
Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс или обычным программатором энергонезависимой памяти. Объединив в одном кристалле 8- битное RISC ядро с самопрограммирующейся в системе Flash памятью, ATtiny2313 стал мощным микроконтроллером, который дает большую гибкость разработчика микропроцессорных систем.
ATtiny2313 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.
1.7 Расположение выводов ATtiny2313
Описание выводов:
VCC — вывод источника питания.
GND — общий провод («земля»).
PORT В (РВ7...РВО) — порт В является 8-битовым двунаправленным параллельным портом ввода/вывода с встроенными подтягивающими резисторами. У выводов порта предусмотрены внутренние подтягивающие резисторы (их можно включать или выключать для каждого бита отдельно). Выводы РВО и РВ1 также являются положительным (AINO) и отрицательным (AIN1) входами встроенного аналогового компаратора. Выходные буферы порта В могут поглощать ток до 20 мА и непосредственно управлять светодиодными индикаторами. Это означает, что микроконтроллер способен управлять нагрузкой до 20 мА при состоянии логического 0 на выходе порта. Таким образом, для управления светодиодом его следует подсоединить одним выводом к выводу порта микроконтроллера, а другим — к напряжению питания Vcc. Соответственно светиться светодиод (а значит, и потреблять ток) будет при значении 0 на соответствующей линии порта. Если выводы РВО...РВ7 используются как входы и извне устанавливаются в низкое состояние, они являются источниками тока, если включены внутренние подтягивающие резисторы. Кроме того, порт В обслуживает некоторые специальные функции, которые будут описаны ниже.
PORT D (PD6...PDO) — порт D является 7-битовым двунаправленным параллельным портом ввода/вывода с встроенными подтягивающими резисторами. Выходные буферы порта D также могут поглощать ток до 20 мА. Как входы, установленные в низкое состояние, выводы порта D являются источниками тока, если задействованы подтягивающие резисторы. Кроме того, порт D обслуживает некоторые специальные функции, которые будут описаны ниже.
RESET — вход сброса. Удержание на входе низкого уровня в течение двух машинных циклов (если работает тактовый генератор), перезапускает микроконтроллер.
XTAL1 — вход инвертирующего усилителя генератора и вход внешнего тактового сигнала.
XTAL2 — выход инвертирующего усилителя генератора.
Таблица 1. Типы данных языка С для AVR
Тип | Размер (бит) | Диапазон значений |
bit | 1 | 0, 1 |
char | 8 | -128…127 |
unsigned char | 8 | 0…255 |
signed char | 8 | -128…127 |
int | 16 | -32768…32767 |
short int | 16 | -32768…32767 |
unsigned int | 16 | 0…65535 |
signed int | 16 | -32768…32767 |
long int | 32 | -2147483648…2147483647 |
unsigned long int | 32 | 0…4294967295 |
signed long int | 32 | -2147483648…2147483647 |
float | 32 | ±1.175e-38…±3.402e38 |
double | 32 | ±1.175e-38…±3.402e38 |
Таблица 2. Зарезервированные слова
break | else | int | struct |
bit | enum | interrupt | switch |
case | extern | long | typedef |
char | flash | register | union |
const | float | return | unsigned |
continue | for | short | void |
default | funcused | signed | volatile |
do | goto | sizeof | while |
double | if | sfrw | |
eeprom | inline | static |