Смекни!
smekni.com

Разработка часов на микроконтроллере PIC16F84

Формат Зона Поз Обозначение Наименование кол Примечание




Резистор




R1,R2,R6,R4 МЛТ0,125 2 Ком +/- 10% 4



R7 МЛТ0,125 780 ом +/- 10% 1



R3,R5 МЛТ0,125 10 Ком +/- 10% 2











Конденсатор




С1,С4 К50-16100 Мкф +\- 10% 2



С2,С3 КМ3-160.2 Мкф +\- 10% 2











Транзисторы




VT2,VT3 КТ315Г 2



VT1 КТ361Г 3











Микросхемы




DD1 К1533АП5 1



DD2 К142ЕН5А 1











Диод




VD1 КД522 1






































































































































Формат Зона Поз Обозначение Наименование кол Примечание




Резистор




R1,R2 МЛТ0,125 10 Ком +/- 10% 2



R3-R10 МЛТ0,125 180 ом +/- 10% 8











Конденсатор




С1,С2 К5-1630 пф +\- 10% 2











Микросхемы




DD1 PIC16F84A-04i\p 1











Индикатор




HG1-HG4 АЛС324А1 4











Кварцевыйрезонатор




Qz1 РК-8534.000 Мгц 1


































































































































































МинистерствообразованияРоссийскойФедерации

СеверокавказскийГосударственныйТехническийУниверситет

Кафедраэлектроникии микроэлектроники


КУРСОВОЙ ПРОЕКТ


По предмету: Микропроцессорныесистемы управленияи диагностики


На тему"Разработкачасов на микроконтроллереPIC16F84 "


Выполнил: студент 5 курса

группыУПЭ-991

КозидубовЕ.Н

Принял: ЯкушевВ.М.


Ставрополь2002


Задание


Разработатьчасы реальноговремени намикроконтроллереPIC16F84, программноеобеспечения для него наязыке ассемблер,рассмотретьвопросы программированиямикроконтроллера.


Напряжениепипания устройства5В +/-1В

ЧастотатактовогогенератораМК 4 Мгц

Количествоотображаемыхцифр на идикаторе 4

Количествокнопок управления 2

Единицыизмерениявремени Часы

Минуты

Секунды


Содержание


Введение

1.Разработкаструктурнойсхемы устройства

2.Выборэлементнойбазы

3.Разработкасхемы электрическойпринципиальной

4.Разработкапрограммногообеспечения

5.Программированиемикроконтроллера

Заключение

Списоклитературы


Введение

Последниегоды отмеченымассовым наполнениемрынка всевозможнойавтоматизированнойаппаратуройсамого различногоназначенияи самой различнойсложности отпластиковойплатежнойкарточки дохолодильника,автомобиляи сложнейшихустановок. Этостало возможнымблагодарямикроконтроллерам(МК) Микроконтроллерывходят во всесферы жизнедеятельностичеловека, ихнасыщенностьв нашем окружениирастет из годав год. То чтоказалось нам 5 лет назад сказкой сейчас вполневозможно благодарястремительномуразвитию технологиипроизводстваэлектронныхкомпонентов.Да пять летназад мы ужезнали просуперкомпьютерысуперпроцессорысуперАЦП и т.д.Ну а что же сейчаса сейчас "ВСЕВ ОДНОМ КОРПУСЕ"и это жестокаяправда. Раньше, изобретателюэлектронныхсхем приходилосьиметь дело с"кучей" электронныхкомпонентов, размещая согромным трудомвсе на печатнойплате размеромметр на метри при испытаниикипятить чайникна тойже плате(это про расходуемуюэнергию), в нашевремя разработчикуэлектроннойаппаратурыне грозят вышеуказанныесложности, точнее чембольше денегтем меньшесложностей.Но появляютсяновые неудобстваинформационного общества такиекак :

