Терморегулятор для холодильного шкафа
Добавлено: Пн авг 20, 2018 17:07:35
Жил-был дед и было у него два холодильных девайса.Один - простой холодильник он подарил племянику-студенту,а себе оставил холодильный шкаф.Поскольку оный вещь специфиццкая,в нем все замерзает в дубъ,а не стоило бы... И решил дед поскору-потихоньку смастерить себе под ентот-с шкаф внешний терморегулятор дабы продукты в нем в лед не мерзли.И смастерил...
За основу взял контроллер ATtiny2313,термодатчик DS18B20,нашел в шифонере три кнопки,зуммер и нехитрую схемку опто-тиристора,кою прикупил некогда на Скайлоте.Блок питания 12в взял от польского антенного усилителя,вмонтировал туда с минимумом обвязки стабилизатор 7805СV и +5вольт получил дед без особого труда.На отдельном куске печатной платы закрепил панельку для контроллера,сделал обвязку.Корпусом послужила коробочка от жвачки.В нее вмонтировал двузнаковый LED индикатор для контроля температуры и для настроек,приклеил три кнопки и еще 2 светодиода: Красный,если температура + и синий,если -.Силовой блок соорудил вне в термоусадочной трубке и разместил в отдельной розетке под 220 вольт куда подключается холодильный шкаф.
Все получилось немного грубовато,но вполне работоспособно.Сейчас соберу материал и вечером все выложу здесь с подробными описаниями.
Добавлено after 3 hours 5 minutes 25 seconds:
Итак с чего же мы начнем? Наверное с принципиальной схемы.Я по ходу буду объяснять что и к чему.Для опытных эти трюки суть -альные излишества,а новичкам не помешает.

Итак выводы 20 и 1 соединены резистором 10Ком.Это подтяжка пина RESET,чтобы микруха 2313 не сбрасывалась от всякого случайного чиха какого-либо процесса или контакта.Еще одна подтяжка 5Ком идет к выводу 19.Туда подцеплен вывод Dat от датчика DS18B20 и ему положена подтяжка по даташиту.Еще термодатчик получает +5в для запитки и масса естесственно. Выводы 12-18 это пины порта В0-В6 через ограничительные резисторы 150 ом обеспечивают сегменты LED индикатора.Без них индикатор светит слишком ярко аж не надо.В стиле хороших традиций стОяло бы сегмент А индикатора запитывать от пина0,сегментБ -пин1 и т.д.У меня увы вышло наоборот.Так было удобнее вести распайку.Поэтому и программа синтеза цифр написана с учетом этого "наоборот".
Индикатор у меня двухразрядный,индикация динамическая,так что еще два пина ПортД5 и ПортД6 обеспечивают эти разряды.
ПортД.4 через резистор выведен на красный светодиод.Если он светится,значит в холодильном шкафу температура плюсовая.И рядом с ним ПортД.3 обеспечивает синий светодиод - признак холода.
ПортД.2 выведен на тиристорную оптопару.О ней поговорим малость позже.
ПортА.1 выведен на зуммер.Он должен начать пищать,когда забарахлит термодатчик.Его можно заменить светодиодом.
ПортыА.0,ПортД0 и ПортД1 служат для настройки желательной температуры в холодильном шкафу.Все,что выше ее,выставляет лог.1 на пинД.2 и включает мотор холодильника.
Вот и все мудрости.
Всю онную братию я загнал в коробку из-под жвачки "ТИк-так".Вверху LEDиндикатор,слева два светодиодика,под ними три кнопки: старт настроек,наращивание температуры,уменшение температуры.Повторное нажатие на старт настроек записывает значение в ЕПРОМ и входит в обычный рабочий режим.Зуммер прицепил сбоку,хотя он здесь нужен пуще для красы.
Фотки онного творения решил не выкладывать.Все и так понятно,а оформить каждый может на свой вкус и цвет.
Теперь силовая часть.На Скайлоте когда-то нашел вот такую вещицу

