Разработка цифрового автомобильного тахометра на базе микроконтроллера
Обзор характеристик КМОП микроконтроллера 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 и f100 0111 DFFF FFFFC, DC, ZANDWF f,dПоразрядная операция "И" c W и f100 0101 DFFF FFFFZCLRF fОчистка регистра f100 0001 1FFF FFFFZCLRWОчистка регистра W100 0001 0000 0011ZCOMF f,dИнвертирование битов регистра f100 1001 DFFF FFFFZDECF f,dУменьшение значения регистра f100 0011 DFFF FFFFZDECFSZ f,dУменьшение значения регистра f, пропуск следующей инструкции если результат равен нулю.1(2)00 1011 DFFF FFFFнетINCF f,dУвеличение значения регистра f на 1100 1010 DFFF FFFFZINCFSZ f,dУвеличение значения регистра f, пропуск следующей инструкции если результат равен нулю.1(2)00 1111 DFFF FFFFнетIORWF f,dЛогическая операция включающего ИЛИ W и f100 0100 DFFF FFFFZMOVF f,dПересылка содержимого регистра f100 1000 DFFF FFFFZMOVWF fПересылка содержимого регистра W в регистр f100 0000 1FFF FFFFнетNOPПустая команда100 0000 0XX0 0000нетRLF f,dЦиклический сдвиг влево через флаг переноса100 1101 DFFF FFFFCRRF f,dЦиклический сдвига вправо через флаг переноса100 1100 DFFF FFFFCSUBWF f,dВычитание W из f100 0010 DFFF FFFFC, DC, ZSWAPF f,dОбмен местами полу-байт регистра f100 1110 DFFF FFFFнетTRIS fЗагрузка регистра TRIS100 0000 0110 0FFFнетXORWF f,dЛогическая операция исключающего ИЛИ с W и f100 0110 DFFF FFFFZБИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫBCF f,dОчистка бита в f101 00BB BFFF FFFFнетBSF f,bУстановка бита в f101 01BB BFFF FFFFнетBTFSC f,bПроверка на равенство бита нулю, пропускаем след. команду если да.1(2)01 10BB BFFF FFFFнетBTFSS f,bПроверка на равенство бита 1, пропускаем след. команду если да.1(2)01 11BB BFFF FFFFнетСИМВОЛЬНЫЕ КОМАНДЫ И КОМАНДЫ ВЕТВЛЕНИЯADDLW kСложение литеры и W111 111X KKKK KKKKC, DC, ZANDLW kЛогическая операция "И" с символом и W111 1001 KKKK KKKKZCALL kВызов процедуры210 0KKK KKKK KKKKнетCLRWDTСброс Сторожевого Таймера (WDT)100 0000 0110 0100TO, PDGOTO kБезусловный переход210 1KKK KKKK KKKKнетIORLW kЛогическая операция включающего ИЛИ с символом и W111 1000 KKKK KKKKZMOVLW kПересылка литеры в регистр W111 00XX KKKK KKKKнетOPTIONЗагрузка данных в регистр OPTION100 0000 0110 0010нетRETFIEВозврат управления после прерывания200 0000 0000 1001нетRETLW kВозврат с литерой в W211 01XX KKKK KKKKнетRETURNВозврат из процедуры200 0000 0000 1000нетSLEEPПереход в режим "сна"100 0000 0110 0011TO, PDSUBLW kВычитание W из литеры111 110X KKKK KKKKC, DC, ZXORLW kЛогическая операция исключающего ИЛИ с символом и W111 1010 KKKK KKKKZ |
Примечания:
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