Фирмы производящиемикроконтроллерыATMEL,INTEL,ZILOG,MICROCHIP,"и с радостьюдля патриотов"АНГСТРЕМ,scenix,кажетсяможно продолжатьбесконечно.Каждая изперечисленныхфирм кромеАНГСТРЕМ имеетболее 100 видовразличных поназначениюмикроконтроллеров,а каждый микроконтроллерне менее 200 страництехническихописаний ихарактеристикплюс к этомуна английскомязыке, кромеАНГСТРЕМ. Выберисвой девизсовременногообщества.

Средстваразработкипрограммногообеспечениядля микроконтроллерову каждой фирмысвое, а что касаетсяязыков программированияконечно ассемблерсамый старый,добрый, всемпонятный, нуа что через годперечислимнекоторые, "C,PASCAL,JAVA,DELPHI,C++,+TURBO,+VISUAL"опять можнопродолжатьбесконечно.

Вернемсяк теме "в одномкорпусе" раньшеК155ХХ 50 штук асейчас PIC16F84и простов подарок ПЗУ,ОЗУ, таймер,система прерываний,аналогово-цифравойпреобразователь,встроенныйгенератор,корпус с 20 ножкамии т.д.

Ну хватито грустном заработу!

В даннойпроекте будетразработаноустройствона современноммикроконтроллере,написана программаи рассмотреныинструментальныесредства.Такжебудит примененызнания полученныена занятиях.


1.Разработкаструктурнойсхемы устройства


Структурнаясхема электронныхчасов на микропроцессореприведена нарисунке 1. Онасостоит из 4основных блоков.Тактовый генераторпредназначендля генерациипрямоугольныхимпульсовчастотой 4 Мгцдля тактированиямикропроцессораи программируемоготаймера . Микропроцес-




Рисунок 1.Структурнаясхема устройства


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


2.Выбор элементнойбазы


Данное устройствоможет бытьвыполнено наразной элементнойбазе включаямикросхемысерии 155,176,561 такжеразличныемикропроцессорныекомплекты580,1816,1830 и на специализированных микросхемахнапример 1901 чтопредпочтительнейс экономическойточки зреният.к в их составвходят контроллерклавиатурыи дисплея тактовыйгенератор,устройствоуправления,таймер и многоедругое необходимоедля электронныхчасов. В даннойработе в учебныхцелях это устройствобудет разработанона микроконтроллерефирмы Microchip.inc.

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

Структурнаясхема микроконтроллераприведена нарисунке 2.



Рисунок 2.Структурнаясхема микроконтроллераPIC16F84


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


Условнографическоеобозначениемикроконтроллераприведено нарисунке 3.



Программныйкод, которыйзаписан в кристалл,может бытьзащищен отсчитыванияпри помощиустановки битазащиты (CP) в словеконфигурациив ноль. Содержимоепрограммы неможет бытьпрочитано так,что с ним можнобыло бы работать.Кроме того, приустановленномбите защитыстановитсяневозможнымизменять программу.То-же относитсяи к содержимомупамяти данныхEEPROM.
Если установленазащита, то битCP можно стеретьтолько вместес содержимымкристалла.Сначала будетстерта EEPROM программнаяпамять и памятьданных и в последнююочередь битзащиты кодаCP.

КристаллPIC16C84 имеет четыреслова, расположенныепо адресу(2000h-2003h) Они предназначеныдля храненияидентификационногокода (ID) пользователя,контрольнойсуммы или другойинформации.Как и словоконфигурации,они могут бытьпрочитаны илизаписаны толькос помощьюпрограмматора.Доступа попрограмме кним нет.
Есликристалл защищен,пользователюрекомендуетсяиспользоватьдля идентификациитолько младшиесемь бит каждогоID слова, а в старшийбит записывать`0`. Тогда ID словаможно будетпрочитать дажев защищенномварианте.

