Страница 1 из 1
термометр на pic16f876 и DS18B20
Добавлено: Вт фев 09, 2016 21:02:08
MORE400
доброго времени суток Попытался написать программу термометра ( в написании программ не шибко силен) где ошибка не могу понять Смоделировал схему в протеусе По идее в регистрах T_L и T_H должен лежать результат преобразования температуры а по факту находятся числа 255 и в T_L и T_H Вот фрагмент прграммы
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 11:22:16
Аlex
MORE400 писал(а):Смоделировал схему в протеусе
Ну дак включите в нём пошаговуюю отладку, подцепите осциллограф, погуляйте по коду в отладке. И всё выяснится, где ошиблись.
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 11:49:49
otest
Выложи весь проект.
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 18:26:20
MORE400
проект в MPLAB
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 19:14:04
otest
Ну а где схема , протеус ? Партизан ?
#define PORTDAL PORTB,0 ; регистр данных порта ДАЛЛАСА
#define LINE PORTB,0 ; линия порта ДАЛЛАСА
#define DALLAS PORTB,0 ; шина связи с ДАЛЛАСОМ
Это как надо понимать ? Три функции у одного пина ?
--------------------------------
_LINE_0 macro
_BANK_1
bcf TRISB,0
_BANK_0
bcf PORTB,0
endm
_LINE_1 macro
_BANK_1
bsf TRISB,0
_BANK_0
bsf PORTB,0
endm
Это макросы управления регистром TRISB. они не дают изменения выхода порта.
Поэтому порт ни чего не передаёт
bit_1 ; передачa бита с уровнем "1"
_LINE_0
_LINE_1
call Del_60 ; задержка60мкс.
goto p_b1
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 19:21:21
MORE400
понял исправлю
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 22:13:37
MORE400
исправил но чтото не то. Новый исходник и файл протеуса
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 22:19:56
MORE400
файл протеуса
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 22:24:30
Аlex
"чтото не то" - это что ? Что за фразы такие таинственные ?
У Вас в руках, хоть какое, но средство отладки - протеус. В чём проблема, до сих пор не могу понять ?
Подключили .cof файл и пошагали...
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 22:26:44
otest
prm_bait_1 _BANK_1
bcf TRISB,0
_BANK_0
bcf PORTB,0 ;_LINE_0 ; Формирование на линии уровня 0.
_BANK_1
bsf TRISB,0
_BANK_0
bsf PORTB,0 ;_LINE_1 ; Формирование на линии уровня 1.
=======
Поставь здесь коменты.
Ты что издеваешся?
АСМ отдельно DSN отдельно. Сложи всё в проект .
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 22:36:17
Аlex
Код: Выделить всё
btfss STATUS,C
goto bit_0 ; передачa 0.
goto bit_1 ; передачa 1.
ну ну....
Говорю же человеку, уже 3-ий раз, пройдись отладкой, сразу все косяки всплывут. Дак нет, мы упрямимся, файлами нас забрасываем... Ищите мол ошибку за меня...
Хотя подобные ошибки в протезе ищутся на ура. Нужно просто пошагать и посмотреть что творится на линии.
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 22:56:33
dosikus
otest писал(а):
Это макросы управления регистром TRISB. они не дают изменения выхода порта.
Поэтому порт ни чего не передает
Собственно 1wire шину так и реализовали - пин с OD, в PORT 0 и дергали TRIS . Что тебя смущает?
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 23:04:40
Аlex
Нормальные макросы были. Проблема не в них. Верните их обратно.
Можно их вообще в один собрать :
Код: Выделить всё
_LINE_ macro val
banksel TRISB
bcf TRISB, val
banksel PORTB
bcf PORTB, val
endm
Использование :
Один из косяков я показал выше, исправляйте.
Re: термометр на pic16f876 и DS18B20
Добавлено: Ср фев 10, 2016 23:40:00
Аlex
Блин, 5 минут - подцепить протеус к МПЛАБу и пошагать.
Спойлер
- 1.png
- (139.3 КБ) 334 скачивания

Получил температуру = 85 'C, что не удивительно.
Разбирайтесь...
Re: термометр на pic16f876 и DS18B20
Добавлено: Чт фев 11, 2016 19:05:57
MORE400
я понял в каком направлении копать У меня нет конвертации температуры В далласе лежит температурв 85 и в T_L b T_H по 255 что контроллер и читает Думаю разберусь