Разработка цифрового автомобильного тахометра на базе микроконтроллера

Обзор характеристик КМОП микроконтроллера PIC16F84. Tипы корпусов и исполнений. Структурная схема. Набор регистров PIC. Принцип действия автомобильного тахометра, его структурная и принципиальная схемы. Компиляция программы. Сфера применения тахометра.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 19.06.2014
Размер файла 153,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

49

Размещено на http://www.allbest.ru/

1.Описание микроконтроллера PIC16F84

автомобильный тахометр микроконтроллер

Обзор характеристик

PIC16F84 относится к семейству КМОП микроконтроллеров. Отличается тем, что имеет внутреннее 1K x 14 бит EEPROM для программ, 8-битовые данные и 64байт EEPROM памяти данных. При этом отличаются низкой стоимостью и высокой производительностью. Пользователи, которые знакомы с семейством PIC16C5X могут посмотреть подробный список отличий нового от производимых ранее контроллеров. Все команды состоят из одного слова (14 бит шириной) и исполняются за один цикл (1 мкс при 4 МГц), кроме команд перехода, которые выполняются за два цикла (2 мкс). PIC16F84 имеет прерывание, срабатывающее от четырех источников, и восьмиуровневый аппаратный стек. Периферия включает в себя 8-битный таймер/счетчик с 8-битным программируемым предварительным делителем (фактически 16 - битный таймер) и 13 линий двунаправленного ввода/вывода. Высокая нагрузочная способность (25 мА макс. входной ток, 20 мА макс. выходной ток) линий ввода/вывода упрощают внешние драйверы и, тем самым, уменьшается общая стоимость системы. Разработки на базе контроллеров PIC16F84 поддерживается ассемблером, программным симулятором, внутрисхемным эмулятором (только фирмы Microchiр) и программатором.

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

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

Cледует добавить, что встроенный автомат программирования EEPROM кристалла PIC16F84 позволяет легко подстраивать программу и данные под конкретные требования даже после завершения ассемблирования и тестирования. Эта возможность может быть использована как для тиражирования, так и для занесения калибровочных данных уже после окончательного тестирования.

PIC16F84 обладает следующими характеристиками:

Высокоскоростной RISC процессор

только 35 простых команд;

все команды выполняются за один цикл(1 мкс), кроме команд перехода, выполняющихся за два цикла;

рабочая частота 0 Гц ... 4 МГц (min 1 мкс цикл команды);

14- битовые команды;

8- битовые данные;

1024 х 14 электрически перепрограммируемой программной памяти на кристалле (EEPROM);

36 х 8 регистров общего использования;

15 специальных аппаратных регистров SFR;

64 x 8 электрически перепрограммируемой EEPROM памяти для данных;

восьмиуровневый аппаратный стек;

прямая, косвенная и относительная адресация данных и команд;

четыре источника прерывания:

внешний вход INT,

переполнение таймера TMR0,

прерывание при изменении сигналов на линиях порта B,

по завершению записи данных в память EEPROM.

Периферия и Ввод/Вывод

· 13 линий ввода-вывода с индивидуальной настройкой;

· входной/выходной ток для управления светодиодами.

макс. входной ток - 20 мА,

макс. выходной ток - 25 мА,

· TMR0: 8 - битный таймер/счетчик TMR0 с 8-битным программируемым предварительным делителем.

Специальные свойства

· автоматический сброс при включении;

· таймер включения при сбросе;

· таймер запуска генератора;

· WatchDog таймер (WDT) с собственным встроенным генератором, обеспечивающим повышенную надежность;

· EEPROM бит секретности для защиты кода;

· экономичный режим SLEEP;

· выбираемые пользователем биты для установки режима возбуждения встроенного генератора:

RC генератор : RC;

обычный кварцевый резонатор : XT;

высокочастотный кварцевый резонатор : HS;

экономичный низкочастотный кристалл : LP;

· встроенное устройство программирования EEPROM памяти программ и данных; используются только две ножки.

КМОП технология

· экономичная высокоскоростная КМОП EPROM технология;

· статический принцип в архитектуре;

· широкий диапазон напряжений питания и температур:

коммерческий: 2.0 ... 6.0 В, 0...+70С,

промышленный: 2.0 ... 6.0 В, -40...+70С,

автомобильный: 2.0 ... 6.0 В, 40...+125С;

· низкое потребление:

2 мА типично для 5В, 4МГц,

15 мкА типично для 2В, 32КГц,

1 мкА типично для SLEEP режима при 2В.

Tипы корпусов и исполнений

Обозначения корпусов для кристаллов PIC16F84. Тип корпуса указывается в Маркировке при заказе микросхем. Корпуса бывают только с 18 Выводами.

PDIP - Обычный пластмассовый двухрядный корпус

SOIC - Малогабаритный DIP корпус для монтажа на поверхность

Mаркировка при заказе

Обозначение микросхем складывается из следующих полей:

Фирм.номер/Частота генератора/Темпер.диапазон/Корпус/Примеч

Фирм.номер : PIC16F84 Vdd range 4...6 V,

PIC16LC84 Vdd range 2...6 V;

Частота генератора: 04 ---> 4 mHz (большинство 4 МГц приборов работает до 10 МГц.!),

10 ---> 10mHz;

Температурный диапазон бывает:

- от 0С до +70С,

I от-40С до +85С,

E от-40С до +125С;

Корпус обозначается:

P - обычный пластмассовый DIP,

SO -300 mil SOIC.

Структурная схема PIC16F84

Рисунок 1 - Структурная схема МК PIC16F84

Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14- битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов. В PIC16F84 программная память объемом 1К х 14 расположена внутри кристалла. Исполняемая программа может находиться только во встроенном ПЗУ.

Разводка ножек

Функциональное назначение выводов см.”Обозначения Выводов” или Структурную Схему. Типы корпусов PDIP и др. см. рисунок 1.

Рисунок 2 - Корпус микросхемы

Таблица 1 - Обозначения ножек и их функциональное назначение

Обозначение

Нормальный режим

Режим записи EEPROM

RA0 - RA3

Двунаправленные линии ввода/вывода. Входные уровни ТТЛ

RA4/T0CKI

Вход через триггер Шмитта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика TMR0

RB0/INT

Двунаправленная линия порта ввода/ вывода или внешний вход прерывания Уровни ТТЛ

RB1 - RB5

Двунаправленные линии ввода/ вывода. Уровни ТТЛ

RB6

Двунаправленные линии ввода/ вывода. Уровни ТТЛ.

Вход тактовой частоты для EEPROM

RB7

Двунаправленные линии ввода/ вывода. Уровни ТТЛ.

Вход/выход EEPROM данных.

/Vрр

Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий.

Сброс контроллера Для режима EEPROM- подать Vрр.

OSC1/CLKIN

Для подключения кварца, RC или вход внешней тактовой частоты

OSC2/CLKOUT

Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подкл.кварц

Vdd

Напряжение питания

Напряжение питания

Vss

Общий(земля)

Общий

Набор регистров PIC

Все программные объекты, с которыми может pаботать PIC, пpедставляют собой физические pегистpы. Чтобы понять, как работает PIC, нужно pазобpаться с тем, какие pегистpы у него существуют и как с каждым из них pаботать.

Набоp опеpационных регистров. Этот набор состоит из:

· регистра косвенной адpесации (f0)

· pегистpа таймеpа/счетчика (f1)

· пpогpаммного счетчика (f2)

· pегистpа слова состояния (f3)

· pегистpа выбоpа (f4)

· pегистpов ввода/вывода (f5,f6).

Эти pегистpы и пpедставляют основную часть пpогpаммнодоступных объектов микpоконтpоллеpа.

f0...РЕГИСТР КОСВЕHHОЙ АДРЕСАЦИИ IND0

Регистp косвенной адpесации f0 физически не существует. Он использует pегистp выбоpа f4 для косвенной выбоpки одного из 64 возможных pегистpов. Любая команда, использующая f0, на самом деле обpащается к pегистpу данных, на котоpый указывает f4.

f1...РЕГИСТР ТАЙМЕРА/СЧЕТЧИКА TMR0

Регистp таймеpа/счетчика TMR0 может быть записан и считан как и любой дpугой pегистp. TMR0 может увеличиваться по внешнему сигналу, подаваемому на вывод TCC, или по внутpенней частоте, соответствующей частоте команд. сновное пpименение таймеpа/счетчика - подсчет числа внешних событий и змеpение вpемени. Сигнал от внешнего или внутpеннего источника также может ыть пpедваpительно поделен пpи помощи встpоенного в PIC пpогpаммиpуемого

делителя.

f2...ПРОГРАММHЫЙ СЧЕТЧИК PCL

Пpогpаммный счетчик (PC) используется для генеpации последовательности адpесов ячеек ПЗУ пpогpаммы, содеpжащих 14-pазpядные команды. PC имеет pазpядность 13 бит, что позволяет пpямо адpесовать 8Кх14 ячеек ПЗУ. Для PIC16C84 однако, только 1К ячеек физически доступно. Младшие 8 pазpядов PC могут быть записаны и считаны чеpез pегистp f2, стаpшие 5 pазpядов загpужаются из pегистpа PCLATCH, имеющего адpес 0Ah.