Входв режим SLEEP осуществляетсякомандой SLEEP. Поэтой команде,если WDT разрешен,то он сбрасываетсяи начинает счетвремени, бит"PD" в регистрестатуса (f3) сбрасывается,бит "TO" устанавливается,а встроенныйгенераторвыключается.Порты ввода/выводасохраняютсостояние,которое ониимели до входав режим SLEEP. Длясниженияпотребляемоготока в этомрежиме, ножкина вывод должныиметь такиезначения, чтобыне протекалток между кристалломи внешнимицепями. Ножкина ввод должныбыть соединенывнешними резисторамис высоким илинизким уровнем,чтобы избежатьтоков переключения,вызываемыхплавающимивысокоомнымивходами. То жеи про RTCC. Ножка/MCLR должна бытьпод напряжениемVihmc.


Обозначение

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

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

RA0 - RA3 Двунаправленныелинии ввода/вывода.Входныеуровни ТТЛ. -
RA4/RTCC Входчерез триггерШмитта. Ножкапорта ввода/выводас открытымстоком иливход частотыдля таймера/счетчикаRTCC -
RB0/INT Двунаправленнаялиния портаввода/выводаили внешнийвход прерывания.Уровни ТТЛ. -
RB1 - RB5 Двунаправленныелинии ввода/вывода.Уровни ТТЛ. -
RB6 Двунаправленныелинии ввода/вывода.Уровни ТТЛ. Входтактовой частотыдля EEPROM
RB7 Двунаправленныелинии ввода/вывода.Уровни ТТЛ. Вход/выходEEPROM данных.
/MCLR/Vpp/ Низкийуровень наэтом входегенерируетсигнал сбросадля контроллера.Активный низкий.Сброс контроллера. Длярежима EEPROM - податьVpp.
OSC1 /CLKIN Дляподключениякварца, RC иливход внешнейтактовой частоты. -
OSC2 /CLKOUT Генератор,выход тактовойчастоты в режимеRC генератора,в остальныхслучаях - дляподкл.кварц -
Vdd Напряжениепитания Напряжениепитания
Vss Общий(земля) Общий(земля)

Выход параметровза данные пределыможет привестик повреждениюмикросхемы.Работа кристаллана предельнодопустимыхзначениях втечение длительноговремени повлияетна его надежность.

Интервалрабочих температур -55 ... +125С
Температурахранения -65 ... +150С
Напряжениена любой ножкеотносительноVss (земли) (исключаяVdd и /MCLR) -0.6...Vdd +0.6 В
НапряжениеVdd относительноVss 0 ... +7.5 В
Напряжениена /MCLR относительноVss 0...+14 В(Прим.2)
Общаярассеиваемаямощность 800 мВт(Прим.1)
Макс.ток в ножкуVss 150 мА
Макс.ток в ножкуVdd 100 мА
Макс.ток в любуюножку ввода +- 500 мкА
Макс.втекающийток (любая ножкаВывода) 25 мА
Макс.вытекающийток (любая ножкаВывода) 20 мА
Макс.сумарныйвытекающийток для всехножек порта_А 80 мА
Макс.сумарныйвытекающийток для всехножек порта_В 50 мА
Макс.сумарныйвтекающийток для всехножек порта_А 50 мА
Макс.сумарныйвтекающийток для всехножек порта_В 100 мА

Область ОЗУорганизованакак 128 х 8. К ячейкамОЗУ можноадресоватьсяпрямо или косвенно,через региструказатель FSR(04h).
Это такжеотносится ик EEPROM памятиданных-констант.

В регистрестатуса (03h) естьбиты выборастраниц, которыепозволяютобращатьсяк четырем страницамбудущих модификацийэтого кристалла.Однако дляPIC16F84память данныхсуществуеттолько до адреса02Fh. Первые 12 адресовиспользуютсядля размещениярегистровспециальногоназначения.Регистры садресами 0Ch-2Fhмогут бытьиспользованы,как регистрыобщего назначения,которые представляютсобой статическоеОЗУ. Некоторыерегистры специальногоназначенияпродублированына обеих страницах,а некотрыерасположенына странице1 отдельно. Когдаустановленастраница 1, тообращение кадресам 8Ch-AFh фактическиадресует страницу0. К регистрамможно адресоватьсяпрямо или косвенно.В обоих случаяхможно адресоватьдо 512 регистров.

