кальний код пристрою, дозволяє ведучому отримати доступ до конкретного пристрою за наявності декількох пристроїв на лінії.
Команда пропуску ПЗУ [CCh].
Команда застосовна тільки в тому випадку, якщо на лінії присутній тільки один пристрій і забезпечує доступ до нього без передачі унікального серійного номера.
Команда пошуку ПЗУ [F0h].
Ця команда використовується для визначення серійних номерів всіх пристроїв 1 WIRE Після команди вибору ПЗУ в лінію зв'язку може бути передана одна з наступних команд транспортного рівня:
Команда читання регістра статусу [20h].
Встановлений у одиницю 5 біт відповідь повідомлення вказує на готовність нового результату тиску, ще не прочитаного ведучим. Біт 5 скидається в 0 при читанні результату. p align="justify"> Читання значення тиску [03h].
відповідному повідомленні перетворювачів містить три інформаційних байта і CRC.
Перший байт містить старшу частину тиску в двійковій-десятковому вигляді; другий - молодшу частину; третій байт має наступну структуру: - знак числа (0 - позитивне, 1 - негативне); ... D4 - положення десяткового дробу в числі, представленому 1 і 2 інформаційними байтами; - резерв; ... D0 - розмірність отриманої величини (0 - кПа, 1 - МПа, 2 - кГс/см2, 3 -% від верхньої межі вимірювань).
Обчислення контрольної суми:
Прийом байта починається з молодшого біта. Спочатку йде байт коду сімейства. За кодом сімейства йде 6 байт серійного номера, починаючи з молодшого. Потім йде байт контрольної суми (CRC). У обчисленні байта контрольної суми беруть участь перші 7 байт, або 56 переданих біт. p align="center"> Додаток
(Схема пристрою)
В
(Лістинг програми)
# include
# include iware = P3 ^ 2; rs = P3 ^ 4;/* дані команд для LCD */
sbit e = p3 ^ 3;/* синхронізація LCD */
sbit k2 = P3 ^ 5;/* для читання ключа 4-8 */
sbit power1 = P1 ^ 3; power2 = P1 ^ 2; ohlagd = P1 ^ 1; zachita = P1 ^ 0; char const dat1 [] = {0xDD, 0x05, 0xEC, 0x67, 0x3D, 0x34, 0xb9, 0x11 };/* номери датчиків */char const dat2 [] = {0xDD, 0x05, 0xEC, 0xAD, 0x35, 0xb9, 0xF9, 0x32}; char const dat3 [] = {0xDD, 0x05, 0x45, 0x20, 0x99, 0xb5 , 0xF9, 0x42}; char const datadc [] = {0x55, 0x00,, 0x05, 0x45, 0x20, 0x99, 0x3f, 0x02};/* номер adc */char seksotl, sekt, min, hour;// лічильники часу для контролю роботи датчика
unsigned char key, keyold; char i, j, k, pp, n, s; int tis, tok, intok, outtok, him, ppi; char poz, pp1, regim;// відображаємо сегмент fstart, ff; // бінарні прапори стану
unsigned char const str1 [] = {0xDD, 0x05, 0xEC, 0x9A, 0xA3, 0xb9, 0xF9, 0x0D, 0xFD, 0xBD, 0x02};// chern metallchar const str2 [] = {0xDD, 0x05, 0x45, 0x20, 0x99, ...