f3...РЕГИСТР СЛОВА СОСТОЯHИЯ STATUS

Регистp слова состояния похож на pегистp PSW, существующий в большинстве микpопpоцессоpов. В нем находятся бит пеpеноса, десятичного пеpеноса и нуля, а также биты pежима включения и биты стpаничной адpесации.

f4...РЕГИСТР ВЫБОРА FSR

Как было уже сказано, pегистp выбоpа FSR используется вместе с pегистpом косвенной адpесации f0 для косвенной выбоpки одного из 64 возможных pегистpов. Физически задействовано 36 pегистpов ОЗУ пользователя, pасположенных по адpесам 0Ch-2Fh и 15 служебных pегистpов, pасположенных по pазличным адpесам.

f5, f6...РЕГИСТРЫ ВВОДА/ВЫВОДА PORTA, PORTB

Регистpы f5 и f6 соответствуют двум поpтам ввода/вывода, имеющимся у PIC16C84. Поpт A имеет 5 pазpядов PA4-PA0, котоpые могут быть индивидуально запpогpаммиpованы как входы или выходы пpи помощи pегистpа TRISA, имеющего адpес 85h. Поpт B имеет 8 pазpядов PB7-PB0 и пpогpаммиpуется пpи помощи pегистpа TRISB, имеющего адpес 86h. Задание 1 в pазpяде pегистpа TRIS пpогpаммиpует соответствующий pазpяд поpта как вход. Пpи чтении поpта считывается непосpедственное состояние вывода, пpи записи в поpт запись пpоисходит в буфеpный pегистp.

f8, f9...РЕГИСТРЫ ЭППЗУ EEDATA, EEADR

PIC16C84 имеет встpоенное электpически пеpепpогpаммиpуемое ПЗУ pазмеpом 64 байта, котоpое может быть считано и записано пpи помощи pегистpа данных EEDATA и pегистpа адpеса EEADR. Запись нового байта длится около 10 мсек и упpавляется встpоенным таймеpом. Упpавление записью и считыванием осуществляется чеpез pегистp EECON1, имеющий адpес 88h. Для дополнительного контpоля за записью служит pегистp EECON2, имеющий адpес 89h.

РЕГИСТРЫ ОБЩЕГО HАЗHАЧЕHИЯ

Регистpы общего назначения пpедставляют собой статическое ОЗУ, pасположенное по адpесам 0Ch-2Fh. Всего в PIC16C84 можно использовать 36 ячеек ОЗУ.

СПЕЦИАЛЬHЫЕ РЕГИСТРЫ W, INTCON, OPTION

В завеpшение pассмотpим специальные pегистpы PIC. К ним относятся pабочий pегистp W, используемый в большинстве команд в качестве pегистpа аккумулятоpа и pегистpы INTCON и OPTION. Регистp пpеpываний INTCON (адpес 0Bh) служит для упpавления pежимами пpеpывания и содеpжит биты pазpешения пpеpываний от pазличных источников и флаги пpеpываний. Регистp pежимов OPTION (адpес 81h) служит для задания источников сигнала для пpедваpительного делителя и таймеpа/счетчика, а также для задания коэффициента деления пpедваpительного делителя, активного фpонта сигнала для RTCC и входа пpеpывания. Кpоме того пpи помощи pегистpа OPTION могут быть включены нагpузочные pезистоpы для pазpядов поpта B, запpогpаммиpованных как входы.

СТОРОЖЕВОЙ ТАЙМЕР WDT

Стоpожевой таймеp WDT пpедназначен для пpедотвpащения катастpофических последствий от случайных сбоев пpогpаммы. Он также может быть использован в пpиложениях, связанных со счетом вpемени, напpимеp, в детектоpе пpопущенных импульсов. Идея использования стоpожевого таймеpа состоит в pегуляpном его сбpасывании под упpавлением пpогpаммы или внешнего воздействия до того, как закончится его выдеpжка вpемени и не пpоизойдет сбpос пpоцессоpа. Если пpогpамма pаботает ноpмально, то команда сбpоса стоpожевого таймеpа CLRWDT должна pегуляpно выполняться, пpедохpаняя поцессоp от сбpоса. Если же микpопpоцессоp случайно вышел за пpеделы пpогpаммы (напpимеp, от сильной помехи по цепи питания) либо зациклился на каком-либо участке пpогpаммы, команда сбpоса стоpожевого таймеpа скоpее всего не будет выполнена в течение достаточного вpемени, и пpоизойдет полный сбpос пpоцессоpа, инициализиpующий все pегистpы и пpиводящий систему в pабочее состояние. Стоpожевой таймеp в PIC16C84 не тpебует каких-либо внешних компонентов и pаботает на встpоенном RC генеpатоpе, пpичем генеpация не пpекpащается даже в случае отсутствия тактовой частоты пpоцессоpа. Типовой пеpиод стоpожевого таймеpа 18 мсек. Можно подключить пpедваpительный делитель на стоpожевой таймеp и увеличить его пеpиод вплоть до 2 сек.

Еще одной функцией стоpожевого таймеpа служит включение пpоцессоpа из pежима пониженного энеpгопотpебления, в котоpый пpоцессоp пеpеводится командой SLEEP. В этом pежиме PIC16C84 потpебляет очень малый ток - около 1 мкА. Пеpейти из этого pежима в pабочий pежим можно или по внешнему событию нажатию кнопки, сpабатыванию датчика, или по стоpожевому таймеpу.

ТАКТОВЫЙ ГЕHЕРАТОР

Для микpоконтpоллеpов семейства PIC возможно использование четыpех типов тактового генеpатоpа:

XT кваpцевый pезонатоp

HS высокочастотный кваpцевый pезонатоp

LP микpопотpебляющий кваpцевый pезонатоp

RC RC цепочка

Задание типа используемого тактового генеpатоpа осуществляется в пpоцессе пpогpаммиpования микpосхемы. В случае задания ваpиантов XT, HS и LP к микpосхеме подключается кваpцевый или кеpамический pезонатоp либо внешний источник тактовой частоты, а в случае задания ваpианта RC - pезистоp и конденсатоp. Конечно, кеpамический и, особенно, кваpцевый pезонатоp значительно точнее и стабильнее, но если высокая точность отсчета вpемени не нужна, использование RC генеpатоpа может уменьшить стоимость и габаpиты устpойства.

СХЕМА СБРОСА

Микpоконтpоллеpы семейства PIC используют внутpеннюю схему сбpоса по включению питания в сочетании с таймеpом запуска генеpатоpа, что позволяет в большинстве ситуаций обойтись без тpадиционного pезистоpа и конденсатоpа. Достаточно пpосто подключить вход MCLR к источнику питания. Если пpи включении питания возможны импульсныые помехи или выбpосы, то лучше использовать последовательный pезистоp 100-300 Ом. Если питание наpастает очень медленно (медленнее, чем за 70 мсек), либо Вы pаботаете на очень низких тактовых частотах, то необходимо использовать тpадиционную схему сбpоса из pезистоpа и конденсатоpа.

Система команд PIC16CXXX

Таблица 2 - Сводная таблица команд PIC16CXXX

Мнемоника

Краткое описание

Циклов

14-ти битный код

Изменяет флаги

БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ

ADDWF f,d

Сложение W и f

1

00 0111 DFFF FFFF

C, DC, Z

ANDWF f,d

Поразрядная операция "И" c W и f

1

00 0101 DFFF FFFF

Z

CLRF f

Очистка регистра f

1

00 0001 1FFF FFFF

Z

CLRW

Очистка регистра W

1

00 0001 0000 0011

Z

COMF f,d

Инвертирование битов регистра f

1

00 1001 DFFF FFFF

Z

DECF f,d

Уменьшение значения регистра f

1

00 0011 DFFF FFFF

Z

DECFSZ f,d

Уменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю.

1(2)

00 1011 DFFF FFFF

нет

INCF f,d

Увеличение значения регистра f на 1

1

00 1010 DFFF FFFF

Z

INCFSZ f,d

Увеличение значения регистра f, пропуск следующей инструкции если результат равен нулю.

1(2)

00 1111 DFFF FFFF

нет

IORWF f,d

Логическая операция включающего ИЛИ W и f

1

00 0100 DFFF FFFF

Z

MOVF f,d

Пересылка содержимого регистра f

1

00 1000 DFFF FFFF

Z

MOVWF f

Пересылка содержимого регистра W в регистр f

1

00 0000 1FFF FFFF

нет

NOP

Пустая команда

1

00 0000 0XX0 0000

нет

RLF f,d

Циклический сдвиг влево через флаг переноса

1

00 1101 DFFF FFFF

C

RRF f,d

Циклический сдвига вправо через флаг переноса

1

00 1100 DFFF FFFF

C

SUBWF f,d

Вычитание W из f

1

00 0010 DFFF FFFF

C, DC, Z

SWAPF f,d