Watchdog таймерпредставляетсобой полностьюнезависимыйвстроенныйRC генератор,который нетребует никакихвнешних цепей.Он будет работать,даже если основнойгенераторостановлен,как это бываетпри исполнениикоманды SLEEP. Таймервырабатываетсигнал сброса.Выработка такихсбросов можетбыть запрещенапутем записинуля в специальныйбит конфигурацииWDTE. Эту операциюпроизводятна этапе программирования микросхем.


Номинальнаявыдержка WDTсоставляет18 мс (без использованияделителя). Оназависит оттемпературы,напряженияпитания, отособенностейтипов микросхем.Если требуютсябольшие задержки,то к WDT может бытьподключенвстроенныйделитель скоэффициентомделения до1:128; которыйпрограммируетсяпутем записив регистр OPTION.Здесь могутбыть реализованывыдержки до2.5 секунд.
Команды"CLRWDT" и "SLEEP" обнуляютWDT и делитель,если он подключенк WDT. Это запускаетвыдержку временисначала ипредотвращаетна некотороевремя выработкусигнала сброс.Если сигналсброса от WDT всеже произошел,то одновременнообнуляетсябит "TO" в регистрестатуса (f3). Вприложенияхс высоким уровнемпомех, содержимоерегистра OPTIONподверженосбою. Поэтомурегистр OPTION долженобновлятьсячерез равныепромежуткивремени. Следуетучесть, чтонаихудшейкомбинациейявляется: Vdd=min,температура=maxи max коэффициентделения делителя,-это приводитк самой большойвыдержке времени,она может достигатьнесколькихсекунд.

Также в устройствебудет использованцифро-буквенныйиндикатор свысотой цифр7,5 мм из семисегментов сдецимальнойточкой АЛС324А,его графическоеизображениеприведено нарисунке 4.


3.Разработкасхемы электрическойпринципиальной


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

КристаллыPIC16F84могут работатьс четырьмятипами встроенныхгенераторов.Пользовательможет запрограммироватьдва конфигурационныхбита (FOSC1 и FOSC0) длявыбора одногоиз четырехрежимов: RC, LP, XT, HS.КристаллыPIC16... могут такжетактироватьсяи от внешнихисточников.Генератор,построенныйна кварцевыхили керамическихрезонаторах,требует периодастабилизациипосле включенияпитания. Дляэтого, встроенныйтаймер запускагенераторадержит устройствов состояниисброса примерно18 мс после того,как сигнал на/MCLR ножке кристалладостигнетуровня логическойединицы. Такимобразом, внешняяцепочка RC , связаннаяс ножкой /MCLR вомногих случаяхне требуется.

Встроенныегенераторыработоспособныпри определенныхноминалахпитающегонапряжения:

Vdd

OSCmode

MaxFreq

2..3V RC 2 MHz
LP 200 kHz
3..6V RC, XT 4 MHz
LP 200 kHz
4,5..5,5 HS 10 MHz

При частотахниже 500 кГц, внутреннийгенератор можетгенерироватьсбойный импульсна гармониках,когда переключаетсябит 0 порта A. Этогоне происходитпри использованиивнешнего генератораили при встроенномRC генераторе.PIC16F84-XT,-HS или -LP требуютподключениякварцевогоили керамическогорезонаторак выводам OSC1 иOSC2. Маркировкаследующая: XT -стандартныйкварцевыйгенератор, HS -высокочастотныйкварцевыйгенератор, LP -низкочастотныйгенератор дляэкономичныхприложений.Резистор Rs можетпотребоватьсядля генератора"HS", особеннопри частотахниже 20 МГц длягашения гармоник.Он также можетпотребоватьсяв режиме XT срезонаторомтипа AT strip-cut. Необходимыезначенияконденсаторовдля разныхчастот приведеныв таблице.

Болеевысокая емкостьбудет увеличиватьстабильностьгенератора,но также будетувеличиватьвремя запуска.Значения приведеныдля ориентировки.В режимах HS иXT, чтобы избежатьгармоник можетпотребоватьсяпоследовательныйрезистор Rs.

