НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 85868788899091 ... 159


2. Направить код ОхОСС, соответствующий команде Skip ROM и информирующий микросхему DS1820 о том, что к ней будет послана очередная команда.

3. Направить код 0x044, который соотнесен с командой, инициирующей процесс измерения температуры. При этом регистрируется и запоминается текущее значение температуры, которое впоследствии может быть считано.

4. Ожидать не менее 500 мкс завершения процесса измерения температуры.

5; Направить импульсный сигнал Reset и ожидать сигнала Presence.

6. Направить код ОхОСС, соответствующий повторной команде Skip ROM.

7. Направить код ОхОВЕ для считывания оперативной памяти микросхемы, содержащей текущее значение температуры (в градусах Цельсия, умноженных на два).

8. Инициировать считывание девяти байт из оперативной памяти.

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

Вся процедура измерения температуры занимает около 5 мс. Ниже приводятся три подпрограммы управления термометром DS1820 (для случая использования микроконтроллера, тактируемого частотой 4 МГц).

DSReset

DS1820

movlw

addlw

OxOFF

btfss

STATUS, Z

goto

$ - 2

DS1820

DSTRIS

BOVlw

Сброс DS1820 (RESET).

Удержание низкого уровня сигнала

в течение 500 мкс приводит

к перезапуску термометра DS1820.

Декрементирование до нуля.

Задержка в 1 мс перед посылкой команды.



addlw

OxOFF

btfss

STATUS, Z

goto

$ - 2

DSTRIS

DS1820

return

Подпрограмма пересылки байтов команд:

DSSend

; Посылка байта из регистра w

; к термометру DS1820.

movwf

Temp

movlw

DSSendLoop

INTCON, GIE

; Запрещение прерываний.

DS1820

; Выдача низкого,уровня на линию

; управления.

Temp, f

; Текущий бит п-еремещается в бит

; переноса.

btfsc

STATUS, С

DS1820

; Удерживание 1 в течение 4 циклов

Count, 3

; Программный цикл (24 цикла).

Decfsz.

Count, f

goto

$ - 1

goto

$ + 1

; Добавление двух циклов

; для 30 мкс задержки.

DS1820

INTCON, GIE

; Разрешение прерываний.

Count, 3

; Еще один программный цикл

; (24 цикла) для задержки.

Decfsz

Count, f

goto

$ - 1

addlw

OxOFF

; Декрементирование счетчика.

btfss-

STATUS, Z

goto

DSSendLoop

return

; Возврат.

Подпрограмма считывания данных из микросхемы термометра DS1820:

DSRead

; Прием байта от DS1820 в регистр

movlw

INTCON, GIE

; Запрещение прерываний.

DS1820

; Выдача низкого уровня

; на линию управления.

DSTRIS

; Симуляция открытого коллектора

STATUS, С

btfss

DS1820



STATUS, С

Temp, f

; Прием битов.

INTCON, GIE

; Разрешение прерываний.

clrf

Count

decfsz

Count, f

goto

$ - 1

DS1820

DSTRIS

DS1820

addlw

OxOFF

; Цикл для очередного бита

btfss

STATUS, Z

goto

DSReadLoop

movf

FSROL, w

return

; Возврат.

Процедура считывания данных термометра DS1820 предусматривает выполнение следующих действий:

1. Сброс ИС DS1820 (пересылка сигнала сброса).

2. Пересылка кода OCCh с последующей пересылкой кода 044h для инициирования операций измерения температуры.

3. Ожидание в течение 480 мкс момента заверщения операции измерения температуры.

4. Пересылка очередного сигнала сброса на DS1820.

5. Пересылка кодов OCCh и OBEh для считывания значения температуры.

6. Ожидание в течение 100 мкс перед считыванием первого байта из прибора DS1820.

7. Считывание первого байта (или SPO) из ИС DS1820.

8. Ожидание в течение 100 мкс перед выполнением операции считывания второго байта (или SP1) из ИС DS1820.

Измерение сопротивлений с помощью цифровых ВХОДОВ/выходов

Для измерения величины сопротивления (в отсутствие аналого-цифрового преобразователя) может использоваться достаточно простая Зсема, показанная на рис. 8.34.

Принцип измерения основывается на измерении времени заряду разряда RC-цепочки, в которую включен тестируемый резистор. Для измерения величины сопротивления (предполагается, что кость конденсатора известна) микроконтроллер сначала должен Срядить конденсатор до уровня напряжения 5 В (или до своего вы-JflHoro уровня), для чего соответствующий вывод микроконтроллера



0 ... 85868788899091 ... 159