Обмен местами полу-байт регистра f

1

00 1110 DFFF FFFF

нет

TRIS f

Загрузка регистра TRIS

1

00 0000 0110 0FFF

нет

XORWF f,d

Логическая операция исключающего ИЛИ с W и f

1

00 0110 DFFF FFFF

Z

БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ

BCF f,d

Очистка бита в f

1

01 00BB BFFF FFFF

нет

BSF f,b

Установка бита в f

1

01 01BB BFFF FFFF

нет

BTFSC f,b

Проверка на равенство бита нулю, пропускаем след. команду если да.

1(2)

01 10BB BFFF FFFF

нет

BTFSS f,b

Проверка на равенство бита 1, пропускаем след. команду если да.

1(2)

01 11BB BFFF FFFF

нет

СИМВОЛЬНЫЕ КОМАНДЫ И КОМАНДЫ ВЕТВЛЕНИЯ

ADDLW k

Сложение литеры и W

1

11 111X KKKK KKKK

C, DC, Z

ANDLW k

Логическая операция "И" с символом и W

1

11 1001 KKKK KKKK

Z

CALL k

Вызов процедуры

2

10 0KKK KKKK KKKK

нет

CLRWDT

Сброс Сторожевого Таймера (WDT)

1

00 0000 0110 0100

TO, PD

GOTO k

Безусловный переход

2

10 1KKK KKKK KKKK

нет

IORLW k

Логическая операция включающего ИЛИ с символом и W

1

11 1000 KKKK KKKK

Z

MOVLW k

Пересылка литеры в регистр W

1

11 00XX KKKK KKKK

нет

OPTION

Загрузка данных в регистр OPTION

1

00 0000 0110 0010

нет

RETFIE

Возврат управления после прерывания

2

00 0000 0000 1001

нет

RETLW k

Возврат с литерой в W

2

11 01XX KKKK KKKK

нет

RETURN

Возврат из процедуры

2

00 0000 0000 1000

нет

SLEEP

Переход в режим "сна"

1

00 0000 0110 0011

TO, PD

SUBLW k

Вычитание W из литеры

1

11 110X KKKK KKKK

C, DC, Z

XORLW k

Логическая операция исключающего ИЛИ с символом и W

1

11 1010 KKKK KKKK

Z

Примечания:

1. Когда регистр ввода вывода используется для модификации самого себя (MOVF PORTB, 1), то для записи будут использоваться значения 0/1 непосредственно с ножек микроконтролера, а не значение записаное в выходную защелку порта. Например если в защелку записана единица, а порт сконфигурен на ввод данных и снаружи на этом выводе логический 0, то в PORTB будет записан 0! Смысл в том, что выход защелки отделен от ножки контроллера тристабильным буфером и на вход считывается именно нога контроллера, которая за буфером. Поэтому вроде писали в порт 1, а читается 0, вот он то и пишется обратно.

2. Если команда оперирует с регистром TMR0(и при этом d=1), тогда предделитель обнуляется (если он относится к модулю Timer 0)

3. Если изменяется Программный Счетчик (PC) или условие истинно, тогда команда выполняется за 2 командных цикла. Второй командный цикл исполняется как команда NOP (Пустая операция).

Светодиодный индикатор серии АЛ304

Полупроводниковый семиэлементный цифро-буквенный индикатор образуют 7 светодиодов, имеющих форму полос, которые, как и в вакуумных люминесцентных индикаторах, расположены в одной плоскости «восьмеркой» (рисунок 3).

Рисунок 3 - Семиэлементный цифро-буквенный индикатор

Пропуская прямой ток через один или группу соответствующих светодиодов-элементов, получают светящееся изображение цифры или буквы.

По способу соединения электродов светодиодов и полярности включения питания различают индикаторы двух групп: с общим катодом и с общим анодом. У индикаторов первой группы соединены между собой катоды всех светодиодов (рисунок 3, а), а у индикаторов второй группы - аноды всех светодиодов (рисунок 3, б). Для управления индикаторами с общим катодом на входные (анодные) выводы подают напряжение положительной полярности, а для управления индикаторами с общим анодом - отрицательной полярности по отношению к общему проводу.

На рисунке 4, а и б показаны внешний вид и условное графическое обозначение индикатора серии АЛ304. Индикаторы этой серии с буквенными индексами А, Б и В-с общим катодом, а с буквенными индексами ГиЖ-с общим анодом.

Рисунок 4 - Семиэлементный цифро-буквенный индикатор АЛ304

Размеры корпуса такого индикатора-5,3Х6,3 мм, размеры знака-2х3 мм, длина выводов-около 6 мм. Через прозрачный корпус нетрудно рассмотреть всю «начинку» индикатора и распознать его цоколевку.

А на рисунке 4, в изображена схема блока цифровой индикации, в котором используется индикатор АЛ304Б с общим катодом. Микросхема К514ИД1 (DD1) -дешифратор, предназначенный для совместной работы с семиэлементным индикатором с разъединенными анодами светодиодов. При поступлении на его входы сигналов от счетчика импульсов, работающего в коде 1-2-4-8, индикатор высвечивает логическое состояние счетчика.

Такой блок цифровой индикации может работать в конструкции на микросхемах серии К 155. Если в нем использовать индикатор с общим анодом, например, АЛ304Г, тогда дешифратор должен быть К514ИД2, рассчитанный на совместную работу именно с таким индикатором. Впрочем, если дешифратор этой серии заменить микросхемой К176ИЕ4, то такой блок цифровой индикации можно использовать для работы в устройствах без дополнительного дешифратора.

2. Разработка цифрового автомобильного тахометра на микроконтроллере

Цифровой тахометр представляет собой устройство на микроконтроллере, отображающее количество оборотов в минуту на трехразрядном электронном дисплее, состоящем из трех элементов АЛ304Г.

Число и характер принимаемых и генерируемых внешних сигналов - один из решающих факторов при выборе МК для решения конкретной задачи. Все множество МК можно разделить на группы по числу выводов. Самые маленькие восьмивыводные (PIC12С5хх,PIC12C67x, PIC18F01x, PIC18F02x, AT0S2323, AT90S2343, Attiny11-Attiny22) - применяют, когда достаточно трех - шести внешних сигналов.

К МК следующей группы - в корпусах с 18 (20) выводами (PIC16F84, PIC16F62x, AT90S1200, AT90S2313) - уже можно подключить цифровой индикатор.

Следовательно, при выборе микроконтроллера необходимо учесть число внешних выводов. В нашем случае будет задействоваться 12 линий. Будем использовать перепрограммируемый PIC16F84, имеющий 18 линий вв/выв, внутреннее 1K x 14 бит EEPROM для программ, 8-битовые данные и 64 байт EEPROM памяти данных. К тому же входной буфер PIC16F84 рассчитан на непосредственное подключение индикации. При этом он отличается низкой стоимостью и высокой производительностью.

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

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

Принцип работы устройства

Тахометр имеет три разряда индикации с пределом измерения от 60 мин-1 до 7800 мин-1. Погрешность измерения на пределе 1 секунда равна 30 мин-1, а на пределе 3 секунды - 10 мин-1. Нижний предел ограничен погрешностью измерения, а верхний - количеством прерываний между индикацией. Из-за чего индикация разрядов становится прерывистой.

Получим формулу для вычисления частоты вращения коленчатого вала. Поскольку за один оборот коленчатого вала двигателя происходит два искрообразования, то мы подсчитываем за одну секунду 2N импульсов. Т.е. в два раза большее количество, чем произошло оборотов (N). Чтобы получить значение оборотов в минуту, необходимо умножить значение оборотов за секунду на 60 (Nsx60=Nm). Так как мы подсчитываем число импульсов не N, а 2N, то умножать нужно уже не на 60, а на 30. А поскольку аппаратно мы отбрасываем разряд единиц, то фактически делим значение оборотов на 10. Из этого следует расчетная формула: Nm=2Nsx3 мин-1. Где Nm - значение оборотов в минуту, 2Ns - число импульсов с прерывателя за одну секунду. Если подсчитывать число импульсов за 3 секунды, то Nm=2Ns мин-1. Таким образом, подсчитанное число импульсов за секунду достаточно умножить на 3 и перекодировать в двоично-десятичное, чтобы получить значение оборотов в минуту без единиц. А на пределе 3-х секунд просто перекодировать полученное значение. Показания индикатора равные 100 будут соответствовать значению 1000 мин-1.

Алгоритм работы устройства

Тахометр реализован на одной микросхеме микроконтроллера PIC16F84A. Алгоритм программы тахометра представлен в приложении A, а листинги самой программы в приложении Г. После включения питания происходит начальная инициализация всех регистров с последующей индикацией. После инициализации вступает в работу таймер TMR0. Таймер имеет коэффициент деления равный 256, что вместе с предделителем, имеющим коэффициент деления равный 32, и циклом процессора равным 4, дает прерывания каждую секунду (4х32х256=32768).