Т


аблица Выбор конденсаторадля кварцевогогенератора

Типгенератора

Частота

КонденсаторС1

КонденсаторС2

LP 32 КГц 30 пФ 30 - 50пф
100 КГц 15 пф 15 пФ
200 КГц 0- 15пФ 0 - 15пФ
XT 100 КГц 15 - 30пФ 200 -300 пФ
200 КГц 15- 30пФ 100 -200 пФ
455 КГц 15 - 30пФ 15 -100пФ
1 МГц 15 - 30пФ 15 - 30пФ
2 МГц 15 пФ 15 пФ
4МГц 15 пФ 15 пФ
HS 4 МГц 15 пФ 15 пФ
10 МГц 15пФ 15 пФ

Ввод информациидля управленияэлектроннымичасами осуществляетсячерез 2 кнопкиподключенныхк портам RB0иRA0 микроконтроллера.Схема подключенияпоказана нарисунке 6. Мерыпо предотвращениюдребезга контактовмогут реализоватсяпрограмнымметадом. Сопротивлениерезистороввыбирается из расчетапротиканиянаименьшего тока необходимогодля фиксациилогической1 на входахмикрокантроллерапри неактивныхпозициях кнопоки в данном случаесоставляют10 Ком.


Рисунок 6 .Подключениеклавиатурыуправления


Рисунок 7.Схема подключенияустройстваиндикации

Также в устройствеприсутствуетблок индикациисостоящий из4-х индикаторовАЛС324А которыеуправляютсямикропроцессоромчерез токоограничивающиерезисторыR4...R10 номеналом180 ом. Индикацияосуществляетсядинамическимспособом т.евывод осуществляетсяпо порядку1,2,3,4 - индикаторпо 10мс на каждыйиндикатор.Схема подключенияиндикаторовпоказана нарисунке 7.

Электрическаяпринципиальнаясхема устройстваприведена начертеже 1.


4.Разработкапрограммногообеспечения


Приразработкеи отладке программыбыла использованабесплатнаяпрограмма MplabпредоставляемаяфирмойMicrochip.

MPLAB- это интегрированнаясреда разработки(IDE) для семействамикроконтроллеровPICmicro фирмы Microchip TechnologyIncorporated. MPLAB позволяетписать, отлаживатьи оптимизироватьпрограммы дляВаших разработок.MPLAB включаеттекстовыйредактор, симулятор(виртуальныйотладчик), менеджерпроектов иподдерживаетэмуляторы(внутрисхемныеотладчики)MPLAB-ICE и PICMASTER , программаторыPICSTART Plus и PRO MATE II и другиесредства иинструментыразработокфирмы Microchip и другихфирм.

Инструментальныесредства MPLAB,организованныекак ниспадающиеменю и определяемыебыстрые клавиши,позволяют:-ассемблировать,компилироватьисходный текст;-отлаживатьлогику работы,наблюдая спомощью симулятораили, в реальномвремени, с эмуляторомMPLAB-ICE ;- просматриватьпеременныев окнах просмотра;-программироватькристаллы спомощью программаторовPICSTART Plus или PRO MATE II- и многоедругое.


Рисунок 8.Блок схемапрограммы


MPLAB работаетпод Microsoft Windows 3.1x, Windows 95, 98, NT,2000 (начиная сверсии 5.00.00). Правдане все дополнительноеоборудование,такое каквнутрисхемныеэмуляторы ипрограмматорыбудет функционироватьпод всемиоперационнымисистемами. Дляболее подробногоописания обращайтеськ специализированнойлитературеи техническимописаниям фирмыMicrochip.

Описаниепрограммы можнонайти на интернетсайте фирмыMicrochip

