термометр на pic16f876 и DS18B20

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Родился
Сообщения: 6
Зарегистрирован: Вт фев 09, 2016 20:42:40

Сообщение MORE400 »

доброго времени суток Попытался написать программу термометра ( в написании программ не шибко силен) где ошибка не могу понять Смоделировал схему в протеусе По идее в регистрах T_L и T_H должен лежать результат преобразования температуры а по факту находятся числа 255 и в T_L и T_H Вот фрагмент прграммы
DS18B20.txt
(3.75 КБ) 263 скачивания
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

MORE400 писал(а):Смоделировал схему в протеусе
Ну дак включите в нём пошаговуюю отладку, подцепите осциллограф, погуляйте по коду в отладке. И всё выяснится, где ошиблись.
Реклама
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

Выложи весь проект.
Родился
Сообщения: 6
Зарегистрирован: Вт фев 09, 2016 20:42:40

Сообщение MORE400 »

проект в MPLAB
Вложения
TA.7z
(19.42 КБ) 230 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение 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
Реклама
Родился
Сообщения: 6
Зарегистрирован: Вт фев 09, 2016 20:42:40

Сообщение MORE400 »

понял исправлю
Реклама
Родился
Сообщения: 6
Зарегистрирован: Вт фев 09, 2016 20:42:40

Сообщение MORE400 »

исправил но чтото не то. Новый исходник и файл протеуса
Вложения
TA.asm
(10.44 КБ) 520 скачиваний
Родился
Сообщения: 6
Зарегистрирован: Вт фев 09, 2016 20:42:40

Сообщение MORE400 »

файл протеуса
Вложения
ds18b20 $ pic16f876.7z
(6.42 КБ) 210 скачиваний
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

"чтото не то" - это что ? Что за фразы такие таинственные ?
У Вас в руках, хоть какое, но средство отладки - протеус. В чём проблема, до сих пор не могу понять ?
Подключили .cof файл и пошагали...
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение 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 отдельно. Сложи всё в проект .
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Код: Выделить всё

           btfss STATUS,C      
           goto bit_0            ; передачa 0.
           goto bit_1            ; передачa 1.
ну ну.... :)
Говорю же человеку, уже 3-ий раз, пройдись отладкой, сразу все косяки всплывут. Дак нет, мы упрямимся, файлами нас забрасываем... Ищите мол ошибку за меня...
Хотя подобные ошибки в протезе ищутся на ура. Нужно просто пошагать и посмотреть что творится на линии.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

otest писал(а): Это макросы управления регистром TRISB. они не дают изменения выхода порта.
Поэтому порт ни чего не передает
Собственно 1wire шину так и реализовали - пин с OD, в PORT 0 и дергали TRIS . Что тебя смущает?
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Нормальные макросы были. Проблема не в них. Верните их обратно.
Можно их вообще в один собрать :

Код: Выделить всё

_LINE_ macro val
  banksel TRISB
  bcf TRISB, val        
  banksel PORTB
  bcf PORTB, val       
endm
Использование :

Код: Выделить всё

_LINE_  0  ; В линию 0
_LINE_  1  ; В линию 1
Один из косяков я показал выше, исправляйте.
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Блин, 5 минут - подцепить протеус к МПЛАБу и пошагать.
Спойлер
1.png
(139.3 КБ) 334 скачивания
Изображение
Получил температуру = 85 'C, что не удивительно.
Разбирайтесь...
Родился
Сообщения: 6
Зарегистрирован: Вт фев 09, 2016 20:42:40

Сообщение MORE400 »

я понял в каком направлении копать У меня нет конвертации температуры В далласе лежит температурв 85 и в T_L b T_H по 255 что контроллер и читает Думаю разберусь
Ответить

Вернуться в «PIC»