Термометр окружающей среды на PIC16F877

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2008 12:22:17

Сообщение zuze »

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

Вот задача

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

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

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

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

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

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

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


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

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

Вот код (я даже пробовал добавить звук), но что со звуком что без звука результат один.
Вложения
ter1.asm
Прикрепляю код, где код относящийся к звуку закоментирован.
(14.24 КБ) 469 скачиваний
Реклама
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2008 12:22:17

Сообщение zuze »

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

Помогите разобратся, как избавится от зацикливания кода.
Реклама
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2008 12:22:17

Сообщение zuze »

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

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

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

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

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

Помогите пожалуйста его поправить.
Вложения
p16lcd.asm
(7.08 КБ) 453 скачивания
ter4.asm
(13.08 КБ) 453 скачивания
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2008 12:22:17

Сообщение zuze »

Я забыл поставить 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
Что же сделать, что бы заработали диоды?
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2008 12:22:17

Сообщение zuze »

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

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

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
Реклама
Родился
Сообщения: 6
Зарегистрирован: Вс дек 07, 2008 12:22:17

Сообщение zuze »

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

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

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

Вернуться в «Микроконтроллеры и ПЛИС»