Блок схемаразрабатываемойпрограммыприведена нарисунке 8.Онасостоит изблока началиныхустановок вкоторый входятпроцедурыобнуленияпеременныхиспользуемыхв программе,установки направленияпортов, установкинужного коэффициентапредделителя,тест работоспособностииндикаторов.Блока выводана идикациюв каторомосуществляетсяпреодразованиедвоичного кодав код семисегментныхиндикаторов,формируютсянеобходимыезадержки временидля динамическойиндикации,также контрольвывода выбронногопользователемрежима индикации (режим часы :минуты и минуты: секунды ). Участокпрограммысканированияклавиатурыотвечает завыбор режимаиндикации иустановкувремени вводимыхс клавиатуры,в следующейпоследовательностив режиме (часы: минуты ) кропкойустановкивремени можетбыть измененотолько значениераздела часова в режиме (минуты: секунды) толькоминут.

Самаяответственнаячасть программыэто обработкапрерыванияполученногоот встроенноготаймера микроконтроллераот неё зависитточность ходачасов т.е ошибкив этой частипрограммыприводят кзначительномуотстованиюили опережениюхода часовтамже можетбыть осуществленаточная подстройка.Рассмотримполучениеинтервала в1 секунду с помощьютаймера, приконфигурациитаймера егонадо подключитьк внутреннемугенераторукоторый позаданию вырабатываетчастоту 4,00 Мгцпосле такогоподключенияв данном микроконтроллерена таймер будетподаватсячастота генератора(Fг)/4и будет равна1000000 гц с помощьювстроенногопредделителяона делитсяна 64 и на таймерприходит уже15625 гц. После этогонам необходиморазделить эточисло на такоежечтобы получитьчастоту колебанийв 1гц. Из за небольшойразрядноститаймера (8) этапроцедураделается в дваэтапа длем на125 и еще раз настолько же.Сразу послеэтого прибавляем1 к региструсекунд (в программеsek).Результатприведен ниже:

1. F(г)=4мГц/4=1000000

2. 1000000/64=15625

3. 15625/125=125

4. 125/125=1 Гц


LIST p=16F84A ; указательпроцессора

include

org0x00;Вектор сброса

GotoStart

;***************************************************************

org004;Началопроцедурыобработкипрерывания

movwftemp ; Сохранениерабочего регистраW в регистреtemp

clrwdt;Очисткасторожевоготаймера дляпредотврашения

callInt1;сброса процессоракаждый 18мс

movlw b'10100000'; Разрешаем прерыванияот таймера

movwf INTCON;

movftemp,w;Востанавливаемзначение рабочегорегистра

clrwdt;Очисткасторожевоготаймера

return;Выходиз процедурыобработкипрерывания


;****************************************************************

org0x10

segment;Таблица преобразованияDEC -> семисегментныйкод.

CLRF PCLATH

ADDWF PCL, F

dt07E,b'00001100', 0B6, 09E, 0CC, 0DA, 0FA, 00E, 0FE, 0DE

Data1;*************десятки

CLRF PCLATH

ADDWF PCL, F

;0 1 2 3 4 5 6 7 8 9

dt0,0,0,0,0,0,0,0,0,0

dt1,1,1,1,1,1,1,1,1,1

dt2,2,2,2,2,2,2,2,2,2

dt3,3,3,3,3,3,3,3,3,3

dt4,4,4,4,4,4,4,4,4,4

dt5,5,5,5,5,5,5,5,5,5


Data2;***********единицы

CLRF PCLATH

ADDWF PCL, F

;0 1 2 3 4 5 6 7 8 9

dt0,1,2,3,4,5,6,7,8,9;0

dt0,1,2,3,4,5,6,7,8,9;10

dt0,1,2,3,4,5,6,7,8,9;20

dt0,1,2,3,4,5,6,7,8,9;30

dt0,1,2,3,4,5,6,7,8,9;40

dt0,1,2,3,4,5,6,7,8,9;50

;Программныерегистры:


skan1equ20;регхранения RB1,2

clok1equ21;хранение часов

sekequ22;регистрхранения секунд

minequ23;регистрхранения минут

cl_kequ24

Dig_xequ25;Значение X0:00 дляиндикации.

Dig_yequ26;Значение 0X:00 дляиндикации.

