Страница 2 из 3 Первая 123 Последняя
Показано с 21 по 40 из 60

Тема: Матрица для экспонирования фоторезиста

  1. #1 Показать/скрыть первое сообщение.
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Матрица для экспонирования фоторезиста

    Всем привет. После экспериментов с засветкой платы 75х95мм одной УФ лампой понял, что равномерной засветки не получить. Получаются плохо засвеченные края платы. Созрел вопрос создания матрицы из светодиодов. Есть следующие вопросы:
    1. Какой делать размер? Платы более 150х200мм делать вряд ли буду (да и 150х200 это много, но в продаже это один из стандартных размеров текстолита). Поэтому думаю сделать где-то 170х220 чтобы края платы гарантированно засвечивались.
    2. Питать думаю от 12В. Три светодиода последовательно через резистор.
    3. Интересуют параметры самих УФ светодиодов. У нас в продаже их нет. Заказывать буду с али. Китайцы указывают падение напряжения 3,2-3,8В, с допустимым током не понятно.Может кто покупал такие? Какие у них реальные параметры?
    4. Думаю делать какой-нибудь таймер. Из того, что нашел в инете время проявки со светодиодными матрицами составляет около 30секунд. Достаточно ли будет таймера на кр1006? Или с времязадающей цепочкой из резистора и электролита время будет сильно плавать?

  2. #21
    Завсегдатай Аватар для Ломатель
    Регистрация
    23.01.2006
    Адрес
    г.Орел
    Возраст
    33
    Сообщений
    1,123

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Потери = потери проводимости + потери переключения. Если у вас не ШИМ - то только проводимости. Определяется протекающим током и Rds. Зависимость Rds от температуры и напряжения на затворе должна быть на графиках в даташитах.
    Денис.

  3. #22
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Это понятно,но на ирфз44н Rds приводится при токе стока 49А.Судя по графику ниже, сопротивление канала при Vgs 10В и Id 4А стремится к 0.1Ом.Получается транзистор можно без теплоотвода использовать?
    Нажмите на изображение для увеличения. 

Название:	Без имени.jpg 
Просмотров:	221 
Размер:	81.6 Кб 
ID:	314434

  4. #23
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Можно ли питать микроконтроллер от +5в шины БП ПК?

  5. #24
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Пока вот, что получается. Статья с описанием таймера тут http://radioparty.ru/device/microchi...imers-pic16f73 Выкинул батарейки и стабилизатор, заменил симистор полевиком, для пассивного зуммера добавил генератор на кр1006, в качестве блока питания будет старый БП ПК формата AT.
    Нажмите на изображение для увеличения. 

Название:	Таймер оригинал.GIF 
Просмотров:	323 
Размер:	44.3 Кб 
ID:	315102 Нажмите на изображение для увеличения. 

Название:	Таймер схема.jpg 
Просмотров:	416 
Размер:	387.7 Кб 
ID:	315107 Нажмите на изображение для увеличения. 