При замыкании контактов прерывателя с входа RB0 также происходит прерывание. При прерывании сохраняются значения регистров, задействованных на момент прерывания, и определяется происхождение прерывания. Если прерывание с входа RB0, то двоичный 16-ти разрядный счетчик увеличивается на единицу. Таким образом, подсчитывается количество прерываний с входа RB0 между прерываниями от переполнения таймера, то есть за 1 секунду. Каждое прерывание заканчивается восстановлением ранее сохраненных значений регистров, и процессор переключается на работу с индикацией.

Если прерывание произошло по переполнению таймера, то определяется состояние переключателя предела измерения и, если переключатель на пределе одной секунды, двоичное значение 16-ти разрядного счетчика умножается на 3 (2Nx3). 16-ти разрядный счетчик обнуляется, готовясь к новому циклу измерения. Полученное двоичное значение перекодируется в трехразрядное двоично-десятичное число и переписывается в регистры индикации. После восстановления значений регистров индикация происходит с новыми данными. То есть индикация обновляется каждую секунду.

Если установлен предел измерения равный 3 секундам, то при переполнении таймера значение счетчика секунд увеличивается на единицу. Если значение счетчика секунд еще не равно трем, прерывание завершается без обнуления 16-ти разрядного счетчика. В противном случае, в 16-ти разрядном счетчике накапливается количество прерываний с входа RB0 за три секунды. Это значение перекодируется в двоично-десятичное число и переписывается в регистры индикации. Двоичный счетчик обнуляется и цикл повторяется. В данном случае индикация обновляется каждые три секунды.

Описание работы схемы

Структурная и принципиальная схемы тахометра представлены в приложениях Б и В. Входной сигнал с контактов прерывателя стабилизируется стабилитроном VD1 на уровень ТТЛ и подается на вход RB0. При бесконтактной системе зажигания сигнал снимается с выхода коммутатора, выдающего перепад напряжения 3 В. Этого напряжения достаточно для срабатывания микроконтроллера.

Входы RA0-RA2 коммутируют аноды светодиодов, реализуя динамическую индикацию. Вход RA3 нагружен переключателем предела измерения «1s-3s». Внутренние подтягивающие резисторы на входах микроконтроллера программно отключены для исключения влияния на входной сигнал, поэтому возникла необходимость в установке резистора R2. Входы RB1-RB7 использованы для вывода значений сегментов. Поскольку микроконтроллер работает при верхнем питающем напряжении 6 В, то микросхему стабилизатора напряжения КР142ЕН5 можно взять с любой буквой, обеспечивающей это напряжение. Потребляемый тахометром ток около 25 миллиампер, поэтому микросхема стабилизатора напряжения не нуждается в радиаторе. Диод VD2 защищает прибор от переполюсовки.

Компиляция программы

Компиляция программы и получение НЕХ файла были сделаны с использованием программы MPLAB. Процесс компиляции в MPLAB представлен на рисунке 5.

MPLAB - это набор программ, которые позволяют программисту с максимальным комфортом составлять, отлаживать и оптимизировать текст программы, а также создавать (после этого) HEX - файл программы.

Полученные в процессе компиляции программы файлы листинга и прошивки находятся в приложениях Д и Е.

Рисунок 5 - Компиляция программы в IDE MPLAB

Заключение

На данном примере была показана реализация устройства автомобильного цифрового тахометра. Разработанное устройство может быть использовано при регулировке холостого хода карбюраторов двигателей внутреннего сгорания. Его можно использовать и для контроля частоты вращения вала автомобильных или лодочных двигателей во время движения. При разработке тахометра был использован перепрограммируемый PIC16F84А, обладающий всеми необходимыми параметрами для данного устройства. При этом он отличается низкой стоимостью и высокой производительностью.

Список использованных источников

1. Новиков Ю.В., Скоробогатов П.К. Основы микропроцессорной техники. - М.: ИНТУИТ.РУ. «Интернет-Университет Информационных технологий», 2003.

2. Карабельников Е. А. Самоучитель по программированию PIC контроллеров для начинающих, 2005. http://ikarab.narod.ru/Kea_20.html.

3. А. Долгий. Разработка и отладка устройств на МК. Журнал Радио № 5 - 12, 2001.

4. А. Долгий. Программаторы и программирование микроконтроллеров. Журнал радио № 1, 2004

5. А. Бирюков. Цифровой тахометр. Радио, 1997, № 11, с. 54, 55.

6. http://www.kulakov.ru - Страница Вячеслава Кулакова. Имеются рассылки для начинающих программистов.

7. Техническая документация на сайтах http://www.microchip.ru/lit/pic/ и http://www.microchip.com/search/searchapp/searchhome.aspx?id=2&q=PIC16F84

Приложение

Алгоритм функционирования

Схема структурная

Схема электрическая принципиальная

Листинг программы

;

; АВТОМОБИЛЬНЫЙ ТАХОМЕТР С ТРЕМЯ РАЗРЯДАМИ ИНДИКАЦИИ.

; ВРЕМЯ ИЗМЕРЕНИЯ 1 И 3 СЕКУНДЫ.

; ПОГРЕШНОСТЬ ИЗМЕРЕНИЯ В РЕЖИМЕ 1 СЕК. - 30 ОБ./МИН.

; В РЕЖИМЕ 3 СЕК. - 10 ОБ./МИН.

;_____________________________________________

#INCLUDE P16F84A.INC

__CONFIG 3FFC

;___________________________________________

; 11111111111100

; 0,1-РАЗРЯДЫ ГЕНЕРАТОРА, 00- 32-200 КГЦ.

; 2- WDTE, 1- ВКЛ.

; 3- PWRTE, 1- ВКЛ.

; 4-13 ЗАЩИТА КОДА. 1- НЕТ ЗАЩИТЫ.

;_____________________________________________

; ПОДСЧЕТ ИМПУЛЬСОВ С ПРЕРЫВАТЕЛЯ ПРОИЗВОДИТСЯ 1 СЕКУНДУ.

; ЗА 1 ОБОРОТ КОЛЕНВАЛА ПРОХОДИТ ДВА ИМПУЛЬСА. ЗНАЧЕНИЕ В СЧЕТЧИКЕ БУДЕТ

; 2N ЗА СЕКУНДУ. ЗА МИНУТУ НАДО УМНОЖИТЬ НА 60. НА 10 МЫ ДЕЛИМ АППАРАТНО,

; УБРАВ РАЗРЯД ЕДИНИЦ. НА 2 УМНОЖЕНИЕ КОНСТРУКТИВНОЕ - 2 ИМПУЛЬСА ЗА 1 ОБОРОТ.

; ПОЛУЧИМ: Nx60=>2Nх3=n ОБ/МИН. 1 СЕК. ПОЛУЧАЕМ С TMR0, С ПРЕДДЕЛИТЕЛЕМ К=32:

; 256х32х4=32768. ПОДСЧЕТ ЗА 3 СЕКУНДЫ НЕПОСРЕДСТВЕННО ИДЕТ НА ИНДИКАЦИЮ.

;_____________________________________________

; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ.

;______________________________________________

INDF EQU 00H ;ДОСТУП К ПАМЯТИ ЧЕРЕЗ FSR.

TMR0 EQU 01H ;TMR0.

OPTION_REG EQU 81H ;OPTION (RP0=1).

PC EQU 02H ;СЧЕТЧИК КОМАНД.

STATUS EQU 03H ;РЕГИСТР СОСТОЯНИЯ АЛУ.

FSR EQU 04H ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.

PORTA EQU 05H ;ПОРТ А ВВОДА/ВЫВОДА.

PORTB EQU 06H ;ПОРТ В ВВОДА/ВЫВОДА.

TRISA EQU 85H ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А.

TRISB EQU 86H ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА В.

INTCON EQU 0BH ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ.

;________________________________________________

; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ ИНДИКАЦИИ.

;________________________________________________

DESI EQU 010H ;ДЕСЯТКИ ИНДИКАЦИИ.

SOTI EQU 011H ;СОТНИ.

TUSI EQU 012H ;ТЫСЯЧИ.

;_______________________________________

; РЕГИСТРЫ ДЛЯ ОРГАНИЗАЦИИ ИНДИКАЦИИ.

;_______________________________________

ANOD EQU 013H ;АНОД.

SEGD EQU 014H ;СЕГМЕНТЫ.

;__________________________________________

; ВРЕМЕННЫЕ, ДЛЯ ХРАНЕНИЯ ПРИ ПРЕРЫВАНИИ.

;___________________________________________

W_TEMP EQU 015H ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА W ПРИ ПРЕРЫВАНИИ.

STATUS_TEMP EQU 016H ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА STATUS ПРИ ПРЕРЫВАНИИ.

FSR_TEMP EQU 017H ;ВРЕМЕННЫЙ ДЛЯ FSR.

;__________________________________________

; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ СЧЕТА.

;__________________________________________

DES EQU 018H ;МЛАДШИЙ РАЗРЯД РЕГИСТРА СЧЕТА.

SOT EQU 019H ;СТАРШИЙ РАЗРЯД.

SEC EQU 01AH ;СЕКУНДЫ.