Dig_zequ27;Значение 00:X0 дляиндикации.

Dig_expequ28;Значение 00:0X дляиндикации.

cnt1 equ29;переменнаяисп для задержкивремени

cnt2 equ2A;переменнаяисп для задержкивремени

cnt_requ2B;переменнаяисп для задержкивремени

tempequ2C

clok2equ2D

temp1equ2E

n1equ2f

n2equ30

Start;Начальнаяинициализация.

clrw

bsf STATUS,RP0; Обращениек банку 1.

clrf PORTA; Обнулитьпорт А.

clrf PORTB; Обнулитьпорт В.

movlw b'00010000'

movwf TRISA; RA0 - RA3 выходы, RA4вход.

movlw b'00000001'

movwf TRISB; RB1 - RB7 выходы.RB0вход

movlw b'00000101';коэффициенпредделителя64

movwf OPTION_REG

bcf STATUS,RP0; Обращениек банку 0.

movlw b'10100000'

movwf INTCON

clrfmin

clrfsek

clrfcl_k

movlw0

movwfTMR0

movlw01;Для контролядисплея

movwfDig_x

movlw02;загрузить вовсе регистрыиндикации 8.

movwfDig_y

movlw03

movwfDig_z

movlw04

movwfDig_exp

movlw .131

movwf clok1

movwf TMR0

movlw .1

movwf temp1

Start1;Основной циклпрограммы.

movlw 19; Установитьсчетчик цикловиндикации.

movwf cnt_r

loop1 clrwdt

call refresh;индикаторы.

decfsz cnt_r, f

goto loop1

;***присвоениезначения регистраминдикации взависимостиот режима;индикации******

clrwdt

btfsstemp1,0

callTemp_min

btfsctemp1,0

callTemp_clk

;******присвоениезначения регистраминдикации

movfn1,0

callData1

movwfDig_x

movfn1,0

callData2

movwfDig_y

movfn2,0

callData1

movwfDig_z

clrwdt

movfn2,0

callData2

movwfDig_exp

;********клавишыустановкирежима индикациии времени*******

callDelay

btfssPORTA,4;сканируемклавишу установкирежима RA4 вывод3

incftemp1,1;прибавляемк темпу 1

btfssPORTB,0;клавишаустановкивремени RB0 вывод6

callMin_clk

gotoStart1

;************************************************************

Temp_min

movfmin,0

movwfn1

movfsek,0

movwfn2

return

;************************************************************

Temp_clk

movfcl_k,0

movwfn1

movfmin,0

movwfn2

return

;****************выборприбавитьминуты(0) иличасы(1)***********

Min_clk

clrwdt

btfsstemp1,0

incfmin,1

btfsctemp1,0

incfcl_k

;*******проверка60 мин 24 часа*****************

movfmin,0

sublw.60

btfscSTATUS,Z

clrfmin

movfcl_k,0

sublw.24

btfscSTATUS,Z

clrfcl_k

clrwdt

return

Sek;*****************делениена125

movlw .131;записываем131 т.к 256-125=131

movwf clok1

incfszsek

movfsek,0

sublw.60

btfscSTATUS,Z

callMin

return


Min

clrfsek

incfszmin

movfmin,0

sublw.60

btfscSTATUS,Z

callClok

retfie


Clok

clrfmin

incfszcl_k

movfcl_k,0

sublw.24

btfscSTATUS,Z

clrfcl_k

retfie


Int1;процедураобработкипрерывания

movlw .131;записываем131 т.к 256-125=131

addwfTMR0,1;256(максимальноезначение таймера)

incfszclok1;125(нужныйкоэффициенделения)

return

callSek

return

;***********************Выводна индикатор*************

refresh;Процедурасканированияиндикации.

movf Dig_x, W; Значениедеситых.часовдля индикации.

call segment; ПреобразованиеDEC -> семисегментныйкод.

movwf PORTB ; Вывод цифрына индикатор.

bcf PORTA, 0; Активизироватьиндикатор.

call Delay; Задержкавремени длясканирования.

