Например TDA7294

Форум РадиоКот • Просмотр темы - Прошу помощи в программировании Pic16f630 - термореле
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб мар 21, 2026 21:55:33

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 39 ]  1,  
Автор Сообщение
 Заголовок сообщения: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пт ноя 27, 2020 14:48:10 
Встал на лапы

Зарегистрирован: Чт фев 11, 2016 16:59:20
Сообщений: 105
Откуда: Иркутск
Рейтинг сообщения: 0
Всем здравствуйте!
Прошу помочь в создании термореле на микроконтроллере - задача сделать включение и отключение нагревателя в подвале по температуре 3 градуса вкл и 4 градуса выкл. Датчик температуры ds18b20. Сам написал программу на си и на асм для pic16f630, не работает. Написал программку для ардуино - работает, но иногда выскакивают неадекватные значения температуры - почему - хз (сейчас все устройство стоит - более-менее работает). Схема на мощном тиристоре - тут все ок, не работает именно микроконтроллер. Версию на си прикладываю. Версию на асм приложу завтра.
Делал давно, решил возобновить - разобраться - вот верные файлы:
асм
Вложение:
newpic_8b_general.asm [4.25 KiB]
Скачиваний: 354

си
Вложение:
ts1.c [2.86 KiB]
Скачиваний: 358


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пн ноя 30, 2020 11:24:13 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1506
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15525
Откуда: ДОНЕЦК
Рейтинг сообщения: 1
Посмотри вот этот древний проектик (сделано в МПЛАБ 8.92, ассемблер)
Вложение:
t_hed676.zip [105.86 KiB]
Скачиваний: 354

схемки (не помню уже какая под что) от него
Вложение:
demoterm.pdf [135.64 KiB]
Скачиваний: 281

Вложение:
demoterm_2.pdf [119.94 KiB]
Скачиваний: 282

Может чего прояснится...
:wink:
Или вот тут еще более подходящий вариант с частичным обсуждением (проект trm629):
начало
https://radiokot.ru/forum/viewtopic.php ... 8#p2565968
и далее
https://radiokot.ru/forum/viewtopic.php ... 6#p2566836
https://radiokot.ru/forum/viewtopic.php ... 2#p2593182
https://radiokot.ru/forum/viewtopic.php ... 2#p2593202
https://radiokot.ru/forum/viewtopic.php ... 6#p2607506
.......
8)


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пн ноя 30, 2020 12:08:03 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Цитата:
Сам написал программу на си и на асм для pic16f630, не работает

Если так , то выкладывай свой проект в МПЛАБ. За СИ не скажу , а вот АСМ скопирован у кого то. ( может у Карабельникова). Почему нет ни одного коментария ? Программа на АСМ только общается (может быть) с датчиком и больше ни чего. Что в ней должно работать?
Студент ???


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пн ноя 30, 2020 12:56:20 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1506
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15525
Откуда: ДОНЕЦК
Рейтинг сообщения: 1
Скорее "начинающий самоделкин" с начальным опытом адуринки.
8)
Только вот ПИК от АВР солидно отличается.
Посему опыт, полученный при работе с ардуино не сильно поможет.
(Другое дело от ассемблера с АВР/ПИК к ардуиновому Си - это получше).
:tea:


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пн ноя 30, 2020 13:37:12 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Сам написал программу на си и на асм для pic16f630, не работает.

там и там:
Код:
  komanda18b20 = 0x44; //44 измерение t
  OneWireWriteByte();
  __delay_us(750);
  one_wire_inic();
  komanda18b20 = 0xCC; // СС команды от МК

Код:
            movlw       H'44'
            call        One_Wire_Write_Byte
            call        delay_750us
            call        One_Wire_Init
            movlw       H'CC'
            call        One_Wire_Write_Byte

наверное надо:
Код:
 __delay_us(750);