SOTU EQU 01BH ;ВРЕМЕННЫЙ РЕГИСТР.

;_________________________________

; ОСНОВНАЯ ПРОГРАММА.

;_________________________________

ORG 0

GOTO INIT

ORG 4

GOTO CONST

;_____________________________________________________________

; 1. ИНИЦИАЛИЗАЦИЯ

;_____________________________________________________________

INIT

BSF STATUS,5 ;ПЕРЕХОДИМ В БАНК 1.

MOVLW B'11000100' ;ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕРОМ, К=32 ...100,

MOVWF OPTION_REG^80H ;ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ ВЫКЛЮЧЕНЫ, ФРОНТ НАРАСТАНИЯ.

MOVLW B'10110000' ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ = ПРИ ПЕРЕПОЛНЕНИИ ТАЙМЕРА

MOVWF INTCON ;И ИЗМЕНЕНИЮ ВХОДНОГО СИГНАЛА ПОРТА В.

MOVLW B'00011000' ; RA0-RA2 НА ВЫХОД, RA3, RA4-ВХОД.

MOVWF TRISA^80H

MOVLW B'00000001' ; RB0 НА ВХОД, RB1-RB7-ВЫХОД.

MOVWF TRISB^80H

BCF STATUS,5 ;ПЕРЕХОДИМ В БАНК 0.

CLRF TMR0 ;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛИВАЕM.

CLRF DESI

CLRF DES

CLRF SOTI

CLRF SOT

CLRF SOTU

CLRF TUSI

CLRF SEC

;________________________________________________

; 2. ОПРЕДЕЛЕНИЕ СОСТОЯНИЯ КНОПОК И ФЛАГОВ.

;_________________________________________________

BTFSS INTCON,2 ;ЕСЛИ НЕТ ПРЕРЫВАНИЯ,

GOTO INDZIKL0 ;ИДЕМ НА ИНДИКАЦИЮ.

KEY

BCF INTCON,2 ;СБРОС ФЛАГА (T0IF) ПЕРЕПОЛНЕНИЯ ТАЙМЕРА (РАЗРЕШАЕМ ПРЕРЫВАНИЯ).

BTFSS PORTA,3 ;ЕСЛИ КНОПКА НАЖАТА,

GOTO THREES ;ИДЕМ СЧИТАТЬ СЕКУНДЫ.

;_________________________

; 3. УМНОЖЕНИЕ ЗНАЧЕНИЙ НА 3.

;_________________________

MOVFW DES ;МЛАДШИЙ РАЗРЯД.

ADDWF DES,0 ;1+1

BTFSC STATUS,0 ;ЕСЛИ НЕТ ПЕРЕНОСА,

INCF SOTU,1 ;+1 В СТАРШИЙ РАЗРЯД.

BCF STATUS,0 ;0.

ADDWF DES,1 ;2+1.

BTFSC STATUS,0 ;ЕСЛИ НЕТ ПЕРЕНОСА,

INCF SOTU,1 ;+1 В СТАРШИЙ РАЗРЯД.

MOVFW SOT ;СТАРШИЙ РАЗРЯД.

ADDWF SOT,0 ;1+1.

ADDWF SOT,1 ;2+1.

MOVFW SOTU ;ПРИБАВИМ ПЕРЕНОС ИЗ МЛАДШЕГО РАЗРЯДА.

ADDWF SOT,1 ;ЗАПИШЕМ В СТАРШИЙ РАЗРЯД.

CLRF SOTU ;ОБНУЛИМ ВРЕМЕННЫЙ.

;_______________________________

; 4. ПЕРЕКОДИРОВКА ИЗ 16-И РАЗРЯДНОГО 2-ГО В 3-Х РАЗРЯДНОЕ 2-10-Е.

;________________________________

RAS

CLRWDT

CLRF DESI ;ОБНУЛИМ РЕГИСТРЫ ИНДИКАЦИИ.

CLRF SOTI ;

CLRF TUSI ;

BCF STATUS,2 ;ОЧИСТКА БИТА "Z" РЕГИСТРА STATUS.

TSTF SOT ;ПРОВЕРИМ НА НОЛЬ.

BZ RAS1 ;ЕСЛИ РАВНО, ИДЕМ.

RAS0

MOVLW 64 ;100.

RAS2

BSF STATUS,0 ;УСТАНОВКА БИТА "С" РЕГИСТРА STATUS.

RAS3

SUBWF DES,1 ;ВЫЧИТАЕМ ИЗ РЕГИСТРА 100 > DES.

BNC BINDES ;ПЕРЕХОД ЕСЛИ ПЕРЕНОС.

INCF TUSI,1 ;ПРИБАВИМ 1 К ТЫСЯЧАМ РЕГИСТРА ИНДИКАЦИИ.

GOTO RAS3 ;ПОВТОРИТЬ.

BINDES

CLRWDT

BCF STATUS,2 ;ОЧИСТКА БИТА "Z" РЕГИСТРА STATUS.

TSTF SOT ;ПРИВЕРИТЬ РЕГИСТР НА НОЛЬ.

BZ RAD ;ЕСЛИ 0, ИДЕМ.

DECF SOT,1 ;ВЫЧЕСТЬ ИЗ РЕГИСТРА 1.

INCF TUSI,1 ;ПРИБАВИМ 1 К ТЫСЯЧАМ РЕГИСТРА ИНДИКАЦИИ.

GOTO RAS2 ;ПОВТОРИТЬ.

RAD

ADDWF DES,1 ;ВОССТАНОВИМ ДЕСЯТКИ (В АКК. - 100).

MOVLW .10 ;10.

BSF STATUS,0 ;ОЧИСТКА БИТА "С" РЕГИСТРА STATUS.

RAD0

SUBWF DES,1 ;ВЫЧИТАЕМ ИЗ РЕГИСТРА 10 > DES.

BNC BINDED ;ПЕРЕХОД, ЕСЛИ ПРОПАЛ ПЕРЕНОС.

INCF SOTI,1 ;ПРИБАВИМ 1 К СТАРШЕМУ РЕГИСТРУ.

GOTO RAD0 ;ПОВТОРИТЬ.

BINDED

ADDWF DES,0 ;+10.

MOVWF DESI ;ЗАПИШЕМ В РЕГИСТР ИНДИКАЦИИ.

CLRF DES ;ОБНУЛИМ.

CLRF SOT ;

GOTO RECONST ;

RAS1

BCF STATUS,2 ;ОЧИСТКА БИТА "Z" РЕГИСТРА STATUS.

TSTF DES ;ЕСЛИ ЗНАЧЕНИЕ РЕГИСТРА = 0,

BZ RECONST ;ЗАВЕРШАЕМ ПРЕРЫВАНИЕ,

GOTO RAS0 ;ИНАЧЕ ИДЕМ СЧИТАТЬ.

;______________________________

; 5. ТРИ СЕКУНДЫ.

;______________________________

THREES

MOVLW -2 ;

ADDWF SEC,0 ;ЕСЛИ УЖЕ 2 СЕКУНДЫ,

BZ THREES0 ;ОБНУЛЯЕМ,

INCF SEC,1 ;ИНАЧЕ +1 В СЕКУНДЫ.

GOTO RECONST

THREES0

CLRF SEC ;СБРОС.

GOTO RAS ;ИДЕМ СЧИТАТЬ.

;___________________________________________________

; 6. ТАБЛИЦА СЕГМЕНТОВ ДЛЯ ОБЩЕГО АНОДА.

;___________________________________________________

SEGDATA ;7, 6, 5, 4, 3, 2, 1, 0.

ADDWF PCL,F ;G, F, E, D, C, B, A, PR

; АНОД КАТОД

RETLW B'10000001' ; 0 B'01111111'

RETLW B'11110011' ; 1 B'00001101'

RETLW B'01001001' ; 2 B'10110111'

RETLW B'01100001' ; 3 B'10011111'

RETLW B'00110011' ; 4 B'11001101'

RETLW B'00100101' ; 5 B'11011011'

RETLW B'00000101' ; 6 B'11111011'

RETLW B'11110001' ; 7 B'00001111'

RETLW B'00000001' ; 8 B'11111111'

RETLW B'00100001' ; 9 B'11011111'

;_________________________________________

; 7. ИНДИКАЦИЯ.

;_________________________________________

INDZIKL0

CLRWDT

CLRF ANOD ;ОБНУЛЯЕМ АНОД, ЧТОБЫ ОЧИСТИТЬ СТАРШИЕ РАЗРЯДЫ.

BSF INTCON,7 ;ЧТОБЫ НЕ ПРОПУСТИТЬ ПРЕРЫВАНИЕ.

BSF ANOD,0 ;УСТАНОВИМ МЛ. РАЗРЯД АНОДА.

MOVLW 010H ;ЗАПИСЬ НОМЕРА РЕГИСТРА МЛ. РАЗРЯДА

MOVWF SEGD ;В РЕГИСТР АДРЕСА РАЗРЯДА.

INDZIKL1

MOVWF FSR ;В РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.