Она идет в разобраном виде и все надо паять вручную.По входу IN между выходом портаД.2 и входом оптопары я поставил резистор 510 ом вместо рекомендованых на схеме 300ом.Но ничче.Работает четко.Далее будем внимательны и аккуратны.На провод HOT по схеме подключаем фазу 220 вольт.NEUTRAL -это ноль,земля.Розетка для подключения холодильника включается там,где написано LOAD (нагрузка).Симистор паяется без теплоотвода.Греться он впечатлительно не будет из-за малой мощности холодильника.Ну и не забудьте спрятать это добро куда-нибудь от случайного прикосновения.Если розетка вместительная,можно попробовать спрятать прямо в ней.Я разместил рядом,но сунул все в термоусадочную трубку.
Вся схема питается напряжением +5 вольт и можно придумать что угодно,чтобы его обеспечить.Я,например.воспользовался готовым блочком от польской антенны,о чем написал постом выше.
Итак техническая часть у нас,предположим,готова.Осталось прошить контроллер,сунуть его в панельку и запускать прибор в работу.
Добавлено after 34 minutes 45 seconds:
Да,чуть было не забыл.LED индикатор я использовал с общис анодом.Вот такой.

Внизу красными линиями указано как надо запараллелить сегменты для динамической индикации.
Итак программа.Написана она в Баскоме АВР.Пробовал Микропаскаль,но он крэкнутый и выдает глюки.
Кому любо,можете переписать в Си или Ассемблер.В нем я пока увы не силен.
Кстати,перед прошивкой программы советую в микрухе выставить фюзы.Вот скриншоты как это делал я в программе Синапрог.

