8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 75 76 77 78 79 80 81 ... 105

+ 1/2 °С 0 00000001 (0001) О °С 0 00000000 (0000) -1/2 °С 1 11111111 (01FF) -25 "С 1 11001110 (01СЕ) -55 °С 1 10010010 (0192)

Временные диаграммы передачи данных представлены на рис. 6.34. Передача начинается при поступлении положительного фронта на вход RST (контакт 3). Если на этот вход подать 0, то передача прекращается. Процессами чтения и записи управляет тактирующий вход микросхемы. Один тактовый цикл состоит из отрицательного фронта и следующего за ним положительного. При записи информации состояние битов данных должно оставаться неизменным во время прохождения положительного фронта. При считывании данные выводятся из устройства по каждому отрицательному фронту тактовых импульсов. Когда на тактовом входе высокий уровень, выход DQ (контакт 1) имеет высокое сопротивление. При чтении данных младший бит передается первым. Через этот контакт можно как принимать, так и передавать данные.

Схема с использованием термометра DS1620, подключенного к экспериментальной плате параллельного порта, приведена на рис. 6.35.

Поскольку вывод DQ может использоваться как для чтения, так и для записи, а на экспериментальной плате параллельного порта таких двунаправленных

RST [

L

Загрузко командаВагрузка даннах

. 6 DS1620из DS1620

CLK

ллг

I I I 1

НулеЬай уро&ено

DQ

КомандаМл 9-разрядные Cm

бит даннаебит

а температуре

б)

......i i i i i ii

ГЙ k 2 Й Й 5 Й Й Й Й Й„ Й k

I I I I

DQ

КомандаМл 9-разряднае Cm

бит данныебит

о температуре

Рис. 6.34. Временные диаграммы работы микрасхемы-термаметра DS1620 а - последовательность выгрузки данных, б - последовательность загрузки данных


Рис. 6.35. Схема с использованием микросхемы-термометра DS1620

линий нет, необходимо применять транзистор. База транзистора соединена с контактом D1. Когда ИС настроена на прием информации, данные поступают из компьютера на контакт D1, а затем через транзистор в инверсном виде - на микросхему. Когда она передает информацию, транзистор должен быть закрыт (это достигается подачей низкого уровня на его базу через тот же контакт), и данные поступают на контакт S1. Входы CLK/CONV и RST соединены с контактами С1 и С2. После прохождения положительного фронта по входу RST микросхема настраивается на прием управляющей информации. Необходимые данные считываются с линии D1 под управлением тактовых импульсов. Если DS1620 настраивается на вывод данных, то после загрузки в нее управляющей команды D1 переходит в нулевое состояние, а биты данных последовательно выводятся под управлением тактовых импульсов и поступают на контакт S1. Если микросхема должна принимать данные, они также загружаются под управлением тактовых импульсов. Программа на языке ТР6 иллюстрирует работу этой ИС.

Текст программы DS1620.PAS

Program DS1620 temperature sensor,

(•Программа управления температурным датчиком DS1620 *)

(♦Вход/выход данных DQ соединен с S1 при чтении и с D1 при записи

CLK/C0NV соединен с С1 RST - с С2 *)

uses

crt, dos,

($1 с \ioexp\tpliM pas}

Procedure Write protocol(datax byte), (•Запись формата данных в DS1620 *) var

l byte, begin

write control port(P address, 1+0), delay(1),

write control port(P address, 1+2),

(•CLK =1 •) delay(1)

(•RST=0 CLK=1 •)

(•RST становится равным 1 для запуска цикла ввода/вывода *)


(«Передача битов формата в DS1620.*) for I:=1 to 8 do begin

write control port(P address,0+2); delayd);

write data port(P address,1-round((datax and bit weight(i))/bit weight(i))); («Загрузка битов формата в D1 на экспериментальной плате, линия инвертирована.*) delayd);

write control po rt(P address,1+2); delay(60);

end; delay(50); end;

Procedure Write temperature(temp:byte);

(«Запись значения температуры (temp) после записи формата, temp = 0 - 250. Отрицательная

температура не поддерживается.*)

var

1,datax:byte; begin

datax:=temp*2;

(«Передача битов формата в DS1620.*)

for i:=1 to 9 do

begin

write control port(P address,0+2); delay(1);

if i<=8 then write data port(P address,1-round((datax and bit weight(i))/bit weight(i))) else write data port(P address,0);

(«Ввод формата данных в D1 на экспериментальной плате, линия инвертирована.*) delayd);

write control port(P address,1+2); delay(60);

end;

delay(90); end;

Function Temperature:real; var

i, tempx:integer; bitx:array[1..9] of byte; begin

write data port(P address,0); for i:=1 to 9 do begin

write control port(P address,0+2); delayd);

bitx[i]:=read status port(P address) and 1; write cont rol po rt(P add ress,1+2); delay(l);

end;

write control port(P address,1+0);

delay(lO);

tempx:=0;

for i:=1 to 8 do tempx:=tempx+bit weight(i)«bitx[i]; Temperature:=(tempx+0*bitx[9]*256)/2; end;

Procedure Examplel;



0 ... 75 76 77 78 79 80 81 ... 105