MOVFW INDF ;ВЫБИРАЕМ 2-10 ЗНАЧЕНИЕ.

CALL SEGDATA ;ПРЕОБРАЗУЕМ В СЕМИСЕГМЕНТНОЕ ДЛЯ ИНДИКАЦИИ

MOVWF PORTB ;В ПОРТ В.

MOVFW ANOD ;ЗАГРУЖАЕМ ЗНАЧЕНИЕ АНОДА.

MOVWF PORTA ;В ПОРТ А.

CALL REST ;НА ОТДЫХ.

BCF STATUS,0 ;ОБНУЛИМ.

RLF ANOD,1 ;+1 В РЕГИСТР АНОДА.

BTFSC ANOD,3 ;ЗАПИСЬ ЧИСЛА 3.

GOTO INDZIKL0 ;ЕСЛИ РАВНО 0, ИДЕМ,

CLRWDT ;ВРЕМЯ ТАЙМЕРА - 18 МС.

INCF SEGD,F ;+1 В РЕГИСТР АДРЕСА РАЗРЯДА.

MOVFW SEGD ;ЗАГРУЖАЕМ ЗНАЧЕНИЕ

GOTO INDZIKL1 ;И ИДЕМ.

REST

MOVLW .10 ;ЗАДЕРЖКА В 41 ЦИКЛ.

REST0

ADDLW -01H ;ВРЕМЯ НА ГОРЕНИЕ СЕГМЕНТА

BTFSS STATUS,2 ;64 ЦИКЛА=7,81 МСЕК.

GOTO REST0 ;ЗАЦИКЛИВАЕМСЯ.

RETURN

;_____________________________________________________________

; 8. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ.

;_____________________________________________________________

CONST

BCF INTCON,7 ;ЗАПРЕТ ПРЕРЫВАНИЙ.

MOVWF W_TEMP ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ W И

MOVFW STATUS ;STATUS,

MOVWF STATUS_TEMP ;

MOVFW FSR ;FSR.

MOVWF FSR_TEMP ;

BTFSC INTCON,1 ;ЕСЛИ ПРЕРЫВАНИЕ ПО ВХОДУ В,

GOTO DES1 ;+1 В РЕГИСТРЫ СЧЕТА.

GOTO KEY ;ИНАЧЕ ИДЕМ НА ОПРОС КЛАВИАТУРЫ.

RECONST ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ЗНАЧЕНИЙ.

MOVFW STATUS_TEMP ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ:

MOVWF STATUS ;STATUS,

MOVFW FSR_TEMP ;

MOVWF FSR ;FSR,

MOVFW W_TEMP ;W.

RETFIE ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ.

;_____________________________________________________________

; 9. СЧЕТ.

;_____________________________________________________________

DES1

MOVFW DES ;ЗАГРУЗКА ЗНАЧЕНИЙ МЛ. РАЗРЯДА В РАБ. РЕГИСТР.

SUBLW 0FFH ;ВЫЧЕСТЬ ИЗ РЕГИСТРА 255.

BZ SOT1 ;СРАВНИТЬ НА 0, ЕСЛИ РАВНО, ПЕРЕЙТИ,

INCF DES,F ;ИНАЧЕ ПРИБАВИТЬ 1 В РЕГИСТР МЛ. РАЗРЯДА.

BCF INTCON,1 ;СБРОС ФЛАГА ПРЕРЫВАНИЯ.

GOTO RECONST ;

SOT1

CLRF DES ;ОБНУЛЕНИЕ РЕГИСТРА МЛ. РАЗРЯДА.

MOVFW SOT ;ЗАГРУЗКА СТ. РАЗРЯДА В РАБ. РЕГИСТР.

SUBLW 0FFH ;ВЫЧЕСТЬ ИЗ РЕГИСТРА 255.

BZ FALSH ;СРАВНИТЬ НА 0, ЕСЛИ РАВНО, ЗНАЧИТ ОШИБКА.

INCF SOT,F ;ПРИБАВИТЬ 1 В СТ. РАЗРЯД.

BCF INTCON,1 ;СБРОС ФЛАГА ПРЕРЫВАНИЯ.

GOTO RECONST ;

FALSH

CLRF SOT ;ОБНУЛЯЕМ.

CLRF DES ;

GOTO RECONST ;НАЧИНАЕМ СНАЧАЛА.

;_______________________________

END

Ассемблированный текст программы

MPASM 5.03 TAXOMETR.ASM 6-1-2006 3:13:06 PAGE 1

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

00001 ;

00002 ; АВТОМОБИЛЬНЫЙ ТАХОМЕТР С ТРЕМЯ РАЗРЯДАМИ ИНДИКАЦИИ.

00003 ; ВРЕМЯ ИЗМЕРЕНИЯ 1 И 3 СЕКУНДЫ.

00004 ; ПОГРЕШНОСТЬ ИЗМЕРЕНИЯ В РЕЖИМЕ 1 СЕК. - 30 ОБ./МИН.

00005 ; В РЕЖИМЕ 3 СЕК. - 10 ОБ./МИН.

00006 ;_____________________________________________

00007 #INCLUDE P16F84A.INC

00001 LIST

00002 ; P16F84A.INC Standard Header File, Version 2.00 Microchip Technology, Inc.

00134 LIST

2007 3FFC 00008 __CONFIG 3FFC

00009 ;___________________________________________

00010 ; 11111111111100

00011 ; 0,1-РАЗРЯДЫ ГЕНЕРАТОРА, 00- 32-200 КГЦ.

00012 ; 2- WDTE, 1- ВКЛ.

00013 ; 3- PWRTE, 1- ВКЛ.

00014 ; 4-13 ЗАЩИТА КОДА. 1- НЕТ ЗАЩИТЫ.

00015 ;_____________________________________________

00016 ; ПОДСЧЕТ ИМПУЛЬСОВ С ПРЕРЫВАТЕЛЯ ПРОИЗВОДИТСЯ 1 СЕКУНДУ.

00017 ; ЗА 1 ОБОРОТ КОЛЕНВАЛА ПРОХОДИТ ДВА ИМПУЛЬСА. ЗНАЧЕНИЕ В СЧЕТЧИКЕ БУДЕТ

00018 ; 2N ЗА СЕКУНДУ. ЗА МИНУТУ НАДО УМНОЖИТЬ НА 60. НА 10 МЫ ДЕЛИМ АППАРАТНО,

00019 ; УБРАВ РАЗРЯД ЕДИНИЦ. НА 2 УМНОЖЕНИЕ КОНСТРУКТИВНОЕ - 2 ИМПУЛЬСА ЗА 1 ОБОРОТ.

00020 ; ПОЛУЧИМ: Nx60=>2Nх3=n ОБ/МИН. 1 СЕК. ПОЛУЧАЕМ С TMR0, С ПРЕДДЕЛИТЕЛЕМ К=32:

00021 ; 256х32х4=32768. ПОДСЧЕТ ЗА 3 СЕКУНДЫ НЕПОСРЕДСТВЕННО ИДЕТ НА ИНДИКАЦИЮ.

00022 ;_____________________________________________

00023 ; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ.

00024 ;______________________________________________

00000000 00025 INDF EQU 00H ;ДОСТУП К ПАМЯТИ ЧЕРЕЗ FSR.

00000001 00026 TMR0 EQU 01H ;TMR0.

00000081 00027 OPTION_REG EQU 81H ;OPTION (RP0=1).

00000002 00028 PC EQU 02H ;СЧЕТЧИК КОМАНД.

00000003 00029 STATUS EQU 03H ;РЕГИСТР СОСТОЯНИЯ АЛУ.

00000004 00030 FSR EQU 04H ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.

00000005 00031 PORTA EQU 05H ;ПОРТ А ВВОДА/ВЫВОДА.

00000006 00032 PORTB EQU 06H ;ПОРТ В ВВОДА/ВЫВОДА.

00000085 00033 TRISA EQU 85H ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А.

00000086 00034 TRISB EQU 86H ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА В.

0000000B 00035 INTCON EQU 0BH ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ.

00036 ;________________________________________________

00037 ; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ ИНДИКАЦИИ.

00038 ;________________________________________________

00000010 00039 DESI EQU 010H ;ДЕСЯТКИ ИНДИКАЦИИ.

00000011 00040 SOTI EQU 011H ;СОТНИ.

00000012 00041 TUSI EQU 012H ;ТЫСЯЧИ.

00042 ;_______________________________________

00043 ; РЕГИСТРЫ ДЛЯ ОРГАНИЗАЦИИ ИНДИКАЦИИ.

00044 ;_______________________________________

00000013 00045 ANOD EQU 013H ;АНОД.

00000014 00046 SEGD EQU 014H ;СЕГМЕНТЫ.

00047 ;__________________________________________

00048 ; ВРЕМЕННЫЕ, ДЛЯ ХРАНЕНИЯ ПРИ ПРЕРЫВАНИИ.

00049 ;___________________________________________

00000015 00050 W_TEMP EQU 015H ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА W ПРИ ПРЕРЫВАНИИ.

MPASM 5.03 TAXOMETR.ASM 6-1-2006 3:13:06 PAGE 2

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