заменить на
Код:
 __delay_ms(750);


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пн ноя 30, 2020 15:22:30 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4613
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Этих термостатов в интернете - пруд пруди. И с исходниками, и без, и всяких разных модификаций, ...
Но нет же, нужно изобретать очередной велосипед с костылями :facepalm:


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пн ноя 30, 2020 15:48:27 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1506
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15525
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Каждый имеет право на собственную разработку (пусть и не всегда удачную и/или совершенную).
Или для учебы/закрепления пройденного материала или для собственного удовольствия.
То, что подобного материала в избытке - наоборот позволяет выбрать лучшие решения для компоновки конкретного проекта.
:beer:


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пн ноя 30, 2020 16:43:42 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4613
Откуда: Планета Земля
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Каждый имеет право на собственную разработку
Я не про разработку говорю, а про кучу примеров на любых языках.
Разрабатывать, конечно же, лучше самому. Но грешить на программу, примеров которой тьма в интернете, и идти на форум с просьбой помочь в ней разобраться - извращенство.
Ищем примеры, смотрим, сравниваем, ищем ошибки, поправляем, .... Или чукча - не читатель ?
Ну или ТС - тупо лентяй, "сделайте всё за меня, а я буду заниматься своими делами" ...


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Пн ноя 30, 2020 20:16:43 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1506
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15525
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Согласен с тем, что вопросы задавать надо "чуток основательнее" их подготовив.
Мне вот без схемки, сопровождающей задачу не слишком удобно...
8)
Подождемс реакции вопрошавшего...
:roll:


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 06:23:19 
Встал на лапы

Зарегистрирован: Чт фев 11, 2016 16:59:20
Сообщений: 105
Откуда: Иркутск
Рейтинг сообщения: 0
Ребята, благодарю за ответы! Я не студент - просто как-то затронула тема программирования МК - втянулся, посмотрел, почитал, поизучал асм, сделал термометр в квартиру на pic16f676 c динамическим индикатором, потом купил ардуинок - поизучал си - понял, что си облегчает жизнь, особенно на ардуинках:) Ну в общем не специалист - так, поверхностно нахватался:) Занимаюсь ради интереса.
Про выложенный код асм - да, вспомнил - я начал писать программу, но столкнулся с трудностью - как сделать условие больше >CONST< меньше на асм и не дописал - решил делать на си - но не заработало и я бросил. Замечание про "__delay_us(750); заменить на Код: __delay_ms(750);" верно, но по факту работает и с задержной в 750 микросекунд.
Я тут тоже времени не терял - нашел у себя в закромах МК PIC16F628A и решил для него писать код на асм - т.к. на асм меньше вероятность допустить неявных ошибок.
На сегодня код такой -
Вложение:
Termostat-v21.X.rar [23.81 KiB]
Скачиваний: 335

Это проект в MPLAB v3.65
Комментарии, написанные на кириллице превращаются в знаки вопроса - теперь стараюсь писать на латинице.
Пока код примитивный - считывание двухбайтного числа с DS18B20 - затем отбрасывание полубайтов знака и дробной части и склейка с переворотом восьмибитного значения с левым битом знака и проверка на наличие знака минус - это вкл, далее проверка 6,5,4,3 бита на наличие 1 - это выкл.
Проверяю в протеусе - пока работает так: когда температура ниже нуля - 5-я нога порта В включает нагрузку/нагреватель (высокий уровень), а когда температура выше 8 градусов - выключает (гистерезис такой в 8 градусов).
Но мне нужно вкл 4 градуса выкл 6 градусов.
Для этого написал такой кусок кода:
;movf Temp,0 ;W=temp
;bcf STATUS,0
;bcf STATUS,1
;bcf STATUS,2
;SUBWF T4,0 ;vichitanie is W-4=?
;BTFSC STATUS,2 ; 0?
;goto VKL ; esli 0 to vkl
;BTFSC STATUS,1 ;proveriaem zaim desyatok
;goto VKL ;bil zaim to vkl
;BTFSC STATUS,0 ;proveriaem zaim edinic
;goto VKL ;bil zaim to vkl
;movf Temp,0 ;W=temp
;bcf STATUS,0
;bcf STATUS,1
;bcf STATUS,2
;ADDWF T6,0 ;slozenie temp i 6
;BTFSC STATUS,2 ; 0?
;goto VIKL ; esli 0 to vikl
;BTFSC STATUS,1 ;proveriaem zaim desyatok
;goto VIKL ;bil zaim to vikl
;BTFSC STATUS,0 ;proveriaem zaim edinic
;goto VIKL ;bil zaim to vikl
Где T4 = b'00000100'
А Т6 = 255 - 6 = 249 b'11111001'
Но этот код пока не работает - вот разбираюсь, почему.
Файл в протеусе:
Вложение:
proteus.rar [13.51 KiB]
Скачиваний: 311

