Термометр на PIC16F877

9 posts / 0 new
Последнее сообщение
zuze
Аватар пользователя zuze
Не в сети
Зарегистрирован: 12/07/2008
Термометр на PIC16F877

Я посмотрел на форуме, есть похожая тема, но по содержанию она отличается от моей и по этому я создал новую тему, а не продолжал в уже созданной теме другим пользователем.

Дело в том преподаватель показал одну программу "временную задержку на 1 секунду методом вложенных циклов" и задал задачу, и отпустил домой.

Вот задача

Измерить температуру окружающей среды и вывести её на экран ЖКИ, сравнить с заданной температурой и выдать световые и звуковые сигналы если температура выше заданной.

Примечание:
1. Весь код нужен для оборудования Дебаггер MPLAB-ICD2 и демо-плата PICDEM 2 Plus

2. Микроконтроллер: PIC16F877.

3. Код обязательно на ассемблере

4. Среда программирования MPLAB IDE 7.50

Дал оборудование всего лишь на несколько дней до вторника.

Задача явно не из простых для человека который первый раз программирует микроконтроллеры.
Я превык к обычному программированию, а тут ступор какой-то.

Помогите пожалуйста написать код.

Я пытался сделать но у меня кроме начального появления на ЖКИ двух строк текста ( LCD IS READY и Temperature) и слабого горения диода RB0 ни чего не работает

Вот код (я даже пробовал добавить звук), но что со звуком что без звука результат один.

ВложениеРазмер
Мой код, где код относящийся к звуку закоментирован.14.24 КБ
zuze
Аватар пользователя zuze
Не в сети
Зарегистрирован: 12/07/2008

Я так понял в моём коде ввод начальных строк на экран ходит по кругу и мой термометр не чиго не измеряет до этого не доходит код.

Помогите разобратся, как избавится от зацикливания кода.

zuze
Аватар пользователя zuze
Не в сети
Зарегистрирован: 12/07/2008

Я переделал код на этот, но без световых и звуковых сигналов пока.

Показывает температуру у меня в комнате 19С.

Я хотел, если температура больше 17С (заданна в коде), то выдавать звуковые и световые сигналы.

Попытался разобратся со световыми сигналами сначала.

К сожалению они не заработали, а состояние ЖКИ возвращается к надписи на нём на первой строчке " Temperature ", на в торой строчке
" measurement " и термометр дальше ни чего не мериет.

Помогите пожалуйста его поправить.

Код термометра

zuze
Аватар пользователя zuze
Не в сети
Зарегистрирован: 12/07/2008

Я забыл поставить return, теперь поставил.

К сожалению светодиоды не заработали, но уже термометр не зависает при этом, а дальше мерит температуру.


; Мерцание светодиодов, подключённых к порту В
FLASH
banksel TRISB ;Настройка выводов на выдачу
bcf TRISB,3
bcf TRISB,2
bcf TRISB,1
banksel PORTB
bsf PORTB,1 ;Включение 1-госветодиода
call delay_100ms
call delay_100ms
banksel PORTB
bcf PORTB,1 ;Выключеие 1-го светодиода
bsf PORTB,2
call delay_100ms
call delay_100ms
banksel PORTB
bcf PORTB,2
bsf PORTB,3
call delay_100ms
call delay_100ms
banksel PORTB
bcf PORTB,3
return

; Сравнение текущей температуры с заданной - (170C)
compare_temp
banksel temperature
movf temperature,w
sublw B'00010001' ;17
btfss STATUS,0
goto FLASH
call delay_100ms
call stan_table
return

Что же сделать, что бы заработали диоды?

Doctor
Аватар пользователя Doctor
Не в сети
Зарегистрирован: 09/30/2007

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

Das radio!

zuze
Аватар пользователя zuze
Не в сети
Зарегистрирован: 12/07/2008

Спасибо, за совет
Где я только не сижу, на микрочип тоже сижу, я имею ввиду микрочип с доменном su.

Время жуть как поджимает оборудование мне надо уже завтра отдавать, я имею ввиду Дебаггер MPLAB-ICD2 и демо-плата PICDEM 2 Plus.

zuze
Аватар пользователя zuze
Не в сети
Зарегистрирован: 12/07/2008

Не работает опять, что же я не так делаю?


start
movlw B'11111011'
movwf TRISB
........

flash
movlw 0xff
movwf PORTB
call delay_1s
movlw 0
movwf PORTB
call delay_1s
goto flash

compare_temp
banksel temperature
movf temperature,w
sublw B'00010001'
btfss STATUS,0
goto flash
call delay_100ms
call stan_table
return

zuze
Аватар пользователя zuze
Не в сети
Зарегистрирован: 12/07/2008

Я сегодня дал преподу на проверку код без световых и звуковых сигналов, он сказал что и так сойдёт.
И его аппаратуру пришлось вернуть сегодня он даёт только на 3 дня, а они прошли.

Так что прошу прощения за лишние безпокойство.

Тему можно закрыть.

Doctor
Аватар пользователя Doctor
Не в сети
Зарегистрирован: 09/30/2007

Беспокойства особо и не получилось, прошу прощения что не смог помочь - уж сильно запутанная программа для "взятия с разбега".

Das radio!