Текст
                    А~

rA n t1Hf

м Y.aдl.JY'

Н.И.Заец

Paanonto&nтenьcкne

-

кo1"crpyкunn ."а ~О~

u

~
Х==

rJJ======
со
("(')
со
N
1

("(')
N

z

L()

(/)

t--

nзмepnтenn 1-1апряже1-1nя, тока,
температуры

TeDMODerynятoDы
Устроnства зашnты

со

со
(j)

Ко.аы nрошnвок
мnKPOKOHTDOnneDOB


Серия «СОЛОН - радиолюбителям» Н.И.Заец Радиолюбительские конструкции на РIС-микроконтроллерах ·Книга 2 Измерители напряжения, тока, температуры, , терморегулятор, устройства защиты СОЛОН-Пресс · Москва 2005
УДК ББК 621.31 32.96-04 316 316 Заец Н. И. Радиолюбительские конструкции на РIС-микроконтроллерах. С алгоритмами ра­ боты программ и подробными комментариями к 11сходным текстам. Книга 2. СОЛОН-Пресс, ISBN 2005. - 192 с.: ил. - (Сср11я «СОЛОН - - М.: радмолюбителям») 5-98003-238-Х В книге даны нопые примеры пр11\1снсния РIС-\111кроконтро.1.1ероп п радио­ любительской практике. Програм~1исты найдут п кн11ге программы с 11спользо­ ванием встроенного в микроконтроллер модуля ными внешними устройстпами ми. Радиолюбители, которые - - АUП и программы с различ­ тер~юдатчикам11 т11па желают ,повторить DS 18х20, устройства, LСD-.J11сп.1ея­ могут пыбрать цифровой милливольтметр, для того чтобы защитить спой дом от перепа.Jов на­ пряжения, а трехфазный дпигатель - от перегрузки. Тер\юметр-часы, гра..:~усник и два терморегулятора будут полезны~111 п любом доме. Ко псем програ\t\lа\1 .Jа­ ны алгоритмы работы и подробные комментарии. Книга. предназначена для широкого круга радиолюбителей, а также \южет быть полезна студентам, изучающим Щlограмм11ропание ы11кроконтро.1.1еров. УДК ББК Распространение ООО «Альянс-книга» 621.31 32.96-04 (095) 258-91-94 1 www.solon-press.ru. E-mail: solon-avtor@coba.ru ISBN 5-98003-238-Х © Макет и обложка «СОЛОН~Пресс», © Заец Н. И., 2005 2005
К читателям Повышение интереса радиолюбителей к микр~ЖЩiтроллерам PICmicroR компании MicrochipR (http://www.microchip.ru) вызвано понижением. цен и расширением ассортимента· микроконтроллеров. Наличие встроенных моду­ лей АЦП, ССР, USART, компараторов напряжения открывает радиолюбите­ лям новые возможности для применения микрьконтроллеров. Небольniой на­ бор команд и свободное распространение программного обеспечеf!ИЯ для программирования микроконтроллеров также склоняет радиолюбителей к вы­ бору РIС-микроконтроллеров. Повышение этого интереса подтверждает увеличивающееся число пи~ем радиолюбителей с просьбами о помощи разработать программу или проконсу­ льтировать. Я стараюсь всем оказать помощь, хотя это и .отнимает _много вре­ мени. Но просьбы такого рода, ка~, например, «сделать программу», невы­ полнимы, потому что для написания программы и изготовления устройства требуется минимум месяц непрерывной работы. Естественно, если. идея меня заинтересует, то Я берусь за работу. Некоторые работы в этой книге сделаны именно i:io просьбе радиолюбителей. Обратная связь с читателями помогает и читателям, и автору. Просьбы радиолюбителей из других стран о высылке книг также невыпол­ нимы по понятным причина~. Для отправки книги, например, в США у меня Просто не хватит пенсии·. Адрес моего почтового ящика есть наверное во всех банках· данных, рас­ сылающих спам. Это доставляет неудобство, но хуже, когда начинаюЩие ха­ керы пробуют свои силы на взламывании паролей и засылке вирусов от моеrо имени. Все эти письма возвращают<;я мне, поскольку каждый приличный сер­ вер имеет антивирусную программу. Письма такого рода, что мне 40 (50 ... 60) лет и уже поздно заниматься мик.:. роконтроллерами, вызываiот недоумение. Мне 55 лет, но, как говорится, глаза боятся, а рукм делают. Радиолюбитель - это творческий~· целеустремленн~1й человек, которому не страшно «рас~овырять» импортный аппарат· и который может отремонтировать его. Человек, которому хочется исполь.зовать все но­ вые комплектующие в своей идее, не всегда имеет материальную возможность купить новые транзисторы или микросхемы. Многократно программируемые микроконтроллеры помогут выйти из этого положения. РаЗрабатывайте с.ко- , л-ько угодно устройств и переставляйте микроконтроллер из одной платы в другую по мере возникновения надобности в том .или ином устройстве. В этой книге вы найдете· разнообразные радиолюбительские устройства, которые м0гут понадобиться вам если не сегодня, то завтра. Устройства .сгруппированы по фу~кциональному признаку: с использованием АЦП и из- 3
К читателям меряющие температуру. Разбивку устройств по функциональному признаку можно считать условной, поскольку, например, «Устройство защиты трехфаз­ ных двигателей» отнесено к устройствам с использованием АЦП. В то же вре­ мя это устройство измеряет температуру двигателя. Используя программы из этой книги, можно создать приличную библио­ теку программ для применения в своих разработках. ХоЧу напомнить, что все устройства в этой книге не предназначены для коммерческого применения. Если в saes@mail.ru книге обнаружатся ошибки, прошу сообщить по адресу: или на почтовый адрес издательства. Все критические замечания будут приняты с большой благодарностью и учтены при последующих переиз­ Jаниях книги. Все ответы на вопросы будут выложены на странице автора http://www.radic.newmail.ru (под названием книги). Выражаю благодарность фотокорру районной газеты «Пламя» Г. М. Кон­ шину за снимки, опубликованные в этой книге. Выражаю свою признатель­ ность жене Наталье за терпение и понимание, с которыми она относится к моему увлечению. Эта книга является продолжением предыдущей, с аналогичным названием: В книге 1 представлено 20 описаний ра­ диолюбительских устройств различного ·назна­ чения: часы, таймеры, автоматы, программа­ тор и многие другие, выполненные на микро­ контроллере PIC16F84A. Впервые книга с различными устройствами на РIС-микроконт­ роллере предназначается для радиолюбителей с любым уровнем подготовленности. Даже те, кто не знаком с программирова1:1ием микро­ контроллеров, смогут без труда повторить лю­ бое устройство. Радиолюбители, имеющие опыт работы с программированием, моrут из­ t/CI ~ I:JI ~ с; 1&1 «СОЛОН• ... s LD о с; о Н. И. 3аец Pa.o.nonю&nтenьcкne KOliCTDYKUnn 11а PIC-мnкpoкoatтPonnepax s ct ~ 1 менить программы под свои цели. Для этого в книге даны алгоритмы р,аботы и исходные тек­ сты программ с подробными комментариями. Автор 1'~КЖе делится· опытом программи­ рования и работ.t,1 с ассемблером MPLAB программатором PonyProg2000. Для широкого круm радиолюбителей. 4 и А•rорnтмы раlSоты nроrрамм Поаро1Sи1:о1е ко,..ментаРnn к nсхоаиым текстам Сnраво•1ные ааиные
Устройства с использованием АЦП Милливольтметр В· большинств~- случаев для измерения напряжений и токов применяют электромеханические приборы (миллиамперметры) с установкой резистивно­ го делителя либо шунта. Здесь описано применение· трехразрядного цифрово­ го милливольтметра, который можно использовать как вольтметр или ампер­ метр постоянного тока в зависимости от того, где измеряется напряжение - на делителе или на шунте. В лабораториях радиолюбителей есть много измерительной техники со стрелочными приборами. Как правffло, точность показаний стрелочных при­ боров приходится проверять цифровыми приборами. Предлагаемое цифровое устройство можно использовать в любой измерительной технике· с соответст­ вующим преобразованием входного сигнала. По сути, предлагаемый милливо­ льтметр является аналогом известной микросхемы 572ПВ2 с трехразряДн'ой_,, . индикацией. Применение этого устройства может оtраничить только ваша "'' фантаз'ия. Например, можно сделать малогабаритный щуп для измерения на­ пряжений на исследуемой плате или щуп автомобилиста. Можно заменить стрелочные приборы в блоках питания или разработать измеритель емкости JJ индуктивности ... Основу прибора составляет .hешевый микроконтроллер PICl6F676, кото­ рый имеет 1О-разрядный АЦП последовательного приближещш. Источником опорного напряжения для АЦП служит напряжение питания микроконтрол­ лера,., поэтому точность Измерения будет зависеть от стабильности питающего напряжения. При. напряжении питания 5,.12 В шаг квантования АЦП равен 5 мВ (5, 12/1024 = 0,005). Если использовать делитель напряжения 1:20, то цена · деления вольтметра будет равна О, 1 В, а максимальное измеряемое напряже­ .ние 51 ,2 В. Если установить делитель напряжения 1:2, то цена деления будет равна 0,01 В при максимальном измеряемом напряжении 5,12 В. п'ри исполь­ зовании· шунта сопротивлением около О ,5 Ом цена деления амперметра соста­ вит 0,01 А. При. этом если измеряемый ток составит 1 А, то паденИ:е напряже- · ния на шунте 0,5 В. Очевидно, что для измерения больших токов необходимо устанавливать усилитель напряжения. Так, ,применив сопротивление шунта, равное О,010м, и усилитель щшряжения, можно щ:тучить амперметр с преде- лом измерения дd 1О А. ' 5
Устройства с исtюльзованием АЦП Для использования милливольтметра в раз.Личных приложениях положе­ ние запятой в разрядах программно не запитывается и может быть установле­ но по необходимости. · Алгоритм работы программы милливольтметра показан на рис. 1. Основ­ - организация трехразрядной динамической индика­ ции. Время' индикации каждого разряда приблизительно равно 5 мс. Отсчет ная ~эабота процессора этого интервала времени организован с помощью прерывания по переполне­ нию таймера TMRO. Таймер имеет коэффициент деления К = 256, предцели­ тель К= 4 и счетчик К= 5. После .индикации нулевого разряда выполняется измерение напряжения. Результат измерения напряжения (10 разрядов) записывается в два регист­ ра с правым выравниванием, т. е. младший регистр будет полностью Запол­ нен, а в старшем регистре будут значащимИ только два младших разряда. ДаПУСК ИНИЦИАПИЗАЦИЯ t---~ BKJI ПРЕДЦЕЛЮЕЛЯ К=4. ТЫRО К=256 ВКЛЮЧЕНИЕ ФЛАГА ШЩИКАЦИЯ О РАЗР. ИЗМЕРЕНИЕ 5 мс R.\IIP ПЕРЕКОДШ'ОВКА 2 -> 2 10 НЕТ ШЩИКАЦИЯ 1 РАЗР НЕТ • ИIЩИКАЦИЯ 2 РАЗР. НЕТ Рис. 6 1. Алгори'tМ работы программы Цифрового вольтметра
Милливольтметр лее выполняется перекодировка 16 разрядов двоичного кода в три разряда / двоично-десятиричного кода. Результат перекодировки' записывается _в регистры Индикации. После индикации второго,разряда программа повторяется. На рис. 2 показана схема милливольтметра, который включен в режиме измерения напряжения до 51,2 В. Стабилизатор наnряжения DAl обеспе.чива­ ет микроконтроллер .напряжением. питания и опорным напряжением АЦП. Для ·того чтобы использовать в резистивном делителе ( 1:20) резистор·ы R5, Rб с допустимыми отклонениями номиналов 5".10 %, напряжение питания мож­ но изменять в небольших пределах подстроечным реЗистором R4. DAl з +8 В - - - - КР142ЕН12А Kcerмemy Н 1 разряда HGl-HGЗ АJ1СЗ24А D~ R7-R13 300 DDl А ~ \О RC2 с \О RСЗ D i:i. u Вход р:: Ux в +---- RC4 RC5 Е' F G RA5 Рис. 2. r__1 1 --r__1 1 r_11 2 4,12 2 1 4,12 1 -...; о 4,12 о -...; Милливольтметр. Измерение напряжения Измерительный вход RAO подключен к делителю R5, Rб, и запитывается сегмент запятой Н в первом разряде индикатора. При измерении напряжения с пределом до 5., 12 В коэффициент деления делителя R5, Rб необходимо уста­ новить равным 1:2, и запитать запятую во втором разряде. Микроконтроллер ·около 4 DD 1 тактируется внутренним генератором частотой МГц. Включение милливольтметра в режиме измерения тока с пределом изме-. рения, равным 5, 12 А, показано на рис. 3. На операционном усилителе DA2.l собран масштабирующий усилите.тrь напряжения. Операционнь~й усилитель DA2.2 включен по схеме повторителя. Если для вашей разработки необходим операuионный усилитель, то можно использовать усилитель DA2.2, искл.ючив повторитель из схемы милливольтметра. Для измерения тока до резистора Rl~ должен иметь значение в пределах 27 1О А номинал кОм. В обоих · случаях , сегмент запятой Н запитывается во втором разряде. Се~исегментные светодиодные индикаторы можно заменить любыми с общим катодом, но тогда, возможно, потребуется подбор гасящих резисторов RЗ, R5-Rl 1. Подстроечный резистор R4 типа СП5-16ВА можно заменить любым, не имеющим разр~IВа сопротивления при вращении движка реЗисто­ ра. Шунт диаметром Rl2 изготовлен из константанового .или манганинового провода 1,5 мм, но можно использовать ~отовый от приборов типа·М-830. 7
Устройства с использованием АЦП + Рис. 3. Милливольтметр. Измерение тока Налаживание вольтметра и амперметра начинают с установки напряжения питания 5, 12 В вращением движка подстроечного резистора R4. При этом микроконтроллер не устанавливают в микросхемную панельку. При налаживании вольтметра параллельно ·измеряемой цепи устанавлива­ ют цифровой вольтметр. Изменением напряжения питания микроконтроллера выравнивают показания настраиваемого прибора и цифрового вольтметра. При этом напряжение питания микроконтроллера не должно превышать максима­ льно допустимое напряжение, равное 5,5 В. При уменьшении напряжения пи­ тания показания увеличиваются (уменьшается вес разряда квантования). При налаживании амперметра последовательно с измеряемой цеnью уста­ навливают цифровой амперметр. В отверстия печатной платы впаивают про­ вод шунта с сопротивлением около 0,01 Ом. Постепенно уменьшаJQт длину провода и добиваются максимального совпадения показаний налаживаемого прибора и цифрового амперметра. В качестве флюса для пайки шунта хорошо использовать ортофосфорную кислоту. Если слишком уменьшить длину шун­ та, то увеличение длины провода не даст результата, потому что часть провода будет покр~па припоем. Точное совпадение показаний налаживаемого прибора и цифрового ам­ перметра производят изменением или сопротивЛения резистора напряжения ·питания микроконтроллера Rl 3. Если сопротивление шунта измерено с до­ статочной точностью, то подстройку выполняют только изменением напряже­ ния питания. Многие радиолюбители успели повторить ко.нструкцию мультиметра по публикации статьи 'в журнале [ 1], но столкнулись с одной проблемой:· при ин­ дикации восьмерки один или два младших разряда гаснут. 8
Милливольтметр Автором проверена программа и схема мультиметра. Ошибок в них не об­ наружено. Выяснилось, что автор применял импортные светодиодные индикаторы, имеющие малые токи потребления. На схеме (рис. 2, 3) указаны их отечест­ венные аналоги, имеющие большие токи потребления при такой же яркости. При включении всех сегментов (8!) общий вывод катода коротится ·и разряд выключается. Паспортные данные тока нагрузки на выход микроконтроллера 25 мА, но реально он оказался равным 15 мА. Возможно, это обусловлено тем, что в продаже трудно найти фирменные микроконтроллеры, имеющиеся же, как правило, азиатского происхождения. Простой выход из этого положе­ ния это поставить резистор номиналом - 5-1 О Ом в цепь об.Щих катодов . младших разрядов. Резистор лучше подобрать по наилучшей яркости свече­ ния, при которой восьмерка включится. Печатн·ая плата 11 расположение элементов для вольтметра показаны на 4, 5, а для .амперметра - на рис. ·6, 7. рис. f,JEFH2G 37.5 с А +ив в ~н - ~ -8 в Ux Рис. 4. Милливольтметр. Рис. 5. Милливольтметр. Расположение Печатная плата элементов DEFH~G 37.5 ~ I IIII о Hlflt11t"'· о о с ~-о" о о ~~~С2 .,., ~ ~~~~·~@о d 1 ~~~Г:: ·~ Рис. 6. Миллиамперметр. Печатная плата 1 "."" -СКП---0 А ~ в -1\ h DDI 11'1ГрV1Ке о ~ о ~' А Clo--jf-e 3 о ~в о-аш- RI~ ~ +8В -8В -1.,\ о Рис. 7. Миллиамперметр. Расположение элементов 1 9
Устройства с использованием АЦП Если микроконтроллер будет использоваться для других приложений, .{о необходимо считать и записать калибров6чную константу. В ·данной работе калибровочная -константа не учитыва~тся, а регистр OSCAL установлен на· минимальную частоту работы генератора. МИЛЛИВОЛЬТМЕТР. ИНДИКАЦИЯ - 7 СЕГМ. св. диоды - 3 РАЗРЯДА. РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ. ; ·ДЛЯ СВОБОДНОГО п.ВЕЙДЕЛЕВКА, ИСПОЛЬЗОВАНИЯ РАДИОЛЮБИТЕЛЯМИ. БЕЛГО?ОДСКОЙ. saes@mail.ru = MILLUM.ASM ВЕРСИЯ: 13-03-05; ПРОГРАММА АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, 5.70.40. ВЕРСИЯ: #INCLUDE <Pl6F676.INC> CONFIG 3FF4H ;==================================================== ; ИСПОЛЬЗУЕТСЯ ВНУТРЕННИЙ ГЕНЕРАТОР ЧАСТОТОЙ 4,0 МГц. ;==========~========================================= С ВЫХОД СЕГМЕНТОВ A-F. RA5 - ВЫХОД, СЕГМЕНТ G. RA1-RA2-RA4 - ВЫХОД РАЗРЯДОВ 0-2. RAO - АНАЛОГОВЫЙ ВХОД О. ПОРТ ;========================================= ; РЕГИСТРЫ РСН. ;==================================~====== INDF TIMERO OPTIONR РС STATUS FSR PORTA PORTC TRISA TRISC INTCON PIRl PIEl TlCON CMCON VRCON PCON ANSEL WPUA IOCA ADRESH ADRESL ADCONO ADCONl EQU ООН EQU OlH EQU 81Н EQU 02Н EQU 03Н EQU 04Н EQU 05Н EQU 07Н EQU , 85Н EQ.U 87Н EQU ОВН EQU ОСН EQU 8СН EQU lOH EQU 19Н EQU 99Н EQU ~ЕН EQU 91Н EQU 95Н EQU 96Н EQU ·lEH EQU 9ЕН EQU lFH EQU 9FH ;ДОСТУП· К ПАМЯТИ ЧЕРЕЗ FSR. ;TMRO. ;OPTION (RPO=l). ;СЧЕТЧИК КОМАНД. ;РЕГИСТР СОСТОЯНИЯ АЛУ. ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. ;ПОРТ А ВВОДА/ВЫВОДА. ;ПОРТ С ВВОДА/ВЫВОДА. ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А. ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА С. ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ. ;РАЗРЕШЕНИЯ ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. ;РЕГИСТР РАЗРЕШЕНИЯ ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. ;РЕГИСТР УПРАВЛЕНИЯ ТАЙМЕРОМ ;РЕГИСТР УПРАВЛЕНИЯ ;РЕГИСТР ИСТОЧНИКА ;КОНТРОЛЬ ;ВЫБОР 1. КОМПАРАТОРОМ. ОПОРНОГО НАПРЯЖЕНИЯ. НАПРЯЖЕНИЯ. АНАЛОГОВОГО ;ВКЛЮЧЕНИЯ ВХОДА. ПОДТЯГИВАЮЩИХ РЕЗИСТОРОВ. ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ ПО ИЗМ. СИГН. НА ВХОДАХ А. ;~ТАРШИЙ РЕГИСТР АЦП. ;МЛАДШИЙ РЕГИСТР АЦП. ;УПРАВЛЕНИЯ ;ВЫБОР АЦП. ТАКТИРОВАНИЯ АЦП. ;==========:=========~====~================= ; ОПРЕДЕЛЕНИЕ РОН. ;===========~=============================== ТЕКН 10 EQU 20Н ;ДВОИЧНОЕ ИЗМЕРЕННО~ ЗНАЧЕНИЕ НАПРЯЖЕНИЯ.
Миллиfюльтметр TEKL SEG СЕК WTEMP ТЕМР FLAG COU STEMP FTEMP DEA EDA , EDI DEI , COI ANOD EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 21Н 22Н ;РЕГИСТР СЕГМЕНТОВ. 23Н' ;ВРЕМЯ 2 4Н ;ВРЕМЕННЫЙ. 25Н ;ВРЕМЕННЫЙ. 26Н ;РЕГИСТР ФЛАГОВ. 27Н ;СЧЕТЧИК ПЕРЕКОДИРОВКИ ПАУЗЫ. 28Н . ; ВРЕМЕННЫЙ. 2 9Н ;ВРЕМЕННЫЙ. 2АН ;РЕГИСТРЫ . ПЕРЕКОДИРОВКИ. 2ВН 2СН ;ПОРАЗРЯДНЫЕ 2DH 2ЕН ; 1. ; 2. 2FH ;ПОЗИЦИОННОЕ РЕГИСТРЫ ИНДИКАЦИИ, ЗНАЧЕНИЕ КАТОДА О. (АНОДА). ;===========================================~= ; 1. ПУСК. ;======================= GOTO ORG' GOTO ORG INIT 4 PRER Q ;========================~============== ; 2. ТАБЛИЦА СЕГМЕНТОВ ДЛЯ ОБЩЕГО' КАТОДА. ;===~==================~================ SEGDATA ADDWF ;ОБЩИЙ RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RE';I'LW ; 7' 6, 5, 4' 3, 2, 1, ; Н, G, F, Е, О, С, в, PCL,F КАТОД 00111111 1 в 00000110 в 1 АНОД 1 о в 1 1 2 3 В'11111001' 4 В'10011001' 5 6 7 В'10010010' 8 В'10000000' 9 В'10010000' В'01011011' в о. А. 01001111 1 1 1 в 01100110 в 1 01101101' B'OlllllOl' В. 1 00000111' в 1 01111111' в 1 о 11-01111 1 1 41 1 11000000 1 ~ \J.J В'10100100' В'10110000' В'10000010' В' 11111000' ;==~=========================== ; 3. ИНДИКАЦИЯ. ;============================== IND В'00010100' MOV,;LW JIOVWF BCF MOVFW CALL ·CALL CALL ANOD FLAG,l -EDI INDZ .· ADPO ZDEM MOVIrW MOVWF BCF MOVFW CALL CALL ANOD FLAG,l DEI INDZ ZDEM ;УСТАНАВЛИВАЕМ ;о РАЗРЯДЕ ;СБРОСИМ НОЛЬ В ИНДИКАЦИИ. ФЛАГ ;ЗАГРУЖАЕМ ПРЕРЫВАНИЯ. РЕГИСТР ИНДИКАЦИИ. Q'J('}O СФОО ;ПРОИНДИЦИРУЕМ. ;ПРОВЕРИМ ;НА НАПРЯЖЕНИЕ. ОЖИДАНИЕ ПРЕРЫВАНИЯ. INDl / В'00010010' .; УСТ АНА:ЗЛИВАЕМ ;1 РАЗРЯДЕ. ноль в ';ВСЕ ОСТАЛЬНЫЕ РАЗ'РЯДЫ ;АНАЛОГИЧНО ;НА ОЖИДАНИЕ НУЛЕВОМУ. ПРЕРЫВАНИЯ. 11
Устройства с использованием АЦП IND2 1 MOVLW MOVWF BCF MOVFW CALL CALL GOTO 1 в 00000110 1 ANOD FLAG,1 COI INDZ ZDEM IND ;УСТАНАВЛИВАЕМ . ; ВО 2 НОЛЬ В РАЗРЯДЕ. ;НА ОЖИДАНИЕ ПРЕРЫВАНИЯ. ;НА ИНДИКАЦИЮ НУЛЕВОГО РАЗРЯДА. INDZ CALL MOVWF MOVWF MOVFW .MOVWF BTFSC BSF RETURN SEGDATA SEG ·poRTC ANOD PORTA SEG,6 PORTA,5 BTFSC RETURN GOTO FLAG,1 ;ОПРЕДЕЛИМ СЕМИСЕГМЕНТНОЕ ЗНАЧЕНИЕ. ;ЗАПИШЕМ ЕГО В РЕГИСТР. ;В ПОРТ С. ;ВКJ!ЮЧИМ РАЗРЯД . ;ВЕРНЕМСЯ. ZDEM ;ОЖИДАНИЕ ПРЕРЫВАНИЯ. ZDEM ;===~==:=======~==================================== ; 4. ·АЦП-ПРЕОБРАЗОВАНИЯ (ИЗМЕРЕНИЕ ВХОДНЫХ ВЕЛИЧИН) . ;=======~=====•=======~=~=========================== ADPO\ MOVLW MOVWF CALL BSF BTFSC GOTO ,, MO~FW .мo\!rlF ~SF · MOVLW MOVWF MOVFW. MbVWF BCF GOTO В'10000001' ADCONO ZAD ADCON0,·1 ADCON0,1 $-1 ADRESH ;ВХОД ВКЛЮЧЕНИЕ АЦП (УВХ). ;ВКЛЮЧИМ ПРЕОБРАЗОВАНИЕ. ;ОЖИДАЕМ ЗАВЕРШЕНИЯ ;ПРЕОБРАЗОВАНИЯ. ;ПЕРЕПИШЕМ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ ;В СТАРШИЙ ТЕКУЩИЙ РЕГИСТР. ТЕКН STATUS,5 21 FSR ADRESL INDF ,STATUS, 5· BINDEC О, . ; ;ПЕРЕХОД~ В БАНК ; \f'~L. 1. • ;ПО КОСВЕННОЙ АДРЕСАЦИИ ' ;ЗАПИСЬ ;В РЕГИСТРА АЦП МЛ. РЕГИСТР ;ПЕРЕХОДИМ TEKL~ В БАНК [ПЕРЕКОДИРУЕМ В О. 2 10 код:· ZAD MOVLW AODLW ЭT'FSS GOTO -RETURN .·5 -1 STATUS,2 ;ЗАДЕРЖКА 20 мкс . . $-2 . -· . ;=======~~=~=============:====~==~==================~=~=====z=== ~ 5. ПЕРЕКОДИРОВКА из 16-РАЗРЯДНОГО 2:..го в 5-РАЗРЯДНОЕ 2-10-Е . . ; АЛГОРИТМ ПЕРЕКОДИРОВКИ ОСНОВЫВАЕТСЯ НА ПРИБАВЛЕНИИ 3 В МЛАДШИЙ И СТАР"Ший ~ ПОЛУБАЙТЫ. ЕСЛИ РЕЗУЛЬТАТ С ПЕРЕНОСОМ. 1 В 3 РАЗРЯД (10~7+3),ТО ЗАПИСЫВАЕМ НОВОЕ ЗНАЧЕНИЕ В РЕГИСТР .. ВЫПОЛНЯЕМ 16 РАЗ, СДВИГАЯ БИТЫ РЕГИСТРОВ. ;===~~==================~==================~:=============~====== BINDEC MOVLW MOVWF .19 cou ;ЗАПИШЕМ ЧИСЛО ; В ,<;ЧЕТЧИК. СДВИГОВ
... .- Милливольтметр BIDE BCF RLF RLF RLF RLF DECFSZ GOTO GOTO STATUS, TEKL,1 MOVLW MOVWF CALL MOVLW MOVWF CALL GOTO EDA FSR BCD DEA FSR BCD RASDEC О ТЕКН,1 EDA,1 DEA, 1 COU,1 RASDEC· MESTO 28.\-\ ; ОБНУЛИМ БИТ "С". ;СДВИНЕМ ПЕРЕКОДИРУЕМОЕ ;ЧИСЛО, ПЕРЕМЕЩАЯ ЕГО СТАРШИЙ БИТ ·;В МЛАДШИЙ БИТ РЕГИСТРОВ ;РЕЗУЛЬТАТА. ;ЗАФИКСИРУЕМ СДВИГ.В СЧЕТЧИКЕ. ;ПРОВЕРИМ НОЛУБАЙТЫ НА СЕМЕРКУ. ;ЕСЛИ СЧЕТЧИК ПУСТ, ЗАПОЛНИМ РЕГИСТРЫ ИНДИКАЦИИ. ;ЗАПИШЕМ АДРЕС РЕГИСТРА w~~b ;В РЕГИСТР КОСВЕННОЙ ~ДРЕСАЦИИ. ; ПРОВЕРИМ ЗНАЧЕНИЕ ;АНАЛОГИЧНЫЕ ;С ·ВШЕ ДРУГИМИ РЕГИСТР.А НА 7. ОПЕРАЦИИ ПРОДЕЛАЕМ РЕГИСТРАМИ. ;ПОЙДЕМ ПОВТОРЯТЬ СДВИГ. BCD MOVLW ADDWF MOVWF BTFSC MOVWF MOVLW ADDWF 3 0,0 ; 0000 0011 ТЕМР ;ЗАПИШЕМ ВО ВРЕМЕННЫЙ РЕГИСТР. ТЕМР,З ;ПРОВЕРИМ 3 БИТ, И ЕСЛИ ОН РАВЕН НУЛЮ, ; ПРОПУСКАЕМ ЗАПИСЬ РЕЗУЛЬТАТА В РЕГИСТР. L=-0 fl, ?<tr7e"" [Jf 1 ;48=0011 0000 ;ПРИБАВИМ 3 К СТАРШЕМУ ПОЛУБАЙТУ РЕГИСТРА И о 30 0,0 ;ПРИБАВИМ ? 1 3 К РЕГИСТРУ И РЕЗУЛЬТАТ ;РЕЗУЛЬТАТ MOVWF BTFSC MOVWF RETURN ТЕМР ;ЗАПИШЕМ ВО ВРЕМЕННЫЙ РЕГИСТР. ТЕМР,7 ;ЕСЛИ БИТ ЕДИНИЧНЫЙ, о ;ТО ЗАПИШЕМ НОВОЕ ;ВЕРНЕМСЯ ДЛЯ ЗНАЧЕНИЕ В ЗАГРУЗКИ НОВОГО РЕГИСТР. ЗНАЧЕНИЯ РЕГИСТРА. ; :i;;::=====:::.._==================================================.:=-===~= ; 6. ИЗВЛЕКАЕМ ПОЛУБАЙТЫ ИЗ РЕГИСТРОВ СЧЕТА В РЕГИСТРЫ ИНДИКАЦИИ·. ;====================================================~========== MESTO MOVLW ANDWF MOVWF MOVLW ANDWF MOVWF SWAPF MOVLW ANDWF MOVWF CLRF CLRF RETURN В' 00001111.'; ИЗВЛЕКАЕМ ПОЛУБАЙТЫ DEA, о ; в РЕГИСТРЫ ИНДИКАriии. r-5' vJ COI 1 1 в 11110000 ; EDA,O DEI DEI,l в 1 00001111'; EDA, О EDI EDA DEA ;===========================-==================================== ; 7. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ. ;====~===~========================================~==~=========== PRER MOVWF MOVFW MOVWF MOVFW MOVWF WTEMP STATUS STEMP FSR FTEMP ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ W И ; STATU.S, ~~. 13
Устройств,а с использованием АЦП BCF BCF INCF MOVLW SUBWF BTFSS GOTO BSF, CLRF REPER MOVFW MOVWF MOVFW MOVWF MOVFW BCF RETFIE STATUS,6 STATUS,5 ; ДЕЛИТЕЛЬ СЕК,1 5. НА .5 СЕК,0 1 STATUS,2 REPER FLAG,1 ;ЕСЛИ СЕК ;ОБНУЛИМ. ;ТО 5, РАВНО УСТАНОВИМ 5 ФЛАГ мс. ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ЗНАЧЕНИЙ. ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ: STEMP STATUS FTEMP FSR WTEMP INTCON,2 ;STATUS, ; FSR, ;W. ;СБРАСЫВАЕМ ФЛАГ ПРЕРЫВАНИЯ ОТ TMRO. ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ. ;===================~== ; 8. ИНИЦИАЛИЗАЦИЯ. ;====================== INIT BSF CLRF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF CLRF MOVLW MOVWF CLRF MOVLW MOVWF CLRF CLRF CLRF CLRF BCF CLRF CLRF CLRF MOVLW MOVWF CLRF CLRF CLRF CLRF CLRF GOTO 1 STATUS,5 ;ПЕ-РЕХОДИМ OSCCALлOx90 ;МИНИМАЛЬНАЯ OFFH ADCONl ; ТАКТ В'10000001' ; OPTION REGлsoн в 101000.00 INTCON ;РЕЗИСТОРЫ 1 В ;СИНХРОНИЗАЦИЯ 1 1. ОТ RC. АЦП ОТ ВНУТРЕННЕГО ГЕНЕР.Z\ТОРА 500 кГц. К=4. ВЫКЛЮЧЕНЫ. ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ ОТ TMRO. РIЕ1лsон ;ЗАПРЕЩЕНЫ ВСЕ ПЕРИФЕРИЙНЫЕ ПРЕРЫВАНИЯ. B'OOOOOOOl' TRISAЛ80H ·} ;ВСЕ TRiscлsoн ;ВСЕ ВЫХОДЫ. .1 ANSEL VRCON PCON"SOH WPUA IOCA STATUS,5 PORTC PORTA TlCON ВЫХОДЫ. О - ВХОД АЦП. ;ВЫБРАН АНАЛОГОВЫЙ ВХОД ;ИОН RAO/ANO. ОТКЛЮWЕН. ;ПРЕРЫВАНИЯ ПО ;ПОДТЯГИВАЮЩИЕ ;ПРЕРЫВАНИЯ ПИТАНИЮ З.АПРЕЩЕНЫ РЕЗИСТОРЫ ;ВЫХОД И ;ТАЙМЕР О. ИНДИКАТОРЫ 1 ВЫКЛЮЧЕНЫ. ОТКЛЮЧЕН. •7 CMCON FLAG EDI DEI COI ;КОМПАРАТОР ;ВСЕ ВЫКЛЮЧЕН. ОБНУЛЯЕМ СЕК IND END ;=========================================== .. ВЫКЛЮЧЕНЫ. ЗАПРЕЩЕНЫ. ;hЕРЕХОДИМ В БАНК ;=================~======================~== 14 БАНК ЧАСТОТА. И УСТАНАВЛИВАЕМ.
Цифровой прибор для блока питания с установкой защиты Цифровой п·рибор для блока питания с установкой защиты . Предлагаемый прибор необходим при налаживании устройств, особенно с помощью лабораторных блоков питания. Прибор защищает настраиваемое устройство от перегрузки по току и от превышения напряжения питания. Он также обеспечивает удобную цифровую индикацию тока и напряжения, уста­ .новку. пределов срабатывания защиты и их сохранение в энергонезависимой памяти. В процессе проверки устройства возможно резкое увеличение потребляе­ мого им тока ~з-за ошибок в монтаже или неправильных действий оператора. В результате МОГУТ ВЫЙТИ ИЗ строя ДОрОГОСТОЯЩИе элементы. ДЛЯ ИХ заЩИТЫ ,обычно применяют предохранитми, среди которых предпочтительнее быст-· родействующие электронные, например [2, 3]. Но защита только по току не7" достаточна. Ошибка человека, управляюшего лабораторным блоком питания, или пробой регулирующего транзистора в этом блоке вызовет повреждение налаживаемого устройства завышенным напряжением питания. Хотя зашита по току обычно срабатывает и в этом случае, но уже после возникновен.ия по­ вреждений, так как именно они и вызывали ее срабатывание. Чаще всего эти повреждения необратимы. Защита по нагiря:Жению позволяет их предотвра­ тить, поэтому она столь же необходима, как и по току. Предлагаемый прибор предназначен для использования с блоком пита­ ния. Он обеспечивает цифровую индикацию напряжения и тока, потреблЯе- . маго нагрузкой, раздельное включение и отключение защиты по. току и на­ пряжению, установку пределов срабатывания защиты. Результат измерений отображается двумя четырехразрядными индикаторами. На время отключения прибора установки защиты сохраняются в энергонезависимой памяти. Прибор разработан 1-Ia основе 28-выводного микроконтроллера PIC16F873, имеюшего 1О-разрядный АUП. Основные технические характеристики Пр~елы измерения напряжения, В Пределы измерения тока, А 0".50 0".9,99 . . . . . . . . . . . . . . . . Пределы срабатывания защиты: по току, А . .· . . . . . . .- . . . . . по напряжению, В от 0,01 до . . от 0,1 9,99 с шагом 0,01 50 с шагом 0,1 до Время срабатывания защиты: среднее при одной включенной защите, мс . . . . . . . . . . . . . 0,075 . . . . . . . . . . . . . О, 15 максимальное, мс . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Напряжение питания прибора, В . · . . . . . . . . . . . . . . . . "· . 9" .40 Максимальный потребляемый ток, мА . . . . . . . . . . . . . . . . . . 50 среднее, при двух включеfiных зашитах, мс В случае необходимости верхний предеJLJiзмереfшя тока и срабатывания защиты может быть увеличен изменением номИ:налов делителя и шунта .. По совокупности хар~ктеристик прибор превосходит ранее описанные защитные 15
Устройства с использованием АЦП устройства аналоrичного назначения [4, 5] (как самостоятельные, так и встро­ енные в блоки Питания), что удалось достичь в результате использования мик­ роконтроллера. Алгоритм работы программы цифрового прибора показан на рис. После 8. инициализации регистров микроконтроллера из памяти выбираются ранее установленные значения защиты по току и напряжению. Все операции по из­ мерению входных величин и их перекодировка выполняются· процессором в паузах между выводом информации на восьмиразрядный индикатор. Время индикации одного разряда определяется временем, которое занимает 1 10 цик- лов измерения входного напряжения и тока . Поскольку измерение входных величин во время установки не выполняется, а во время вывода на индикацию к времени измерения прибавляется время перекодировки, то становится понят­ ным, что время индикации каждого разряда___:_ величина переменная. Младшие '. четыре разряда индикатора предназначены для вывода значения тока. После индикацИи нулевого разряда выполняются ·10 циклов измерения тока и напряжения. Фактически микроконтроллер измеряет напряжение, но для простоты мы будем говорить об измерении тока. Цикл одного измерения занимает примерно 75 мкс, поэтому время реагирования защиты на отклоне­ ние от установленного значения будет равно дикацию (1 раз через 0,5 150 мкс. Во время вывода на ин­ с) время реагирования увеличивается до 1 мс. Поскольку алгоритм работы программ измерения одинаков, то на рис. 8 показан только один из них. После вывода на индикацию каждого разряда устанавливается счетчик циклов измерения. Измерение входных величин на­ чинается с выбора входа и включения АЦП. Считываются старший и младший регистры измерения с правым выравниванием, т. е. старшие шесть разрядов равны нулю. Считанные значения сравниваются на превышение установлен­ ных величин. Если измеренное значение больше установленного, то выключа­ ется управляющий выход и нагрузка отключается. Вся посл_едующая програм­ ма продолжает выполняться, но повторно включить выход можно только по­ сле перезапуска микроконтроллера. Если результат сравнения отрицательный, то проверяется флаг прерывания. Если флаг прерывания установлен и прошло 0,5 с, то измеренное значение перекодируется в двоично-десятиричный код и результат переписывается в реl)1стры индикации. Следующий цикл индикации будет выполняться с новыми значениями в регистрах индикации. Для исключения мигания индикаторов при граничных показаниях вывод на индикацию производится через щи 8-разрядного таймера TMRO 0,5 8 и с. Счетчик 0,5 с организован при помо­ разрядного предделителя, включенного перед таймером. При переполнении таймера выполняется прерывание, запол­ няется счетЧ:ик прерываний и после восьмого прерывания устанавливается флаг 0,5 Если с. 0,5 . с не прошло, то декрементируется счетчик ·циклов измерения и проверяется на ноль. Если значение счетчика не равно нулю, то цикл измере­ ния повторяется. Если счетчик пуст, то выполняется индикация следуюЩего разряда. После индикации седьмого разряда проверяется состояние кнопок «Уста­ новка» и «Разряд». Если производится установка, то на единицу увеличивается число в выбранном разряде. После любого измен:ения значения защиты вы- 16
Цифровой прибор для блока питания с установкой защиты ПУСК ИНIЩИА,1JИЗАЦИЯ ВЫБОРКА ИЗ ГWv1ЯТИ УСТАНОВКА СЧЕТЧИКА ,____ -т----~ • из:мЕРЕНИЕ ИIЩИКАЦИЯ О РАЗР. ИIЩИКАЦИЯ 7 РАЗР. ЗАПИСЬ В РЕГ ИIЩ. НА ИIЩИКАЦИЮ СЛFДУЮЩЕГО ПРОВЕРКА ЮЮПОК РАЗРЯДА +! ВРАЗРЯД ПЕРЕКОДИРОВКА 2 10 > 2 ЗАIШСЬ В ПА?v1ЯТЬ +! Рис. 8. ВРАЗРЯД Алгоритм работы программы цифрового прибора для блока питания с установкой защиты полняется перекодировка двоично-десятиричного числа в двоичное число. Двоичное число необходимо для выполнения быстрого сравнения измеренно­ го значения и установленного. Установленные двоично-десятиричное и двоич­ ное числа записываются в энергонезависимую память. Если. нажата кнопка «Разряд», _то Прибавляется ·единица в регистр запятой и программа переходит к выполнению циклов измерения. Во время индикации разряда с числом, рав­ ным числу, установленному.µ регистре запятой, в разряде включится запятая. Далее циклы Индикации и измерения повторяются. 17
Устройства с использованием АЦП На рис. 9 показана принципиальная схема прибора. Напряжение питания прибора должно быть в пределах 9.. .40 В (предпочтительнее использовать ин­ тервал 9... 12 В). Нагрузку (налаживаемое устройство) подключают к выходу прибора. На ВХОД прибора подают напряжение питания нагрузки, которое не должно превышать 50 В. Общие провода прибора и обоих источников пита­ ния соединены между собой f1 образуют единый общий провод. Однако с ним не должен быть соединен общий провод нагрузки, так как переключательный транзистор VТ 1 включен в разрыв минусового провода питания нагрузки. До­ пустимо питать прибор от того же источника, что и нагрузку. При этом плю­ совые провода входа и питания должны быть соединены. Однако нагрузка в этом случае защищена хуже. Предпочтительнее питать прибор. от отдельного источника. Порты В и С микроконтроллера ные индикаторы HGl, HG2 DDl выводят информацию на светодиод­ с общим катодом. Входы RA4, RA5 задействова­ ны кнопками «Установка» и <«Разряд». Источником опQрного напряжения АЦП при измерении служит напряжение· питания микроконтроллера. Порт RA2 запрограммирован как выход, управляющий полевым переключательным транзистором VТl. и RAO RAl - входы АЦП для измерения напряжения и тока соqтветственно. Стабилизатор на мИкросхеме жение питания 5, 12 В для МJ1Кроконтроллера DAl вырабатывает напря­ DDl. и операционного усилите­ ля DA2. В небольших пределах напряжение питания можно изменять под­ строечным резистором Rб, что используется при калибровке прибора. Датчик напряжения - резисторный делитель го подается непосредственно на вход резистор R20. RAO R8R9, Напряжение на нем усиливается ОУ примерно равным 48. напряжение с котьро­ МtJКроконтроллера. Датчик тока DA2. l Далее оно через повторитель на ОУ - с коэффициентом, DA2.2 поступает на RAl микроконтроллера . .Топология печатноt.J платы и расположение элементов на ней представле­ ны на рис. 1О, 11. Печатная плата для блока индикаторов типа CC56- l 2GWA показана на рис. 12. Микроконтроллер PIC16F873 без изменения рисунка печатной платы можно заменить микроконтроллером PIC16F876. Резистор R20 взят из. сгорев­ вход шего прибора типа М-830-М-838. Его можно изготовить из константанового. или манганинового провода диаметром 1,5 мм. Если прибор не будет работ·ать в условиях с. большим перепадом температур (п~раж-}):омната), то резистор можно сделать из нихрома. Для диаметра провода 0,01 1,5 мм сопротивлением Ом длина провода из нихрома составит приблизительно 18 мм [6]. Доби­ ваться точного значения сопротивления провода нет неьбходимости, так как проще подобрать сопротивление резистора Rl 1 тока. Операционный усилитель ,типа можно взять с любой буквой или его аналог КР 1040УД 1. LM358 при калибровке _измерителя Се1':fисегментные светодиодные индикаторы можно заменить любыми с общим катодом, но тогда, возможно, потребуется подбор гасящих резисторов Rl2-Rl9. Подстроечный резистор Rб типа СП5-·IбВА можно взять любым, не имеющим разрыва сопротивления при вращении движка резистора. Полевой транзистор лучше взять с пониженным напряжением Затвора (с буквой 18 «L») из таблицы, приведенной в статье [7].
Цифровой прибор для блока питания с установкой защиты <'"1 '</" ~ ~ ~ ~ ~~~~~ ~ 6 Q о з ~ ~ "'1 -N~"'C:f""'"l\Ot- ~ ~ ~ ~ ~ ~ ~ fL8d9l:Jlcl .... ~ ~ c.J~ c.J. u d ~ ~ ::2 ~ t'-- N ID ~ о '</" N 00 ~ С> N u ~ ~ ..... и о О\ N u и о ~ а:) N ~..,_ ____________,___.--4__ --1~-+----1~+------. + о О\ + w - ~ 1.: N ::i; ::i; uo U~ о" Q ~ о w ~ ~ N z '</" а:) ~~ 00 + "w N . ~~ ~ tБ ~ ~ ~· !J! ::4 Рис. 9. + - - - - - - - - - - - - - - - - - - - - - - - + ::4 е Цифровой прибор для блока питания с установкой заiциты Налаж~вание прибора начинают с установки напряжения питания на вы­ воде 2 сtабилизатор·а DA 1. Вращением двю~ка подстроечного резистора Rб устанавливают напряжение, равное 5, 12 В. На время установки напряжения микроконтролл~р извлекают из м~кросхемной панельки. Затем устанавливают запрограммированный микроконтроллер и подключают цифровой измерите- 19
Устройства с использованием А_ЦП 50 Рис. 10. Топология печатной платы ~~~~~-R-14--===~__,p 0 31оvт10!1 -t1x ~ -8В -U,,'-'ТБП о2 SBI SВ2 SВ2 SBI 4 :~,~~~~~~~ ~~ 7 о 3 о 1 о н +SB Рис. 11. Расположение элементов на плате льный прибор (можно типа М-830) на измерение напряжения с пределом в младшем разряде О, 1 В. Сравнивают показания измерительного прибора· и старших четырех разрядов настраиваемого прибора. Совпадения показаний добиваЮтся изменением в небольших пределах напряжения питания микро­ контроллера резистором R6. При этом напряжение питания мйкроконтролле­ ра не Должно превышать максимально допустимое напр.яжение, равное 5,5 В. Налаживание измерителя тока начинают с установки вместо Постоянного резистора Rl 1 переменного номиналом 51 кОм. Последовательно с нагрузкой подключают цифровой амперметр с пределом в младшем разряде 20 1О мА. Если
Цифровой прибор для блока питания с установкой защиты 62.5 . о 1 2 ~----+--+-f-+--___,1-----~ 0--1---Э- в .-----1:)-t---Э- А ...__ ___..----о--+-~ FG ....-------+-<>--+~ н .-------+-о-+~ Е '---~-~-t---t===========--o--+~D '---------)-+.-~с Рис. 12. Печатная плата иIЩИкаторов на СС56-12GМА без нагрузки индикатор HG2 показывает значение тока, не равное нулю, то это свидетельствует о наличии наводки, которую необходимо устранить под­ ключением конденсатора емкость19 О, 1.. ,0,47 мкФ параллельно резистору Rl 1. Включают нагрузку около сотни миллиампер и сравнивают показания млад­ ших четырех разрядов настраиваемого прибора с показаниями цифрового ам­ перметра. Небольшую разницу в показаниях приборов устраняют вращением движка переменного резистора. После налаживания амперметра при малом токе желательно проверить тоЧность показаний при токе нагрузки около 9 А. Естественно, для прибора~ с такой точностью при измерении больших значений токов возможно расхожде­ ние в младших разрядах показаний ·приборов на 2-3 единицы. Измеряют со­ Rl 1 с таким же противление переменного резистора и устанавливают резистор значением сопротивления. Работа с прибором сводится к установке необходимых величин защиты. При включении прибора на индикаторах высветится: УООО _-УООО, . Нажима­ ют кнопку «Установка» и устанавливают необходимое значение в том разряде, где находится запятая. При нажатии кнопки «Установка» при запятой в раз­ рядах с буквой «У» буква пропадает. Это означает, что защита выключена. Если это третий разряд, то в'Ыключена защита по току, если седьмой - по на­ пряжению. При установке защиты запятые разрядов не светятся, а горит запя­ тая возле устанавливаемого разряда, поэтому необходимо помнить вес стар­ ших и младших разрядов установки. При перемещении запятой за пределы индикатора прибор переходит к режиму измерения и индикации измеряемой величины. Необходимо заметить, что при установке защиты сравнение с из­ меренными значениями не производится, поэтому установку желательно нъ 1 - полнять при выключенной нагрузке. В режиме измерения в третьем и седьмом разрядах перед значениями тока горит маленькая буква «i», а напряжения - «U». Если буквы расположены вни­ зу (горят сегменты С и CDE), то защита измеряемой величины включена. Если буквы расположены сверху (горят сегменты В и BFG), то защита выключена. Если измеряемое значение превышает установленное, то в цифровых раз­ рядах тока будут светиться нули, а значение напряжения не пропадает. Из ра­ бочего ·режима в режим установки можно перейти нажатием кнщ1ки «Уста­ новка». 21
Устройства с использованием АЦП Если измеряемое значение превышает установленное, то с.работает защи­ та, транзистор VТI закроется и разорвет цепь питания нагрузки. Потребляе­ мый ею ток упадет до :н;уля, что и покажет индикатор HG2. Индикатор HGI будет по-прежнему показывать напряжение. Для возврата прибора в исходное состояние после срабатывания защиты необходимо отключить нагрузку, вы­ ключить блок питания прибора и снова его включить, чтобы перезапустить микроконтроллер. ИЗМЕРИТЕЛЬ НАПРЯЖЕНИЯ ИЗМЕРИТЕЛЬ ТОКА ДО С_ РАЗДЕЛЬНЫМ ПО ТОКУ ·И ДЛЯ 10 _Q-50 В (0,1 А (10 мА). ВКЛЮЧЕНИЕМ УСТАНОВОК НАПРЯЖЕНИЮ ДО БЛОКОВ ПИТАНИЯ. 5,12 В). ЗАЩИТЫ В. ИНДИКАЦИЯ - 1 8 РАЗР. СВ. ДИОДОВ С ОК. РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ. ДЛЯ СВОБОДНОГО n.ВЕЙДЕЛЕВКА, ИСПОЛЬЗОВАНИЯ РАДИОЛЮБИТЕЛЯМИ. БЕЛГОРОДСКОЙ. saes@rnail.ru = AUMZUV.ASM 16-08-04 . ПРОГРАММА ВЕРСИЯ: ., АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, 5.70.40. ВЕРСИЯ: #INCLUDE <P16F873.INC> CONFIG ЗFЗlН ;============~=======~==========~=================== ; ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАСТО~ОЙ 4,0 МГц. ;==================~================================= ПОРТ С ПОРТ В RAO RAl RA2 RA4 RA5 - · ВЫХОД КАТОДОВ. ВЫХОД СЕГМЕНТОВ. - АНАЛОГОВЫЙ ВХОД 1 НАПРЯЖЕНИЯ. - АНАЛОГОВЫЙ ВХОД 2 ИЗМЕРЕНИЯ ТОКА. - УПРАВЛЕНИЕ. - ВХОД КНОПКИ "УСТАНОВКА" .. - ВХОД КНОПКИ "РАЗРЯД". ;========================================= ; РЕГИСТРЫ РСН. ;========================================= INDF TIMERO OPTIONR РС STATUS FSR PORTA PORTB PORTC TRISA TRISB TRISC INTCON PIEl ADR;:sн ADRESL ADCONO ADCONl 22 EQU EQU EQU EQu· EQU EQU EQU EQU EQU EQU .EQU EQU EQU. EQU EQU EQU EQU EQU оон ;ДОСТУП OlH 81Н ;TMRO. ;OPTION (RPO=l). 02Н ;СЧЕТЧИК КОМАНД. озн ;РЕГИСТР СОСТОЯНИЯ 04Н ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. 05Н ;ПОРТ ОбН ;ПОР~ В ВВОДА/ВЫВОДА. 07Н ;ПОРТ С 85Н ;НАПРАВЛЕНИЯ 86Н ;ПОРТ В ВВОДА/ВЫВОДА. 87Н ;ПОРТ ВВОДА/ВЫВОДА. овн ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ. 8СН ;РЕГИСТР РАЗРЕШЕНИЯ lEH ;СТАРШИЙ БАЙТ АЦП. ;МЛАДШИЙ БАЙТ АЦП. 9ЕН lFH 9FH К ПАМЯТИ ЧЕРЕЗ FSR. АЛУ. А ВВОДА/ВЫВОДА. С ВВОДА/ВЫВОДА. ДАННЫХ ПОРТА А. ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. ;РЕГИСТР УПРАВЛЕНИЯ АЦП. ;РЕГИСТР УПРАВЛЕНИЯ ВХОДАМИ "ADP".
Цифровой прибор для блока питания с установкой защиты EEDATA EEADR EEDATH EEADRH EECONl EQU EQU EQU EQU, EQU lOCH lODH lOEH lOFH ЗАПИСИ/СЧИТЫВАНИЯ. ;РЕГИСТРЫ 18СН ,;=============~============================= ; ОПРЕДЕЛЕНИЕ РОН. ;=========================================== EQU EQU EQU СЕК EQU WTEMP EQU ТЕМР EQU FLAG EQU ANOD2 EQU STEMP EQU FTEMP EQU DEA EQU. СОА EQU EDA EQU UEDI EQU UDEI EQU UCOI EQU IЕЩ: EQU IDEI EQU ICOI EQU TUI EQU ANOD EQU ZPT EQU COU EQU RO EQU Rl EQU TEMPL EQU ТЕМРН EQU EDY EQU DEY EQU СОУ EQU YCTL EQU УСТН EQU EDYU EQU DEYU EQU COYU EQU YCTLU EQU YCTHU EQU ZPTI EQU COUN EQU TUU EQU ZPTU EQU FLAGl EQU ZTI EQU ZTU EQU ZYTI EQU ZYTU EQU ТЕКН 20Н ;ДВОИЧНОЕ TEKL SEG 21Н ;НАПРЯЖЕНИЯ ИЗМЕРЕННОЕ 22Н ;РЕГИСТР 23Н ;ВРЕМЯ 24Н ;ВРЕМЕННЫЙ. 25Н ;ВРЕМЕННЫЙ. 26Н ;РЕГИСТР 2 7Н ;ДВОИЧНОЕ 28Н ;ВРЕМЕННЫЙ. 2 9Н ;ВРЕМЕННЫЙ. 2АН ;РЕГИСТРЫ ИЛИ ЗНАЧЕНИЕ ТОКА. СЕГМЕНТОВ. ПАУЗЫ. ФЛАГОВ. ЗНАЧЕНИЕ КАТОДА. ПЕРЕКОДИРОВКИ 2 -> 2 10. 2ВН 2СН ЗОН ;РЕГИСТРЫ ИНДИКАЦИИ ЗlН ; 1. 32Н ; 2. ЗЗН ;РЕГИСТРЫ ИНДИКАЦИИ 34Н ; 1. 35Н ; 2. ЗбН ;РЕГИСТР 37Н ;ПОЗИЦИОННОЕ 38Н ;ЗАПЯТОЙ. 39Н ;СЧЕТЧИК ЗАН ;ВРЕМЕННЫЕ ЗВН ;ПЕРЕКОДИРОВКИ ИНДИКАЦИИ НАПРЯЖЕНИЯ, ТОКА, БУКВ~ ЗНАЧЕНИЕ О. О. ТОКА. КАТОДА. ПЕРЕКОДИРОВКИ. ДЛЯ (2_10 -> 2) ЗСН ЗDН 42Н ;РЕГИСТРЫ 43Н ;УСТАНОВКИ 4 4Н ;ПО 45Н ;ДВОИЧНОЕ 46Н ;МЛАДШИЙ И СТАРШИЙ РЕГИСТР. 47Н ;РЕГИСТРЫ 48Н ;УСТАНОВКИ 49Н ;ПО 4АН ;ДВОИЧНОЕ 4ВН ;МЛАДШИЙ И СТАРШИЙ РЕГИСТР. 4СН ;ИНДИКАЦИИ ЗАПЯТОЙ ТОКА. 4ЕН ;СЧЕТЧИК ЦИКЛОВ 4FH ;РЕГИСТР ИНДИКАЦИИ 50Н ;ЗАПЯТАЯ ПО 51Н ;ФЛАГ 52Н ;РЕГИСТР ВКЛЮЧЕНИЯ ЗАЩИТЫ ПО ТОКУ ПР~ 53Н ;РЕГИСТР ВКЛЮЧЕНИЯ ЗАЩИТЫ ПО НАПРЯЖЕНИЮ ЗНАЧЕНИЕ УСТАНОВОК ЗАЩИТЫ ЗНАЧЕНИЕ УСТАНОВОК ИЗМЕРЕНИЯ. БУКВЫ НАПРЯЖЕНИЯ. НАПРЯЖЕНИЮ. ВКЛЮЧЕНИЯ ЗАЩИТЫ. РАБОТЕ. ПРИ РАБОТЕ. ·;РЕГИСТР ВКЛЮЧЕНИЯ ЗАЩИТЫ ПО ТОКУ ТТРИ УСТАНОВКЕ. 54Н 55Н ЗАЩИТЫ ТОКУ. . ;РЕГИСТР ВКЛЮЧЕНИЯ ЗАЩИТЫ ПО НАПРЯЖЕНИЮ ПРИ УСТАНОВКЕ. 23
Усфойства с использованием АЦП ;===============================~= ; ОПРЕДЕЛЕНИЕ БИТОВ FLAG. РЕГИСТРА ;================================= 0->ИНДИКАЦИЯ: 2->ВЫХОД 1-НАПРЯЖЕНИЕ, О-ТОК. ВЫКЛЮЧЕН. 3->НАЖАТА КНОПКА УСТАНОВКИ. 4->НАЖАТА КНОПКА ВЫБОРА РАЗРЯДА. 5->1-РАБОТА, О-УСТАНОВКА. 6->0,5 СЕКУНД НАПРЯЖЕНИЯ. 7->О,5 СЕКУНД ТОКА. 1 ;================================== ; ОПРЕДЕЛЕНИЕ БИТОВ РЕГИС.ТРА FLAGl. ;===========•=====и===============~ ; ; 0->ВЫКЛЮЧЕНИЯ ЗАЩИТЫ ПО ТОКУ. 1->БЫКЛЮЧЕНИЯ ЗАЩИТЫ ПО НАПРЯЖЕНИЮ. l=ВЫКЛЮЧЕНО. l=ВЫКЛЮЧЕНО. ;===========•==~=и================= ; 1. ПУСК ;~====================== ORG GOTO ORG GOTO О INIT 4 PRER ;======================================= ; 2. ТАБЛИЦА СЕГМЕНТОВ ДЛЯ ОБЩЕГО КАТОдА. ;======================~================ ; 7' 6, 5, 4, 3, 2, 1, G, F, Е, О, С, В, А. SEGDATA ADDWF КАТОД RETLW RETLW RETLW RETLW RE'l'LW RET_tW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW · RETLW в АНОД 1 00111111' В'00000110' В'01011011' В'01001111' в 1 01100110 1 В'01101101' о в 1 11000000 1 11111001' 1 в 2 в 1 1о1оо1,0 о 1 3 В'10110000' 4 В'10011001' 5 В'10010010' 1 В'10000010' В'01111101' 6 В'00000111' 7 в 1 11111000 1 8 В'10000000' 9 В'10010000' 10 и НИЖНЕЕ, с ЗАЩИТОЙ. ).1 i НИЖНЕЕ, с ЗАЩИТОЙ. 12 у 13 i ВЕРХНЕЕ, БЕЗ ЗАЩИТЫ. 14 и ВЕРХНЕЕ, БЕЗ ЗАЩИТЫ. 15 ПУСТО. В' в 1 В' 01111111' 01101111' 00011100' В'00000100' В'01101110' B'0Q000010' В'01100010' о ;========================================== ; 3.IПЕРЕВОД ДЕСЯТКОВ В 2 КОД. ;=====================================~==== EDUNI ADDWF RETLW RETLW RETLW RETLW RETLW RETLW 24 о. ; н, PCL,F PCL,1 .о .10 .20 .30 .40 .50
Цифровой прибор для блок.а питания с установкой За1.!4иты RETLW RETLW RETLW RETLW .60 .70 . 80 .90 ;============================ ; 4. ВЫБОР РАЗРЯДА УСТАНОВКИ. ;============================ УСТ BTFSS RETURN BCF BTFSS GOTO CLRF BCF BCF BSF MOVFW MOVWF MOVFW MOVWF CALL GOTO PORTA,4 ;ПОКА КНОПКА НАЖАТА, ;ВЫБОРА FLAG,3 FLAG,5 НЕТ. ;СБРОСИМ ФЛАГ УСТАНОВКИ. ;ЕСЛИ БЫЛА РАБОТА, ВУСТ ZPT FLAG,5 PQRTA,2 FLAG,2 ZYTI TUI ZYTU TUU У. I у ;ТО УСТАНОВИМ ЗАПЯТУЮ В ;И СБРОСИМ ФЛАГ ;ПРИ УСТАНОВКЕ РАБОТЫ О РАЗРЯД (~СТАНОВКА). НАГРУЗКА ВЫКЛЮЧАЕТСЯ. ;УСТАНОВИМ ФЛАГ ВЫКЛЮЧЕННОЙ НАГРУЗКИ. ;ИНДИКАЦИЯ ;У ПРИ БУКВЫ УСТАНОВКЕ. ;ВЕРНЕМСЯ ДО ТТОВТОРНОГО НАЖАТИЯ КНОПКИ. u ВУСТ MOVFW ADDWF GOTO GOTO GOTO GOTO GOTO GOTO GOTO GOTO ZPT ;ГДЕ ЗАПЯТАЯ, ТОТ РАЗРЯД И УСТАНАВЛИВАЕМ. РС,1 УСТО YCTl УСТ2 УСТЗ УСТ4 УСТ5 УСТб УСТ7 ;============================== ; 5. ИНДИКАЦИЯ. ;============================== IND MOVLW MOVWF CLRF .254 ANOD ANOD2 ;УСТАНАВЛИВАЕМ НУЛЕВОЙ РАЗРЯД В ;ПОЗИЦИОННОЕ ЗНАЧЕНИЕ ;ОБНУЛИМ ДВОИЧНОЕ КАТОдА. ЗНАЧЕНИЕ АНОДА (КАТОДА). 1 INDO MOVFW MOVWF BCF MOVFW CALL CALL ZPT ZPTI FLAG,O IEDI INDZ ZDEM MOVFW CALL CALL IDEI INDZ ZDEM MOVFW CALL ICOI INDZ ;ЗАПЯТУЮ ПО ;В РЕГИСТР ;СБРОСИМ ТОКУ ИНДИКАЦИИ. ФЛАГ ;ЗАГРУЖАЕМ ИНДИКАЦИИ РЕГИСТР НАПРЯЖЕНИЯ. ИНДИКАЦИИ. ;ПРОИНДИЦИРУЕМ. ;ПАУЗА. INDl ;ВСЕ ОСТАЛЬНЫЕ . ; АНАЛОГИЧНО РАЗРЯДЫ- НУЛЕВОМУ. ;ПАУЗА. IND2 25
Устройства с использованием АЦП CALL ZDEM ;ПАУЗА. MOVFW CALL ·cALL TUI INDZ ZDEM ;ИНДИКАЦИЯ lNDЗ СИМВОЛА ТОКА - i. ;ПАУЗА. IND4 BTFSS GOTO MOVFW MOVWF MOVFW CALL CALL FLAG,5 $+3 ZPTU ZPTI UEDI INDZ ZDEM MOVFW CALL CALL UDEI INDZ ZDEM MOVFW CALL CALL UCOI INDZ ZDEM MOVFW CALL. CALL CALL GOTO TUU INDZ CALL MOVWF MOVFW SUBWF SKPNZ SEGDATA SEG ZPTI ANOD2,0 ; 1 ;ЗАПЯТАЯ ;В ПО РЕГИСТР НАПРЯЖЕНИЮ ИНДИКАЦИИ. ;ЗАГРУЖАЕМ РЕГИСТР ИНДИКАЦИИ. ;ПРОИНДИЦИРУЕМ. ;ПАУЗА. INDS ;ИНДИКАЦИЯ. ;ПАУЗА. INDб ;ПАУЗА. IND7 ;ИНДИКАЦИЯ СИМВОЛА НАПРЯЖЕНИЯ - и. кно ZDEM IND ;ПАУЗА. ;НА индИКАцию НУЛЕВОГО РАЗРЯДА. INDZ ;ОПРЕДЕЛИМ ;ЗАПИШЕМ СЕМИСЕГМЕНТНОЕ ЕГО В ЗНАЧЕНИЕ. РЕГИСТР. ;СРАВНИМ РАЗРЯД ЗАПЯТОЙ ;С РАЗРЯДОМ ИНДИКАЦИИ. ;ЕСЛИ ОНИ НЕ СОВПАДАЮТ, ТО ПРОПУСТИМ ;УСТАНОВКУ. BSF BCF MOVFW MOVWF MOVFW MOVWF BSF BSF SEG,7 INTCON,7; SEG PORTB ANOD PORTC INTCON,7; STATUS,0 RLF INCF ANOD,1 ANOD2,1 ;ВКЛЮЧИМ СЕГМЕНТ ЗАПЯТОЙ. ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ;В ПОРТ В. ;ВКЛЮЧИМ ;В ПОРТ РАЗРЯД. С. ; НУЛЕВОЙ РАЗРЯД -1, ЧТОБЫ В КАТОД ;ЗАПИСАЛАСЬ 1. ;СДВИНЕМ НОЛЬ ;УВЕЛИЧИМ ; НА РАЗРЯД ДВОИЧНОЕ ВЛЕВО. ЗНАЧЕНИЕ АНОДА (КАТОДА). ;ВЕРНЕМСЯ. RETURN ZDEM MOVLW MOVWF CALL BSF CALL BCF DECFSZ 26 . 1 О' ;ПАУЗА COUN ADPI. FLAG,0 ADPU FLAG,0 COUN,1 ;И = 10 ЦИКЛАМ ПРОВЕРКИ ТОКА НАПРЯЖЕНИЯ. ;ПРОВЕРИМ ;УСТАНОВИМ ;ПРОВЕРИМ ТОК. ФЛАГ ИНДИКАЦИИ НАПРЯЖЕНИЯ. НАПРЯЖЕНИЕ. ;СБРОСИМ ФЛАГ ИНДИКАЦИИ НАПРЯЖЕНИЯ.
Цифровой прибор для блока питания с установJ<ОЙ защиты GOTO RETURN $-5 ;ПОВТОРИМ. ;=============================================~===== ; 6. АЦП-ПРЕОБРАЗОВАНИЯ (ИЗМЕРЕНИЕ ВХОДНЫХ ВЕЛИЧИН). ;====~============================================== ADPI BTFSS RETURN BSF MOVLW MOVWF BCF мo·vLw MOVWF CALL BCF BSF BTFSC GOTc;? MOVFW MOVWF BSF MOVLW MOVWF MOVFW MOVWF BCF BSF BTFSS CALL BTFSS RETURN GOTO ;ИЗМЕРЕНИЯ ТОКА НЕТ, ЕСЛИ FLAG(5 ;ИДЕТ УСТАНОВКА. STATUS,5 ;ПЕРЕХОДИМ В В'10000100' ;.RAO, RAl - БАНК 1. ВХОДЫ ВКЛЮЧАЕМ ВХОД ПОРТА "А" ТОКА. АНАЛОГОВЫЕ. АDСОN1л8он· STATUS,5 ;БАНК в 1 11 о 01 о о 1 ', ;СИНХРОНИЗАЦИЯ ADCONO ZAD INTCON,7 ADCON0,2 ADCONO, 2 $-1 ADRESH . О. ;ГЕНЕРАТОРА, RC 1, ОТ ВХОД ВКЛЮЧЕНИЕ АЦП (УВХ). ;ПАУЗА. ;ЗАПРЕТ ПРЕРЫВАНИЯ. ;ВКЛЮЧИМ ПРЕОБРАЗОВАНИЕ. ;ОЖИДАЕМ ЗАВЕРШЕНИЯ ;ПРЕОБРАЗОВАНИЯ. ;ПЕРЕПИШЕМ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ ТЕКН ;В СТАРШИЙ ТЕКУЩИЙ РЕГИСТР. STATUS,5 21 FSf ADRESL INDF STATUS,5 INTCON,7 FLAGl, ,О ;ПЕРЕХОДИМ В 1. БАНК ;ПО КОСВЕННОЙ АДРЕСАЦИИ ;ЗАПИСЬ ;В МЛ. РЕГИСТРА АЦП TEKL. РЕГИСТР . ; ПЕРЕХОДИМ.~ ;РАЗРЕШАЕМ ;ЕСЛИ БАНК О'. ПРЕРЫВАНИЯ. ЗАЩИТА ВЫКЛЮЧЕНА, СОМРА ;СРАВНИМ С УСТАНОВКОЙ. FLAG,7 ;ЕСЛИ сек 0,5 НЕ ;ТО НАПРЯЖЕНИЕ ТО СРА~НЕНИЯ НЕТ. ПРОШЛО, НЕ ИНДИЦИРУЕТСЯ. BINDEC ;ПЕРЕКОДИРУЕМ В FLAG,5 ;ИЗМЕРЕНИЯ НАПРЯЖЕНИЯ.НЕТ, 2_10 КОД. ADPU BTFSS RETURN BSF ;ИДЕТ STATUS,5 ЕСЛИ УСТАНОВКА. ;ПЕРЕХОДИМ В БАНК 1. ВКЛЮЧАЕМ ВХОД ;НАПРЯЖЕНИЯ. MOVLW MOVWF BCF MOVLW MOVWF CALL BCF BSF BTE'SC GOTO MOVFW MOVWF BSF MOVLW MOVWF MOVFW MOVWF В'10000100' ;ПРАВОЕ ADCONlл80H ;0,1 STATUS,5 в 1 11000001' ADCONO ZAD INTCON,7 ADCON0,2 ADCON0,2 $-1 ADRESH ;БАНК ТЕКН ;В СТАРШИЙ' ТЕКУЩИЙ РЕГИСТР. ,STATUS,5 21 FSR ADRESL INDF ВЫРАВНИВАНИЕ. ВХОДЫ ПОРТА "А" \АНАЛОГОВЫЕ. О. ;СИНХРОНИЗАЦИЯ ;ГЕНЕРАТОРА, ОТ ВХОД RC О, ВКЛЮЧЕНИЕ АЦП (УВХ). ;ПАУЗА. ;ЗАПРЕТ ПРЕРЫВАНИЯ. ;ВКЛЮЧИМ ПРЕОБРАЗОВАНИЕ. ;ОЖИДАЕМ ЗАВЕРШЕНИЯ ; ПРЕОБРАЗОВlЩИЯ. ;ПЕРЕПИШЕМ ;ПЕРЕХОДИМ РЕЗУЛЬТАТ В БАНК ПРЕОБРАЗОВАНИЯ 1. ;ПО КОСВЕННОЙ. АДРЕСАЦИИ ;ЗАПУfСЬ МЛ. ;В РЕГИСТР РЕГИС~РА АЦП TEKL. 27
Усrройства с использованием АЦП BCF BSF BTFSS CALL BTFSS RETURN GOTO STATUS,5 INTCON,7 FLAGl,1 COMPU FLAG,6 BINDEC ;ПЕРЕКОДИРУЕМ В MOVLW ADDLW BTFSS GOTO RETURN .5 -1 S.TATUS, 2 $-2 ;ЗАДЕРЖКА ;ПЕРЕХОДИМ В ;РАЗРЕШАЕМ ПРЕРЫВАНИЯ. ;ЕСЛИ БАНК ЗАЩИТА О. ВЫКЛЮЧЕНА, ТО СРАВНЕНИЯ НЕТ. ;СРАВНИМ С УСТАНОВКОЙ. ;ЕСЛИ ;ТО сек 0,5 НЕ НАПРЯЖЕНИЕ ПРОШЛО, НЕ ИНДИЦИРУЕТСЯ. 2_10 КОД. ZAD ;ДЛЯ 20 ЗАРЯДА мкс КОНДЕНСАТОРА УВХ. ;ПОВТОРИМ. ;=========================== ; 7. СРАВНЕНИЕ С УСТАНОВКОЙ. ;=====;===================== СОМРА MOVFW SUBWF BTFSS GOTO BCF MOVFW SUBWF BTFSC GOTO RETURN УСТН ;УСТАНОВКА МИНУС ТЕКН,0 ;ИЗМЕРЕНИЕ, STATUS,2 VUKL STATUS,0 YCTL TEKL,O STATUS,0 VUKL ;ЕСЛИ ;ТО РАВЕНСТВО, ВЫХОД НЕ ;УСТАНОВКА ВЫКЛЮЧАЕТСЯ. МИНУС ;ИЗМЕРЕНИЕ, ;ЕСЛИ ;ТО РАВЕНСТВО, ВЫХОД ВЫКЛЮЧАЕТСЯ. VUKL BTFSC RETURN BTFSS BSF BTFSS RETURN BCF BSF RETURN FLAG,2 ;ЕСЛИ ВЫХОД УЖЕ ВЫКЛЮЧЕН, ;СРАВНЕНИЙ НЕТ. STATUS,0 PORTA,2 STATUS,0 ;ЕСЛИ БИТ ;ВКЛЮЧИМ ;ЕСЛИ ПЕРЕНОСА О, ВЫХОД. БИТ ПЕРЕНОСА PORTA,2 FLAG,2 ;ВЫКЛЮЧИМ YCTHU ;УСТАНОВКА МИНУС ТЕКН,0 ;ИЗМЕРЕНИЕ, STATUS,2 VUKL STATUS,0 YCTLU TEKL,0 STATUS,0 VUKL ;'ЕСЛИ 1, ВЫХОД. ;СРАВНЕНИЙ НЕТ. COMPU MOVFW SUBWF BTFSS GOTO BCF MOVFW SUBWF BTFSC GOTO RETURN ;ТО РАВЕНСТВО, ВЫХОД НЕ ;УСТАНОВКА ВЫКЛЮЧАЕТСЯ. МИНУС ;ИЗМЕРЕНИЕ, ;ЕСЛИ ;ТО РАВЕНСТВО, ВЫХОД ВЫКЛЮЧАЕТСЯ. ;========~===============================================~====== ; 8. ПЕРЕКОДИРОВКА ИЗ 16-РАЗРЯДНОГО 2-ГО В 5-РАЗРЯДНОЕ 2-10-Е. ; АЛГОРИТМ ПЕРЕКОДИРОВКИ ОСНОВЫВАЕТСЯ НА ПРИБАВЛЕНИИ 3 В МЛАДШИЙ И СТАРШИЙ ПОЛУБАЙТЫ. ЕСЛИ РЕЗУЛЬТАТ С ПЕРЕНОСОМ 1 В 3 РАЗРЯД (10=7+3), '; ТО ЗАПИСЫВАЕМ НОВОЕ ЗНАЧЕНИЕ ~ РЕГИСТР. ; ВЫПОЛНЯЕМ 16 РАЗ, СДВИГАЯ БИТЫ РЕГИСТРОВ. ;======~======================================================== 28
Цифровой прУ!бор для блока питания с установкой защиты BINDEC MOVLW MOVWF .16 ;ЗАПИШЕМ ЧИСЛО СДВИГОВ cou ;В BCF RLF RLF. RLF RLF DECFSZ GOTO BTFSC STATUS,0 TEKL,l ТЕКН, 1 EDA, 1 DEA, 1 COU,l RASDEC FLAG,0 СЧЕТЧИК. BIDE ;ОБНУЛИМ БИТ ;СДВИНЕМ ПЕРЕКОДИРУЕ~ОЕ ; число', "С". ПЕРЕМЕЩАЯ ЕГО СТАРШИЙ БИТ ;В МЛАдШИЙ БИТ РЕГИСТРОВ ;РЕЗУЛЬТАТА. ;ЗАФИКСИРУЕМ СДВИГ В СЧЕТЧИКЕ. ;ПРОВЕРИМ ПОЛУБАЙТЫ НА СЕМЕРКУ. ;ЕСЛИ СЧЕТЧИК ПУСТ,ЗАПОЛНИМ ;РЕГИСТРЫ ИНДИКАЦИИ GOTO GOTO RASDEC MOVLW MOVWF CALL MOVLW MOVWF CALL GOTO BCD MOVLW ADDWF MOVWF BTFSC MOVWF MOVLW ADDWF MESTOU MESTOI ;НАПРЯЖЕНИЯ ИЛИ ;ТОКА. EDA FSR BCD DEA FSR BCD BIDE ;ЗАПИШЕМ АДРЕС РЕГИСТРА ;В РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. ;ПРОВЕРИМ ЗНАЧЕНИЕ ; АНАЛОГИЧНЫЕ ;С ДРУГИМИ РЕГИСТРА НА ОПЕРАЦИИ 7. ПРОДЕЛА.ЕМ РЕГИСТР;АМИ. ;ПОЙДЕМ ПОВТОРЯТЬ СДВИГ. 3 ; 0000 0011 О, О ;ПРИБАВИМ ТЕМР ;ЗАПИШЕМ ВО ВР~МЕННЫЙ РЕГИСТР. ТЕМР,З ;ПРОВЕРИМ о ;ПРОПУСКАЕМ 30 0,0 ;48=0011 0000 ;ПРИБАВИМ 3 К СТАРШЕМУ ПОЛУБАЙТУ РЕГИСТРА И 3 3 К РЕГИСТРУ И БИТ И, ЗАПИСЬ РЕЗУЛЬТАТ ЕСЛИ ОН РАВЕН РЕЗУЛЬТАТА В НУЛЮ, РЕГИСТР. ;РЕЗУЛЬТАТ MOVWF BTFSC MOVWF RETURN ТЕМР,7 ;'ЗАПИШЕМ ВО ВРЕМ~ННЫЙ Р?ГИСТР. ;ЕСЛИ БИТ ЕДИНИЧНЫЙ, о ; ТО ТЕМР ЗАПИШЕМ- НОВОЕ ;ВЕРНЕМСЯ ДЛЯ ЗНАЧЕНИЕ В· РЕГИСТР. ЗАГРУЗКИ НОВОГО ~НАЧЕНИЯ' РЕГИСТРА. ;=====================================================~====~==== ; 9. ИЗВЛЕКАЕМ ПОЛУБАЙТЫ ИЗ РЕГИСТРОВ СЧЕТА В РЕГИСТРЫ ИНДИКАЦИИ. ;=================================~===========================~= MESTOU BTFSS FLAG,6 ;ЕСЛИ 0,5 сек НЕ ПРОШЛО, RETURN ;ТО ВЕРНЕМСЯ. MOVLW В'00001111';ИЗВЛЕКАЕМ, ПОЛУБАЙТЫ ANDWF DEA,0 ;В РЕГИСТРЫ ИНДИКАЦИИ MOVWF UCOI ;НАПРЯЖЕНИЯ. MOVLW B'llllOOOO'; ANDWF EDA,O· MOVWF UDEI · SWAPF UDE!,l MOVLW В'00001111'; ANDWF EDA, О MOVWF UEDI CLRF EDA DEA CLRF CLRF СОА 29
Устройства с использованием АЦП FLAG,6 ;СБРОСИМ ФЛАГ 0,5 сек. BCF RETURN MESTOI ;ЕСЛИ 0,5 сек НЕ ПРОШЛО, BTFSS FLAG,7 ;ТО ВЕРНЕМСЯ. RETURN 1 в 1 00001111 ;ИЗВЛЕКАЕМ ПОЛУБАЙТЫ MOVLW ;В РЕГИСТРЫ ИНДИКАЦИИ DEA, О ANDWF ;ТОКА. MOVWF ICOI В'' 11110000' MOVLW EDA,O ANDWF MOVWF IDEI IDEI,l SWAPF MOVLW в 1 00001111' EDA,0 ANDWF IEDI MOVWF EDA' CLRF DEA CLRF СОА CLRF FLAG,7 ;СБРОСИМ ФЛАГ 0,5 сек. BCF RETURN ;:=============================================================== . ; 1 Or. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ . . :================================================================ PRER ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ WTEMP STATUS STEMP FSR FTEMP STATUS,6 STATUS,5 MOVWF MOVFW MOVWF MOVFW MOVWF BCF BCF INCF MOVLW SUBWF BTFSS GOTO CLRF BSF BSF REPER MOVFW MOVWF MOVFW MOVWF MOVFyv BCF · RETFIE ;FSR. СЕК,1 ;ДЕЛИТЕЛЬ .8 ;ЧИСЛО СЕК,О STATUS,2 REPER r НА РАВНО 10. ДЕСЯТЫМ ; д1:1Я ПЕРЕЗАПИСИ ; ЕСЛИ РАВНО 1 О, СЕК ;ОБНУЛИМ. FLAG,6 FLAG,7 ;ПРОШЛО 0,5 сек. ;ПРОШЛО О,~ сек. В 11. ИНДИКАЦИИ._ ;80ССТАНОВЛЕНИЕ СОХРАНЕННЫХ ЗНАЧЕНИЙ STEMP STATUS FTEMP FSR WTEMP INTCON,2 ;ВОССТАНОВЛЕНИЕ ;STATUS, РЕГИСТРОВ: 1 ; FSR, ;W. ;СБРАСЫВАЕМ ФЛАГ ;ВОЗВРАТ ПРЕРЫВАНИЯ. ИЗ ПРЕРЫВАНИЯ ИНИЦИАЛИЗАЦИЯ. ;========~============= INIT BCF STATUS,RPl BSF S'l'ATUS,RPO MOVLW В'ООООО111' \ 30 СЕКУНД. РЕГ. ;===================~;= ; WИ ;STATUS, ;ПЕРЕХОДИМ В БАНК 1. ОТ TMRO.
Цифровой прибор для блока питания с установкой защить1 MOVWF OPTION REGлsoн ;ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕРОМ, = .. . )11. К=256 ·MOVLW MOVWF CLRF CLRF MOVLW MOVWF CLRF CLRF BCF CLRF "CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF C1RF CLRF CALL MOVLW MOVWF MOVWF MOVWF MOVWF MOVLW MOVWF MOVLW MOVWF CLRF CLRF CLRF GOTO В'10100000' ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ qт TMRO. INTCON. РIЕ1л80Н ;ЗАПРЕЩЕНЫ ВСЕ ПЕРИФЕРИЙНЫЕ ПРЕРЫВАНИЯ. РIЕ2л80Н В'00111011' АН.АЛОГОВЫЕ вхолЬr. ; RAO' RAl - тюs~лsон тюsвлвон ;ВСЕ тюsслвон ;ВЫХОДЫ УПРАВЛЕНИЯ STATUS,RPO PORTI? TlCON T2CON FLAG UE_DI UDEI ;ПЕРЕХОДИМ В - ВЫХОДЫ СЕГМЕНТОЬ Б~НК АНОДАМИ. О. ;ТАЙМЕР 1 ОТКЛЮЧЕН. ; ТАЙМЕР 2 ОТКЛЮЧЕН.· ;BCF ~~~УЛЯЕМ И УСТАНАВЛИВАЕМ. Jucor IEDI IDEI ·ICOI FLAGl АКТ ;ВЫБОРКА ИЗ ПАМЯТИ УСТАНОВОК. .12 TUI TUU ZYTI ZYTU . 11 ZTI .10 ZTU ;БУКВА У ; в· РЕГИСТРЫ ИНДИКАЦИИ ТОКА И ;НАПРЯЖЕНИЯ, ;УСТАНОВКИ ;И ТОКА НАПРЯЖЕНИЯ. ;БУКВА ВНИЗУ . ;БУКВА ВНИ~У. СЕК ZPT ZPTU IND ; НА ИНд:итпщию. ; 12. УСТАНОВКА ЗНАЧЕНИЙ РАЗРЯДОВ. ;======~========================= УСТО УСТАНАВЛИВАЕТСЯ ДО INCF MOVLW SUBWF BTFSC CLRF BSF CLRF BCF MOVLW MOVWF CALL GOTO EDY,1 .10 EDY,O STATUS,O EDY STATUS,6 EEADR STATUS, 6 EDY ;РАЗРЯД ТЕМР ;ВО ВРЕМЕННЫЙ РЕГИСТР. ZAPIS PERE ;СОХРАНИМ УСТАНОВКУ.' INCF MOVLW DEY, 1 . 10 ;РАЗРЯД ;ЕСЛИ 9. РАВНО, ;ОБНУЛИМ. ;БАНК 2. ;НУЛЕВОЙ АДРЕС. ;БАНК О. ;АДРЕС ПЕРВОЙ ЗАПИСИ ;НА в EEDATA. ПЕРЕКОДИРОВКУ. YCTl УСТАНАВЛИВАЕТСЯ . до 9. 31
Устройства с исnользованием IЩП SUBWF BTFSC CLRF BSF MOVLW MOVWF BCF MOVLW MOVWF CALL GOTO DEY,0 STATUS,O; DEY STATUS,6 .1 EEADR STATUS,6 DEY ·INCF MOVLW SUBWF BTFSC CLRF BSF MOVLW MOVWF BCF MOVLW MOVWF CALL GOTO ;ОБНУЛИМ. 2. ;БАНК ;НУЛЕВОЙ АДРЕС. 0. ;БАНК ;АДРЕС QЕРВОЙ ЗАПИСИ ;ВО ВРЕМЕННЫЙ РЕГИСТР. ZAPIS PERE ;СОХРАНИМ СОУ,1 ;РАЗРЯД ;НА E;EDATA. в ТЕМР УСТАНОВКУ. ПЕРЕКОДИРОВКУ. УСТ2 УСТ)\НАВЛИВАЕТСЯ до '9. .10 ·СОУ,О STATUS,0; СОУ ;ОБНУЛИМ. STATUS,6 2 EEADR STATUS,6 ;БАНК СОУ ;АДРЕС ТЕМР ;ВО ВРЕМЕННЫЙ РЕГИСТР. ZAPIS PERE ;СОХРАНИМ УСТАНОВКУ. FLAGl,O ;ЕСЛИ .$+7 ;ПОЙДЕМ ВКЛЮЧАТЬ 2. ;АДРЕС. 0. ;БАНК ЗАПИСИ В EEDATA. ;НА ПЕРЕКОДИРОВКУ. УСТЗ BTFSC GQTO BSF MOVLW MOVWF MOVLW MOVWF GOTO BCF MOVLW MOVWF MOVLW MOVWF GOTO fLAGl, .13 ZTI .15 _О ЗАЩИТА БЫЛА ;ИНАЧЕ выключим ;БУКВА СВЕРХУ. ;У - ВЫКЛЮЧЕНА, . ЗАЩИТУ. ВЫКЛЮЧЕНА. zyтr YCI FLAGl,O ;ПЕРЕЗАПИСЬ ~ ;БУКВА ВНИЗУ. 11 ZTI .12 ZYTI YCI ;ВКЛЮЧИМ ;У - В РЕГИСТРЫ ИНДИКАЦИИ. ЗАЩИТУ. ВКЛЮЧЕНА. - ;ПЕРЕЗАПИСЬ В РЕГИСТРЫ ИНДИКАЦИИ. УСТ4 INCF MOVLW SUBWF BTFSC CLRF BSF MOVLW MOVWF BCF MOVLW MOVWF CALL GOTO 32 EDYU, 1 .10 EDYU,0 STATUS,O; EDYU STATUS,6 5 EEADR STATUS,6 EDYU ;РАЗРЯД ТЕМР ;ВО ВРЕМЕННЫЙ РЕГИСТР. ZAPIS PEREU ;НА ПЕРЕКОДИРОВКУ. УСТА~АВЛИВАЕТСЯ ДО ;ОБНУЛИМ. ;БАНК 2. ;АДРЕС. ;БАНК ;АДРЕС О. ЗАПИСИ В EEDATA. ;СОХРАНИМ УСТАНОВКУ. 9. '
Цифровой прибор для блока литания с установкой защиты \'СТ5 INCF MOVLW SUBWF BTFSC CLRF BSF MOVLW MOVWF BCF MOVLW. MOVWF· CALL GOTO DEYUгl ;РАЗРЯД .10 DEYU,O STATU$,O DEYU STATpS,6 '6 EEADR STATUS,6 DEYU . 5. ;АДРЕС. ;БАНК О. ЗАПИСИ В ;АДРЕС EEDATA. ZAPIS PEREU ;СОХРАНИМ BTFSC GOTO до 2. ;,БАНК ;ВО ВРЕМЕННЫЙ РЕГИСТР. COYU,l .5 COYU,0 STATUS,O COYU 9. ;ОБНУЛИМ. ТЕМР INCF .MOVLW SUBWF BTFSC CLRF BSF MOVLW MOVWF BCF MOVLW MOVWF CALL GOTO ДО ; ;НА УСТ6 ~ УСТАНАВЛИВАЕТСЯ УСТАНОВКУ. ПЕРЕКОДИРОВКУ. ,·;РАЗРЯД УСТАНАВЛИВАЕТСЯ ;ОБНУЛИМ. SТ:ATUS,6 2. ;БАНК 7 EEADR STATUS,6 COYU ;АДРЕС. ;БАНК О. ;АДРЕС В ЗАПИСИ EEDATA. ТЕМР ;ВО ВРЕМЕННЫЙ ZAPIS PEREU ;СОХРАНИМ УСТАНОВКУ. ;ЕСЛИ MOVLW MOVWF MOVLW' MOVWF GOTO BCF MOVLW MOVWF MOVLW MOVWF FLAGl,1 $+7 FLAGl,1 .14 ZTU .15 ZYTU YCI FLAGl,1 .10 ZTU .12, ZYTU MOVFW MOVWF MOVFW MOVWF ZYTI TUI ZYTU TUU РЕГИСТР. ;НА ПЕРЕКОДИРОВКУ. УСТ7 1 ·вsF ЗАЩИТА БЫЛА ВЫКЛЮЧЕНА, ;ПОЙДЕМ ВКЛЮЧАТЬ. ;ИНАЧЕ ВЫ:кiIЮЧИМ ЗАЩИТУ. ;БУКВА СВЕРХУ. ;У - ВЫКЛЮЧЕНА.· ;В РЕГИСТРЫ ИНДИКАЦИИ. ; вклiочим ;БУКВА ;У. - ЗАЩИТУ. ВНИЗУ. ВКЛЮЧЕНА. YCI ;ИНДИКАЦИЯ БУКВЫ ;У ПРИ ИНДИКАЦИИ ;И НАПРЯЖЕНИЯ. ТОКА RETUR~ ;==~====================================:================ ; 13. ПЕРЕВОД 3 РАЗРЯДОВ 2_10 В 16 РАЗРЯДОВ ДВОИЧНОГО. ~=============~===============~========================== PERE CLRF CLRF MOVFW УСТН ;ОЧИСТИМ YCTL DEY ДВОИЧНЫЕ РЕГИСТРЫ. ;ПЕРЕКОДИРУЕМ ДЕСЯТКИ. 33
Устройства с использованием АЦП у CALL ADDWF MOVFW ADDWF TSTF BZ MOVFW MOVWF MOVLW ADDWF BTFSC INCF DECFs'z GOTO BSF MOVLW MOVWF BCF MOVLW MOVWF CALL BSF MOVLW MOVWF BCF MOVLW MOVWF CALL EDUNI ·YCTL, 1 EDY YCTL,1 MOVFW MOVWF MOVFW MOVWF MOVFW MOVWFRETURN ;ПРИБАВИМ ЕДИНИЦЫ. СОУ ;ЕСЛИ $+9 ;ТО СОУ ;ИНАЧЕ ТЕМР ; В МЛАДШИЙ РЕГИСТР, .100 YCTL,l STATUS,O СОТНИ НУЛЮ, НЕТ. ПРИБАВЛЯЕМ ;ЧИСЛО . РАВНЫ ПЕРЕКОДИРОВКИ СОТЕН, ;РАВНЫХ ЧИСЛУ В РЕГИСТРЕ СОТЕН. ;ЕСЛИ ПЕРЕПОЛНЕНИЕ, УСТН,1 ;ТО ИНКРЕМЕНТИРУЕМ СТАРШИЙ РЕГИСТР. ТЕМР,1 ;ЕСЛИ $-5 STATUS,6 ;ПОВТОРИМ. ;БАНК ЕЩЕ НЕ НОЛЬ, 2. 3 ,. I ; ПРИБАВИМ В МЛАДШИЙ РЕГИСТР·. EEADR STATUS,6 YCTL ;АДFЕС ТЕМР ;ВО ВРЕМЕННЫЙ РЕГИСТР. ZAPIS STATUS,6 4 EEADR STATUS,6 ;ЗАПИШЕМ В УСТН ;АДРЕС ТЕМР ;ВО ВРЕМЕННЫЙ РЕГИСТР. ZAPIS ;ЗАПИШЕМ EDY IEDI ;ПЕРЕПИШЕМ ;БАНК ;АДРЕС ;БАНК ;АДРЕС ;БАНК ;В ЗАПИСИ МЛ. РЕГИСТРА. О. ЗАПИСИ В EEDATA. ПАМЯТЬ. 2. ЗАПИСИ.СТ. РЕГИСТРА. О. ЗАПИСИ В В EEDATA. ПАМЯТЬ. УСТАНОВКУ ТОКА РЕГИСТРЫ ~НДИКАЦИИ. DБУ IDEI сщ .rcor PEREU CLRF CLRF MOVFW CALL · ADDWF MOVFW ADDWF TSTF BZ MOVFW MOVWF MOVLW ADDWF BTFSC INCF DECFSZ GOTO BSF 34 YCTHU YCTLU DEYU EDUNI YCTLU,1 EDYU YCTLU,1 COYU $+9 COYU ;ПЕРЕКОДИРОВКА ТЕМР. 1 .100 YCTLU ,"1 .STATUS,O YCTHU,1 'l'EMP, 1 $-5 STATUS,6 НАПРЯЖЕНИЯ .. ; АНАЛОГИЧНА ; ПЕРЕКОДИРОВКЕ ТОКА .. ;БАНК 2.
ЦИфровой прибор для блока питания с установк~й защиты у u MOVLW MOVWF BCF MOVLW MOVWF CALL BSF t-10VLW MOVWF BCF MOVLW MOVWF CALL MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF RETURN 8 EEADR STATUS,6 YCTLU ;АДРЕС ;БАНК ЗАПИСИ. ({. ;АдРЕС ЗАПИСИ. В EEDATA. ТЕМР. ;ВО ВРЕМЕННЫЙ РЕРИСТР. ZAPIS ;ЗАПИШЕМ В STATU~,6 ;БАНК 9 EEADR ;АДРЕС. STA'ТUS, 6 ;БАНК ПАМЯТЬ. 2. О. YCTHU ;АдРЕ~ ТЕМР ;ВО ВРЕМЕННЫЙ РЕГИСТР. ZAPIS ;ЗАПИШЕМ EDYU· ;ПЕРЕПИШЕМ UЕШ ;В ЗАПИСИ В В EEDATA. ПАМЯТЬ. УСТАНОВКУ НАПРЯЖЕНИЯ РЕГИСТРЫ ИНДИКАЦИИ. DEYU UDEI COYU UCOI ;:~===========r==================== ; 14. ВЫБОРКА ИЗ ПАМЯТИ. ;================~==========:====== АКТ BCF BSF CLRF BCF CALL MOVWF CALL MOVWF CALL MOVWF CALL MOVWF CAL!.i MOVWF CALL MOVWF CALL MOVWF CALL MOVWF CALL MOVWF CALL MOVWF BSF CALL GOTO · INTCON,7 ;ЗАПРЕТ ПРЕРЫВАНИЙ: STATUS,·б ;БАНК EEADR STATUS,6 ;НУЛЕВОЙ АДРЕС. АКТЕ ТЕ ;ВЫБОРКА ИЗ EDY: ;ЗАПИСЬ АКТЕ ТЕ ;ВЫБОРКА DEY ;ЗАПИСЬ АКТЕ ТЕ ;ВЫБОРКА ИЗ СОУ ;ЗАТТИСЬ В РЕГИСТР. АКТЕ ТЕ ;ВЫБОРКА ИЗ YCTL ;ЗАПИСЬ ;БАНК 2. О. В ИЗ В В ;ВЫБОРКА ИЗ ;ЗАПИСЬ АКТЕ ТЕ ;ВЫБОРКА ИЗ EDYU ;ЗАПИСЬ В ПАМЯТИ. ПАМЯТИ. РЕГИСТР. В ПАМЯТИ. РЕГИСТР. ИЗ DEYU ;ЗАПИ~Ь АКТЕ ТЕ ;ВЫБОРКА ИЗ COYU ;ЗАПИСЬ В В ;ВЫБОРКА ИЗ ;ЗАПИСЬ АКТЕ ТЕ ;ВЫБОРКА ИЗ YCTHU INTCON,7 у I ;ЗАПИСЬ В ПАМЯТИ. РЕГИСТР. АКТЕ ТЕ В ПАМЯТИ. РЕГИСТР. YCTLU у ПАМЯТИ. РЕГИСТР. АКТЕ ТЕ ;ВЫБОРКА ПАМЯТИ. РЕГИСТР. 'УСТН 'АКТЕТЕ ПАМЯТИ. РЕГИСТР. ПАМЯТИ. РЕГИСТР. ПАМЯТИ. РЕГИСТР. ;РАЗРЕШАЕМ ПРЕРЫВАНИЯ. ;НА ЗАПИСЬ В РЕГИСТРЫ ИНДИКАЦИИ. u АКТЕ ТЕ BSF BSF STATUS,.6 STATUS,5 ;БАНК 3. 35
Устройства с использованием АЦП EECONl, 7 EECONl, RD EECONl,RD $-1 STATUS,5 .255 EEDATA,0 STATUS,2 EEDATA EEADR,l EEDATA STATUS,6 BCF BSF BTFSC GOTO BCF MOVLW SUBWF BTFSC CLRF INCF MOVFW BCF RETURN ;ВЫБОР ПАМЯТИ ;ЧТЕНИЕ. ;ЖДЕМ ДАННЫХ. , ОКОНЧАНИЯ ;ЧТЕНИЯ. ;БАНК 2. ;ЕСЛИ ПАМЯТЬ В АДРЕС. ;ПЕРЕПИШЕМ ;БАНК ЗАПОЛНЕНА, -0. ;ЗАПИШЕМ ;+1 НЕ ДАННЫЕ. О. ;====================== ; 15. ЗАПИСЬ В ПАМЯТЬ. ;====================== ZAPIS MOVFW MOVWF MOVFW вs~ MOVWF BCF BSF BCF BSF MOVLW MOVWF MOVLW MOVWF BSF BTFSC GOTO BCF BCF BCF BSF RETURN ТЕМР FSR INDF STATUS,6 EEDATA INTCON,7 STATUS,5 EECONl,7 EECONl,WREN ;ПО КОСВЕННОЙ АДРЕСАЦИИ ;ЗАГРУЖАЕМ ЗНАЧЕНИЕ ;РЕГИСТРА. ;БАНК 2. ;ЗАПИСЫВАЕМ. ;ЗАПРЕТ ЦРЕРЫВАНИЙ. ;БAfjK 3. ;ВЫБИРАЕМ ПАМЯТЬ ;РАЗРЕШЕНИЕ 55Н ;ОБЯЗАТЕЛЬНАЯ EECON2 ; ОААН ;/ ;/ EECON2 EECONl,WR EECONl,WR $-1 EECONl,WREN STATUS,5 STATUS,6 INTCON,7 д~нных. ЗАПИСИ. ПОСЛЕДОВАТЕЛЬНОСТЬ / ;РАЗР~ШАЕМ ЗАПИСЬ ;ПОКА НЕ БУДЕТ ;ХОДИМ ПО ;ЗАПРЕТ ;БАНК ВО ФЛЕШ ПЗУ. ЗАКОНЧЕНА ЗАПИСЬ КРУГУ. ЗАПИСУ,1.2 2_. ;БАНК. О. ;РАЗРЕШАЕМ ПРЕРЫВАНИЯ. ;===~==========~==========~================ ; 16. ПРОВЕРКА КНОПОК. ;====================;======================= кно BSF MOVLW MOVWF / BCF BTFSC GOTO BTFSS BSF STATUS,5 10000111' в' ;ПЕРЕХОДИМ в БАНК 1. ВКЛЮЧАЕМ входы. ;ВСЕ входЫ ЦИФРОВЫЕ. ADCONlл80H STATUS,5 FLAG,3 ;Б~НК О. ·;ЕСЛИ ФЛАГ УGТАНОВЛЕН, УСТ ;ТО ИДЕМ НА УСТАНОВКУ. PORTA,4 FLAG,3 ;ЕСЛИ КНОПКА НАЖАТА, FLAG,4 ZAPT PORTA,5 ·;ЕСЛИ ФЛАГ УСТАН6ВЛЕН, ;ТО УСТАНОВИМ ФЛАГ.· PAZ BTFSC GOTO BTFSS 36 ;ТО ИДЕМ НА ВЫБОР РАЗР~ДА. ;ЕСЛИ КНОПКА НАЖАТА,
Автомат защиты от ne{Jenaдoв сетевого напряжения FLAG,4 BSF RETURN ;ТО УСТАНОВИМ ФЛАГ. ;========:==========~==:~======= ; 17. УСТАНОВКА РАЗРЯДА ЗАПЯТОЙ. ;=============================== ZAPT ;ВО ВРЕМЯ BTFSC RETURN BTFSS RETURN BCF INCF MOVLW SUBWF BTFSC GOTO BCF MOVFW MOVWF MOVFW MOVWF RETURN FLAG;5 BSF BSF BCF MOVLW MOVWF MOVLW MOVWF MOVFW MOVWF MOVFW MOVWF RETURN FLAG,5 PORTA,2 FLAG,2 .2 ZPT 5 ZPTU ZTI TUI ZTU ;РАБОТА. тuu ;ПРИ ;НЕ PORTA,5 КНОПКА ~ЕСЛИ КНОПКА НАЖАТА, ;, ТО РАБ . ВЕ~НЕМСЯ. ;СБРОСИМ ФЛАГ УСТАНОВКИ. FLAG,4 ZPT,1' .8 ZPT,0 ST,ATUS,2; FLAG,5 ZYTI РАБОТЫ РЕ~ГИРУЕТ НА НАЖАТИЕ. ;ЕСЛИ РАВНО, ТО УСТАНОВИМ ; ЗАПЯТУЮ ЗА ИНДИКАТОРОМ.' ;НА ИНДИКАЦИЮ БУКВ И " ЗАПЯТЫХ В РАБОТЕ. ;УСТАНО~КА. ;ИНДИКАЦИЯ тur ;У ZYTU TUU ·; индикАция БУКВЫ ПРИ УСТАНОВКЕ ТОКА. · БУКВЫ ;У ПРИ УСТАНОВКЕ НАПРЯЖЕНИЯ. РАВ ;ВКЛ~ЧИМ НАГРУЗКУ. ;ВЫКЛЮЧИМ ФЛАГ ОТКЛЮЧЕНИЯ НАГРУЗКИ. ;ИНДИКАЦИЯ ЗАПЯТОЙ ВО ;2 РАЗРЯДЕ ДЛЯ ; в· 5 ~АЗРЯДЕ ; д.JIЯ НАПРЯЖЕНИЯ ;ИНДИКАЦИЯ ТОКА И . БУКВЫ ;ПРИ ИЗМЕРЕНИИ i ТОКА. ;ИНДИКАЦИЯ БУКВЫ u ИЗМЕРЕНИИ 1 НАПРЯЖЕНИЯ. ;=:===============~===========~============= END 1 ;===*===========================~=-=====~=== Автомат защиты. от перепадов · сетевого напряжения Предлагаемый автомат защитЬ1 от перепадов сетевого напряжения выклю­ чает нагрузку при помощ_и реле, если напряжение в сети будет вьрюдить за пределы установленного значения, и включает ее после пропадания аварий­ ной ситуации. Диапазон устанавливаем:Ь1х значений по минимуму · 100 ... 219 В, по максимуму - 222 ... 255 В. Погрешность срабатывания защиты l В и зависит от стабильности напряжения питания ми~роконтроллера. _Авто­ мат можно устанавливать как для защиты одного прибора, так и· для Защиты квартиры, подъезда или всего дома. · J7
Устройства с использованием АЦП Автор получает много писем с просьбой разработать прибор для защиты бытовой техники от перепадов сетевого напряжения. Да и сам автор постра­ дал однажды от повыше1;1ного напряжения в сети. Сгорело все, что работает в дежурном режиме, кроме вИдеомагнитофона фирмы Sony. Это не в качестве рекламы, а в порядке констатации факта. Кроме того, есть приборы, напри­ мер микроволновая печь, которые имеют ограничение по максимальному на­ пряжению (обычно сети от 20'0 до 240 230 В). Если учесть, что суточное изменение напряжения В является обычным, то становится понятна. необходимость прибора для защиты бытовой техники от перепадов сетевого напряЖения. Актуальность данной темы можно также проследить по большому числу публикаций [8-16]. Но у каждой разработки имеются свои недостатки, поэ­ 1 тому рано закрывать эту тему. Предлагаемый автором вариант защиты основан на прямом измерении амплитудного значения сетевого напряжения в течение положите.тiьного полу­ периода с вьшодом измеренного значения на индикатор. Основой автомата является микроконтроллер PI С l 6F87 3, имеющий встроенный десятиразряд­ ный АUП. Использование микроконтроллера и ·индикатора позволило сделать автомат с установкой порогов срабатывания по минимальному и максималь­ ному напряжению в широких пределах. Потребляемый прибором ток (без учета тока через обмотку реле) с вклю­ ченной индикацией - 30 мА, с выключенной индикацией - 6 мА. Автом'ат управляется тремя кнопками. Кнопкой «Разряд» выбирают разряд установки. Индикация выбр·анного разряда осуществляется перемещением за­ пятой по индикатору. Кнопкой «Установка» увеличивают значение цифровых разрядов (0-2) на единицу, а в разряде режима индикации обходимый режим. Кнопка чения индИкации. «I(lндикация» ·необходима (3) выбирают не­ для включения- вЬ1клю­ В работе программы микроконтроллера используются три nрерывани~. Прерывания по переполнению таймера О необходимы для отсчета интервалов времени 5 мс. Это время, равное четверти периода частоты сетевого напряже­ ния, необходимо для привязки включения модуля АЦП на вершине синусои­ ды. Прерывание по изменению сигнала на входе RBO синхронизирует генера­ тор 5 вают мс с частотой· сети. Прерывания по переполнению ~таймера интервалы времени ПС?Вторного включения автомата для. 1 отрабаты­ изм(iрения напряжения в режиме ожидания. Если сетевое напря~ение превышает установленное значение, то автомат выключает реле, индикацию и переходит в режим ожидания. Повторное изме­ рение напряжения будет выполнено через 2 мин. Если величина напряжения не· пришла, в норму, то следующее измерение будет череЗ 1О мин. Последний интервал времени можно устанавливать программно до 8,5 ч. Алгоритм .работы программы автомата защиты от перепадов сетевого на­ пряжения показан на рис. 13-16. После пуска и инициализации микроконтроллера (рис. 13) включается счетчик прерываний, построенный на последовательном включении предва­ рительного делителя с К= 4 и таймера TMRO с К= 256. При использовании кварuевого резонатора на частоту 4,096 МГц прерывания rю переполнению таймера будут происходить через 1 мс. После прерывания инкрементируются счетчики 5 мс; 0,5 с; 1 с. После переполнения счетчиков устанавливаются. 38'
Автомат защиты от перепадов сетевого напряжения ПУСК ИНИЦИАЛИ3АЦИЯ ВЫБОРКА ИЗ IlдJvfЯTИ - - - - ВКЛ ПРF.ДЦЕJПfГЕЛ:Я К=4, Tl\1RO К=256 ВКJIЮЧЕНИЕ ФЛАГОВ 5 мс, 0.5 с, l с ПОРАЗРЯДНАЯ ИНДИКАЦИЯ. ' ИЗМЕРЕНИЕ НАПР. ПРОВЕРКА ЮЮПОК t----:..i .ВКЛЮЧЕНИЕ П.ЛRI ЗАПРЕТ ПР ПО R'<ОДУ ПРОВЕРКА кнопок Рис. 13. Алгоритм работы программы автомата эащиты от перепадов сетевого напряжения флаги 5 _мс; 0,5 с-; 1 с. Отметки времени 5 мс используются для индикации од­ ного разряда, а 0,5 и 1 с для смены индикации в _режиме измерения. далее процессор про.Изводит выборку из ш\мяти ранее установленных ми­ нимального и максимального значений. Если индикация разрешена, то вы- 1()
Устройства с_ использованием АЦП бранные из памяти значения максимальной установки выводятся на индика­ uию. После вывода на индикацию каждого разряда ожидается установка флага 5 мс. После индикации ,третьего разряда выполняется проверка состояния кнопок~ Во время ожидания прерывания постоянно проверяются флаги ошиб­ ки и выклюЧения uндикаuии. Если они включены.' то Программа переходит к выключению индикаuии. Выключается Индикация и проверяется флаг индикации. Если флаг вклю­ чен, то программа возвращ~ется к индикаuии, JiO таJ<ая ситуаuия возможна только после того, как будет нажата кнопка «Индикаuия». Далее проверяется ·состояние флага ошибки. Если флаг выключе·н, но установле1:1 флаг включе- - ния АUП, то· производится измерение напряжуния и проверяются кнопки. Uикл повторяется с проверки флага включения индикаuии. Выход из этой: подпрограммы возможен или на индикаuию по состоянию флага индикаuии, или и.а включение таймера 1. Этот таймер отрабаты~ает временной интервал, через который будет выполнено измерение входного напряжения при уста­ новленном флаrе ошибки. При этом запрещаются прерывания по входу RBO. Рассмотрим подробнее алгоритм работы подпрщ·раммI:Jr измерения напря­ жения, приведенный на рис: - контроллере 14. Аналого-uифровое преобразов-ание в микро- выполняется методом последовательного приближения. На время преобразования велцяина входного напряжения запоминается на конденсато- - ре устройства выборки-хранения (УВХ). Поэтому после· включения выбранного входа необходима задержка для полного заряда конденсатора. " После выполнения задержки включается АЦП-преобразование. Младший разряд nреобразования отбрасывается как недостоверный из-за возможного «дрож~ниЯ» амплитуды измер5Jемого напряжения. Двоичное значение млад­ шего восьмиразрядного регистра преобразования проверяется на превышение максимального· или, минимального установленного значения. В случае поло­ жительного результата сравнения выключается выход, который упрамяет реле нагрузки. Иначе подтверждается включение реле и программа возвращается ИЗ подпрогра_ммы. Если девятый разряд равен. единиuе,,то сравнен11е младших восьми разрядов не выполняется и программа выключает· реле. Для уменьшения числа ложных срабатываний автомата при воз'никнове­ нии сетевых помех выключение реле происходит по ceimи непрерывных оши­ бок. В зависимости от состояния сети это число может кщ1ебатъся в неболь­ ших пределах. Автором въlбрано число непрерывных ошибок, равное пяти, что соответствует задержJ<е выключения исполнительн·о,го реле 100 мс после возникновения первой ошибки. При заполнении счетчика ошибок вКJiючается флаг оrnибкu. . . Далее выполняется перекодировка ранее измеренного значения входного напряжения Из двоичного кода в двоич110-десятиричный, и результат переписывается в текущие регистры. ·Проверяются флаги индикации 0,5 и 1 с. Если ни один флаг не включен, то ка.Ждое измеренное значение выводится на индикаuию. В этом режиме хо­ рошо наблюдать стабильность напряжения. Однако при колебаниях напряже­ ния будет происходить мигание от одного до трех разрядов, что затруднит чте­ ние показаний индикатора. Для облегчения чтения индикатора введена воз-' можность обновления индикаuии через 40 0,5 и 1 с. Если один из флагов
Автомат защиты от перепадов сетевого напряжения ИЗМЕРЕНИЕ НАПР.Я--ЖЕНИЯ ВКЛ:ЮЧЕfШЕ RХОДА . ЗЛЦЕРЖКА ВКЛЮЧЕНИЕ АЦП ПОДСЧЕТ ЧИСЛА OI:I.IИБOK ВКЛ. ФЛАГ А ОШИБ:Кl1 IШРЕКОДИР.ОВКА РЕЛЕ ВЫКЛЮЧЕНО ЗАПИСЬ В ТЕК. РЕГ ЮЗВРАТ ООЗВРАТ ЗАПИСЬ В РЕГ ИНД Рис. 14. Аlirоритм работы программы автомата защиты от перепадов сетеваго напряжения. Измерени~ напряжения включен, то текущие измеренные значения напряжения переписЬшаются в ре­ :rистры индикации. При этом сбрасываются флаги и следующий вывод на ин­ дИ:кацию будет пос4е их включения в блоке подпрограммы установки флагов. Рассмотрим работу подпрограммы проверки кнопок·(рис. 15). 41 "
УстрQйства с использованием АЦП После первого прохождения подпрограммы выявляются нажатые кнопки и устанавливаются соответствующие флаги кнопок. Пока кнопка нажата, даль­ нейшее выполнение программы не производится. Прw последующих прохож­ дениях подпрограммы, ~ели обнаруживаются включенные флаги, программа переходит к изменению разряда или в'ыключению индикации или к установке. , Выбор разряда никаких особенностей не имеет, кроме того, что направле­ ние перемещения запятой происходит от старшего разряда к младшему. Если ПРОВЕРКА ююµок УСТАНОВКА ВКЛ. ФЛАГ УСТ .. ----~·вкл. ФЛАГ РАЗРЯДА ВКЛЮЧЕltИЕ РЕЛЕ. ВКЛ. ФЛАГ УСТ.ИНД. ИНД:икАЦiЩ СБРОС ФЛАГОВ OII.IИБIO( РАЗРЕШЕНИЕ ЮЗВРАТ ПРЕРЫВАНИЯ ~------~------+.illl!!~ ПОВХОДУ Рис. 15. Алгоритм работы программы автомата защиты от перепадов сетевого · напряжения. 42 Проверка кнопок
Автомат защиты от перепадов сетевого напряжения включен флаг установки включенюt индикации, то состояние 'флага индика­ uии изменяется на противоположное. Если щщикация была включен_а, то она выключается, и наоборот. Если при изменении флага индикации будет включен флаг ошибки, то включаются индикация и исполнительно·е реле, сбрасывается флаг ошибки и разрешаются прерьшания по изменению сигнала на входе. Это происходит ·в момент окончания времени ожидания. Алгоритм работы подпрограммы уста­ новки показан на рис. 16. УGТАНОВКА СБРОС ФЛАГА УСТ РАЗРЯД= '7 +l ВРАЗРяД УСГАНОВКА О РАЗРЯДА ПЕРЕУСТАНОВКА РЕГИСТРОВ ИНД. УСТ_J\НОВКА 1 РАЗРЯДА УСТАНОВКА 2 РАЗРЯДА +l ВРАЗРЯд· ЮЗВРАТ УСТАНОВКА 4 РАЗРЯДАJ.Ео.-t---' ОБНУЛЕНИЕ РАЗРЯДА +l ВЗ Р.ЛЗРЯД ПЕРЕКОДИРОВКА 2_JO > 2 УСТАНОВКА М<\.Х. МIN ЗАПИСЬ В ПАМЯТЬ Рис. 16. Алгоритм работы программы автомата защиты от Перепадов сетевого напряжения. Установка · 43
Устройства с использованием АЦП После сброса флага установки по положению запятой определяется уста­ намиваемый разряд. Цифровые разряды 0-2 устанавливают9я идентично, но имеют различные ограничения ио максимальному значению разряда. Нулевой и первый разряды максимально устанавливаютс'я до девяти, а второй разряд может принимать значение не более двойки. После ин:крементирования реги­ стра разряда его значение проверяется на максимум,_ и если оно превышает ·максимальное, то разряд обнуляется~ Установка· производится в регистры ин­ дикаuии, поэтому двоич!fо-десятиричное установленное значение переводит­ ся В ДВОИЧНЫЙ КОД. Далее проверяется корректность установленных значений. ··Если значение больше 25.S, то устанавливается максимальное значение. Если при установке максимального значения попытаться установить число 1оо·, то установится минимальное значение по превышению напряжения, равное 222 В. В зависи­ мости от ·того, какое значение устанавливается ~ максимальное или минима­ льное, производится перезапись значений регистров индикации в соответст­ вующие регистры установки.· Значения регистров установки в двоИ:чно-деся­ тиричном и двоичном формате записываются в энергонезависимую память. ·.Таким образом, каждое изменение регистров установки фиксируется в памя­ ти. Это необходимо для того, чтобы после возникновения аварийной ситуа­ ции при малом резервном напряже~ии питания ранее установленные значе­ ния б,ыли сохранены. После записи в память произ.водится переустановка ре­ гистров индикации новыми значениями и выход из подпрограммы. Третий разряд индикации может прмнимать два· значения 13 и 14, что со­ ответствует индикации минимального и максимального значения. После уста­ новки третьего разряда на и1щикацию выводится значение, соответствующее данной установке. Четвертый разряд фиктИвный, и его установка производится тогда, когда 1· .• защ1тая находится за пределами индикации. Фактически устанавливается ре- гистр третьего разряда. При этом возможные установки чении регистра, равном 1О 10, 11, 12. При зна­ (разряд не светится), вывод на индикацию произ­ водится с задержкой на один. период сетевого напряжения. Прй других значе­ ~-~иях регистра индикация производится через 0,5 и 1 с. Завершается установка четверто'го разряда переустановкой регистров индикации·. -. 'Схема автомата показана fia рис·. 17. Измеряемое напряжение делится де­ лителем напряжения литроном VD2. RlR9 и в случае необходимости ограничивается стаби­ Диод VDЗ уменьшает значение амплитуды напряжения отри­ цательноrо полупериода до допустимого значения. на. аналоговый вход. Диод VDl пропускает на измерительный вход микроконтроллера только положите­ льную часть поделенного сетевого напряжения. Делитель напряжения R7R8 совместно с стабилитроном VDЗ формирует прямоугольные импульсы на вхо­ де RBO. По переднему фронту этих импульсов происходит.синхронизация ра..; боты внутреннего генератора 5 мс. Симисторная о'шгопара U 1 включает реле Kl. К сети' нагрузка Rнагр может .подключаться через контакты реле Kl .1 или переключатель SAl. В режиме ожидания светодиод HLl мигает с частотой . ' . 1 Гц. Регулировку выходнеrо напряжения стабилизатора DAI выполняют резистором Rб. · - 44
Автомат защиты от перепадов сетевого напряжения • _Нагрузка ,.Q t:: ~ -------------------~---- .~ ~1 ~ ----- ________ .,._ <~ u Q __, щ ~:l;.';i ::i:: N fLfИ9l:JlJ \О N _ ~ О\ ~ .00 2::. f.З ltC ~: t---+,--------i ' ' Рис. 17. 1-----......----- Автомат защиты от перепадов сетевого напряжения Светодиод HLl - любой сriерхъяркий с малым потребляемым током. Се­ мисеrментные инди_каторы HG.l, i-IG2 можно заменить любыми.одиночным» индикаторами с общим катодом. При этом, возможно, потребуется подбор га- ~ящих резистора~ Rl 1-R18. Источник питания БПl - · простейший блок из трансформатора, одноподу­ периодного вы,прямителя на диоде жение 40 1Nl004 и конденсатора 470 мкФ на напря­ В. Первичная обмотка тр~нсформатора должна быть рассчитана на 45
; Устройства с использованием АЦП напряжение 400 В: Трансформатор блока питания можно составить из двух одинаковых трансформаторов с последовательным включением сетевых и по­ следовательным или параллельным выходных обмоток. Выходное напряжение БП должно быть таким, чтобы при минимально возможном напряжении сети на входе стабилизатора DAl было постоянное напряжение не менее 7 В. На­ прнмер, если необходима установка минимального напряжения 100 В, то на­ пряженИ:е с выхода БП при напряжении сети Реле Kl 220 В должно быть 15 В. может быть любым на переменное напряжение питания 220 В, оно должно 1;{етко срабатывать при минимально допустимом напряжении сети. Контакты реле должны выдерживать ток, потребляемый всеми приборами, включенными одновременно. Если в аварийном режиме будет работать только освещение, то в качестве переключателя SAl можно взять бытовой выключа­ тель освещения. Подстроечный резистор Rб типа СП-1 бВА можно заменить любым имею­ щим ограничительные упоры подвижной части. . Микроконтроллер PIC16F873 без переделки платы можно заменить мик­ роконтроллерами PIC16F873A, PIC16F876A. .Можно использовать И 40-вывод­ ные микроконтроллеры PIC16F874, PIC16F877 с изменением рисунка печат­ ной платы. При этом программа МК в изменщши не нуждается, необходимо только. правильно установить тип МК в программе программатора. Налаживание устройства сводится к установке необходимого напряжения' питания микроконтроллера. Поскольку источником опqриого напряжения для АЦП явлЯ:ется напряжение питания микроконтроллера, то и показания индикатора будут зависеть от установленного напряжения. При увеличении напряжеРiия питания вес разряда квантования увеличивается, но, уменьшаются показания индикатора, и наоборот - а следователь­ при уменьшении на­ пряженйя питания показания индикатора увеличиваются. В собранном устройстве извлекают микроконтроллер и включают устрой­ ~тв.о в сеть. На выводе 2 сrабилизатора DAl ре~истором Rб устанавливают на­ пряжение питания, равное 5 В. Выключают устройство из сети и устанавлива- ,ют микроконтроллер в панельку. Включают устройство в сеть и контролируют напряжение сети цИфровым вольтметром. Перемещением заттятой за пределы индикатора кнопкой «Разряд» входят в режим измерения. Изменением номи:­ нала резист9ра Rб добиваются равенства показаний в сети и с·выхода микро­ контроллера. При этом необходимо следить, чтобы напряжение питания мик­ роконтроллера не· превышало 5,5 В. Этот вариант возможен, если номиналы резисторов делителя Rl R9 не сооцзетствуют указанным на схеме. Работу настроенного автомата можн_о проверить при Помощи автотранс­ форматора ЛАТР или любого Другого трансфорrv,1атора имеющего большое число отводов от сетевqй обмотки, например силового трансформатора от ламповых приемников йли телевизоров. Печатная плата автомата приведена на рис. на ней рис. на рис. 18, а р·асположение элементов 19. Печатная плата ДЛЯ установки инди~аторов показана-на 20. При изrотовлении печатной платы под микросхему с большим числом вы­ водов необходимо помнитJ>, что О, 1 дюйма - это 2,54 мм, а не 2,5 мм, как обычно принимается при проектировании отверстий для микросхем с малым числом выводов. Фольгу со стороны установки элемеН\ОВ низковолщной час- 46
Автомат защиты от перепадов сетевого напряжения 70 Рис. 18. ·Автомат защиты от перепадов сетевого напряжениЯ. 1 Печатная плата К+НL! - 1. +U D с в •.>, Е о н К .tJ ООщпli К SBl Sв:! . SВ3 SBl.SR!.SВJ Рис. 19. Автомат защиты от перепадов сетевого напряжения. Расположение элемецтов о Рис. 20. Печатная плата на 2-х индикаторах DC56 47
Устройства с использованием АЦП ти (рис. 19), где нет печатных проводников, не вытравливают, а подключают к минусу питания ми_кроконтроллера. Отверстия со сторонь1 установки элемен­ тов раззенковывают. Работа с автоматом заключается в установке необходимых напряжений ограничения. При первом включении напряжения сети индикаторы HG 1, HG2 не светятся, а светоди9д HLI мигает. Последовательно нажимают кноп­ ки SB2, SВЗ, .вклюЧитсЯ индикация.. При этом на индикаторе появится знак минус и нули в цифровых разрядах. Перемещением запятой по разрядам кнопкой «Разряд» устанавливают соответствующее значение ограничения по минимальному 'напряжению Кtнопкой «Установка». Первое нажатие кнопки «Установка» при запятой во втором или первом разряде вызовет индикацию числа 100. При попытке установить на индикаторе число большее, чем число 219, на индикаторе будет устанавливаться число 100. Нажимаюt ·кнопку «Разряд» и выводят запятую за пределы индикатора.· При переходе запятой от нулевого к третьему разряду индикация погаснет, по­ тому что не установлено ограничение напряжения по максимуму. Для включе­ ния индикации последовательно нажимают кнопки «Разряд» и «Индикация»" На индикаторе ·~ третьем разряде будет светиться усеченный знак плюс (-1). Светятся сеtменты В, С, G, а цифровые разряды высвечивают нули. За­ пятая светится в третьем разряде. Перемещением запятой по разрядам кноп­ кой «Разряд» устанавливают соответствующее значение ограничения по мак­ симальному напряжению кнопкой «Установка». Первое нажатие кнопки «Установка» при запятой во втором или первом разряде вызовет индикацию двоек во всех разрядах (минимальная установка 222). При попытке УGТановки в первом разряде числа большего, чем число 5, на индикаторе вьJсветится ЧИGЛО 255. Для того чтобы установить число меньшее, чем 255, необходимо вернуть запятую во второй разряд, и после нажатия кнопки «Установка» на индикаторе высветятся все.двойки (222). · В режиме установки· максимального и минимального знаЧ:ения напряже­ ний выключение индикации и исполнительного реле не производите.Я . .После установки значений ограниченИя напряжения выводят запяту19 за пределы индикатора. Третий разряд не светится, а uифровьiе разряды инди­ цируют значение на_пряжения сети. Если индикация происходит с миганием разрядов, то нажимают кноПкУ «Установка», и в третьем разряде высветится знак равенства'(=), а вывод на.индикацйю будет выполняться через 0,5 с. Если еще раз нажать кнопку «Установка>), то индикация будет изменяться через 1 с. При этом в третьем разряде высветится знак тождества (трИ: черты)_, При возникновении аварИйной .ситуации· реле К 1 отключит нагрузку раз­ мыканием контактов Kl.1 и блок питания автомата контактами Kl.2. Светоди­ од HLl будет мигать с частотой 1 Гц. После этого необходимо выклю~ить из сети все бытовые приборы, оставить одну лампу освещения и включить пере­ ключатель SAI. После пропадания щзарийно.й ситуации. (когда светодиод по­ гаснет) необходимо не ·забыть выключить переКлючатель SAl. После включе­ ния автомата можно включить в сеть бытовые приборы. Если вы 'хотите проверить, вошло ли напряжение сети в норму, то необходимо кратковременно нажать· кнопку «Индикация». Если индикация останется включенной, то на­ пряжение сети в преДе~ах~· нормы. _Это возможно, _когда длится .время второго 48 . ·
Автомат защиты or перепадов сетевого напрЯження ' ожидания включения. Как упоминалось выше, это время может- быть установ- лено до 8,5 ч. в проrрамме это время по умолчанию выбрано равным 10 мин. · J;:сли выключение напряжения произошло когда вас нет дома или в ноч ~. ное 13ремя, автомат сам проверит напряжение сети после отсчета· времени ре­ жима ожидания (сначала 2 норму, то включится· реле мин, затем 10 мин). Еслt1 напряжение пришло· в В противном случае автомат будет постоянно Kl. проверS!_ть напряжени.е сети через ·2-10-2-10 ... минут. Если реле Kl. потребляет большой ток, то необходf'IМО дополнительно установить симистор, как показано на рис. ЗАЩИТА ДОМА ОТ ПЕРЕПАДОВ НАПРЯЖЕНИЯ С УСТАНОВКОЙ УРОВНЯ ЗАЩИТЫ +35, (стр. 22 СЕТИ. 69). · , -120 В. РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ. для СВОБОДНОГО щ::пользоВАНИЯ п.ВЕЙДЕЛЕВКА, РАДИОЛЮБИТЕЛЯМИ. БЕЛГОРОДСКОЙ. saes@mail .. ru ПРОГРАММА = FAZAOМAx:Asм ВЕРСИЯ: 07--06-04. АССЕМБЛЕР И .ОТЛАдЧИК: MPLAB IDE, ВЕРСИЯ: 5.70.40. #INCLUDE <Pl6F873.INC> CONFIG 3F31H ;========~=========================================== ИСПОЛЬЗУЕТСЯ КВАР~ ЧАСТОТОЙ 4, .096 МГц. ; ; 4х16х25бх5=81920. ПРЕРЫВАНИЕ ЧЕРЕЗ 4096000/81920=50 5 Гц. мс. ;======================================~============= С - ВЫХОД СЕГМЕНТОВ. RBO - ВХОД ИМПУЛЬСОВ ЗАПУСКА. RB1-RB4 - ВЫХОД КАТОДОВ. RB5 - ВХОД КНОПКИ УСТАНОВКИ. RВб - ВХОД КНОПКИ ВЫБОРА РАЗРЯДА. RB7 - вх9д кнопки ВКЛЮЧЕНИЯ ИНДИКАЦИИ. RAO - АНАЛОГОВЫЙ ВХОД 1. RA4 - ВЫХОД УПРАВЛЕНИЯ РЕЛЕ. ~2 - ВХОД НАПРЯЖЕНИЯ ПИТАНИЯ. RАЗ - ВЫХОД СВЕТОДИОДА. ПОРТ ;=====~=================================== ; РЕГИСТРЫ РСН. ; ='=======================================::::;:: INDF EQU TIMERO EQU OPTIONR ' EQU РС EQU STATUS EQU FSR EQU PORTA EQU PORTB EQU PORTC EQU TRISA EQU TRISB EQU TRISC EQU оон ;ДОСТУП OlH ;TMRO. ;OPTION (RPO=l) . 81Н К ПАМЯТИ ЧЕРЕЗ 02Н ;СЧЕТЧИК КОМАНД. озн ;РЕГИСТР СОСТОЯНИЯ АЛУ. FSR. 04Н ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. 05Н ;ПОРТ А ВВОДА/ВЫВОДА. ОбН ;ПОРТ В ВВОДА/ВЫВОДА. 07Н ;ПОРТ С ВВОДА/ВЫВОДА. 85Н ; НАПРАВЛЕНИЯ 86Н ;ПОРТ В ВВОДА/ВЫВОДА. 87Н ;ПОРТ С ВВОДА/ВЫВОДА. ДАННЫХ ПОРТА А·. 1 49
Устройства с использованием АЦП INTCON PIEl ADRESH ADRESL ADCONO APCONl EEDATA EEADR EEDATH EEADRH EECONl ПРЕРЫВАНИЙ. ~QtJ овн ;РЕГИСТР ФлАrов EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 8СН ;РЕГИСТР РАЗРЕШЕНИЯ lEH ;СТАРШИЙ БАЙТ АЦП. 9ЕН ;МЛАДШИЙ БАЙТ АЦП. ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. lFH ;РЕГИСТР УПРАВЛЕНИЯ АЦП. 9FH ;РЕГИСТР УПРАВЛЕНИЯ ВХОДАМИ "ADP". lOCH ;РЕГИСТРЫ ЗАПИСИ В ПАМЯТЬ. lODH ; lOEH lOFH ; 18СН ; ;=========================================== ; ОПРЕДЕЛЕНИЕ РОН. ;==~===============~=======~~=============== EQU 20Н TEKL EQU 21Н СЕК EQU 23Н WTEMP EQU 2 4 Н ТЕМР EQU 25Н FLAG EQU 26Н ANOD2 EQU 2 7 Н STEMP EQU 2 8Н FTEMP EQU 29Н DEA ·EQU 2АН, СОА EQU 2ВН EDA EQU 2СН FLAGl EQU 2DH CEKl EQU 2ЕН УСТА EQU ЗЗН УСТА~ EQU 34Н YCTAl EQU 35Н УСТА2 EQU 3 бН УСТ! EQU 37Н YCTIO EQU 38Н YCTil EQU 3 9Н YCTI2 EQU ЗАН · EDI EQU 40Н DEI EQU 41Н COI EQU 42Н TUI EQU 43Н SEG ЕЩJ 44Н ANOD EQU 45Н ZPT EQU· 46Н COU EQU 4АН SBTEMP EQU 4ВН FBTEMP EQU 4СН WBTEMP EQU 4DH СЕК2 EQU 4ЕН COUl EQU 4FH COTl EQU 50Н СОТ2 EQU 51Н ТЕКН ;ДВОИЧНОЕ ИЗМЕРЕННОЕ ЗНАЧЕНИЕ НАПРЯЖЕНИЯ ;СЧЕТЧИК 5 мс. ; ВРЕМЕЩIЫЙ. ;ВРЕМЕННЫЙ. ;РЕГИСТР 'ФЛАГОВ. ; ДВОИЧНОЕ ЗНАЧЕНИ,Е КАТОДА. ;ВРЕМЕННЫЙ. ;ВРЕМЕННЫЙ. ;ИЗМЕРЕННОЕ ЗНАЧЕНИЕ ПО РАЗРЯдАМ, ;АО. 0,5 ;СЧЕТЧИК ;ДВОИЧНОЕ сек. УСТАНОВЛЕННОЕ МАКСИМАЛЬНОЕ ;ДЕСЯТИЧНОЕ УСТАНОВЛЕННОЕ ПО ЗНАЧЕНИЕ. РАЗРЯДАМ, О, ; 1. ; 2. ;ДВОИЧНОЕ УСТАНОВЛЕННОЕ МИНИМАЛЬНОЕ ЗНАЧЕНИЕ. ;ДЕСЯТИЧНОЕ УСТАНОВЛЕННОЕ ПО РАЗРЯДАМ, ; 1. ; 2. ;ПОРАЗРЯДНЫЕ РЕГИСТРЫ ИНДИКАЦИ~, ; 1. ; 2. ; 3. ;СЕГМЕНТОВ. ;КАТОД, ПОЗИЦИОННОЕ ЗНАЧЕНИЕ. ;ЗАПЯТОЙ. ;СЧЕТЧИК ПЕРЕКОДИРОВКИ. ;ВРЕМЕННЫЙ. ;ВРЕМЕННЫЙ. ;ВРЕМЕННЫЙ. ;СЧЕТЧИК 1 сек. ;СЧЕТЧИК ЧИСЛА ВЫКЛЮЧЕНИЙ. ;СЧЕТЧИК ПАУЗЫ ;СЧЕТЧИК 2 МИН. ПАУЗЫ ОТ БИТОВ РЕГИСТРА FLAG. 0->ВЫКЛЮЧЕНИЯ ИНДИКАЦИИ. 1->ПРЕРЬlБАНИЯ 5 мс. 50 Al. ;А2, 4 мин ДО 8,5 ;========================~==================== ОПРЕДЕЛЕНИЕ А, ;МЛАДШИЙ РЕГИСТР. ч. О. О.
Автомат защиты от перепадов сетевого напряжения 2->ЗАПЯТОЙ. 3->3АПЯТАЯ ЗА ИНДИКАТОРОМ. 4->УСТАНОВКА. 5->РАЗРЯД. 6->ВКЛЮЧЕНИЯ ИНДИКАЦИИ. 7->ПЕРЕПОЛНЕНИЯ. ;============================================= ОПРЕДЕЛЕНИЕ БИТОВ РЕГИСТРА 0->ИНДИКАЦИЯ ЧЕРЕЗ 1->-ЧЕРЕЗ 2->ПРОШЛО 3->ПРОШЛА 0,5 FLAGl. сек. 1 сек. 0,5 сек. 1 сек. 4->ПРЕРЫВАНИЕ 5->СВЕТОДИОД СО ВХОДА. ВЫКЛ. 6->ВЫКЛЮЧЕНИЕ БОЛЕЕ 7->БЫЛА ПАУЗА 2 ПИТАНИЯ. N РАЗ (ЗАДАЕТСЯ COQl) . МИНУТЫ. ;==========================~=================== ; 1. ПУСК ;======================= ORG GOTO ORG BTFSC GOTO BTFSC GOTO GOTO о INIT 4 INTCON,l PRBO PIRl,O PRTMl PRER ;=========================================================== ; 2. ПЕРЕКОДИРОВКА ДВОИЧНЫХ УСТАНОВОК.И ПРОВЕРКА МАКСИМУМА. ;==========~=============================~================== PERE MOVFW CALL ADDWF MOVWF MOVFW CALL BCF ADDWF BTFSC BSF MOVFW ADDWF DEI ;ДВОИ~НОЕ DEВIN ;НЕ ДОЛЖНО ЗНАЧЕНИЕ ВСЕХ ПРЕВЬШIАТЬ РАЗРЯДОВ 255. EDI,0 ТЕМР COI COBIN STATUS,0; ;СОТНИ. ТЕМР,1 ;ЕСЛИ STATUS,O;TO FLAG,7 TUI ;УСТАНОВИМ ФЛАГ ЕСТЬ ПЕРЕПОЛНЕНИЕ, ПЕРЕПОЛНЕНИЯ. ;ВЫБЕРЕМ МАКСИМУМ ИЛИ ,МИНИМУМ. РС,1 RETU~N RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RE.TURN RETURN RETURN 51
Устройства с использованием АЦП RE;TURN GOTO ~ото . MIYC МАУС ;МИНИМУМ. ;МАКСИМУМ. ;=======~~=======~======================================= ; З ... ТАБЛИЦЫ ПЕРЕВОД~ ДЕСЯТКОВ И СОТЕН В ДВОИЧНОЕ ЧИСЛО. :=======~===--====~=====================~================ DEBIN ADDWF RETLW RETLW RETLW· RETLW RETLW. RETLW RETLW RETLW RETLW RETLW РС,1 ADDWF RETLW RETLW RETLW· РС,1 .о .10 .20 .зо .40 .50 .60 .70 .80 .90 G::OBIN .о .100 .200 ; 4. ЗАПИСЬ РЕГИСТРОВ РЕЖИМА В РЕГИСТРЫ ИН~ИКАЦИИ. ;=======~=~~==•==а===~~===========~====~======== VUBOP MOVFW ADDWF TUI ;ПО РС,1 ;ВЫБЕРЕМ ЗНАЧЕНИЮ 3-ГО РАЗРЯДА РЕЖИМ ИНДИКАЦИИ. RE'ГURN, RETU~N RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN GOTO GOTO GOTO GOTO GOTO AIN AINOS AINl MIIN ;МГНОВЕННАЯ ;ВХОДА А ;ВХОДА А ИНДИКАЦИЯ ЗНАЧЕНИЯ ;ИНДИКАЦИЯ УСТАНОВЛЕННОГО ;ИНДИКАЦИЯ УСТАНОВЛЕННОГО МАКСИМУМА. BSF RETURN FLAGl;O ;УСТАНОВИМ ФЛАГ BSF BCF RETURN FLAGl,l FLAGl,O ;УС~АНОВИМ ФЛАГ 1 0,5 сек. ;СБРОСИМ ФЛАГ сек. BCF BCF FLAGl,O FLAGl,l ;СБРОСИМ ФЛАГ 0,5·сек 0,5 сек. AINl AIN 52 МИНИМУМА. МAIN AIN05 AINI ВХОДА А. 0,5 S. 1 S. ;И 1 сек.
Автомат защиты от перепадов сеiев~го напряжения BCF BCF MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF RETURN FLAGl,2 FLAGl,3 EDA EDI DEA DEI MOVFW MOVWF MOVFW MOVWF .MOVFW MOVWF RETURN YCTIO EDI YCTil DEI YCTI2 СО! ' ;ПЕРЕПИШЕМ МИНИМАЛЬНУЮ УСТАНОВКУ УСТА О ;ПЕРЕПИШЕМ МАКСИМАЛЬНУЮ УСТАНОВКУ EDI YCTAl DEI ;В ;СБРОСИМ ФЛАГИ ИСТЕКШЕГО . ;ВРЕМЕНИ О, 5· И, 1 сек. ;ПЕРЕПИШЕМ ; ИЗМЕ.РЕННЬlЕ ;В ЗНАЧЕНИЯ РЕГИСТРЫ ИНДИКАЦИИ. СОА, СО! MIIN ;~ РЕГИСТР~ ИНДИКАЦИ~. МAIN MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF RETURN РЕГИСТРЫ ИНДИКАЦИИ. УСТА2 COI ;====~=================~==~================= ; 5. з~пись УСТАНОВЛЕННЫХ ЗНАЧЕНИЙ в ПАМЯТЬ. ;===~========~===~========================== MIZ MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF BSF CLRF MOVLW GOTO EDI YCTIO DEI YCTil COI YCTI2 STATUS,6 EEADR MOVFW MOVWF ' MOVFW MOVWF MOVFW MOVWF BSF MOVLW MOVWF MOVLW EDI ; п·ЕРЕПИШЕМ УСТ АО ;В MOVWF ;ПЕРЕПИШЕМ ИНДИКАЦИЮ МИНИМУМА ;В РЕГИСТРЫ МИНИМУМА. ;ПЕРЕХОДИМ В Бf\НК 2. ;ОБНУЛИМ АДРЕС ЗАПИСИ. Ох37 ;ЗАПИШЕМ АДРЕС ПЕРВОГО ~API.S ;ИДЕМ НА РЕГИСТРА ЗАПИСИ. ЗАПИСЬ. МАZ ИНДИКАЦИЮ МАКСИМУМА' РЕГИСТРЫ МАКСИМУМА. DEI YCTAl COI УСТА2 STATUS,6 .16 EEADR ;ПЕFЕХОДИМ В БАНК Ох33 ;ЗАПИШЕМ АДРЕС ПЕРВОГО FSR ;АДРЕС РЕГИСТРА 2.' ;РАВНОСИЛЬНО НУЛЕВОМУ АДРЕСУ ;ДЛЯ ЧИСЕЛ (10000) 0-3. РЕГИСТРА ЗАПИСИ. ZAPIS ПЕРВОГО > В РЕГИСТР ;КОСВЕННОЙ АДРЕСАЦИИ. ZAPIN MOVFW INDF • ;ЗНАЧЕНИЕ РЕГИСТРА >.В РАБОЧИЙ РЕГИСТР 53.
Устро~ства с использованием АЦП MOVWF BSF BCF BSF BCF MOVLW MOVWF MOVLW MOVWF BSF BTFSC GOTO BCF INCF BTFSC GOTO EEDATA STATUS,5 EECONl,7 EECONl,2 INTCON,7 ;ЗАТЕМ .Ох55 ;ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ EECON2 ;ПРИ ПАМЯТЬ. ОхАА ;ПРЕДОХРАНЯЕТ ОТ СЛУЧАЙНОЙ ЗАПИСИ. IN,CБ РЕГИСТР ДАННЫХ. ;ВЫБИРАЕМ ПАМЯТЬ 3. ДАННЫХ. ;,РАЗРЕШАЕМ ЗАПИСЬ.' ;ЗАПРЕТ hР.ЕРЫВАНИЙ. EECON2 EECONl,l EECONl, 1 $-1 STATUS,5 EEADR,l EEADR,2 $+3 FSR,l ZAPIN STATUS,6 GOTO BCF BSF RETURN В ;ПЕРЕХОДИМ В БАНК ЗАПИСИ В ;ИНИЦИАЛИЗИРУЕМ ЗАПИСЬ. ;ЖДЕМ ОКОНЧАНИЯ ЗАПИСИ. ;ПЕРЕХОДИМ В БАНК 2. ;УВЕЛИЧИМ АДРЕС ЗАПИСИ ;ЕСЛИ ОН РАВЕН ЕЩЕ НЕ ;ТО УВЕЛИЧИМ АДРЕС ;ПОВТОРИМ 1. РЕГИСТРА ДЛЯ ЗАПИСИ. ЗАПИСЬ. ;ПЕРЕХОДИМ В БАНК INТCON,7 НА 4, ;РАЗРЕШАЕМ О. • ПРЕРЫВАНИЯ. ;ВЕРНЕМСЯ. ;======================================= ; 6. ТАБЛИЦА СЕГМЕНТОВ ДЛЯ ОБЩЕГО КАТОДА. ;==================================~==== ; 7' 6, 5, 4, 3, 2, 1, G, F, Е, D, С, В,. А. SEGDATA ADDWF PCL,F RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW. RETLW RETLW RETLW RETLW RETLW RETLW В'00111111' КАТОД в 1 в 1 о. ;Н, АНОД о в 1 11000000 1 1 В'11111001' 2 В'10100100' В 01001111' 3 в 1 10110000 1 В'01100110' 4 в 1 10011001 1 в 1 01101101 1 5 В'10010010' в 1 01111101' 6 В'10000010' в 1 00000111 1 7 в 1 11111000 1 в 1 01111111 1 ; 8 В'10000000' в 1 01101111 1 ;/' 9 в 1 10010000 1 .о 10 3-Й РАЗРЯД ВЫКЛЮЧЕН. В'01001000' 11 B'01Q01001' 12 1 В'01000000' в 10111111' 1-3 В'01000110' 14 + в 1 10111001 1 00000110 01011011 1 1 1 i============================== ; 7. ИНДИКАЦИЯ ;======:======================= IND MOVLW MOVWF CLRF .253 ANOD ANOD2 ;УСТАНАВЛИВАЕМ НУЛЕВОЙ РАЗРЯД В ;ПОЗИЦИОННОЕ ЗНАЧЕНИЕ ;ОБНУЛИМ ДВОИЧНОЕ КАТОДА. ЗНАЧЕНИЕ АНОДА INDO BTFSC CALL MOVFW CALL · CALL ~ FLAGl,4 ADPO EDI INDZ ZDEM ;ПРОВЕРИМ ;ЗАГРУЖАЕМ НАПРЯЖЕНИЕ. РЕГИСТР ИНДИКАЦИИ. ;ПРОИНДИЦИРУЕМ. ;·НА ОЖИДАНИЕ ПРЕРЫВАНИЯ. (КАТОДА).
" Автомат защиты от перепадов сетевого . . . напряжения INDl BTFSC CALL MOVFW CALL CALL FLAGl,4 ADPO DEI INDZ ·ZDEM BTFSC CALL MOVFW CALL CALL FLAGl,4 ADPO COI INDZ ZDEM BTFSC CALL MOVFW FLAGl,4 ADPO TUI ;ПРОВЕРИМ НАnРЯЖЕНИЕ. ;ПРОВЕРИМ НАПРЯЖЕНИЕ. ;АНАЛОГИЧНО ;НА НУЛЕВОМУ. ОЖИДАНИЕ ПРЕРЫВАНИЯ. IND2 ;ПРОВЕРИМ НАПРЯЖЕНИЕ. ;НА ОЖИДАНИЕ ПРЕРЫВАНИЯ.' INDЗ ;ЗАГРУЖАЕМ РЕГИСТР ИНДИКАЦИИ з~го РАЗРЯДА. CALL CALL CALL GOTO INDZ ; ПРОИНДИЦИРУЕМ. , КЕУ ;ПРОВЕРИМ КНОПКИ. ZDEM IND ;НА ОЖИДАНИЕ ПРЕРЫВАНИЯ. ;НА ИНДИКАЦИЮ НУЛЕВОГО РАЗРЯДА. INDZ CALL MOVWF BTFSS GOTO MOVFW SUBWF SKPNZ SEGDAТA ;ОПРЕДЕЛИМ SEG FLAG,3 ;ЗАПИШЕМ ЕГО . ; ЕСЛИ НЕТ СЕМИС:ЕГМЕНТНОЕ В УСТАНОВКИ, $+5 ;ТО ZPT ANOD2,0 ;СРАВНИМ РАЗРЯД ЗАПЯТОЙ ;С ;3НАЧЕНИЕ. РЕГИСТР. ЗАПЯТАЯ ~Е ВЫСВЕЧИВАЕТСЯ. РАЗ.РЯДОМ ИНДИКАЦИИ. ; ЕСЛИ о·ни НЕ СОВПАДАЮТ' то ПРОПУСТИМ, ;УСТАНОВКУ ФДАГА. BSF BTFSS GOTO BSF MOVFW MOVWF MOVFW MOVWF BCF BSF ;ИНАЧЕ УСТАНОВИМ ФЛАГ ЗАПЯТОЙ. FLAG,2 FLAG, 2 _ ;ЕСЛИ ФЛАГ УСТАНОВЛЕН, $+2 SEG,7 SEG PORTC ANOD PORTB FLAG,2 . STATUS, ;ТО ВКЛЮЧИМ СЕГМЕНТ ЗАПЯТОЙ. ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ;В ПОРТ С. ;ВКЛЮЧИМ РАЗРЯД. ;СБРОСИМ ФЛАГ ЗАПЯТОЙ. ;' 1 О В НУЛЕВОЙ РАЗРЯД, ;ЗАПИСАЛАСЬ RLF INCF RETURN ANOD,l ANOD2,l BCF CLRF BTFSC RETURN BTFSC CALL BTFSC CALL GOTO FLAG,l Tl<;ON FLAG,l ЧТОБЫ В- АНОД 1. ;СДВИНЕМ НОЛЬ НА РАЗРЯД ВЛЕВQ. ; УВЕЛИЧИМ ДВОИЧНОЕ ЗНАЧЕНИЕ АНОДА (КАТОДА) ZDEM · . " ;ВЕРНЕМСЯ. ;СБРОСИМ ФЛАГ ПРЕРЫВАНИЯ. ;ВЫКЛЮЧАЕМ ТАЙМЕР 1. ;ОЖИДАНИЕ ПРЕРЫВАНИЯ. FLAGl,6 сон FLAG,0 ;ЕСЛИ сон ;ТО ИНДИКАЦИЯ ИДЕМ НА ВЫКЛЮЧЕНА, ОЖИДАНИЕ ВКЛЮЧЕНИЯ ИНДИКАЦИИ. $-6 55
Устройства с использованием АЦП ;===========:================ ; 8. ВЫБОР. РАЗРЯдА УСТАНОВКИ. ;==:========================= УСТ BTFSS RETURN BCF MOVFW ADDWF GOTO GOTO GOTO GOTO GOTO PORTB,5 ;ПОКА КНОПКА ;ВЫБОРА FLAG,4 ZP.T НАЖАТА, НЕТ. ;СБРОСИМ ФЛАГ УСТАНОВКИ. ;ГДЕ ЗАПЯТАЯ, ТОТ РАЗРЯД И УСТАНАВЛИВАЕМ. РС,1 УСТО YCTl УСТ2 УСТ3 АВСУ ;====~=====================~===== ; 9. УСТАНОВКА ЗftАЧЕНИЙ. ·РАЗРЯДОВ. 1 ;========~:==============~======= УСТО INCF MOVLW SUBWF BTFSC CLRF GOTO EDI', 1 .10· EDI;O STATUS,O EDI PERE ;РАЗРЯД УСТАНАВЛИВАЕТСЯ ДО INCF MOVLW SUBWF BTFSC CLRF GOTO DEI,1 .10 DEI,0 STATUS,O DEI PERE ;РАЗРЯД УСТАНАВЛИВАЕТСЯ ДО COI~l ;РАЗРяn УСТАНАВЛИВАЕТСЯ до } ;НА 9. ПЕРЕКОДИРОВКУ. YCTl 9. ;НА ПЕРЕКОДИРОВКУ. УСТ2 INCF MOVLW SUBWF BTFSC CLRF GOTO 2. _,З COI,O STATUS,0 COI1 PERE ;НА ПЕРЕКОДИРОВКУ. ;=~====:==========·======~====~= : 10. УСТАНОВКА РЕЖИМА ИНДИКАЦИИ. ;=~====~=-~:=;:~=========~======== УСТЗ INCF MOVLW SUBWF BTFSC GOTO MOVLW SUBWF BTfSC GOTO TUI,l . 15, TUI,O STATUS,0 ;УВЕЛИЧИМ УСТ13 ;ЕСЛИ БОЛЬШЕ, .13 TUI,O STATUS,0 VUBOP ;УСТАНОВКА ПРИ ЗНАЧЕН~И ;ПРОВЕРИМ. ЗНАЧЕНИЕ. НЕ БОЛЕЕ 14 . УСТАНОВИМ МИНИМУМ. ;ПЕРЕЗАПИШЕМ ЗНАЧЕНИЯ ;ЕСЛИ МЕНЬШЕ 13, НЕ МЕНЕЕ РЕЖИМА В 13. РЕГИСТРЫ ;ИНДИКАЦИИ. УСТ13 МOVLW MOVWF . 56 . 13 TUI ТО УСТАНОВИМ МИНИМУМ .
Автомат защиты от .перепадов сетевого напряжения GOTO VUBOP ;ЗНАЧЕНИЯ РЕЖИМА В TUI,l . 13 TUI,0 STATUS,0 VUBOP ;УВЕЛИЧИМ ЗНАЧЕНИЕ. . 10 TUI VUBOP ;ИНДИКАЦИЯ ПРИ ЗНАЧЕНИИ НЕ МЕНЕЕ РЕГИСТРЫ ИНДИКАЦИИ. АВСУ MOVLW MOVWF GOTO ;ИНДИКАЦИЯ ПРИ ЗНАЧЕНИИ НЕ ;ЕСЛИ·БОЛЬШЕ, i ЗНАЧЕНИЯ ;ЗНАЧЕНИЯ БОЛЕЕ 12 . то УСТАНОВИМ МИНИМУМ. РЕЖИМА В РЕГИСТРЫ ИНДИКАЦИИ .. · РЕЖИМА В 10 . РЕГИСТРЫ ИНДИКАЦИИ. ;=============================== ; 11. УСТАНОВКА РАЗРЯдА ЗАПЯТОЙ. ;======~======================== ZAPT BTFSS RETURN BCF DECF MOVLW SUBWF BTFSS GOTO MOVLW MOVWF BCF GOTO MOVLW SUBWF BTFSC CALL. BSF GOTO P,QRTB, 6 ;ЕСЛИ ;ТО FLAG,5 ZPT,l .255 ZPT,0 STATUS,2 $+5 .4 КНОПКА НАЖАТА, ВЕРНЕМСЯ. ;СБРОСИМ ФЛАГ УСТАНОВКИ. ;ВЫЧИТАЕМ 1. ;.ПРОВЕРИМ ПЕРЕХОД ;.ЧЕР.ЕЗ НОЛЬ. ;ЕСЛИ НЕТ ПЕРЕХОдА ЧЕРЕЗ О, ВКЛЮЧИМ ФЛАГ. ;ЕСЛИ ЕСТЬ ПЕРЕХОД, ТО УСТАНОВИМ ZPT FLAG,3 ;ЗАПЯТУЮ ЗА ИНДИКАТОРОМ. АВСУО ';ИНДИКАЦИЯ А. .3 ZPT,0 STATUS,2 ZAP13 FLAG,3 VUBOP ;ЕСЛИ ЗНАЧЕНИЕ ;СБРОСИМ ФЛАГ УСТАНОВКИ. ;ТО УСТ~НОВИМ ; НА РАВНО 3 3, РАЗРЯД МИНИМУМ. ;ВКЛЮЧИМ ФЛАГ УСТАНОВКИ. ;ЗНАЧЕНИЯ РЕЖИМА В ;ЗНАЧЕНИЕ РАЗРЯдА РЕГИСТРЫ ИНДИКАЦИИ. ZAP13 MOVLW MOVWF RETURN .13 TUI ;И ИНДИКАЦИЯ МИНИМУМА. ;=====================~====~========================= ; 12. УСТАНОВКА ОГРАНИЧЕНИЙ ПО МАКС. И МИН. ЗНАЧЕНИЯМ. ;===============~=========================~===~====== MIYC """" 11"'1•""\\}' BTFSC GOTO MOVFW . MOVWF SUB~W BTFSS GOTO . FLAG,7 ;ЕСЛИ БЫЛО ПЕРЕПОЛНЕНИЕ, МllO ;ТО УСТАНОВИМ МИНИМУМ. ТЕМР ;СРАВНИМ ЗНАЧЕНИЕ YCTI .100 STATUS,O ;С М220 ;ТО .1 COI DEI EDI .100 ;УСТАНОВИМ МИНИМУМ. УСТАНОВЛЕННЫМ МИНИМУМО~~· ;ЕСЛИ МЕНЬШЕ, СРАВНИМ МАКСИМУМ·ПО МИНИМУМУ .. MllO MOVLW MOVWF CLRF CLRF MOVLW MOVWF УСТ! 57
Устройства с использованием АЦП BCF GOTO FLAG,7 MIZ ;СБРОСИМ MOVFW SUBLW BTFSS GOTO GOTO YCTI .219 STATUS,0 ;СРАВНИМ. МllO ;ТО MIZ ;ЗАПИШЕМ УСТАНОВКУ ФЛАГ ПЕРЕПОЛНЕНИЯ. ;ЗАПИШЕМ УСТАНОВКУ В ПАМЯТЬ. М220 ;НЕ БОЛЕЕ 219. ;ЕСЛИ БОЛЬШЕ, УСТАНОВИМ МИНИМУМ. В ПАМЯТЬ. М255 MOVLW MOVWF MOVWF MOVLW MOVWF MOVLW MOVWF .,. 5 ;УСТАНОВКА МАКСИМАЛЬНОГО DEI' EDI .2 COI .255 ;ЗНАЧЕНИЯ ПО МАКСИМУМУ. УСТА ··всF GOTO FLAG, 7 ;СБРОСИМ ФЛАГ МАZ ;ЗАПИШЕМ УСТАНОВКУ ПЕРЕПОЛНЕНИЯ. В ПАМЯТЬ. МАУС BTFSC GOTO MOVFW MOVWF . SUBLW BTFSS GOTO MOVLW MOVWF MOVWF MOVWF MOVLW MOVWF BCF GOTO FLAG,7 ;ЕСЛИ М255 ;ТО ТЕМР ;СРАВНИМ УСТА ;МАКСИМАЛЬНОГО .221 STATUS,O ; ЕСЛИ МАZ ;ТО .2 DEI ;ЕСЛИ МЕНЬШЕ, ;ТО БЫЛО ПЕРЕПОЛНЕНИЕ, УСТАНОВИМ МАКСИМУМ. ПО МИНИМУМУ ЗНАЧЕНИЯ. БОЛЬШЕ! ЗАПИШЕМ УСТАНОВКУ В ПАМЯТЬ. УСТАНОВИМ МИНИМУМ. СО! EDI .222 УСТА FLAG,7 ;СБРОСИМ МАZ ;ЗАПИШЕМ УСТАНОВКУ ФЛАГ ПЕРЕПОЛНЕНИЯ. В ПАМЯТЬ. ;====~========================~===================== ; 13. АЦП-ПРЕОБРАЗОВАНИЯ (ИЗМЕРЕНИЕ ВХОДНЫХ ВЕЛИЧИН). ;=================================================~= ADPO BTFSS RETURN MOVLW MOVWF BCF CALL BSF BTFSC GOTO MOVFW MOVWF BTFSC GOTO BSF MOVLW MOVWF MOVFW 58 FLAG,l 1 1 в 11000001 1 ADCONO FLAGl,4 ZAD .ADCONO, 2 ADCON0,2 $-1 ADRESH ТЕКН ТЕКН,1 ADPU STATUS,5 21 FSR ADRESL ;СИНХРОНИЗАЦИЯ ;ГЕНЕРАТОРА, 20 ;ЗАДЕРЖКА ; ВКЛЮЧИМ ОТ ВХОД RC О, 'ВКЛЮЧЕНИЕ АЦП (УВХ). мкс. ПРЕОБРАЗОВАНИЕ.· ;ОЖИДАЕМ ЗАВЕРШЕНИЯ ;ПРЕОБРАЗОВАНИЯ ;ПЕРЕПИШЕМ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ ;В СТАРШИЙ ТЕКУЩИЙ РЕГИСТР. ;ЕСЛИ 1 РАЗРЯД РАВЕН 1, ТО ПЕРЕПОЛНЕНИЕ. ;ВЫКЛЮЧИТЬ ВЫХОД. ;ПЕРЕХОДИМ В БАНК 1. ;ПО КОСВЕННОЙ АДРЕСАЦИИ ;ЗАПИСЬ МЛ. РЕГИСТРА АЦП
Автомат;защиты от перепадов сетевого напряжен11я MOVWF BCF BCF RRF. RRF MOVFW SUBWF BTFSC GOTO MOVFW SUBWF BTFSS GOTO BCF BCF BCF BSF CLRF INDF STATUS,5 STATUS,0 ;В РЕГИСТР ;В БАНК ТЕКН,1 ;СДВИГАЕМ TEKL,l ;ЧТОБЫ СРАВНИВАТЬ УСТА ;СРАВНИМ ТЕКУЩЕЕ ЗНАЧЕНИЕ TEKL. О. ;ОБНУЛЯЕМ БИТ ПЕРЕНОСА. УБИРАЕМ МЛ. РАЗРЯДОВ. 8 TEKL~O ;НА ПРЕВЫШЕНИЕ STATUS,0 ADPM YCTI TEKL,0 STATUS,O ADPU ;ЕСЛИ PORTA~4 ;ИНАЧЕ ПОДТВЕРДИМ ВКЛЮЧЕНИ~ ВЫХОДА. ;ТО ПО МАКСИМУМУ. ЕСТЬ ПРЕВЫШЕНИЕ, ВЫКЛЮЧИМ ВЫХОД. ;СРАВНИМ ТЕКУЩЕЕ ;НА БИТ. ВПРАВО, ПРЕВЫШЕНИЕ ЗНА~ЕНИЕ ПО ~НИМУМУ. ;ЕСЛИ МЕНЬШЕ" МЕНЬШЕГО, ;ТО ВЫКЛЮЧИМ ВЫХОД. FL~Gl,7 FLAGl,:,6 PORTA,3 COUl ;СБРОСИМ ФЛАГ ВЫКЛЮЧЕНИЯ. ;ВЫКЛЮЧИМ СВЕТОДИОД. ;СБРОСИМ СЧЕТЧИК ОШИБОК. ADPIN MOVFW MO\J.WF CALL MOVWF CALL MOVWF MOVFW MOVWF CLRF MOVLW SUBWF BTFSC RETURN BTFSS GOTO BTFSC GOTO RETURN BTFSS GOTO BTFSC GOTO RETURN TEKL ТЕМР BIDE2 ;ПЕРЕКОДИРУЕМ ТЕКУЩЕЕ СОА _;ИЗ 2-ГО В 2 ЗНАЧЕНИЕ 10-Е. BIDEl DEA ТЕМР EDA ТЕМР .13 TUI,0 STATUS,0 ;ПЕРЕПИШЕМ В FLAGl,O ;ЕСЛИ индиКАЦия НЕ ЧЕРЕЗ 0,5_ сек, РЕГИСТРЫ ИНДИКАЦИИ. ;ЕСЛИ ИНДИКАЦИЯ УСТАНОВКИ МИН И МАХ, ;ТО ИНДИКАЦИИ ИЗМЕРЕНИЯ НЕТ. \ $+4 ;ТО FLAGl,2 AINI ;ЕСЛИ ЦРОШПО FLAGl,l AINI FLAGl,3 AINI ;ПРОВЕРИМ FLAG,3 ADPIN PORTA,4 PORTA,3 FLAGl,6 ADPIN ;ЕСЛИ ИДЕТ FLAG,3 ADPIN COUl,l .50 ;ЕСЛИ ИДЕТ 1 ПРОВЕРИМ ФЛАГ 0,5 сек. сек, ;ОБНОВИМ ИНДИКАЦИЮ. ФЛАГ 1 сек. ;ОБНОВИМ ИНДИКАЦИЮ. ;ЕСЛИ ПРОШПА 1 сек, ;ОБНОВИМ ИНДИКАЦИЮ. ADPM BTFSC GOTO BSF BCF BSF GOTO \ ;ТО ВЫХОД УСТАНОВКА, НЕ ВЫКЛЮЧАЕТСЯ. ;ВЫКЛЮЧИМ ВЫХОД. ;ВКЛЮЧИМ ~ВЕТОДИОД. ;ВКЛЮЧИМ ФЛАГ ВЫКЛЮЧЕНИЯ. ;НА ИНДИКАЦИЮ. ADPU BTFSC GOTO INCF MOVLW ;ТО ВЫХОД . ; УВЕЛИЧИМ УСТАНОВКА, НЕ ВЫКЛЮЧАЕТСЯ. ЧИСЛО ВЫКЛЮЧЕНИЙ. ;ЕСЛИ ПОДРЯД БУДЕТ ·; (50х20=1000 50 .ВЫКЛЮЧЕНИЙ мс), 59
Устройства с исооль~ованием АЦП SUBWF BTFSS GOTO BSF BCF. BSF CLRF GOTO cou1,q STATUS,2 $+5 PORTA,4 PORTA,3 ;ВЫКЛЮЧИМ ВЫХОД. ;Вктdчим·свЕТОДИОД. FLAGltб ;ВКJ1ЮЧИМ ФЛАГ ВЫКЛЮЧЕНИЯ. COUl ADPIN ;СБРОСИМ СЧЕТЧИК ЧИСЛА ВЫКЛЮЧЕНИЙ. ,'5 -1 STATUS,2 $-2 ;ЗАДЕРЖКА ;НА ИНДИКАЦИЮ. ZAD MOVLW ADDLW BTFSS GOTO RETURN 20 мкс. ;======================================= ; 14. ПЕРЕКОДИРОВКА ИЗ 2-ГО В 2_10. ;==========~============================ BIDE2 CLRF. ADDLW BTFSS GOTO MOVWF cou -.100 STATUS,0 $+4 ;ОБНУЛЯЕМ СЧЕТЧИК. ТЕМР ;ИНАЧЕ 100. ;ВЫЧТЕМ ;ЕСЛИ ЕСТЬ ПЕРЕХОД ЧЕРЕЗ НОЛЬ, ;ТО ЗАВЕРШАЕМ ПЕРЕКОДИРОВКУ. ПЕРЕПИШЕМ НОВОЕ ЗНАЧЕНИЕ ВО ;ВРЕМЕННЫЙ. INCF GOTO MOVFW COU,l $-5 cou ;УВЕЛИЧИМ СЧЕТЧИК. ;ПОВТОРИМ ВЫЧИТАНИЕ. ;'ЗНАЧЕНИЕ СЧЕТЧИКА (РАВНО ЧИСЛУ СОТЕН) ;ПЕРЕПИШЕМ В РАБОЧИЙ РЕГИСТР. RETURN ;ВЕРНЕМСЯ. BIDEl CLRF MOVFW ADDLW BTFSS GOTO MOVWF INCF GQТO MOVFW RETURN cou ;ПЕРЕКОДИРОВКА ДЕСЯТКОВ ТЕМР ;АНАЛОГИЧНА ПЕРЕКОДИРОВКЕ СОТЕН. -.io STATUS,0; $+4 ТЕМР COU,l $-5 cou ;=======================~==•=== ; 15. ПРЕРЫВАНИЕ ОТ ТАЙМЕРА О. ;=============================~ PRER MOVWF MOVFW MOVWF MOVFW MOVWF BCF BtF INCF MOVLW SUBWF BTFSS 60 WTEMP STATU.S STEMP FSR FTEMP STATUS,6 STATUS,5 ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ W И СЕК,1 ;ДЕЛИТЕЛЬ ;STATUS, ; FSR. НА 5. .5 СЕК,О STATUS,2 ; ЕСЛИ PABI)O 5,
. Автомат ;защиты от перепадов сетевого напряжения GOTO BSF CLRF BTFSS GOTO INCF MOVLW SUBWF BTFSS GOTO BTFSS GOTO BTFSS GOTO BCF REPER ,FLAG, 1 GOTO BSF CLRF GOTO $+2 FLAGl,2 CEKl REPER BTFSS GOTO INCF MOVLW SUBWF FLAGl;l REPER CEKl,1 .200 CEKl,O STATUS,O REPER FLAGl, 3. CEKl СЕК 5 ;ТО УСТАНОВИМ ФЛАГ . мс. ;ОБНУЛИМ. FLAGl,O PRERl CEKl,1 . 100 CEKl,Q STATUS,2 REPER FLAG,0 $+5 FLAGi,2 $+3 ;ЕСЛИ УСТАНОВЛЕН.ФЛАГ F:ЧAGl,2 ;НА ПРОТИВОПОЛОЖНОЕ ДЛЯ МИГАНИЯ 0,5 ;ОТСЧИТАЕМ сек се~, 0,5 . jЕСЛИ ИНДИКАЦЙЯ ВЫКЛЮЧЕНА, ;ИЗМЕНЯЕМ ЗНАЧЕНИЕ ФЛАГА ;СВЕТОДИОдА. 0,5 ;ПРОШПО сек. PRERl втrss GOTO BSF CLRF ;ЕСЛИ УСТАНОВЛЕН ;ОТСЧИТАЕМ: 1 ;ПРОШПА 5 ФЛАГ мс 1 сек, Х.200 1 сек. сек. ;ОБНУЛИМ СЧЕТЧИК. REPER MOVFW MOVWF MOVFW MOVWF MOVFW BCF RETFIE STEMP STATUS FTEMP FSR WTEMP INTCON,2 ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ: ;STATUS, ;"FSR, ;W. ;СБРАСЫВАЕМ ФЛАГ ПРЕРЫВАНИЯ ОТ TMRO. ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ. ;================================= ; 16. ОЖИДАНИЕ ВКЛЮЧЕНИЯ ИНДИКАЦИИ. ;================================= сшt CLRF BSF PORTC FLAG,O ;ВЫКЛЮЧИМ ВСЕ СЕГМЕ~ТЬt. ;ВЫКЛЮЧИМ ИНДИКАЦИЮ. сонм BTFSC CALL' BTFSS RETURN BTFSS FLAGl,6 .COHTMl FLAG,O ;ЕСЛИ ФЛАГ ВЫКЛЮЧЕНИЯ УСТАНОВЛ~Н. ; ИДЕМ ВКЛЮЧАТЬ ·ТАЙМЕР .. ;ЕСЛИ ИНДИКАЦИЯ ВКЛЮЧЕНА, ;ИДЕМ НА и~дИКАцию. FLAGl,4 ;ЕСЛИ 'НЕ БЫЛО ПРЕРЫВАНИЯ С ВХОдА, ;ПРОПУСТИМ. GOTO BTFSC CALL BCF $+3 · FLAG,1 ADPO ;ИНАЧЕ ПРОВЕРИМ НАПРЯЖЕНИЕ. FLAG~l· 61
·УстройЬтва с использованием АЦП -CA.LL GOTO КЕУ ;ПРОВЕРИМ КНОПКИ. сонм ;ПОВТОРИМ. ;======?=============== ; 17. ИНИЦИАЛИЗАЦИЯ. ;====================== INIT STATUS,RPl ВСЕ: STATUS,RPO BSF MOVLW в 1 10001110 1 MOVWF- ADCONlл80H ' ;ПЕРЕХОДИМ В БАНК 1. ;1 ВХОД ПОРТА "А" АНАЛОГОВЫЙ. ;ОСТАЛЬНЫЕ ЦИФРОВЫЕ, ПРАВОЕ ;ВЫРАВНИВАНИЕ. MOVLW в •о 1 о о о·о о 1 • MOVWF OPTION REGЛ80H MOVLW B'llllOOOO' MOVWF INTCON MOVLW .1 MOVWF РIЕ1л80Н CLRF РIЕ2л80Н MOVLW В'00000001' MOVWF TRISAЛ80H MOVLW ·в• 11100001 • MOVWF TRISBЛ80H CLRF TRISCЛ80H BCF STATUS,RPO CLRF PORTB CLRF PORTA CLRF TlCON CLRF T2CON CLRF FLAG CLRF FLAGl CLRF EDI CLRF· DEI CLRF СО1 CLRF TUI MOVLW . . 4 MOVWF ZPT BSF FLAGl,l MOVLW . 12 MOVWF TUI CLRF CEKl CLRF СЕК CLRF .COTl CLRF СОТ2 CLRF COUl ' GOTO MIR ;ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕРОМ, ; ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ ОТ ;И ;ПРЕРЫВАНИЕ ПО ПЕРЕПОЛНЕНИЮ НА ВХОД. ;RAO - ~ НА ВХОД. ;RBl-RBЗ - - О. ВКЛЮЧЕНО. ;ТАЙМЕР 1 ОТКЛЮЧЕН. 2 ОТКЛЮЧЕН. ОБНУЛЯЕМ ;ЗАПЯТАЯ В ;1 ПРОВЕРКА И УСТАНАВЛИВАЕМ. 3 РАЗРЯДЕ. 1 сек. СЕКУНДА . ;ИНДИКАЦИЯ КНОПОК. ;===================~=~===================== КЕУ BTFSC GO'!'O BTFSS BSF FLAG,4 ;ЕСЛИ ФЛАГ УСТАНОВЛЕН, УСТ ;ТО PORTB,5 ;ЕСЛИ кнопкА НАЖАТА, F~AG,4 ;ТО FLAG,5 1 ;ЕСЛИ ФЛАГ УСТАНОВЛЕН, PAZ .BTFSC 62 КНОПОК. ВЫХОДЫ СЕГМЕНТОВ. ;ТАЙМЕР ;ВСЕ ВХОД ВЫХОДЫ УПРАВЛЕНИЯ АНОдАМИ. ;ПЕРЕХОДИМ В БАНК ;РЕЛЕ TMRl. АНАЛОГОВЫЙ ВХОД. ;RB5-RB7 ;ВСЕ TMRO, TMRl RBO. ВХОДА ;========================%==~==============~ ; 18. К=4 ... 001, РЕЗИСТОРЫ. ВКЛЮЧЕНЫ. ИДЕМ НА УСТАНОВКУ. УСТАНОВИМ ФЛАГ.
Автомат защиты от перепадов сетевого напряжения GOTO BTFSS BSF ZAPT PORTB,6 FLAG,5 BTFSC GOTO BTFSS BSF RETURN BTFSS RETURN 13CF BTFSC GOTO BSF RETURN BCF BTFSS RETURN ESF BCF BCF BCF BSF RETURN FLAG,6 · ~;ТО ИДЕМ НА УСТАНОВКУ. ;ЕСЛИ КНОПКА НАЖАТА, ;ТО УСТАНОВИМ ФЛАГ. SVET ;ЕСЛИ ФЛАГ УСТАНОВЛЕН, $+4 РОRТ.В,7 ;ЕСЛИ· КНОПКА FLAG,6 ;то: У~ТАНОВИМ ФЛАГ. PORTB,7 ;ПОКА НАЖАТА, кнqпКА НАЖАТА, ;ИНДИКАЦИЯ НЕ ВЫКЛЮЧАЕТСЯ. FLAG,6 FLAG,0 ;СБРОСИМ КНОПКИ. $+3 ;НА ПРОТИВОПОЛОЖНЫЙ. ФЛАГ ;СМЕНИМ ФЛАГ FLAG,0 FLAG,0 FLAGl,6 ;ВКЛЮЧИМ PORTA, з· FLAGl,6 FLAGl,7 FLAG,O INTCON,4 ;выключим свЕтодиод. ИНДИКАЦИЮ. ;ЕСЛИ БЫЛ ВКЛЮЧЕН ФЛАГ ВЫКЛЮЧЕНИЯ, ;СБРОСИМ ФЛАГИ ВЫКЛЮЧЕНИЯ ;И ПАУЗЫ. ;ВКЛЮЧИМ ИНДИКАЦИЮ. ;РАЗРЕШАЕМ ПРЕРЫВАНИЯ ПО ВХОДУ. ;=======~===========~=================~===== , ; 19. ПРЕРЫВАНИЕ ПО ВХОДУ RBO. ;========================7================== PRBO MOVWF MOVFW MOVWF MOVFW MOVWF 5TFSC GOTO BCF BCF BSF MOVLW MOVWF CLRF BCF CLRF CLRF WBTEMP STATUS SBTEMP FSR FBTEMP FLAG,4 REPR STATUS,6 STATUS,5 FLAGl,4 . 25 TMRO MOVFW MOVWF MOVFW MOVWF MOVFW BCF , BCF RETFIE ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ; OOR. ;ЕСЛИ УЖЕ ;ТО БЫЛ ЗАПУСК ЗАВЕРШИМ (ПОМЕХА), ПРЕРЫВАНИЕ.· ;ЕСЛИ ПРЕРЫВАНИЕ БЫЛО С 'дРУГОГО БАНКА, ;ТО НАДО ВЕРНУТЬСЯ В БАНК О. ;ВКЛЮЧИМ ФЛАГ ПРЕРЫВАНИЯ. ;ЗАДЕРЖКА= ЧИСЛУ КОМАНД: СЕК ;СБР~СЫВАЕМ ПРОШЕДШЕЕ FLAG,l TMRlL TMRlH ;И SBTEMP STATUS FBTEMP FSR WBTEMP ;ВОССТАНОВЛЕНИЕ fHA 25х 1 4=100 . ВРЕМЯ ФЛАГ. ВСЯКИЙ СЛУЧАЙ. REPR INТCON,1 W И' - ; STATUS, - РЕГИСТРОВ: ;STATUS, ; FSR, ;W. ;СБРАСЫВАЕМ ФЛАГ ПРЕРЫВАНИЯ от тм~о. INТCON,2 ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ. 63
Устройства с использованием АЦП ;============================== ; 20. ВЫБОРКА ЙЗ ПАМЯТИ. ,·================~============= . МIR BSF CLRF MOVLW STATUS,6 EEADR ;ПЕРЕХОДИМ Ох37 ;АДРЕС ;НАЧНЕМ С В 2. БАНК НУЛЕВОГО АДРЕСА. ЗАПИСИ ПЕРВОГО РЕЗУЛЬТАТА ;СЧИТЫВАНИЯ. CALL" REZAP ;СЧИТАЕМ ЗНАЧЕНИЕ. MOVLW MOVWF MOVLW . 16 EEADR ;НУЛЕВОЙ АДРЕС ДЛЯ МАКСИМУМА . ОхЗЗ ;АДРЕС МАR ЗАПИСИ ПЕРВОГО РЕЗУЛЬТАТА ;СЧИТЫВАНИЯ. CALL BCF 'ВСF BSF BCF CALL GOTO REZAP STATUS,6 PORTA,4 PORTA,3 FLAG,0 ;СЧИТАЕМ МAIN ;МАКСИМУМ IND ;НА ИНДИКАЦИЮ. ЗНАЧЕНИЕ. ;ПЕРЕХОДИМ В БАНК ;ВКЛЮЧИМ О. ПИТАНИЕ. ;ВКЛЮЧИМ ИНДИКАЦИЮ. > В РЕГИСТРЫ ИНДИКАЦИИ. REZAP MOVWF FSR ;ЗАПИШЕМ НАЧАЛЬНЫЙ АДРЕС В РЕГИСТР -; КОСВЕННОЙ АДРЕСАЦИИ. REZAN BSP BCF BSF BCF BTFSC GOTO BTFSS GOTO MOVLW STATUS,5 EECONl,7 EECONl,O S"IATUS,5 EEADR,0 $+3 EEADR,1 $+9 .255 ;ПЕРЕХОДИМ В ;ВЫБИРАЕМ 3. БАНК ПАМЯТЬ ДАННЫХ, ;ИНИЦИАЛИЗИРУЕМ ЧТЕНИЕ .; ПЕРЕХОДИМ В БАНК ;ЕСЛИ АДРЕС НЕ ;ТО НЕОБХОДИМО ;~А 255, ЧТО ВЫБОРКЕ 2. РАВЕН.НУЛ~, ПРОВЕРИТЬ ЗНАЧЕНИЕ РАВНОСИЛЬНО ;ПУСТОЙ ПАМЯТИ, ;ПРИ (EEPROM). . ЧТОБЫ НЕ ЗАЛЕТЕТЬ ЗНАЧЕНИЯ РАЗРЯдА ИЗ ТАБЛИЦЫ ;ПРИ ИНДИКАЦИИ. SUBWF EEDATA,0 ;В НУЛЕВОМ АДРЕСЕ ВОЗМОЖНО ЗНАЧЕНИЕ 255 ;В МАКСИМУМi. BTFSC CALL BTFSC CALL BTFSC CALL MOVFW MOVWF' STATUS,2; REZ EEADR,0 REZ EEADR, 1 REZ EEDATA INDF INCF EEADR,l EEADR,2 ;НА ОБНУЛЕНИЕ. ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ; ЭТ-FSС ИЗ (ФАКТИЧЕСКИ В РЕГИСТР С АДРЕСО~ В F$R) . ;УВЕЛИЧИМ АДРЕС И ;ПРОВЕРИМ, 'RETURN INCF GOTO FS'R, 1 REZAN ;НЕТ, MOVLW SUBWF BTFSC .10 EEDATA,0; STATUS,O; ;ПРОВЕРИМ. РАВЕН ЛИ ОН 4 ;ДА-" УВЕЛИЧИf1 АДРЕС РЕГИСТРА ;ПОВТОРИМ. REZ 64, РЕГИСТРА ДАННЫХ ;В РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ_ НЕ БОЛЕЕ 9. ЗАПИСИ.
\. 1 • Автомат защиты от перепадов сетевогQ напря)l(ения· CLRF RETURN ;ОБНУЛИМ, ЗНАЧЕНИЕ. EEDATA ;=======~~========================~====~==== ; 21. ПРЕРЫВАНИЕ ОТ ТАЙМЕРА 1. :=~============================~============ l?RTMl MOVWF MOVFW MOVWF MOVFW MOVWF CALL WBTEMP STATUS SBTEMP FSR FBTEMP CHU MOVFW MOVWF MOVFW MOVWF MOVFW BCF RETFIE SBTEMP STATUS. FB'fEMP FSR WBTEMP PIRl,O ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ wи ;STATUS, ;FSR. ;ОТРАБОТАЕМ \ ПАУЗУ. RETMl ;ВОСёТАНОВЛЕНИЕ РЕГИСТРОВ: ;STATUS, ; FSR, ;W. ;СБРАСЫВАЕМ ФЛАГ ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ ОТ TMRl. ПРЕРЫВАНИЯ. ;%==============~=========================== ; 22. ОТСЧЕТ ВJ?ЕМЕНИ ПАУЗЫ В ИЗМЕРЕНИИ. ; ======::::====::;:.;;:.==:::=·~====================:::;::======:::;_ CHU BSF DECFSZ RETURN CLRF BTFSC ·Gото BSF' BSF BCF BCF BSF RETURN \. PORTA1-4 COTl,1 ;"РЕЛЕ ВЫКЛЮЧЕНО. ;СЧЕТЧИК 2 COTl / FLAGl,7 CHUl ;ОБНУЛИМ РЕГИСТР. РОRТА,З ;ВЫКЛЮЧИМ СВЕТОДИОД. FLAGl, 7· FLAGl,6 FLAG,0 INTCON,4 ;УСТАНОВИМ ~ЛАГ МИНУТ. ;ЕСЛИ УЖЕ БЬLJlA ПАУЗА В ;ОТСЧИТАЕМ БОЛЬШЕЕ 2 мин, ВРЕМЯ. ПАУЗЫ. ;СБРОСИМ ФЛАГ ВЫКЛЮЧЕНИ~. ;ВКЛЮЧИМ ИНДИКАЦИЮ. ;РАЗРЕШАЕМ ПРЕРЫВАНИЯ ПО ВХОДУ. ;ЗАВЕРШАЕМ ПРЕРЫВАНИЕ. CHUl INCF MOVLW SUBWF BTFSS R.ETURN BSF CLRF BCF BCF BCF BSF RETURN СОТ2,1 .5 ;СЧЕТЧИК 10 мин. ;10 MIN (ДО- 8,5 ч ПРИ УСТАНОВКЕ 255) • СОТ2,О STATUS,2 PORTA,3 ;ВЫКЛЮЧИМ СВЕТОДИОД. СОТ2 ;СБРАСЫВАЕМ СЧЕТЧИК, FLAGl,6 FLAGl,7 FLAG,0 ;ФЛАГ .; ВКЛЮЧИМ INТCON,4 ;РАЗРЕШАЕМ ;И 2 ВЫКЛЮЧЕНИЯ, мин. ИНДИКАЦИЮ. ПРЕРЫВАНИЯ ПО ВХОДУ. ;ЗАВЕРШАЕМ ПРЕРЫВАНИЕ. :=~===============================~=========~=============~~===' ;· 23. ОЖИДАНИЕ ОТРАБОТКИ ВРЕМЕНИ' ПАУЗЫ ИЛИ ВКЛЮЧЕНИЯ ИНДИКАЦИИ. ;===============~====~========~=======~=======~=~========~===== COHTMl BCF INTCON,4 ;ЗАПРЕЩАЕМ ПРЕРЫВАНИЯ ЦО ВХОДУ. tiS
Устройства с использованием АЦП ;РАЗРЕШАЕМ ПРЕРЫВАНИЯ ОТ ТАЙМЕРА MOVLW MOVWF BCF· BSF 00110001 1 TlCON FLAGl,1 FLAGl,O ;0,5 BTFSS RETURN BCF .BTFSS BCF BTFSC BSF CALL BTFSS RETURN BCF GOTO FLAGl,6 ;ЕСЛИ ПРОШЛО в 1 1.' ;К=8. ;1 с. с. сонz ;ИДЕМ НА 2 мин, СОН. F'LAG,l FLAGl,2 PORTA,3 FLAGl,2 PORTA,3 ;5 мс. ;0,5 с. ; ВКЛЮЧИМ КЕУ ;ПРОВЕРИМ FLAG,0 ;ЕСЛИ ИНДИКАЦИЯ ;ИДЕМ НА СВЕТОДИОД.· ;ВЫКЛЮЧИМ СВЕТОДИОД. КНОПКИ. ВКЛЮЧЕНА, СОН. ;ЗАПРЕЩАЕМ ПРЕРЫВАНИЯ ПО ВХОДУ. INTCON,1 COHZ ;ПОВТОРИМ. ;=====~=================~========~========== END ;===============================~=========== Устройство защиты от .перепадов сетевог~ напряжения Предлагаемое устройство защиты от перепадов сетевого напряжения ·вы­ ключает нагрузку при помощи реле или пускового реле, если напряжение равно или превышает установленное зна~ение. Устройство отличается от предьщуще­ го автомата защиты тем, что включение нагрузки выполняется вручную. Авто­ мат защиты имеет большую чувствительность к импульсным помехам, поэтому его хорошо применять с чувствительной к перенапряжению аппаратурой. Работа устройства заключается в измерении выпрямленного и деленного постоянного напряжения сети через 20 мс без привязки к амплитуде сетевого напряжения. Все параметры установок и алгоритм работы устройсr_ва защиты аналогич­ ны тем, что описаны в автомате защиты. Отличие состоит только в алгорит­ мах подпрограмм входа в режим измерения и подпрограммы измерения. Рассмотрим Подробнее алгоритм работы подпрограммы измерения напря­ жения, показанного на рис. 21. напряжения на конденсаторе запоминается На время преобразования величина входного устройства выборки/хр_анения (УВХ). Поэтому после вклЮчения вь1бранного входа необходима задержка для полного заряда конденсатора. После задержки выполняется перекодиров.ка ранее измеренного Т;екущего значения входного напряжения из двоичного кода в двоично-десятиричный, и результат переписывается в· текущие регист­ ры. Время, за которое выполняется перекодировка, также суммируется с временем задержки для заряда конденсатора УВХ. Далее- проверяются флаги индикации через не включен, то каждое измеренное , 0,5 значение и 1 с. Если ни один флаг выводится на индикацию. В этом режиме хорошо наблюдать стабильное значение напряжений. Однако 66 '
Устройство защиты от перепадов сетевого напряжения ИЗМЕРЕНИЕ НАПРЯЖЕНИЯ ВКЛЮЧЕНИЕ R"<ОДА ЗЛЦЕРЖКА ПЕРЕКОДИРОВКА ЗАПИСЬ В ТЕК РЕГ. ЗАПИСЬ В РЕГ. ИНД . ВКЛЮЧЕНИЕ АЦП РЕПЕ ВКЛЮЧЕНО РЕЛЕ ВЫКЛЮЧЕНО ЮЗВРАТ Рис. 21. " Алгоритм работы программы устройства защиты от перепадов сетевого напряжения. Измерение .напряжения при частом переходе через ноль будут мигания от одного до трех разрядов, что затруднит чтение показаний индикатора. Для облегчения чтения введе:на возможность переключения индикации через 0,5 и 1 с: Если один из флагов включен, то текущие измеренные значения напряжения переписываются в регистры индикации. Цри этом сбрасываются флаги, и следующий вывод на индикацию буцет после ·их включения в блоке подnроrраммы установки флагов. 67
· Устройст:ва с использованием АЦП После выполнения задержки включается АЦП-преобразование. Сохраня­ ется результат измерения ( 1О разрядов) в двух регистрах с левым выравнива­ нием. Младшие два разряда преобразования отбрасываются как недостовер- · ные из-за возможных пульсаций выпрямленного измеряемого напряЖениЯ. Двоичное значение старшего восьмиразрядного регистра преобразования про- . веряется на превышение максимального или минимального установленного значения. В случае положительного результата сравн~ния выключается выход, который управляет реле нагрузки. Иначе подтверждается включение реле, и лрограмма возвращается из подпрограммы, . ' Отбрасывание двух младших разрядов преобразования уменьшает число полезных разрядов квантования до 256. При этом вес одного разряда будет ра­ вен 0,02 В. При изменении входного переменного напряжения на один вольт напряжение на входе микроконтроллера Изменится на 20 мВ. Поскольку ис­ точником опорного напряжения является напряжение питания микроконт­ роллера, то оно должно быть 5,12 В. Тогда, чтобы не у~ожать результат пре­ образования на два, необходимо, чтобы входное выпрямленное напряжение было равно измеряемому напряжению, деленному на сто и умноженному на два. То есть при входном переменном напряжении 220 В напряжение на из­ мерительном входе микроконт11оллера должно быть равно 4,40 В, а максима­ льно ВОЗМОЖ:НОе измеряемое (значит, И. устанавливаемое) значение пере_мен­ НОГО напряжения будет равно 255 В. Схема устройства показана на ·рис. 22. Измеряемое напряжение выпрям­ VD l -VD4 f1 делится делителем напряжения Rl, R2. ляется диодным мостом Конденсатор СЗ сглаживает пульсации напрйжения, а резистор RЗ ограничи­ . вает стор входной ток. Симисторная оптопара Ul включает -реле Kl через сими­ Симистор VSI можно не устанавливать, если реле Kl имеет мал1;>1й VSI. ток питающей обмотки. , К сети нагру3ка Rнагр: может подключаться через контакты реле К 1.1 или . t • переключатель SAI. ' Кнопка SB4 , • не.обходима Для включения реле Kl во время установки и при проверке окончания аварийной ситуации. Если напряжение в сети еще не пришло в норму, то при кратковременном нажатии на кнопку SB4 загорится светодиод HLl. Если светодиод HLl не оветится, значит, вход­ ное напряжение не выходит за пределы установленного напряжения. Как упоминалось выше, стабилизатор пряжение 5, 12 DA1 должен иметь выходное на­ В. Но подбором номинала резистора R2 легко добиться необ­ ходимого значения на индикаторе при любом напряжении п~тания. При rменьшении напряжения питания покаэания индикатора увеличиваются и наоборот. Для налаживания устройства закораt_~ивают кнопку SB4, подключают циф­ ровой вольтметр переменного напряжения к сети и. сравнивают его показания с показаниями индикатора HGl, HG2. Нельзя измерять напряжение на.входе микроконтроллера, потому что он имеет большое входное сопротивление и 1 измерИтельный прибор исказит показания. Изменением номинала резистора R2 добиваются равенства показаний в сети и с выхода микроконтроллера. НМЬЗЯ ·Подава1,'ь на измерительный вход микроконтроллера напряжение, если питани~ микроконтрол_лера выключено! Микроконтрgллер может .выйти из строя. По этой причин~ конденсатор фильтра С 1 имеет большое значение .. 68
:::J а 'О -о-Э о 'О о 'О ~ ~ ~ ~ (1) txl ~ 'О~ . о w °' :s:::i:: w -220В Сеть ~ (1)~ :s: а о-Э (1) -...j '< ~ ::i:: о txl .g fJ ~ w~ :S: ~ -~ t;;~ ~"О-% о о-Э ~ ti"' 'О ~а :S: (1) ::С1 :S:c ::i:: ~ ::i:: :s: З:: о о G ::1 :S:c о а - ::i::~ g 'О :s:: ~ ~--=-: 8' ~ ~ о i::; ~ :s:: w ~ J:: :s: :S:c"tj ::i:: ::i:: ::ci ~ о з; .а ::::: :s: ::i;: § u ~ ::ci о~ ::J:: G, ~ ::i:: (1) ~ .с:~ ~-::::i '(1) о-Э :s:: ~.g ~ ::::: iv~ • ::i:: ·:s: (') ::ci w .с: (1) 'О \О :s: ~ (1) 'О 'О ~ w ·О\ ::::: о ~ ~ НLI N ~ ~ ~ Q :с n ~ ~ Q, -а ~ = ! о. ~( -220 в С') ~ о с:> ~ ~ = "g = .Е n> ~ ~ ~ = n о ..... -~ ~ ш ~ "' а = = Q ·О D::J = -@ "С1 ~= ; Cti D::J о ~15I а ~ ~ -~ (1) о <Ь :s:1 о-Э ~ w ::i:: 1 ::z:
Устройства с использованием АЦП Работу настроенного устройства проверяют так же, как и работу автомата защиты. Запитывать устройство можно от сетевого адаптера с выходом постоянно­ го напряжения 12 В. Печатная плата устройства показана на рис. на ней рис. - на рис. 24. 23, а расположение элементов Печатная плата для· установки индикаторов показана на 20. 70 Рис. 23. Устройство защиты от перепадов сетевого напряжения. :нечатная плата о КШ.1 D KKI, S84 KS84. --2208 с 8 А Сеть· Е F G н 98 Рис. 24. + К S81 S82S83 Расположение элементов на плате Работа с автоматом заключается в установке неQбходимых напряжений ограничения. После включения напряжения на индикаторе в третьем разряде будет светиться усеченный знак плюс (-1). Светятся сегменты В, С, G. Запя­ тая светится в третьем разряде. Перемещением запятой по разрядам кнопкой «Разряд» устанавливают соответствующее значение ограничения по максима­ льному напряжению кнопкой «Установка». Первое нажатие кнопки «Установ­ ка» во вторQм разряде вызовет индикацию д~ойки во всех разрядах (минима- 70
Устройство защиты от перепадов сетевого напряжения льная установка 222). При попытке установки в первом_разряде числа боль­ 5, на индикаторе высветится число 255. Для того чтобы число меньшее, чем 255, необходимо вернуть запятую во вrорой шего, чем число установить разряд. После ·нажатия кнопки «Установка» на индикаторе вЬ1светятся все . двойки (222). Для установки ограничения по минимуму необходимо нажать кнопку «Установка» в то время, когда запятая находится в третьем разр.Яде. На инди­ каторе высветится знак минус (-). Установку цифровых разрядов выполняют аналогичн:о установке ограничений по максимуму. При попытке установить на индикаторе число большее, чем число 219, на индикаторе будет устанавливаться 100. Пос.Ле установки значений ограничения напряжения выводят запятую за пределы индикатора. Третий разряд не светится·, а цифровые разряды индици­ руют значение напряжения сети с задержкой 20 мс. Если индикация происхо. дит с миганием разрядов, 'нажимают кнопку «Установка» и в,трет~ем разряде высветится знак равенства(=), а вывод на индикацию будет выполняться через 0,5 с. Если еще раз нажать кнопку «Установка», то индикация будет изменяться через 1 с. При этом в третьем разряде высветится знак тождества (три черты). После SB4, настройки преобразователя необходимо разблокировать а при установке значений ограничения напряжения кнопку удерживать ее ле­ - вой рукой. При возникновении аварийной ситуации реле мыканием контакта Kl.1 Kl отключит нагрузку раз­ и блок питания-устройства контактом Kl.2. После этого необходимо отключить от сети все бытовые приборы, оставить одну лампу освещения и включить переключатель . ной SA 1. После пропадания аварий- ситуации необходимо н~ забыть вьп~лючить переключатель временно-нажать кнопку SB4. Если при этом светодиод HLl SA 1 и кратко~ не горит, то ав­ томат снова готов к работе. После включения автомата можно включить в сеть бЬ1товые приборы. Во время работы устройства индикацию напряжения можно выклю­ чить/включить. Для этого нажимают кнопку «Индикация». В автомате можно использовать любой другой кварцевый резонатор на бо­ ль_шую (если позволяет частота микроконтроллера) или меньшую частоту, лишь бы была приемлема частота мерцания индикатора. Однако при исполь­ зованной автором частоте резонатора измерение напряжения происходит че­ рез 20 мс, т. е., через один период сетевого напряжения, а в режиме выклю­ ченной индикации - через половину периода сетевого напряжения. При дру.: гом р~зонаторе изменится также время индикации меньшую сторону. Использование другого 0,5 и резонатора 1 с в большую или не повлияет на АЦП-преобразование, поскольку программно тактирование преобразования выполняется от внутреннего RС-генератора с частотой ЗАЩИТА ДОМА ОТ ПЕРЕПАДОВ 500 кГц. НАПРЯЖЕНИЯ СЕТИ. С УСТАНОВКОЙ УРОВНЯ ЗАЩИТЫ(рЗS, -120 В. РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ. ДЛЯ СВОБОДНОГО ИСПОЛЬЗОВАНИЯ ;'п.ВЕЙДЕЛЕВКА, РАДИОЛЮБИТЕЛЯМИ. БЕЛГОРОДСКОЙ. 71
Устройства с испо'льзованием АЦП saes@mail.ru = FAZAO.ASM ВЕРСИЯ: 17-03-04. ПРОГРАММА АССЕМБЛЕР MPLAB IDE, И ОТЛАДЧИК: ВЕРСИЯ: 5.70.40. #INCLUDE <Pl6F873.INC> CONFIG ЗFЗlН ,·==================================================== ' ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАС.ТОТОЙ 4, О 9 6 МГц. ; ; 4хlбх256х5=81920. ПРЕРЫВАНИЕ ЧЕРЕЗ 4096000/81920=50 5 Гц. мс. ;===========;=============================:========== ПОРТ С RBO-RBЗ - ВЫХОД - СЕГМЕНТОВ. ВЫХОД КАТОДОВ. RB4 - ВХОД КНОПКИ УСТАНОВКИ. RB5 - ВХОД КНОПКИ ВЫБОРА РАЗРЯДА. RВб - ВХОД КНОПКИ ВКЛЮЧЕНИЯ ИНДИКАЦИИ. RAO АНАЛОГОВЫЙ ВХОД 1. RAl АНАЛОГОВЫЙ 'ВХОД 2. RA2 АНАЛОГОВЫЙ ВХОД 3. RАЗ АНАЛОГОВЫЙ ВХОД 4. RA4 ВЫХОД УПРАВЛЕНИЯ РЕЛЕ. ;=================================~======= ; РЕГИСТРЫ РСН. ;===================================~===== INDF EQU TIMERO EQU OPTIONR EQU EQU РС STATUS EQU EQU FSR EQU PORTA EQU PORTB EQU PORTC EQU TRISA EQU TRISB TRISC EQU INTCON EQU PIEl EQU ADRESH EQU ADRESL EQU ADCONO EQU ADCONl EQU EEDATA EQU EEADR EQU ЁЕDАТН EQU EEADRH EQU EECONl EQU ТЕМР2 EQU оон ;ДОСТУП OlH 81Н ;TMRO. ;OPTION (RPO=l) . 02Н ;СЧЕТЧИК КОМАНД. озн ;РЕГИСТР СОСТОЯНИЯ АЛУ. К ПАМЯТИ ЧЕРЕЗ FSR. 04Н ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. 05Н ;ПОРТ А ВВОДА/ВЫВОДА. ОбН ;ПОРТ В ВВОДА/ВЫВОДА. 07Н ;ПОРТ С ВВОДА/ВЫВОДА. 85Н ;НАПРАВЛЕНИЯ 86Н ;ПОРТ В ВВОДА/ВЫВОДА. 87Н ;ПОРТ С ВВОДА/ВЫВОДА. овн ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ. 8СН ;РЕГИСТР РАЗРЕШЕНИЯ lEH ;СТАРШИЙ БАЙТ АЦП. 9ЕН ;МЛАДШИЙ БАЙТ АЦП. lFH ;РЕГИСТР 9FH ;РЕГИСТР lOCH lODH lOEH lOFH ДАННЫХ ПОРТА А. ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. УПРАВЛЕНИЯ АЦП. УПРАВЛЕНИЯ ВХОДАМИ "ADP". 18СН 107Н ;===============~=========================== ; ОПРЕДЕЛЕНИЕ РОН. ;========================~================== ТЕКА ;ДВОИЧНОЕ СЕК EQU 20Н EQU 23Н WTEMP EQU 2 4 Н ;ВРЕМЯ 72. ИЗМЕРЕННОЕ ПАУЗЫ. ;ВРЕМЕННЫЙ. ЗНАЧЕНИЕ НАПРЯЖЕНИЯ А,
Устройство защиты от перепадов сетевого напряжения ТЕМР FLAG ANOD2 STEMP FTEMP DEA СОА EDA FLAGl СЕКl УСТА УСТАО YCTAl УСТА2 YCTI YCTIO YCTil YCTI2 EDI DEI COI TUI SEG ANOD ZPT COU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 25Н ;ВРЕМЕННЫЙ. 26Н ;РЕГИСТР 27Н ;ДВОИЧНОЕ 2 8Н 2 9Н ;ВРЕМЕННЫЙ. 2АН ;ИЗМЕРЕННОЕ ЗНАЧЕНИЕ ПО РАЗРЯДАМ, 2ВН ; А2, 2СН ;АО. ФЛАГОВ. ЗНАЧЕНИЕ КАТОДА. ;ВРЕМЕННЫЙ. Al. 2DH 2ЕН ;ДВОИЧНОЕ ЗЗН 34Н ;ДЕСЯТИЧНОЕ 35Н ; 1. 3 6Н ; 2. УСТАНОВЛЕННОЕ УСТАНОВЛЕННОЕ 38Н ;ДЕСЯТИЧНQЕ 39Н ЗАН ; 1. ; 2. 40Н ;ПОРАЗРЯДНЫЕ 41Н 43Н ; 1. ; 2 .· ; 3. 44Н ;СЕГМЕНТОВ. 45Н ;КАТОД, 46Н ;ЗАПЯТОЙ. 4АН ;СЧЕТЧИК 42f:I РАЗРЯДАМ, ЗНАЧЕНИЕ. О. , ;ДВОИЧНОЕ 37Н МАКСИМАЛЬНОЕ ПО УСТАНОВЛЕННОЕ УСТАНОВЛЕННОЕ МИНИМАЛЬНQЕ ПО РАЗРЯДАМ, РЕГИСТРЫ ИНДИКАЦИИ, ПОЗИЦИОННОЕ ЗНАЧЕНИЕ. О. О. ЗНАЧЕНИЕ. ПЕРЕКОДИРОВКИ. ;=============================================. ОПРЕДЕЛЕНИЕ БИТОВ РЕГИСТРА FLAG. 0->ВЫКЛЮЧЕНИЯ ИНДИКАЦИИ. 1->ПРЕРЫВАНИЯ 5 мс. 2->ЗАПЯТОЙ. 3->ЗАПЯТАЯ ЗА ИНДИКАТОРОМ. 4->УСТАНОВКА. 5->РАЗРЯД. 6->ВКЛЮЧЕНИЯ ИНДИКАЦИИ. 7->ПЕРЕПОЛНЕНИЯ. ;=================~===========~=============== ОПРЕДЕЛЕНИЕ БИТОВ РЕГИСТРА 0->ИНДИКАЦИЯ ЧЕРЕЗ 1->-ЧЕРЕЗ 1 2·->ПРОШЛО О, 5 3->ПРОШЛА 1 сек. 0,5 FLAGl. сек. сек. сек. ;============================================= ; 1. ПУСК ;===============~======= ORG GOTO ORG GOTO О INIT 4 PRER ;=====±=============ж========== ; 2. ВЫБОРКА ИЗ ПАМЯТИ. ;==~=========================== MIR BSF CLRF STATUS,6 EEADR ;ПЕРЕХОДИМ В ;НАЧНЕМ С БАНК НУЛЕВОГО 2. АДРЕСА. 73
Устройства с использованием АЦП MOVLW Ох37 ;АДРЕС ЗАПИСИ ПЕРВОГО РЕЗУЛЬТАТА ;СЧИТЫВАНИЯ. CALL REZAP ;СЧИТАЕМ MOVLW MOVWF MOVLW . 16 EEADR ;НУЛЕВОЙ АДРЕС ДЛЯ МАКСИМУМА . Ох33 ;АДРЕС ЗНАЧЕНИЕ. МАR ЗАПИСИ ПЕРВОГО РЕЗУЛЬТАТА ;СЧИТЫВАНИЯ. CALL BCF CALL GOTO REZAP STATUS,6 ;СЧИТАЕМ ЗНАЧЕНИЕ. ;ПЕРЕХОДИМ В БАНК О. МAIN IND ;НА ИНДИКАЦИЮ. FSR ;ЗАПИШЕМ НАЧАЛЬНЫЙ АДРЕС В РЕГИСТР REZAP MOVWF ;КОСВЕННОЙ АДРЕСАЦИ~. REZAN BS'F BCF BSF BCF BTFSC GOTO BTFSS GOTO MOVLW STATUS,5 EECONl,7 EECONl, О STATUS,5 EEADR,0 $+3 EEADR,1 $+9 .255 SUBWF EEDATA,O ;ПЕРЕХОДИМ В БАНК 3. ;ВЫБИРАЕМ ПАМЯТЬ ДАННЫХ (EEPROM). ;ИНИЦИАЛИЗИРУЕМ ЧТЕНИЕ. ;ПЕРЕХОДИМ В БАНК ;ЕСЛИ АДРЕС НЕ 2. РАВЕН НУЛЮ, ·;то НЕОБХОДИМО ПРОВЕРИТЬ ЗНАЧЕНИЕ ;НА 255, ЧТО РАВНОСИЛЬНО ;ПУСТОЙ ПАМЯТИ, ЧТОБЫ НЕ ЗАЛЕТЕТЬ ;ПРИ ВЫБОРКЕ ЗНАЧЕНИЯ РАЗРЯДА ИЗ ТАБЛИЦЫ ;ПРИ ;В ИНДИКАЦИИ. НУЛЕВОМ АДРЕСЕ ВОЗМОЖНО ЗНАЧЕНИЕ 255 ;МАКСИМУМЕ. \ BTFSC CALL BTFSC CALL BTFSC CALL MOVFW MOVWF STATUS,2; REZ EEADR,0 REZ EEADR,1 REZ EEDATA INDF INCF BTFSC RETURN INCF GOTO EEADR,1 EEADR,2 FSR,1 REZAN ;НЕТ, MOVLW SUBWF BTFSC CLRF RETURN . 10 EEDATA,0 STATUS,O EEDATA ;ПРОВЕРИМ. ;НА.ОБНУЛЕНИЕ. ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ИЗ РЕГИСТРА ДАННЫХ ;В РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ ; (ФАКТИЧЕСКИ В РЕГИСТР ; УВЕЛИЧИМ АДРЕС И ' С АДРЕСОМ В ;ПРОВЕРИМ, 4 РАВЕН ЛИ ОН ;ДА. УВЕЛИЧИМ АДРЕС РЕГИСТРА ЗАПИСИ. ;ПОВТОР~М. REZ ;ОБНУЛИМ НЕ 9. БОЛЕЕ ЗНАЧЕНИЕ. ; ======!===================================================== ; 3. ПЕРЕКОДИРОВКА ДВОИЧНЫХ УСТАНОВОК И ПРОВЕРКА.МАКСИМУМА. ;=================~========================================= PERE MOVFW CALL ADDWF 74 FSR) " DEI DEBIN E'or, о ;ДВОИЧНОЕ ;НЕ ЗНАЧЕНИЕ ВСЕХ ДОЛЖНО ПРЕВЫШАТЬ РАЗРЯДОВ 255. В
Устройство защиты от перепадов сетевого напряжения MOVWF MOVFW CALL BCF ADDWF BTFSC BSF MOVFW ADDWF RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN GOTO GOTO ТЕМР COI COBIN STATUS,O; ТЕМР,1 ;ЕСЛИ STATUS,0 FLAG,7 TUI РС, 1 ;ТО MIYC ;МИНИМУМ. МАУС ;МАКСИМУМ. ЕСТЬ ПЕРЕПОЛНЕНИЕ, ;УСТАНОВИМ ФЛАГ ПЕРЕПОЛНЕНИЯ. ;ВЫБЕРЕМ МАКСИМУМ ИЛИ МИНИМУМ. ;==================================~===================== ; 4. ТАБЛИЦЫ ПЕРЕВОДА ДЕСЯТКОВ И СОТЕН _В ДВОИЧНОЕ ЧИСЛО. ;======================================================== DEBIN ADDWF RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW РС, 1 .о .10 .20 .30 .40 .50 .60 .70 .80 .90 COBIN ADDWF RETLW RETLW - RETLW РС,1 .о .100 .200 ;================~=====================~======== ; 5. ЗАПИСЬ РЕГИСТРОВ РЕЖИМА В РЕГИСТРЫ ИНДИКАЦИИ. ;=============================================== VUBOP MOVFW ApDWF RETURN RETURN RETURN RETURN RETURN TUI ;ПО ЗНАЧЕНИЮ.3-ГО РС,1 ;ВЫБЕРЕМ РАЗРЯДА РЕЖИМ ИНДИКАЦИИ. 75
Устройства с использованием АЦП RETURN RETURN RETURN RETURN RETURN GOTQ GOTO GOTO GOTO GOTO AIN AINOS AINl MIIN ;ИНДИКАЦИЯ ;ИНДИКАЦИЯ УСТАНОВЛЕННОГО МИНИМУМА. МAIN ;ИНДИКАЦИЯ УСТАНОВЛЕННОГО МАКСИМУМА. ;ВХОДА А ;ВХОДА А ЗНАЧЕНИЯ ВХОДА А. 0,5 сек. 1 сек. AINOS BSF RETURN FLAGl,O BSF BCF .RETURN FLAGl,1 FLAGl,O AINl AIN BCF BCF FLAGl,O FLAGl,1 BCF BCF MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF RETURN' FLAGl,2 FLAGl,3 EDA EDI DEA DEI MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF RETURN YCTIO EDI YCTil DEI YCTI2 COI AINI СОА CGI MIIN МAIN MOVFW MOVWF MO'{FW MOVWF MOVFW MOVWF RETURN УСТ АО EDI YCTAl DEI УСТА2 COI ;======================================== ; 6. ЗАПИСЬ УСТАНОВЛЕННЫХ ЗНАЧЕНИЙ В ПАМЯТЬ. ;======================================== MIZ MOVFW MOVWF MOVFW MOVWF MOVFW 76 EDI YCTIO ·DEI YCTil COI ;ПЕРЕПИШЕМ ИНДИКАЦИЮ МИНИМУМА ;В РЕГИСТРЫ МИНИМУМА.
Устройство защиты от перепадов сетевого напряжения MOVWF BSF CLRF MOVLW GOTO YCTI2 STAf'US,6 EEADR MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF BSF MOVLW MOVWF MOVLW EDI ;ПЕРЕПИШЕМ ИНДИКАЦИЮ МАКСИМУМА УСТ АО ;В DEI YCTAl COI ; ;ПЕРЕХОДИМ В БАНК 2. ;ОБНУЛИМ АДРЕС ЗАПИСИ. Ох37 ;ЗАПИШЕМ АДРЕС ПЕРВОГО ZAPIS ;ИДЕМ НА РЕГИСТРА ЗАПИСИ. ЗАПИСЬ. МАZ РЕГИСТРЫ МАКСИМУМА. УСТА2 .STATUS,6 .16 EEADR ;ПЕРЕХОДИМ В БАНК ;РАВНОСИЛЬНО НУЛЕВОМУ АДРЕСУ ;ДЛЯ ЧИСЕЛ Ох33 ;ЗАПИШЕМ FSR ;АДРЕС 2. (10000) 0-3. АДРЕС ПЕРВОГО РЕГИСТРА ЗАПИСИ. ZAPIS MOVWF ПЕРВОГО РЕГИСТРА> В' РЕГИСТР ;КОСВЕННОЙ АДРЕСАЦИИ. ZAPIN MOVFW MOVWF BSF BCF BSF BCF MOVLW MOVWF MOVLW MOVWF BSF BTFSC GOTO BCF INCF BTFSC GOTO INCF GOTO BCF BSF RETURN INDF EEDATA ;ЗНАЧЕНИЕ РЕГИСТРА ·sтATUS, 5 EECONl, 7 EECONl,2 INTCON,7 ;ПЕРЕХОДИМ В ;ЗАТЕМ В РЕГИСТР 3. БАНК ;ВЫБИРАЕМ ПАМЯТЬ ;РАЗРЕШАЕМ > В РАБОЧИЙ РЕГИСТР ДАННЫХ. ДАННЫХ. ЗАПИСЬ. ;ЗАПРЕТ ПРЕРЫВАНИЙ. Ох55 ;ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ EECON2 ;ПРИ ОхАА ;ПРЕДОХРАНЯЕТ ОТ СЛУЧАЙНОЙ ЗАПИСИ. EECON2 EECONl, 1 EECONl,1 $-1 STATUS,5 EEADR,l EEADR,2 $+3 FSR,l ZAPIN STATUS,6 INTCON,7 ЗАПИСИ В ПАМЯТЬ. ;ИНИЦИАЛИЗИРУЕМ ЗАПИСЬ. ;ЖДЕМ ЗАПИСИ. ОКОНЧАНИЯ ;ПЕРЕХОДИМ В БАНК 2. ;УВЕЛИЧИМ АДРЕС ЗАПИСИ ;ЕСЛИ РАВЕН ;ТО ОН ЕЩЕ НЕ УВЕЛИЧИМ АДРЕС ;ПОВТОРИМ НА 1. 4, РЕГИСТРА ДЛЯ ЗАПИСИ. ЗАПИСЬ. ;ПЕРЕХОДИМ В ;РАЗРЕШАЕМ ПРЕРЫВАНИЯ. БАНК О. ;ВЕРНЕМСЯ. ;======================================= ; 7. ТАБЛИЦА СЕГМЕНТОВ ДЛЯ ОБЩЕГО КАТОДА. ;======================================= SEGDATA ; 7' PCL,F RETLW RETLW RETLW RETLW RETLW RETLW RETLW В'00111111' КАТОД в 1 1 00000110 1 01001111' В'01100110' в 1 в 1 о. АНОД В'01011011' в 6, 5, 4' 3, 2, 1, Е, D, С, В, А. ; н, G, F, ADDWF 01101101' 01111101' о В' 11000000' 1 в 1 11111001' ; 2 В'10100100' 3 в 1 10110000 1 4 В'10011001' 5 В'10010010' 6 В'10000010' 77
Устройства с использованием АЦП RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW B'OOOOOlll' B'Olllllll' B'OllOllll' .о 7 B'lllllOOO' 8 В'10000000' 9 В'10010000' 3-Й Р~ЗРЯД ВЫКЛЮЧЕН . В'01001000' В'01001001' B'OlOOOOOO' В'01000110' - B'lOllllll' + В'10111001' ;============================== ; 8. ИНДИКАЦИЯ ;============================== IND BTFSC GOTO MOVLW MOVWF CLRF FLAG,O ;ЕСЛИ ИНДИКАЦИЯ сон ;ТО .254 ANOD ANOD2 ;УСТАНАВЛИВАЕМ НУЛЕВОЙ РАЗРЯД В ИДЕМ НА ВЫКЛЮЧЕНА, ОЖИДАНИЕ ВКЛЮЧЕНИЯ ИНДИКАЦИИ. ;ПОЗИЦИОННОЕ ЗНАЧЕНИЕ КАТОДА. ;ОБНУЛИМ ; ДВОИЧНОЕ ЗНАЧЕНИЕ АНОДА (КАТОДА). INDO BCF MOVFW CALL CALL CALL FLAG, 1 EDI INDZ ADPO ZD~M ;НА BCF MOVFW CALL CALL FLAG, 1 DEI INDZ ZDEM ;ВСЕ BCF MOVFW CALL CALI,. FLAG,l COI INDZ ZDEM BCF MOVFW FLAG,l TUI ;СБРОСИМ ФЛАГ ;З~ГРУЖАЕМ ПРЕРЫВАНИЯ. РЕГИСТР ИНДИКАЦИИ. ;ПРОИНДИЦИРУЕМ. ;ПРОВЕРИМ НАПРЯЖЕНИЕ. ОЖИДАНИЕ , ПРЕРЫВАНИЯ. INDl ОСТАЛЬНЫЕ ;АНАЛОГИЧНО РАЗРЯДЫ НУЛЕВОМУ. ;НА ОЖИДАНИЕ ПРЕРЫВАНИЯ. ;~А ОЖИДАНИЕ ПРЕРЫВАНИЯ. IND2 IND3 ;СБРОСИМ ФЛАГ ;ЗАГРУЖАЕМ ПРЕРЫВАНИЯ .. РЕГИСТР ИНДИКАЦИИ 3-ГО ;РАЗРЯДА. CALL CALL CALL GOTO INDZ ;ПРОИНДИЦИРУЕМ. КЕУ ;ПРОВЕРИМ ZDEM· IND ;НА SEGDATA SEG FLAG,3 $+5 ZPT ANOD2,0 ;ОПРЕДЕЛИМ КНОПКИ. ОЖИДАНИЕ ПРЕРЫВАНИЯ. ;НА ИНДИКАЦИЮ НУЛЕВОГО РАЗРЯДА. INDZ CALL MOVWF BTFSS GOTO MOVFW SUBWF SKPNZ ;ЗАПИШЕМ ;ЕСЛИ ;ТО СЕМИСЕГМЕНТНОЕ ЕГО ~ЕТ В ЗНАЧЕНИЕ. РЕГИСТР. УСТАНОВКИ, ЗАПЯТАЯ НЕ ВЫСВЕЧИВАЕТСЯ. ;СРАВНИМ РАЗРЯД ЗАПЯТОЙ ;С РАЗРЯДОМ ИНДИКАЦИИ. ;ЕСЛИ ОНИ НЕ СОВПАДАЮТ, ТО ПРОПУСТИМ ;УСТАНОВКУ ФЛАГА. BSF BTFSS\ GOTO BSF 78 FLAG,2 FLAG, 2 $+2 SEG,7 ;ИНАЧЕ УСТАНОВИМ ФЛАГ ЗАПЯТОЙ. ;ЕСЛИ ФЛАГ УСТАНОВЛЕН, ;ТО ВКЛЮЧИМ СЕГМЕНТ ЗАПЯТОЙ.
Устройство защиты от перепадов сетевого напряжения MOVFW MOVWF MOVFW MOVWF BCF BSF SEG PORTC ANOD PORTB FLAG,2 STATUS,0 ;ПЕРЕПИШЕМ ;В ПОРТ ;В~ЮЧИМ РАЗРЯД. ;СБРОСИМ ФЛАГ ЗАПЯТОЙ. ;ОБНУЛИМ НУЛЕВОЙ РАЗРЯД, ;ЗАПИСАЛСЯ RLF INCF ANOD,1 ANOD2,1 ;СДВИНЕМ ЧТОБЫ В АНОД НОЛЬ. НОЛЬ НА РАЗРЯД ВЛЕВО. ;УВЕЛИЧИМ ДВОИЧНОЕ. ЗНАЧЕНИЕ ; RETURN ЗНАЧЕНИЕ С. АНОДА (КАТОДА). ;ВЕРНЕМСЯ. zщ::м BTFSC RETURN GOTO FLAG,l ;ОЖИДАНИЕ ПРЕРЫВАНИЯ. ZDEM ;============================ ; 9. ВЫБОР РАЗРЯДА-УСТАНОВКИ. ;============================ УСТ BTFSS RETURN BCF MOVFW ADDWF GOTO GOTO GOTO GOTO GOTO PORTB,4 ;ПОКА КНОПКА НАЖАТА, ;ВЫБОРА НЕТ. FLAG,4 ZPT ;СБРОСИМ ;ГДЕ ФЛАГ ЗАПЯТАЯ, УСТАНОВКИ. ТОТ РАЗРЯД И УСТАНАВЛИВАЕМ. РС,1 УСТО YCTl УСТ2 УСТЗ АВСУ ;================================ ; 10. УСТАНОВКА ЗНАЧЕНИЙ РАЗРЯДОВ. ;=~========================~===== УСТО INCF MOVLW SUBWF BTFSC CLRF GOTO EDI,1 .10 EDI,O STATUS,O EDI PERE ;РАЗРЯД УСТАНАВЛИВАЕТСЯ ДО INCF MOVLW SUBWF BTFSC CLRF GOTO DEI,1 .10 DEI,0 STATUS,O DEI PERE ;РАЗРЯД УСТАНАВЛИВАЕТСЯ ДО INCF MOVL.W SUBWF BTFSC CLRF GOTO COI,1 .3 COI,O STATUS,O COI PERE ;РАЗРЯД УСТАНАВЛИВАЕТСЯ ;НА 9. ПЕРЕКОДИРОВКУ. YCTl ;НА 9. ПЕРЕКОДИРОВКУ. УСТ2 ДО 2. ';НА ПЕРЕКОДИРОВКУ. 79
Устройства с использованием АЦП ;================================ ; 11. УСТ~НОВКА РЕЖИМА ИНДИКАЦИИ. ;=====~========================== УСТ3 INCF MOVLW SUBWF BTFSC GOTO MOVLW SUBWF BTFSC GOTO TUI,l .15 TUI,0 .STATUS, ;УВЕЛИЧИМ ЗНАЧЕНИЕ. ;ПРОВЕРИМ. НЕ 14. БОЛЕЕ О УСТ13 ;ЕСЛИ БОЛЬШЕ, . 13 TUI,0 STATUS,0 VUBOP ;УСТАНОВКА ПРИ УСТАНОВИМ МИНИМУМ. ;ПЕРЕЗАПИШЕМ ЗНАЧЕНИИ НЕ МЕНЕЕ ЗНАЧЕНИЯ РЕЖИМА В 13 . РЕГИСТРЫ ;ИНДИКАЦИИ. УСТ13 MOVLW MOVWF GOTO . 13 TUI VUBOP ; ЕСЛИ МЕНЬШЕ 13,. ТО УСТАНОВИМ МИНИМУМ . ;ЗНАЧЕНИЯ РЕЖИМА INCF MOVLW SUBWF BTFSS GOTO TUI,1 . 13 TUI,O STATUS,0 VUBOP ;УВЕЛИЧИМ ЗНАЧЕНИЕ. MOVLW MOVWF GOTO .10 TUI VUBOP В РЕГИСТРЫ ИНДИКАЦИИ. АВСУ ;ИНДИКАЦИЯ ;ЕСЛИ ПРИ БОЛЬШЕ, ;ЗНАЧЕНИЯ ЗНАЧЕНИИ ТО НЕ БОЛЕЕ 12 . УСТАНОВИМ МИНИМУМ. РЕЖИМА В РЕГИСТРЫ ИНДИКАЦИИ. АВСУО ;ИНДИКАЦИЯ ПРИ ЗНАЧЕНИИ НЕ МЕНЕЕ 10. , \ ;З~АЧЕНИЯ РЕЖИМА В РЕГИСТРЫ ИНДИКАЦИИ. ;=============================== ; 12. УСТАНОВКА РАЗРЯДА ЗАПЯТОЙ. ;============~================== ZAPT BTFSS PORTB,.S BCF DECF MOVLW SUBWF BTFSS GOTO MOVLW MOVWF BCF GOTO MOVLW SUBWF BTFSC CALL BSF GOTO ;ЕСЛИ ;ТО RE.ТURN FLAG,5 ZPT,1 .255 ZPT,O STATUS,2 $+5 '. 4 ZPT FLAG,3 КНОПКА НАЖАТА, ВЕРНЕМСЯ. ;СБРОСИМ ФЛАГ УСТАНОВКИ. ;ВЫЧИТАЕМ 1. ;ПРОВЕРИМ ПЕРЕХОД ;ЧЕРЕЗ НОЛЬ. ;ЕСЛИ НЕТ ; ЕСЛИ ПЕРЕХОДА ЧЕРЕЗ ЕСТЬ ;ЗАПЯТУЮ ПЕРЕХОД, АВСУО ;ИНДИКАЦИЯ .3 ZPT,0 STATUS,2 ZAP13 FLAG,3 VUBOP ;ЕСЛИ А 80 .13 TUI ВКЛЮЧИМ ФЛАГ. УСТАНОВКИ. . ЗНАЧЕНИЕ~РАВНО УСТАНОВИМ 3 3, РАЗРЯД ;НА МИНИМУМ. ;ВКЛЮЧИМ ФЛАГ УСТАНОВКИ. ;ЗНАЧЕНИЯ РЕЖИМА В ;ЗНАЧЕНИЕ РАЗРЯдА РЕГИСТРЫ ИНДИКАЦИИ. ZAP13 MOVLW MOVWF RETURN О, УСТАНОВИМ ЗА ИНДИКАТОРОМ. ;СБРОСИМ ФЛАГ ;ТО ·ТО ;И ИН~ИКАЦИЯ МИНИМУМА.
Устройство защиты от перепадов сетевого напряжения :=======~============================================ ; 13. УСТАНОВКА ОГРАНИЧЕНИЙ ПО МАКС. И МИН. ЗНАЧ~НИЯМ. :==================================================== .MIYC BTFSC GOTO MOVFW MOVWF SUBLW BTF$S GOTO FLAG,7 ;ЕСЛИ MllO ;ТО БЫЛО ПЕРЕПОЛНЕНИЕ, УСТАНОВИМ МИНИМУМ. ТЕМР ;СРАВНИМ YCTI .100 STATUS,0 ;С-УСТАНОВЛЕННЫМ МИНИМУМОМ. М220 ;ТО MOVLW MOVWF CLRF CLRF MOVLW MOVWF BCF GOTO .1 COI DEI EDI .100 YCTI FLAG,7 MIZ ;УСТАНОВИМ МИНИМУМ . MOVFW SUBLW BTFSS GOTO GOTO YCTI . 219 STATUS,0 ;СРАВНИМ MllO ;ТО МIZ ;ЗАПИШЕМ УСТАНОВКУ .5 DEI EDI .2 COI .255 ;УСТАНОВКА МАКСИМАЛЬНОГО ЗНАЧЕНИЕ ;ЕСЛИ МЕНЬШЕ, СРАВНИМ МАКСИМУМ ПО МИНИМУМУ. МllO ;СБРОСИМ ФЛАГ ;ЗАПИШЕМ ПЕРЕПОЛНЕНИЯ. УСТАНОВКУ В ПАМЯТЬ. М220 ;НЕ . БОЛЕЕ ;ЕСЛИ 219. БОЛЬШЕ, УСТАНОВИМ МИНИМУМ. В ПАМЯТЬ. М255 MOVLW MOVWF MOVWF MOVLW MOVWF ~OVLW ;ЗНАЧЕНИЯ ПО МАКСИМУМУ. MOVWF BCF GOTO УСТА FLAG,7 ;СБРОСИМ ФЛАГ МАZ ;ЗАПИШЕМ BTFSC GOTO MOVFW MOVWF SUBLW BTFSS GOTO MOVLW MOVWF MOVWF MOVWF MOVLW MOVWF BCF GOTO FLAG,7 ;ЕСЛИ М255 ;ТО УСТАНОВИМ МАКСИМУМ. ТЕМР ;СРАВНИМ ПО МИНИМУМУ УСТА· ;МАКСИМАЛЬНОГО .221 STATUS,0; ;ЕСЛИ МАZ ;ТО ПЕРЕПОЛНЕНИЯ. УСТАНОВКУ В ПАМЯТЬ. МАУС БЫЛО ПЕРЕПОЛНЕНИЕ, ЗНАЧЕНИЯ. БОЛЬШЕ, 1 ЗАПИШЕМ УСТАНОВКУ .2 ;ЕСЛИ МЕНЬШЕ, DEI COI EDI . 222 ;ТО УСТАНОВИМ В ПАМЯТЬ. МИНИМУМ. УСТА FLAG,7 ;СБРОСИМ ФЛАГ ПЕРЕПОЛНЕНИЯ. МАZ ;ЗАПИШЕМ УСТАНОВКУ В ПАМЯТЬ. 81
Устройства с использованием АЦП. ;=================================================== ; 14. АЦП - ПРЕОБРАЗОВАНИЯ (ИЗМЕРЕНИЕ ВХОДНЫХ ВЕЛИЧИН). ;===============~=================================== ADPO MOVLW MOVWF CALL MOVFW MOVWF CALL 'MOVWF CALL MOVWF MOVFW MOVWF CLRF MOVLW SUBWF BTFSC GOTO BTFSS GOTO BTFSS GOTO GOTO BTFSS GOTO BTFSS GOTO В'11000001' ;СИНХРОНИЗАЦИЯ ADCONO ZAD ;ГЕНЕРАТОРА, ТЕКА ;ПОКА ОТ ВХОД ЗАРЯЖАЕТСЯ RC О, ВКЛЮЧЕНИЕ КОНДЕНСАТОР АЦП (УВХ). АЦП, ТЕМР BI'DE2 ;ПЕРЕКОДИРУЕМ СОА ;ИЗ BIDEl DEA ;С 2-ГО В 2 ТЕКУЩЕЕ ЗНАЧЕНИЕ 10-Е ВХОДА С. ТЕМР EDA ТЕМР .13 TUI,0 STATUS,O ADPl FLAGl,O $+4 FLAGl,2 ADPl ADPI FLAGl,l ADPI FLAGl,3 ADPl ADPI CALL AINI BSF BTFSC GOTO MOVFW MOVWF MOVFW ADCONO, 2 ADCONO, 2 $-1 ADRESH ;ВКЛЮЧИМ ТЕКА ;СРАВНИМ УСТА ;РЕЗУЛЬТАТ ADPl ПРЕОБРАЗОВАНИЕ. ;ОЖИДАЕМ ЗАВЕРШЕНИЯ ;ПРЕОБРАЗОВАНИЯ ;ПЕРЕПИШЕМ РЕЗУЛЬТАТ С ПРЕОБРАЗОВАНИЯ УСТАНОВЛЕННЫМ МАКСИМАЛЬНЫМ ;ЗНАЧЕНИЕМ. SUBWF BTFSC GOTO ТЕКА,0 STATUS,0 ADPU ;ЕСЛИ БОЛЬШЕ МАКСИ~УМА, ТО ВЫКЛЮЧИМ ;ВЫХОД. MOVFW SUBWF YCTI ТЕКА,О ;СРАВНИМ ;РЕЗУЛЬТАТ С УСТАНОВЛЕННЫМ МИНИМАЛЬНЫМ ;ЗНАЧЕНИЕМ. BTFSS GOTO BCF RETURN STATUS,O ADPU PORTA, 4 ;ЕСЛИ МЕНЬШЕ МИНИМУМА, BSF RETURN PORT~,4 ;ВЫКЛЮЧИМ MOVLW . 25 ADPU ZAD 82 ВЫХОД. ТО ВЫКЛЮЧИМ ВЫХОД.
Устройство защиты от перепадов сетевого напряжения ADDLW BTFSS GOTO RETURN. -1 STATUS,2 $-2 :======================================= ; 15. ПЕРЕКОДИРОВКА из 2-ГО в 2_10. ;======~================================ BIDE2 CLRF ADDLW BTFSS GOTO MOVWF cou ;ОБНУЛЯЕМ -.100 STATUS,0 $+4 ;ВЫЧТЕМ ТЕМР ;ИНАЧЕ ;ЕСЛИ ;ТО СЧЕТЧИК. 100. ЕСТЬ ПЕРЕХОД ЗАВЕРШАЕМ ЧЕРЕЗ НОЛЬ, ПЕРЕКОДИРОВКУ. ПЕРЕПИШЕМ НОВОЕ ЗНАЧЕНИЕ ВО ;ВРЕМЕННЫЙ. INCF GOTO MOVFW COU,l $-5 COU- ;УВЕЛИЧИМ СЧЕТЧИК. ;ПОВТОРИМ ВЫЧИТАНИЕ. ;ЗНАЧЕНИЕ' СЧЕТЧИКА (РАВНО ЧИСЛУ СОТЕН) ;ПЕРЕПИШЕМ В РАБОЧИЙ РЕГИСТР. RETURN ;ВЕРНЕМСЯ. BIDEl 'tLRF MOVFW ADDLW BTFSS GOTO MOVWF INCF GOTO MOVFW RETURN cou ;ПЕРЕКОДИРОВКА ДЕСЯТКОВ ТЕМР ;АНАЛОГИЧНА ПЕРЕКОДИРОВКЕ СОТЕН. -.10 STATUS,0 $+4 ТЕМР COU,l $-5 cou ;================================================================ ; 16. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТР'ОВ ПРИ ПРЕРЫВАНИИ. ;================================================================ PRER MOVWF MOVFW MOVWF MOVFW MOVWF BCF BCF INCF MOVLW SUBWF BTFSS GOTO BSF CLRF INCF BTFSS GOTO MOVLW SUBWF BTFSS GOTO WTEMP STATUS STEMP FSR FTEMP STATUS,6 STATUS,5 СЕК,1 ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ W И ; STATU_S, ;FSR. ;ДЕЛИТЕЛЬ НА 5. .5 СЕК,0 STATUS,2 REPER FLAG,l ;ЕСЛИ СЕК ;ОБНУЛИМ. РАВНО 5, ;ТО УСТАНОВИМ ФЛАГ 5 мс. CEKl,l FLAGl,0 PRERl .100 tEKl,0 STATUS,2 REPER 83
Устройства с использованием АЦП BSF CLRF GOTO FLAGl,2 ;ПРОIШЮ О, сек. 5 СЕКl REPER PRERl BTFSS GOTO MOVLW SUBWF BTFS? GOTO BSF CLRF REPER MOVFW MOVWF MOVFW' MOVWF MOVFW BCF RETFIE FLAGl,1 ;ЕСЛИ УСТАНОВЛЕН ФЛАГ 1 сек, $+6 .200 CEKl,O STATUs,·o REPER FLAGl,3 5 ОТСЧИТАЕМ: 1 ;ПРОIШ1А мс Х 200 1 сек. сек. СЕКl ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ЗНАЧЕНИЙ. STEMP , STATUS FTEMP FSR WTEMP INTCON,2 ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ: ;STATUS, ; FSR, ;W. ;СБРАСЫВАЕМ ФЛАГ ПРЕРЫВАНИЯ ОТ TMRO. ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ. ;=:================с============== ; 17. ОЖИДАНИЕ ВКЛЮЧЕНИЯ ИНДИКАЦИИ. ;================================= сон CLRF BTFSS GOTO BCF CALL CALL BCf CALL CALL GOTO PORTC FLAG,O IND FLAG,l ADPO ZDEM FLAG,l ;ВЫКЛЮЧИМ ВСЕ СЕГМЕНТЫ. ;ЕСЛИ ИНДИКАЦИЯ ;ИДЕМ НА ИНДИКАЦИЮ. ;ИНАЧЕ ;НА ПРОВЕРИМ ОЖИДАНИЕ КЕУ ;ПРОВЕРИМ ZDEM ; НА СОН ;ПОВТОРИМ. ВКЛЮЧЕНА, НАПРЯЖЕНИЕ. ПРЕРЫВАНИЯ. КНОПКИ. ОЖИДАНИЕ ПРЕРЫВАНИЯ .. ;====================== ; 18. ИНИЦИАЛИЗАЦИЯ. ;===============~====== INIT BCF BSF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF CLRF CLRF - MOVLW MOVWF MOVL.W мovwF STATUS,RPl STATUS,RPO .2 ;ПЕРЕХОДИМ В ADCON1л80H ;ВСЕ ПОРТА В'00000001' ;ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕР~М, OPTION ;РЕЗИСТОРЫ REGл80H В'10100000' ВХОДЫ БАНК 1. "А" АНАЛОГОВЫЕ ПОДКЛЮЧЕНЫ. ;РАЗРЕШЕНИ~ ПРЕРЫВАНИЙ ОТ 84 TMRO. INTCON РIЕ1л80Н ; ЗАПРЕЩЕНЫ ВСЕ ПЕРИФЕРИЙ,НЫЕ ПРЕРЫВАНИЯ. РIЕ2л80Н В' 00001011 '", ;RA0-RA2, RАЗ - НА ВХОД. АНАЛОГОВЫЕ ВХОДЫ. TRISAЛ80H В' 11110000' тюsвлsон ;RB4-RB7 НА ;RBO-RBЗ ВЫХОДЫ ВХОД. ВХОД - TRiscлsoн ;ВСЕ S~ATUS,RPO ;ПЕРЕХОДИМ В БАНК ВЫХОДЫ КНОПОК. УПРАВЛЕНИЯ ·мoVLW В'00001111' CLRF BCF 4). ... 001, (КРОМЕ К=4 СЕГМЕНТОВ. О. АНОДАМИ.
Устройство защиты от перепадов сетевого напряжения CLRF J?SF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF MOVLW MOVWF BSF MOVLW MOVWF CLRF CLRF GOTO J?ORTB PORTA,4 TlCON T2CON FLAG FLAGl EDI DEI COI TUI .3 ;РЕЛЕ ВЫКЛЮЧЕНО. ;ТАЙМЕР 1 ОТКЛЮЧЕН. ;ТАЙМЕР 2 ОТКЛЮЧЕН. ;ВСЕ ОБНУЛЯЕМ И ;ЗАПЯТАЯ В 3 ЗАЗРЯДЕ . ~РТ FLAG,3 . 14 TUI ;РЕЖИМ УСТАНОВКИ. ;УСТАНОВКА МАКСИМУМА СЕКl СЕК MIR ;======~==================================== ; ,19. УСТАНАВЛИВАЕМ. ПРОВЕРК~ КНОПОК. ;=========================================== КЕУ ;=========================================== END ;=========================================== .
Устройства с использованием АЦП Устройство защиты без ·индикации Этот вариант устройства защиты от перепадов сетевого напряжения не имеет индикации значения сетевого напряжения и установки напряжения включения защиты. В устройстве установлен наиболее распространенный в бытовой технике предел допустимых· рабочих напряжений от 180 до В. 250 При инициализации микроконтроллера можно установить любое необходи­ мое значение напряжения включения защиты. Отсутствие индикации позво­ лило использовать дешевый микроконтроллер с 14 выводами - PIC16F676. Данное устройство может найт:И применение для защиты одного дорогостоя­ щего прибора,, работающего от сети. Алгоритм работы программы микроконтроллера предельно прост: пус~ инициализация - измерение напряжения - сравнение с установками - включение (выключение) выхода. Далее процессор постоянно измеряет вход­ ное напряжение и подтверждает (либо отменяет) включение выхода. В качест­ ве источника опорного напряжения для АЦП, используется стабилизирован­ ное напряжение питания 5,12 в. Схема устройства показана на рис. 25. Источник питания для микроконт­ роллера построен по схеме, предложенной О. Ховайко , [18]. Конденсаторы Cl и С2, СЗ делят входное напряжение. Напряжение на конденсаторах С2, СЗ равно 5,5 В, а после диодного моста VD1-VD4 и фильтрации конденсатором С4 - 11 В. Стабилизатор с регулируемым выходным напряжением на микро­ схеме КР142ЕН12А установлен для того, чтобы была возможность точно вы­ ставить напряжение nитания, равное 5,12 В. Установку напряжения выполня­ ют переменным резистором RЗ. Если установить стабилизатор напряжения типа КР142ЕН5, то не~ного усложнится налаживание устройства. Измеряем0е напряжение выпрямляется однополупериодным выпрямите- · лем, в состав которого входит один из диодов моста VD1-VD4 и диод V:D5. Выпрямленное напряжение делится делителем R4, R5, Rб, фильтруется кон­ денсатором Сб и через резистор R7 поступает на измерительный вход микро­ контроллера. Переменным резистором Rб устанавливают коэффициент деле­ ния делителя таким, чтобы на входе микроконтроллера было напряжение, равное 1/100 от входного сетевого напряжения .. Микроконтроллер DDl н.е имеет времязадающих цепей, поскольку про­ RC- генератора частотой 4 МГц. граммно тактируется от внутреннего Силовая часть данного устройства отличается от предыдущего ·тем, что кнопка включения дежурного режима установлена параллельно самоблокиру­ ющему контакту реле Kl. Печатная плата устройства показана на рис. 26, а расположение элемен­ тов - на рис. 27. Плату можно сделать из односторонне фольгированного / стеклотекстолита, но лучше - из двухстороннего. Фольгу под микроконтрол­ лером и резистор'1;МИ R4-R 7 необходимо оставить в качестве экрана и под­ ключить ее к общему проводу в местах прохождения минусовых выводов кон­ денсаторов С2, СЗ. Автомат монтируют в корпусе подходящих размеров. На переднюю панель корпуса устанавливают светодиод 86 HLl, кнопку SBl и переключатель SAl. Ре-
RJ2 33 RJ3 JM -220В --220В Фаз.а \t'SI Вfl34x600 -220В
Устройства с использовqнием АЦП Рис. . Автомат защиты без индикации. 26. KНLJ t --220 в о 1. -~~ ВФ:н.1 ~· i о 2 ККI Печатная плата ~ 3 ] SBI KНLI Рис. зистор R 13 27. Расположение элементов на плате устанавливают под конденсат~ром С 1 со стороны печатных про­ водников. Печатная плата рассчитана на установку конденсатора С 1 типа К73-17 или К73-9 на рабочее напряжение не м.енее 400 В. Конденсаторы С2, С3 - оксид­ 30 В. Критерий выбора замены конденсаторов (не ,считая рабочего напряжения) Cl-C3 [18] - отсутстщ1е их нагрева при работе устройства не менее 30 мин. Конденсаторы С4-С6 - К50-35 или любые дру­ гие на рабочее напряжение 25" .30 В. Подстроечный резистор R3 - СП5-16ВА 0,5 Вт, резистор R6 - СПS-3. Реле· Kl - РПУ-2, МКУ-48, РПУ-0 или анало~ гичные, рассчитанные на напряжение 220 В. ные на рабочее напряжение Для нормальной работы стабилизатора .КР142ЕН12А необходим минима­ льный потребляемый ток 5 мА, поэтому необходимый ток устанавливают из- 88
Устройство защиты без индикации менением яркости светодиода. Кроме резисторов Rl-RЗ, основной ток по­ требляют ~ветодиод HLl и светодиод оптосимистора МОС3023М. Светодиоды работают попеременно и потребляют примерно одинаковый ток, равный ~ мА. Это тот редкий случай, когда нельзя уменьшать потребляемый ток. · Налаживание устройства защиты сводится к установке напрЯжения пита­ ния, которое должно .быть равно 5, 12 В. Для этого в смонтированной плате (без микроконтроллера) к выводу 10 микроконтроллера припаивают общий провод и подают напряжение сети. Подстроечным резистором RЗ устанавли­ вают напряжение питания 5, 12 В. Для контроля стабильности установленного напряжения выключают напряжение сети. Разряжают конденсатор С 1 отверт­ кой с изолированной ручкой. Припаивают дополнительный резистор сопро­ 1 кОм между общим проводом и плюсом питания, увеличивая та:­ тивлением ким образом ток нагрузки. Если после включения сети напряжение питания не изменилось, то настройку можно считать выполненной. Иначе производят подстройку напряжения питания резистором RЗ и проверяю~ напряжение с выпаянным дополнительным резистором. Далее необходимо проверить срабатывание защиты при напряжении сети, равном 250 В. Для этого устанавливают в микросхемную панель запрограмми­ рованный микроконтроллер и включают автомат в сеть. Если микроконтрол­ лер работает, а напряжение сети не выходит за границу устанрвленного напря­ жения, то. светодиод HLI не будет светиться. Для тоrо чтобы действительно убедиться в работе микроконтроллера, необходимо проверить частотомером или осциллографом налцчие импульсов частотой 1 МГц на выходе RA4 (вы­ вод 3 микроконтроллера). Далее включают автомат через ЛАТР или трансфор­ матор, имеющий обмотку с напряжением 2,50 В, и устанавливают срабатыва­ ние защиты резистором Rб. Контроль срабатывания защиты. производят по выключению реле К 1 и включению светодиода HL 1. Установку срабатывания защиты выполняют только по верхнему пределу напряжения. Защита по ниж- · 1 нему пределу напряжения установится автоматически. Программирование микроконтроллера граммой PonyProg2000, PIC16F676 можно выполнить про­ которая не имеет данных на этот микроконтроллер. Для этого необходимо установить микр6контроллер PIC16F84, имеющий оди­ наковую память и похожие биты регистра конфигурации. После выпшщения программирования появится надпись: ошибка программирования, код 21. Этот код ошибки обозначает несовпадение сравнения записанного и считан-· наго регистра конфигурации (защита памяти включена). Хотя ради придания коду защиты необходимого выражения ,пришлось выполнить вывод сброса на­ ружным включением, все равно биты 5-7 для PIC 16F84 должны читаться как ноль. А в микроконтроллере PIC16F676 эти биты должны быть установлены в единицу. П.оэтому и выдается ош.ибка 21. Если вы хотите убещпься в прави­ льности записи программы в микроконтроллер, то на чистый экран считайте программу и сравните ее с той, которая записывалась. Для данной разработки не принципиальна работа микроконтроллера с ка­ кой-либо точной частотой, поэтому калибровочная константа не записыва­ лась. Если вы будете использовать этот кристалл для друrих разработок, то не­ обхощrмо считать калибровочную константу и записать ее на корпусе микро­ контроллера. 89
Устройства с использованием АЦП Работа с данным устройством аналогична работе с автоматом защиты с индикацией напряжения. Только для контроля выхода из аварийной ситуации необходимо следить за выключением светодиода HLl без нажатия кнопки, поскольку автомат постоянно включен в сеть. Для начала работы автомата не­ обходимо кратковременно нажать кнопку SB 1. Если устройство используется для одного прибора, то переключатель SAl можно не устанавливать. Еще более простая схема данного устройства показана на рис. 28. В этой схеме отсутствует микросхемный стабилизатор напряжения и индикация. Ста­ билитрон 1N4733A на напряжение 5,1 В. При включении защиты устройство защиты отключается от сети. С! Rl 47 0.47 мк \DЗ С2 470 мк + \D2 1 vD4 IN4733A I vDl-vDЗ I\Ц102Б 5.l в -220В DDI \Dl' \О !"'- Фаза RCO 2 \О ~ R4* 2к 14 lYcc GND VSI \О u ВГ134х600 А:: lТI VD5 сз 47 2 4 МОС3023М мк IN4733A -220В R7270 Рис. ЗАЩИТА ДОМА ОТ 28. ПЕРЕПАДОВ Устройство защиты без индикации НАПРЯЖЕНИЯ СЕТИ. С ФИКСИРОВАННЫМ УРОВНЕМ ЗАЩИТЫ 180-250 В. РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ. ДЛЯ СВОБОДНОГО ИСПОЛЬЗОВАНИЯ РАДИОЛЮБИТЕЛЯМИ. п.ВЕЙДЕЛЕВКА, БЕЛГОРОДСКОЙ. saes@mail.ru ПРОГРАММА = FAZA.ASM ВЕРСИЯ:.24-03-04. АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, ВЕРСИЯ: 7.40.40. #INCLUDE <Pl6F676.INC> CONFIG 3.FFDH ;========================================~=========== ; ИСПОЛЬЗУЕТСЯ ВНУТРЕННИЙ ГЕНЕРАТОР ЧАСТОТОЙ 4,0 МГц. ;========~====~====================================== 90 RнАГР R6 270
Устройство защ~ты без индикации ;~======================================== ; РЕГИСТРЫ РСН. ;==7====================================== INDF TIMERO OJ::'TIONR РС STATUS FSR PORTA PORTC TRISA TRISC INTCON PIRl PIE.1 TMRlL TMRlH TlCON CMCON VRCON PCON OSCCAL ANSEL WPUA IOCA ADRESH· ADRESL EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU оон ;ДОСТУП ОlН К ПАМЯТИ ЧЕРЕЗ FSR. 81Н ;TMRO. ;OPTION (RPO=l}. 02Н ;СЧЕТЧИК КОМАНД. озн ;РЕГИСТР 04Н ;РЕrИСТР КОСВЕННОЙ-АДРЕСАЦИИ. оsн ;ПОРТ А ВВОДА/ВЫВОДА. 07Н ;ПОРТ 85Н ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А. 87Н ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА овн G СОСТОЯНИЯ АЛУ. ВВОДА/ВЫВОДА. С. ОЕН ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ. ;РАЗРЕШЕНИЯ ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. ;РЕГИСТР РАЗРЕШЕНИЯ ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. ;1'1J}АДШИЙ РЕГИСТР ТАЙМЕРА 1. OFH lOH ;СТАРШИЙ РЕГИСТР ТАЙМЕРА 1. ;РЕГИСТР УПРАВЛЕНИЯ ТАЙМЕРОМ 19Н ;РЕГИСТР УПРАВЛЕНИЯ 99Н ;РЕГИСТР ИСТОЧНИКА ОПОРНОГО осн вен ВХОДАМИ 1. "А". НАПРЯЖЕНИЯ. ВЕН 90Н "_ 91Н 95Н 96Н lEH 9ЕН ;=========================================== ; ОПРЕДЕЛЕНИЕ РОН. ;=========================================== EQU TEKL EQU УСТА EQU YCTI EQU ТЕКН 20Н ;ИЗМЕРЕННОЕ 21Н ;СТАРШИЙ И МЛАДШИЙ РЕГИСТРЫ. 22Н ;УСТАНОВЛЕННОЕ 23Н ;УСТАНОВЛЕННОЕ МИНИМАЛЬНОЕ ЗНАЧЕНИЕ НАПРЯЖЕНИЯ, МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ. ЗНАЧЕНИЕ. ;=====~======================================= ; 1. ПУСК :=================~===== ORG GOTO NOP NOP NOP NOP NOP о INIT ;====================== ; 2. ИНИЦИАЛИЗАЦИЯ. ;====================== INIT BSF CLRF MOVLW MOVWF MOVLW MOVWF CLRF STATUS,5 OSCCAL OFFH АDСОNlлвон ; ТАКТ АЦП ОТ ВНУТРЕННЕГО ГЕНЕРАТОРА 500 кГц. В'1000000' OPTION INTCON RЕGлвон 91
Устройства с исгiользованием АЦП РIЕ1лаон CLRF MOVLW в 1 00111111' TRISAл8oн MOVWF тRisсл8он CLRF VRCONЛ80H CLRF РСОNл8он CLRF WРUАлаон CLRF rосАл8он CLRF MOVLW .1 ANSELЛ80H MOVWF BCF STATUS,RPO PORTC CLRF CLRF . TlCON .7 MOVLW MOVWF CMCON MOVLW . 240 MOVWF УСТА MOVLW .180 MOVWF YCTI 1 ;ЗАПРЕЩЕНЫ ВСЕ ПЕРИФЕРИЙНЫЕ ПРЕРЫВАНИЯ. ;ВСЕ ВХОДЫ. ;ВСЕ ВЫХОДЫ. ;ИОН ОТКЛЮЧЕН: ;ПРЕРЫВАНИЯ ПО ПИТАНИЮ .ЗАПРЕЩЕНЫ. ;ПОДТЯГИВАЮЩИЕ, РЕЗИСТОРЫ ;ПРЕРЫВАНИЯ ;ВЫБРАН АНАЛОГОВЫЙ ВХОД ;ПЕРЕХОДИМ В БАНК ;ВЫХОД И ;ТАЙМЕР . ВЫКЛЮЧЕН = 250 = 180 ;МИНИМУМ ВЫКЛЮЧЕНЫ. ОТКЛЮЧЕН ;КОМПАРАТОР ;МАКСИМУМ RAO/ANO. О. СВЕТОДИОД 1 ВЫКЛЮЧЕНЫ. ЗАПРЕЩЕНЫ. . В. В. ;==========-==================~===========~========= ; 3. АЦП-ПРЕОБРАЗОВАНИЕ .(ИЗМЕРЕНИЕ ВХОДНЫХ ВЕЛИЧИН). ;=================================================== АРР MOVLW В'10000001' ;~ИНХРОНИЗАЦИЯ ;ПРАВОЕ ОТ MOVWF CALL BSF BTFSC GOTO MOVFW MOVWF BTFSC GOTO BSF MOVLW MOVWF MOVFW MOVWF BCF BCF RRF RRF MOVFW SUBWF BTFSC GOTO t10VFW SUBWF BTFSS GOTO BSF GOTO ADCONO ZAD ADCON0,1 ADCON0,1 $-1 ADRESH ;ИОН от ПИТАНИЯ, ТЕКН ;В СТАРШИЙ ТЕКУЩИЙ РЕГИСТР. BCF GOTO 100' ;ЗАДЕРЖКА ВХОД О, в·ключЕНИЕ АЦП (УВХ) . мкс. ;ВКЛЮЧИМ ПРЕОБРАЗОВАНИЕ. ;ОЖИДАЕМ ЗАВЕРШЕНИЯ ;ПРЕОБРАЗОВАНИЯ ;ПЕРЕПИШЕМ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ 1 РАЗРЯД РАВЕН 1, ТЕКН,1 ;ЕСЛИ ADPU STATUS,5 21 FSR ADRESL INDF STATUS,5 STATUS,0 ;ВЫКЛЮЧИТЬ ТЕКН,1 ;СДВИГАЕМ ВПРАВО, TEKL,1 ;ЧТОБЬl СРАВНИВАТЬ 8 РАЗРЯДОВ. УСТА ;СРАВНИМ TEKL,0 STATUS,0 ADPU YCTI TEKL,O ;НА STAТ.US,0 ;ЕСЛИ ADPU PORTC,O ADP ; т.о' PORTC,0 ADP ;ВЫКЛЮЧИМ ВЫХОД. ;ПЕРЕХОДИМ ;ЗАПИСЬ В ТО ПЕРЕПОЛНЕНИt. ВЫХОД. В 1. TEKL БАНК РЕГИСТР ;ПО КОСВЕННОЙ АДРЕСАЦИИ. ;В БАНК О. ;ОБНУЛЯЕМ ПЕРЕНОСА. ТЕКУЩЕЕ ПРЕВЬЩ!ЕНИЕ ;ЕСЛИ ;ТО БИТ ЕСТЬ МАКСИМУМУ. ПРЕВЫШЕНИЕ, ВЫКЛЮЧИМ ВЫХОД. ;СРАВНИМ ТЕКУЩЕЕ ;НА ЗНАЧЕНИЕ ПО ПРЕВЫШЕНИЕ МЕНЬШЕ ЗН~ЧЕНИЕ ПО выключим выход ;ИНАЧЕ ПОДТВЕРДИМ ;ПОВТОРИМ. ;ПОВТОРИМ. МИНИМУМУ. МЕНЬШЕГО, ADPU 92 RС-ГЕНЕРАТОРА, ВЫРАВНИВАНИЕ, . ВКЛЮЧЕНИЕ ВЫХОД,
Устройство защиты трехфазных двигателей ZAD MOVLW ADDLW BTFSS GOTO RETURN . 25 ;ЗАДЕРЖКА НА 100 мкс . -1 STATUS,2 $-2 ;====================~============= END ;====~============================= Устройство защиты трехфазных двигателей Чаще всего трехфазные двигатели выходят из- строя из-за перекоса фаз пи­ тающего напряжения или перегрева при работе в тяжелом режиме. Предлагае­ мое устройство защиты выключает двигатель при обрыве фазы, отклонении напряжения' любой фазы (перекосе фаз) более чем на пуса двигателя свыше 60 °С. Устройство ·построено на микроконтроллере ±30 В или нагреве кор. PIC16F676 и датчике темпе­ ратуры DS_l820. Возникновение ав(}.рийной ситуации в каждой фазе и превы­ шение темп~ратуры корпуса двигателя индиц,ируется включением соответст­ вующих сигнальных светодиодов. Для измерения и сравнения используется среднее выпрямленное напряжение фаз относительно нулевого прqвода. Алгоритм работы программы микроконтроллера показан на рис. 29. После включения ·микроконтроллера выполняется инициализация его регистров и включается управляющий выход. Во время пуска двигателя (или группы дв·и­ гателей) возможны провалы или скачки напряжений в фазах, поэтому устрой­ ство защиты по напряжению начинает работу спустя одну минуту после включения двигателя. Задержка реализована путем последовательного вклю­ чения предделителя, таймера TMRO и двух делителей, каждый из которых имеет коэффициент деления 30. · Далее последовательно выполняются измерения напряжения фаз А, В, С. После каждого измерения фаза проверяется на обрыв. Если измеренное на­ пряжение равно нулю, то выход сразу выключается. Затем с.тiедует проверка значений измеренных напряжений на выход за пределы диапазона 190".250 В. ' В этqм случае включается счетчик ошибок, который необходим для повыше­ ния помехоустойчивости устройства. При Декрементировании восьмиразряд­ ного счетчика or нуля до нуля его коэффициент деления получаете.Я равным 256. При периоде прохождения всей программы, равном 7 мс, время задержки выключения двигателя· приблизительно равно 1,8 с. Для каждого сравнения имеется свой счетчик, поЭтому если сле~ующее измеренное напряжение вой­ дет в норму, то данный счетчик обнуляется. Таким образом, для выключения двигателя необходимо подряд 256 ошибок измерения. После сравнения напряжений фаз А-В, В-С, С-А их разность проверя­ ется на превышение значения 30. Если перекос фаз больше 30 В, то включа­ ется счетчик ошибок. Выключение выхода происходит аналогично описанно­ му выше через 1,8 с. 93
Устройства с использованием АЦП ПУСК ШТhJЦИАЛИЗАЦИЯ МК ИЗ:tvШРЕНИЕ А.В.С ИНИЦИАТIИЗАЦИЯ DS РАЗРЕШЕНИЕ ПРЕОБРАЗОВАНИЯ ПРИЕМ ДАННЫХ [)S СЧЕТЧИК-1 выключить выход Рис. При 29. Алгоритм работы программы устройства защиты трехфазных двигателей выключении выхода из-за любой ошибки ·устанавливается флаг ошибки, который сбрасывается только после перезапуска микроконтроллера. При 9тсугствии ошибки подтверждается включение выхода, и микроконтрол­ лер переходит к подпрограмме измерения температуры двигателя. Измерение температуры начинается с инициализации термодатчика DS 1820 ,и выдачи команды на разрешение преобразования. После приема данных от датчика температуры проверяется флаг «двух секунд». Дело в том, что первые данные, которые приходят от датчика, недостоверны, поэтому для стабилиза- 94
Устройство защиты трехфазных двигателей ции данных необходимо некоторое время. Д.Jiя этого введена задержка ·начала сравнения по температуре, равная 1,8 с. Поскольку за такое короткое время двигатель не успеет нагреться до температуры 60 °С, подобная задержка не снижает качества защиты двигателя. После отработки времени задержки устанавливается флаг ~«двух секунд», и каждое следующее измеренное значение температуры проверяется на превы­ шение 60. Если температура превысит 60 °С, выход выключается. Программа переходит к новому циклу измерения напряжения по фазам. Схема устройства показана на рис. 30. Напряжение фаз понижается дели­ телями напряжения на резисторах RI-R3 и Rl0-Rl2, имеющими коэффи­ uиент деления 1: 100. Переменное напряжение фаз выпрямляется однополупе­ риодным выпрямителем, состоящим из диодов VD 1-VDЗ и стабилитронов VD7-VD9, сглаживается конденсаторами фильтра С4-С6 и поступает на входы RAO-RA2 микроконтроллера DD2. Линия связи термодатч»ка DDI с входом R~4 микроконтроллера имеет «подтягивающий» резистор RlЗ. Тактируется микроконтроллер от внутреннего генератора частотой 4 МГц. Частоту тактового генератора, деленную на.четыре (1 МГц), можно наблюдать на выходе RA4 (вывод 3 микроконтnоллера), ко·нтролируя, таким образом, ра­ ботоспособность микроконтроллера. Выход RСЗ микроконтрол;лера через оптотиристор Ul и симистор VSI включает пусковое реле Kl. Его контакты Kl.1-Kl-.3 включают/выключают подаqу напряжения на двигатель. Светодиоды HL 1-HL4 сигнализируют о воз­ никновении аварийной ситуации. Гасящие резисторы R6-R9 подбирают в за­ висимости от выбранного тиnа светодиодов и необходимой яркости свечения' (на схеме дано значение сопротивлений для светодиодов типа КИПД21-ПК). Кнопка SB 1 «Сброс» необходима для перезапуска микроконтроллера и включе- . ния двигат~ля после устранения аварийной ситуации. Бестрансформаторный источник nитания с гасящим конденсатором неод­ нократно описан в литературе [19], и его работа в пояснении не нуждается. нее Гасящий конденсатор СЗ типа К73-17 с допустимым напряЖ:ением не ме­ 400 В. Стабилитрон VD4 типа 1N4733A можно заменить любым стабилит­ роном с напряжением стабилизации 5, 1 В. Это напряжение является опорным для АЦП микроконтроллераf поэтому если установить стабилитрон с мень­ шим напряжением стабилизации (например, 4, 7 В), то потребуется пропорци­ ональное изменение коэффициента деления входных делителей напряжения. Стабилитроны VD7-VD9 можно заменить стабилитронами типа КС147А. Датчик температуры DS 1820 можно не устанавливать, но тогда. не будет рабо­ тать защита двигателя от перегрева (линия связи должна оставаться нагружен­ ной резистором RlЗ). Печатная плата устройства показана на рис. 31, а расположение элементов на ней - на рис. 32.· Плату изготавливают из фольгированного с двух сторон стеклотекстолита. Со стороны установки элементов фольгу· не вытравливают и соединяют с общим проводом. Нижняя часть платы напротив мест прохож­ дения фазовых проводов не экранируется. Отверстия, не заштрихованные на рис. 32, раззенковывают. Если сигнальные светодиоды будут устанавливаться со стороны печати, то пунктирные линии (см. рис. 31) проводят со стороны установки деталей. Переходные отверстия возле конденсаторов С4-С6 соеди­ няют с экраном монтажным проводом. 95 ·
Устройства с использованием АЦП .,,. ..- ("..} :2 Q~ * щ ('f"'; .......... v; - ~ 14 ..... !:Q ~("-1 ~: """ ЕЕ r- ~ N ЕЕ :;ад ~ ~ Q s sg О\ ~~ N 8 -~ ....... .,,. ::;, е:; ::Е 1r, ос. ("~ ~u ..... c:Q 9L9d9I;:)Id """'" ~~ ~ ~~ d ~ u :о u >-"' :! ("-1 о ~ '°~ ~ ~ ,,., [) F: ..,. ~ + ~ '°u.,;. о:! tr: u + .,,. <t: ~ ~: ....... ~ а;; ~ N 00 tf.) О\ Q ~ § е *2 1 ~ Рис. ~ 14 N 00 о 30. ..... f.Q N е~ ~ §? ~ ~ - . f1"'",N о '1" §? о:! ~ tf.) 1-Q. '°~ u ~8. -r\ J8 ~::r: 1- 14 ON Устройство защиты трехфазных двuгателей Собранную плату устройства необходимо установить в экранированный корпус, имеющий отверстия для светодиодов и кнопки «Сброс». Устройство нельзя'устанавливать на двигателе или его основании. Провод связи с термо­ датчиком должен быть экранированным и может иметь Длину до крепления термодатчика к двигателю используют прижимную 5 м. Для пр)'Жl:fну от транзисторов большой мощности в корпусе КТ28-2. Датчик устанавливают на 96
Устройство защиты трехфазных двигателей · 77_5 о о Рис. Устройство защИты трехфазных двигателей. Печатная плата 31. SВI JDDI 2DDI SВI К:КI t t '~ ~DDI t t ·о· i t 'С" 'А' Рис. 32. Расположение элементов. на плате термопроводящую пасту, 'а его выводы (в корпусе типа ТО-92) изолируют силиконовым герметиком. . Налаживание устройства. выполняют без микроконтроллера. Сначала про­ веряют напряжение питания микроконтроллера, которое должно. быть равно VD4 заменялся пятью экземплярами стабилитронов 1N4733A, и все они удовлетворяли этому условию. Перед установкой ре­ зисторов Rl0-Rl2 подбирают их номинал с точностью 1%. При этом не име­ ет значения отклонение от величины 2 кОм (можно использовать резисторы сопротивлением 1,9".2, 1 ·кОм), главное - обеспечить равенство ном:Иналов между собой. ' Далее подбирают значения резисторов Rl-RЗ так, чтобы на входах 11-13 5,'1 В. При испытаниях типа микроконтроллера постоянное напряжение было равно входному напряже­ нию, деленному 'на 100. При этом на все входы может быть подано напряже­ ние ·одной фазы. Практически МОЖН<? подобрать ном_инал одного ре:щстора, а 97
Устройства с использованием АЦП остальные резисторы устанавливают с номиналом, идентичным подобранно­ му. Это будет справедливо при тщательном подборе резисторов Rl0-Rl2. После установки запрограммированного· микроконтроллера устройство готово к работе. Работа с устройством сводится к анализу состояния светодиодов при воз- . никновенйи аварийной ситуации. ~ели двигатель отключился и при этом ни один светодиод не горит, то произошел обрыв фазы. Если горит один из све­ тодиодов «АВ», «ВС», «СА», то возможен выход напряжения фазы за пределы диапазона 190 ... 250 В. При этом первая буква обозначения светодиода указы- вает аварийную фазу. При перекосе фаз надпись под горящим светодиодом соответствует тем фазам, разность напряжения которых больше 30 В. Как правило, одновременно включаются два светодиода, например «АВ» и «СА». В этом случае напряжение фазы «А» имеет отклонение от напряжения фаз «В» и «С» более чем на В. 30 После устранения ь · аварийной ситуации двигатель включают нажатием кнопки «Сброс». Если в дальнейшем микроконтроллер будет использоваться для других программ, то необходимо считать известными способами и записать калибро­ вочную константу. В данной программе принято, что калибровочная констан­ та равна нулю (минимальная частота внутреннего генератора). ЗАЩV1ТА С ТРЕХФАЗНОГО ФИКСИРОВАННЫМ ДВИГАТЕЛЯ УРОВНЕМ ОТ ЗАЩИТЫ ПЕРЕКОСА ФАЗ +-30 И ПЕРЕГРЕВА. В, ПРЕВЫШЕНИЯ ТЕМПЕРАТУРЫ ДАТЧИК ТЕМПЕРАТУРЫ 6,0 °. DS1820. РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ. ДЛЯ СВОБОДНОГО п.ВЕЙДЕЛЕВКА, ИСПОЛЬЗОВАНИЯ РАДИОЛЮБИТЕЛЯМИ. БЕЛГОРОДСКОЙ. saes@mail.ru ПРОГРАММА ВЕРСИЯ: , = ЗFAZA.ASM 06-09-04. АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, ВЕРСИЯ: 7.40.40. #INCLUDE <P16F676.INC> CONFIG 3FF5H ;===========~======================================== ; ИСПОЛЬЗУЕТСЯ ВНУТРЕННИЙ ГЕНЕРАТОР ЧАСТОТОЙ 4,0 МГц. ;==================================================== RAO - ВХОД ФАЗЫ А. RAl ~ ВХОД ФАЗЫ В. RA2 - ВХОД ФАЗЫ С. RАЗ - ВЫХОД ЧАСТОТЫ. RCO - ВЫХОД СВЕТОДИОДА ОШИБКИ RCl - ... В-С. RC2 - ... С-А. RСЗ - ВЫХОД ВКЛЮЧЕНИЯ РЕЛЕ. RC4 - ВХОД/ВЫХОД DS. RC5 ~ ВЫХОД СВЕТОДИОДА ОШИБКИ ФАЗ А-В. ТЕМПЕРАТУРЫ. ;========================================= ; РЕJГИСТРЫ РСН. ;===============~========================= 98 1
Устройство защиты трехфазных двигателей EQU INDF EQU TIMERO OPTIONR 'EQU РС EQU EQU STATUS EQU FSR PORTA EOU EQU PORTC EQU TRISA EQU TRISC EQU INTCON EQU PIRl EQU PIEl EQU TlCON EQU CMCON EQU VRCON EQU PCON ANSEL EQU EQU WPUA IOCA · EQU EQU ADRESH EQU ADRESL EQU ADCONO EQU ADCONl FSR. оон ;ДОСТУП OlH BlH ;TMRO. ;OPTION (RPO=l). 02Н ;СЧЕТЧИК озн ;РЕГИСТР СОСТОЯНИЯ АлУ. 04Н ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. оsн ;ПОРТ А ВВОДА/ВЫВОдА. К ПАМЯТИ ЧЕРЕЗ КОМАНД. 07Н ;ПОРТ BSH ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А. В7Н ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА С. овн ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ. осн ;РАЗРЕШЕНИЯ ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. вен ;РЕГИСТР РАЗРЕШЕНИЯ ПЕРИФЕРИЙНЫХ ПРЕРЫВАНИЙ. lOH ;РЕГИСТР УПРАВЛЕНИЯ ТАЙМЕРОМ 19Н ;РЕГИСТР 99Н ;РЕГИСТР-ИСТОЧНИКА ОПОРНОГО НАПРЯЖЕНИЯ. ВЕН ;КОНТРОЛЬ 91Н ;ВЫБОР-АНАЛОГОВОГО 95Н ;ВКЛЮЧЕНИЯ 96Н ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ ПО ИЗМ. lEH ;СТАРШИЙ РЕГИСТР АЦП. ;МЛАДШИЙ РЕГИСТР АЦП. 9ЕН lFH 9FH С ВВОДА/ВЫВОдА. УПРАВЛЕНИЯ 1. КОМПАРАТОРОМ. НАПРЯЖЕНИЯ. ВХОдА. ПОДТЯГИВАЮЩИХ РЕЗИСТОРОВ. СИГН. НА ВХОДАХ А. ;УПРАВЛЕНИЯ АЦП. ;ВЫБОР ТАКТИРОВАНИЯ АЦП. ;===~======================================= ; ОПРЕДЕЛЕНИЕ РОН. ;~========================================== "ТЕКАН TEKAL ТЕКВН TEKBL ТЕКСН TEKCL СЕКl FLAG СЕК STEMP FTEMP ИТЕМР СО22А СО22В <;022С COUA соuв couc LSB COUN ТЕМР COUTE EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU _ EQU EQU EQU EQU EQU EQU EQU EQU EQU 20Н• ;ИЗМЕРЕННОЕ 21Н ;СТАРШИЙ И МЛАДШИЙ РЕГИСТРЫ. ЗНАЧЕНИЕ 22Н ;ИЗМЕРЕННОЕ 23Н ;СТАРШЙЙ И МЛАДШИЙ РЕГИСТРЫ. 24Н ;ИЗМЕРЕННОЕ 25Н ;СТАРШИЙ И МЛАДШИЙ РЕГИСТРЫ. ЗНАЧЕНИЕ ЗНАЧЕНИЕ 26Н ;СЧЕТЧИК МИНУТ. 27н 2ВН , ;СЧЕТЧИК С~КУНД. 29Н ;ВРЕМЕННЫЙ. 2АН ;ВРЕМЕННЫЙ. 2ВН ;ВРЕМЕННЫЙ. 2СН ;СЧЕТЧИКИ 2DH ;В, 2ЕН ; С, НАПРЯЖЕНИЯ, НАПРЯЖЕНИЯ, НАПРЯЖЕНИЯ, ЧИСЛА ОШИБОК А, 2FH ;А, зон ; в, ЗlН ;С. 32Н ;РЕГИСТР ззн ;СЧЕТЧИК ЦИКЛОВ. 34Н ;ВРЕМЕННЫЙ. зsн ;ЗАДЕРЖКА ПРИЕМА ДЫННЫХ ВКЛЮЧЕНИЯ ОТ DS. ОШИБКИ ПО ~ЕМПЕРАТУРЕ. ;================================~==~ ; ОПРЕДЕЛЕНИЕ БИТОВ РЕГИСТРА FLAG. ;•===~==~===========~================~ 0->ЗАДЕРЖКИ ВКЛЮЧЕНИЯ СРАВНЕНИЯ ПО ТЕМПЕРАТУРЕ. 1->ОШИБКИ 5->ВРЕМЕНИ (ВЫХОД ЗА ПРЕДЕЛЫ ДИАПАЗОНА) ЗАДЕРЖКИ МИНУТ (ВКЛЮЧЕНИЯ) . . 99
Устройства с использованием АЦП ;==================================== DS 'EQU 4 DS. ;ВЫХОД ;======================= ; 1. ПУСК. ;======================= ORG GOTO ORG GOTO о INIT 4 PRER ;==================~=== ; 2. ·ИНИЦИАЛИЗАЦИЯ. ;====================== INIT BSF MOVLW MOVWF MOVLW MOVWF STATUS,5 ;ПЕРЕХОДИМ В"'ОООООООО' ;~СТАНОВКА КАЛИБРОВОЧНОЙ OSCCAL OFFH ADCON1"80H ;КОНСТАНТЫ. ;ТАКТ ;500 MOVLW MOVWF MOVLW MOVWF CLRF MOVLW MOVWF MOVLW MOVWF CLRF CLRF CLRF CLRF MOVLW MOVWF BCF CLRF CLRF MOVLW MOVWF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF BSF BTFSS GOTO BCF 100 В'10000111' АЦП В ОТ БАНК 1. ВНУТРЕННЕГО ГЕНЕРАТОРА кГц. ;К=256. OPTION REG"80H В'10100000' ;РАЗРЕШЕНИЕ ЦРЕРЫВАНИЙ. INTCON PIE1"80H ;ЗАПРЕЩЕНЫ ВСЕ ПЕРИФЕРИЙНЫЕ ПРЕРЫВАНИЯ. В'00111111' ;ВСЕ входы~ ; всЕ выходы • TRISA"80H в•ооо10000• TRISC"80H VR<:;ON"80H PCON"80H WPUA IOCA .7 ANSEL STATUS,5 PORTC TlCON .7 CMCON FLAG ;ИОН 1 ОТКЛЮЧЕН. ;ПРЕРЫВАНИЯ ПО ;ПОДТЯГИВАЮЩИЕ ;ПРЕРЫВАНИЯ ПИТАНИЮ ЗАПРЕЩЕНЫ. РЕЗИСТОРЫ ;ВЫБРАНЫ АНАЛОГОВЫЕ ВХОДЫ ;ПЕРЕХОДИМ ;ВЫХОД И ВЫКЛЮЧЕНЫ. ЗАПРЕЩЕНЫ. В БАНК СВЕТОДИОД RAO, RAl, RA2. О. ВЫКЛЮЧЕНЫ. ; ТАЙМЕР. 1 ОТКЛЮЧЕН .. ;КОМПАРАТОР ВЫКЛЮЧЕН. СЕК СЕКl СО22А СО22В СО22С COUA соuв cou~ COUTE PORTC,3 FLAG,5 $-1 INTCON,7 ;ВКЛЮЧАЕМ ВЫХОД. ; 'вРЕМЯ ЗАДЕРЖКИ ВКЛЮЧЕНИЯ lM. ;ЗАПРЕЩАЕМ ПРЕРЫВАНИЯ
Устройство защиты трехфазных двигателей ;=================================================== ; 3. АЦП-ПРЕОБРАЗОВАНИЕ (ИЗМЕРЕНИЕ ВХОДНЫХ ВЕЛИЧИН~. ; ==============================:::;:====================~= ADPA MOVLW MOVWF CALL BSF BTFSC GOTO MOVFW MOVWF BTFSC CALL BSF MOVLW MOVWF MOVFW MOVWF BCF BCJ: R.RF в 1 10000001 •• ADCONO ZAD ADCONO;l ADCONO,l $-1 ADRESH ;ВХОД ТЕКАН ;В СТАРШИЙ ТЕКУЩИЙ РЕГИСТР. RRF TSTF BTFSC CALL О, ПРАВОЕ ВЫРАВНИВАНИЕ, ; ВКЛЮЧЕНИЕ АЦП ( УВХ) . ;ЗАДЕРЖКА 100 мкс. . ;ВКЛЮЧИМ ПРЕОБРАЗОВАНИЕ. ;ОЖИДАЕМ ЗАВЕРШЕНИЯ ;ПРЕОБРАЗОВАНИЯ. ;ПЕРЕПИШЕМ РЕЗУЛЬТАТ ТЕКАН,1 ;ЕСЛИ ADPU STATUS,5 21 FSR ADRESL INDF STATUS,5 STATUS,0 ;ВЫКЛЮЧИТЬ РАЗРЯД ;ОБНУЛЯЕМ БИТ ТЕКАН,1 ;СДВИГАЕМ ВПРАВО, TEKAL,l TEKAL STATUS,2 ADPU ;ЧТОБЫ СРАВНИВАТЬ 1 1, РАВЕН ТО ПЕРЕПОЛНЕНИЕ. ВЫХОД. ;ПЕ~ЕХОДИМ ;ЗАПИСЬ ПРЕОБРАЗОВАНИЯ В В БАНК РЕГИСТР 1. TEKAL ;ПО КОСВЕННОЙ АДРЕСАЦИИ. ;В БАНК ;ПРИ ; О. НУЛЕВОМ ПЕРЕНОСА. 8 РАЗРЯДОВ. ЗНАЧЕНИИ (ОБРЫВ ФАЗЫ) ;ВЫХОД ВЫКЛЮЧАЕТСЯ. ADPB MOVLW MOVWF CALL BSF BTFSC GOTO MOVFW MOVWF BTFSC CALL BSF MOVLW MOVWF MOVFW MOVWF BCF BCF RRF RRF TSTF BTFSC CALL В'10000101' ;ВХОД ADCONO ZAD ADCONO,l ADCON0,1 $-1 ADRESH ;ВКЛЮЧЕНИЕ ТЕ КВН 1, ПРАВОЕ ;ЗАДЕРЖКА d ВЫ~АВНИВАНИЕ, АЦП (УВХ). мкс. 100 ;ВКЛЮЧИМ ПРЕОБРАЗОВАНИЕ. ;ОЖИДАЕМ ЗАВЕРШЕНИЯ ; ПРЕОБРАЗОВАНИЯ' ;ПЕРЕПИШЕМ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ ;В СТАРШИЙ ТЕКУЩИЙ РЕГИСТР. ТЕКВН,1 ;ЕСЛИ ADPU STATUS,5 23 FSR ADRESL INDF STATUS,5 STATUS,0 ; вы_ключить ;ОБНУЛЯЕМ БИТ ТЕКВН,1 ;СДВИГАЕМ ВПРАВО, TEKBL,.l TEKBL STATUS,2 ADPU ;ЧТОБЫ СРАВНИВАТЬ 1 РАЗРЯД ;ПЕРЕХОДИМ ;ЗАПИСЬ В В 1, РАВЕН выход ТО ПЕРЕПОЛНЕНИЕ. . БАНК РЕГИСТР 1. TEKL ;ПО КОСВЕННОЙ АДРЕСАЦИИ. ;В БАНК ;ПРИ ; О. НУЛЕВОМ (ОБРЫВ ;ВЫХОД ПЕРЕНОСА. 8 РАЗРЯДОВ. ЗНАЧЕНИИ ФАЗЫ) ВЫКЛЮЧАЕТСЯ. ADPC MOVLW MOVWF CALL BSF BTFSC В'10001001' ;ВХОД ADCONO ZAD ADCONO,l ADCONO,l ;ВКЛЮЧЕНИЕ ~ЦП 2, ;ЗАДЕРЖКА ПРАВОЕ 100 ВЫРАВНИВАНИЕ, (УВХ). мкс. ;ВКЛЮЧИМ ПРЕОБРАЗОВАНИЕ. ,; ОЖИДАЕМ ЗАВЕРШЕНИЯ 101
Устройства с использованием АЦП GOTO MOVFW MOVWF BTFSC CALL BSF MOVLW MOVWF MOVFW MOVWF BCF BCF RRF RRF TSTF BTFSC CALL GOTO $-1 ADRESH ;ПРЕОБРАЗОВАНИЯ. ТЕКСН ;В СТАРШИЙ ТЕКУЩИЙ РЕГИСТР. ТЕКСН,1 ;ЕСЛИ ADPU STATUS,5 25 F-SR ADRESL INDF STATUS,5 STATUS,O ;ВЫКЛЮЧИТЬ MOVLW ADDLW BTFSS GOTO RETURN .25 -1 STATUS,2 $-2 ;ПЕРЕПИШЕМ 1 РЕЗУЛЬТАТ РАЗРЯД В РАВЕН 1, ТО ПЕРЕПОЛНЕНИЕ. ВЫХОД. ;ПЕРЕХОДИМ ;ЗАПИСЬ ПРЕОБРАЗОВАНИЯ В БАНК РЕГИСТР 1. TEKL ;ПО КОСВЕННОЙ АДРЕСАЦИИ. ;В БАНК О. ;ОБНУЛЯЕМ БИТ ТЕКСН,1 ;СДВИГАЕМ ВПРАВО, TEKCL,l TEKCL STATUS,2 ADPU ;ЧТОБЫ СРАВНИВАТЬ ;ПРИ ; НУЛЕВОМ (ОБРЫВ ;ВЫХОД ПЕРЕНОСА. 8 РАЗРЯДОВ. ЗНАЧЕНИИ ФАЗЫ) ВЫКЛЮЧАЕТСЯ. РАВ220 ZAD ;ЗАДЕРЖКА НА 100 мкс. ;============================g====================== ; 4. СРАВНЕНИЕ РАЗНОСТИ НАПРЯЖЕНИЙ И ~КЛЮЧЕНИЕ ВЫХОДА. ;==============~==================================== РАВ220 BTFSC GOTO MOVLW SUBWF CALL BTFSS GOTO BCF BSF DECFSZ GOTO CALL GOTO CLRF BCF FLAG,6 INIDS .220 TEKAL,O ;ОШИБКА ПО ЛЮБОЙ ФАЗЕ. ;190<А<250 ;СРАВНИМ ТЕКУЩЕЕ ЗНАЧЕНИЕ РАВНО FLAG,l $+7' FLAG,l PORTC,0 СО22А, 1 ;ЕСЛИ ЕСТЬ ПРЕВЫШЕНИЕ, ;А-В. РАВ22В ADPU РАВ22В СО22А PORTC,0 РАВ22В MOVLW SUBWF CALL BTFSS GOTO BCF BSF DECFSZ GOTO CALL GOTO 102 .220 TEKBL,O ;190<В<250 ;СРАВНИМ ТЕКУЩЕЕ ЭНАЧЕНИЕ РАВНО FLAG,l $+7 FLAG,l PORTC,l СО22В,1 РАВ22С ADPU РАВ22С ;ЕСЛИ ;В-А. ЕСТЬ ПРЕВЫШЕНИЕ,
Устройство защиты трехфазных двигателей CLRF BCF СО22В PORTC,1 РАВ22С MOVLW SUBWF CALL BTFSS GOTO BCF BSF DECFSZ GOTO CALL GOTO CLRF BCF .220 TEKCL,O ;190<С<250 ;СРАВНИМ ТЕКУЩЕЕ ЗНАЧЕНИЕ РАВНО FLAG,l ;ЕСЛИ ЕСТЬ ПРЕВЬЦIIЕНИЕ, $+7 FLAG,1 PORTC,2 ;С-А. СО22С,1 РАВНОА ADPU РАВНОА СО22С PORTC,2 РАВНО А BTFSC GOTO MOVFW SUBWF CALL BTFSS GOTO BCF BSF DECFSZ GOTO CALL GOTO CLRF BCF PABHQB MOVFW SUBWF CALL BTFSS GOTO BCF BSF J?ECFSZ GOTO CALL GOTO CLRF BCF FLAG,6 INI.DS TEKBL ;ОШИБКА !!'ЕКАL,й ;НА ПО ЛЮБОЙ ФАЗЬ. ;СРАВНИМ ТЕКУЩЕЕ ПРЕВЬIШЕНИЕ ПО ЗНАЧЕНИЕ А В. РАВНО FLAG,1 ;ЕСЛИ ЕСТЬ ПРЕВЫШЕНИЕ, $+7 FLAG,1 PORTC,0 COUA, 1 · ;А-В. РАВНОВ ADPU РАВНО В COUA PORTC,, Q TEKCL TEKBL,O ;СРАВНИМ ТЕКУЩЕЕ ;НА П~ЕВЫШЕНИЕ ЗНАЧЕНИЕ в ПО С. РАВНО FLAG,1 ;ЕСЛИ ЕСТЬ ПРЕВЬIШЕНИЕ, $+7 FLAG,1 PORTC,_ l COUB,1 ;В-С. ., РАВНОС ADPU РАВНОС COUB PORTC,l РАВНО С MOVFW SUBWF CALL BTFSS GOTO BCF BSF DECFSZ TEKAL TEKCL,O ;СРАВНИМ ТЕКУЩЕЕ ;НА ПРЕВЫШЕНИЕ ЗНАЧЕНИЕ с ПО А. РАВНО FLAG,1 ;ЕСЛИ ЕСТЬ ПРЕВЫШЕНИЕ, $+7 FLAG,1 PORTC,2 COUC,l ;С-А. 103
Устройства с использованием АЦП GOTO CALL GOTO CLRF BCF GOTO PABNO ADPU PABNO ADDLW .225 ADDLW BTFSC RETURN BSF RETURN . 61 STATUS,0 FLAG,l ;ОШИБКА. BTFSC GOTO BSF GOTO FLAG,6 INIDS PORTC,3 INIDS ;ОШИБКА BCF BSF RETURN PORTC,3 FLAG,'6 ;ВЫКЛЮЧИТЬ couc P'ORTC,2 PABNO РАВНО ;255-30 (+~30 ; НАПРЯЖЕНИЯ) . ; 30+30+1. ;ЕСЛИ ЕСТЬ В ДИАПАЗОН ИЗМЕНЕНИЯ - ПЕРЕНОС ТО, PABNO ЛЮБОЙ ПО ФАЗЕ. ; ADPA· выход. ;ВКЛЮЧИТЬ ;ADPA ADPU выход. ;ОШИБКА. ;================================== ; 5. ПРЕРЫВАНИЕ. ;================================== PRER MOVWF MOVFW MOVWF MOVFW MOVWF BCF INCF MOVLW SUBWF BTFSS GOTO CLRF INCF MOVLW SUBWF BTFSS GOTO BSF CLRF WTEMP STATUS STEMP FSR FTEMP STATUS,5 MOVFW MOVWF MOVFW MOVWF . MOVFW• BCF RETFIE STEMP STATUS FTEMP FSR WTEMP INTCON,2 СЕК,1 ЗНАЧЕНИЙ РЕГИСТРОВ W И ; STATUS, ;FSR. ;ДЕЛИТЕЛЬ НА 30. .30 СЕК,О STATUS,2 REPER ;ЕСЛИ СЕК ;ОБНУЛИМ. CEKl,l .30 CEKl,O STATUS,2 REPER FLAG,5 CEKl ;ДЕЛИТЕЛЬ REPER 104 ;СОХРАНЕНИЕ ;ЕСЛИ ;ТО РАВНО НА РАВНО 30, 30. 30, УСТАНОВИМ Ф~АГ 1 м. ;ОБНУЛИМ. ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ: ЗНАЧЕНИЙ. ; STATUS, ; FSR, ;W. ;СБРАСЫВАЕМ ФЛАГ ;ВОЗВРАТ ПРЕРЫВАНИЯ. ИЗ ПРЕРЫВАНИЯ ОТ TMRO.
Устройство защиты трехфазных двигателей :=====~===================~=============~= ; 6. ИНИЦИАЛИЗАЦИЯ DS. ;========================================= INIDS CALL MOVLW CALL MOVLW CALL GOTO HYL ;ПОСЫЛ ОхСС ;ПРОПУСК POSIL ;ПОШЛЕМ. Ох44 ;РАЗРЕШАЕМ POSIL PRIEM ;ПОШЛЕМ. CALL MOVLW ADDLW BTFSS wux :выход·нуля. ИМПУЛЬСА ОБНУЛЕНИЯ. ПОСЫЛА НОМЕРА DS. ПРЕОБРАЗОВАНИЕ. ;НА ПРИЕМ ТЕМПЕРАТУРЫ. HYL :125 ;НУЛЕВОЙ ИМПУЛЬС -1 ;= 500 мкс. ;ВЫХОД ЕДИНИЦЫ STATUS,2 $-2 GQTO wxo CALL MOVLW ADDLW BTFSS . 125 ;ИМПУЛЬС -1 ;500 . = мкс. STATUS,2 $-2 GOTO RETURN ;======================================= ; 7. ИЗМЕНЕНИЕ ВХОДА НА ПРИЕМ/ПЕРЕДАЧУ. ;~====================================== wux. BCF BSF BCF BCF RETURN PORTC,DS STATUS,5 . TRISCлBOH, ;ПЕРЕХОДИМ DS STATU~,5 ;НА в БАНК 1. в БАНК о. в БАНК 1. в БАНК о. ВЫХОД. ;ПЕРЕХОДИМ \) wxo BSF BSF BCF RETURN STATUS,5 ;ПЕРЕХОДИМ TRiscлsoн,os ;НА STATUS,5 ;ПЕРЕХОДИМ ВХОД. ;========================~=========== ; 8. ПРИЕМ 8 БИТ ИЗ DS. ;===~================================, PRIEM CALL MOVLW CALL MOVLW CALL CALL GOTO HYL ;ПОСЫЛ ОхСС ;ПРОПУСК POSIL ;ПОСЫЛ. ОхВЕ ;ЧТЕНИЕ POSIL PRIE ;ПОСЫЛ. ;НА СХЕТ ;НА ПЕРЕСЧЕТ. MOVLW MOVWF CLRF .8 COUN LSB ;ЗАПИШЕМ ЧИСЛО ;ОБНУЛИМ РЕГИСТР CALL CALL NOP wux wxo ИМПУЛЬСА ОБНУЛЕНИЯ. НОМЕРА. ТЕМПЕР~ТУРЫ ИЗ БЛОКНОТА. ПРИЕМ. PRIE БИТ. ПРИЕМА. PRI ;ВЫДАЕМ КОРОТКИЙ ;НА НОЛЬ И ЖДЕМ ОТКЛИКА. ПРИЕМ. ;ЗАДЕРЖКА 105
Устройства с использованием АЦП NOP NOP NOP NOP NOP MOVFW MOVWF BTFSS TEMP,DS 'ВС'Е' STA.'r\JS, О BTFSC BSF RRF MOVLW CALL DECFSZ GOTO RETURN PORTC ;ПЕРЕПИШЕМ ТЕМР ;ЗНАЧЕНИЕ ПОРТА. i УСТА.\\ОВИМ вит ПРИЕМА в воnь. TEMP,DS STATUS,0 ;ИЛИ LSв,·1 ;ЗАПИШЕМ В .20 ;ПАУЗА ЕДИНИЦУ. 80 РЕГИСТР. мкс. Х4 COUN, 1. PRI ;УМЕНЬШИМ СЧЕТЧИК. ;ПОВТОРИМ ПРИЕМ. ;ВЕРНЕМСЯ. ;================================== ; 9. ЗАДЕРЖКА мкс 1 УМНОЖЕННАЯ НА 4. - ;================================== Х4 ADDLW BTFSS GOTO RETURN -1 STATU.S, 2 $-2 ;====~=====================~=============== ; 10. ПОСЫЛ КОМАНДЫ В DS. ;========================================== POSIL MOVWF MOVLW MOVWF ВО ВРЕМЕННЫЙ. ТЕМР ;ПЕРЕПИШЕМ .8 COUN ;ЗАПИШЕМ число ТЕМР,1 ;ВЫТОЛКНЕМ МЛАДШИЙ БИТ. STATUS,0 ;ЕСЛИ ОН НУЛЕВОЙ, БИТ. POSI RRF BTFSS GOTO GOTO wo ;ПОШЛЕМ ИМПУЛЬС Wl ;ИЛИ DECFSZ GOTO RETURN COUN,l POSI ;УМЕНЬШАЕМ СЧЕТЧИК. НУЛЯ. ЕДИНИЦЫ. POS ;НА слЕДУЮЩИй БИТ. ;ВОЗВРАТ. wo CALL wux ;УСТАНОВИМ МOVLW .20 ;УДЕ~ЖИВ~ЕМ CALL CALL GOTO wxo ;НА ВХОД ~ POS ;ПОВТОРИМ. wux wxo ;КОРОТКИЙ НУЛЕВОЙ ИМПУЛЬС. выход в 80 ноль. мкс. Х4 1 НА ·ВЫХОДЕ. Wl CALL CALL MOVLW CALL GOTO 106 .20 ;НА ВХОД = ;УДЕРЖИВАЕМ Х4 POS ;ПОВТОРИМ. 1 НА ВЫХОДЕ. 80 мкс.
Устройство защиты трехфазных двигателей ;================================== ; 11. СЧЕТ. ;================================== СХЕТ BTFSC GOTO DECFSZ GOTO BSF BCF RRF MOVLW SUBWF SKPNC GOTO GOTO BCF BSF BSF GOTO FLAG,O $+4 COUTE,l ADPA FLAG, О . STATUS,O LSB,l .60 LSB,0 ;ЕСЛИ $+2 ADPA PORTC,3 FLAG,6 PORTC,5 ADPA ;ЕСЛИ ВРЕМЯ ЗАДЕРЖКИ ;ПРОШЛО, ТО ;СЧЕТЧИК ВРЕМЕНИ ВКЛЮЧЕНИЯ ПРОПУСТИМ СЧЕТЧИК. ЗАДЕРЖКИ. ;ПОВТОРИМ. ;УСТАНОВИМ ФЛАГ ВЫПОЛНЕННОЙ ЗАДЕРЖКИ. ;УБИРАЕМ ДЕСЯТЫЕ ГРАДУСА. ;ДЕЛИМ ТЕМПЕРАТУРУ НА 2. ; . 60 ;СРАВНИМ С УСТАНОВКОЙ. БОЛЬШЕ ИЛИ РАВНО, ТО ПРОПУСТИМ. ;ПОВТОРИМ. ;ВЫКЛЮЧИТЬ ВЫХОД. ;УСТАНОВИМ ФЛАГ ОШИБКИ. ;ВКЛЮЧИМ СВЕТОДИОД. ;ПОВТОРИМ. ;================================== END ;================================== 107
Устройства, измеряющ~е температуру Термометр-часы Это устройство предназначено для измерения температуры в· двух точках и индИкации ее на 16-разрядном ЖК-дисплее вместе с показаниями часов. Дат­ чиком температуры в устройстве служит микросхема DS1820, которая измеря­ -10 до +85 °С изго­ товитель гарантирует погрешность измере:ния температуры ±0,5 °С. Во всем диапазоне измеряемых температур индикация выполняется с точностью 0,5 °С. ет температуру от -55 до +125 °С. В интервале температур от Устройство предназначено для измерения температуры в доме и на улице, но может быть использовано, например, для измерения температуры в общей камере и морозильном отделении холодильника. Его можно использовать для измерения температуры в С3!1ОНе автомобиля и на улице для определения мо­ мента возникновения оледенения и гололеда, или для измерения температуры двигателя и охлаждаЮщей жидкости. Можно измерять температуру микропро­ цессора компьютера и в корпусе. Короче, устройство можно использовать · везде, где необходимо измерение температур в двух точках и визуальное срав­ нение результата. Далее для краткости вместо выраЖения «термометр для из­ мерения температуры в доме» будем писать просто <<'термометр дом» или соот­ ветственно «термометр улица». Работу по принятию значений температур от датчиков, Их обработку и вы­ дачу на индикацию выполняет микроконтроллер ты программы микроконтроnлера показан на рис. PIC16F84A. 33. Алгоритм рабо­ После подачи напряжения питания инициализируются регистры микро- · контроллера и ЖК-дисплей. Далее проверяется флаг режима установки. Если установки нет, то на дисплей выводятся значения регистров индикации дан­ ного режима. Если выполняется установка, то проверяется флаг курсора. Вы­ вод на индикацию значений регистров индикации и курсора выполняется по­ очередно с установкой и сбросом флага курсора. Если флаг курсора установ­ лен, то на индикацию выводится изображен~1е курсора. Разряд, под которым появляется курсор, определяет значение регистра курсора. Если курсор уже высвечен, то на дисплей выводятся значения установки .. После индикации инициализируется датчик температуры. Сначала опре­ деляется необходимый датчик «дом» или «улица». Если в текущем реж:Име не­ обходима температура дома, то инициализируется и выполняются измерения 1 108 1
Термометр-часы ПУСIС ИНИЦИАЛИЗАЦИЯ :МК ини!щАТJИЗАЦИЯ ЖКИ НЕТ ИНДИКАЦИЯ ------сИНДИКАЦИЯ .КУРСОРА ' _____ ИНИЦИАJIИЗАЦИЯ ""...._ DSI820 ...... И3МЕРЕНИЕ ТЕ11ПЕРАТУРЫ ДОМ · ИЗ:МЕРЕНИЕ TE№J УЛИЦА ПЕРЕКОДИРОВКА ТЕ11ПЕРАТУРЫ . ЗАIШСЬ В РЕГИСТРЫ IWОВЕРКА ЮЮПОК Рис. 33_. .Алгоритм работы программы термометр-чась• температуры датчиком для дома. В противном случае измеряется температура на улице . . Принятый от датчиков DS1820 девятиразрядный двоичный код перекоди­ руется в двоично-десятйричный код. Выделяется девятый разряд и определя­ ется знак температуры. Перекодированные значения переписываются в деся­ тичные регистры. Позже значения этих регистров в зависимости от выбран­ ного режима будут переписаны в регистры индикации. 109
Устройства, измеряющие температуру Далее программа проверяет состояние кнопок и выполняются соответст- _ вующие установки. Проверка. кнопок завершается перезаписью всех значений в регистры индикации. После выполнения всех операций программа ожидает прерывание. Во время прерывания выполняется установка и перекодирование регистров секунд, минут и часов (на рис. вс;.>rо резонатора на 4,096 33 не показано). При выбранной частоте кварце­ МГц, коэффициенте деления предделителя 256, делителе и с учетом машинного цикла, равного четырем тактам, коэффициент де­ 16 ления регистра таймера должен быть равен 250 (4096/256 х 16 х 4 х 250 = 1 с). Поэтому перед выходом из прерывания выполняется предустановка таймера на число 6 (256 - 250 = 6). Прерывания происходят через 1/16 с (62,5 мс х 16 = 1 с). После отработки прерывания программа возвращается к индикации и цикл измерения температуры повторяется. Для детального рассмотрения алгоритма работы программы по измере­ нию температуры (рис. 34) вспомним кратко принцип работы микроконт­ роллерного датчика температуры DS 1820~ Датчики температуры с однопро­ водным интерфейсом были разработаны фирмой TOR DALIAS SEMICONDUK- для использования .совместно с микроконтроллерами. Впоследствие эти датчики стали выпускаться фирмой MAXIM. Каждый датчик температуры имеет 56-разрядный индивидуальный идентификационный код, поэтому по одному проводу может быть опрошено практически неограниченное число датчиков. Перед установкой таких датчиков в од»у линию необходимо счи­ тать 8 64 разрядныt{ код ROM (в него входит 56-битный номер датчика и бит регистра контроля четности) для .каждого датчика и учитывать его при программировании микроконтроллера. Передача 64 разрядов занимает много времени, поэтому в устройствах, использующих небольшое число датчиков, можно обойтись выделением отдельного выхода микроконтроллера для каж­ дого датчика. Принцип измерения температуры основан на сравнении частоты двух ге- д нераторов. Частота одного генератора не зависит от температуры, а частота второго изменяется с изменением температуры. Разность частот двух генера­ торов определяет значение температуры. Восьмиразрядный код температуры побитно, · начиная с младшего бита, выводится в линию связи. Девятый бит определяет знак измеренной температуры. Если дувятый бит единичный, то температура имеет знак минус, и наоборот. Передача каждого бита данных длится 60 ·мкс. Если длительность низкого уровня в линии от импульс идентифицируется как лог. 1. 1 до 15 мкс, то Лог. О идентифицируется при длитель­ ности низкого уровня в линии от 15 до 60 мкс. Все сеансы приема данных с датчика начинаются подачей в линию сиmала обнуления (RESET), установкой низкого уровня дЛИ:тельностью 480 ... 960 мкс. В ответ датчик выдает в линию сигнал наличия 60."240 мкс. (Presence) длительностью Для упрощения программы прием сигнала наличия (если в линии один датчик) игнорируется, а время длительности сиmала (не менее 100 мкс) заполняется паузой. Если в программе допускается отключение датчика, то проверка сигнала наличия обязательна. В литературе_ и в документации Sheet) 110 (Data на датчики нигде не указано, что перед приемом каждого бита необхо-
Термометр-часы СЧЕТЧИК= ОБНУЛЕНИЕ 8 ЗАПИСЬ ЧИСЕЛ СДВИГ ВПРАВО ОхССИОх44 С= ОБНУЛЕНИЕ ЗАПИСЬ чис~л ПОСЫЛ НУЛЯ СЧЕТЧИК= посыл FДИНИЦЫ СЧЕТЧИК- СДВИГ ОхСС иахВЕ 1 LSB ВПРАВО 8 LSB= () 1 ИМПУЛЬС ЗАПРОСА ДА ПАУЗА8 мкс ИНВЕРТИРОВ<\НИЕ LSB+ 1 НА ПЕРЕКОДИРОВКУ' ТЕ1ШЕРАТУРЫ Рис. 34. · димо кратковременно Алгоритм работы программы термометр-часы. Измерение температуры (1 ... 3 · мкс) установ:ить низкий уровею, в линии. Послать своего рода запрос на прием следующего бита. Алгоритм работы программы измерения температурь! для дома и улицы олинаков, поэтому можно рассмотреть его олин раз (рис. 34J.' После обнуле­ ния линии передаются управляющие команды OxCCh и Ox44h для начала из- 111
Устройства, измеряющие.температуру мерения температуры. Передача команды начинается с записи в счетчик чис­ ла принимаемых бит 8. Сдвцгом вправо выталкивается младший бит команды, который переписывается в бит С реrистра STATUS. По ·значению бита С в линию посылается либо ноль, либо единица. Декрементируется счет­ чИ:к, и его значение проверяется на нуль. Если счетчик пуст, то программа возвращается в точку посыла на ее выполнение. В противном случае в линию выдается значение следующего бита. После посьша команд OxBEh OxCCh и Ox44h посылаются команды OxCCh и на считывание температуры. Перед приемом числа обнуляется ре­ гистр приема LSB и устанавливается сЧетчик числа принимаемых бит. Вы-. дается в линию короткий Импульс запроса и выдерживается пауза Переписывается состояние ,порта во временный регистр и 8 мкс. опрашивается флаг девятого бита. Если принимается не девятый бит, то проверяется на ноль бит временного регистра, который переписан с порта приема данных. По его значению устанавливается бит переноса С регистра гом вправо регистра приема LSB STATUS. Сдви­ бит переноса переписывается в его стар­ ший бит. Выдерживается пауза длительностью мкс, и проверяется флаг 60 девятого бита. Если принимается не девятый бит, то декрементируется с~ет­ чик, проверяется на ноль и прием данных повторяется. Если приняты все восемь бит и счетчик пуст, то устанавливается флаг девятого бита. После приема девятого бита его значение не записывается в регистр приема, а по нему устанавливается флаг знака. Положительные температуры передаются датчиком в прямом двоичном коде, а отрицательные· в коде дополнения до нуля (256), поэтому необходима перекодировка полученного кода. Если знак температуры отрицательный, то регистр приема LSB переводится в дополнительный код (инвертируется и; прибавляется единица). Если знак измеряемой температуры положительный, то программа пер~ходит к перекодировке температуры в двоично-десятирич­ ньiй код. Необходимо заметить, что младший бит регистра приема несет, ин­ формацию о десятых значениях температуры. Если бит равен единице, то де­ сятые равны 0,5, а если бит нулевой - 0,0. После записи десятых в регистр индикации регистр приема ·сдвигается на один разряд вправо. В таком виде значение темnературы передается на перекодировку. Для полноты понимания работы устройства рассмотрим алгоритм работы программы проверки кнопок, показанный на рис. 35. Последовательно прове­ ряются кнопки: «Установка», «Разряд» и «Режим». Если кнопка нажата, то устанавливается соответствующий флаг .. Пока кнопка нажата, операции по установке не выполняются. Есл~ любая из кнопок нажата, то инкрементиру­ ются соответствующие регистры разряда, курс;ора или режима. После этого программа переходит на выбор режима индикации. По значениЮ регистра ре­ жима выбирается подпрограмма заполнения регистров индикаци~: улица часьi, дом - часы, улица - - дом и установка часов. Все готово для индикации нового значения измеренной температуры. · Схема термометра показана на рис. 36. Датчик температуры назначен для измерения температуры на улице, а датчик DD2 -- DDl в доме. Дат­ чики температуры подключают к плате через. ауди~стереоразъемы 112 пред­ Xl и Х2. '
Термометр-часы ПРОВЕРКА ЮЮПОК ПЛЮС 1 В РАЗРЯД КУРСОР ПЛЮС ПЛЮС 1 1 В РЕЖИМ ВЫБОР РЕЖИМА УЛИЦА-ЧАсЫ ДОМ-ЧАСЫ УЛИЦА-ДОМ УСТ АНОВКР.. ЧАСОВ НА ОЖИДАНИЕ ПРЕРЫВАНИЯ Рис. 35. Алrоритм работы программы термометр-часы. Проверка кнопок Резистором Rб устанавливают необходимую контрастность ЖК-дисплея. Если термометр будет устанавливаться в автомобиле, то вывод· «К» светоди­ одной подсветки индикатора (на рис. 36 не показан) подkлючают к минусу питания. Вывод «А» индикатора через одноваттный резистор сопротивл~нием 300 Ом подключают к выключателю подсветки приборов. Рекомендуемый ток ·через светодиоды подсветки равен дома ста~илизатор напряжения DAI 70 мА. Для использования термометра можно не· устанавливать, а запитывать устройство от трех' элементов· питания (или от одной батареи 3Rl2) общим напряжением 1 4,5 В. В ·этом случае необходимо установить выключатель на- пряжения питания. Потребляемый термометром ток при напряжении пита­ ния, равном 5 В, составляет напряжения питания д,О 3 3 мА. Устройство работоспособно при снижении В, но при напряжении 3,7 В цифры на щщикаторе становятся трудноразличимы. 113
Устройства, измеряющие температуру ........ ........ ........ =~ о .......Г) = u ...... ~ Н· :.: ~~ i:.:..,; х о ~ со й о Б о ~ СУ о :g ::J ::< ~ и ~ о s щ ::i:: о !- :g СУ о ::J о~ ~ !I! !- Рис. 36. Термометр-часы. Электрическая схема , При испытании датчик температуры прекрасно работал на удалении до 20 м при положительной температуре. При отрицательной температуре Печатная плата термометра показана на тов на ней - на рис. 38. а расположение элемен­ Плату устанавливают печатными проводниками к индикатору через изолирующую прокладку. 114 6 м. рис. 37, (-15°) термометр работал без сб9ев с длиной линии до
1 ермометр-часы 80 о ( о Рис. 37. Термометр-часы. Печатная плата К выводам и~икатора . 7-128 14 )~ )~ 11. 6 5 4 ~ 2 1 о 1 о о c:J С4 " о о Рис. 38. Расположение элементов на плате Назначение кнопок управления Кнопкой «Режим» выбирают один из режимов индикаuии: улица дом - часы, улица - - дом, часы - часы, установка. Кноцкой «Разряд» выбирают необходимый разряд установки часов. Под выбранным разрядом мигает курсор (черточка). Кнопкой «Установка» прибавляют единицу в выбранный разряд. Пока кнопка нажата, установки не выполняются. Кнопки «Разряд» и ~<Установка» работают только при установке часов. Работа с термометром-часами После подачи напряжения на индикаторе слева высветится температура на улице, а справа - показания часов, рис. 39. Индикация буквы «У» возле зна­ чения температуры говорит о том, что работает термометр «улица». Нажатием кнопки «Режим» последовательно изменяют режим на дом улица - дом (рис. 41). - часы (рис. 40) и ' В режиме установки часов (рис. 42) курсор будет находиться под разрядом десятков часов. Кнопкой «Установка» набирают необходимое число часов. Кнопкой «Разряд» перемещают курсор в необходимый разр~д и устанавлива­ ют единицы часов, десятки минут и единицы минут аналогично установке де­ сятков часов. Перемещая курсор на единицы секунд и нажав кнопку «Уста­ новка», сбрасывают показания минут и секунд в ноль. Этим режимом можно 115
Устройства, измеряющие температуру Рис. 39 Рис. 40 Рис. 41 Рис. 42 пользоваться при установке часов по сигналам точного времени. Начало хода секунд совпадает с моментом отпускания кнопки. При установке часов и ми­ нут ход секунд не останавливается. После установки часов выбирают необходимый режим индикации . • Т~РМОМЕТР/ЧАСЫ. ТОЧНОСТЬ ИЗМЕРЕНИЯ ТЕМПЕРАТУРЫ - 0,5 ГРАДУСА. ДАТЧИК ТЕМПЕРАТУРЫ - DS1820, ИНДИКАЦИЯ - lбxl ЖКИ - LSD. РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ ДЛЯ СВОБОДНОГО ИСПОЛЬЗОВАНИЯ п.ВЕЙДЕЛЕВКА, 116 БЕЛГОРОДСКОЙ. РАДИОЛЮБИТЕЛЯМИ.
Термометр-часы saes@mail.ru = TEHO.ASM 24-07-04. ПРОГРАММА ВЕРСИЯ: АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, ВЕРСИЯ: 5.70.40. #INCLUDE Pl6F84A.INC _CONFIG ЗE:'FlH ;======================================================== ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАСТОТОЙ 4,096 МГц. 256, ЧТО ВМЕСТЕ (250) И ЦИКЛОМ, РАВНЫМ 4 ТАКТАМ, И ДЕЛИТЕЛЕМ НА 16 НА ВЫХОДЕ 1 сек (4х16х2~6х250=4096000). КОЭФФИЦИЕНТ ДЕЛЕНИЯ ПРЕДДЕЛИТЕЛЯ РАВЕН С TMRO ДАЕТ ;======================================================== RB4-RB7 - ДАННЫЕ LCD, RB2 RS, RВЗ - Е, 1 ; .RВl РЕЗЕРВ. RBO RAO RAl ВХОД/ВЫХОД РЕЗЕРВ. DS1820, ДОМ. RA2 - КНОПКА RАЗ КНОПКА "РЕЖИМ" (ЧАСЫ - ТЕРМОМЕТР RA4 ·- ВХОД/ВЫХОД НА DS1820, УЛИЦА. КНОПКА НА "УСТАНОВКА", "РАЗРЯД". УЛИЦА - ДОМ) . ;======~================================== ; СПЕЦРЕГИСТРЫ. ;========================================= INDF TIMERO OPTIONR РС STATUS FSR PORTA PORTB TRISA TRISB INTCON EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU FSR. оон ;ДОСТУП OlH 81Н ;TMRO. ;OPTION (RPO=l). 02Н ;СЧЕТЧИК озн ;РЕГИСТ~ СОСТОЯНИЯ 04Н ~РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. 05Н ;ПОРТ А ВВОДА/ВЫВОДА. 06Н ;ПОРТ В ВВОДА/ВЫВОДА. 85Н ;НАПРАВЛ~НИЯ ДАННЫХ ПОРТА А. 86Н ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА овн ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ. К ПАМЯТИ ЧЕРЕЗ КОМАНД. АЛУ. в. ;============================================== ; РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ. ;============================================== EDI DES , SECL SECH MINL MINH HOUL ноuн ТЕМР ZAN COUN LSB DST cou sот мск EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU lOH llH ;ЕДИНИЦЫ ТЕМПЕРАТУРЫ. ;ДЕСЯТКИ. 12Н, ;ЕДИНИЦЫ lЗН ; ДЕСЯТКИ СЕКУНД'. 14Н ;ЕДИНИЦЫ МИНУТ. 15Н ;ДЕСЯТКИ 16Н ;ЕДИНИЦЫ ЧАСОВ. 17Н .; ДЕСЯТКИ 18Н ;,ВРЕМЕННЫЙ. 19Н ;СЧЕТЧИК lAH lBH lCH lDH lEH lFH ;СЧЕТЧИК БИ';I'ОВ. ;РЕГИСТР ДАННЫХ ;ДЕСЯТЫЕ ТЕМПЕРАТУРЫ. ;СЧЕТЧИК ПЕРЕСЧЕТА. ;РЕГИСТР ЗНАКА. СЕКУНД. МИНУТ. ЧАСОВ. ПАУЗЫ. ;МИЛЛИСЕКУНД. ~ DS.
Устройства, измеряющие температуру EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 21Н ;ВРЕМЕННЫЙ. 22Н ;ВРЕ:МЕННЫЙ. 2ЗН ;ВРЕМЕННЫЙ. 24Н ;СЕКУНДЫ ДВОИЧНЫЕ. Rlб EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU" EQU EQU EQU EQU EQU EQU SOTD EDID DESD DSTD SOTY EDIY DESY DSTY EQU EQU EQU EQU EQU EQU EQU EQU WTEMP STEMP FTEMP SEC MIN HOU DSMH. LSMH HSMH REID КУРС Rl R2 RЗ R4 RS Rб R7 RB R9 RlO Rll R12 RlЗ R14 Rl5 25Н ;МИНУТЫ ДВОИЧНЫЕ. 26Н ;ЧАСЫ ДВОИЧНЫЕ 27Н ;РЕГИСТР 28Н ;МЛАДШИЙ РЕГИСТР 29Н ;СТАРШИЙ РЕГИСТР ПЕРЕСЧЕТА. 2АН ;РЕЖИМ 2ВН ;КУРСОРА. зон ;РЕГИСТРЫ ИНДИКАЦИИ. ПЕРЕСЧЕТА. ИНДИКАЦИИ. ЗlН З2Н ззн З4Н ;sн ЗбН З7Н 38Н З9Н ЗАН звн зсн зон ЗЕН ЗFН 40Н ;ЗНАК ДОМА. 41Н ;ЕДИНИЦЫ ДОМА. 42Н ;ДЕСЯТКИ. 4ЗН ;ДЕСЯТЫЕ. 44Н ;ЗНАК 45Н ;ЕДИНИЦЫ. 46Н ;ДЕСЯТКИ. 47Н ;ДЕСЯТЫЕ УЛИЦЫ. УЛИЦЫ. ;============================================== ; ОПРЕДЕЛЕНИЕ БИТОВ СОСТОЯНИЯ РЕГИСТРОВ ФЛАГОВ. ;============================================== 20Н FLAG -EQU 0-> ЗНАКА. 1-МИНУС. 1-> СЧИТЫВАНИЯ 9 РАЗРЯДА. - 2-> ПРЕРЫВАНИЯ. З-> КНОПКИ "УСТАНОВКА". 4-> КНОПКИ "РЕЖИМ". 5-> КНОПКИ "РАЗРЯД". 6-> ЧЕРЕДОВАНИЯ КУРСОРА И ИНДИКАЦИИ. 7-> ДЕЛИТЕЛЬ НА 2. FLAGl EQU 2СН 0-> УСТАНОВКИ ЧАСОВ. 1-> ИЗМЕРЕНИЕ ДОМ-1, УЛИЦА-О. 2-> ИНДИКАЦИЯ ДОМ-УЛИЦА - 1. З-> 118 ИЗМЕРЕНИЕ ДОМ-1 ИЛИ УЛИЦА-О.
;====================щ================== DSD DS RS. Е УСТ PAZ PEJ EQU EQU EQU EQU EQU EQU EQU DS, DS, о ;ВЫХОД 4 2 ;ВЫХОД 3 1 ;СИНХРОНИЗАЦИЯ. 2 ;РАЗРЯД. 3 ;РЕЖИМ. дом. УЛИЦА. ;КОМАНдА/ДАННЫЕ. ;УСТАНОВКА. ;==~===============~==================== ; 1. ПУСК. ;========~============= ORG О GOTO ORG 4 GOTO INIT PRER :====================== ; 2. ИНИЦИАЛИЗАЦИЯ. :====================== INIT BSF MOVLW STATUS,RPO B'OOOOOlll' MOVWF MOVLW OPTION ;ПЕРЕХОДИМ В К=256 ; REGл80H В'00100000' БАНК 1. ;ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕРОМ, ... 111, ;ПОДТЯГИВАЮЩИЕ ;РАЗРЕШЕНИЕ РЕЗИСТОРЫ ВКЛЮЧЕНЫ. ПРЕРЫВАНИЯ ПРИ ПЕРЕПОЛНЕНИИ ;ТАЙМЕРА. MOVWF MOVLW MOVWF MOVLW MOVWF BCF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF CLRF INTCON B'OOOlllll' ;ВСЕ НА ВХОД. ;ВСЕ НА ВЫХОД. TRISAЛ80H В'ОООООООО' TRISBл80H а STATUS,RPO TMRO FLAG FLAGl PORTA PORTB SEC MIN HOU HOUL HOUH MINL MINH SECH REID ;ПЕРЕХОДИМ В ·;ВСЕ БАНК О. ОБНУЛЯЕМ И УСТАНАВЛИВАЕМ КУРС ;========================================= ; з. ИНИЦИАЛИЗАЦия·жки. ;========================================= JEKINI MOVLW CALL CALL MOVLW CALL 3 JEKOMI STROB 3 JEKOMI ;СБРОС. ;ПЕРЕДАЧА КОМАНДЫ. ;ПРОСТРОБИРУЕМ. ;СБРОС. 119
Устройства, измеряющие температуру CALL MOVLW CALL CALL MOVLW CALL CALL MOVLW CALL CALLI MOVLW CALL CALL MOVLW CALL CALL MOVLW 'CALL CALL MOVLW . CALL CALL BCF GOTO STROB 3 JEKOMI STROB 10 JEKOMI STROB 06 JEKOMI STROB 01 JEKOMI STROB 28 JEKOMI STROB 28 JEKOMI STROB ос ;ПРОСТРОБИРУЕМ. ;ПРОСТРОБИРУЕМ. ;ЗАПРЕТ СДВИГА ИЗОБРАЖЕНИЯ ;ПРОСТРОБИРУЕМ. ;ИНКРЕМЕНТИРОВАНИЕ ПОЗИЦИИ ;ПРОСТРОБИРУЕМ. ;СТИРАНИЕ ДИСПЛЕЯ. ;ПРОСТРОБИРУЕМ. ;ФОРМАТ ОБМЕНА: 4 РАЗР., 5х7, 2 СТРОКИ. ;ПРОСТРОБИРУЕМ. ;ПРОСТРОБИРУЕМ. ;ВКЛЮЧЕНИЕ· ДИСПЛЕЯ, JEKOMI STROB INTCON,2 JEKI КУРСОРА. ЗАПРЕТ КУРСОРА. ;ПРОСТРОБИРУЕМ. ;НА ИНДИКАЦИЮ. PAUSA MOVLW MOVWF .25 ZAN PAUS MOVLW ADDLW BTFSS GOTO DECFSZ -GOTO RETURN JEKOMI MOVWF ANDLW MOVWF CALL CALL MOVFW SWAPF ANDLW MO'JWF CALL. CALL RETURN .255 -1 STATUS,2 $-2 ZAN,l PAUS- ТЕМР ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. В'11110000' ;ЗАМАСКИРУЕМ МЛАДШИЕ PORTB STROB PAUSA ;ОСТАЛЬНЫЕ РАЗРЯДЫ РАЗ.РЯДЫ ПОД НОЛЬ. ПЕРЕПИШЕМ ВЫБОР TEMP,W ;ПОМЕНЯЕМ МЕСТАМИ ПОЛУБАЙТЫ. В'11110000';ЗАМАСКИРУЕМ СТАРШИЕ. РАЗРЯДЫ ПОД НОЛЬ. PORTB STROB PAUSA ;ПЕРЕПИШЕМ В ПОРТ "В". ;ПРОСТРОБИРУЕМ. ;ПАУЗА. РЕЖИМА ИНДИКАЦИИ. VUBOR 120 "В". ;ПАУЗА. ;======================================= BTFSS RETURN BCF ПОРТ ТЕМР ;=========================~============= ; 4. В ;ПРОСТРОБИРУЕМ. PORTA,PEJ ;ЕСЛИ ;ТО FLAG,4 КНОПКА ВЫБОРА ;СБРОС НАЖАТА, НЕТ. ФЛАГА РЕЖИМА.
Термометр-чась1 MOVfW ADDWF GOTO GOTO GOTO GOTO J REID ;ПО РС,1 :.ВЫБИРАЕМ ИНДИКАЦИЮ. INDY INDD INYD INDH ;ТЕМПЕРАТУРА УЛИЦА НОМЕРУ - ЧАСЫ. ;ДОМ -:- ЧАСЫ. ;ДОМ - УЛИЦА. ;УСТАНОВКА ЧАСОВ. ,·======================================= . ; 5. ВЫБОР РАЗРЯДА УСТАНОВКИ. ;======================================= УСТА BTFSS RETURN BTFSS RETURN BCF MOVFW ADDWF GOTO GOTO GOTO GOTO GOTO PORTA,YCT ;ЕСЛИ КНОПКА НАЖАТА, ;ТО ВЫБОРА.НЕТ. FLAGl,O ;ЕСЛИ ;ТО НЕТ УСТАНОВКИ, КНОПКА FLAG,3 ;СБРОС КУРС ;ПО РС,1 ;НАХОДИМ НЕ ФЛАГА РАБОТАЕТ. РЕЖИМА. КУРСОРУ РАЗРЯД. УСО YCl УСЗ 1 УС4 УС7 ;======================================================== ; 6. ·ТАБЛИЦЫ ПЕРЕВОДА ДЕСЯТКОВ В ДВОИЧНОЕ ЧИСЛО. ;===========================~============================ DEBIN РС,1 ADDWF RETLW RETLW RETLW RETLW RETLW RETLW '.о .10 .20 .30 .40 .50 ;========================================= ; 7. ФОРМИРОВАНИЕ СТРОБИРУЮЩЕГО ИМПУЛЬСА. ;========================================= STROB BSF NOP BCF RETURN PORTB,E ;ВКЛЮЧАЕМ СТРОЕ-ИМПУЛЬС. PORTB,E ;ВЫКЛЮЧАЕМ СТРОЕ. ;ВЕРНЕМСЯ. ; =================================:;::::.======:::::::====== ; 8. ПЕРЕДАЧА КОМАНДЫ В ЖКИ. ;=========~==============================~====== JEKOM MOVWF ANDLW MOVWF CALL CALL MOVFW SWAPF ANDLW MOVWF CALL ТЕМР ;ПЕРЕПИШЕМ: ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. в ;ЗАМАСКИРУЕМ МЛАДШИЕ 1 11110000 1 PORTB STROB PUS ;ОСТАЛЬНЫЕ РАЗРЯДЫ РАЗРЯДЫ ПЕРЕПИШЕМ ПОД В НОЛЬ. ПОРТ "В". ; ПРОСТРОБИР.УЕМ. ;ПАУЗА. ТЕМР TEMP,W 11110000' PORTB· STROB .В' ;ЗАМАСКИРУЕМ <;:ТАРШИЕ ;ПЕРЕПИШЕМ ПОРТ В РАЗРЯДЫ под ноль. "В". ;ПРОСТРОБИРУЕМ. 12
Устройства, измеряющие температуру PUS MOVLW ADDLW BTFSS, GOTO RETURN .255 -1 STATUS,2 $-2 ;1 MOVLW ADDLW BTFSS GOTO RETURN .10 -1 ;40 мс. PUSO мкс. ·sтATUS,2 $-2 ;===================================== ; 9. ЗАПИСЬ ДАННЫХ В ЖКИ. ;===================================== JEDAT MOVWF ANDLW ADDLW MOVWF BSF ТЕМР ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. в ;ЗАМАСКИРУЕМ МЛАДШИЕ CALL CALL STROB PUSO 1 11110000 1 30 PORTB PORTB,RS ;ПЕРЕВОД В КОД ASCII, РАЗРЯДЫ ПОД НОЛЬ. ТОЛЬКО ДЛЯ ЦИФР! ;ОСТАЛЬНЫЕ РАЗРЯДЫ: ПЕРЕПИШЕМ ;УСТАНОВИМ R/S В ПОРТ "В". НА РАЗРЕШЕНИЕ ЗАПИСИ ;дАННЫХ. ;ПРОСТРОБИРУЕМ. ;ПАУЗА ДЛЯ ОСВОБОЖДЕНИЯ ЖКИ ОТ ЦИКЛА ;ЗАПИСИ. ' MOVFW SWAPF ANDLW MOVWF BSF ТЕМР ТЕМР,0 ;ПОМЕНЯЕМ МЕСТАМИ ПОЛУБАЙТЫ. в 11110000 1 PORTB PORTB,RS ;ЗАМАСКИРУЕМ СТАРШИЕ STROB PUSO ;ПРОСТРОБИРУЕМ. 1 РАЗРЯДЫ: ПОД НОЛЬ. ;ОСТАЛЬНЫЕ РАЗРЯДЫ: ПЕРЕПИШЕМ В ПОРТ ;УСТАНОВИМ R/S "В". НА РАЗРЕШЕНИЕ ЗАПИСИ ;ДАННЫХ. CALL GOTO ;ПАУЗА. ;======~===================================================== ; 10. ВЫВОД ЗНАЧЕНИЙ РЕГИСТ.РОВ НА ИНДИКАЦИЮ. ;======================~================================~==== JEKI BTFSS GOTO . BTFSS GOTO MOVLW CALL MOVLW CALL MOVLW MOVWF MOVLW MOVWF MOVFW CALL DECF BTFSC GOTO INCF 122 FLAGl,O $+3 FLAG,6 JEKYC 02 JEKOM B'lOOOOOOO' JEKOM .8 COUN Rl FSR INDF JEDAT COUN,1 STATUS,2 $+3 FSR, 1 ;ЕСЛИ ;ТО НЕТ УСТАНОВКИ, ПРОПУСКАЕМ ИНДИКАЦИЮ КУРСОРА. ;ЕСЛИ НЕ БЫЛО ИНДИКАЦИИ КУРСОРА, ; ТО ПРОИНДИЦИРУЕМ • 1 ;ВОЗВРАТ КУРСОРА в и9ходНОЕ СОСТОЯНИЕ. ;ЗАПИШЕМ КОМАНДУ. ;КУРСОР НА О ПОЗИЦИЮ ПЕРВОЙ ;ЗАПИШЕМ СТРОКИ. КОМАНДУ. ;ЗАПИШЕМ ЧИСЛО ЗНАКОМЕСТ. ;АДРЕС ПЕРВОГО РЕГИСТРА ИНДИКАЦИИ. ;ПО КОСВЕННОЙ АДРЕСАЦИИ. ;ИНДИЦИРУЕМ ЗНАЧЕНИЕ. ;УМЕНЬШАЕМ СЧЕТЧИК. ;ЕСЛИ УЖЕ ;ТО О, ПЕРЕХОДИМ НА ВТОРУЮ СТРОКУ. ;ИНАЧЕ ПРОИНДИЦИРУЕМ СЛЕДУЮЩИЙ
Термометр-часы GOTO MOVLW CALL MOVLW MOVWF INCF MOVFW CALL DECF BTFSS GOTO BCF GOTO $-6 11000000 JEKOM в' ;РЕГИСТР. 1 ;ВТОРАЯ СТРОКА (УСЛОВНО 2х8) .ОхОСО ;ЗАПИШЕМ КОМАНДУ~ •8 ;ИНДИКАЦИЯ COUN FSR,1 INDF JEDAT COUN,l STATUS,2 $-5 FLAG,6 INIDS ;ИНДИКАЦИИ ПЕРВОЙ СТРОКИ. АНАЛОГИЧНА ;==============~======~==================~ '; 11. ИНДИКАЦИЯ КУРСОРА. ;===================~===================== JEKYC MOVLW CALL CALL CALL BSF GOTO .14 JEKOM JEKYK JEKOM FLAG,6 INIDS ;РАЗРЕШАЕМ. МИГАНИЕ ;ЗАПИШЕМ ;НА ВЫБОР ;ЗАПИШЕМ КУРСОРА. КОМАНДУ. МИГАЮЩЕГО РАЗРЯДА. КОМАНДУ. JEKYK MOVFW ADDWF RETLW RETLW RETLW RETLW RETLW КУРС ;РЕГИСТР КУРСОРА В РАБОЧИЙ. РС,1 ;ВТОРАЯ СТРОКА ОхСО ;ДЕСЯТКИ ЧАСОВ. OxCl ;ЕДИНИЦЫ ЧАСОВ. ОхСЗ ;ДЕСЯТКИ МИНУТ. ОхС4 ;ЕДИНИЦЫ МИНУТ. ОхС7 ;СБРОС ~ИНУТ (УСЛОВНО 2х8) ОхОСО; И СЕКУНД. .;===========~=======~===================== ; 1·2. ИНИЦИАЛИЗАЦИЯ DS ДЛЯ УЛИЦЫ. INIDS BTFSC GOTO BCF CALL MOVLW CALL MOVLW CALL GOTO FLAGl,l INIDSD FLAGl,3 HYL ;ЕСЛИ УСТАНОВЛЕН ОхСС ;ПРОПУСК POSIL ;ПОШЛЕМ. Ох44 ;РАЗРЕШАЕМ POSIL PRIEM ;ПОШЛЕМ. CALL MOVLW ADDLW BTFSS GOTO CALL MOVLW ADDLW BTFSS GOTO wux ;ВЫХОД .125 -1 STATUS,2 $-2 ;НУЛЕВОЙ ИМПУЛЬС ;ТО ИЗМЕРЯЕМ ;ДЛЯ ФЛАГ, ТЕМПЕРАТУРУ в ДОМЕ. УЛИЦЫ. ;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ. ПОСЫЛА НОМЕРА DS. ПРЕОБРАЗОВАНИЕ. ;НА ПРИЕМ ТЕМПЕРАТУРЫ. HYL wxo .125 -1 STATUS,2 . $-2 '·= 500 ;ВЫХОД НУЛЯ. мкс. ЕДИНИЦЫ. ;импульс ;500 = мкс. 123
Устройства, измеряющие температуру RETURN ;================================~====== ; 13. ИЗМЕНЕНИЕ ВХОДА НА ПРИЕМ/ПЕРЕДАЧУ. ;======================================= wux BCF BSF BCF BCF RETURN PORTA,DS STATUS,5 ;ПЕРЕХОДИМ TRISAЛ80H,DS ;НА STATUS,5 в БАНК 1. ;ПЕРЕХОДИМ в БАНК о. в 'БАНК 1. БАНК о. ВЫХОД. wxo BSF BSF BCF RETURN STATUS,5 ;ПЕРЕХОДИМ TRISAЛ80H,DS ;НА STATUS,5 ;ПЕРЕХОДИМ ВХОД. в ;===============~==================== ; 14. ПРИЕМ 9 БИТ ИЗ DS УЛИЦЫ. ;==================================== PRIEM CALL MOVLW CALL MOVLW CALL CALL BSF CALL BCF BT-FSS BCF BTFSC BSF BTFSS GOTO COMF ADDLW MOVWF GOTO HYL ;ПОСЫЛ ОхСС ;ПРОПУСК POSIL ;ПОСЫЛ. -ОхВЕ ИМПУЛЬСА ОБНУЛЕНИЯ. ;ЧТЕНИЕ НОМЕРА. ТЕМПЕРАТУРЫ ИЗ БЛОКНОТА. POSIL PRIE FLAG,1 PRI FLAG,1 TEMP,DS FLAG,0 TEMP,DS FLAG,0 FLAG,0 ;ПОСЫЛ. СХЕТ ;ПОСЧИТАЕМ. LSB,O .1 LSB ;ИНВЕРТИРУЕМ. СХЕТ ;НА MOVLW MOVWF CLRF .8 COUN LSB ;ЗАПИШЕМ ЧИСЛО CALL CALL' MOVLW CALL MOVFW MOVWF BTFSC RETURN BTFSS BCF BTFSC B.SF wux wxo ;ВЫДАЕМ КОРОТКИЙ НОЛЬ И ЖДЕМ ОТКЛИКА. .2 ;ЗАДЕРЖКА Х4 ;8 PORTA ;ПЕРЕПИШЕМ ТЕМР ;ЗНАЧЕНИЕ ПОРТА. FLAG,1 ;ЕСЛИ 9 ПРИЕМ. ;НА 9 ;УСТАНОВИМ ;И ПРИМЕМ БИТ. ЕГО. ;СБРОСИМ ФЛАГ. ;ЕСЛИ ПРИНЯТЫЙ БИТ = ;ТО ПЛЮСА. УСТАНОВИМ ФЛАГ ;ИЛИ О, МИНУСА. ;ПРОПУСТИМ, ЕСЛИ МИНУС. \ ;ПРИБАВИМ 1 и ПОЛУЧИМ ;ОТРИЦАТЕЛЬНЫЕ ДАННЫЕ. ПЕРЕСЧЕТ. PRIE ;ОБНУЛИМ БИТ. РЕГИСТР ПРИЕМА. PRI 124 ;НА ПРИЕМ . мкс. ЭТО -БИТ, ;ВЕРНЕМСЯ. TEMP 1 DS STATUS,0 TEMP,DS STATUS,O ;УСТАНОВИМ БИТ ;ИЛИ ЕДИНИЦУ. ПР~ЕМА В НОЛЬ.
Термометр-часы RRF MOVLW CALL DECFSZ GOTO RETURN LSB,1 .15 ;ЗАПИШЕМ ;ПАУЗА В 60 РЕГИСТР. мкс. Х4 cou~,1 ;УМЕНЬШИМ СЧЕТЧИК. PRI ;ПОВТОРИМ ПРИЕМ. ;ВЕРНЕМСЯ. ;===================~============== ЗАДЕРЖКА мкс, .УМНОЖЕННАЯ НА' 4. ;================================== ; 15. Х4 ADDLW BTFSS GOTO RETURN -1 STATUS,2 $-2 ;========================================== ; 16. ПОСЫЛ КОМАНДЫ В DS УЛИЦЫ. ;========================================== POSIL MOVWF t10VLW MOVWF ТЕ/11Р ;ПЕРЕПИШЕМ.ВО ВРЕМЕННЫЙ. .8 ;ЗАПИШЕМ ЧИСЛО БИТ. COUN POSI ТЕМР,1 ;ВЫТОЛКНЕМ МЛАДШИЙ.БИТ. STATUS,0 ; ЕСЛИ wo ;ПОШЛЕМ ИМПУЛЬС Wl ;ИЛИ ЕДИНИЦЫ. DECFSZ GOTO RETURN COUN,1 POSI ;УМЕНЬШАЕМ CALL MOVLW CALL CALL GOTO wux ;УСТАНОВИМ ВЫХОД .15 ;УДЕРЖИВАЕМ CALL CALL MOVLW CALL GOTO RRF BTFSS GOTO GOTO ОН НУЛЕВО.Й, НУЛ~. POS СЧЕТЧИК. ;НА СЛЕДУЮЩИЙ БИТ. ;ВОЗВРАТ. wo В НОЛЬ. 60.мкс. Х4 wxo ;НА ВХОД POS ;ПОВТОРИМ. wux wxo ;НА ВХОД .15 ;УДЕРЖИВАЕМ = 1 НА ВЫХОДЕ. Wl ;КОРОТКИЙ НУЛЕВОЙ ИМПУЛЬС. =1 НА 60 ВЫХОДЕ. мкс. Х4 POS ;ПОВТОРИМ. ;============~===================== ; 17. СЧЕТ. ОБЩИЙ ДЛЯ ДОМА И УЛИЦЫ. ;=========~======================== СХЕТ MOVLW MOVWF BTFSS GOTO MOVLW MOVWF BCF RRF BTFSS .251 SOT ;ПО ;ЗНАК ПЛЮС. ~LAG,0 ;ЕСЛИ 9 $+3 .. 253 ;ТО УМОЛЧАНИЮ РАЗРЯД УСТАНОВИМ = 1, ЗНАК МИНУС. sот STATUS,O LSB,1 STATUS,O ;ДЕЛИМ, ТЕМПЕРАТУРУ НА ;ЕСЛИ МЛАДШИЙ РАЗРЯД 2. = 1, 125
Уqтройства, измеряющие температуру GOTO MOVLW MOVWF GOTO CLRF MOVFW MOVWF CALL MOVWF MOVFW MOVWF BTFSS GOTO $i:4 .5 DST $+2 DST LSB ;ТО ДЕСЯТЫЕ 5. ;ИЛИ= О. ;ПЕРЕКОДИРУЕМ ТЕКУЩЕЕ ;ИЗ ТЕМР BIDE DES ;РАВНЫ ЗНАЧЕНИЕ 2 10-Е. 99! 2-ГО В ;ТОЛЬКО ДО 1 ТЕМР EDI FLAGl,2 POSLA ;ЕСЛИ НЕТ ОДНОВРЕМЕННОЙ ИНДИКАЦИИ ;ТЕМПЕРАТУРЫ, ТО ИДЕМ НА КНОПКИ. ; =======================.================================ ; 18. ПЕРЕЗАПИСЬ В РЕГИСТРЫ ПРИ ОДНОВРЕМЕННОЙ ИНДИКАЦИИ. ;=================================~===================== DOM FLAGl,3 ;ЕСЛИ БЫЛО ИЗМЕРЕНИЕ ULIZA ;ТО ИДЕМ SOT SOTD DES DESD EDI EDID DST DSTD POSLA ;ПЕРЕПиiiIЕМ ВСЕ ЗНАЧЕНИЯ MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF GOTO SOT SOTY DES DESY EDI EDIY DST DSTY INIDSD ;ДЛЯ ;ИЗМЕРЯЕМ ТЕМПЕРАТУРУ CALL КНОР ;ПРОВЕРИМ КНОПКИ. BTFSS GOTO MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF GOT0 1 ;РЕГИСТРОВ ;В НА УЛИЦЕ, НА УЛИЦУ. ПЕРЕКОДИРОВКИ РЕГИСТРЫ ИНДИКАЦИИ. ;ДЛЯ ДОМА. ;ПОШЛЕМ НА КНОПКИ. ULIZA УЛИЦЫ. В ДОМЕ. POSLA :=======~=========================== ; 19. ОЖИДАНИЕ ПРЕРЫВАНИЯ. ;=================================== JDEM BCF BSF BTFSS 'GOTO BCF BCF GOTO 126 INTCON,2 INTCON,7 FLAG,2 $-1 INTCON,7 FLAG,2 ;СБРОС JEКI ;НА ИНДИКАЦИЮ. ФЛАГА ;РАЗРЕШАЕМ ПРЕРЫВАНИЯ. ПРЕРЫВАНИЯ. ;ОЖИДАЕМ ПРЕРЫВАНИЯ. ;О,5 сек. ;ЗАПРЕЩАЕМ ПРЕРЫВАНИЯ. ;СБРАСЫВАЕМ ФЛАГ ПРЕРЫВАНИЯ.
Термометр-часы ;======================================= . ; 20. ПРОВЕРКА КНОПОК. :======================================= КНОР с BTFSC CALL BTFSS BSF BTFSC CALL BTFSS BSF BTFSS BSF BTFSS GOTO BTFSS GOTO BCF INCF MOVLW SUBWF BTFSS GOTO CLRF BCF GOTO FLAG,3 ;ЕСЛИ УСТА ;ТО PORTA,YCT FLAG_, 3 FLAG,5 ;ЕСЛИ КУРСУ ;ТО ИДЕМ PORTA,PAZ FLAG,5 PORTA,PEJ FLAG,4 FLAG,4 VUBOR PORTA,PEJ VUBOR FLAG,4 REID,l REID,0 STATUS,2 VUBOR REID FLAGl,O VUBOR БЫЛА КНОПКА ;ЕСЛИ ·;ЕСЛИ РАЗРЯДА. НАЖАТА, ФЛАГ. РАНЕЕ БЫЛА НАЖАТА КНОПКА, НА УСТАНОВКУ КНОПКА ;ПОСТАВИМ ;ЕСЛИ НАЖАТА КНОПКА, НА УСТАНОВКУ ;ПОСТАВИМ КУРСОРА. НАЖАТА, ФЛАГ. КНОПКА НАЖАТА, ;ПОСТАВИМ ФЛАГ. ;ЕСЛИ ; ТО КНОПКА ИДЕМ ;ЕСЛИ НЕ БЫЛА НА ВЫБОР КНОПКА ;СБРОСИМ ФЛАГ ;ИЗМЕНЕНИЕ НАЖАТА, РЕЖИМА ИНДИКАЦИИ.· НАЖАТА, ;ТО ИДЕМ НА ВЫБОР ;4 •4 РАНЕЕ ИДЕМ РЕЖИМА ИНДИКАЦИИ. РЕЖИМА. РЕЖИМА ИНДИКАЦИИ. РЕЖИМА ИНДИКАЦИИ. ;ЕСЛИ БОЛЬШЕ, ;ТО ПОЙДЕМ НА СБРОС. ;НА ЗАПИСЬ В РЕГИСТРЫ ИНДИКАЦИИ. ;СБРОС РЕЖИМА. ;СБРОС УСТАНОВКИ ЧАСОВ. ;НА ВЫБОР РЕЖИМА ИНДИКАЦИИ. ;================================================= ; 21. УСТАНОВКА КУРСОРА (ВЫБОР РАЗРЯДА УСТАНОВКИ). ;==========================~====================== КУРСУ BTFSS RETURN BTFSS RETURN BTFSS RETURN BCF INCF MOVLW SUBWF SKPC RETURN CLRF RETURN FLAGl,O ;УСТАНОВКА ВОЗМОЖНА, ;ЕСЛИ ИНДИКАЦИЯ PORTA,PAZ ;УСТАНОВКА НЕ FLAG,5 УСТАНОВКИ. ;ПРИ НАЖАТОЙ КНОПКЕ МЕНЯЕТСЯ. ;ПРОДУБЛИРУЕМ СОСТОЯНИЕ ;ФЛАГА. FLAG,5 ;СБРОСИМ КУРС,1 ;ПРИБАВИМ ЕДИНИЦУ .5 ;НЕ БОЛЕЕ ЕГО. В КУРСОР. 5. КУРС, О КУРС ;ИНАЧЕ ОБНУЛИМ КУРСОР. ;======================================= ; 22. УСТАНОВКА ЧАСОВ. ;======================================= УСО INCF MOVLW SUBWF SKPNC CLRF MOVFW HOUH,l .3 ;УВЕЛИЧИМ ДЕСЯТКИ ;НЕ БОЛЕЕ ЧАСОВ. 2. ноuн,о ноuн ;ЕСЛИ ВОЛЬШЕ, то ноuн ;ПЕРЕКОДИРУЕМ в двоичный ОБНУЛИМ. 127
Устройства, измеряющие температуру ;КОД ДЕСЯТКИ. CALL ADDWF MOVWF RETURN DEBIN HOUL,0 HOU INCF MOVLW SUBWF SKPNC CLRF MOVFW CALL ADDWF MOVWF ADDLW SKPC RETURN CLRF CLRF CLRF RETURN HOUL,l . 10 HOUL,0 ;УВЕЛИЧИМ ЕДИНИЦЫ ЧАСОВ. ;НЕ 9. HOUL HOUH DEBIN HOUL,O HOU ;ЕСЛИ -18Н ;ПРЕВЫШАТЬ INCF MOVLW SUBWF SKPNC CLRF MOVFW CALL ADDWF MOVWF RETURN MINH,l ;УВЕЛИЧИМ ДЕСЯТКИ МИНУТ. .6 ;НЕ ;ПРИБАВИМ ЕДИНИЦЫ ;И ПОЛУЧИМ ДВОИЧНОЕ ЧИСЛО. ;ВЕРНЕМСЯ. YCl БОЛЕЕ БОЛЬШЕ, ТО ОБНУЛИМ. ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ ;КОД ДЕСЯТКИ. ;ПРИБАВИМ ЕДИНИЦЫ ;ДВОИЧНОЕ ЗНАЧЕНИЕ - ;ЕСЛИ БОЛЬШЕ HOU HOUL HOUH ;ТО НЕ ДОЛЖНО 24. ОБНУЛИМ ИЛИ ЧАСЫ РАВ~О 24, ДВОИЧНЫЕ ; И РАЗ РЯДЫ СТАРШИЙ . ; И МЛАДШИЙ. 1 УСЗ БОЛЕЕ 5. MINH,0 ;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 6, МINH ;ТО MINH DEBIN MINL,0 ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ МIN ;ЗАПИШЕМ INCF MOVLW SUBWF SKPNC CLRF MOVFW CALL ADDWF MOVWF RETURN MINL,l .10· MINL,O ;УВЕЛИЧИМ MINL MINH DEBIN MINL,0 MIN ;КОД ДЕСЯТКИ. CLRF CLRF CLRF CLRF RETURN МIN ;ОБНУЛЕНИЕ МINL ;МИНУТ MINH SEC ; ПРИ ОБНУЛИМ. ;КОД ДЕСЯТКИ. ;ПРИБАВИМ ЕДИНИЦЫ И В ДВОИЧНОМ КОДЕ. УС4 ЕДИНИЦЫ МИНУТ. ;НЕ БОЛЕЕ 9. ;ЕСЛИ БОЛЬШЕ ;ТО 1 или-РАВНО 10, ОБНУЛИМ. ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ ;ПРИБАВИМ ;ЗАПИШЕМ ЕДИНИЦЫ В И ДВОИЧНОМ КОДЕ. УС7 РЕГИСТРОВ И СЕКУНД УСТАНОВКЕ по си;rнмлм ;ТОЧНОГО ВРЕМЕНИ. ;=============='===~========~============ ; 23. ПЕРЕКОДИРОВКА ИЗ 2-ГО В 2_10. ;======================================= BIDE ;ПЕРЕКОДИРОВКА ДЕСЯТКОВ CLRF ADDLW 128 cou ;ОБНУЛЯЕМ -.10 ;ВЫЧТЕМ СЧЕТЧИК. 10. . 1
Термометр-чась! BTFSS GOTO MOVWF STATUS,0 $+4 ;ЕСЛИ ТЕМР ;ИНАЧЕ ПЕРЕПИШЕМ НОВОЕ ЗНАЧЕНИЕ ВО COU,1 $-,5 ; УВЕЛИЧИМ СЧЕТЧИК ;ПОВТОРИМ ВЫЧИТАНИЕ. cou ;ЗНАЧЕНИЕ СЧЕТЧИКА ;ТО ЕСТЬ ПЕРЕХОД ЗАВЕРШАЕМ ЧЕРЕЗ НОЛЬ, ПЕРЕКОДИРОВКУ. ;ВРЕМЕННЫЙ. INCF GOTO MOVFW .. (РАВНО ЧИСЛУ ДЕСЯТКОВ) ;ПЕРЕПИШЕМ В РАБОЧИЙ РЕГИСТР. RETURN ;ВЕРНЕМСЯ. ;======================~================= ; 24. ПЕРЕЗАПИСЬ в. РЕГИСТРЫ ИНДИКАЦИИ. ;======================================== INDD BCF BSF FLAGl,O FLAGl,1 ;СБРОС sот ;ЗНАК. ИНДИКАЦИИ УСТАНОВКИ. ;УСТАНОВКА ФЛАГА ИНДИКАЦИИ ДОМ. IND MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF BTFSS GOTO MOVLW MOVWF MOVWF MOVWF GOTO MOVLW MOVWF MOVLW MOVWF MOVWF Rl DES R2 EDI ;ДЕСЯТКИ. ;ЕДИНИЦЫ. RЗ .252 R4 DST RS FLAGl,l $+6 .240 ;ЗАПЯТАЯ~ ;ДЕСЯТЫЕ. ;ЕСЛИ ~то ДЛЯ ДОМА, ПРОПУСКАЕМ Rб ,.· R7 R8 IND2 .73 ;УСТАНОВИМ БУКВУ у. БУКВУ у. Rб .240 R7 R8 IND2 MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF' MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVFW MOVWF ноuн R9 HOUL RlO . 253 Rll MINH R12 1 MINL ;ДЕСЯТКИ ЧАСОВ. ;ЕДИНИЦЫ ЧАСОВ. ;ЧЕРТА- . ;ДЕСЯТКИ МИНУТ. ; ;ЕДИНИЦЫ МИНУТ. юз .25~ R14 SECH RlS SECL ;ЧЕРТА-. ;ДЕСЯТКИ СЕК71.Нд. ;ЕДИНИЦЫ СЕКУНД. Rlб 129
Устройства, измеряющие температуру RETURN ;НА ИНДИКАЦИЮ. INDH. BCF BSF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVWF MOVWF MOVWF GOTO FLAGl,2 FLAGl,0' .123 :R1 .17 R2 .19 R3 .126 R4 .240 R5 BCF GOTO FLAGl,l IND ;СБРОСИМ ФЛАГ BCF BSF MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVLW MOVWF MOVWF MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVWF MOVWF RETURN FLAGl,l FLAGl,2 SOTY Rl DESY R2 EDIY R3 .252 R4 DSTY R5 .73 ;СБРОСИМ ФЛАГ ;СБРОСИМ ИНДИКАЦИЮ ; инди.КАЦИЯ ;БУКВЫ: УЛИЦА-ДОМ. УСТАНОВКИ ЧАСОВ. ч ;А ;С ;Ы ;ПУСТО Rб R7 R8 IND2 ;НА ВТОРОЙ ЗАПИСЬ СТРОКИ. INDY ДОМ. ;ПЕРЕПИШЕМ ДЛЯ УЛИЦЫ. INYD · 1) 130 ;УСТАНОВИМ ;ЗНАК ДЛЯ ДОМ. ФЛАГ ;ДЕСЯТКИ. ;ЕДИНИЦЫ. ;ЗАПЯТАЯ. ;ДЕСЯТЫЕ. ;УСТАНОВИМ БУКВУ Rб .240 R7 R8 SOTD R9 DESD RlO EDID Rll .252 Rl2 DST°' Rl3 .240 Rl4 Rl5 УЛИЦА-ДОМ. УЛИЦЫ. ;ЗНАК для ДОМА. ;ДЕСЯТКИ. ;ЕДИНИЦЫ. ;ЗАПЯТАЯ. ;ДЕСЯТЫЕ. ,. Rlб ;НА ИНДИКАЦИЮ. у,
Термометр-часы ;=======================~=========================================== ; 25. ·СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ. ; ===========·========================================================= PRER MOVWF MOVFW MOVWF MOVFW MOVWF CALL WTEMP STATUS STEMP FSR FTEMP Sl MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW BCF RETFIE STEMP STATUS FTEMP FSR REPER ЗНАЧЕНИЙ РЕГИСТРОВ ;СОХРАНЕНИЕ WИ ;STATUS, ;FSR. ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ: ЗНАЧЕНИЙ. ; STATUS, ;FSR, .6 TMROWTEMP INTCON,2 ;W. ;СБРАСЫВАЕМ ФЛАГ ;ВОЗВРАТ ПРЕРЫВАНИЯ. ИЗ ПРЕРЫВАНИЯ ОТ TMRO. ;============7============================================ ; 26. ПП. ПЕРЕКОДИРОВКИ С ?ИНАРНОГО В 2-10 (2- -2-10). КОД :========================================================= BINDECH MOVLW . 10 ;10 >W . STATUS,0 DSMH,l BINDECL HSMH,l ;УСТАНОВКА БИТА вон ;ПОВТОРИТЬ. DSMH,0 . 10 ;lO+W >W . LSMЯ. ;ЗАПИСЬ ОСТАТКА В МЛАДШИЙ РЕГИСТР. вон BSF SUBWF BNC INCF GOTO BINDECL MOVF ADDLW MOVWF RETURN. ;ВЫЧИТАЕМ ИЗ ;ПЕРЕХОД, ;ПРИБАВИМ ЕСЛИ 1 "С" НЕТ STATUS. 10 > DSMH. РЕГИСТРА РЕГИСТРА ПЕРЕНОСА. К СТАРШЕМУ РЕГИСТРУ. ;========================================== ; 27. СЧЕТ И ПЕРЕКОДИРОВКА РЕГИСТРОВ Ч-М-С. ;===============================~========== Sl BSF INCF MOVFW ADDLW BTFSS RETURN CLRF BTFSC GOTO BSF RETURN BCF MOVFW ADDLW FLAG,2 ;УСТАНОВИМ ФЛАГ МСК,1 ;ПРИБАВИМ i ПРЕРЫВАНИЯ. В РЕГИСТР МИЛЛИСЕКУНД. мск -8 ;СЧИТ~ЕМ ДО 8. STATUS,2 мск ;ОБНУЛИМ. FLAG,7 ;РАЗДЕЛИМ НА 2. $+3 FLAG,7 FLAG, 7· ;ОБНУЛИМ ДЕЛИТЕЛЬ. SEC ;ЗАГРУЗКА ЗНАЧЕНИЙ СЕКУНД В РАБ. -звн ;ВЫЧЕСТЬ ИЗ РЕГИСТРА РЕГИСТР. 59. 131
Устройства, измеряющие температуру Ml SEC,1 ;СРАВНИТЬ НА О,ЕСЛИ РАВНО, INCF MOVFW MOVWF CALL MOVFW MOVWF SEC DSMH BINDECH LSMH SECL ;SECl >W. ;W >DSMH. BZ 1 ;ИНАЧЕ ПРИБАВИТЬ В 1 ПЕРЕЙТИ НА РЕГИСТР Ml, СЕКУНД. SlU ;ПЕРЕХОД В ПП. ПЕРЕКОДИРОВКИ. ;LSMH >W ВРЕМЕННЫЙ. ;W > ~-LOW В РЕГИСТР ИНДИКАЦИИ ЕДИНИЦ ;СЕКУНД. MOVFW MOVWF HSMH SECH ;HSMH >W ВРЕМЕННЫЙ. ;W > S_HIGH В .РЕГИСТР ИНДИКАЦИИ ДЕСЯТКОВ ;СЕКУНД. CLRP CLRF RETURN HSMH LSMH ;ОБНУЛЕНИЕ СТ. РЕГ. ПП. ;ОБНУЛЕНИЕ МЛ. РЕГ. ПП. CLRF CLRF CLRF SEC SECL SECH ;ОБНУЛЕНИЕ РЕГИСТРА ;ОБНУЛЕНИЕ ЕДИНИЦ MOVFW ADDLW MIN ;ЗАГРУЗКА -звн ;-59. BZ Н1 ;СРАВНИТЬ НА О, INCF f./10VFW MIN,l ;ПРИБАВИТЬ МIN ;MINl >W. MOVWF CALL MOVFWMOVWF, DSMH BINDECH LSMH MINL ;W >DSMH. MOVFW MOVWF HSMH MINH Ml ;ОБНУЛЕНИЕ СЕКУНД. СЕКУНД. ДЕСЯТКОВ СЕКУНД. МlМ МИНУТ 1 В РАБ. РЕГИСТР. ЕСЛИ РАВНО, ПЕРЕЙТИ НА Hl. В МИНУТЫ. МlU ;ПЕРЕХОД_ в.пп. ПЕРЕКОДИРОВКИ. ;LSMH >W ВРЕМЕННЫЙ. ;W > M_LOW В РЕГИСТР ИНДИКАЦИИ ЕДИНИЦ ;МИНУТ. ;HSMH >W ВРЕМЕННЫЙ. ;W > M_HIGH В РЕГИСТР ИНДИКАЦИИ ДЕСЯТКОВ ;МИНУТ. CLRF CLRF RETURN HSMH LSMH ;ОБНУЛЕНИЕ СТ. РЕГ. ПП. ;ОБНУЛЕНИЕ МЛ. РЕГ. ПП. CLRF CLRF CLRF MIN MINL MINH ;ОБНУЛЯЕМ РЕГИСТР ;ОБНУЛЯЕМ ЕДИНИЦЫ МИНУТ ИНДИКАЦИИ. ;ОБНУЛЯЕМ ДЕСЯТКИ МИНУТ ИНДИКАЦИИ. MOVFW ADDLW ноu ;ЗАГРУЗКА ЧАСОВ -17Н ;- 23. BZ НlО ;СРАВНИТЬ НА О, INCF HOU,l Н1 МИНУТ. HlH В РАБ. РЕГИСТР. ЕСЛИ РАВНО, ПЕРЕЙТИ НА HlO. j ПРИБАВИТЬ 1 В ЧАСЫ. HlНl MOVFW HOU ;HOU >W. MOVWF CALL MOVFW MOVWF DSMH BINDECH LSMH HOUL ;W >DSMH. НlU ;ПЕРЕХОД В ;ЧАСОВ. 132 ПП. ;LSMH >W ВРЕМЕННЫЙ. ;W > H_LOW В РЕГИСТР ИНДИКАЦИИ ЕДИНИЦ
Термометр-часы MOVFW MOVWF ; HSMH .>W ВРЕМЕННЫЙ. ;W > H_HIGH в РЕГИСТР HSMH HOUH ИНДИКАЦИИ ДЕСЯТКОВ ;ЧАСОВ. CLRF HSMH CLRF LSMH RETURN ;ОБНУЛЕНИЕ ст. РЕГ. пп. ;ОБНУЛЕНИЕ мл. РЕГ. пп. HOU CLRF CLRF HOUL CLRF HOUH RETURN ;ОБНУЛЕНИЕ РЕГИСТРА ЧАСОВ. ;ОБНУЛЕНИЕ ЕДИНИЦ ;ОБНУЛЕНИЕ ДЕСЯТКОВ НlО ЧАСОВ. ЧАСОВ. :========================================= ; 28. ИНИЦИАЛИЗАЦИЯ DS ДЛЯ ДОМА. ;======-=================================== INIDSD BSF CALL MQVLW CALL MOVLW ' CALL GOTO FLAGl,3 HYLD ;ДЛЯ ОхСС ;ПРОПУСК POSILD ;ПОШЛЕМ. ДОМА. ;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ. ПОСЫЛА НОМЕРА Ох44 ;РАЗРЕШАЕМ ПРЕОБРАЗОВАНИЕ. POSILD PRIEMD ;ПОШЛЕМ. WUXD .125 ;ВЫХОД -1 ;= 500 мкс. ;ВЫХОД ЕДИНИЦЫ. ;НА ПРИЕМ ТЕМПЕРАТУРЫ. HYLD CALL MOVLW ADDLW BTFSS GOTO CALL MOVLW ADDLW BTFSS GOTO RETURN DS. .... НУЛЯ. ;НУЛЕВОЙ ИМПУЛЬС STATUS,2 $-2 WXOD .125 ;ИМПУЛЬС -1 ;500 STATUS,2 $-2 .., = мкс. ;==========================~============ ; 29. ИЗМЕНЕНИЕ ВХОДА НА ПРИЕМ/ПЕРЕДАЧУ. ;======================================= WUXD BCF BSF BCF BCF RETURN PORTA,DSD STATUS,5 ;ПЕРЕХОДИМ TRISAЛ80H,DSD ;НА STATUS,5 в БАНК 1. ;ПЕРЕХОДИМ в БАНК о. в БАНК 1. в БАНК О. ВЫХОД. WXOD BSF BSF BCF RETURN STATUS,5 ;ПЕРЕХОДИМ TRISAЛ80H,DSD ;НА STATUS,5 ;ПЕРЕХОДИМ ВХОД. ;==================================== ; 30. ПРИЕМ 9 БИТ ИЗ DS ДЛЯ ДОМА. ;==================================== PRIEMD CALL MOVLW CALL HYLD ;ПОСЫЛ Ох С С ;ПРОПУСК НОМЕРА. POSILD ;ПОСЫЛ. ИМПУЛЬСА ОБНУЛЕНИЯ. 133
Устройства, измеряющие температуру MOVLW CAL·L CALL BSF CALL BCF BTFSS BCF BTFSC BSF BTFSS GOTO COMF ADDLW MOVWF GOTO ОхВЕ ;ЧТЕНИЕ POSILD PRIED FLAG,1 PRID FLAG,1 TEMP,DSD FLAG,O TEMP,DSD FLAG,O FLAG,O ;ПОСЫЛ. СХЕТ ;ПОСЧИТАЕМ. LSB,O .1 LSB ;ПРИБАВИМ СХЕТ ;НА .8 COUN LSB ;ЗАПИШЕМ ЧИСЛО ;ОБНУЛИМ РЕГИСТР ;НА ТЕМПЕРАТУРЫ ИЗ ПРИЕМ. ;УСТАНОВИМ ;И БЛОКНОТА. ПРИМЕМ ;СБРОСИМ БИТ. 9 ЕГО. ФЛАГ. ;ЕСЛИ ПРИНЯТЫЙ БИТ = ;ТО УСТАНОВИМ ФЛАГ ПЛЮСА. ;ИЛИ О, МИНУСА. ;ПРОПУСТИМ, ЕСЛИ ЗНАК МИНУС. ;ИНВЕРТИРУЕМ. ;ПОЛУЧИМ 1 ОТРИЦАТЕЛЬНЫЕ ДАННЫЕ. ПЕРЕСЧЕТ. PRIED MOVLW MOVWF CLRF БИТ. ПРИЕМА. PRID CALL CALL MOVLW .CALL MOVFW MOVWF B1'FSC RETURN BTFSS BCF BTFSC BSF RRF MOVLW CALL DECFSZ GOTO RETURN WUXD ;ВЫДАЕМ КОРОТКИЙ НОЛЬ И ЖДЕМ ОТКЛИКА. W~D ;НА ПРИЕМ. .2 ;ЗАДЕРЖКА Х4 ;8 мкс. 1 PORTA ;ПЕРЕПИШЕМ ТЕМР ;ЗНАЧЕНИЕ ПОРТА. FLAG,! ;ЕСЛИ ЭТО 9 БИТ, ;ВЕРНЕМСЯ. TEMP,DSD STATUS,0 TEMP,DSD STATUS,0 LSB,l .15 ;УСТАНОВИМ ;ИЛИ БИТ ПРИЕМА В ЕДИНИЦУ. ;ЗАПИШЕМ ;ПАУЗА В 60 РЕГИСТР. мкс. Х4 COUN,l PRID ;УМЕНЬШИМ СЧЕТЧИК. ;ПОВТОРИМ.ПРИЕМ. ;ВЕРНЕМСЯ. ;========================================== ; 31. посыл КО~АНДЫ в Ds'для ДОМА. ;========================================== POSILD MOVWF MOVLW MOVWF POSID RRF BTFSS GOTO GOTO POSD DECFSZ GOTO RETURN 134 ТЕМР ;ПЕРЕПИШЕМ .8 COUN ;ЗАПИШЕ[':1 число ТЕМР,1 STATUS,0 WOD WlD COUN,l POSID ;ВЫТОЛКНЕМ - во ВРЕМЕННЫЙ. БИТ. млАдший. 'вит. ;ЕСЛИ ОН НУЛЕВОЙ, ;ПОШЛЕМ ;ИЛИ ИМПУЛЬС НУЛЯ. ЕДИНИЦЫ. ;УМЕНЬШАЕМ СЧЕТЧИК. ;НА СЛЕДУЮЩИЙ БИТ. ;ВОЗВРАТ. НОЛЬ.
Градусник WOD CALL MOVLW CALL CAL:L GOTO WUXD ;УСТАНОВИМ . 15 ;УДЕРЖИВАЕМ CALL CAI.:L MOVLW CALL GOTO WUXD WXOD ВЫХОД В мкс 60 НОЛЬ. . Х4 WXOD POSD ;НА ВХОД = 1 НА ВЫХОДЕ. ;ПОВТОРИМ. WlD ,;КОРОТКИЙ НУЛЕВОЙ ИМПУЛЬС. ;НА ВХОД . 15 = 1 ;УДЕРЖИВАЕМ НА ВЫХОДЕ. 60 мкс . Х4 POSD ;ПОВТОРИМ. :======================================== END ;=============~========================== Градусник Устройство предназначено для измерения температуры тела больного че­ ловека или животного с точностью О, 1 °С. Применяемые для этой цели ртут­ ные градусни~и требуют аккуратного обращения с ними потому, что при па­ дении они могут разбиться и создать угрозу для здоровья человека. Кроме того, людям с плохим зрением трудно различить показания ртутного градус­ ника. Предлагаемый градусник безопасен при обращении с ним и имеет легко , читаемую 37 цифровую шкалу. Если измеряемая температура равна или больше °С, то включается сигнальный светодиод. Устройство состоит из датчика' температуры PIC 16F628 DS18B20, микроконтроллера и жидкокристаллического индикатора МТ-1OS1-1 G. Программируемый датчик температуры DS 18В20 может измерять темпера-, О, 125 и 0,0625 °С при макси­ мальном времени измерения 'соответственно 93,75; 187,5; 375 и 750 мс. Необ­ туру с четырьмя уровнями точности - 0,5; 0,25; ходимая точность преобразования температуры задается установкой регистра конфигурации при инициализации датчика. В градуснике измерение выпол­ няется с точностью 0,0625 °С, а на индикацию выводится округленное до точ­ ности О, 1 °С. значение температуры. Абсолютная погрешность измерения температуры термодатчиком в диапа­ зоне от -10 до +85 °С составляет ±0,5 °С. Но относительная погрешность не превышает установленного в регистре конфигурации уровня точности, поэто­ му в устройстве предусмотрено введение коррекции со знаком. В интервале температур + 1О".+40 °С абсолютная погрешность термодатчика минимальна и составляет -0,2".+О, 1 °С. Алгор~тм работы программы микроконтроллера показан на рис. 43. После инициализаnии микроконтроллера выполняются инициализация ЖК-дисплея и вывод на индикацию значений регистров индикации. Далее выполняется инициализация датчика температуры DS18B20, и посылается команда на на­ чало измерения температуры. После .необходимой для преобразования паузы, равной 750 мс, принимается два байта информации. Первые четыре принятых 135
Устройства, измеряющие температуру ПУСК ИНИЦИАТJИЗАЦИЯ l\1К ИНИЦИАJIИЗАЦИЯ ЖК11 ШЩИКАЦИЯ ИНИЦИ..\.ТJИЗАЦИЯ ПS ПРИЕМ 2 БАЙТ А ПОПРАВКА ВЬЩЕЛЕНИЕ ВКЛ. ВЬLХОД ВЫКЛ ВЬL'\:ОД СОЛ'Р АНЕНИЕ ПЕРЕКОДИРОВКА ЗАПИСЬВРЕГ ШЩИКАЦИИ Рис. 43. Алгоритм работы программы градусник бита содержат значение долей градуса, умноженное на 0,0625. Следующие во­ семь бит содержат значение температуры, а остальные четыре бита те_мпературi?I. 136 - знак
Градусник Вводится поправка со знаком, и выделяются десятьJе доли и целая часть градусов. Сравнивается целая часть градусов на превышение ренное значение больше или равно 37. Если изме­ то включается выход светодиода. Далее 37, сравниваются регистры измеренной температуры и сохраненной. При равен­ стве целых частей сравниваются десятые доли градуса'. Если измеренное зна­ чение температуры болtше сохраненной, то оно сохраняется и перекодирует­ ся в двоично-:десятиричный код. Проверяется состояниd кнопки «Сброс». Если кнопка нажата, то обнуля . . ются регистры значений температуры, регистр сохранения и сбрасывается флаг светодиода. Новые значения температуры перезаписываются в регистры индикации~ и выполняется индикация. Далее программа выrюлняет новый . цикл измерения. Схема градусника показана на рис. Резистором 44. устанавливают не­ R3 обходимую контрастность изображения на дисплее. При подключении вывода 13 индикатора HG 1 к минусу питания ·контрастность изображения максима­ льная, а при свободном выводе контрастность минимальная. При понижении наriряжения питания контрастность изображения понижается. В зависимости от типа применяемого. светодиода подбирают резистор Rl так, чтобы его све­ чение прИ мигании было хорошо заметным. SBI HLI HGI MT-IOSl-IG DD2 DDI DSl8B20 ,ТНЕRМ "Сб:.:---1 RAO GND DQ CPU RВО RJW RA4 00 udd N \О ~.ч RВ3 u RВ4 \О R2 4,7к RВ2 р:: RВ5 14 Ucc RВ6 GND RВ7 7 11 10 9 10 11 12 13 9 R3*27к SAI RJS Е DB4 DBS DB6 DB7 ..... ..... ..... ..... ..... 14 ""; :::··-."·;___ "_ 13 GBI 4,58 Рис. 44. Градусник. Электрическая схема Поскольку схема градусника простая, печатная плата не разрабатывалась, 31 мм. Плату кре­ а микроконтроллер установл~н на макетной плате шириной пят винтом к торцу индикатора. Светодиод HL 1 красного цвета диаметром 3 мм можно заменить любым ярким светодиодом с малым током потребления. Индикатор ного производства компании МЭЛТ имеет ку 8 + 2. 10 HG 1 отечествен­ разрядов в один ряд и разверт­ Его можно заменить любым 16-разрядным индикатором с р·азверт- 137
Устройства, измеряющие температуру кой 8 .+ 8, но тогда правые шесть разрядов будут черными. Индикаторы дол­ жны иметь контроллер управления типа HD4478 фирмы НПАСНI или GBl выбирают в зависимости от конструк­ ци~ корпуса - либо плос~ие типа А 13, либо пальчиковые типа ААА. Длина соединительных проводов до 20 м не влияет на точность измерения аналогичный. Элементы питания температуры, поэтому градусник мQжно использовать для дистанцирнного контроля температуры неподвижного больного. В этом случае вместо светоди­ ода и гасящего резистора можно подключить в соответствующей полярности любой звуковой излучатель с внутренним генератором. Конструктивно градусник можно выполнить в виде щупа с 'датчиком на конце или отдельным прибором с выносным датчиком. Выносной датчик удо­ бен при измерении темп.ературы маленьким детям или животным. Датчик можно сделать из корпуса шариковой авторучки. Со стороны пишущего узла корпус ручки укорачивают так, чтобы в отверстие свободно проходили выво­ ды датчика DS 18В20, а сам датчик оставался снаружи. Выводы датчика укора­ чивщот и припаивают к ним небольшим количеством припоя тонкие провода (можно типа ПЭВ). Это необходимо потому, что провод является хорошим теплоотводом. К тонким проводам припаивают гибкий соединителы-_ый про­ вод типа МПФ-0,05. Далее провод вставляют в корпус ручки и заливают си­ ликоновым герметиком. Корпус датчика остается снаружи и не покрывается герметиком. Вместо герметика можно использовать эпоксидную смолу, но она имеет хорошую теплопроводность, поэтому показания могут быть иска­ жены либо nридется увеличить время измерения температурь~. Перед залив­ кой провода маркируют .. Перед эксплуатацией градусника его необходимо откалибровать. Для это­ го в емкость с теплой водой (36 .. .40 °С) устанавливают ртутный· и калибруе­ мый градусники. Сравнивают показания и определяют погрешность измере­ _ния со знаком. При инициализации программы (смотрите стр. 141" вторая строка сверху) устанавливают необходимую поправку на погрешность. в фай- . ле Gradik.hex (стр. 183, 5 строка) значение поправки выделено жирным шрифтом. Старший (левый) полубайт может принимать два значения: ноль и единица. Если знак коррекции положительный, то необходимо установить. ноль, а при отрицательном знаке устанавливают единицу. Установка числа младшего (правого) полубайта в шестнадцатеричном коде соответствует по­ правке долей градуса, умноженной на 0,0625. Например, если показания ка­ либруемого градусника меньше ртутного на 0,2 °С, ·то поправка будет равна 03 (0,2/0,0625 = -3). После перепрограммирования микроконтроллера градусник готов к эксплуатации. При включении градусника кра~:ковременно вспыхивает светодиод, свиде­ тельствуя об исправной работе микроконтр9ллера. Во время измерения тем­ пературы в целях экономии элементов питания включать градусник можно только для чтения показаний температуры. Перед· снятием показаний градус­ ник должен быть включен не менее учета тока светодиода· составляет 2, 7 5 с. Потребляемый градусником ток без мА. Градусник не теряет работоспособ­ ности при снижении напряжения питания до 138 4 В.
Градусник МЕДИЦИНСКИЙ ГРАДУСНИК. ПРИ ПРЕВЫШЕНИИ 37 ГРАД. ВКЛЮЧАЕТСЯ КРАСНЫЙ СВЕТОДИОД. ТОЧНОСТЬ ИЗМЕРЕНИЯ УСТАНОВКА ДАТЧИК ТЕМПЕРАТУРЫ ИНДИКАЦИЯ ТЕМПЕРАТУРЫ КОРРЕКЦИИ - lOxl СО - ЖКИ - 0,1 ГРАДУС. ЗНАКОМ. DS18B20·, - LSD МЭЛТ, СМЕНА ИНДИКАЦИИ 0,5 С. РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ ДЛЯ СВОБОДНОГО ИСПОЛЬЗОВАНИЯ РАДИОЛЮБИТЕЛЯМИ. п.ВЕЙДЕЛЕВКА, БЕЛГОРОДСКОЙ. saes@mail.ru = GRADIK.ASM 08-08-04. ПРОГРАММА ВЕРСИЯ: АССЕМБЛЕР И ОТЛАДЧИК: ВЕРСИЯ: MPLAB IDE, 5.70.40. #INCLUDE P16F628.INC - CONFIG ЗFllH ,·======================================================== . ; ИСПОЛЬЗУЕТСЯ ВНУТРЕННИЙ ГЕНЕРАТОР ЧАСТОТОЙ 4,0 МГц. ,·======================================================== . RB4~Rв7 ДАННЫЕ LCD, RB2 RS, RВЗ - Е, RBO КНОПКА "СБРОС". RAO ВХОД/ВЫХОД НА DS18B20. RA4 ВЫХОД СВЕТОДИОдА. . ;========================================= ; СПЕЦ РЕГИСТРЫ. ;========================================= INDF TIMERO OPTIONR РС STATUS FSR PORTA PORTB TRISA TRISB INTCON EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU FSR. оон ;ДОСТУП OlH 81Н ;TMRO. ;OPTION (RPO=l). 02Н ;СЧЕТЧИК озн ;РЕГИСТР СОСТОЯНИЯ 04Н ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. 05Н ;ПОРТ А ВВОДА/ВЫВОДА. ОбН ;ПОРТ 85Н ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А. 86Н ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА овн ;РЕГИСТ~ ФЛАГОВ ПРЕРЫВАНИЙ. В К ПАМЯТИ ЧЕРЕЗ КОМАНД.· АЛУ. ВВОДА/ВЫВОДА. В. ;============================================== ; РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ. ;============================================== TYRl ТЕМР Z~N COUN LSB LSBH EGU EQU EQU EQU EQU EQU 20Н ;УСТАНОВЛЕННАЯ 21Н ;ВРЕМЕННЫЙ. 22Н .; СЧЕТЧИК. ПАУЗЫ. 23Н ;СЧЕТЧИК БИТОВ. 24Н ;РЕГИСТР ПРИЕМА ДАННЫХ ОТ 25Н ;РЕГИСТР ПРИЕМА ДАННЫХ ОТ EQU EQU EQU EQU EQU EQU 26Н ;ЕДИНИЦЫ 27Н ;ДЕСЯТКИ 28Н ;ДЕСЯТЫЕ ТЕМПЕРАТУРА ;РЕГИСТРЫ ИЗМЕРЕННЫХ EDI DES DST :JSTZ LSBZ КОР ДВОИЧНАЯ. DS. DS. ТЕМПЕРАТУР. 1. 1. 1. 29Н ;НАИБОЛЬШЕЕ 2АН ;ДВОИЧНОЕ. 2ВН ;КОРРЕКЦИЯ. СОХРАНЕННОЕ 1 ст. ЗНАЧЕНИЕ. ПОЛУБАЙТ = ЗНАК МИНУС. 139
Устройства, измеряющие темпера!УРУ ;РЕГИСТРЫ ИНДИКАЦИИ. Rl R2 RЗ R4 RS Rб R7 R8 R9 RlO ЗОН EQU EQU EQU EQU EQU EQU EQU · EQU EQU EQU ЗlН 32Н ззн 34Н зsн ЗбН 37Н 38Н 39Н ;============================================== ; ОПРЕДЕЛЕНИЕ БИТОВ СОСТОЯНИЯ РЕГИСТРОВ ФЛАГОВ. ;===========?===============================~== . FLAG EQU 0-> 3-> ЗАН СВЕТОДИОДА. КНОПКИ "СБРОС". ;======================================= DS RS Е ;ЛИНИЯ СВЯЗИ С DS18B20. . ; КОМАНДА/ ДАННЫЕ. о EQU EQU EQU 2 з ;СИНХРОНИЗАЦИЯ. ;======================================= ; 1. ПУСК. ;====================== 'ORG GOTO NOP NOP NOP NOP О . INIT ;====================== ; 2. ИНИЦИАЛИЗАЦИЯ. ;====================== INIT BSF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF CLRF BCF CLRF CLRF MOVLW MOVWF CLRF CLRF CLRF CLRF CLRF CLRF CLRF 140 STATUS,RPO ;ПЕРЕХОДИМ В БАНК 1. В'ОООООООО' OPTION~REGл80H ;ПОДТЯГИВАЮЩИЕ В'ОООООООО' ;ПРЕРЫВАНИЯ РЕЗИСТОРЫ ВКЛЮЧЕНЫ. ЗАПРЕЩЕНЫ. INTCON В'00000001' ;О - НА ВХОД. TRISAЛ80H ;О НА ВХОД. VRCONЛ80H ;ИОН ВЫКЛЮЧЕН. STATUS,RPO TlCON T2CON 7 CMCON TMRO FLAG PORTA PORTB LSB DST DSTZ ;ПЕРЕХОДИМ В В'00000001' TRISBЛ80H БАНК' О. ;КОМПАРАТОРЫ ВЫКЛЮЧЕНЫ. ;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛИВАЕМ.
/ CLRF LSBZ MOVLW 00 MOVWF КОР Градусник ;КОРРЕКЦИЯ, ;НАПРИМЕР, ЗНАК ПЛЮС. ОЗ=ЗхО,0625=0,19 {-0,2). ;========================================= ; 3. ИНИЦИАЛИЗАЦИЯ ЖКИ. ;========================================= JEKINI MOVLW CALL CALL MOVLW CALL CALLMOVLW CALL CALL MOVLW CALL CALL MOVLW CALL CALL MOVLW CALL CALL ·мovLw CALL CALL MOVLW CALL CALL MOVLW CALL CALL GOTO 3 JEKOMI STROB 3 JEKOMI STROB 3 . JEKOMI STROB 10 JEKOMI STROB Об ;СБРОС. ;ПЕРЕДАЧА КОМАНДЫ. ;ПРОСТРОБИРУЕМ. ;СБРОС. ;ПРОСТРОБИРУЕМ. ;ПРОСТРОБИРУЕМ. ;ЗАПРЕТ СДВИГА ИЗОБРАЖЕНИЯ ;ПРОСТРОБИРУЕМ. ;ИНКРЕ~ЕНТИРОВАНИЕ ПОЗИЦИИ КУРСОРА. JEKOMI SТ:ROB · ; ПРОСТРОБИРУЕМ. 01 JEKOMI. STROB 28 JEKOMI STROB 28 JEKOMI STROB ;СТИРАНИЕ ос ;ВКЛЮЧЕНИЕ JEKOMI STROB JEKI ;ПРОСТРОБИРУЕМ. ДИСПЛЕЯ. ;ПРОСТРОБИРУЕМ. ;ФОРМАТ ОБМЕНА: 4 РАЗР., 5х7, 2 СТРОКИ. ;ПРОСТРОБИРУЕМ. ;ПРОс;:ТРОБИРУЕМ. ДИСПЛЕЯ, ;НА ИНДИКАЦИЮ. ;25 мс ЗАПРЕТ КУРСОРА. PAUSA MOVLW MOVWF . 25 ZAN . PAUS MOVLW ADDLW BTFSS GOTO DECFSZ GOTO RETURN .255 -1 STATUS,2 $-2 ZAN,1 PAUS JEKOMI MOVWF ANDLW MOVWF CALL CALL MOVFW SWAE'F ANDLW MOVWF ТЕМР ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. В'11110000';ЗАМАСКИРУЕМ МЛАДШИЕ PORTB STROB PAUSA ;ОСТАЛЬНЫЕ РАЗРЯДЫ ПОД РАЗРЯДЫ ПЕРЕПИШЕМ В НОЛЬ. ПОРТ "В". ;ПРОСТРОБИРУЕМ. ;ПАУЗА. ТЕМР TEMP,W ;ПОМЕНЯЕМ МЕСТАМИ ПОЛУБАЙТЫ. В'11110000';ЗАМАСКИРУЕМ СТАРШИЕ PORTB ;ПЕРЕПИШЕМ В ПОРТ РАЗРЯДЫ ПОД НОЛЬ. "В". 141
Устройства, измеряющие температуру CALL CALL RETURN STROB PAUSA ;ПРОСТРОБИРУЕМ. ;ПАУЗА. ;========================================= ; 4. ПЕРЕВОД ДОЛЕЙ ГРАДУСА С ОКРУГЛЕНИЕМ. ;==~====================================== DESATI ADDWF RETLW RETLW RETLW RETLW RETLW. RETLW .,RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW РС,1 .о ;о .1 .1 .2 .3 .3 .4 .4 .5 ;1 ;2 ;3 ;4 ;5 .6 .6 .7 •7 ; 9 ;6 ;7 ;8 ;10 ; 11 ;12 ;13 ;14 ;15 .8 .9 .9 ;========================================= ; 5. ФОРМИРОВАНИЕ СТРОБИРУЮЩЕГО ИМПУЛЬСА. ;========================================= STROB BSF NOP BCF RETURN PORTB,E ;ВКЛЮЧАЕМ PORTB,E ;ВЫКЛЮЧАЕМ СТРОБ-ИМПУЛЬС. СТРОБ. ;ВЕРНЕМСЯ. ;=================~===================~========= ; 6. ПЕРЕДАЧА КОМАНДЫ В ЖКИ. ;==========================================~==== JEKOM MOVWF ANDLW MOVWF CALL CALL MOVFW SWAPF ANDL'W MOVWF CALL ТЕМР ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. B'llllOOOO' PORTB STROB PUS ;ЗАМАСКИРУЕМ МЛАдШИЕ MOVLW ADDLW BTFSS GOTO RETURN .255 -1 STATUS,2 $-2 MOVLW ADDLW BTFSS .10 -1 STATUS,2 ;ОСТАЛЬНЫЕ В НОЛЬ. ПОРТ "В". ;ПРОСТРОБИРУЕМ. ;ПАУЗА. ТЕМР TEMP,W в' 11110000' PORTB STROB ;ЗАМАСКИРУЕМ СТАРШИЕ ;ПЕРЕПИШЕМ ПОРТ В ;ПРОСТРОБИРУЕМ. PUS ,;1 мс. PUS'O 142 РАЗРЯДЫ ПОД РАЗРЯДЫ 'ПЕРЕПИШЕМ ;40 мкс. "В" РАЗРЯДЫ ПОД НОЛЬ.
Градусник GOTO RETURN $-2 ,·===================================== ; 7. ЗАПИСЬ ДАННЫХ В ЖКИ. ;===================================== JEDAT MOVWF ANDLW ADDLW MOVWF BSF ТЕМР ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. В' ;ЗАМАСКИРУЕМ МЛАДШИЕ 11110000 '. 30 PORTB PORTB,RS ;ПЕРЕВОД В РАЗРЯДЫ ПОД НОЛЬ. ТОЛЬКО ДЛЯ ЦИФР! КОД ЛSCII, ;ОСТАЛЬНЫЕ РАЗРЯДЫ ;УСТАНОВИМ R/S НА ПЕРЕПИШЕМ В ПОРТ РАЗРЕШЕНИЕ "В". ЗАПИСИ ;ДАННЫХ. CALL CALL STROB PUSO ;ПРОСТРОБИРУЕМ. ;ПАУЗА ДЛЯ ОСВОБОЖДЕНИЯ ЖКИ ОТ .ЦИКЛА ;ЗАПИСИ. MOVFW SWAPF ANDLW MOVWF BSF ТЕМР CALL GOTO STROB PUSO ТЕМР, _0 ;ПОМЕНЯЕМ МЕСТАМИ ПОЛУБАЙТЫ. в ;ЗАМАСКИРУЕМ ~ТАРШИЕ 11110000 1 PORTB PORTB,RS 1 ;ОСТАЛЬНЫЕ РАЗРЯДЫ ПОД РАЗРЯДЫ ПЕРЕПИШЕМ В ; УСТАНОВИМ R/ S .НА РАЗРЕШЕНИЕ НОЛЬ. ПОРТ "В". ЗАПИСИ ;ДАННЫХ. ;ПРОСТРОЕИРУЕМ. ;ПАУЗА. . ,·=========~================================ ; '8. ВЫВОД ЗНАЧЕНИЙ РЕГИСТРОВ НА ИНДИКАЦИЮ. ;=~======================================== JEKI MOVLW CALL MOVLW CALL MOVLW MOVWF MOVLW MOVWF MOVFW CALL DECF BTFSC GOTO INCF GOTO MOVLW CALL MOVLW MOVWF INCF MOVFW CALL DECFSZ GOTO 02 JEKOM ;ВОЗВРАТ КУРСОРА ;ЗАПИШЕМ КОМАНДУ. В'10000000' ;КУРСОР НА О ПОЗИЦИЮ ПЕРВОЙ СТРОКИ. JEKOM .8 COUN Rl FSR INDF JEDAT COUN,l STATUS,2 $+3 FSR,l $-6 ;ЗАПИШЕМ КОМАНДУ. ;ЗАПИШЕМ ЧИСЛО ;АДРЕС ПЕРВОГО В ИСХОДНОЕ СОСТОЯНИЕ. ЗНАКОМЕСТ. РЕГИСТРА ИНДИКАЦИИ. ;ПО КОСВЕННОЙ АДРЕСАЦИИ. ;ИНДИЦИРУЕМ ;УМЕНЬШАЕМ ;ЕСЛИ УЖЕ ;ТО ЗНАЧЕНИЕ. СЧЕТЧИК. О, ПЕРЕХОДИМ НА ВТОРУЮ СТРОКУ. ;"ИНАЧЕ ПРОИНДИЦИРУЕМ СЛЕДУЮЩИЙ ;РЕГИСТР. В'11000000' ;ВТОРАЯ JEKOM .2 COUN FSR, 1 INDF JEDAT COUN,l $-4 ;ЗАПИШЕМ СТРОКА (УСЛОВНО КОМАНДУ ;ИНДИКАЦИЯ 2х5) .ОхОСО . АНАЛОГИЧНА ;ИНДИКАЦИИ ПЕРВОЙ СТРОКИ. ;ПОВТОРИМ. ;===============~========================= ; 9. ИНИЦИАЛИЗАЦИЯ DS. ;=====~=================================== INIDS CALL HYL ;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ. 143
Устройства, измеряющие температуру MOVLW Ох с с ;ПРОПУСК CALL MOVLW CALL MOVLW POSIL ;ПОШЛЕМ. Ох4Е ;РАЗРЕШАЕМ ЗАПИСЬ POSIL Ox7D ;ПОШЛЕМ. УСТАНОВКИ ;ВЕРХНИЙ ПРЕДЕЛ +125. ;ЛЮБОЕ CA.LL ' MOVLW CALL MOVLW CALL CALL MOVLW CALL MOVLW CALL BTFSC BSF MOVLW MOVWF НОМЕРА. ;ПОШЛЕМ. Ох77 ;НИЖНИЙ ПРЕДЕЛ POSIL Ox7F POSIL HYL ;ПОШЛЕМ. ОхСС ;ПРОПУСК ПОСЫЛА НОМЕРА POSIL ;ПОШЛЕМ. Ох44 ;РАЗРЕШАЕМ ПРЕОБРАЗОВАНИЕ. POSIL FLAG,0 PORTA,4 .3 COUN ;ПОШЛЕМ. ;КОНФИГУРАЦИЯ ЛЮБОЙ. -55. = 11 0,1 ГРАДУС. ;ПОШЛЕМ. ИМПУЛЬСА ОБНУЛЕНИЯ. 'os. ;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 37~ ;ТО ВЫКЛЮЧИМ ;ПАУЗА 0,75 СВЕТОДИОД. сек. ;МАКСИМАЛЬНО 750 мс. ;ЕСЛИ ИЛИ РАВНО SPLU MOVLW MOVWF .255 ZAN MOVLW NOP NOP NOP NOP NOP NOP ADDLW BTFSS GOTO DECFSZ GOTO DECFSZ GOTO BTFSC BCF GOTO .255 PLUS -1 STATUS,2 $-2 ZAN,l PLUS COUN,l SPLU FLAG,0 PORTA,4 PRIEM БОЛЬШЕ ;ТО ВКЛЮЧИМ СВЕТОДИОД. ;НА ПРИЕ~ ТЕМПЕРАТУРЫ. HYL CALL MOVLW ADDLW BTFSS GOTO CALL MOVLW ADDLW BTFSS GOTO RETURN 144 ( wux ;ВЫХОД .125 ;НУЛЕВОЙ ИМПУЛЬС -1 ;= 500 мкс. ; ВЫХОД ЕДИНИЦЫ. НУЛЯ. STATUS,2 $-2 wxo .125 ;ИМПУЛЬС -1 ;500 STATUS,2 $-2 мкс. = ' ГРАДУСА. МОЖНО ПОСТАВИТЬ ЗНАЧЕНИЕ. POSIL ;ПОСЫЛ 0,1 37,
Градусник ;======================================= ; 10. ИЗМЕНЕНИЕ ВХОДА НА ПРИЕМ/ПЕРЕДАЧУ. ; =======:;:;.================\=============== wux BCF BSF BCF BCF RETURN PORTA,DS STATUS,5 ЗАПРОСА. ;ИМПУЛЬС В БАНК 1. STATUS,.5 ;ПЕРЕХОДИМ в БАНК о. STATUS,5 ;ПЕРЕХОДИМ В БАНК 1. TRISAЛ80H,DS ;НА STATUS,5 ;ПЕРЕХОДИМ В БАНК О. TRISAЛ80H, ;ПЕРЕХОДИМ DS ;НА ВЫХОД. wxo BSF BSF BCF RETURN ~ вход. ;========================~=========== 11. ПРИЕМ 16 БИТ ИЗ DS. ;===================::================ PRIEM CALL MOVLW CALL MOVLW CALL CALL MOVFW MOVWF CALL GOTO HYL ;ПОСЫЛ Ох С С ;ПРОПУСК POSIL ;ПОСЫЛ. ОхВЕ ;ЧТ~НИЕ POSIL PRIE LSBH LSB PRIE ;ПОСЫЛ. СХЕТ ;НА MOVLW MOVWF CLRF .8 COUN LSBH ;ЗАПИШЕМ ЧИСЛО CALL CALL MOVLW CALL MOVFW MOVWF BTFSS BCF BTFSC BSF RRF· MOVLW CALL DECFSZ GOTO RETURN wux wxo ;ВЫДАЕМ КОРОТКИЙ НОЛЬ И ЖДЕМ ОТКЛИКА. .2 ;ЗАДЕРЖКА Х4 ;8 PORTA ;ПЕРЕПИШЕМ ТЕМР ;ЗНАЧЕНИЕ ;НА ИМПУЛЬСА ОБНУЛЕНИЯ. НОМЕРА. ТЕМПЕРАТУРЫ ИЗ БЛОКНОТА. ПРИЕМ. ;ПЕРЕПИШЕМ ПРИНЯТЫЙ БАЙТ ;В МЛАДШИЙ РЕГИСТР. ;И ПРИМЕМ СТАРШИЙ БАЙТ. ПЕРЕСЧЕТ. PRIE БИТ. ;ОБНУЛИМ РЕГИСТР ПРИЕМА. PRI ;НА TEMP,DS STATUS,O TEMP,DS STATUS,O LSBH,l .12 ПРИЕМ . мкс. ПОРТА. ;УСТАНОВИМ БИТ ПРИЕМА В НОЛЬ. ;ИЛИ f;ДИНИЦУ. ;ЗАПИШЕМ В ;ОБЩАЯ РЕГИСТР. ПАУЗА 60 мкс. Х4 COUN,l PRI ;УМЕНЬШИМ СЧЕТЧИК. ;ПОВТОРИМ ПРИЕМ. ;ВЕРНЕМСЯ. ;========================================== ; 12. ПОСЫЛ КОМАНДЫ В DS. ;========================================== POSIL MOVWF MOVLW MOVWF ТЕМР .. 8 ;ПЕРЕПИШЕМ ВО ВРЕМЕННЫЙ. ;ЗАПИШЕМ ЧИСЛО БИ'Г. COUN 145
Устройства, измеря1Qщие температуру POSI МЛАДШИЙ ТЕМР,1 ;ВЫТОЛКНЕМ STATUS,O ;ЕСЛИ ОН НУЛЕВОЙ, wo ;ПОШЛЕМ ИМПУЛЬС Wl ;ИЛИ DECFSZ GOTO RETURN COUN,l POSI ;УМЕНЬШАЕМ CALL MOVLW CALL CALL GOTO wux CALL CALL MOVLW CALL GOTO RRF BTFSS GOTO GOTO БИТ. НУЛЯ. ЕДИНИЦЫ. POS СЧЕТЧИК. ;НА СЛЕДУЮЩИЙ БИТ. ;ВОЗВРАТ. wo .15 ;УСТАНОВИМ выход ;УДЕРЖИВАЕМ 60 в ноль. мкс. Х4 wxo ;НА POS ;ПОВТОРИМ. wux wxo ;КОРОТКИЙ НУЛЕВОЙ ИМПУЛЬС. .15 ;УДЕРЖИВАЕМ ВХОД = 1 НА ВЫХОДЕ. Wl ;НА ВХОД = 1 НА 60 ВЫХОДЕ. мкс. Х4 POS ;ПОВТОРИМ. ;~================================= ; 13,- СЧЕТ. ;================================== СХЕТ BTFSC GOTO MOVFW ADDWF BTFSC INCF GOTO BCF MOVFW SUBWF BTFSS DECF MOVFW' ANDLW CALL MOVWF MOVLW MOVWF BCF RRF RRF DECFSZ .GOTO · КОР,4 ;ЕСЛИ $+6 ; ПОЙДЕМ НА МИНУ.С·. КОР ;ЕСЛИ LSB,l STATUS,0 LSBH,l $+6 ;ПРИБАВЛЯЕМ. КОР,4 ;_СБРОСИМ КОР ;ВЫЧТЕМ_ LSB,l STATUS,O LSBH,l LSB B'OOOOllll' DESATI DST •4 COUN STATUS,O LSBH,l LSB,l COUN,l $-4 ;ИЗ МЛАДШ:Е:т'-0 БАЙТА. ;Е~ЛИ ЗНАК МИНУС, ПЛЮС, ЕСТЬ ПЕРЕНОС, ;УВЕЛИЧИМ СТАРШИЙ БАЙТ. ;НА ВЫДЕЛЕНИЕ. БИТ ЗНАКА. ;ЕСЛИ НЕТ пtРЕНО~А, ;УМЕНЬШИМ СТАРШИЙ БАЙТ. ;ВЫДЕЛИМ ДЕСЯТЫЕ. ;ЗАМАСКИРУЕМ. ;ПЕРЕКОДИРУЕМ С ОКРУГЛЕНИЕМ. ;ЗАПИШЕМ В РЕГИСТР ДЕСЯТЫХ. 4 ;·сдвигом ВПРАВО НА ;ВЫДЕЛИМ ЦЕЛУЮ ЧАСТЬ. РАЗРЯДА ;=================================== ; 14. СРАВНЕНИЕ С УСТАНОВКОЙ 2. ;================~================== СОМР MOVLW SUBWF BTFSC GOTO 146 .37 LSB,O STATUS,O COMPOl ;ЕСЛИ ИЗМЕРЕННАЯ ;БОЛЬШЕ ИЛИ РАВНА ТЕМПЕРАТУРА З~, ;ТО ;ВКЛЮЧИМ СВЕТОДИОД.
Градусник BSF GOTO COMPOl BSF BOL MOVFW SUBWF BTFSS GOTO BTFSS GOTO MOVFW SUBWF BTFSS GOTO MOVFW MOVWF MOVFW MOVWF ZAPIN MOVFW MOVWF CALL MOVWF MOVFW MOVWF GOTO PORTA,4 BOL ;ИНАЧЕ ;НА ВЫКЛЮЧИМ СВЕТОДИОД. СРАВНЕНИЕ. FLAG,0 , ; ВКЛЮЧИТЬ LSBZ LSB, 0. ; БОЛЬ_ШЕ ;ЕСЛИ СВЕТОДИОД. СОХРАНЕННОЕ ЗНАЧЕНИЕ ИЗМЕРЕННОГО, STATЦS,0 ;ТО ZAPIN STATUS,2 $+5 DSTZ DST,0 ;ПЕРЕПИЩЕМ. STAТUS,0 ;ИЛИ СОХРАНЕНИЯ НЕТ. ;ЕСЛИ РАВЕНСТВО ЦЕЛЫХ, ;ТО ПРОВЕРИМ ;ЕСЛИ ZAPIN LSB LSBZ DST DSTZ ;ТО дЕся;ыЕ. БОЛЬШЕ РАВНО, СОХРАНИМ НОВОЕ ЗНАЧЕНИЕ ;ЦЕЛЫХ ;И ДЕСЯТЫХ. ~ЕРЕКОДИРУЕМ СОХРАНЕННОЕ ЗНАЧЕНИЕ ;~-го в 2_10-Е. · 1 ; ТОЛЬКО ДО 99 ! LSBZ ТЕМР BIDE DES ТЕМР EDI ;ПРОВЕРИМ КНОПКУ. КНОР ;==========~======================== ; 15. ПЕРЕКОДИРОВКА ИЗ 2-ГО В 2_10. ;==============================~==== BIDE ;ПЕРЕКОДИРОВКА ДЕСЯТКОВ CLRF ABDLW BTFSS GOTO MOVWF COUN -.10 STATUS,O $+4 ;ОБНУЛЯЕМ ТЕМР ;ИНАЧЕ ;ВЫЧТЕМ ;ЕСЛИ ;ТО СЧЕТЧИК. 10. ЕСТЬ ПЕРЕХОД ЗАВЕРШАЕМ ЧЕРЕЗ НОЛЬ, ПЕРЕКОДИРОВКУ. ПЕРЕПИШЕМ НОВОЕ ЗНАЧЕНИЕ ВО ;ВРЕМЕННЫЙ. INCF GOTO MOVFW 1 COUN,l $-5 COUN ;УВЕЛИЧИМ СЧЕТЧИК. ;ПОВТОРИМ ВЫЧИТАНИЕ. ;ЗНАЧЕНИЕ СЧЕТЧИКА (РАВНО ЧИСЛУ ДЕСЯТКОВ) ;ПЕРЕПИШЕМ В РАБОЧИЙ РЕГИСТР. RETURN ;ВЕРНЕМСЯ. ;=================================== ; 16. ЗАДЕРЖКА мкс, УМНОЖЕННАЯ НА 4. Х4 ADDLW BTFSS GOTO RETURN -1 STATUS,2 $-2 ;================================== ; 17. ' ПРОВЕРКА КНОПКИ. ;===============~============•===== КНОР BTFSC GOTO FLAG,3 $+4 ;ЕСЛИ ;ТО РАНЕЕ ИДЕМ НА БЫЛА НАЖАТА КНОПКА, СБРОС. 147
Устройства, измеряющие температуру BTFSS BSF ·GOTO BTFSS . GОТ:О CLRF CLRF CLRF CLRF ,CLRF BCF BCF ;ЕСЛИ КНОПКА НАЖАТА; PORTB,O FLAG,3 IND PORTB,O IND EDI DES DST DSTZ LSBZ FLAG,O FLAG,3 ;ПОСТАВИМ ;НА ;ПОКА ;ТО ФЛАГ. ПЕРЕЗАПИСЬ. КНОПКА СБРОСА ;ОБНУЛЕНИЕ ;И НАЖАТА, НЕТ. РЕГИСТРОВ ФЛАГОВ. ;======================================== ; 18. ПЕРЕЗАПИСЬ В РЕГИСТРЫ ИНДИКАЦИИ. ;======================================== IND MOVLW MOVWF MOVWF MOVLW MOVWF MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVWF MOVWF GOTO .240 Rl R2 .251 R3 DES R4 EDI R5 .252 ;ПУСТО. ;+ ;ДЕСЯТКИ 1. ;ЕДИНИЦЫ 1. ;ЗАПЯТАЯ 1. ;ДЕСЯТЫЕ 1. Rб DSTZ R7 ,240 R8 R9 RlO JEKI ;ПУСТО. ..---------;НА ИНДИКАЦИЮ. ;======================================== END ;======================================== Два .терморегу,JJятора Устройство отличается от известных измерителей температуры на DS 1820 [27] возможностью одновременной регулировки темriературы в двух точках с точностью ±0,5° в интервале температур от -1 О до +85 °С, малым временем ре­ агирования 11,4 мс по сравнению с 1 с у прототипа. Устройство предназначе­ но для работы с нагревателями и может быть использовано, например, для ре­ гулировки температуры в инкубаторе (выiюдноii и инк)тбационный); а~вариу­ мах (ви.r~овой и нерестовый), в овощехранилищах в зимнее время или просто как измеритель температуры в доме и на улице. · Микроконтроллерный термометрический датчик мерение температуры от мерения ухудшается до DS 1820 рассчитан на -55 до +125 °С, но на границах предела то;~ность ±2 °С. Управление нагревателями выполняется принципу цифрового компаратора. 148 из­ из­ по.
Два терморегулятора На однорядном ЖК-дисплее индикатора можно одновременно наблюдать текущую температуру в двух точках, температуру в различных точках и ее установленное значение. Прием данных, их. обработка и выдача на индикатор выполняются микроконтроллером микроконтроллера показан на рис. PIC16F84A. 45. Алгоритм работы программы ИНИЦИАЛ:ИЗАЦИЯ :мк ИIШЦИЛЛИЗАЦИЯ ЖКИ ------+----411~ИНДИКАЦИЯ КУРСОРА ИЗМЕРЕНИЕ 1 ВКЛ. ВЬL'СОД из:МЕРЕНИЕ 2 ВЫЮI ВЫХОД из:мЕРЕНИЕ 2 вкл. вы.ход ВЫКЛ. ВЬL'\:ОД ПРОВЕРКА КНОПОК Рис. 45. ·Алгоритм работы программы «два терморегулятора» 149
Устройства, измеряющие· температуру После пуска и инициализации регистров микроконтроллера выполняется самая продолжительная инициализация ЖК-дисплея. Далее проверяется со­ стояние флага установки. Если установки нет, то на индикацию выводятся значения регистров текущего режима. Если идет· установка, то проверяется флаг курсора. Если флаг курсора установлен, то индицируется курсор. При установке индикация курсора и значений регистров индикации выполняется поочередно. После индикации программа переходит к инициализации и считыванию температуры с первого датчика DS 1820. Микроконтроллер принимает девять бит информации с кодом знака температуры в девятом бите и значением де­ сятых долей температуры в первом бите. Если девятый бит равен единице, то знак измеренной температуры отрицательный. При единичном первом бите десятые равны пятерке. Двоичное значение принятой температуры сравнива­ ется с установленной температурой. Если измеренная температура больше установленной, то выК.лючаеrся управляющий выход. В противном случае выход включается. Для отрицательных ·установок при понижении температу­ ры управляющи_й выход включается. Далее двоичное значение температуры перекодируется в двоично-.цесятиричный код для индикации (на рис. 45 не показано). Аналогично первому выполняются считывание температуры из ,второго датчика и установка второго управляющего выхода. Поскольку вывод на ин­ дикацию занимает довольно много времени (8 мс), то он выполняется после шести циклов счит~шания температуры через 68 мс. Когда счетчик циклов бу­ дет равен нулю, проверяется состояние кнопок управления и по установлен­ ному режиму заполняются регйСТРы индикации. гrосле этого цикл индикации и измерения температуры повторяется. Цикл измерения температуры и уста­ новка управляющих выходов обоих датчиков выполняются за 11,4 мс: Таким образом, управление. каждым нагревателем будет выполняться минимум один раз за период сетевого напряжения. Схема терморегулятора показана на рис. 46. Резистором R8 устанавливают необходимую контрастность изображения индикатора. Все блоки устройства включены по стандартной схеме и в пояснении не нуждаются. Печатная плата терморегулятора показана на рис. ментов на ней - рис. 48. Датчики температуры. (DS18x2lx), 47, а расположение эле- · DS1820 можно заменить любыми из серии за исключением датчиков инициализации. DS18x20x имеющих другую программу DS18B20x, . При регулировании температуры воздуха, например в инкубаторе, выводы датчика изолируют силиконовым герметиком, а при регулировании темпера­ туры +кидкости герметиком изолируют и провода. Если р~гулируют большую темттературу, то изоляцию выполняют эпоксидной смолой. в любом с.Лучае корпус датчика должен быть свободен от изоляции. Это увеличит скорость ре­ агирования устройства на изменения температуры, а следовательно, и точ­ ность подцержания заданной температуры. Во время испытаний датчик температуры при плюсовых температурах ра­ ботал на расстоянии до турах 150 - до 6 20 мот микроконтроллера, а при минусовых темпера­ м. При измерении температуры около 100 °С датчики давали аб-
Два терморегулятора ........ ........ ........ ........ ~г, ~ \О - ("'.) м...., - - - - -н .... Q ~ и Q Q а Рис. 46. 0,5°. То есть Q N .;] ·= ::3' "' 00 ~ щ ::i:: f- ;;; а ~ в ::i:: а g Q б ~ щ f- Два терморегулятора. Электрическая схема. солютную погрешность, равную шала (§ о н 1,5°, показания а относительная погрешность не превы­ индикатора и образцового термометра отличались на 1,5°, но смежные показания индикатора были стабильными. Поэтому, если необходима точная регулировка температуры за границами 151
Устройства, измеряющие температуру 80 Рис. 47. Два терморегулятора. Печатная плата К выводам ЮJДихаrора КТЭН2 +7В 14 13 12 11 б 5 4 з 2 КТЭН1 Рис. предела -10."+85 48. Расположение элементов на плате °С, потребуется введение поправки при установке значения температуры выключения нагревателя. Работа с терморегулятором сводится к установке температуры регулирова:.. ния для обоих датчиков. При в191ючении устройства на дисплее появится зна­ чение температуры первого и второго датчика с указанием стрелочкой (>) но­ мера датчика рис. 49. Нажатием кнопки «Режим» на дисnлее_rюсле.rtовательно будут появляться изображения, аналогичные по'казанным на рис. 50-53. На рис. 50, 51 левые цифры показывают теi<ущую температуру соответствующих датчиков, а правые цифры - установленные значения температур. При вклю­ чении режимов работы, показанных на рис. 52, 53, микроконтроллер перехо­ дит в режим установки. В этом режиме под устанавливаемым разрядом появ­ ляется мигающий курсор (на' рисунках под знаком плюс). Кнопкой «Разряд» перемещают курсор по разрядам, а кнопкой «Установка» устанавливают необ­ ходимое значение температуры. При установке нет ограничения по максимум.у и миним.уму, поэтому не­ обходимо быть внимательным. Можно установить знак минус и не дождаться включения ·нагревателя, и наоборот, установить температуру регулирования - боЛее + 125° и не дождаться выключения наrревателя. Во время установки сравнение температур не прекращается, поэтому нагреватели в это время же.- 152
Два терморегулятора Рис~ 49 Рис. 50 ' ! Рис. 51 Рис. 52 Рис. 53 153
Устройства, измеряющие температуру лательно отключить. Поскольку установленные значения запоминаются в энергонезависимой памяти, то нагреватели можно подключить при выклю­ ченном напряжении. При индикации и установке температур;- для индикация двоеточия стрелка 2 (:), для 100 точка с запятой 110 - в разряде десятков будет (;), для 129 - ( <). ТЕРМОРЕГУЛЯТОРА. ТОЧНОСТЬ ИЗМЕРЕНИЯ ЗАОИСЬ В ПАМЯТЬ ДАТЧИК ТЕМПЕРАТУРЫ ИНДИ~АЦИЯ - ТЕМПЕРАТУРЫ - 0,5 ГРАДУСА., УСТАНОВОК. lбxl - DS1820, - LSD. ЖКИ РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ ДЛЯ СВОБОДНОГО п.ВЕЙДЕЛЕВКА, ИСПОЛЬЗОВАНИЯ РАДИОЛЮБИТЕЛЯМИ. БЕЛГОРОДСКОЙ. saes@mail.ru ·' ПРОГРАММА ВЕРСИЯ: = 2TER.ASM 31-07-04. АССЕМБЛЕР И ОТЛАДЧИК: ВЕРСИЯ: MPLAB IDE, 5.70.40. #INCLUDE P16F84A.INC CONFIG ЗFFlН ;==========================~=========== ; ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАСТОТОЙ 4,0 МГц. ;====================================== RB4-RB7 RB2 RS, ДАННЫЕ - RВЗ LCD, Е, RВl КНОПКА "РАЗРЯД". RBO RAO RAl RA2 - КНОПКА "УСТАНОВКА", ВХОД/ВЫХОД НА ВЫХОД ВЫХОД DS1820, 2. 1. РЕГУЛИРОВКИ 2. РЕГУЛИРОВКИ RАЗ КНОПКА RA4 ВХОД/ВЫХОД НА "РЕЖИМ" (УСТАНОВКА DS1820, ТЕРМОМЕТР - 1 - ТЕРМОМЕТ.Р 1. ;===============~============~========== ; СПЕЦ РЕГИСТРЫ. ;==========~============================ INDF TIMERO OPTIONR РС STATUS FSR PORTA PORTB TRISA TRISB INTCON EQU оон EQU OlH EQU · 81Н EQU 02Н EQU озн EQU 04Н EQU 05Н EQU ОбН EQU В5Н EQU 8~Н EQU овн ;ДОСТУП К ПАМЯТИ ЧЕРЕЗ FSR. ;TMRO. ; OP'PON (RPO=l) . ;СЧЕТЧИК КОМАНД. ;РЕГИСТР СОСТОЯНИЯ АЛУ. ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ. ;ПОРТ А ВВОДА/ВЫВОДА. ;ПОРТ В ВВОДА/ВЫВОДА. ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А. ;НАПРАВЛЕНИЯ-ДАННЫХ ПОРТА В. ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ. ;============================================== ; РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ. ;============================================== SOTYl EQU DESYl EQU 154 lOH llH . ·; РЕГИСТР ;ДЕСЯТКИ ЗНАКА 1. 1. 2) . обратная
Два терморегуляtора EDIYl DSTYl TYRl SOTY2 DESY2 EDIY2 .DSTY2 TYR2 EQU EQU EQU EQU EQU EQU EQU EQU EQU \ ТЕМР ZAN EQU COUN "EQU LSB EQU cou EQU WTEMP EQU STf;MP EQU FTEMP EQU REID· EQU КУРС EQU 12Н ;ЕДИНИЦЫ ТЕМПЕРАТУРЫ lЗН ;ДЕСЯТЫЕ 14Н ;УСТАНОВЛЕННАЯ 15Н ;РЕГИСТР ЗНАКА 2. ;ДЕСЯТКИ. 2. 16Н 0 ТЕМПЕРАТУРЫ ТЕМПЕРАТУРА 17Н ;ЕДИНИЦЫ ТЕМПЕРАТУРЫ 18Н ;ДЕСЯТЫЕ 19Н ;УСТАНОВЛЕННАЯ lAH lBH lCH lDH ;ВРЕМЕННЫЙ. 1.ЕН ;СЧЕТЧИК.ПЕРЕСЧЕТА. 20Н 21Н ;~РЕМЕННЫЙ. ;ВРЕМЕННЫЙ. 22Н ;ВРЕМЕННЫЙ. ТЕМПЕРАТУРЫ ;СЧЕТЧИК 1. 1. 1 ДВОИЧНАЯ. 2 ДВОИЧНАЯ. 2. 2. ТЕМПЕРАТУРА ПАУЗЫ. ;СЧЕТЧИК· БИТОВ. ;РЕГИСТР ПРИЕМА 23Н ;РЕЖИМА 24Н ; КУРСОРА. ДАННЫХ ОТ DS. ИНДИКАЦИИ. ;РЕГИСТРЫ ИНДИКАЦИИ. Rl R2 RЗ R4 RS Rб R7 R8 R9 RlO Rll R12 RlЗ R14 R15 R16 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU. EQU EQU EQU зон EQU EQU EQU EQU EQU EQU EQU EQU 40Н ;ЗНАК 41Н ;ЕДИНИЦЫ 42Н ;ДЕСЯТКИ 43Н ;ДЕСЯТЫЕ 44Н ;ЗНАК 45Н ;ЕДИНИЦЫ 46}! ;ДЕСЯТКИ 1. 47Н ;ДЕСЯТЫЕ ЗlН 32Н ззн 34Н зsн 36Н 37Н 38Н 39Н ЗАН звн' зсн ЗDН ЗЕН 3FH ;РЕГИСТРЫ ИЗМЕРЕННЫХ sот2 EDI2 DES2 DST2 sот1·. EDil DESl DSTl ТЕМПЕРАТУР. 2. 2. 2. 2. 1. 1. 1. ;===========~===~============================== ; ОПРЕДЕЛЕНИЕ БИТОВ СОСТОЯНИЯ РЕГИСТРОВ ФЛАГОВ. ;============================================== fLAG E.QlJ FLЛGl 0-> 1-> 3-> 4-> 5-> 6-> EQU 4 8Н ЗНАКА. 1-МИНУС. СЧИТЫВАНИЯ КНОПКИ 9 РАЗРЯдА. "УСТАНОВКА". КНОПКИ "РЕЖИМ". КНОПКИ "РАЗРЯД". ЧЕРЕДОВАНИЯ КУРСОРА И ИНДИКАЦИИ. 49Н 155
Устройства, измеряющие температуру 0-> 6-> УСТАНОВКИ УСТАНОВКИ =1. 1 ТЕРМОМЕТРА. ;======================================= DS2 . DSl YPRl YPR2 RS EQU EQU EQU EQU EQU EQU EQU EQU EQU Е УСТ PAZ PEJ DS, 2. DS, 1. о ;ВЫХОД 4 1 2 2 ;ВЫХОД 3 ;СИНХРОНИЗАЦИЯ. о ;УСТАНОВКА. 1 ;РАЗРЯД. 3 ;РЕЖИМ. 1. 2. ;ВЫХОД УПРАВЛЕНИЯ ;ВЫХОД УПРАВЛЕНИЯ ;КОМАНДА/ДАННЫЕ. ;======================================= ; 1. ПУСК. ;=~===============~==== O:RG GOTO NOP NOP NOP NOP О INIT ;====================== ; 2. ИНИЦИАЛИЗАЦИЯ. ;========~============= It·iIT BSF MOVLW STATUS,R~O 1. ;ПЕРЕХОДИМ В БАНК В'00000000' МOVWF OPTION REGЛ80H' MOVLW В'ОООООООО' MOVWF INTCON MOVLW В'О001100~' MOVWF TRISAЛ80H MOVLW B'OOOOOOll' MOVWF ТRISвлаон BCF STATUS,RPO CLRF TMRO CLRF FLAG CLRF FLAGl CLRF PORTA CLRF PORTB CLRF REID CLRF КУРС MOVLW. 6 MOVWF COU CALL АКТ ) ;ПОДТЯГИ~АЮЩИЕ ;ПРЕРЫВАНИЯ ;0,3,4 ;0,1'- РЕЗИСТОРЫ ВКЛЮЧЕНЫ. ЗАПРЕЩЕНЫ. НА ВХОД. НА ВХОД. ;ПЕРЕХОДИМ В БАНК О. ;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛ~ВАЕМ. ;ИНДИКАЦИЯ ЧЕРЕЗ 68 ;ВЫБОРКА. ИЗ ПАМЯТИ. ;~=====~=====================~==========~= ; 3. ИНИЦИАЛИЗАЦИЯ ЖКИ. ;========================================= JEKINI MOVLW CALL CALL MOVLW CALL CALL 156 3 JEKOMI STROB 3 JEKOMI STROB ;СБРОС. ;·ПЕРЕДАЧА КОМАНДЫ. ;ПРОСТРОБИРУЕМ. ;СБРОС. ;ПРОСТРОБИРУЕМ. мс.
Два терморегулятора MOVLW CALL CALL MOVLW CALL CALL MOVLW CALL CALL MOVLW CALL CALL MOVLW CALL CALL MOVLW CALL CALL MOVLW CALL CALL GOTO 3 JEKOMI STROB 10 JEKOMI ;ПРОСТРОБИРУ.ЕМ. sт~ов ;ПРОСТРОБИРУЕМ. Об ;ИНКРЕМЕНТИРОВА~ИЕ MOVLW MOVWF .25 ZAN ;ЗАПРЕТ JEKOMI' STROB 01 JEKOMI STROB 28 JEKOMI STROB 28 JEKOMI STROB· СДВИГА ИЗОБРАЖЕНИЯ ПОЗИЦИИ КУРСОРА. ;ПРОСТРОБИРУЕМ. ;СТИРАНИЕ ДИСПЛЕЯ. ;ПРОСТРОБИРУЕМ. ;ФОРМАТ ОБМЕНА: 4 РАЗР., 5х7, 2 СТРОКИ. ;ПРОСТРОБИРУЕМ. ;ПРОСТРОБИРУЕМ. ос ;ВКЛЮЧЕНИЕ JEKOMI STROB JEKI ;ПРОСТРОБИРУЕМ. ДИСПЛЕЯ, ЗАПРЕТ КУРСОРА. ;НА ИНДИКАЦИЮ. PAUSA .PAUS MOVLW .255 ADDLW -1 STATUS,2 BTFSS $-2 GOTO DECFSZ ZAN,l PAUS. GOTO ''RETURN JEKOMI MOVWF ТЕМР ANDLW В'11110000' MOVWF P.ORTB CALL STROB CALL PAUSA MOVFW ТЕМР SWAPF . ТЕМР, W ANDLW в' 11110000' MOVWF PORTB CALL STROB CALL PAUSA RETURN ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. ;ЗАМАСКИРУЕМ МЛАДШИЕ ;ОСТАЛЬНЫЕ РАЗРЯДЫ РАЗРЯДЫ ПЕРЕПИШЕМ ПОД В НОЛЬ. ПОРТ "В". ;ПРОСТРОБИРУЕМ. ;ПАУЗА. "' ;ПОМЕНЯЕМ МЕСТАМИ ПОЛУБАЙТЫ . ;ЗАМАСКИРУЕМ ; ПЕРЕПИШЕМ СТАРШИЕ В ПОРТ "'В" РАЗРЯДЫ ПОД НОЛЬ. . ;ПРОСТРОБИРУЕМ. ;ПАУЗА. ;=======================~=============== ; 4. ВЫБОР РЕЖИМА ИНДИКАЦИИ . . :=========~============================= VUBOR BTFSS RETURN BCF MOVFW ADDWF PORTA,PEJ ;ЕСЛИ КНОПКА НАЖАТА, ;ТО ВЫБОРА НЕТ. FLAG,4 REID ;ПО РС,1 ;ВЫБИРАЕМ ИНДИКАЦИЮ. ;СБРОС ФЛАГА РЕЖИМА. НОМЕРУ 157
Устройства, измеряющие температуру IND12 INDlY IND2Y· ·INDYl INDY2 GOTO GOTO GOTQ G.OTO GOTO ;. ТЕМ~ЕРАТУРА 1-2. ;1-УСТАНОВКА. ;2-УСТАНОВКА. 1. 2. ;УСТАНОВКА ;УСТАНОВКА ;======================================= ; 5. ,ВЫБОР РАЗРЯДА УСТАНОВКИ. ;======================================= УСТА BTFSS RETURN BTFSS RETURN BCF MOVFW ADDWF GOTO GOTO GOTO GOTO ;ЕСЛИ КНОПКА PORTB,YCT ;ТО FLAGl,O ВЫБОРА ;ЕСЛИ ;ТО НЕТ НАЖАТА, НЕТ. УСТАНОВКИ, КНОПКА НЕ РАБОТАЕТ. FLAG,3 ;СБРОС КУРС ;ПО РС,1 ;НАХОДИМ РАЗРЯД. фЛАГА ~ЕЖИМА. КУРСОРУ УСО ;ЗНАК YCl ;ДЕСЯТКИ Ус2' ;ЕДИНИЦЫ УС4 ;ДЕСЯТИЧНЫЕ 1. 1. 1. 1. ;============~=========================================== ; 6 .. ТАБЛИЦЫ ПЕРЕВОДА ДЕСЯТКОВ В ДВОИЧНОЕ ЧИСЛО. ;=====================~===========================~====== DEBIN ADDWF RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW РС,1 .о .10 .20 .30 .40 .50 .60 .70 .80 .90 .100 .110 '.120 ;===========~========================~==== ; 7. ФОРМИРОВАНИЕ СТРОБИРУЮЩЕГО ИМПУЛЬСА. ;========================================= STROB BSF NOP BCF RETURN PORTB,E ;ВКЛЮЧАЕМ СТРОЕ-ИМПУЛЬС. PORTB,E ;ВЫКЛЮЧАЕМ СТРОБ. ;ВЕРНЕМСЯ. ;========================================= ; 8. ПЕРЕДАЧА КОМАНДЫ в'жки. . ' ;~=================~==================~==~ JE;KOM MOVWF ANDL·w MOVWF CALL CALL 158 ТЕМР B'llllOOOO' PORTB STROB PUS ;ПЕРЕПИШЕ~ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. ;ЗАМАСКИРУЕМ МЛАДШИЕ. РАЗРЯДЫ ; ОСТАЛЬНЫЕ РАЗРЯДЫ ;ПРОСТРОБИРУЕМ. ;ПАУЗА. ПОД ПЕРЕПИШЕМ В НОЛЬ. ПОРТ, "В".
Два терморегулятора MOVFW SWA'PF ANDLW MOVWF CALL ТЕМР MOVLW ADDLW .255 -1 STF\,TUS,2 $-2 ;1 .10 -1 STATUS,2 $-2 ;40 W 1111·0000 PORTB STROB ТЕМР, в 1 1 ;ЗАМАС:КИРУЕМ СТАРШИЕ ;ПЕРЕПИШЕМ В ПОРТ РАЗРЯДЫ ПОД НОЛЬ. "В". ·; ПРОСТРОБИРУЕМ. PUS ·втFSS GOTO RETURN мс. PUSO MOVLW ADDLW BTFSS GOTORETURN мкс. ;=========~=========================;= ; 9. ЗАПИСЬ ДАННЫХ В ЖКИ. ;====~==========================~===== .·· JEDAT MOVWF ANDLW ADDLW MOVWF BSF ТЕМР в 1 11110000 1 ;ПЕРЕПИШ~М ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ РЕГИСТР. ;ЗАМАСКИРУЕМ МЛАДШИЕ 30 PORTB PORTB,RS ;ПЕРЕВОД В КОД STROB PUSQ ;ПРОСТРОБИРУЕМ. ASCII, РАЗРЯДЫ ПОД НОЛЬ. ТОЛЬКО ДЛЯ ЦИФР! ;ОСТАЛЬНЫЕ РАЗРЯДЫ ПЕРЕПИШЕМ В ;УСТАНОВИМ R/S НА РАЗРЕШЕНИЕ ПОРТ "В". ЗАПИСИ ДАННЫХ. CALL CALL ;ПАУЗА ДЛЯ ОСВОБОЖДЕНИЯ ЖКИ ОТ ЦИКЛА ЗАПИСИ. MOVFW SWAPF ANDLW MOVWF BSF ТЕМР ТЕМР,О 11110000 1 PORTB PORTB,RS в 1 ;ПОМЕНЯЕМ МЕСТАМИ ПОЛУБАЙТЫ. ;ЗАМАСКИРУЕМ СТАРШИЕ · ; ОСТАЛЬНЫЕ РАЗРЯДЫ ПОД НОЛЬ. РАЗРЯДЫ ПЕРЕПИШЕМ В ПОРТ R/S ;УСТАНОВИМ НА РАЗРЕШЕНИЕ "В". ЗАПИСИ ДАННЫХ. CALL GOTO STROB PUSO ;ПРОСТРОБИРУЕМ. ;ПАУЗА. ;==========================================================~= ; 10. ВЫВОД ЗНАЧЕНИЙ РЕГИСТРОВ НА ИНДИКАЦИЮ. ;===~==~===================================================== JEKI BTFSS GOTO BTFSS GOTO MOVLW CALL MOVLW CALL MOVLW MOVWF MOVLW MOVWF MOVFW FLAGl,O $+3. FLAG,.6 JEKYC ; ЕСЛИ ;ТО НЕТ УСТАНОВКИ,. ПРОПУСКАЕМ ИНДИКАЦИЮ КУРСОРА. ;ЕСЛИ НЕ БЫЛО ИНДИКАЦИИ КУРСОРА, ;ТО ПРОИНДИЦИРУЕМ. 02 JEKOM ;ВОЗВРАТ КУРСОРА В ИСХОДНОЕ ;ЗАПИШЕМ КОМАНДУ. В'10000000' ;КУРСОР НА О ПОЗИЦИЮ ПЕРВОЙ 'СТРОКИ. JEKOM ;ЗАПИШЕМ .8 СОСТОЯНИЕ. КОМАНДУ. ;ЗАПИШЕМ чис~о ЗНАКОМЕСТ . COUN ;АДРЕС R1 FSR INDF ПЕРВОГО РЕГИСТРА ИНДИКАЦИИ. ;ПО КОСВЕННОЙ АДРЕСАЦИИ. ;ИНДИЦИРУЕМ ЗНАЧЕНИЕ. 159
Устройства, измеряюiцvrе температуру CALL DECF BTFSC GOTO INCF GOTO. MOVLW CALL ,мoVLW MOVWF INCF MOVFW CALL DECF BTFSS GOTO BCF GOTO JEDAT CGUN,1 STATUS, 2· $+3 FSR,1 $-6 в' 11000000' JEKOM ·. 8 COUN FSR,1 INDF JEDAT COUN,1 STATUS,2 $-5 FLAG,6 INIDSl ;УМЕНЬШАЕМ СЧЕТЧИК. .i ЕСЛИ ~Е О, ;ТО ПЕРЕХОДИМ НА ВТОРУЮ СТРОКУ. ;ИНАЧЕ ПРОИНДИЦИРУЕМ СЛЕДУЮЩИЙ ;РЕГИСТР. ;ВТОРАЯ СТРОКА ;ЗАПИШЕМ (УСЛОВНО 2х8) .ОхОСО КОМАНДУ. ;ИНДИКАЦИЯ АНАЛОГИЧНА ;ИНДИКАЦИИ ПЕРВОЙ СТРОКИ. ;СЛЕДУЮЩАЯ ИНДИКАЦИЯ ;НА ИНИЦИАJIИЗАЦИЮ КУРСОРА. DS. ; ==========-====.=========================== ; 11. ИНДИКАЦИЯ КУРСОРА. ;========================================= JEKYC MOVLW CALL CALL CALL BSF GOTO .14 JEKOM JEKYK JEKOM FLAG,6 INIDSl ;РАЗРЕШАЕМ МИГАНИЕ КУРСОРА. ;ЗАПИШЕМ КОМАНДУ. ;НА ВЫБОР МИГАЮЩЕГО ; ЗАПИШЕМ РАЗРЯДА. КОМАНДУ,. ;СЛЕДУЮЩАЯ ИНДИКАЦИЯ ;НА ИНИЦИАЛИЗАЦИЮ - РАЗРЯДОВ. DS. JEKYK MOVFW ADDWF RE:TLW RETLW RETLW RETLW КУР~ ;РЕГИСТР КУРСОРА В РАБОЧИЙ. РС,1 ;ВТОРАЯ Ох СО ;ЗНАК. OxCl ;ДЕСЯТКИ. ОхС2 ;ЕДИНИЦЫ. ОхС4 ;ДЕСЯТЫЕ. СТРОКА (УСЛОВНО 2х8) ОхОСО; ;===========-=====-======~==~=============== ; 12. ИНИЦИАЛИЗАЦИЯ ,· DS 1. ;====================================~==== INIDSl CALL MOVLW CALL MOVLW ' CALL GOTO HYLl .CALL MOVLW ADDLW BTFSS GOTO CAI;.L MOVLW ADDLW BTFSS 160 HYLl ;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ. ОхСС ;ПРОПУСК POSILl ;ПОIШIЕМ. ПОСЫЛА Ох44 ;РАЗРЕШАЕМ POSILl PRIEMl ;ПОIШIЕМ. WUXl .125 -1 STATUS,2 $-2 WXOl .125 -1 ;ВЫХОД НУЛЯ sтArr:µs,2 ;НА ПРИЕМ ТЕМПЕРАТУРЫ. . ;= 500 мкс. ;ВЫХОД ЕДИНИЦЫ. ;500 мкс. DS. ПРЕОБРАЗОВАНИЕ. ;НУЛЕВОЙ ИМПУЛЬС ;ИМПУЛЬС НОМЕРА =
Два терморегулятора $-2 GOTO RETURN ;==========================================\ ; iЗ. ИЗМЕНЕНИЕ ВХОДА ~А ПРИЕМ/ПЕРЕДАЧУ. ;======•================================ WUXl BCF POR'IA,DSl STATUS,5 TRISA"80H,0Sl -STATUS,5 ',БSF ·BCF BCF RETURN ;КОРОТКИЙ ЗАПРОС. ;ПЕРЕХОДИМ в БАНК 1. ;ПЕРЕХОДИ!-1 В БАНК о. ;ПЕРЕХОДИМ БАНК 1~ ;НА ВЫХОД. WXOl BSF BS.F BCF RETURN STATUS,5 TRISAлso,н, STATUS,5 DSl ;НА В ВХОД. ;ПЕРЕХОДИМ В.БАНК о. ;====================*=;================ ; 14. ПРИЕМ 9 БИТ ИЗ DS ~· ;=================~================== PRIEMl CALL MOVLW CALL MOVLW CALL CALL BSF CALL BCF BTFSS BCF BTFSC BSF BTFSS GOTO COMF ADDLW MOVWF GOTO PRIEl MOVLW MOVWF CLRF PRil CALL CALL MOVLW CALL MOVFW MOVWF BTFSC RETURN BTFSS BCF BTFSC НУЫ ;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ. ОхСС ;ПРОПУСК НОМЕРА. POSILl ;ПОСЫЛ. ОхВЕ ;ЧТЕНИЕ POSILl PRIEl FLAG,l PRil FLAG,l TEMP,DSl FLAG,O TEMP,DSl FLAG,0 FLAG,0 CXETl LSB,0 .1 LSBCXETl ;ПОСЫЛ. .8 COUN LSB WUXl WXOl ;НА ТЕМПЕРАТУРЫ ИЗ ПРИЕМ. ;УСТАНОВИМ ;И БЛОКНОТА. ПРИМЕМ БИТ. 9 ЕГО. ;СБРОСИМ ФЛАГ. ;ЕСЛИ ПРИНЯТЫЙ,БИТ = ;ТО УСТАНОВИМ ФЛАГ ПЛЮСА. О, ;ИЛИ МИНУСА. ;ПРОПУСТИМ, ЕСЛИ МИНУС. ;ПОСЧИТАЕМ. ;ИНВЕРТИРУЕМ. 1 ;ПРИБАВИМ И ПОЛУЧИМ ;ОТРИЦАТЕЛЬНЫЕ ДАННЫЕ. ;НА ПЕРЕСЧЕТ. ;ЗАПИШЕМ ЧИСЛО БИТ. ;ОБНУЛИМ РЕГИСТР ПРИЕМА. ;ВЫДАЕМ КОРОТКИЙ НОЛЬ И ЖДЕМ ОТКЛИКА. ;НА ПРИЕМ . .2 ;ЗАДЕРЖКА Х4 ;8 PORTA ;ПЕРЕПИШЕМ ТЕМР ;ЗНАЧЕНИЕ FLAG,l ;ЕСЛИ ЭТО 9 БИТ, мкс. ПОРТА. ;ВЕРНЕМСЯ. TEMP,DSl STATUS,0 TEMP,DSl ;УСТАНОВИМ БИТ ПРИЕМА В НОЛЬ. 161
Устройства, измеряющие температуру BSF RRF , MOVLW CALL DECFSZ GOTO RETURN STATUS,0 LSB,l .15 ;ИЛИ . ЕДИНИЦУ. ;ЗАПИШЕМ ;ПАУЗ.1\ В 60 РЕГИСТР. мкс. Х4 COUN,1 PRil СЧЕТЧИК. ;УМЕНЬШИМ ;ПОВТОРИМ ПРИЕМ. ;ВЕrНЕМСЯ. ;========================~========= ; 15. ЗАДЕРЖКА мкс, УМНОЖЕННАЯ НА 4. . Х4 ADDLW BTFSS GOTO RETURN -1 STATUS,2 $-2 ,·================================== ' ; 16. ПОСЫЛ КОМАНДЫ В DS 1. :~================~================ POSILl MOVWF MOVLW MOVWF POSil RRF BTFSS GOTO GOTO POSl DECFSZ GOTO RETURN WOl 1 CALL MOVLW CALL CALL GOTO Wll CALL CALL MOVLW CALL GOTO ТЕМР .8 ВРЕМЕННЫЙ. ;ПЕРЕПИШЕМ во . ;ЗАПИШЕМ число БИТ. COUN ТЕМР,1 ·STATUS,O WOl ;ВЫТОЛКНЕМ МЛАДШИЙ вит·. ;ЕСЛИ ОН НУЛЕВОЙ, НУЛЯ. ;ПОШЛЕМ ИМПУЛЬС Wl_l ;ИЛИ ЕДИНИЦЫ. COUN,1 POSil ;УМЕНЬШАЕМ СЧЕТЧИК. ;НА СЛЕДУЮЩИЙ БИТ. ;ВОЗВРАТ. WUXl . 15 ' в 60 мкс ;УСТАНОВИМ выход ;УДЕРЖИВАЕМ ноль. . Х4 WXOl POSl ;НА WUXl WXOl . 15 ;КОРОТКИЙ НУЛЕВОЙ ИМПУЛЬС. ВХОД = 1 НА ВЫХОДЕ. ;ПОВТОРИМ. ;НА ВХОД = ;УДЕРЖИВАЕМ 1 .НА ВЫХОДЕ. 60 мкс . Х4 POSl .. - ;ПОВТОРИМ. ;=======================~========== ; 17. СЧЕТ 1. ;===========================~====== i CXETl MOVLW MOVWF BTFSS GOTO MOVLW MOVWF CALL BCF 162 .251 SOTl FLAG,0 ;ПО УМОЛЧАНИЮ ;ЗНАК ПЛЮС, ;ЕСЛИ 9 РАЗРЯД = 1, 1 $+3 . 253 SOTl COMPl S_TATUS, о .. ;ТО УСТАНОВИМ ЗНАК МИНУС ;СРАВНИМ С УСТАНОВКОЙ. .
Два терморегулятора RRF BTFSS GOTO MOVLW MOVWF GOTO, CLRF MOVFW' M9'JWF CALL . MOVWF MOVFW MOVWF GOTO LSB,1 "STATUS,O $+4 .5 ,, DSTl $+2 DSTl LSB ;ДЕЛИМ ТЕМПЕРАТУРУ НА 2. 1·, = ;ЕСЛИ МЛАдШИЙ РАЗРЯД , ;ТО ДЕСЯТЫЕ ;РАВНЫ 5. ;ИЛИ= О. ;ПЕРЕКОДИРУЕМ 2-ГО В ТЕКУЩЕЕ ТЕМР ;ИЗ BIDE DESl ;"только до 99 ! ;ЗАПИШЕМ В ДЕСЯТКИ ТЕМР ;ОСТАТОК> EDil INIDS2 ;В ЗНАЧЕНИЕ 2_10-Е. . ЕДИНИЦЫ. ;ИЗМЕРЯЕМ ТЕМПЕРАТУРУ В 2. ;=================================== ; 18. КОММУТАТОР. ;==:~================~============== POSLA DECFSZ GOTO MOVLW MOVWF . CALL GOTO COU,1 INIDSl ;ИЗМЕРЯЕМ .6 ;ИНДИКАЦИЯ ТЕМПЕРАТУРУ ЧЕРЕЗ 68 В 1. мс. cou КНОР ;ПРОВЕРИМ КНОПКИ. JEKI ;НА ИНДИКАЦИЮ. ;=========~====~==================== СРАВНЕНИЕ С УСТАНОВКОЙ 1. ; 19. ;==============~==================:= COMPl MOVLW SUBWF BTFSS GOTO MOVFW SUBWF Щ'FSS GOTO' MOVFW SUBWF SKPNC GOTO BSF RETURN .251 SO'J;'Yl,0 STATUS,2 COMIN SOTl SOTYl, О · STATUS,0 ;ЕСЛИ ЗНАК ПЛЮС, ;ТО ПРОПУСКАЕМ. ;ИНАЧЕ ИДЕМ ;ЕСЛИ НА МИНУС. ТЕМПЕРАТУРА МИНУСОВАЯ, ;А УСТАНОВКА ПЛЮСОВАЯ, СОРМ ;ТО ВЫХОД. TYRl LSB,O ;СРАВНИМ ИЗМЕРЕННОЕ .; И ВКЛЮЧАЕМ ЗНАЧЕНИЕ УСТАНОВЛЕННОЕ. ;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО, СОР ;ТО ИДЕМ ВЫКЛЮЧАТЬ PORTA,YPRl ;ИЛИ PORTA,YPRl ;ВЫКЛЮЧИМ SOTYl . SOTl,O STATus:o ;ЕСЛИ СОР ;ТО ВКЛЮЧИМ ВЫХОД. ЕГО. СОР BCF RETURN ВЫХОД. COMIN MOVFW SUBWF BTFSS • · . GOTO MOVFW SUBWF SKPNC GOTO BCF ТЕМПЕРАТУРА ПЛЮСОВАЯ, ;А УСТАНОВКА МИНУСОВАЯ, ВЫКЛЮЧАЕМ ВЫХОД . TYRl LSB,O ;ЕСЛИ БОЛЬШЕ.ИЛИ СОРМ ;ТО ВКЛЮЧАЕМ PORTA,YPRl ;ВЫКЛЮЧАЕМ ВЦХОД. РАВНО, ВЫХОД. 163
Устройства, измеряющие температуру RETURN СОРМ BSF RETURN PORTA,YPRl ;ВКЛЮЧАЕМ ВЫХОД. ;=====================================d= ; 20. ПРОВЕРКА КНОПОК. ;=======================~=============== КНОР BTFSC CALL BTFSS BSF BTFSC CALL BTFSS . BSF BTFSS BSF BTFSS GOTO BTFSS GOTO BCF INCF MOVLW SUBWF BTFSS GOTO CLRF BCF GOTO FLAG,3 ;ЕСЛИ УСТА ';ТО ИДЕМ PORTB,YCT FLAG,3 FLAG,5 , ; ЕСЛИ PORT~,PAZ FLAG,5 PORTA,PEJ FLAG,4 FLAG,4 VUBOR PORTA,PEJ VUBOR FLAG,4 REID,l БЫЛА НАЖАТА КНОПКА, НА УСТАНОВКУ РАЗРЯДА. КНОПКА НАЖАТА, ;ПОСТАВИМ ФЛАГ. ;ЕСЛИ ;TQ КУРСУ РАНЕЕ РАНЕЕ БЫЛА НАЖАТА КНОПКА, ИДЕМ НА УСТАНОВКУ КУРСОРА. ;ЕСЛИ КНОПКА НАЖАТА, . ; ПОСТАВИМ ФЛАГ. ;ЕСЛИ КНОПКА НАЖАТА, ;ПОСТАВИМ ФЛАГ. ;ЕСЛИ КНОПКА ;ТО ИДЕМ ;ЕСЛИ НЕ НА ;СБРОСИМ ФЛАГ ;ИЗМЕНЕНИЕ .5 ;5 ;ЕСЛИ НАЖАТА, РЕЖИМА ИНДИКАЦИИ. КНОПКА НАЖАТА, ;ТО ИДЕМ REID,O STATUS,2 VUBOR !i?,EID FLAGl,O VUBOR БЫЛА НА ВЫБОР ВЫБОР РЕЖИМА ИНДИКАЦИИ. РЕЖИМА .. РЕЖИМА ИНДИКАЦИИ. РЕЖИМА ИНДИКАЦИИ . БОЛЬШЕ, ;ТО ПОЙДЕМ НА СБРОС. ;НА ЗАПИСЬ В РЕГИСТРЫ ИНДИКАЦИИ. ;СБРОС РЕЖИМА. ;СБРОС УСТАНОВКИ. ;НА· ВЫБОР РЕЖИМА ИНДИКАЦИИ. ;========================================~======== ; 21. УСТАНОВКА КУРСОРА (ВЫБОР РАЗРЯДА УСТАНОВКИ). ;====================~============================ КУРСХ BTFSS RETURN BTFSS RETURN BTFSS RETURN BCF INCF MOVLW SUBWF SKPC RETURN CLRF RETURN FLAGl,O . .i УСТАНОВКА ВОЗМОЖНА, ;ЕСЛИ ИНДИКАЦИЯ УСТАНОВКИ. PORTB,PAZ ;ПРИ НАЖАТОЙ КНОПКЕ. ; У.СТАНОВКА FLAG,5· НЕ МЕНЯЕ-'I'СЯ. ';ПРОДУБЛИРУЕМ СОСТОЯНИЕ ;ФЛАГА. FLAG,5 ;СБРОСИМ КУРС,1 ;ПРИБАВИМ ЕДИНИЦУ В .4 ; НЕ ЕГО. БОЛЕЕ, КУРСОР. 4• КУРС, О КУРС ;ИНАЧЕ ОБНУЛИМ КУРСОР,. ;======================================= ; 22. УСТАНОВКА. ;==================:~=================== УСО BTFSS GOTO 164 FLAGl,,6 ;ЕСЛИ ИДЕТ УСТАНОВКА УС02 ;ТО УСТАНОВИМ 2 2, ТЕМПЕРАТУРУ.
Два терморегулятора YCOl· MOVLW SUBWF BTFSS GOTO MOVLW MOVWF RETURN MOVLW 'MOVWF RETURN .251 SOTYl,O STATUS,2 9+4 . .253 'sоту1 ;ЕСЛИ 'БЫЛ ;ЗНАК ;ТО ПЛЮС, УСТАНОВИМ ЗНАК МИНУС. ;ВЕРНЕМСЯ. .251 SOTYl ;УСТАНОВИМ ;ЗНАК ПЛЮС. ;ВЕРНЕМСЯ. УС02 MQVLW SUBWF BTFSS GOTO MOVLW MOVWF RETURN MOVLW MOVWF RETURN .251 SOTY2,0 STATUS,2 t+4 .253 SOTY2 ;ЕСЛИ БЫЛ ;ЗНАК плюс, ;ТО УСТАНОВИМ ЗНАК МИНУС. ;ВЕРНЕМСЯ. .251 SOTY2 ;УСТАНОВИМ ;ЗНАК п.riюс. ;ВЕРНЕМСЯ. YCl BTFSS GOTO FLAGl,6 ;ЕСЛИ ИДЕТ УС12 ;ТО УСТАНОВИМ INCF MOVLW SUBWF SKPNC CLRF GOTO DESYl,l .13 DESYl,O ;УВЕЛИЧИМ ДЕСЯТКИ DESYl PERYl ;ЕСЛИ INCF MOVLW SUBWF SKPNC CLRF GOTO DESY2,1 .13 DESY2,0 ;УВЕЛИЧИМ ДЕСЯТКИ BTFSS GOTO FLAGl,6 УС22 ;ТО УСТАНОВИМ INCF MOVLW SUBWF SKPNC CLRF GOTO EDIYl,1 . 10 EDIYl,O ;УВЕЛИЧИМ ЕДИНИЦЫ. EDIYl PERYl ;ТО ОБНУЛИМ. ;НА ПЕРЕСЧЕТ INCF MOVLW SUBWF SKPNC CLRF EDIY2, 1 .10 EDIY2,0 ;УВЕЛИЧИМ ЕДИНИЦЫ. ;НЕ 9. УСТАНОВКА 2 2, ТЕМПЕРАТУРУ.. YCll ;НЕ ;НА БОЛЕЕ 1. 12. БОЛЬШЕ, ПЕРЕСЧЕТ ТО ОБНУЛИМ. ДВОИЧНОГО ЧИСЛА 1. УС12 DESY2 PERY2 ;НЕ .; БОЛЕЕ 2. 12. / ;ЕСЛИ ТО БОЛЬШЕ, ;НА ПЕРЕСЧЕТ ОБНУЛИМ. дв9ичного ЧИСЛА 2. УС2 . ; ЕСЛИ ИДЕТ УСТАНОВКА 2 2, ТЕМПЕРАТУРУ. УС21 ;НЕ БОЛЕЕ 9. ., ;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО двоичного 10, ЧИСЛА 1. УС22 БОЛЕЕ ;ЕСЛИ EDIY2 ;ТО БОЛЬШЕ ИЛИ РАВНО 10, ОБНУЛИМ. 165
Устройства, измеряющие температуру GOTO PERY2 ;НА BTFSS GOTO FLAGl,6 УС42 ;ЕСЛИ ИДЕТ УСТАНОВКА 2, ; ТО УСТАН,О.Е}ИМ 2 ТЕМПЕРАТУРУ. ПЕРЕСЧЕТ ДВОИЧНОГО ЧИСЛА 2. УС4 УС41 MOVLW SUBWF BTFSS GOTO CLRF RETURN MOVLW MOVWF GOTO .5 DSTYl,O STATUS,2 $+3 DSTYl МOVLW .5 DSTY2,0 STATUS,2 $+3 DSTY2 PERY2 .5 DSTY2 PERY2 ;ЕСЛИ БЫЛА ; 5' ;ТО ОБНУЛИМ. ;ВЕРНЕМСЯ. .5 DSTYl PERYl ;УСТАНОВИМ ; 5. ·;НА ПЕРЕСЧЕТ ДВОИЧНОГО ЧИСЛА 1. УС42 SUBWF BTFSS GOTO CLRF GOTO MOVLW MOVWF ,GOTO ;ЕСЛИ· БЫЛА ; 5, ;ТО ОБНУЛИМ. ;ВЕРНЕМСЯ. ;УСТАНОВИМ ; 5. ;НА ПЕРЕСЧЕТ ДВОИЧНОrО ЧИСЛА 2. PERYl MOVFW CALL ADDWF MOVWF MOVLW SUBWF RLF GOTO DESYl DEBIN EDIYl, О TYRl .5 DSTYl,O TYRl,1 ZAPIS MOVFW CALL ADDWF ·MOVWF MOVLW SUBWF RLF GOTO DESY2 DEBIN EDIY2,0 ·TYR2 .5 DSTY2,0 TYR2,l ZAPIS ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ ;. КОД ДЕСЯТКИ. ;ПРИБАВИМ ЕДИН~ЦЫ ;И ПОЛУЧИМ ДВОИЧНОЕ ЧИСЛО. ;ДОБАВИМ ДЕСЯТЫЕ ;ЧИСЛО 1 ДЛЯ . СРАВНЕНИЯ. PERY2 ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ ;КОД ДЕСЯТКИ. ;ПРИБАВИМ ЕДИНИЦЫ ;И ПОЛУЧИМ ДВОИЧНОЕ ~~ело. ;ДОВАВИМ ДЕСЯТЫЕ . ;~ИСЛО 2 ДЛЯ СРАВНЕНИЯ~ ;======================================== ; 23. ПЕРЕЗАПИСЬ В РЕГИСТРЫ ИНДИКАЦИИ. ;==F===================================== IND12 BCF CALL GOTO FLAGl,O INDl IND2 ;СБРОС MOVFW MOVWF MOVFW MOVWF MOVFW SOTl Rl DESl R2 EDil ;ЗНАК УСТАНОВКИ. ;ИНДИКАЦИЯ ;ВТОРОГО ПЕРВОГО РЯДА.· INDl 166 1. ;ДЕСЯТКИ 1. ;ЕДИНИЦЫ l.' РЯДА.
Два термореrулятора MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MCWLW MOVWF .MOVLW MOVWF RETURN RЗ .252 R4 DSTl R5 .14 ;ЗАПЯТАЯ 1. ;ДЕСЯТЫЕ 1. ;>. Rб .1 R7 .240 R8 ;1. ;ПУСТО . MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF RETURN SOT2 R9 DES2 RlO EDI2 Rll .252 Rl2 DST2 ;ЗН].\К 2. CALL INDl ;ПЕРВЫЙ РЯД. MOVFW MOVWF MOVFW MOVWF MOVFW MOVWF ' MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF RETURN SOTYl R9 DESYl RlO EDIYl Rll .252 R12 DSTYl ;ЗНАК ДЛЯ MOVFW' MOVWF MOVFW MOVWF SOT2 Rl DES2 R2 IND2 ;ДЕСЯТКИ 2. ;ЕДИНИЦЫ 2. ;ЗАПЯТАЯ: ;ДЕСЯ'l'ЫЕ 2. RlЗ .14 R14 .2 Rl5 . 240 ; >. ;2. ;ПУСТО . Rlб ;НА ИНДИКАЦИЮ. INDlY IDYl 1 УСТАНОВКИ. ;ДЕСЯТКИ. ;ЕДИНИЦЫ. ;ЗАПЯТАЯ. ;ДЕСЯТЫЕ. RlЗ .14 Rl4 .73 Rl5 .240 :>." ;У. ;ПУСТО. Rlб ;НА ИНДИКАЦИЮ. IND2Y ;ЗНАК 2. ;ДЕСЯТКИ 2. rl67'
Устройства, измеряющие т~мпературу MOVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF EDI2 ;ЕДИНИЦЫ RЗ i .252 R4 DST2 R5 .14 R6. .2 R7 .240 R8 ;ЗАПЯТАЯ. MOVFW MOVWF MOVFW MOVWF SOTY2 R9 DESY2 ' RlO EDIY2 .Rll .252 R12 DSTY2 ;ЗНАК для ;ДЕСЯТЫЕ 2. 2. ; >. ; 2. ;ПУСТО. IDY2 .мoVFW MOVWF MOVLW MOVWF MOVFW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF RETURN 2 YCTAHOBKJ1. ;ДЕСЯТКИ 2. ;ЕДИНИЦЫ 2 .. ;ЗАПЯТАЯ. ;ДЕСЯТЫЕ 2. RlЗ .14 R14 .73 R15 .240 R16 ; >. ;У. t< ;ПУСТО. ;НА ИНДИКАЦИЮ. INDYl 'B$.F BSF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVWF MOVWF 1 GOTO INDY2 BSF BCF MOVLW MOVWF MOVLW MOVWF 16R FLAGl,O FLAGl,6 .121 Rl .19 R2 .36 ;УСТАНОВКА. ;ПЕРВЫЙ ДАТЧИК. ;У. ; с. ;Т. RЗ .254 R4 .1 RS .240 R6 R7 R8 IDYl ;ТОЧКА. FLAGl,O FLAGl,6 .121 Rl .i9 R2 ;УСТАНОВКА. ; 1. ;ПУСТО. ;СБРОСИМ ;У. ; с. ; ФЛАГ.
Два терморегулятора MOVLW MOVWF .MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVWF MOVWF GOTO ; т. . 36. RЗ .254 R4 .2 R5 .240 R6 R7 R8 IDY2 ;ТОЧКА . ;2. ;ПУСТО. ;=============~=========================== . ; 24. ИНИЦИАЛИЗАЦИЯ DS 2. ;=================================:======= INIDS2 }3SF CALL MOVLW CALL MOVLW CALL GOTO HYL2 CALL MOVLW ADDLW BTFSS GOTO CALL MOVLW ADDLW BTFSS GOTO R,ETURN FLAGl_, 3 HYL20xCC POSIL2 ;ДЛЯ ДОМА. ;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ. ;ПРОПУСК ПОСЫЛА НОМЕРА DS. ;ПOlllЛEM. Ох44 ;РАЗРЕШАЕМ ПРЕОБРАЗОВАНИЕ. POSIL2 PRIEM2 ;ПOlllЛEM. WUX2 .125 ;ВЫХОД -1 ;= 500 мкс. WX02 .125 ;ВЫХОД ЕДИНИЦЫ. -1 ;500 ;НА ПРИЕМ ТЕМПЕРАТУРЫ. НУЛЯ. ;НУЛЕВОЙ ИМПУЛЬС STATUS,2 $-2 ;ИМПУЛЬС = мкс. STATUS,2 $-2 ;=======~======~======================== ; 25. ИЗМЕНЕНИЕ ВХОДА НА ПРИЕМ/ПЕРЕДАЧУ. ;====~================================== WUX2 BCF BSF BCF BCF RETURN PORTA,DS2 STATUS,5 ;ИМПУЛЬС TRISAЛ80H,DS2 ;НА STATUS,5 ;ПЕРЕХОДИМ ЗАПРОСА. ;ПЕРЕХОДИМ в БАНК 1. в БАНК о. ВЫХОД. WX02 . STATUS, 5 BSF BSF BCF RETURN ТRISАлвон, ~ПЕРЕХОДИМ в os2-_ STATUS,5 ;НА БАf К 1 . ВХОД. ;ПЕРЕХОДИМ в БАНК о. ;========~======================~==== ; 26. ПРИЕМ 9 БИТ ИЗ DS ДЛЯ ДОМА. ;==================================== PRIEM2 CALL MOVLW CALL HYL2 ;ПОСЫЛ ОхСС ;ПРОПУСК POSIL2 ;ПОСЫЛ. ИМПУЛЬСА ОБНУЛЕНИЯ. НОМЕРА. 169
Устройства, измеряющие температуру MOVLW CALL CALL BSF CALL BCF BTFSS BCF BTFSC BSF BTFSS GOTO COMF ADDLW MOVWF G.OTO ОхВЕ ;ЧТЕНИЕ POSIL2 PRIE2 ;ПОСЫЛ. F~AG,l ;УСТАНОВИМ ТЕМПЕРАТУРЫ ИЗ БЛОКНОТА. ;НА nРИЕМ. PRI2 . FLAG, 1 . ТЕМР, DS2 FLAG,O TEMP,DS2 FLAG,O FLAG,O ;И 9 БИТ. ПРИМЕМ ЕГО . ;СБРОСИМ ФЛАГ. ;ЕСЛИ ПРИНЯТЫЙ БИТ = ;ТО УСТАНОВИМ ФЛАГ ПЛЮСА. О, ;ИЛИ МИНУСА. ;ПРОПУСТИМ, ЕСЛИ СХЕТ2 ;ПОСЧИТАЕМ. LSB,0 .1 LSB ;ИНВЕРТИРУЕМ СХЕТ2 ;НА MOVLW MOVWF CLRF . 8, COUN LSB ;ЗАПИШЕМ ЧИСЛО CALL CALL MOVLW CALL MOVFW MOVWF BTFSC RETURN BTFSS BCF BTFSC BSF RRF MOVLW 'CALL DECFSZ GOTO RETURN WUX2 WX02 .2 ,;НА ПРИЕМ. Х4 ;8 PORTA ;ПЕРЕПИШЕМ ТЕМР ; ЗНАЧЕНИЕ ПОР.ТА. ;ЕСЛИ ЭТО 9 БИТ, ЗНАК МИНУС. . 1 ;ПРИБАВИМ ;ПОЛУЧИМ ОТРИЦАТЕЛЬНЫЕ ДАННЫЕ. ПЕРЕСЧЕТ. PRIE2 ;ОБНУЛИМ БИТ. РЕГИСТР ПРИЕМА. PRI2 i ;ВЫДАЕМ КОРОТКИЙ НОЛЬ И ЖДЕМ ОТКЛИКА. ;ЗАДЕРЖКА FLAG,l мкс. ;ВЕРНЕМСЯ. TEMP,DS2 STATUS,0 TEMP,DS2 STATUS,O LSB,1 . 15 ;УСТАНОВИМ БИТ ;ИЛИ ПРИЕМА В ЕДИНИЦУ. ;ЗАПИШЕМ ;ПАУЗА В 60 РЕГИСТР. мкс . Х4 COUN,1 PRI2 ;УМЕНЬШИМ СЧЕТЧИК. ;ПОВТОРИМ ПРИЕМ. ;ВЕРНЕМСЯ. ;========================================== ; 27. ПОСЫЛ КОМАНДЫ В DS 2. ;======================:==========7~=~==~== POSIL2 MOVWF MOVLW MOVWF POSI2 RRF BTFSS GOTO GOTO 7os2 DECFSZ GOTO RETURN '170 # ТЕМР ;ПЕРЕПИШЕМ во ВРЕМЕННЫЙ. '. 8 COUN ;ЗАПИШЕМ ЧИСЛО ТЕМР,1 STA_TUS, W02 W12 COUN,1 POSI2 ;ВЫТОЛКНЕМ О БИТ. МЛАДШИЙ ви+. ;~ели он НУЛЕВОЙ, ;ПОШЛЕМ ИМПУЛЬС ;ИЛИ НУЛЯ. ЕДИНИЦЫ. ;УМЕНЬШАЕМ СЧЕТЧИК. ;НА.СЛЕДУЮЩИЙ БИТ. ;ВОЗВРАТ. НОЛЬ.
Устройства, измеряющие температуру RETURN СОР2 PORTA,YPR2 ;ВЫКЛЮЧ~М ВЫХОД. MOVFW SUBWF BTFSS GOTO MOVFW SUBWF SKPNC GOTO BCF RETURN SOTY2 SOT2,0 STATUS,0 ;ЕСЛИ ТЕМПЕРАТУРА ПЛЮСОВАЯ, СОР2 ;ТО ВЫКЛЮЧАЕМ ВЫХОД. BSF RETURN BCF ·RETURN COМIN2 ;А УСТАНОВКА МИНУСОВАЯ, TYR2 LSB,0 ;ЕСЛИ БОЛЬШЕ ИЛИ СОРМ2 ;ТО PORTA,YPR2 ;ВЫКЛЮЧАЕМ PORTA,YPR2 ;ВКЛЮЧАЕМ ВЫХОД. ВКЛЮЧАЕМ РАВНО, ВЫХОД. ВЫХОД. CQPM2 ;==================================== ; 30. ПЕРЕКОДИРОВКА ИЗ 2-ГО В 2 10. ;=============================~====== BIDE ;ПЕРЕКОДИРОВКА ДЕСЯТКОВ CLRF ADDLW BTFSS GOTO MOVWF COUN -.10 STATUS,O $+4 7ОБНУЛЯЕМ ТЕМР ;ИНАЧЕ СЧЕТЧИК. ; ВЫЧТЕМ •1 О • ;ЕСЛИ ;ТО ЕСТЬ ПЕРЕХОД ЧЕРЕЗ НОЛЬ, ЗАВЕРШАЕМ ПЕРЕКОДИРОВКУ. ПЕРЕПИШЕМ НОВОЕ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ. ·INCF . GOTO MOVFW COUN,l ;УВЕЛИЧИМ СЧЕТЧИК. $-5 ;ПОВТОРИМ ВЫЧИТАНИЕ. CCION ;ЗНАЧЕНИЕ СЧЕТЧИКА , ПЕРЕПИШЕМ·В РАБОЧИЙ РЕГИСТР. RETURN ;ВЕРНЕМСЯ. ;================================== ; 31. ВЫБОРКА ИЗ ПАМЯТИ. ;================================== АКТ CLRF CALL MOVWF CALL MOVWF CALL MOVWF CALL MOVWF CALL MOVWF CALL MOVWF CALL MOVWF CALL MOVWF CALL 172 EEADR ;НАЧИНАЕМ С АКТЕТЕ ;ВЫБОРКА из·ПАМЯТИ. SOTYl ;ЗАПИСЬ В РЕГИСТР. ;ЗАПИСЬ В Р~ГИСТР. DESYl ;ВЫБОРКА ИЗ· ПАМЯТИ. АКТЕ ТЕ ' EDIYl ;ЗАПИСЬ В РЕГИСТР. АКТЕ ТЕ ;ВЫБОРКА ИЗ DSTYl ;ЗАПИСЬ АКТЕ ТЕ . SOTY2 АКТЕ ТЕ DESY2 АКТЕ ТЕ EDIY2 АКТЕ ТЕ В . ( В ПАМЯТИ. В.РЕГИСТР. ;ВЫБОРКА ИЗ ;ЗАПИСЬ ПАМЯТИ. РЕГИСТР.· ;ВЫБОРКА.ИЗ ;ЗАПИСЬ ПАМЯТИ. РЕГИСТР. ;ВЫБОРКА ИЗ ;ЗАПИСЬ ПАМЯТИ. РЕГИСТР. ;ВЫБОРКА ИЗ .;ЗАПИСЬ В TYRl АКТЕТЕ НУЛЕВОГО ;ВЫБОРКА ИЗ_ ПАМЯТИ. АКТЕ ТЕ В ПАМЯТИ. РЕГИСТР. ;ВЫБОРКА ИЗ ПАМЯТИ. . (РАВНО ЧИСЛУ ДЕСЯТКОВ) АДРЕСА. -
Два терморегулятора MOVWF CALL MOVWF. RETURN DSTY2 ; ЗАПИСЬ В 'РЕГИСТР. АКТЕ ТЕ ;ВЫБОРКА ИЗ TYR2 ;ЗАПИСЬ В ПАМЯТИ. РЕГИСТР. АКТЕ ТЕ BSF BCF BSF BTFSC GOTO BCF MOVLW SUBWF BTFSC CLRF INCF MOVFW RETURN STATUS,5 EECON+ "80Н, 7 EECONlл80H,RD . ;БАНК 1. ;ВЫБОР ПАМЯТИ ДАННЫХ. ;ЧТЕНИЕ. EECONlл80H,RD ;ЖДЕМ ОКОНЧАНИЯ $-1 . ;ЧТЕНИЯ. STATUS,5 . 255 EEDATA,0 STATUS,2 ~ED~TA . ;БАНК О ;ЕСЛИ ПАМЯТЬ ;ЗАПИШЕМ НЕ ЗАПОЛНЕНА, -О. EEADR, 1 ;+1 ЕЕЩТА ;-ПЕРЕПИШЕМ ДАННЫЕ. В АДРЕС. ;==================~=== ; 32. ЗАПИСЬ В ПАМЯТЬ . . ;====================== ZAPIS CLRF MOVLW MOVWF, ZAPISE MOVFW MOVWF BSF BCF BSF MOVLW MOVWF MOVLW MOVWF BSF BTFSC GOTO BCF BCF INCF MOVFW SUBLW BTFSC RETURN INCF GOTO EEADR SOTYl FSR ;НУЛЕВОЙ АДРЕС. INPF EEDATA STATUS,5 EECONl "80Н, 7 ;РЕГИСТРА. EECONlл80H,WREN ;РАЗРЕШЕНИЕ 55Н ;ОБЯЗАТЕЛЬНАЯ ЕЕСОN2л80Н EECON1"80H,WR ;/ ; / ; / ; РАЗРЕ!МЕ'м EECONlл80H,WR ;ПЬКА НЕ $-1 EECON1"80H,WREN STATUS,5 EEADR,1 EEADR .11 STATUS,2 ;ХОДИМ ;ТО ВЕРНЕМСЯ. FSR,1 ZAPISE ;+1 В ОААН ЕЕСОN2л80Н ;АДРЕС ПЕРВОЙ ЗАПИСИ В EEDATA. ;ЗАГРУЖАЕМ ЗНАЧЕНИЕ ;ЗАПИСЫВАЕМ. ;БАНК 1. ;ВЫБИРАЕМ ПАМЯТЬ ДАННЬlХ. ПОСЛЕДОВАТЕЛЬНОСТЬ 'ЗАПИСЬ ВО ФЛЕШ ПЗУ. БУДЕТ ПО ;ЗАПРЕТ ЗАПИСИ. ЗАКОНЧЕНА· ЗАПИСЬ КРУГУ. ЗАПИСИ.2 ;БАНК О. ;+1 В АДРЕС. ;ЕСЛИ УЖЕ 11, СЧЕТЧИК АДРЕСА. ;ПО КРУГУ ДО КОНЦА ЗАПИСИ. ;======================== END ;~=======================~ 173
Приложение Коды прошивок микроконтроллеров Милливольтметр, файл: millum.hex :020000040000FA :02000000812855 :080008006С2_88207 3F34063426 : 1ООО10005B344F3466346D347D3407347.F346F345 l : 100020001430AFOOA6102CQ824202F202C201230D2 :10003000AFOOA6102 D0824 202C200630AFOOA6 l OFB : 100040002ЕО824202С2010280520A20087002F082D : 100050008500221В85160800А61808002С28813070 : 100060009FOOЗE209Fl 49Fl 833281 E08A00083166F : 10007000213084001 E088000831243280530FF3E93 : 10008000031D3F2808001030А700031 OAl ODAOOD8C : 10009000ABODAAOI>AiOB4D285F282B3084005420FO : 1ОООАООО2А3084005420452803300007 A500~5 l 9F4 : 1ОООВООО800030300007 А500А51 B800008000F302D : 1OOOC0002A05AEOOF0302B05ADOOADOEOF302B052C :1OOODOOOACOOABO lAAO 10800А4000308А8000408В2 : 1ОООЕОООА90003138312А30АО5302302031 D7A28F3 : 1OOOFOOOA614A301280883002908840024080В 11 F2 : 10010000090083168001 FF309F0081308 l ООАОЗОFС : 100110008ВОО8СО l О 1308500S701О130910099012D :100120008ЕО19501960183128701850190010730А8 :ОЕО 130009900А60 lACO lADO IAEO 1А30110289В :02400EOOF43F7D :00000001 FF Цифровой прибор для блока питания с защитой по току и напряжению, файл: aumzuv.hex · :020000040000FA :020000002529 во · :0800Q8000F2982073F34063482 . : 100010005B344F3466346D347D3407347F346F3451 174 1 r
Приложение : 100020001 С3404346Е3402346234003482070034Е9· : 1ОООЗООООАЗ414341 Е34283432343С3446345034В8 : 100040005А34051 ЕО800А611А61Е3028~801А612ВЗ : 1000500005 l l 26155408B6005508CFOOD82 l FF29FO : I0006000380882074B295729642971297F298C294F :10007Q009929A629FEЗOB700A7013808CC00261020 :1000800033085Е206Е2034085Е206Е2035085Е2026 : 100090006Е2036085Е206Е20А61 Е50285008ССО028 . : 1OOOA00030085E206E203J085E206E2032085E200F : 1OOOB0006E204F085E2045226E203A280520A200BF : 1ОООСООО4СО827020319А2178В1322088600370851 : 1OOOD00087008Bl70314B70DA70A08000A30CE005B : ЮООЕ000772026149220261 ОСЕОВ70280800А61 Е lA : 1OOOF0000800831684309FOQ83.l2C9309FOOAD2012 : 100100008В 13 fFl 51Fl98228 lE08A000831621308lt : 1001100084001ЕО8800083128В17511 СВ220А61 F7А : 100 l 20000800CF28A61E080083l684309F0083 l 283 : 1001ЗОООСl309FOOAD208B 131Fl51Fl99D28 l E086D : 10014000АООО8316213084001ЕО8800083128В17С4 : 10015000Dl 1СС520261 F0800CF280530FFЗE031 DF7 : 10016000АЕ28080046082002031DBC2803l04508D D : 1001700021020318ВС28080026i90800031C05l5D5 : 1001,8000031 СО.8000511261508004 В082002031 D5A : 10019000ВС2803104АО821020318ВС2808001030АС :1001AOOOB9000310AlODAOODACODAAODB90BDB28Fl :1001 B0002618ED28FE282C308400E2202A30840006 : 1001COOOE220D12803300007А500А51980003030В7 : 1001 D0000007А500А51 В80000800261 F08000 F309F : 100lE0002A05B200F0302C05B1ООВ1 QEOF302C05FD : 1001 FOOOBOOOACO lMO lABO 126130800А61 F08003D : 100200000F302A05B500F0302C05B400B40EOF30C5 : 1002 i 0002СО5В300АСО lAAO lABO 1A6 l 30SOOA4009 l : 100220000308А8000408А90003 \ 383 l 2A30A0830D6 : 100230002302031D1 Е29А3012617 A6 l 728088300El : 100240002908840024080В 110900031383 I 6073.ОС2 : 1002500081ООАО308ВОО8СОl8DO 1ЗВ308500860130 : 1002600087018312860190019201А601ВОО1В1О1 ВС : 10027000В201В301В401В501D1О106220С30В600СО . : 10028000CFOOD400D5000B30D2000A30D300A30138 : 10029000В801DOO1ЗА28С20АОА3042020318С2014А : 1002A00003l78DO103134230А5003022В829С30А79 : 1002ВООООА3043020318С30103170 l 308D0003 l 3F2 : 1002C0004330A5003022B829C40A0530440203 l 87F · : 1002DOOOC40103 l 702308D00031J4430A5003022FF :1002EOOOB8295118792951140D30D2000FЗOD4009B : 1002FOOOB3295 l l OOB30D2000C30D400B329C70AF7 : 1ООЗОООООА3047020318С701031705308DОООЗ 1395 175
Прнло~ение : 100310004730A5003022DF29C80AOA30480203 l.8F6 : 10032000С801031706308D0003 l 34830A5003022A2 :10033000DF29C90A053049020318C901031707302C, : 100340008D0003 l 34930A5003022DF29D l l 8AE29D2 : 10035000D l l 40E30D3000F30D500B329D 11 OOJ\309C : 10036000D3000C30D5005408~6005508CF00080063 : 10037000С601CSO143081620С5074208С507С408С1 · : 100380000319СА294408А5006430С5070318С60А22 : 10039000A50BC42903 l 703308D0003134530A500B6 :1003A0003022031704308D0003 l 34630A50030229D : 1003ВООО4208ВЗОО4308В4004408В5000800СВО 16С :1003COOOCA0148081620CA074708CA07C9080319FE : 1OOЗDOOOFl294908А5006430САО70318СВОАА50ВО8. : 1003EOOOEB29031708308D0003 l 34A30A500302293 :1003F000031709308D0003 l 34B30A5003022470846 : 10040000ВООО480.8В 1004908В20008008В 13031778 : 100410008DO 103132122С2002122С3002122С40026 : 100420002122С5002122С6002122С7002.122С800А6 :1004,30002122C9002122CA002122CB008.BJ 7D82 l FA : 10044000FF2903 l 783I68C130С 140С 18252А83120А :10045000FF300C0203 I 98CO l 8DOAOC0803 l 30800ED : 1004600025088400000803178СОО8В 1383168С 1357 :100470000Cl555308DOOM308D008Cl48Cl83E2A36 . : 100480000С 1.1831203138В l 7080083 l 687309FOOOB : 100490008312А619212805 i ЕА615261А522А851 Е82 : 1004АОО026160800А61А0800851 ЕО8002612В80А9В : I 004B000083038020319622AA6 l 25408B6005508FB : 1004COOOCF000800A616051526 l l 0230В800053029 · :OC04DOOOp0005208B6005308CF0008000E :02400E003 l 3F40 :00000001 FF ~ Автомат защиты от перепадов сетевого напрЯжения, · файл: fazaOma'x.hex ' · :020000040000FA :02000000E329F2 :080008008В 18262АОС 18692А46 : 1ООО1ОООА829410824204007A50042082F2003 lOEA : 10002000А5070318А617 4308820708000800080060 :100030000800080008000800080008000800080080 : 100040000800080018293529820700340А341434 ВЕ : 100050001 Е34283432343С34463450345А34820707 : 1000600000346434C83443088207080008000800DC : 100070000800080008000·8000800080008004928D7 :100080004428462854285B282Dl40800AD142Dl050 : 1000900008002D 1OAD102D l IAD l l 2C08COO.D2A08'3C 176
Приложение :"! ОООАОООС 1Q02B08C20008003808C0003908C10090 : 1ОООВООО3АО8С20008003408СООО3508С1003608FC : 1ОООСОООС20.008004008В8004108В9004208ВАОО60 :1000D00003178D01373076284008B4004108B50079 : 1ОООЕООО4208В600031710308D003330840000083A :lOOOF0008C0083168Cl30Cl58BiJ55308DOOAA3091 . .:HI0100008D008Cl48Cl8822883128DOAOD198A2870 : 10011000840А772803138В l 7080082073F340634BC :100120005B344F3466346D347D3407347F346F3440 ·:1001300000344g34493440344634FD3ocsooд1010A : 100140002D 1A44214008B620CA202D 1A442-l 410806 :10015000B620CA202D 1A44214208B620CA202D 1АЕ2 :1001600044214308B6200922CA209D288D20C400BE : 10017000А61 D ВЕ284608270203 .192615261DCl28DC :10018000C417440887004508860026110314C50DCE . :10019000A70A0800A610900.IA61808002DlBD6215A : 1001A00026 l 8D62 l СС28861 ЕО8002612460882076В : 1001 BOOOD D28E328E928EF28FB28COOAOA3040029E : 1001С0000318СОО 10928C10AOA30410203 l8Cl 01 FD : 100 i D0000928C20A0330420203 l 8C2010928СЗОАСЕ :1001EOOOOF30430203l8F8280D30430203 l 8332858 :1001FOOOOD30C3003328C30AOD304302031C3328DB : 100200000А30С3003328061F0800A6l2C603FF30B9 :100210004602031DOF290430C600A6.ll0029033031 : 10022000460203191521А61533280DЗОС300080016. : 1002ЗОООА61В1F292508В700643СОЗ1С2729013091 : 10024000С200С 1О1СОО16430В700А613622837089С :10025000DB3C03 l Cl F2962280530ClOOC0000230AE :10026000C200FF30B300A6 l 36C28A61 В2С2925085А : 10027000B300DD3C031С6С280230С1 ООС200СООО8А : 10028000D Е30В300А6136С28А61 C080001309F0006 : 100290002Dl2902 l l Fl5 l Fl94B29 l ЕО8АОООАО1810 :1002АООО84298316213084001ЕО8800083120310Е5 : 1002ВОООАООСА1ОС3308210203187Е293708210263 :1002СОООО31C84290Sl2AD l 32D 13851SCFO12108В8 : 1002DOOOA5009521AB009E21AA002508ACOOA50130 :1002EOOOOD30430203 l 808002D l C79292D 194В28С5 :l002F0000800AD1C4B28AD194B280800A61967292A :10030000051685l12Dl76729A6196729CFOA3230DE :100310004F02031D8F29051685112Dl 7CF0167295F :100320000530FFЗE031D91290800CA019C3E031CB5 : 100330009С29А500САОА96294АО80800САО 125086Е :1003AOOOF63E031CA629A500CAOAA0294A080800EF : 10()35000А4000308А8000408А90003138312А30А39 :1003600005302302031DCF29A6l4A30l2D1 СС62985 : 10037000АЕОА64302ЕО2031 DCF2926lCC3292D1 D7 l :10038000C3292D 11C4292D15АЕО 1CF29AD1 CCF29AC 177
Приложение .· : 10039000АЕОАС8302ЕО2031CCF29AD15АЕО 12808С5 : 1003АООО83002908840024080В 110900870126 f 402 : 100_3BOOO~D 1В8Е22261C 08002D1 ЕЕ029А618442184 . : 1003СОООА6100922D82903 l 383 _l 68E309F004 l 30CE : 1003D0008 l OOF0308BOOO l 308C008D01Ol308500FO :1003ЕОООЕ130860087018312860185019001920128 · :1003 FOOOA60lADO1СОО1С1О1С201С3010430С600А4 :10040000AD 140СЗОС300АЕО 1А301DOO1D1О1CFO166 :100410003E2A261AD32886 l Е2616А61АО329061 F48 : 10042000А616261В162А861F26l7080086 l F0800F8 :10043000261326181D2A26l4080026 l 02D,1 F080032 : 1004400085 l 52D l 3AD 13261ООВl60800CD000308D В : 10045000CB000408CC00261A362A031383l22D166В :10046000193081ООА301А6108ЕО l 8FO 14 ВО8830073 . :100470004СО884004D088.B1ООВ11090003l78DO1 Е7 : 1004800037304С2210308D0033304C2203 l 305 l 2CC : 10049000851526105B209D28840083 l 68C IЗОС 1470 : 1004A00083 l 20D l 8552A8D1C5D2AFF300C0203l98A. ·: 1004B00064220D l 864228D l 864220C0880008DOAB5 : 1004СОООО D 190800840А4 D2AOA300C0203l88CO109 ·: 1004D0000800CD000308CB000408CC0076224 ВО8АЕ . :1004E00083Q04C0884004D080C 10090005 l 6DOOB4 l :1004F0000800D001AD1B822A8515AD172Dl 32610DB : 100500000В l 60800D 10А05305102031D080085l59D : 1005lOOOD1Оl2D 13АН13261ООВ1608000В 1231302С : 100520009000AD 102D l 42D 1F0800A6l02D 1D85ll53 :OE0530002D 1985150922261СО8008В10932А10 . :02400E00313F40 :00000001 FF 1 Устройство защиты от перепадов сетевого напряжения, · файл·: fazaO.hex :02000004QOOOFA :02000000D52900 :08000800A42903l78DO1373014 : 1ООО1ООО102010308D003330_1020031З7F2ОС128В2 . ;10002000840083.168Ci 30Cl483120D1819288.D 1С50 :100030002 l 28FF300C02031928200D l 828208D 18СФ : 1000400028200C0880008DOAOD l 90800840Al 12848 : 100050000АЗООС0203188СО 10800410848204007ВО : 10006000А50042085320031 ОА5070318А61743084С : 1000700082070800080008000800080008000800BF :100080000800080008000800080008003529522967 :10009000820700340А3414341 Е34283432343С3499 : 1ОООАООО463450345А34820700346434С834430828 :1000B000820708000800080008000800080008007F . 178
Приложение : 1OOOC00008Q0080008006D2868286A2878287F281A :1OOOD0002Dl40800AD l 42D 1008002D 1OADl02D 1199 : 1OOOEOOOADll2C08C0002AQ8CI 002ВО8С20008006Е · : 1OOOF0003808C0003908C1003А08С2000800~408В6 : 1001ООООСООО3508С1003608С20008004008В80029 : 100110004108B9004208BA0.003l78DO137309А2808 .:'100120004008В4004108В5004208В600031710307В . : 100 l 30008D003330840000088COOi3l68C130С 155Е : 100140008В l 35530~DOOAA308D008C 148С 18А62886 : 100 l 500083l28DOAOD19АЕ28840А9В2803138В,176Е : 100 I 600008008207ЗF3406345B344F3466346D3404 : 100 l 7(I007D340734 7F346F3400344834493440349C : 100 l 8000463426 l 8CB29FE30C500A701А61040082А : 100 l 9000D9206 l 2 l ED20A6 l 04108D920ED20A61О1 С : 1001A0.004208D920ED20A6 l 04308D920F821 ED20D F : 1001 BOOOCI28Bl20C400A61 DE12846082702031962 : 1001 СОО02615261DЕ428С417440~87004508860024 : 1QO1D00026ll03 l 4C50DA70A0800A6180800ED286B : 1001 ЕОООО61E080026l246088207FА28002906295А : 1001FOOOOC29l829COOAOA3040020318COO l 2D28 l 2 : 10020000С 1ОАОА3041020318С 1Оl2D28C20A033075 : 10021о'ОО42020318С20l2D28C30AOF30430.203 l 8FB : 10022000 l 5290D304,302031857280DЗOC3005728F5 : 10023000C30AOD304302031 С57280А30С300572855 : 10024000861E0800A6l2C603FF304602031 D2C2995 : 100250000430С600А6111 D290330460203193221 BD : 10026000A61557280D30C3000800A6 l B3C292508F9 : 10027ОООВ700643СОЗ 1С44290130С200С 1О1СОО125 :100280006430B700A6 l 386283708D В3СО31 С3С29Е2 : 10029ooos6280530c1 оосоооо23ос200FF3овзоо24 :-1002АОООА6139028А61 B49292508B300DD3C03 l С92 :1002B00090280230CIOOC200COOODE30BЗOOA61397. : 1002СОО09028С I 3d9F008Ci 12008A5009 l 2 IABOOOF : 1002D0009A2IAA002508ACOOA501OD30430203l89D : 1002E0007B292D 1C76292D1 D7B297A29AD1 С7 А2985 : 1002FOOOADI D7B296F201 Fl5 l Fl97C291E08A0002A : 100300003308200203188А2937082002031 C8A298F : 100310000512080005160800 l 930FF3E03 l D8D293F : 100320000800САО 19С3ЕО31 С9829А500САОА92290С :100330004A080800CA012508F63E031CA229A500A8 : 10034000САОА9С294А080800А4000308А800040857 : 10035000А90003138312А30АО5302302031 DC42935 : 10036000А614А30IAEOA2D1 СВС2964302ЕО2031 D65 : 10037000C4292D 15АЕО 1C429AD1 CC329C8302E02D5 : 10038000031CC429AD15АЕО 1280883002908840088 :1003900024080Bl 109008701261 СС128А610612121 :1ООЗАОООЕD20А61 OF82 l ED20CB2903 l 383 l 602308F 179
Приложение :1003B0009F0001308100A0308B008C018D010B303B :1003C0008500F03086000F308701E312S601051604 : 1003D00090019201А60lADO1СОО1С1О1С201С3019А : 1003ЕОООО330С600А6150Е30С300АЕО 1А3010528D8 : 1003F000261AF02806 l Е2616А61А2029861 EA61_6DC : 10040000261 ВО52АО61F26l7080006 l F080026 J3АС :ОСО4100026180С2А2614080026100800ЕС :02400E00313F40 :00000001 FF · Устройст.во . защиты ·без индикации, файл: faza.hex :020000040000FА :020000000528D 1 :0800080000008 3 l 6FF309F0089 : 1ООО1000403081008ВО 18СО l 3F30850087019901 СО :100020008Е019~01960101309100831287019001А4 : 1000300007309900F030A200B430A3008 l 309F0057 :100040003D209Fl49Fl822281E08AOOOA0183B28BE : 100050РО8316213084001 ЕО880008312031 ОАООС38 : 10006000Al ОС2208210203 l 83B2823082 l 02031 САВ : 100070003В2807141Е28071О1E28l930FF3E03 l DB9 :040080003Е28080.ООЕ . :02400EOOFD3F74 :00000001 FF Устройство защиты трехфазных двигателей, файл:, tЗfaza.hex :020000040000FA :020000000528]{) 1 :08000800D42883 l 6003090009B : 1ООО1OOOFF309F00873081ООАО308ВОО8СО13 FЗОВ3 . :100020008506103087009?0i8EOi950196010730F7 ~10003000910083128701900107309900А701А80160 : 10004000А60 lACO lAOO lАЁО lAFO 1ВОО1В1О1В50136 : 100050008715А71Е29288Вl38 l 309F006F209Fl 4ВЕ : 100060009F 1830281ЕО8АОООАОl8D 1208316213028 : 1000700084001 ЕО880008312031 OAOOCAl OCAl 08АС : 100080000319Dl2085309F006F209Fl49Fl84628A8 : 100090001 ЕО8А200А21KDI208316233084001 ЕО857 : 1ОООАООО80008312031OA20CA30CA30803l9D 12013 :1000B00089309F006F209Fl49Fl85C281E08A400Al : 1OOOCOOOA4l8D 1'208316253084001E08800083l2D6 : 1OOOD00003 l OA40CA50CA50803l9D1207 478 l 9300D :1OOOEOOOFF3E03 l D7028080027 l BEE28DC302 l 028С :1000FOOOC720A71C8128A7100714ACOB8328Dl2088 : 100100008328ACOI0710DC302302C720A71C8E28EF 180
Приложение , :10011000A7108714ADOB9028Dl209028AD0187102F :10012000DC302502C720A71C9B28A7100715AEOBA3 : 100 l 30009D28D l 209D28AEO 10711271 BEE282308FA : 100140002102С720А71САА28А7100714AFOBAC28BO : 100l5000D120АC28AFO 1071025082302С720А71С17 :10016000B{28A7108714BOOBB928Dl20B928BOOIЗF :HI017000871021082502C720A71CC428A71007152F :10018000BIOBCD28Dl20CD28Bl010711CD28El3EFA :100190003D3E03180800A714080027 l ВЕЕ2887150А : 1001АОООЕЕ28871127 f70800AB000308A9000408FO :1001 ВОООААОО8312А80А1Е302802031DE72SA801 FE : 1001 COOOA60Al Е302602031DЕ728А716А601290845 . :1001D00083002A0884002B080Bl 10900F420CC307E : 1001ЕОО02А2144302А210829FF207D30FFЗ ЕО31 DAB :1001FOOOF62.804217D30FF3E03 l DFB28080007126E : 100200008,31607128312080083160716831208004С · :10021000F420CC302A21ВE302A210F213E2908307B : 10022000В300В201FF20042l000000000000000024 ·: 10023000000000000708В400341ЕО310341АО31431 :10024000B20Cl4302621В30Bl2290800FF3E031D07 . : 100250Ьо26290800В40008ЗОВ300В40СО31 С34296С :100260003929B30B2D290800FF2014302621042141 : 100270003129FF200421l430262 I 31292718432950 : 10028000В50В2С282714031ОВ20С283032020318А7 .:OC0290004A292C28871127 l 787 l 62C28D4 ·:02400EOOF53F7C :00000001 FF Термометр....;. часы,_ файл: teho.hex :020000040000FA :020000000528D 1 :08000800092А8316073081006С :1000100020308B001F308500003086008312810164 : 10002000А00lACO1850.18601А401А501А6019601 ЕС : 10003000970194019501930 lAAO lABO 1033044207В .: 100040006С:ЮО33044206С20033044206С2010309Е · : 1000500044206С20063044206С20013044206С2069 : 10006000283044206С20283044206С2ООС30442060 : 100070006С200В l l 922819309900FF30FF3E031 DBO :100080003E28990B3D2808009800F03986006C2026 : 100090003 В20 l 808 l 80EF03986006C203 В20080021 : 1ОООАООО851D080020122А088207Е729АЕ29Е929СО :1000BOOOD729851C08002ClC0800A0112B088207DA : 1OOOCOOOi2297C298C299629A029820700340A34B8 :1000D00014341E342834323486150000861108008A : 1OOOE0009800F03986006C207А20 l 808 l 80EF03934 1.81 -
Приложение :,1000F00086006C20FF30FF3E03 l D7B2808000A307D :10010000FF3E031D802808009800F039303E86002D :1001100006 l 56C207F20 l 808180EF039860006 l 589 : 100l20006C207F282C1С9628201FB12802307020ВС :100130008030702008309A0030308400000884201D :100140009A030319A528840A9E28C03070200830l"D :100150009A00840A000884209A03031DA92820130A : 10016000ВЕ280Е307020В72070202017ВЕ282ВО824 :100170008207C034Cl34C334C434C734AC18662ACF ~ : 10018000АС 11 С720СС30072144300721DB28D22016 :100190007D30FF3E031DC928D.7207D30FF3E031D63 :1001АОООСЕ28080005128316051283120800831654 : 1001BOOOOS1683120800С720СС300721 В Е30072166 :1001COOOEE20A014Fl20AO10181 Е2010181А2014ЕО : 1001D000201С1 В291 ВО9013Е9ВО01 В2908309АОО8В : 1001ЕООО9ВО1D220D7200230032105089800АО 18D7 / : 1001F0000800181ЕО31О181АОЗ 149ВОСОF3003215В :100200009AOBF1280800FF3E031 D032908009800FF : 1002100008309АОО980С031 С l 12916299AOBOA29F8 :100220000800D2200 FЗ-00321 D7200 Е29 D220D7205A :100230000F3003210E29FB309E00201C2129FD30A8 : 1аО240009ЕООО3109ВОСО31 С282905309С002929С3 : 100250009СО 11ВО89800А5219100180890002С 1D Fб : 100260004529АС 1D3C29lЕО8СОО_О1108С~ОО 100819 : 10027000С 1001 СО8С30045291ЕО8С4001108C6009F. : 100280001008С5001 СО8С700662А4 D2lОВ118В 17ЕА :10029000201D48298Bl320119228A0195920851C54 : 1002АОООА015А01А6421051DAO16851D2016201 Е6С : 1002ВООО5028851D50282012ААОАО4302АО2031 D46 : 1002СООО5028ААО 12С 1050282С 1СО800051 D0800DD :1002DOOOAO 1ЕО800АО12АВОАО5302ВО2031 СО80068 : 1002ЕОООАВО 10800970АО330170203189701 f 7089В : 1002F00065201607А6000800960АОА3016020318Al : 100300009601170865201607А600Е83ЕО31 СО800А2 : 10031ОООА601960197010800950АО630150203 l 8F8 :100320009501150865201407A5000800940AOA30F5:10033000140203189401150865201407A50008008D . :10034000A50194019501A40108009D01 F63E03 lC3E : 10035000AC2998009DOAA6291D0808002C1ОАС1491 : 100360001ЕО8ВООО1108В 1001008В200FСЗОВЗОО44 :100370001C08B400AC1CC129F030B500B600B700Bl · . : 10038000C6294930B500F030B600B7001708В800ЕС : 10039000l60,8B900FD30BAOO1508ВВОО l 408BCOQEF . : 1003AOOOFD30BDOO 1308ВЕОО 1208BF0008002C 116С :I.003B0002Cl47B30B0001130Bl001330B2007E300D : 1ОQЗСОООВЗООFОЗОВ400В500В600В700С629АС1 OD9 :1003рооово29лс102с1544оsвооо460&в1004508FF 182 ' 1 •
Приложение ,· : 1003EOOOB200FCЗOB3004708B4004930B500F0302B : 1003FOOOB600B7004008B8004208B90041 OSBA008A : 10040000FCЗOBB004308BCOOF030BDOOBEOOBFOOA4 ~100410000800Al 000308А2000408А3002322220868 :100420008300230884000630810021080В11090095 :100430000A300314A702031ClF2AA90Al92A270835 i 100440000А3ЕА800080020l59FOA1F08F83E031 D59 . : 1004500008009FO lAO 1В2Е2ААО170800АО 13240843 ·:10046000С53ЕО3193Е2АА40А2408А700182228081А : 10047000920029089300А90lf\8010800А40J920193 :1004800093012508C53E03.19502AA50A2508A7008F · : 1004900018222808940029Ь89500А901А80108003D : 1004АОООА501940195012608 Е93ЕО319622М60АСЕ : 1004ВООО2608;А70018222808960029089700А901 F5 : 1004СОООА8010800А601960197010800АС 156D224D : 1004DOOOCC30A9224430A922812A78227D30FF3EE7 :1004E000031D6F2A7D227D30FF3E031D742A080004 :1004F0000510831605108312080083160514831255 :tОО5000008006D22ССЗОА922ВЕ30А9229422АО 146А --: 10QЯООО9722АО 10181С201018182014201С1 В292А : 100520001ВО9013Е9ВОО 1В2908309АО09ВО1782281 : 1005 30007D22023003 2105089800АО 180800181 C2D : 100540000310181803149BOCOF3003219AOB972AE1 : 100550000800980008309АОО980СО31 СВ32АВ82АА7 :·100560009AOBAC2A080078220F30032 l 7D22B02A92 :OA05700078227D220F30032 l ВО2АОВ :02400EOOF13F80 :00000001 FF Градусник, файл: gradik.hex :020000040000 FА :100000000528000000000000000083160030810079 :1000100000308B000130850001308p009F01831283 : 100020009001920107309F008lО1ВАО1850186018С : 10003000А401А801А90lAAO10330АВООО3304320АС :1000400060200330432060200330432060201030С4 :100050004320602006304320602001304320602090 :100060002830432060202830432060200С3043207В : 100070006020862819 30A200FF30 FF3ЕОЗ1D3 D287 6 : 10008000A20B3C280800Al OOF039860060203A202D : 10009000210821 OEF039860060203A2008008207EE :1000АООООО3401340134023403340334043404349Е :1000ВОООО534063406340734073408340934093467 : 1ОООСООО8615000086110800Al OOF0398600602026 :.1000D0006E202108210EF03986006020FF30FF3E9F :1000E000031D~F2808000A30FFЗE031D7428080016 183
Приложение :1000FOOOA100F039303E86000615602073202108EB : 10010000210EF03986000615602073280230642025 :10011000803064200830А30030308400000878204С : 10012000А30303199528840А8Е28СО306420023066 : 10013000А300840АООО87820АЗОВ9928С520СС309Е :10014000F6204E30F6207D30F6207730F6207F30D6 : 100 l 5000F620C520CC30F6204430F6203Al805169B : 100 l 60000330AЗOOFFЗOA200FF30000000000000B9 : 10017000000000000000FFЗE03 l DBB28A20BB428B6 :10018000AЗOBB2283Al80512D928D0207D30FFЗEAЗ : 10019000031DC728D5207D30FF3E031DCC28080055 :1001AD0005108316051083120800831605148312A8 :1001 B0000800C520CC30F620BE30.F620E32025080C : 1001СОООА400Е3200А290830А300А501 D020D520EF : 1001D0000230462l0508А100211 СО3102118031438 :1001ЕОООА50СОС304621АЗОВЕ6280800А10008301Е : 1001 FOOOA300Al ОСОЗ 1C00290529A30BF928080062 : 10020000D0200F30462 l D520FD28D020D5200F30 lA : 100210004621 FD282B lAl 1292В08А4070318А50А2В :1002200016292Bl22B08A402031CA50324080F393E . :100230004F20А80004ЗОАЗООО310А50СА40САЗОВАЕ : 100240001C292530240203182729051628293Al4С9 : 100250002А082402031СЗ629031 D322929082802F2 : 10026000031С36292408АА002808А9002АО8А1008Е :100270003D21A7002108A6004A29A301F63E031C40 : 100280004429Al ООАЗОАЗЕ2923080800FFЗЕОЗ 1DBC :1002900Q4629080_0BA194F29061CBA155829061C08 : 1002АООО5829А601Л701А801А901АА013А10ВА116В : 1002ВОООFОЗОВОООВ 1ООFВЗЬВ2002708ВЗОО2608DО : 1002COOOB400FC30B5002908B600FOЗOB.700B80023 :0402DOOOB9008628.C3 :02400E00113F60 :00000001 FF , Два терморегулятора, файл: 2ter.hex :020000040000 FA :1000000005280000000000000°0008 31600 30810079 :1000100000308В0019308500033086008312810187 : 10002000С801С9018501860lАЗО1А40106309ЕОО 13 : 10003000D72203303 E206D2003303E206D20033058 : 100040003E206D2010303E206D2006303E206D2079 : 100050000 l 303E206D2028303E206D2028303E208B : 100060006D200СЗОЗ E206D209328 l 9309BOOFF300E :10007000FFЗE0_31D38289BOB372808009AOOF039FЗ : 1OOG800086006D2035201A081AOEFOЗ986006D2082 :1000900035200800851 D0800481223088207CB2957 184
Приложение : 1ООО АООО F029022A232A342A06 l СО800491 СО800С9 : 1ОООВОООС8112408820775298В299929А729820745 : 1ОООСООООО340А3414341 Е34283.432343С34463478 : 1OOOD00050345A3464346E34783486150000861 l Fб : 1OOOE00008009AOOF03986006D207B201A081AOE4D : 1OOOFOOOf039-86006D20FFЗOFFЗE03 l D7C2808008C ~ 100100000A30FFЗE03 l D812808009AOOF039303E76" . :10011000860006156D2080201A081AOEF039860018 : 100 l 200006 l 56D20802849 l С9728481 FB2280230E8 : 100130007'12080307 I 2008309C003030840000082D : 100 l 400085209C030319A62884PA9F28C0307 l 20AB : 1001500008309СОО840АООО885209СО3031 DAA28FF : 100160004813BE280E307120B82071204817BE28Dl : 100170002408,8207СО34С 134С234С434С420СС3013 :10018000042144300421D828CF207D30FFЗE031DB8 :10019000C628D4207D30FF3E031DCB280800051261 : 1001А000831605128312080083 I16051683l20800B1 : 1001 ВОООС420СС300421 ВЕ300421 ЕВ20С814 ЕЕ2032 : 1001 СОООС81 О lAl Е481О1А1А4814481С18291 D096C :1001D000013E9D00182908309C009D01CF20D420AD :1001ЕОООО230002105089АООС~180·8001Al E03 l_OE2 :1001F0001AlA03149DOCOFЗdOO~l9COBEE280800E6 : 10020000 FF3 ЕО31 D00290~009A0008309C009AOC4C _ :10021000031COE29l3299COB07290800CF200F303F : 100220000021 D4200B29CF20D4200FЗOQ02 l ОВ290Е : 10023000FB30C40048lС1E29FDЗOC400342l031 ОСВ : 100240009DOC03lС26290530С7002729С7011 D085E : 1002·so009AOOCE22C6001АО8С500452А9ЕОВВЕ2869 : 1002600006309E0050219328FB301002031 D4429C4 : 1002700044081002031 С4 Е2914081D0203l84229C9 :10028000851408008510080010084402031С422948 :1002900014081D0203184E29851008008514080053 : 1002АОООС8195.420061 СС815С81А6721861 СС8161 О : 1002ВООО851D48l648 l Е4А28851D4A2848l2A30A4 В : 1002СОООО5302302031D4А28АЗО149104А28491 С6Е : 1002D000080086 l СО800С81 ЕО800С812А40АО430С2 : 1002ЕООО2402031СО800А4010800491F8l29FB30D7 : 1002FOOO 1002031 D7E29FD3090000800FB309000A5 :1003Q0000800FB301502031 D8829FD309500080008 ' : 10031000FB3095000800491F9329910AOD30110206 : 1003200003189101 BB29960AOD3016020318960·195 : 10033000С329491FA129920АОАЗО 12020318920107 : 10034000В В29970АОА30170203189701 С329491 FCE : 10035000В22905301-302031DAF29930108000530AF : 100360009300ВВ2905301802031DB8299801 С32941 · :1003700005309800C32911085F201207940005304A :100380001302940DFA2Al6085F201707990Q05300A 185
Приложение . ' :100390001802990DFA2A4910CE21DF294408B0002D : 1003АООО4608В 1004.508B200FC30B3004708B4006D : 1003ВООООЕ30В50001 ЗОВ6ООFО3ОВ70008004008~С : 1003СОООВ8004208В9004108BAOOFC30BB0043083D : 1003DOOOBCOOOE30BD000230BEOOF030BF0008008F :1003EOOOCE21 l.008B8001108B9001208BAOOFC307C : 1ООЗFОООВВООl308BCOOOE30BD004930BEOOF03019 : 10040000 В F0008004008B0004208В1004108 В 200 37 : 10041 ООО FСЗО В3004308 В4000 Е30 В5000230 В60023 : 10042000F030B7001508В8001608В9001708ВАОО70 : 10043000FСЗОВВОО l 808BCOOOE30BD004930BEOOC7 : 10044000F030BF000800491449177930BOOO 13306С : 10045000В 1002430В200FЕЗОВ3000130B400F0.30FF :·10046000B500B600B700Fl 2949 l 449 l 3J930B0003E : 100470001330В 1002430B200FE30B3000230B400BB : 1_0048000 F030 В500 В600В700122АС9154С22ССЗОА6 : 10049000882244308822602A57227DЗOFF3E03 l D87 : 1004A0004E2A5C227D30FF3E03 l D532A08000510B2 ·: 1004ВООО831605108~ 1208008316051483120800А2 : 1004СООО4С22СС308822ВЕ3088227322С814 762277 : 1004DOOOCB 1OlAl С481ОlAl84814481 C9C2Al D09D8 : 1004E000013E9D009C2A08309C009D0157225C2201 : 1004F0000230002 l 05089АООС8180800 lAI tоз 1OD1 : 10050000 lAl 803149DOCOF3000219COB762A08004A : 100510009А000830.9СОО9АОСО31 C922A972A9CUB84 :·100520008B2A080057220F30002 l 5C228F2A572285 : 100530005C220F3000218F2AFBЗOC00048 l CA22AQ9 : 10054000FDЗOCOOOB22203 l 09DЬсоз·1 САА2АО53ОО6 : 10055000С300АВ2АС3011 D08;JAOOCE22C200 IA08AC : 10056000С 1002E29FB301.502031DC22A4008l502C6 : 10057000031ССС2А19081 D020318C02A05150800 FF : 100580000511080.01508400203.1CC02Al9081 D02A5 : 100590000318СС2А05110800051508009СО l F63 Е39 . : 1005АОО0031 CD52A9A009COACF2Al СО808008901 ЗЕ : 1005BOOOED229000ED229 l OOED229200ED229300B9 : 1005COOOED229400ED229500ED229600ED22970099 : 1005DOOOED229800ED229900080083 I 6881308 l 47 4 . : 1005E0000818F02A83l2FF30080203198801890АСВ · :.1005F000080808008901103084000008880083166С :НЮ6000088130811555308900АА308900881~881885 : 10061000072ВО8118312890А09080В3СО3190800ЕВ :04062000840AFD2A2 l :02400EOOFI 3F80 :00000001 FF 186
Литература 1. 3аец Н. И. Милливольтметр// Радiоам(Jтор. 2005. № 1. С. 23-25. 2. Сидорович О. Электронный предохранитель// Радио. 2003. № 12.-С. 40. 3. Нечаев И. Электронный предохранитель// Радио. 2004. № 3. С. 37. 4. Винограда.в· Ю. Стабилизатор питания· для портативной радиостанции // Радио. 2002. -№ 11. С. 66. . 5. Коломоец Е. Лабораторный блок питания с комплексной защитой // Радио. 200( № 7. С. 36-38. 6. Бастанов В. Г. 300 практических советов. М.: Московский рабочий. 1993. с. 35. ' 7.· Мощные полевые переключательные транзисторы фирмы International Rectifier // Радио. 2001. № 5. С. 4~. 8. Заец Н. И. Цифровое устройство защиты с -функцией измерения // Радио. 2005. № 1. С. 32-34. 9. Нечаев И. Автомат защиты Gетевой аппаратуры от «скачков» напряжения// Радио. 1996. № 10. С. 48. · 10. Нечаев И. Устройство защиты радиоаппаратуры от превышения сетевого напряже·ния //Радио. 1997. № 6. С. 44. · 11. Зеленин А. Полуавтомат защиты радиоаппаратуры от «перепадов» на­ пряжения сети// Радио. 1998. № 10. С. 73. 12. Квятковский В. Устройство защиты радиоаппаратуры от превышения сетевого напряжения// Радио. 1999. № 10. С. 39. 13: Нечаев И. Устройство защиты аппаратуры от колебаний напряжения сети // Радио. 2001. № 1. С. 33. 14. ,Шрайбер А. Устройство защиты от перепадов напря:Жения электросети// Радио. 2001. № 2. С. 46, 47. . '15 .. Коротков И. Устройство защиты бытовых приборов от аномальных на­ пряжений в сети// Радио. 2001. № 8. С. 39. 16. Аксенов В. Экономичное устройство защиты аппаратуры от колебаний напряжения сети // Радио. ·2063. № 7; С. 25. 17. Заец Н. И. Автомат защиты от перепадов сетевого напряженИя на мик­ роконrроллере //Схемотехника. 2004. № 8. С: 46-48. № .9:.с. 46. 18. Ховайко О. Источники питания с конденса;горным делителем напря­ жения// Радио. 1997. № 11. С. 56. 19. Бирюков С. Устройства на микросхемах. - М.: С~лон-Р. 2000. С. 162 . .20.. Заец Н. И. Радиолюбительские конструкции на РIС-микроконтролле­ рах. ,~ М.: СОЛОН-Пресс. 2003. 21'. 2002. С~марин А. В. Жидкокристаллические дисплеи. М.: СОЛОН-Р. с.-55~67. 187
Литература 22. Предка М. Сnравочник по РIС-микроконтроллерам. - М.: ДМК 2002. 23. Заец Н. И. _Электронные самоделки для быта, отдыха и здоровья. М.: СОЛОН-Прес.с. 2004. . 24. Заец Н. И. Двухканальный терморегулятор на микроконтроллере PIC16F84A //Схемотехника. 2004. No 10. С. 42.25. Заец Н. И. Медицинский термометр // Сх~мотехника. 2004. № 11. с. 45 . . 26. Заец Н. И. Устройство защиты трехфазных двигателей// Современная электроника. 2004. № 2. С. 54-57. ·21. Коряков С. Термометр с функцией таймера или управления термоста­ том // Радио. 2003. № 1О. С. 26-28. Щэесс. Додэка-ХХI.
Содержание к читателям .......................................·.................... 3 Устройства с ~спользованием АЦП ....... ~ ................... 5 МИJiливольтметр ....•....................................................•.......•.....•..•••.....•............ 5 Цифровой прибор ДЛЯ блока ПИТаНИЯ С устаНОВКОЙ ЗаЩИТЫ •••••••••··~··••••••••••••••t• 15 , Автомат защить1 от перепадов сетевого напряжения ..............•................•......... 37 Устройство защиты QT перепадов сетевого напряжения ....•....•....•.......,...•.......... 66 Устройство защиты без индикаЦQи ........•........................••..............•............••.•. 86 Устройство защиты трехфазных двиrа1:елей .............•....•.....•....••...••.....•...•.•..... 93 Устройства, измеряющие температуру .................... 108 Термометр-часы ....................•... ~ ..•.................. ~ ........................•.................... 108 Градусник ................................ ~ ....................................................•............... 135 Два терморегулятора ••................•....•.......................................•...•.....••.......... 148 Приложение. Коды прошивок микроконтроллеров ....................... 174 Литература ......................................................... 187 ,
Серия «СОЛОН Николай - радиолюбител.ям,» Иванович Заец Радиолюбительские конструкции на РIС-микроконтроллерах Измерител" напряжения, тока, температуры, терморегулятор, устройства защиты Ответственный за выпуск. В. Митин Макет и верстка Н. Бар.;нина Обложка Е. Холмский ООО «СОЛОН-Пресс» 123242, г: Москва, а/я 20 Телефоны: (095) 254-44-10, (095) 252-36-96. (095) 252-25-21 E-mail: Solon-avtor@coba.ru www.solon-press.ru. E-mail: solon-avtor@coba.ru по вопросам приобретения обращаться: Тел: 127051, r. ООО ttJ!nьянc-кiiиra» (095) 258-91-94, 258-91-95 www.abook.ru ~ 000 «СОЛОН-Пресс» Москва, М. Сухаревская пл., д. 6, стр. Формат 70 х 100/16. Объем 12 1 (пом. ТАРП 2000 п. л. Тираж Отпечатано в ООО «ПРО СПЕКТI " 11518'4, r. Москва, ул. Б. Татарская, д. 13, стр. 4_ ~аказ № зчg ЦАО)