По поводу схемы - вот схема в SL-out
Вложение:
term.lay6 [72.77 KiB]
Скачиваний: 335

И схема принципа подключения нагрузки:
Вложение:
термореле.gif [23 KiB]
Скачиваний: 264

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


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 09:29:31 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Цитата:
без дисплеев, индикаторов, кнопок

для примера - там и црц есть:
https://radiokot.ru/forum/viewtopic.php ... 2#p3380962

з.ы. там же __delay_ms(800);


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 09:42:54 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Цитата:
но по факту работает и с задержной в 750 микросекунд.

...
Цитата:
Проверяю в протеусе

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

Цитата:
на асм меньше вероятность допустить неявных ошибок.

Очень сомнительное утверждение )


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 09:49:05 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 1
LIST p=16F628A
__CONFIG b'11111100011000'
#define _XTAL_FREQ 40000000 ;это зачем
PCL equ 02h
TRISA equ 85h
TRISB equ 06h
PORTA equ 05h
PORTB equ 86h
STATUS equ 03h
Не следует переписывать регистры ОН, нужно подключать файл - include p16f628A.inc

STATUS,5 - нужно применять однозначные имена флагов C,Z,RP и т.д.
Почему MPLAB v3.65 ? Его уже и скачать негде.
Что за набор файлов в папке проекта? Чем он запускается ?

PORTDQ equ PORTA
TRISDQ equ TRISA
Зачем эта двойная кодировка ?

T4 equ b'00000100'; 0x04
T6 equ b'11111001'; 0xF9
Это что ?

Пока не наведёте порядок в тексте программы, ни чего не заработает. И не надо свистеть что прогу писал сам. То что написал сам , оно и не работает.


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 09:58:50 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4613
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
otest писал(а):
Что за набор файлов в папке проекта? Чем он запускается ?
Это проект MPLAB X :)


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 10:17:31 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
ТС пишет
Цитата:
Это проект в MPLAB v3.65

Даже здесь без внимания написано.


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 10:33:30 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1506
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15525
Откуда: ДОНЕЦК
Рейтинг сообщения: 1
Это некоторая разница мплаб Х (там свой порядок нумерации версий) и старый-добрый мплаб 8.92 на котором большая часть старых проектов выполнена.
На старых ПК с ХР уже мплаб Х поставить весьма затруднительно...
Просто сейчас начинающие уже ориентируются на современную базу (не ведая совершенно о существовании более старого)...
:(
Пы.Сы.
При работе с минусовыми значениями нельзя просто отбрасывать дробную часть.
Необходимо сначала В ПОЛНОМ ФОРМАТЕ, полученном при преобразовании, перевести значение в положительную величину("дополнение до 2х"), а уж только затем заниматься "обрезанием".
8)


Последний раз редактировалось BOB51 Ср дек 02, 2020 10:38:12, всего редактировалось 1 раз.

Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 10:36:47 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4613
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
otest писал(а):
Даже здесь без внимания написано
В чём невнимательность ? Забыл символ "X" написать ? :)
Возможно, что человек вообще не знает о существовании обычного MPLAB'а, и для него MPLAB X - просто MPLAB :)


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 10:39:36 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1506
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15525
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
У микрочипа на сайте после обжорства атмелем вообще лазить... тяжковато...
:evil:


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 10:48:25 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Цитата:
Забыл символ "X" написать

Именно так. Будто вам неизвестно , что 1 символ приведёт к краху всей программы.


Вернуться наверх
 
 Заголовок сообщения: Re: Прошу помощи в программировании Pic16f630 - термореле
СообщениеДобавлено: Ср дек 02, 2020 11:12:06 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4613
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Ну, мы сейчас не о программе глаголим. Зачем делать подобные сравнения ?
Обвинять человека в невнимательности лишь потому, что он MPLAB X назвал MPLAB'ом - не красиво.
MPLAB X - это и есть MPLAB. И будет им всегда. Не вижу ничего в этом оскорбительного в адрес Микрочипа.
Тем более :
Возможно, что человек вообще не знает о существовании обычного MPLAB'а, и для него MPLAB X - просто MPLAB


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  1,  

Часовой пояс: UTC + 3 часа


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y