00000016 00051 STATUS_TEMP EQU 016H ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА STATUS ПРИ ПРЕРЫВАНИИ.

00000017 00052 FSR_TEMP EQU 017H ;ВРЕМЕННЫЙ ДЛЯ FSR.

00053 ;__________________________________________

00054 ; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ СЧЕТА.

00055 ;__________________________________________

00000018 00056 DES EQU 018H ;МЛАДШИЙ РАЗРЯД РЕГИСТРА СЧЕТА.

00000019 00057 SOT EQU 019H ;СТАРШИЙ РАЗРЯД.

0000001A 00058 SEC EQU 01AH ;СЕКУНДЫ.

0000001B 00059 SOTU EQU 01BH ;ВРЕМЕННЫЙ РЕГИСТР.

00060 ;_________________________________

00061 ; ОСНОВНАЯ ПРОГРАММА.

00062 ;_________________________________

0000 00063 ORG 0

0000 2805 00064 GOTO INIT

0004 00065 ORG 4

0004 2880 00066 GOTO CONST

00067 ;__________________________________________________________________

00068 ; 1. ИНИЦИАЛИЗАЦИЯ

00069 ;__________________________________________________________________

0005 00070 INIT

0005 1683 00071 BSF STATUS,5 ;ПЕРЕХОДИМ В БАНК 1.

0006 30C4 00072 MOVLW B'11000100' ;ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕРОМ, К=32 ...100,

0007 0081 00073 MOVWF OPTION_REG^80H ;ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ ВЫКЛЮЧЕНЫ, ФРОНТ НАРАСТАНИЯ.

0008 30B0 00074 MOVLW B'10110000' ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ = ПРИ ПЕРЕПОЛНЕНИИ ТАЙМЕРА

0009 008B 00075 MOVWF INTCON ;И ИЗМЕНЕНИЮ ВХОДНОГО СИГНАЛА ПОРТА В.

000A 3018 00076 MOVLW B'00011000' ; RA0-RA2 НА ВЫХОД, RA3, RA4-ВХОД.

000B 0085 00077 MOVWF TRISA^80H

000C 3001 00078 MOVLW B'00000001' ; RB0 НА ВХОД, RB1-RB7-ВЫХОД.

000D 0086 00079 MOVWF TRISB^80H

000E 1283 00080 BCF STATUS,5 ;ПЕРЕХОДИМ В БАНК 0.

000F 0181 00081 CLRF TMR0 ;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛИВАЕM.

0010 0190 00082 CLRF DESI

0011 0198 00083 CLRF DES

0012 0191 00084 CLRF SOTI

0013 0199 00085 CLRF SOT

0014 019B 00086 CLRF SOTU

0015 0192 00087 CLRF TUSI

0016 019A 00088 CLRF SEC

00089 ;________________________________________________

00090 ; 2. ОПРЕДЕЛЕНИЕ СОСТОЯНИЯ КНОПОК И ФЛАГОВ.

00091 ;_________________________________________________

0017 1D0B 00092 BTFSS INTCON,2 ;ЕСЛИ НЕТ ПРЕРЫВАНИЯ,

0018 2866 00093 GOTO INDZIKL0 ;ИДЕМ НА ИНДИКАЦИЮ.

0019 00094 KEY

0019 110B 00095 BCF INTCON,2 ;СБРОС ФЛАГА (T0IF) ПЕРЕПОЛНЕНИЯ ТАЙМЕРА (РАЗРЕШАЕМ ПРЕРЫВАНИЯ).

001A 1D85 00096 BTFSS PORTA,3 ;ЕСЛИ КНОПКА НАЖАТА,

001B 2853 00097 GOTO THREES ;ИДЕМ СЧИТАТЬ СЕКУНДЫ.

00098 ;_________________________

00099 ; 3. УМНОЖЕНИЕ ЗНАЧЕНИЙ НА 3.

00100 ;_________________________

001C 0818 00101 MOVFW DES ;МЛАДШИЙ РАЗРЯД.

001D 0718 00102 ADDWF DES,0 ;1+1

001E 1803 00103 BTFSC STATUS,0 ;ЕСЛИ НЕТ ПЕРЕНОСА,

MPASM 5.03 TAXOMETR.ASM 6-1-2006 3:13:06 PAGE 3

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

001F 0A9B 00104 INCF SOTU,1 ;+1 В СТАРШИЙ РАЗРЯД.

0020 1003 00105 BCF STATUS,0 ;0.

0021 0798 00106 ADDWF DES,1 ;2+1.

0022 1803 00107 BTFSC STATUS,0 ;ЕСЛИ НЕТ ПЕРЕНОСА,

0023 0A9B 00108 INCF SOTU,1 ;+1 В СТАРШИЙ РАЗРЯД.

0024 0819 00109 MOVFW SOT ;СТАРШИЙ РАЗРЯД.

0025 0719 00110 ADDWF SOT,0 ;1+1.

0026 0799 00111 ADDWF SOT,1 ;2+1.

0027 081B 00112 MOVFW SOTU ;ПРИБАВИМ ПЕРЕНОС ИЗ МЛАДШЕГО РАЗРЯДА.

0028 0799 00113 ADDWF SOT,1 ;ЗАПИШЕМ В СТАРШИЙ РАЗРЯД.

0029 019B 00114 CLRF SOTU ;ОБНУЛИМ ВРЕМЕННЫЙ.

00115 ;_______________________________

00116 ; 4. ПЕРЕКОДИРОВКА ИЗ 16-И РАЗРЯДНОГО 2-ГО В 3-Х РАЗРЯДНОЕ 2-10-Е.

00117 ;________________________________

002A 00118 RAS

002A 0064 00119 CLRWDT

002B 0190 00120 CLRF DESI ;ОБНУЛИМ РЕГИСТРЫ ИНДИКАЦИИ.

002C 0191 00121 CLRF SOTI ;

002D 0192 00122 CLRF TUSI ;

002E 1103 00123 BCF STATUS,2 ;ОЧИСТКА БИТА "Z" РЕГИСТРА STATUS.

002F 0899 00124 TSTF SOT ;ПРОВЕРИМ НА НОЛЬ.

0030 1903 284E 00125 BZ RAS1 ;ЕСЛИ РАВНО, ИДЕМ.

0032 00126 RAS0

0032 3064 00127 MOVLW 64 ;100.

0033 00128 RAS2

0033 1403 00129 BSF STATUS,0 ;УСТАНОВКА БИТА "С" РЕГИСТРА STATUS.

0034 00130 RAS3

0034 0298 00131 SUBWF DES,1 ;ВЫЧИТАЕМ ИЗ РЕГИСТРА 100 > DES.

0035 1C03 2839 00132 BNC BINDES ;ПЕРЕХОД ЕСЛИ ПЕРЕНОС.

0037 0A92 00133 INCF TUSI,1 ;ПРИБАВИМ 1 К ТЫСЯЧАМ РЕГИСТРА ИНДИКАЦИИ.

0038 2834 00134 GOTO RAS3 ;ПОВТОРИТЬ.

0039 00135 BINDES

0039 0064 00136 CLRWDT

003A 1103 00137 BCF STATUS,2 ;ОЧИСТКА БИТА "Z" РЕГИСТРА STATUS.

003B 0899 00138 TSTF SOT ;ПРИВЕРИТЬ РЕГИСТР НА НОЛЬ.

003C 1903 2841 00139 BZ RAD ;ЕСЛИ 0, ИДЕМ.

003E 0399 00140 DECF SOT,1 ;ВЫЧЕСТЬ ИЗ РЕГИСТРА 1.

003F 0A92 00141 INCF TUSI,1 ;ПРИБАВИМ 1 К ТЫСЯЧАМ РЕГИСТРА ИНДИКАЦИИ.

0040 2833 00142 GOTO RAS2 ;ПОВТОРИТЬ.

0041 00143 RAD

0041 0798 00144 ADDWF DES,1 ;ВОССТАНОВИМ ДЕСЯТКИ (В АКК. - 100).

0042 300A 00145 MOVLW .10 ;10.

0043 1403 00146 BSF STATUS,0 ;ОЧИСТКА БИТА "С" РЕГИСТРА STATUS.

0044 00147 RAD0

0044 0298 00148 SUBWF DES,1 ;ВЫЧИТАЕМ ИЗ РЕГИСТРА 10 > DES.

0045 1C03 2849 00149 BNC BINDED ;ПЕРЕХОД, ЕСЛИ ПРОПАЛ ПЕРЕНОС.

0047 0A91 00150 INCF SOTI,1 ;ПРИБАВИМ 1 К СТАРШЕМУ РЕГИСТРУ.

0048 2844 00151 GOTO RAD0 ;ПОВТОРИТЬ.

0049 00152 BINDED

0049 0718 00153 ADDWF DES,0 ;+10.

004A 0090 00154 MOVWF DESI ;ЗАПИШЕМ В РЕГИСТР ИНДИКАЦИИ.

004B 0198 00155 CLRF DES ;ОБНУЛИМ.