bsf PORTA, 0; Отключитьиндикатор.


movf Dig_y, W; Значениеед.часов дляиндикации.

call segment; ПреобразованиеDEC -> семисегментныйкод.

movwf PORTB ; Вывод цифрына индикатор.

bcf PORTA,1; Активизироватьиндикатор.

call Delay; Задержкавремени длясканирования.

bsf PORTA,1; Отключитьиндикатор.


movf Dig_z, W; Значениедесят.минутдля индикации.

call segment; ПреобразованиеDEC -> семисегментныйкод.

movwf PORTB ; Вывод цифрына индикатор.

bcf PORTA,2; Активизироватьиндикатор.

call Delay; Задержкавремени длясканирования.

bsf PORTA,2; Отключитьиндикатор.


movf Dig_exp, W; Значениеед.минут.

callsegment; ПреобразованиеDEC -> семисегментныйкод.

movwf PORTB ; Вывод цифрына индикатор.

bcf PORTA,3; Активизироватьиндикатор.

call Delay; Задержкавремени длясканирования.

bsf PORTA,3; Отключитьиндикатор.

return

;************************************************************

Delay;Подпрограммазадержки времени

clrwdt

movlw .5; для сканированияиндикации.

movwf cnt1

nop

beta movlw .150

movwf cnt2

Alfanop

nop

decfsz cnt2, f

goto Alfa

nop

nop

decfsz cnt1, f

goto beta

nop

return

;*******************************************************

end


5.Программированиемикроконтроллера


Конструкцияпредставляетиз себя оченьпростое и дешевоеустройстводля программированияи последующегочтения внутреннейпамяти PIC контроллеровтипа PIC16C84 /83, PIC16F84 /83,PIC16CE625 /624/623. В отличиеот многиханалогичныхконструкций,программатордопускаетвнутрисхемноепрограммирование.При разработкеза основу былавзята схема, рекомендуемаяфирмой "Microchip" .

Программаторпитается отисточниканапряжением12…13v с током до100ma и подключаетсяк порту LPT1 персональногокомпьютера.Управляющаяпрограммаразрабатываласьдля MS DOS, поэтомупри работе всреде «Windows» длясоблюдениянеобходимыхвременныхсоотношенийпри программированииее необходимозапускать врежиме эмуляцииMS DOS. Хотя самапрограммапрекрасноработает и воконном режиме,попытка программированияв этом случаени к чему хорошемуне приведет.АлгоритмпрограммированиябольшинстваPIC контроллероводинаков, поэтомуне составиттруда расширитьих номенклатуру.Интерфейспрограммыпрост и интуитивнопонятен.

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


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

Устройствовходит в режимпрограммированияУдержаниемнизкого уровняна выводах RB6,RB7 во время переходасигнала навыводе MCLR/Vppиз нижнегоуровня в высокий.После этогоRB6 становитсятактовым сигналом,а RB7-даннымипрограммирования.

Послевхода в режимпрограммированияможно послать6-ти битную команду.В зависимостииот нее можнозаписать илисчитать 14-битныеданные.



Заключение


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


Список литературы


1. Радио №1 2001г.с.21 "Частотомерна PIC-контроллере"

2. УгрюмовЕ.П. Цифроваясхемотехника.-СПб.:БХВ-Санкт-Петербург,2000.-528с.: ил.

3.Микроконтроллеры.Выпуск 2:ОднокристальныемикроконтроллерыPIC12c5x, PIC16x8x, PIC14000, M16C/61/62. Переводс англ.Б.Я.. Прокопенко/Под ред.Б. Я.Прокопенко.-М.: ДОДЭКА, 2000.- 336 с.


Internet - Ресурсы


http://www.microchip.ru:8101/

http://www.paguo.ru/

http://www.disall.narod.ru/picpro.htm

http://www.chipnews.ru/html.cgi/arhiv/index.htm

Микроконтроллеры.Выпуск 2:

ОднокристальныемикроконтроллерыPIC12c5x, PIC16x8x, PIC14000,