Автомобильный тахометр
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Южно-Уральский государственный университет
Кафедра "Конструирование и производство радиоаппаратуры"
КУРСОВАЯ РАБОТА
по дисциплине "Цифровые устройства и микропроцессоры"
Тема: " Автомобильный
тахометр "
Руководитель проекта:
Ершов А.В.
«23»_декабря__2011 г.
Разработал студент
группы: ПС-440
Хабибжанов
М.В.
«23»_декабря
2011 г.
Челябинск 2011
Оглавление
1. Теоретическая часть
1.1 Аннотация
Данный курсовой проект представляет собой тахометр, реализованный на микроконтроллере AVR. Задача устройства измерение оборотов двигателя.
1.2 Постановка задачи
Используя средства языка программирования необходимо создать цифровой тахометр на основе микроконтроллера ATtiny 2313 семейства AVR. Должны выполняться действия: измерение оборотов двигателя, вывод значений оборотов на светодиодный индикатор, возможность уменьшения яркости индикатора при включении габаритных огней.
1.3 Общие сведения о микроконтроллерах AVR
Микроконтроллер - компьютер на одной микросхеме. Предназначен для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в микроконтроллер программой. В отличие от микропроцессоров, используемых в персональных компьютерах, микроконтроллеры содержат встроенные дополнительные устройства. Эти устройства выполняют свои задачи под управлением микропроцессорного ядра микроконтроллера.
С развитием микроэлектроники микроконтроллеры AVR получили широкое распространение в нашей жизни. Это устройства, в которых объединены процессор и периферийное оборудование. Такое объединение позволяет уменьшить массу стоимость и энергопотребление проектируемого устройства.
Типичный современный микроконтроллер имеет следующие встроенные схемы: центральное процессорное устройство (ЦПУ), память программ, оперативная память данных, тактовый генератор, цепь сброса, последовательный порт, таймер, таймер, аналого-цифровой преобразователь (АЦП). Устройства памяти включают оперативную память (RAM), постоянные запоминающие устройства (ROM), перепрограммируемую ROM (EPROM), электрически перепрограммируемую ROM (EEPROM). Таймеры включают, и часы реального времени, и таймеры прерываний. Средства I/O включают последовательные порты связи, параллельные порты (I/O линии), аналого-цифровые преобразователи (A/D), цифроаналоговые преобразователи (D/A), драйверы жидкокристаллического дисплея (LCD) или драйверы вакуумного флуоресцентного дисплея (VFD). Встроенные устройства обладают повышенной надежностью, поскольку они не требуют никаких внешних электрических цепей.
1.4 Описание ATtiny2313
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.5 Основные параметры ATtiny2313
- AVR RISC архитектура
- AVR -
высококачественная
и низкопотребляющая
RISC архитектура
120 команд, большинство которых выполняется за один тактовый цикл
32 8 битных рабочих регистра общего применения
Полностью статическая архитектура - ОЗУ
и энергонезависимая
память программ и данных
2 КБ самопрограммируемой в системе Flash памяти программы, способной выдержать 10 000 циклов записи/стирания
128 Байт программируемой в системе EEPROM памяти данных, способной выдержать 100 000 циклов записи/стирания
128 Байт встроенной SRAM памяти (статическое ОЗУ)
Программируемая защита от считывания Flash памяти программы и EEPROM памяти данных - Характеристики
периферии
Один 8- разрядный таймер/счетчик с отдельным предделителем
Один 16-разрядный таймер/счетчик с отдельным предделителем, схемой сравнения, схемой захвата и двумя каналами ШИМ
Встроенный аналоговый компаратор
Программируемый сторожевой таймер со встроенным генератором
USI - универсальный последовательный интерфейс
Полнодуплексный UART - Специальные
характеристики микроконтроллера
Встроенный отладчик debugWIRE
Внутрисистемное программирование через SPI порт
Внешние и внутренние источники прерывания
Режимы пониженного потребления Idle, Power-down и Standby
Усовершенствованная схема формирования сброса при включении
Программируемая схема обнаружения кратковременных пропаданий питания
Встроенный откалиброванный генератор - Порты
ввода - вывода и корпусное
исполнение
18 программируемых линий ввода - вывода
20 выводной PDIP, 20 выводной SOIC и 32 контактный MLF корпуса - Диапазон
напряжения питания
от 1.8 до 5.5 В - Рабочая
частота
0 - 16 МГц - Потребление
Активный режим:
300 мкА при частоте 1 МГц и напряжении питания 1.8 В
20 мкА при частоте 32 кГц и напряжении питания 1.8 В
Режим пониженного потребления
0.5 мкА при напряжении питания 1.8 В
1.6 Блок- схема ATtiny2313
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.8 Программирование микроконтроллера с использованием программы на языке С
Таблица 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 |
2. Конструкторская часть
2.1 Общие сведения. Функциональное назначение используемых программ
Для выполнения курсовой работы были использованы следующие программные средства: компилятор языка С для микроконтроллеров AVR (CodeVisionAVR), генератор начального кода программы CodeWizard AVR с необходимой конфигурацией периферии МК (AVR Studio).
CodeVision AVR представляет собой кросс-компилятор языка С, графическую оболочку и автоматический генератор шаблонов программ, ориентированные на работу с семейством микроконтроллеров AVR фирмы Atmel.
Программа представляет собой 32-разрядное приложение для работы в операционных системах Windows 95, 98, Me, NT4.0, 2000, XP.
Кросс-компилятор включает в себя практически все элементы, соответствующие стандарту ANSI. Кроме того, в компилятор включены дополнительные возможности, ориентированные на использование архитектурных особенностей микроконтроллеров AVR и встроенных систем в целом.
Объектные файлы COFF позволяют осуществлять отладку программ с просмотром содержимого переменных. Для этого следует применять свободно распространяемый фирмой Atmel (www.atmel.com) отладчик AVR Studio.
Для отладки систем, использующих последовательную передачу данных, в графической оболочке имеется встроенная программа Terminal.
Кроме стандартных библиотек языка С, компилятор имеет библиотеки для работы с:
ЖКИ индикаторами со встроенным контроллером;
шиной I2C фирмы Philips;
датчиком температуры LM75 фирмы National Semiconductor;
часами реального времени PC8536 и PC8583 фирмы Philips, DS1302 и DS1307 фирмы Dallas Semiconductor;
однопроводным протоколом фирмы Dallas Semiconductor;
датчиками температуры DS1820 и DS1822 фирмы Dallas Semiconductor;
датчиком температуры/термостатом DS1621 фирмы Dallas Semiconductor;
памятью EEPROM DS2430 и DS2433 фирмы Dallas Semiconductor;
шиной SPI;
управлением режимами пониженного потребления энергии;
временными задержками;
преобразованием кодов Грэя.
В CodeVision AVR имеется автоматический генератор шаблонов программ, который позволяет в течение считанных минут получить готовый код для следующих функций:
настройка доступа к внешней памяти;
определение источника прерывания Reset;
инициализация портов ввода/вывода;
инициализация внешних прерываний;
инициализация таймеров/счетчиков;
инициализация сторожевого таймера;
инициализация UART;
инициализация аналогового компаратора;
инициализация встроенного АЦП;
инициализация интерфейса SPI;
инициализация поддерживаемых библиотеками CodeVision AVR микросхем, работающих с однопроводным интерфейсом и шиной I2C;
инициализация модуля ЖКИ со встроенным контроллером.
Кроме того, среда CodeVision AVR включает в себя программное обеспечение для работы с различными AVR-программаторами. После компиляции исходной программы на языке С полученный код может быть сразу записан в память программ микроконтроллера.
2.3 Схема принципиальная
2.4 Перечень элементов
Микроконтроллер:
ATtiny2313 – 1шт;
Индикатор:
С-564 – 1шт;
Стабилизатор:
78L05 – 1шт;
Пьезокварц:
8MHz – 1шт;
Транзисторы:
BC847 – 2шт;
Диоды и стабилитроны:
1N4148 – 1шт;
5,1V – 1шт;
Конденсаторы:
22pF – 2шт;
2,2nF – 1шт;
10nF – 1шт;
0,1mkF – 2шт;
10mkF – 2шт;
Резисторы:
330 Ом – 8шт;
1 кОм – 1шт;
10 кОм – 3шт;
220 кОм – 1шт.
Расчёт токоограничительных резисторов на цепи светодиодного индикатора:
Ток потребления светодиодного индикатора С-564 составляет порядка 0,015А, исходя из закона Ома нам потребуются резисторы R сопротивлением R=U/I=5В/0,015А=330 Ом.
2.5 Печатная плата
2.4 Запуск и выполнение
Скомпилированная программа представляет собой файл типа cof, который прошиваем на микроконтроллер ATtiny2313 семейства AVR.
Соединяем компоненты рабочей модели прибора, получаем сигнал с катушки зажигания, считываем обороты двигателя.
3 Заключение
В
ходе выполнения курсовой
работы я приобрел навыки
разработки схемы. Написания
программы. Освоил начальные
знания работы в среде
CodeVision AVR,Sprint Layout, также
ознакомился с принципами
программирования и
прошивки микроконтроллера.
4
Библиографический
список:
- Белов А.В. Конструирование устройств на микроконтроллерах. - СПб.: Наука и Техника, 2005. - 256 С.
- Бородин В.Б., Калинин А.В. Системы на микроконтроллерах и БИС программируемой логики - М.: Издательство ЭКОМ, 2002. - 400 с.: илл.
- Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel М.: ИП РадиоСофт, 2002. - 176 с.
- Евстифеев А.В. Микроконтроллеры AVR семейств Tiny и Mega фирмы "ATMEL" - М.: Издательский дом "Додека-ХХI", 2004. - 560 с.
- Шпак Ю.А. Программирование на языке Си для AVR и PIC микроконтроллеров. - К: ”МК-Пресс", 2006. - 400 С.
5 Приложение
Код программы
#define TRUE (!FALSE)
#define FALSE 0
#define BYTE unsigned char
#define WORD unsigned short int
#define BOOLEAN char
#define TIMER_OVF_ENOUGHT 49
#define NO_PULSES_INTERVAL 200
#define LED_delay 250
#define Light_delay 2500
//#define Anode
#define Cathode
#define CNT_100_MS 6250
#define byBladeCnt 2 //1- две катушки, 2 - одна катушка, 4 - мотоцикл...
#define Prescaler 0x01 //0x00 - для кварца 4MHz, 0x01 - для кварца 8MHz...
#define UpCount 4 // +1 = количество пропусков (0,1S) до обновления
#include <tiny2313.h>
#include
<delay.h>
BOOLEAN btTimeUpdate; // = 1, когда нужно обновить время на дисплее
WORD wTime; // Время, которое показывает секундомер (в десятых секунды)
BOOLEAN btTimerOn; // TRUE - таймер запущен, FALSE - остановлен
BYTE byTcnt; // счетчик десятых секунд
BYTE byDisplayRefreshCnt; //
void ShowDisplayData(void); // Вывод экранного буфера
void PrepareRpmData(WORD wRpm);
BOOLEAN btDisplayUpdate; // = TRUE, если пришло время обновить дисплей
BYTE byDisplay[4]; // буфер данных, для вывода на экран
WORD wLockedRpm;
// Массив знакогенератора
BYTE byCharacter[12] = {0xFA, //0
0x82, //1
0xB9, //2
0xAB, //3
0xC3, //4
0x6B, //5
0x7B, //6
0xA2, //7
0xFB, //8
0xEB, //9
0x00, //blank
0x01 //-
};
WORD wRpm; // Скорость вращения ротора (об/мин)
//BOOLEAN btRpmUpdate; // = 1, когда измеряно новое значение оборотов
WORD wTimerOvfCnt; // Счетчик переполнений таймера (нужен для
// увеличения разрядности
WORD wFlashCnt; // Счетчик срабатываний датчика прохождения допасти
BOOLEAN btFirstLowRateFlash; // FALSE - если отсчет периода еще не начался
/************************
Обновление дисплея.
Вход: -
Выход: -
\************************
void RefreshDisplay(void)
{
#asm("cli");
if (btDisplayUpdate)
{
wLockedRpm = wRpm;
btDisplayUpdate = FALSE;
}
#asm("sei");
PrepareRpmData(wLockedRpm);
ShowDisplayData();
}
/************************
Преобразование скорости мотора и количества лопастей
в данные экранного буфера
Вход: wRpm - обороты ротора, byBladeCnt - количество лопастей
Выход: -
\************************
void PrepareRpmData(WORD wRpm)
{
BYTE i;
WORD R;
R = wRpm;
byDisplay[3] = wRpm % 10;
wRpm /= 10;
if (byDisplay[3] > 4) //округляем

- Автомобильный тахометр на микроконтроллере
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильный транспорт
- Автомобильные подъемники
- Автомобильный кран
- Автомобильный кран с решетчатой стрелой
- Автомобильный общественный транспорт в РБ
- Автомобильный приёмник УКВ-Е диапазона
- Автомобильный рынок в России
- Автомобильный рынок России