004C 0199 00156 CLRF SOT ;

MPASM 5.03 TAXOMETR.ASM 6-1-2006 3:13:06 PAGE 4

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

004D 2889 00157 GOTO RECONST ;

004E 00158 RAS1

004E 1103 00159 BCF STATUS,2 ;ОЧИСТКА БИТА "Z" РЕГИСТРА STATUS.

004F 0898 00160 TSTF DES ;ЕСЛИ ЗНАЧЕНИЕ РЕГИСТРА = 0,

0050 1903 2889 00161 BZ RECONST ;ЗАВЕРШАЕМ ПРЕРЫВАНИЕ,

0052 2832 00162 GOTO RAS0 ;ИНАЧЕ ИДЕМ СЧИТАТЬ.

00163

00164 ;______________________________

00165 ; 5. ТРИ СЕКУНДЫ.

00166 ;______________________________

0053 00167 THREES

0053 30FE 00168 MOVLW -2 ;

0054 071A 00169 ADDWF SEC,0 ;ЕСЛИ УЖЕ 2 СЕКУНДЫ,

0055 1903 2859 00170 BZ THREES0 ;ОБНУЛЯЕМ,

0057 0A9A 00171 INCF SEC,1 ;ИНАЧЕ +1 В СЕКУНДЫ.

0058 2889 00172 GOTO RECONST

0059 00173 THREES0

0059 019A 00174 CLRF SEC ;СБРОС.

005A 282A 00175 GOTO RAS ;ИДЕМ СЧИТАТЬ.

00176 ;___________________________________________________

00177 ; 6. ТАБЛИЦА СЕГМЕНТОВ ДЛЯ ОБЩЕГО АНОДА.

00178 ;___________________________________________________

005B 00179 SEGDATA ;7, 6, 5, 4, 3, 2, 1, 0.

005B 0782 00180 ADDWF PCL,F ;G, F, E, D, C, B, A, PR

00181 ; АНОД КАТОД

005C 3481 00182 RETLW B'10000001' ; 0 B'01111111'

005D 34F3 00183 RETLW B'11110011' ; 1 B'00001101'

005E 3449 00184 RETLW B'01001001' ; 2 B'10110111'

005F 3461 00185 RETLW B'01100001' ; 3 B'10011111'

0060 3433 00186 RETLW B'00110011' ; 4 B'11001101'

0061 3425 00187 RETLW B'00100101' ; 5 B'11011011'

0062 3405 00188 RETLW B'00000101' ; 6 B'11111011'

0063 34F1 00189 RETLW B'11110001' ; 7 B'00001111'

0064 3401 00190 RETLW B'00000001' ; 8 B'11111111'

0065 3421 00191 RETLW B'00100001' ; 9 B'11011111'

00192 ;_________________________________________

00193 ; 7. ИНДИКАЦИЯ.

00194 ;_________________________________________

0066 00195 INDZIKL0

0066 0064 00196 CLRWDT

0067 0193 00197 CLRF ANOD ;ОБНУЛЯЕМ АНОД, ЧТОБЫ ОЧИСТИТЬ СТАРШИЕ РАЗРЯДЫ.

0068 178B 00198 BSF INTCON,7 ;ЧТОБЫ НЕ ПРОПУСТИТЬ ПРЕРЫВАНИЕ.

0069 1413 00199 BSF ANOD,0 ;УСТАНОВИМ МЛ. РАЗРЯД АНОДА.

006A 3010 00200 MOVLW 010H ;ЗАПИСЬ НОМЕРА РЕГИСТРА МЛ. РАЗРЯДА

006B 0094 00201 MOVWF SEGD ;В РЕГИСТР АДРЕСА РАЗРЯДА.

006C 00202 INDZIKL1

006C 0084 00203 MOVWF FSR ;В РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.

006D 0800 00204 MOVFW INDF ;ВЫБИРАЕМ 2-10 ЗНАЧЕНИЕ.

006E 205B 00205 CALL SEGDATA ;ПРЕОБРАЗУЕМ В СЕМИСЕГМЕНТНОЕ ДЛЯ ИНДИКАЦИИ

006F 0086 00206 MOVWF PORTB ;В ПОРТ В.

0070 0813 00207 MOVFW ANOD ;ЗАГРУЖАЕМ ЗНАЧЕНИЕ АНОДА.

0071 0085 00208 MOVWF PORTA ;В ПОРТ А.

0072 207B 00209 CALL REST ;НА ОТДЫХ.

MPASM 5.03 TAXOMETR.ASM 6-1-2006 3:13:06 PAGE 5

LOC OBJECT CODE LINE SOURCE TEXT

VALUE

0073 1003 00210 BCF STATUS,0 ;ОБНУЛИМ.

0074 0D93 00211 RLF ANOD,1 ;+1 В РЕГИСТР АНОДА.

0075 1993 00212 BTFSC ANOD,3 ;ЗАПИСЬ ЧИСЛА 3.

0076 2866 00213 GOTO INDZIKL0 ;ЕСЛИ РАВНО 0, ИДЕМ,

0077 0064 00214 CLRWDT ;ВРЕМЯ ТАЙМЕРА - 18 МС.

0078 0A94 00215 INCF SEGD,F ;+1 В РЕГИСТР АДРЕСА РАЗРЯДА.

0079 0814 00216 MOVFW SEGD ;ЗАГРУЖАЕМ ЗНАЧЕНИЕ

007A 286C 00217 GOTO INDZIKL1 ;И ИДЕМ.

007B 00218 REST

007B 300A 00219 MOVLW .10 ;ЗАДЕРЖКА В 41 ЦИКЛ.

007C 00220 REST0

007C 3EFF 00221 ADDLW -01H ;ВРЕМЯ НА ГОРЕНИЕ СЕГМЕНТА

007D 1D03 00222 BTFSS STATUS,2 ;64 ЦИКЛА=7,81 МСЕК.

007E 287C 00223 GOTO REST0 ;ЗАЦИКЛИВАЕМСЯ.

007F 0008 00224 RETURN

00225 ;__________________________________________________________________

00226 ; 8. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ.


Подобные документы

  • Процесс создания и программная реализация устройства электронных часов на основе микроконтроллера Attiny 2313. Разработка структурной и принципиальной схемы цифрового тахометра, сборка самого устройства, проверка и оценка его на работоспособность.

    курсовая работа [1,9 M], добавлен 28.04.2012

  • Разработка структурной, функциональной и принципиальной схемы тахометра. Выбор генератора тактовых импульсов, индикаторов и микросхем для счетного устройства. Принцип действия индикатора. Описание работы тахометра. Расчет потребляемой тахометром мощности.

    курсовая работа [322,3 K], добавлен 30.03.2012

  • Система обеспечения качества продукции. Принципы рациональной организации технического контроля. Принцип действия центробежных, магнитно-индукционных, электрических и электронных тахометров. Конструкция автомобильного тахометра с цифровой индикацией.

    отчет по практике [1,6 M], добавлен 07.10.2014

  • Разработка структурной и принципиальной схем электронного тахометра. Изучение принципа работы датчика магнитного поля. Выбор микроконтроллера. Проектирование управляющей программы для микроконтроллера. Адаптация устройства к промышленному применению.

    курсовая работа [1,1 M], добавлен 22.01.2015

  • Разработка структурной и принципиальной схем микропроцессорного тахометра. Микроконтроллер PIC16F886 и устройство индикации тахометра. Основные температурные и электрические характеристики микроконтроллера. Разработка алгоритма управляющей программы.

    курсовая работа [527,0 K], добавлен 07.07.2013

  • Разработка электронной принципиальной схемы цифрового тахометра. Характеристика его особенностей, принципа работы и основных компонентов. Изучение порядка построения, изложения и оформления конструкторской документации. Составление маршрутной карты.

    курсовая работа [415,9 K], добавлен 03.11.2014

  • Описание объекта и функциональная спецификация. Структурная схема, расположение выводов, конструктивные размеры микроконтроллера РIС16F84A. Алгоритм программы тахометра. Описание функциональных узлов МПС. Описание выбора элементной базы и работы схемы.

    курсовая работа [2,4 M], добавлен 27.12.2009

  • Принцип действия и обоснование конструкции универсального тахометра. Методы обеспечения технологичности конструкции радиоэлектронных средств. Измерения радиальной скорости. Расчет минимальной ширины печатного проводника, контактных отверстий и площадок.

    дипломная работа [2,2 M], добавлен 27.11.2014

  • Функциональная спецификация и преимущества термометрического датчика. Структурная схема микроконтроллера РIС16F84A. Алгоритм работы программы, описание функциональных узлов, выбор элементной базы и принципиальная схема терморегулятора для аквариума.

    курсовая работа [4,7 M], добавлен 27.12.2009

  • Функциональная спецификация и структурная схема электронных автомобильных часов-термометра-вольтметра. Разработка алгоритма работы и принципиальной электрической схемы. Получение прошивки программы для памяти микроконтроллера в результате ассеблирования.

    курсовая работа [2,0 M], добавлен 26.12.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.