8 - Приклад передачі 1 біта
Першою командою, яку повинен передати майстер для DS18S20 після ініціалізації, є одна з команд реалізованих пристроєм функцій. p align="justify"> При прийомі даних від підлеглого пристрою тимчасові інтервали для прийнятих бітів теж формує майстер. Інтервал починається імпульсом низького рівня тривалістю 15 мкс. Потім контролер відпускає шину і якщо через 30мкс він зчитує 0, то цей біт утримує термометр, інакше зчитується 1. Таким способом, послідовно тактіруя кожен біт, контролер зчитує всі необхідні йому дані. Прийом байта починається з молодшого біта. p align="justify"> Розглянемо особливості протоколу обмена.Вначале після проведення процедури ініціалізації передається команда на виконання певних функцій. Так як на лінії підключено три термометра, то можна виконати запуск вимірювання температури відразу для всіх термометрів і щоб виключити обмін номерами передаємо команду пропустити передачу номери 0xCC. Далі посилаємо команду Convert T - 0х44. Це відразу в трьох мікросхемах термометрів запускає вимірювання і перетворення в цифровий вигляд температури. Далі необхідно сформувати затримку від 500 до 750мкс (залежить від конкретного типу мікросхеми, тому вибираємо найбільший інтервал). Далі процедура скидання повторюється і тепер для вибірки виміряної температури необхідно передати команду 0xCD після чого передається номер конкретного термометра. а далі посилаємо команду Read Scratchpad - BEh. Перший байт містить знак, якщо температура В«+В», то він заповнений 000000000-ми, якщо В«-В«, то 11111111-ми. Якщо температура негативна, то значення температури передається в інверсному додатковому коді, що вимагає перетворення температури. p align="justify"> Для DS18S20 температура представляється у вигляді 9-бітного значення в додатковому коді. Оскільки це значення займає 2 байти, всі розряди старшого байта дорівнюють знакової розряду. Дискретність представлення температури складає 0.5 В° C. br/>
Таблиця 1 - Залежність вихідного коду від температури
ТемператураВиходной код (Binary) Вихідний код (Hex) Ст. байтМл. байт +125 В° C0000 00001111 101000FAh +25 В° C0000 00000011 00100032h +0.5 В° C0000 00000000 00010001h0 В° C0000 00000000 00000000h-0.5 В° C1111 11111111 1111FFFFh-25 В° C1111 11111100 1110FFCEh-55 В° C1111 11111001 0010FF92h
Клавіатура являє собою найпростіші кнопки, які замикають одну з сигнальних ліній, що дозволяє використовувати для введення всього одну додаткову лінію даних. В якості керуючих клавіш обрані чотири кнопки нормально розімкнутого типу без фіксації, що дозволяють комутувати невеликі струми і мають тому невеликі розміри та ціну. p align="justify"> Для спрощення індикації використовується типовий семисегментний трехразрядного індикатор, з серій, запропонованих на ринку, був обраний недорогий індикатор з струмом управління 10мА. p align="justify"> Для комутації та автоматичного перет...