'Терморегулятор для холодильного шкафа
$regfile = "attiny2313.dat"
$crystal = 4000000
$hwstack = 12
$swstack = 8
$framesize = 16
'все на ввод
Ddra = &B00000010
'pA0- настройка вкл-выкл
'pA1- Ошибка работы термометра.Вывод на звук
Porta = 0
'все ноги на вывод кроме 7-й (включена на термометр)
'Ноги 0-6 идут на сегменты индикатора
Ddrb = &B01111111
Config 1wire = Portb.7
Portb = 0
'6-5 управление разрядами индикатора
'4 знак + температуры (красны светодиод)
'3 знак минус температуры (синий светодиод)
'2- управление реле холодильника
'1 Увеличение
'0 Уменшение
Ddrd = &B01111100
'исходно все погашено
Portd = 0
'Переменные Для Термометра
Dim Byte0 As Byte
Dim Byte1 As Byte
Dim Sign As String * 1
Dim T1 As Byte
Dim T2 As Byte
Dim Limit As Byte 'Лимит температуры в холодильной камере
Dim Cycl As Word 'вывод на табло
'данные в ЕПРОМе записаны в формате Нуль градусов -100,выше 100+Т,ниже 100-Т
Readeeprom Limit , &H10
'Размах регулировки +-20 град (!)
If Limit > 120 Or Limit < 80 Then
Limit = 100
End If
'ОБЩИЙ АНОД (напрямую на LED)
'Вывод инвертирован pB6=сегмА,pB5=сегм В и т.д.
'Прописи вида цифр на индикаторе
Const Nol = &B00000001
Const Odin = &B01001111
Const Dva = &B00010010
Const Tri = &B00000110
Const Cetyr = &B01001100
Const Pjat = &B00100100
Const Sist = &B00100000
Const Sim = &B00001111
Const Visim = &B00000000
Const Dev = &B00000100
'================== Основной блок ===============
Do
'Включение настроки PA0
'Сигнал ошибки термодатчика pA1
'Увеличение pD1
'Уменшение pD0
'пауза 1 сек ждет нажатия кнопки настроек.Зажать кнопку до тех пор,пока не начнет мигать индикатор - признак входа в режим настройки
Wait 1
If Pina.0 = 0 Then 'если кнопка нажата
Gosub Nastroika
Else
Gosub Termometr
End If
Loop
Nastroika:
Gosub Uslov 'Преобразование Limit в T1 для индикатора
Gosub Indikator 'Цифры темпратуры
Gosub Znak 'Светодиоды + и -
Wait 1 'успеть отпустить кнопку.Повторное нажатие выведет из режима настроек
While Pina.0 = 1
'========== НАРАЩИВАНИЕ
If Pind.1 = 0 Then
Incr Limit 'уменшаем отрицательную температуру
Waitms 300
If Limit > 120 Then
Limit = 120 'Верхний предел регулятора +20 градусов
End If
End If
Gosub Uslov 'Преобразование Limit в T1 для индикатора
Gosub Znak 'Светодиоды + и -
Gosub Indikator 'Цифры темпратуры
'========== УМЕНШЕНИЕ
If Pind.0 = 0 Then
Decr Limit 'уменшаем отрицательную температуру
Waitms 300
If Limit < 80 Then
Limit = 80 'Верхний предел регулятора +20 градусов
End If
End If
Gosub Uslov 'Преобразование Limit в T1 для индикатора
Gosub Znak 'Светодиоды + и -
Gosub Indikator 'Цифры темпратуры
'для мигания
Waitms 300
Portb = 0
PortD=0
Waitms 300
Wend
'Выход из настройки.Коррекция бата и запись в ЕПРОМ
Writeeeprom Limit , &H10
Return
Termometr:
Porta.1 = 0 'выключение сигнала
1wreset Pinb , 7
1wwrite &HCC ' Выдаем команду чтения ПЗУ
1wwrite &H44 ' Запуск измерения
Wait 1 ' Ждем окончания преобразования
1wreset
'Ошибка чтения термометра
If Err = 1 Then 'если при опросе небыло ответа загорается значек градуса
Porta.1 = 1 'сигнал ошибки
Return
End If
1wwrite &HCC
1wwrite &HBE ' Команда чтения ОЗУ датчика
Byte0 = 1wread() ' Читаем нулевой байт
Byte1 = 1wread() ' Читаем первый байт
If Byte1 > 248 Then ' Проверка на отрицательность температуры
Byte0 = &HFF - Byte0
Byte1 = &HFF - Byte1
Sign = "-"
Else
Sign = "+"
End If
T1 = Byte0 / 16 ' Сдвигаем нулевой байт вправо на 4 бита (2*2*2*2=16)
T2 = Byte1 * 16 ' Сдвигаем первый байт влево на 4 бита (2*2*2*2=16)
T1 = T1 + T2 ' Формируем результат для вывода на дисплей
' *** Коррекция полученных значений
If Sign = "-" Then ' для корректного вывода отрицательных температур
T1 = T1 + 1
End If
If Sign = "+" And T1 = 0 Then ' убираем знак "+" с нулевой температуры
Sign = " "
End If
Gosub Znak
'============ Вывод на табло.Динамическая засветка ======
For Cycl = 1 To 500
Gosub Indikator
Next Cycl
'====МОТОР=========
If Limit < 100 Then 'установлена минусовая температура
T2 = 100 - Limit
If T1 > T2 And Sign = "-" Then 'холод больший чем нужно
Portd.2 = 0 'мотор холодильника выключить,мороз больший чем надо
Else
Portd.2 = 1
End If
End If
If Limit > 100 Then 'установлена минусовая температура
T2 = Limit - 100
If T1 > T2 Then
Portd.2 = 1 'включить мотор
Else
Portd.2 = 0
End If
End If
If Limit = 100 Then 'установлена минусовая температура
If T1 > 0 And Sign = "+" Then 'жара больший чем нужно
Portd.2 = 1 'мотор холодильника включить
End If
If T1 > 0 And Sign = "-" Then 'мороза больше чем нужно
Portd.2 = 0 'мотор холодильника выключить
End If
If T1 = 0 Then
Portd.2 = 0
End If
End If
Return
'pD6-5 управление разрядами индикатора
Indikator:
T2 = T1 \ 10
Gosub Cas
'Зажигаем первую цифру на табло
Portd.5 = 1
Waitms 10
Portd.5 = 0
Portb = 0
T2 = T1 Mod 10
Gosub Cas
Portd.6 = 1
Waitms 10
Portd.6 = 0
Portb = 0
Return
Cas:
Select Case T2
Case 0 : Portb = Nol
Case 1 : Portb = Odin
Case 2 : Portb = Dva
Case 3 : Portb = Tri
Case 4 : Portb = Cetyr
Case 5 : Portb = Pjat
Case 6 : Portb = Sist
Case 7 : Portb = Sim
Case 8 : Portb = Visim
Case 9 : Portb = Dev
End Select
Return
Znak:
If Sign = "+" Then
'Засветим красный диод
Portd.4 = 1
Portd.3 = 0
End If
If Sign = " " Then
'Погасим диоды
Portd.4 = 0
Portd.3 = 0
End If
If Sign = "-" Then
'Засветим синий диод
Portd.4 = 0
Portd.3 = 1
End If
Return
Uslov:
If Limit < 100 Then
T1 = 100 - Limit
Sign = "-"
End If
If Limit = 100 Then
T1 = 0
Sign = " "
End If
If Limit > 100 Then
T1 = Limit - 100
Sign = "+"
End If
Return
==============
Ну вот и все.
Кому разбирать все и компилировать будет в лом,я прилагаю здесь готовый HEX файл.Загоняйте его в кристалл и пользуйтесь на здоровье.
За основу взял контроллер ATtiny2313,термодатчик DS18B20,нашел в шифонере три кнопки,зуммер и нехитрую схемку опто-тиристора,кою прикупил некогда на Скайлоте.Блок питания 12в взял от польского антенного усилителя,вмонтировал туда с минимумом обвязки стабилизатор 7805СV и +5вольт получил дед без особого труда.На отдельном куске печатной платы закрепил панельку для контроллера,сделал обвязку.Корпусом послужила коробочка от жвачки.В нее вмонтировал двузнаковый LED индикатор для контроля температуры и для настроек,приклеил три кнопки и еще 2 светодиода: Красный,если температура + и синий,если -.Силовой блок соорудил вне в термоусадочной трубке и разместил в отдельной розетке под 220 вольт куда подключается холодильный шкаф.
Все получилось немного грубовато,но вполне работоспособно.Сейчас соберу материал и вечером все выложу здесь с подробными описаниями.
Добавлено after 3 hours 5 minutes 25 seconds:
Итак с чего же мы начнем? Наверное с принципиальной схемы.Я по ходу буду объяснять что и к чему.Для опытных эти трюки суть -альные излишества,а новичкам не помешает.
Итак выводы 20 и 1 соединены резистором 10Ком.Это подтяжка пина RESET,чтобы микруха 2313 не сбрасывалась от всякого случайного чиха какого-либо процесса или контакта.Еще одна подтяжка 5Ком идет к выводу 19.Туда подцеплен вывод Dat от датчика DS18B20 и ему положена подтяжка по даташиту.Еще термодатчик получает +5в для запитки и масса естесственно. Выводы 12-18 это пины порта В0-В6 через ограничительные резисторы 150 ом обеспечивают сегменты LED индикатора.Без них индикатор светит слишком ярко аж не надо.В стиле хороших традиций стОяло бы сегмент А индикатора запитывать от пина0,сегментБ -пин1 и т.д.У меня увы вышло наоборот.Так было удобнее вести распайку.Поэтому и программа синтеза цифр написана с учетом этого "наоборот".
Индикатор у меня двухразрядный,индикация динамическая,так что еще два пина ПортД5 и ПортД6 обеспечивают эти разряды.
ПортД.4 через резистор выведен на красный светодиод.Если он светится,значит в холодильном шкафу температура плюсовая.И рядом с ним ПортД.3 обеспечивает синий светодиод - признак холода.
ПортД.2 выведен на тиристорную оптопару.О ней поговорим малость позже.
ПортА.1 выведен на зуммер.Он должен начать пищать,когда забарахлит термодатчик.Его можно заменить светодиодом.
ПортыА.0,ПортД0 и ПортД1 служат для настройки желательной температуры в холодильном шкафу.Все,что выше ее,выставляет лог.1 на пинД.2 и включает мотор холодильника.
Вот и все мудрости.
Всю онную братию я загнал в коробку из-под жвачки "ТИк-так".Вверху LEDиндикатор,слева два светодиодика,под ними три кнопки: старт настроек,наращивание температуры,уменшение температуры.Повторное нажатие на старт настроек записывает значение в ЕПРОМ и входит в обычный рабочий режим.Зуммер прицепил сбоку,хотя он здесь нужен пуще для красы.
Фотки онного творения решил не выкладывать.Все и так понятно,а оформить каждый может на свой вкус и цвет.
Теперь силовая часть.На Скайлоте когда-то нашел вот такую вещицу
Она идет в разобраном виде и все надо паять вручную.По входу IN между выходом портаД.2 и входом оптопары я поставил резистор 510 ом вместо рекомендованых на схеме 300ом.Но ничче.Работает четко.Далее будем внимательны и аккуратны.На провод HOT по схеме подключаем фазу 220 вольт.NEUTRAL -это ноль,земля.Розетка для подключения холодильника включается там,где написано LOAD (нагрузка).Симистор паяется без теплоотвода.Греться он впечатлительно не будет из-за малой мощности холодильника.Ну и не забудьте спрятать это добро куда-нибудь от случайного прикосновения.Если розетка вместительная,можно попробовать спрятать прямо в ней.Я разместил рядом,но сунул все в термоусадочную трубку.
Вся схема питается напряжением +5 вольт и можно придумать что угодно,чтобы его обеспечить.Я,например.воспользовался готовым блочком от польской антенны,о чем написал постом выше.
Итак техническая часть у нас,предположим,готова.Осталось прошить контроллер,сунуть его в панельку и запускать прибор в работу.
Добавлено after 34 minutes 45 seconds:
Да,чуть было не забыл.LED индикатор я использовал с общис анодом.Вот такой.
Внизу красными линиями указано как надо запараллелить сегменты для динамической индикации.
Итак программа.Написана она в Баскоме АВР.Пробовал Микропаскаль,но он крэкнутый и выдает глюки.
Кому любо,можете переписать в Си или Ассемблер.В нем я пока увы не силен.
Кстати,перед прошивкой программы советую в микрухе выставить фюзы.Вот скриншоты как это делал я в программе Синапрог.
'Терморегулятор для холодильного шкафа
$regfile = "attiny2313.dat"
$crystal = 4000000
$hwstack = 12
$swstack = 8
$framesize = 16
'все на ввод
Ddra = &B00000010
'pA0- настройка вкл-выкл
'pA1- Ошибка работы термометра.Вывод на звук
Porta = 0
'все ноги на вывод кроме 7-й (включена на термометр)
'Ноги 0-6 идут на сегменты индикатора
Ddrb = &B01111111
Config 1wire = Portb.7
Portb = 0
'6-5 управление разрядами индикатора
'4 знак + температуры (красны светодиод)
'3 знак минус температуры (синий светодиод)
'2- управление реле холодильника
'1 Увеличение
'0 Уменшение
Ddrd = &B01111100
'исходно все погашено
Portd = 0
'Переменные Для Термометра
Dim Byte0 As Byte
Dim Byte1 As Byte
Dim Sign As String * 1
Dim T1 As Byte
Dim T2 As Byte
Dim Limit As Byte 'Лимит температуры в холодильной камере
Dim Cycl As Word 'вывод на табло
'данные в ЕПРОМе записаны в формате Нуль градусов -100,выше 100+Т,ниже 100-Т
Readeeprom Limit , &H10
'Размах регулировки +-20 град (!)
If Limit > 120 Or Limit < 80 Then
Limit = 100
End If
'ОБЩИЙ АНОД (напрямую на LED)
'Вывод инвертирован pB6=сегмА,pB5=сегм В и т.д.
'Прописи вида цифр на индикаторе
Const Nol = &B00000001
Const Odin = &B01001111
Const Dva = &B00010010
Const Tri = &B00000110
Const Cetyr = &B01001100
Const Pjat = &B00100100
Const Sist = &B00100000
Const Sim = &B00001111
Const Visim = &B00000000
Const Dev = &B00000100
'================== Основной блок ===============
Do
'Включение настроки PA0
'Сигнал ошибки термодатчика pA1
'Увеличение pD1
'Уменшение pD0
'пауза 1 сек ждет нажатия кнопки настроек.Зажать кнопку до тех пор,пока не начнет мигать индикатор - признак входа в режим настройки
Wait 1
If Pina.0 = 0 Then 'если кнопка нажата
Gosub Nastroika
Else
Gosub Termometr
End If
Loop
Nastroika:
Gosub Uslov 'Преобразование Limit в T1 для индикатора
Gosub Indikator 'Цифры темпратуры
Gosub Znak 'Светодиоды + и -
Wait 1 'успеть отпустить кнопку.Повторное нажатие выведет из режима настроек
While Pina.0 = 1
'========== НАРАЩИВАНИЕ
If Pind.1 = 0 Then
Incr Limit 'уменшаем отрицательную температуру
Waitms 300
If Limit > 120 Then
Limit = 120 'Верхний предел регулятора +20 градусов
End If
End If
Gosub Uslov 'Преобразование Limit в T1 для индикатора
Gosub Znak 'Светодиоды + и -
Gosub Indikator 'Цифры темпратуры
'========== УМЕНШЕНИЕ
If Pind.0 = 0 Then
Decr Limit 'уменшаем отрицательную температуру
Waitms 300
If Limit < 80 Then
Limit = 80 'Верхний предел регулятора +20 градусов
End If
End If
Gosub Uslov 'Преобразование Limit в T1 для индикатора
Gosub Znak 'Светодиоды + и -
Gosub Indikator 'Цифры темпратуры
'для мигания
Waitms 300
Portb = 0
PortD=0
Waitms 300
Wend
'Выход из настройки.Коррекция бата и запись в ЕПРОМ
Writeeeprom Limit , &H10
Return
Termometr:
Porta.1 = 0 'выключение сигнала
1wreset Pinb , 7
1wwrite &HCC ' Выдаем команду чтения ПЗУ
1wwrite &H44 ' Запуск измерения
Wait 1 ' Ждем окончания преобразования
1wreset
'Ошибка чтения термометра
If Err = 1 Then 'если при опросе небыло ответа загорается значек градуса
Porta.1 = 1 'сигнал ошибки
Return
End If
1wwrite &HCC
1wwrite &HBE ' Команда чтения ОЗУ датчика
Byte0 = 1wread() ' Читаем нулевой байт
Byte1 = 1wread() ' Читаем первый байт
If Byte1 > 248 Then ' Проверка на отрицательность температуры
Byte0 = &HFF - Byte0
Byte1 = &HFF - Byte1
Sign = "-"
Else
Sign = "+"
End If
T1 = Byte0 / 16 ' Сдвигаем нулевой байт вправо на 4 бита (2*2*2*2=16)
T2 = Byte1 * 16 ' Сдвигаем первый байт влево на 4 бита (2*2*2*2=16)
T1 = T1 + T2 ' Формируем результат для вывода на дисплей
' *** Коррекция полученных значений
If Sign = "-" Then ' для корректного вывода отрицательных температур
T1 = T1 + 1
End If
If Sign = "+" And T1 = 0 Then ' убираем знак "+" с нулевой температуры
Sign = " "
End If
Gosub Znak
'============ Вывод на табло.Динамическая засветка ======
For Cycl = 1 To 500
Gosub Indikator
Next Cycl
'====МОТОР=========
If Limit < 100 Then 'установлена минусовая температура
T2 = 100 - Limit
If T1 > T2 And Sign = "-" Then 'холод больший чем нужно
Portd.2 = 0 'мотор холодильника выключить,мороз больший чем надо
Else
Portd.2 = 1
End If
End If
If Limit > 100 Then 'установлена минусовая температура
T2 = Limit - 100
If T1 > T2 Then
Portd.2 = 1 'включить мотор
Else
Portd.2 = 0
End If
End If
If Limit = 100 Then 'установлена минусовая температура
If T1 > 0 And Sign = "+" Then 'жара больший чем нужно
Portd.2 = 1 'мотор холодильника включить
End If
If T1 > 0 And Sign = "-" Then 'мороза больше чем нужно
Portd.2 = 0 'мотор холодильника выключить
End If
If T1 = 0 Then
Portd.2 = 0
End If
End If
Return
'pD6-5 управление разрядами индикатора
Indikator:
T2 = T1 \ 10
Gosub Cas
'Зажигаем первую цифру на табло
Portd.5 = 1
Waitms 10
Portd.5 = 0
Portb = 0
T2 = T1 Mod 10
Gosub Cas
Portd.6 = 1
Waitms 10
Portd.6 = 0
Portb = 0
Return
Cas:
Select Case T2
Case 0 : Portb = Nol
Case 1 : Portb = Odin
Case 2 : Portb = Dva
Case 3 : Portb = Tri
Case 4 : Portb = Cetyr
Case 5 : Portb = Pjat
Case 6 : Portb = Sist
Case 7 : Portb = Sim
Case 8 : Portb = Visim
Case 9 : Portb = Dev
End Select
Return
Znak:
If Sign = "+" Then
'Засветим красный диод
Portd.4 = 1
Portd.3 = 0
End If
If Sign = " " Then
'Погасим диоды
Portd.4 = 0
Portd.3 = 0
End If
If Sign = "-" Then
'Засветим синий диод
Portd.4 = 0
Portd.3 = 1
End If
Return
Uslov:
If Limit < 100 Then
T1 = 100 - Limit
Sign = "-"
End If
If Limit = 100 Then
T1 = 0
Sign = " "
End If
If Limit > 100 Then
T1 = Limit - 100
Sign = "+"
End If
Return
==============
Ну вот и все.
Кому разбирать все и компилировать будет в лом,я прилагаю здесь готовый HEX файл.Загоняйте его в кристалл и пользуйтесь на здоровье.