/
Автор: Заец Н.И.
Теги: электротехника автоматика и телемеханика программирование радиотехника микроконтроллеры
ISBN: 5-98003-238-X
Год: 2005
Текст
А~
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
ЦАО)