Название:	Таймер плата.jpg 
Просмотров:	310 
Размер:	1.72 Мб 
ID:	315104

  6. #25
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Матрица для экспонирования фоторезиста

    А pic столько тока выдаст? На вскидку получается по 10мА на сегмент, в даташите пишут что 25мА на 1 пин, т.е. макс. 2.5 сегмента одновременно

    Если перенести SB1-2-3 на portB, то можно избавиться от R16-17-18

  7. #26
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Я в микроконтроллерах не силен. Совсем. У автора интересно как схема работала? Это теперь катоды надо подключать к коллектору npn транзистора, базу к МК, эмиттер на землю? Про R16-17-18 не понял. К портам С через эти резисторы подтягивается +Uп, нажимаем кнопку, ток через эти резисторы течет на землю, на порте падает напряжение, МК "соображает", что нажата кнопка. Так или я ни фига совсем не понял?

  8. #27
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Цитата Сообщение от stanislau Посмотреть сообщение
    Я в микроконтроллерах не силен. Совсем. У автора интересно как схема работала?
    Ну как 300 ватт усилители на 1й паре то220 работают 40мА — не такой ток чтобы прям моментально расплавить всё на своём пути, видимо постепенно где-то деградирует. А потом будет открытие в духе "pic = гуано, всего через год сломалось!" Тут ещё каждая цифра работает 1/4 времени, поэтому может короткими импульсами и нормально.

    Это теперь катоды надо подключать к коллектору npn транзистора, базу к МК, эмиттер на землю?
    Ага, как VT2-R7. То что подключено к B* — можно не менять, там всего 1 сегмент, должно быть терпимо. А то что к A* — инвертировать в софте и усилить каким-нибудь uln2003 (можно как раз объединить с vt2), или 3904 по 30 коп с резисторами в базе, или 2n7002. Можно просто R8-15 увеличить, будет не так ярко светить, но зато без превышения тока

    И R7 тоже бы увеличить, зачем через базу VT2 10мА гонять.

    Про R16-17-18 не понял. К портам С через эти резисторы подтягивается +Uп, нажимаем кнопку, ток через эти резисторы течет на землю, на порте падает напряжение, МК "соображает", что нажата кнопка. Так или я ни фига совсем не понял?
    Так, просто этот проц сам умеет подтягивать, но только B*. см pull-up в http://ww1.microchip.com/downloads/e...Doc/30325b.pdf

  9. #28
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Цитата Сообщение от mellowman Посмотреть сообщение
    pic = гуано, всего через год сломалось!
    Первый раз слышу такое
    Измерил ток потребления одного сегмента при Uп=5В и разных токоограничивающих резисторах: 1кОм- 3,3мА, 1,5кОм-2,2мА, 2кОм-1,8мА. Если предположить, что будут гореть все восемь сегментов (точку тоже посчитаем), то резистор в 1к маловат-26,4мА больше допустимых 25.При 2кОм слишком тускло получается. А вот 1,5кОм - в самый раз, при дневном свете хорошо видно свечение. С учетом того, что на плату уже ничего не влезет, не буду изобретать велосипед , поставлю R8-R15 1,5кОм. Да и R6,R7 тоже 1,5к поставлю.Интересует номинал R1? Я бы его в целях унификации с R7 тоже увеличил до 1,5к.
    Еще в даташите PICа не очень понятно написано: 25мА на порт или на пин?
    И питание напрямую от 5В шины БП ПК- можно или при пуске блока стабилизация у них не очень?

  10. #29
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Цитата Сообщение от stanislau Посмотреть сообщение
    Первый раз слышу такое
    Измерил ток потребления одного сегмента при Uп=5В и разных токоограничивающих резисторах: 1кОм- 3,3мА, 1,5кОм-2,2мА, 2кОм-1,8мА. Если предположить, что будут гореть все восемь сегментов (точку тоже посчитаем), то резистор в 1к маловат-26,4мА больше допустимых 25.При 2кОм слишком тускло получается. А вот 1,5кОм - в самый раз, при дневном свете хорошо видно свечение. С учетом того, что на плату уже ничего не влезет, не буду изобретать велосипед , поставлю R8-R15 1,5кОм. Да и R6,R7 тоже 1,5к поставлю.


    Интересует номинал R1? Я бы его в целях унификации с R7 тоже увеличил до 1,5к.
    Если часто (тысячи раз в секунду) щёлкать не надо, то можно, влияет только на скорость открытия полевика и нагрев во время этого.

    Еще в даташите PICа не очень понятно написано: 25мА на порт или на пин?
    Всё там очень понятно, и на пин 25, и на порт, даже на 2-3 порта в сумме 200.

    И питание напрямую от 5В шины БП ПК- можно или при пуске блока стабилизация у них не очень?
    Ну надо попробовать. Если поставить ему личный конденсатор пожирнее, и может бусину перед ним, то думаю без разницы — тут ни аналоговых сигналов нет, ни внешних взаимодействий, главное клок не сбить

  11. #30
    Завсегдатай Аватар для straus
    Регистрация
    24.01.2009
    Сообщений
    3,259

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Это что у вас за фоторезист, что светодиодами засвечивается?

    Обычно требуется жёсткий УФ с длиной волны 254 нм (ртутная линия). Его дают только ртутные лампы, причем не с "чёрным", а с прозрачным кварцевым стеклом.
    Для более редких видов фоторезиста подходит УФ 365 нм, это также ртутные либо эритемные лампы.
    Подавляющее большинство светодиодов, которые называют ультрафиолетовыми, на самом деле имеют 390-405 нм, что даже не УФ, а фиолетовый. Они не засвечивают фоторезист вообще (кстати и гель для ногтей не отверждают тоже). Светодиоды УФ на 365 нм существуют, но они намного более редкие, и в разы дороже, их обычно продают как светодиоды для отверждения геля для ногтей.

  12. #31
    Завсегдатай Аватар для Openreel
    Регистрация
    02.09.2006
    Адрес
    Санкт-Петербург
    Возраст
    49
    Сообщений
    3,146

    По умолчанию Re: Матрица для экспонирования фоторезиста

    3 Ватт УФ фонарь(390нм) на 18650, полностью отверждает паяльную маску (использую как лак) меньше чем за минуту, это слой примерно 0.3мм, причем не надо светить совсем в упор.
    Цитата Сообщение от straus Посмотреть сообщение
    имеют 390-405 нм, что даже не УФ, а фиолетовый.
    Пластиковые стекла защитных очков уже ощутимо поглощают - измерено UVA сенсором, (длинна волны 320-400).
    WBR, Michael.
    Цель расчетов - понимание, а не числа (с) Хемминг.

  13. #32
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Цитата Сообщение от straus Посмотреть сообщение
    Это что у вас за фоторезист
    Обычный китайский. На ютубе полно роликов с его засветкой светодиодами.

  14. #33
    Частый гость Аватар для Juzzy
    Регистрация
    19.01.2016
    Адрес
    Екатеринбург
    Сообщений
    281

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Цитата Сообщение от straus Посмотреть сообщение
    Обычно требуется жёсткий УФ с длиной волны 254 нм (ртутная линия
    да ладно. широко распространенный ordyl alpha 350-
    Exposure
    We recommend using UV lamps or laser source with emission peak at 360 – 380 nm.
    http://www.elgaeurope.it/ENG/Default...TG&CAT=8&PRD=5
    Вчера, буквально, засвечивал. по 14 секунд на сторону.

  15. #34
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    А есть кто на форуме кто в ассемблере и PICах разбирается?

  16. #35
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Проблема в том, что таймер "нормально замкнутый" т.е. при подаче питания на МК включается RC0. Как его инвертировать? Исходник на асме есть.

  17. #36
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Матрица для экспонирования фоторезиста

    "таймер" = rc0? Его и искать тогда, т.к. то что в даташите называют timer вроде бы само не умеет менять состояние пинов. PortC или 7 (07) стр 14, или TRISC

    Если в асм коде нет никаких комментариев, то мне кажется легче с нуля сделать
    Последний раз редактировалось mellowman; 18.03.2018 в 10:08.

  18. #37
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Есть комментарии! Я уже успел сделать плату и спаять, поэтому "железом" без изготовления новой платы не выкручусь.
    Вот, что пишет автор:
    Силовая нагрузка включена во время работы таймера и выключается после его останова, но это не трудно изменить, установив уровень выходного сигнала в подпрограмме сравнения в ассемблерном файле.

    Скрытый текст

    ;
    ; ТАЙМЕР 999,9 СЕК.
    ; ПРЯМОЙ И ОБРАТНЫЙ ОТСЧЕТ, СТОП.
    ; ВЫКЛЮЧЕНИЕ НАГРУЗКИ, ВКЛЮЧЕНИЕ ЗУММЕРА.
    ; ИНДИКАЦИЯ - 4 РАЗРЯДА 7-СЕГМЕНТНЫЕ ИНДИКАТОРЫ С ОК.
    ; РАЗРАБОТАЛ НИКОЛАЙ ЗАЕЦ
    ; ДЛЯ СВОБОДНОГО ИСПОЛЬЗОВАНИЯ РАДИОЛЮБИТЕЛЯМИ.
    ; п.ВЕЙДЕЛЕВКА, БЕЛГОРОДСКОЙ.
    ; saes@mail.ru
    ;
    ; ПРОГРАММА = TAIM99.ASM
    ; ВЕРСИЯ: 12-04-06.
    ; АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, ВЕРСИЯ: 5.70.40.
    ;
    LIST P=16F73
    #INCLUDE P16F73.INC
    __CONFIG 3FB9H
    ;========================================================
    ; ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАСТОТОЙ 4,0 MГЦ.
    ; КОЭФФИЦИЕНТ ДЕЛЕНИЯ 200, 500
    ; И ЦИКЛОМ, РАВНЫМ 4 ТАКТАМ
    ; ДАЕТ НА ВЫХОДЕ 0,1 СЕКУНДУ (4х200х500=400000).
    ;========================================================
    ; RB0 - RB7 - АНОДЫ.
    ; RA0 - RA3 - КАТОДЫ.
    ; RC1 - ПУСК/СТОП.
    ; RC5 - КНОПКА "УСТАНОВКА".
    ; RC4 - КНОПКА "РАЗРЯД".
    ; RA4 - ВЫХОД ПОТЕНЦИАЛ.
    ; RC0 - СИЛОВОЙ ВЫХОД.
    ;==============================================
    ; РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ.
    ;==============================================
    CBLOCK H*20*
    KATOD ;ПОЗИЦИОННОЕ ЗНАЧЕНИЕ КАТОДА.
    KATOD2 ;ДВОИЧНОЕ ЗНАЧЕНИЕ КАТОДА.
    MCK ;РЕГИСТРЫ СЧЕТА НА ПЛЮС. МИЛЛИСЕКУНДЫ ДВОИЧНЫЕ.
    MCKL ;СОТЫЕ СЕКУНД.
    MCKH ;ДЕСЯТЫЕ СЕКУНД.
    CEK ;СЕКУНДЫ ДВОИЧНЫЕ.
    CEKL ;ЕДИНИЦЫ СЕКУНД.
    CEKH ;ДЕСЯТКИ СЕКУНД.
    MCKI ;РЕГИСТРЫ СЧЕТА НА МИНУС. МИЛЛИСЕКУНДЫ ДВОИЧНЫЕ.
    MCKLI ;СОТЫЕ СЕКУНД.
    MCKHI ;ДЕСЯТЫЕ СЕКУНД.
    CEKI ;СЕКУНДЫ ДВОИЧНЫЕ.
    CEKLI ;ЕДИНИЦЫ СЕКУНД.
    CEKHI ;ДЕСЯТКИ СЕКУНД.
    MCKY ;РЕГИСТРЫ УСТАНОВКИ. МИЛЛИСЕКУНДЫ ДВОИЧНЫЕ.
    MCKLY ;СОТЫЕ СЕКУНД.
    MCKHY ;ДЕСЯТЫЕ СЕКУНД.
    CEKY ;СЕКУНДЫ ДВОИЧНЫЕ.
    CEKLY ;ЕДИНИЦЫ СЕКУНД.
    CEKHY ;ДЕСЯТКИ СЕКУНД.
    IN0 ;РЕГИСТРЫ ИНДИКАЦИИ. 0 РАЗРЯД.
    IN1 ;1 РАЗРЯД.
    IN2 ;2 РАЗРЯД.
    IN3 ;3 РАЗРЯД.
    TEMP ;ВРЕМЕННЫЙ.
    COU ;СЧЕТЧИК ПЕРЕСЧЕТА.
    WTEMP ;ВРЕМЕННЫЙ.
    STEMP ;ВРЕМЕННЫЙ.
    FTEMP ;ВРЕМЕННЫЙ.
    SEG ;СЕГМЕНТЫ.
    ZPTI ;ЗАПЯТАЯ ИНДИКАЦИИ.
    MKC ;:20.
    ENDC
    ;==============================================
    ; ОПРЕДЕЛЕНИЕ БИТОВ СОСТОЯНИЯ РЕГИСТРОВ ФЛАГОВ.
    ;==============================================
    FLAG EQU 50H ;
    ; 0-> РЕВЕРСИВНЫЙ СЧЕТ.
    ; 1-> ПУСК/СТОП.
    ; 2-> КНОПКИ "УСТАНОВКА".
    ; 4-> КНОПКИ "РАЗРЯД".
    ; 6-> РАВЕНСТВА.
    ; 7-> 1 СЕКУНДЫ.
    ;=======================================
    ZY EQU 4 ;ПОТЕНЦИАЛ.
    CUL EQU 0 ;СИЛОВОЙ ВЫХОД.
    SBR EQU 1 ;ПУСК/СБРОС.
    YCT EQU 5 ;УСТАНОВКА.
    PAZ EQU 4 ;РАЗРЯД.
    ;=======================================
    ; 1. ПУСК.
    ;======================
    ORG 0
    GOTO INIT
    ORG 4
    GOTO PRER
    ;======================
    ; 2. ИНИЦИАЛИЗАЦИЯ.
    ;======================
    INIT
    BCF STATUS,RP1 ;
    BSF STATUS,RP0 ;ПЕРЕХОДИМ В БАНК 1.
    MOVLW B*00000000* ;ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕРОМ,
    MOVWF OPTION_REG^80H ;
    MOVLW B*11000000* ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ ПЕРИФЕРИИ.
    MOVWF INTCON ;
    MOVLW B*00000000* ;ВСЕ - НА ВЫХОД.
    MOVWF TRISA^80H
    MOVLW B*00000000* ;ВСЕ - НА ВЫХОД.
    MOVWF TRISB^80H
    MOVLW B*11111010* ;RC0, RC2 - ВЫХОД, ОСТАЛЬНЫЕ - ВХОДЫ.
    MOVWF TRISC^80H
    MOVLW B*00000100* ;РАЗРЕШЕНО
    MOVWF PIE1^80H ;ПРЕРЫВАНИЕ ОТ МОДУЛЯ ССР1.
    CLRF PIE2^80H ;
    MOVLW 0x07 ;ВСЕ ВХОДЫ ЦИФРОВЫЕ.
    MOVWF ADCON1 ;
    BCF STATUS,RP0 ;ПЕРЕХОДИМ В БАНК 0.
    CLRF CCP2CON ;ВЫКЛЮЧЕН.
    CLRF RCSTA ;USART ВЫКЛЮЧЕН.
    CLRF T2CON ;ТАЙМЕР 2 ВЫКЛЮЧЕН.
    MOVLW .1 ;1H
    MOVWF CCPR1H ;ДЕЛИТЕЛЬ НА 500.
    MOVLW .244 ;F4H
    MOVWF CCPR1L ;
    CLRF ADCON0 ;АЦП ВЫКЛЮЧЕНО.
    CLRF T1CON ;ТАЙМЕР 1 ОТКЛЮЧЕН.
    BSF T1CON,0 ;ВКЛЮЧЕН.
    MOVLW B*00001011* ;
    MOVWF CCP1CON ;РЕЖИМ СРАВНЕНИЯ.
    MOVLW .254 ;УСТАНАВЛИВАЕМ 0 РАЗРЯД В
    MOVWF KATOD ;ПОЗИЦИОННОЕ ЗНАЧЕНИЕ КАТОДА.
    CLRF TMR0 ;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛИВАЕМ.
    CLRF FLAG
    CLRF PORTA
    CLRF PORTB
    CLRF PORTC
    BSF PORTA,ZY ;ВЫКЛЮЧИМ СИГНАЛ.
    CLRF MCK
    CLRF CEKH
    CLRF MCK
    CLRF MCKL
    CLRF MCKH
    CLRF CEK
    CLRF CEKL
    CLRF CEKHI
    CLRF MCKI
    CLRF MCKLI
    CLRF MCKHI
    CLRF ZPTI
    CLRF CEKY
    CLRF CEKLY
    CLRF CEKHY
    CLRF MCKY
    CLRF MCKLY
    CLRF MCKHY
    CLRF KATOD2
    CALL INDYC
    GOTO ZDEM
    ;========================================
    ; 3. ВЫБОР РАЗРЯДА ИНДИКАЦИИ.
    ;========================================
    WIND
    MOVFW KATOD2 ;
    ADDWF PCL,1 ;
    GOTO IND0 ;
    GOTO IND1 ;
    GOTO IND2 ;
    GOTO IND3 ;
    ;=======================================
    ; 4. ТАБЛИЦА СЕГМЕНТОВ ДЛЯ ОБЩЕГО КАТОДА.
    ;=======================================
    SEGDATA ;7, 6, 5, 4, 3, 2, 1, 0.
    ADDWF PCL,F ;H, G, F, E, D, C, B, A.
    ; КАТОД АНОД
    RETLW B*00111111* ; 0 B*11000000*
    RETLW B*00000110* ; 1 B*11111001*
    RETLW B*01011011* ; 2 B*10100100*
    RETLW B*01001111* ; 3 B*10110000*
    RETLW B*01100110* ; 4 B*10011001*
    RETLW B*01101101* ; 5 B*10010010*
    RETLW B*01111101* ; 6 B*10000010*
    RETLW B*00000111* ; 7 B*11111000*
    RETLW B*01111111* ; 8 B*10000000*
    RETLW B*01101111* ; 9 B*10010000*
    ;=======================================
    ; 5. ВЫБОР РАЗРЯДА УСТАНОВКИ.
    ;=======================================
    YCTA
    BTFSS PORTC,YCT ;
    RETURN ;
    BCF FLAG,2 ;СБРОС ФЛАГА РЕЖИМА.
    MOVFW ZPTI ;
    ADDWF PCL,1 ;НАХОДИМ РАЗРЯД УСТАНОВКИ.
    GOTO YC0 ;
    GOTO YC1 ;
    GOTO YC2 ;
    GOTO YC3 ;
    ;========================================================
    ; 6. ТАБЛИЦЫ ПЕРЕВОДА ДЕСЯТКОВ В ДВОИЧНОЕ ЧИСЛО.
    ;========================================================
    DEBIN
    ADDWF PCL,1 ;
    RETLW .0
    RETLW .10
    RETLW .20
    RETLW .30
    RETLW .40
    RETLW .50
    RETLW .60
    RETLW .70
    RETLW .80
    RETLW .90
    ;=======================================
    ; 7. ПРОВЕРКА КНОПОК.
    ;=======================================
    KHOP
    BTFSC FLAG,2 ;ЕСЛИ РАНЕЕ БЫЛА НАЖАТА КНОПКА "УСТАНОВКА",
    CALL YCTA ;ТО ИДЕМ НА УСТАНОВКУ РАЗРЯДА.
    BTFSS PORTC,YCT ;ЕСЛИ КНОПКА "УСТАНОВКА" НАЖАТА,
    BSF FLAG,2 ;ПОСТАВИМ ФЛАГ.
    BTFSC FLAG,4 ;ЕСЛИ РАНЕЕ БЫЛА НАЖАТА КНОПКА "РАЗРЯД",
    CALL YCTPAZ ;ТО ИДЕМ НА УСТАНОВКУ РАЗРЯДА.
    BTFSS PORTC,PAZ ;ЕСЛИ КНОПКА "РАЗРЯД" НАЖАТА,
    BSF FLAG,4 ;ПОСТАВИМ ФЛАГ.
    RETURN ;
    ;=================================================
    ; 8. ВЫБОР РАЗРЯДА УСТАНОВКИ.
    ;=================================================
    YCTPAZ
    BTFSS PORTC,PAZ ;
    RETURN ;
    BCF FLAG,4 ;СБРОСИМ ФЛАГ КНОПКИ.
    BCF FLAG,0 ;СБРОСИМ РЕВЕРС.
    CALL INDYC ;ЗАПОЛНИМ РЕГИСТРЫ ИНДИКАЦИИ.
    INCF ZPTI,1 ;ПРИБАВИМ ЕДИНИЦУ В РАЗРЯД.
    MOVLW .4 ;НЕ БОЛЕЕ 3.
    SUBWF ZPTI,0 ;
    SKPNZ ;ЕСЛИ РАВНО 4,
    BSF FLAG,0 ;ТО ВКЛЮЧИМ ФЛАГ РЕВЕРСИВНОГО СЧЕТА.
    MOVLW .5 ;НЕ БОЛЕЕ 4.
    SUBWF ZPTI,0 ;
    SKPC ;
    RETURN ;
    CLRF ZPTI ;ИНАЧЕ ОБНУЛИМ.
    RETURN ;
    ;=======================================
    ; 9. УСТАНОВКА.
    ;=======================================
    YC0
    INCF MCKLY,1 ;УВЕЛИЧИМ ЕДИНИЦЫ МИНУТ.
    MOVLW .10 ;НЕ БОЛЕЕ 9.
    SUBWF MCKLY,0 ;
    SKPNC ;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 10,
    CLRF MCKLY ;ТО ОБНУЛИМ.
    MOVFW MCKHY ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
    MOVWF MCKHI ;
    CALL DEBIN ;КОД ДЕСЯТКИ.
    ADDWF MCKLY,0 ;ПРИБАВИМ ЕДИНИЦЫ И
    MOVWF MCKY ;ЗАПИШЕМ В ДВОИЧНОМ КОДЕ.
    GOTO INDYC ;ИЗМЕНИМ РЕГИСТРЫ ИНДИКАЦИИ.
    YC1
    INCF MCKHY,1 ;УВЕЛИЧИМ ДЕСЯТКИ МИНУТ.
    MOVLW .10 ;НЕ БОЛЕЕ 9.
    SUBWF MCKHY,0 ;
    SKPNC ;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 10,
    CLRF MCKHY ;ТО ОБНУЛИМ.
    MOVFW MCKHY ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
    CALL DEBIN ;КОД ДЕСЯТКИ.
    ADDWF MCKLY,0 ;ПРИБАВИМ ЕДИНИЦЫ И
    MOVWF MCKY ;ЗАПИШЕМ В ДВОИЧНОМ КОДЕ.
    GOTO INDYC ;ИЗМЕНИМ РЕГИСТРЫ ИНДИКАЦИИ.
    YC2
    INCF CEKLY,1 ;УВЕЛИЧИМ ЕДИНИЦЫ СЕКУНД.
    MOVLW .10 ;НЕ БОЛЕЕ 9.
    SUBWF CEKLY,0 ;
    SKPNC ;
    CLRF CEKLY ;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
    MOVFW CEKHY ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
    CALL DEBIN ;КОД ДЕСЯТКИ.
    ADDWF CEKLY,0 ;ПРИБАВИМ ЕДИНИЦЫ И
    MOVWF CEKY ;ЗАПИШЕМ В ДВОИЧНОМ КОДЕ.
    GOTO INDYC ;ИЗМЕНИМ РЕГИСТРЫ ИНДИКАЦИИ.
    YC3
    INCF CEKHY,1 ;УВЕЛИЧИМ ДЕСЯТКИ СЕКУНД.
    MOVLW .10 ;НЕ БОЛЕЕ 9.
    SUBWF CEKHY,0 ;
    SKPNC ;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 10,
    CLRF CEKHY ;ТО ОБНУЛИМ.
    MOVFW CEKHY ;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
    CALL DEBIN ;КОД ДЕСЯТКИ.
    ADDWF CEKLY,0 ;ПРИБАВИМ ЕДИНИЦЫ И
    MOVWF CEKY ;ЗАПИШЕМ В ДВОИЧНОМ КОДЕ.
    ;=======================================
    ; 10. ЗАПИСЬ В РЕГИСТРЫ ИНДИКАЦИИ.
    ;=======================================
    INDYC
    MOVFW MCKLY ;ПЕРЕПИСЫВАЕМ ВСЕ РЕГИСТРЫ УСТАНОВКИ
    MOVWF IN0 ;В РЕГИСТРЫ ИНДИКАЦИИ
    MOVWF MCKLI ;И РЕГИСТРЫ РЕВЕРСИВНОГО СЧЕТА.
    MOVFW MCKHY ;
    MOVWF IN1 ;
    MOVWF MCKHI ;
    MOVFW MCKY ;
    MOVWF MCKI ;
    MOVFW CEKLY ;
    MOVWF IN2 ;
    MOVWF CEKLI ;
    MOVFW CEKHY ;
    MOVWF IN3 ;
    MOVWF CEKHI ;
    MOVFW CEKY ;
    MOVWF CEKI ;
    CLRF CEK ;ОБНУЛЯЕМ РЕГИСТРЫ
    CLRF CEKL ;ПРЯМОГО СЧЕТА.
    CLRF CEKH ;
    CLRF MCK ;
    CLRF MCKL ;
    CLRF MCKH ;
    RETURN ;
    INS2
    MOVFW MCKLI ;РЕГИСТРЫ ОБРАТНОГО СЧЕТА ПЕРЕПИШЕМ
    MOVWF IN0 ;В РЕГИСТРЫ ИНДИКАЦИИ.
    MOVFW MCKHI ;
    MOVWF IN1 ;
    MOVFW CEKLI ;
    MOVWF IN2 ;
    MOVFW CEKHI ;
    MOVWF IN3 ;
    RETURN ;
    INS1
    MOVFW MCKL ;РЕГИСТРЫ ПРЯМОГО СЧЕТА ПЕРЕПИШЕМ
    MOVWF IN0 ;В РЕГИСТРЫ ИНДИКАЦИИ.
    MOVFW MCKH ;
    MOVWF IN1 ;
    MOVFW CEKL ;
    MOVWF IN2 ;
    MOVFW CEKH ;
    MOVWF IN3 ;
    GOTO CPABH ;СРАВНИМ С РЕГИСТРАМИ УСТАНОВКИ.
    ;=======================================
    ; 11. ПЕРЕКОДИРОВКА ИЗ 2-ГО В 2_10.
    ;=======================================
    BIDE ;ПЕРЕКОДИРОВКА ДЕСЯТКОВ
    CLRF COU ;ОБНУЛЯЕМ СЧЕТЧИК.
    ADDLW -.10 ;ВЫЧТЕМ 10.
    BTFSS STATUS,0 ;ЕСЛИ ЕСТЬ ПЕРЕХОД ЧЕРЕЗ НОЛЬ,
    GOTO $+4 ;ТО ЗАВЕРШАЕМ ПЕРЕКОДИРОВКУ.
    MOVWF TEMP ;ИНАЧЕ ПЕРЕПИШЕМ НОВОЕ ЗНАЧЕНИЕ ВО ВРЕМЕННЫЙ.
    INCF COU,1 ;УВЕЛИЧИМ СЧЕТЧИК.
    GOTO $-5 ;ПОВТОРИМ ВЫЧИТАНИЕ.
    MOVFW COU ;ЗНАЧЕНИЕ СЧЕТЧИКА (РАВНО ЧИСЛУ ДЕСЯТКОВ) ПЕРЕПИШЕМ В РАБОЧИЙ РЕГИСТР.
    RETURN ;ВЕРНЕМСЯ.
    ;===================================================================
    ; 12. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ.
    ;===================================================================
    PRER
    MOVWF WTEMP ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ W И
    MOVFW STATUS ;STATUS,
    MOVWF STEMP ;
    MOVFW FSR ;FSR.
    MOVWF FTEMP ;
    INCF MKC,1 ;ПРИБАВИМ 1 В РЕГИСТР МИЛЛИСЕКУНД.
    MOVFW MKC ;
    ADDLW -.200 ;СЧИТАЕМ ДО 200.
    BTFSS STATUS,2 ;ЕСЛИ НЕ РАВНО,
    GOTO $+.7 ;ПРОПУСТИМ ПОДСЧЕТ.
    CLRF MKC ;В ПРОТИВНОМ СЛУЧАЕ ОБНУЛИМ.
    BSF FLAG,7 ;ВКЛЮЧИМ ФЛАГ 1 СЕКУНДЫ.
    BTFSC FLAG,6 ;ЕСЛИ РАВЕНСТВО,
    GOTO $+.3 ;ТО ВРЕМЯ НЕ СЧИТАЕМ.
    CALL S1 ;ПРЯМОЙ СЧЕТ.
    CALL S2 ;ОБРАТНЫЙ СЧЕТ.
    CALL IND ;ПРОИНДИЦИРУЕМ.
    REPER ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ЗНАЧЕНИЙ.
    MOVFW STEMP ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ:
    MOVWF STATUS ;STATUS,
    MOVFW FTEMP ;
    MOVWF FSR ;FSR,
    MOVFW WTEMP ;W.
    BCF PIR1,2 ;СБРАСЫВАЕМ ФЛАГ ПРЕРЫВАНИЯ ОТ CCP1.
    RETFIE ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ.
    ;=============================================
    ; 13. ПРЯМОЙ СЧЕТ.
    ;=============================================
    S1
    BTFSS FLAG,1 ;ЕСЛИ НЕ ВКЛЮЧЕН ПУСК,
    RETURN ;ТО НЕТ СЧЕТА.
    MOVFW MCK ;ЗАГРУЗКА ЗНАЧЕНИЙ MCK В РАБ. РЕГИСТР.
    ADDLW -63H ;ВЫЧЕСТЬ ИЗ РЕГИСТРА 99.
    BZ M1 ;СРАВНИТЬ НА 0, ЕСЛИ РАВНО, ПЕРЕЙТИ НА M1,
    INCF MCK,1 ;ИНАЧЕ ПРИБАВИТЬ 1 В РЕГИСТР.
    MOVFW MCK ;ПЕРЕКОДИРУЕМ ТЕКУЩЕЕ ЗНАЧЕНИЕ
    MOVWF TEMP ;ИЗ 2-ГО В 2_10-Е.
    CALL BIDE ;ТОЛЬКО ДО 99!
    MOVWF MCKH ;ПЕРЕПИШЕМ ДЕСЯТЫЕ СЕКУНД.
    MOVFW TEMP ;
    MOVWF MCKL ;ПЕРЕПИШЕМ СОТЫЕ СЕКУНД.
    RETURN ;
    M1
    CLRF MCK ;ОБНУЛЕНИЕ РЕГИСТРА СЕКУНД.
    CLRF MCKL ;ОБНУЛИМ ЕДИНИЦЫ СЕКУНД.
    CLRF MCKH ;ДЕСЯТКИ СЕКУНД.
    MOVFW CEK ;ЗАГРУЗКА В РАБ. РЕГИСТР.
    ADDLW -63H ;-99.
    BZ H1 ;СРАВНИТЬ НА 0, ЕСЛИ РАВНО, ПЕРЕЙТИ НА H1.
    INCF CEK,1 ;ПРИБАВИТЬ 1.
    MOVFW CEK ;ПЕРЕКОДИРУЕМ ТЕКУЩЕЕ ЗНАЧЕНИЕ
    MOVWF TEMP ;ИЗ 2-ГО В 2_10-Е.
    CALL BIDE ;ТОЛЬКО ДО 99!
    MOVWF CEKH ;ПЕРЕПИШЕМ ДЕСЯТКИ.
    MOVFW TEMP ;
    MOVWF CEKL ;ПЕРЕПИШЕМ ЕДИНИЦЫ.
    RETURN ;
    H1
    BSF FLAG,6 ;ВКЛЮЧИМ ФЛАГ РАВЕНСТВА.
    GOTO INS1 ;ЗАПОЛНИМ РЕГИСТРЫ ИНДИКАЦИИ.
    ;=============================
    ; 14. ОБРАТНЫЙ СЧЕТ.
    ;=============================
    S2
    BTFSS FLAG,1 ;ЕСЛИ НЕ ВКЛЮЧЕН ПУСК,
    RETURN ;ТО НЕТ СЧЕТА.
    TSTF MCKI ;ЕСЛИ МИЛЛИСЕКУНДЫ РАВНЫ НУЛЮ,
    BZ M2 ;ПРОВЕРИМ СЕКУНДЫ.
    DECF MCKI,1 ;ИНАЧЕ ПРИБАВИМ 1 В РЕГИСТР МИЛЛИСЕКУНД.
    MOVFW MCKI ;ПЕРЕКОДИРУЕМ ТЕКУЩЕЕ ЗНАЧЕНИЕ
    MOVWF TEMP ;ИЗ 2-ГО В 2_10-Е.
    CALL BIDE ;ТОЛЬКО ДО 99!
    MOVWF MCKHI ;ПЕРЕПИШЕМ ДЕСЯТКИ.
    MOVFW TEMP ;
    MOVWF MCKLI ;ПЕРЕПИШЕМ ЕДИНИЦЫ.
    RETURN ;
    M2
    TSTF CEKI ;ЕСЛИ СЕКУНДЫ РАВНЫ НУЛЮ,
    BZ H2 ;ВКЛЮЧИМ СИГНАЛ.
    MOVLW .99 ;УСТАНОВИМ
    MOVWF MCKI ;РЕГИСТР ДВОИЧНЫХ МИЛЛИСЕКУНД.
    MOVLW .9 ;УСТАНОВИМ
    MOVWF MCKLI ;РЕГИСТР ЕДИНИЦ МИЛЛИСЕКУНД.
    MOVWF MCKHI ;РЕГИСТР ДЕСЯТКОВ МИЛЛИСЕКУНД.
    DECF CEKI,1 ;ВЫЧТЕМ 1 ИЗ СЕКУНД.
    MOVFW CEKI ;ПЕРЕКОДИРУЕМ ТЕКУЩЕЕ ЗНАЧЕНИЕ
    MOVWF TEMP ;ИЗ 2-ГО В 2_10-Е.
    CALL BIDE ;ТОЛЬКО ДО 99!
    MOVWF CEKHI ;ПЕРЕПИШЕМ ДЕСЯТКИ.
    MOVFW TEMP ;
    MOVWF CEKLI ;ПЕРЕПИШЕМ ЕДИНИЦЫ.
    RETURN ;
    H2
    BSF FLAG,6 ;ВКЛЮЧИМ ФЛАГ РАВЕНСТВА.
    BCF PORTA,ZY ;ВКЛЮЧИМ СИГНАЛ.
    BCF PORTC,CUL ;ВЫКЛЮЧИМ НАГРУЗКУ.
    GOTO INDYC ;ВОССТАНОВИМ РЕГИСТРЫ ИНДИКАЦИИ.
    ;==============================
    ; 15. ИНДИКАЦИЯ.
    ;==============================
    IND
    BTFSS FLAG,1 ;ЕСЛИ ИДЕТ УСТАНОВКА,
    GOTO $+5 ;ТО ПРОПУСКАЕМ ВЫБОР ИНДИКАЦИИ.
    BTFSS FLAG,0 ;ЕСЛИ ФЛАГ СБРОШЕН,
    CALL INS1 ;ТО ИНДИКАЦИЯ ПРЯМОГО СЧЕТА.
    BTFSC FLAG,0 ;ЕСЛИ ФЛАГ ВКЛЮЧЕН,
    CALL INS2 ;ТО ИНДИКАЦИЯ ОБРАТНОГО СЧЕТА.
    MOVFW KATOD2 ;ДВОИЧНОЕ ЗНАЧЕНИЕ КАТОДА
    ADDLW -4 ;СЧИТАЕМ ДО 3.
    BTFSS STATUS,2 ;ПРИ РАВЕТСТВЕ, УСТАНОВИМ 0 РАЗРЯД.
    GOTO WIND ;ВЫБЕРЕМ РАЗРЯД ИНДИКАЦИИ.
    MOVLW .254 ;УСТАНАВЛИВАЕМ НУЛЕВОЙ РАЗРЯД В
    MOVWF KATOD ;ПОЗИЦИОННОЕ ЗНАЧЕНИЕ КАТОДА.
    CLRF KATOD2 ;ОБНУЛИМ ДВОИЧНОЕ ЗНАЧЕНИЕ КАТОДА.
    IND0
    MOVFW IN0 ;ЗАГРУЖАЕМ РЕГИСТР ИНДИКАЦИИ.
    GOTO INDZ ;ПРОИНДИЦИРУЕМ.
    IND1
    MOVFW IN1 ;ВСЕ ОСТАЛЬНЫЕ РАЗРЯДЫ-
    GOTO INDZ ;АНАЛОГИЧНО НУЛЕВОМУ.
    IND2
    MOVFW IN2 ;
    GOTO INDZ ;
    IND3
    MOVFW IN3 ;
    INDZ
    CALL SEGDATA ;ОПРЕДЕЛИМ СЕМИСЕГМЕНТНОЕ ЗНАЧЕНИЕ.
    MOVWF SEG ;ЗАПИШЕМ ЕГО В РЕГИСТР.
    BTFSS PORTA,ZY ;ВВЕДЕМ ЗНАЧЕНИЕ БУДИЛЬНИКА В КАТОД.
    BCF KATOD,ZY ;УСТАНОВИМ БИТ В НОЛЬ.
    BTFSC PORTA,ZY ;ЕСЛИ ЗНАЧЕНИЕ ЕДИНИЧНОЕ,
    BSF KATOD,ZY ;ТО УСТАНОВИМ В ЕДИНИЦУ.
    MOVFW ZPTI ;СРАВНИМ РАЗРЯД ЗАПЯТОЙ
    SUBWF KATOD2,0 ;С РАЗРЯДОМ ИНДИКАЦИИ.
    SKPNZ ;ЕСЛИ ОНИ НЕ СОВПАДАЮТ, ТО ПРОПУСТИМ УСТАНОВКУ.
    BSF SEG,7 ;ВКЛЮЧИМ СЕГМЕНТ ЗАПЯТОЙ.
    MOVFW SEG ;ПЕРЕПИШЕМ ЗНАЧЕНИЕ
    MOVWF PORTB ;В ПОРТ B.
    MOVFW KATOD ;ВКЛЮЧИМ РАЗРЯД.
    MOVWF PORTA ;В ПОРТ A.
    BSF STATUS,0 ;НУЛЕВОЙ БИТ =1, ЧТОБЫ В КАТОД ЗАПИСАЛАСЬ 1.
    RLF KATOD,1 ;СДВИНЕМ НОЛЬ НА РАЗРЯД ВЛЕВО.
    INCF KATOD2,1 ;УВЕЛИЧИМ ДВОИЧНОЕ ЗНАЧЕНИЕ КАТОДА.
    RETURN ;ВЕРНЕМСЯ.
    ;====================================
    ; 16. СРАВНЕНИЕ.
    ;====================================
    CPABH
    MOVFW MCKY ;СРАВНИМ МИЛЛИСЕКУНДЫ.
    SUBWF MCK,0 ;
    SKPZ ;ЕСЛИ НЕРАВЕНСТВО,
    GOTO HEPABHO ;ВЫКЛЮЧИМ СИГНАЛ.
    MOVFW CEKY ;СРАВНИМ СЕКУНДЫ.
    SUBWF CEK,0 ;
    SKPZ ;ЕСЛИ НЕРАВЕНСТВО,
    GOTO HEPABHO ;ВЫКЛЮЧИМ СИГНАЛ.
    BSF FLAG,6 ;ИНАЧЕ - ВКЛЮЧИМ ФЛАГ РАВЕНСТВА.
    BCF PORTA,ZY ;ВКЛЮЧИМ СИГНАЛ.
    BCF PORTC,CUL ;ВЫКЛЮЧИМ НАГРУЗКУ.
    RETURN ;
    HEPABHO
    BCF FLAG,6 ;НЕТ РАВЕНСТВА.
    BSF PORTA,ZY ;ВЫКЛЮЧИМ СИГНАЛ.
    BSF PORTC,CUL ;ВКЛЮЧИМ НАГРУЗКУ.
    RETURN ;
    ;===================================
    ; 17. ОЖИДАНИЕ ПРЕРЫВАНИЯ.
    ;===================================
    ZDEM
    BTFSS FLAG,7 ;ЕСЛИ 1 C. ПРОШЛА,
    GOTO $+3 ;
    CALL KHOP ;ПРОВЕРИМ КНОПКИ.
    BCF FLAG,7 ;СБРОСИМ ФЛАГ 1 С.
    BTFSC PORTC,SBR ;ЕСЛИ КНОПКА "ПУСК" НАЖАТА,
    GOTO $+8 ;ТО КНОПКИ НЕ ПРОВЕРЯЕМ.
    BSF FLAG,1 ;ВКЛЮЧИМ ФЛАГ ПУСКА.
    MOVLW 1 ;ЗАПЯТУЮ В 1 РАЗРЯД.
    MOVWF ZPTI ;
    BSF PORTC,CUL ;ВКЛЮЧИМ НАГРУЗКУ.
    BCF FLAG,6 ;СБРОСИМ ФЛАГ РАВЕНСТВА.
    CLRF MKC ;
    CALL INDYC ;ЗАПИШЕМ В РЕГИСТРЫ ИНДИКАЦИИ.
    BTFSS FLAG,1 ;ЕСЛИ ВКЛЮЧЕН ПУСК, ТО ПРОПУСТИМ.
    GOTO ZDEM ;ПОВТОРИМ.
    BTFSC FLAG,6 ;ЕСТЬ РАВЕНСТВО?
    GOTO $+3 ;ДА, ИДЕМ НА ПАУЗУ.
    BTFSC PORTC,SBR ;ЕСЛИ КНОПКА НЕ НАЖАТА,
    GOTO $-3 ;ЖДЕМ НАЖАТИЯ.
    CALL PAUZ ;ПАУЗА ДЛЯ УСТРАНЕНИЯ ДРЕБЕЗГА.
    BTFSS PORTC,SBR ;ЖДЕМ ОТПУСКАНИЯ КНОПКИ.
    GOTO $-4 ;
    BTFSC PORTC,YCT ;ЕСЛИ КНОПКА НЕ НАЖАТА,
    GOTO $+9 ;ПРОПУСТИМ СМЕНУ ИНДИКАЦИИ.
    CALL PAUZ ;
    BTFSS PORTC,YCT ;ЖДЕМ ОТПУСКАНИЯ КНОПКИ.
    GOTO $-2 ;
    BTFSC FLAG,0 ;СМЕНИМ ИНДИКАЦИЮ НА ПРОТИВОПОЛОЖНУЮ.
    GOTO $+3 ;
    BSF FLAG,0 ;ИНДИКАЦИЯ РЕВЕРСИВНОГО СЧЕТА.
    GOTO $+2 ;
    BCF FLAG,0 ;ИНДИКАЦИЯ ПРЯМОГО СЧЕТА.
    BTFSC PORTC,SBR ;ЕСЛИ НЕТ СТОПА,
    GOTO $-.11 ;ПРОВЕРИМ КНОПКУ СМЕНЫ ИНДИКАЦИИ.
    CALL PAUZ ;
    BTFSS PORTC,SBR ;ЖДЕМ ОТПУСКАНИЯ КНОПКИ.
    GOTO $-4 ;
    BCF FLAG,1 ;СБРОС РАБОТЫ.
    BCF FLAG,6 ;ВЫКЛЮЧИМ РАВЕНСТВО.
    BSF PORTA,ZY ;ВЫКЛЮЧИМ СИГНАЛ.
    CLRF ZPTI ;ЗАПЯТАЯ В НУЛЕВОЙ РАЗРЯД.
    BCF PORTC,CUL ;ВЫКЛЮЧИМ НАГРУЗКУ.
    GOTO ZDEM ;ЖДЕМ ДАЛЬНЕЙШИХ ДЕЙСТВИЙ.
    PAUZ
    MOVLW .255 ;МОЖНО ПОДБИРАТЬ ЗНАЧЕНИЕ ПАУЗЫ.
    ADDLW -1 ;ПАУЗА = ЧИСЛО Х 4 МКС.
    BTFSS STATUS,2 ;
    GOTO $-2 ;ПОВТОРИМ.
    RETURN ;
    ;========================================
    END
    ;========================================

    [свернуть]

    369.rar

    Нажмите на изображение для увеличения. 

Название:	IMG_20180316_161049.jpg 
Просмотров:	281 
Размер:	922.4 Кб 
ID:	315494

  19. #38
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Ну вон там русским по белому:

    BCF PORTC,CUL ;ВЫКЛЮЧИМ НАГРУЗКУ.
    ...
    BSF PORTC,CUL ;ВКЛЮЧИМ НАГРУЗКУ.

    Меняем местами BCF и BSF и готово. Только ещё при включении где-то надо BSF сделать

  20. #39
    Частый гость
    Автор темы
    Аватар для stanislau
    Регистрация
    01.02.2010
    Сообщений
    477

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Завтра попробую поменять местами. Главное с мплабом разобраться.

    ---------- Сообщение добавлено 19.03.2018 в 15:25 ---------- Предыдущее сообщение было 18.03.2018 в 21:10 ----------

    В общем программа работает правильно. При включении пика на RC0 0В. VT2 закрыт, поэтому через R2-R1 Uзи VT1 11,5В- он открывается.Запускаем таймер, на RC0 5В, Uбэ VT2 0,77В, ток R2 через открытый VT2 идет на землю, Uзи VT1 при этом 0В. Просто я использовал не ту схему ключа . Изменить пока код не получается.

  21. #40
    Завсегдатай Аватар для mellowman
    Регистрация
    14.04.2009
    Адрес
    рядом с Москвой
    Сообщений
    4,447

    По умолчанию Re: Матрица для экспонирования фоторезиста

    Цитата Сообщение от stanislau Посмотреть сообщение
    В общем программа работает правильно. При включении пика на RC0 0В. VT2 закрыт, поэтому через R2-R1 Uзи VT1 11,5В- он открывается.Запускаем таймер, на RC0 5В, Uбэ VT2 0,77В, ток R2 через открытый VT2 идет на землю, Uзи VT1 при этом 0В. Просто я использовал не ту схему ключа . Изменить пока код не получается.
    ?? Так вроде ж поэтому и надо было инвертировать?

Страница 2 из 3 Первая 123 Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •