Команды и директивы компилятора PROTON

ORead

Синтаксис:

ORead Pin , Mode , [ Inputdata ]

По команде ORead производится считывание данных с устройств, связанных с микроконтроллером по так называемому ”однопроводному интерфейсу”, получившему название 1-Wire протокол.

Устройства 1-Wire выпускает фирма Dallas Semiconductor. Этот интерфейс является одной из форм асинхронной последовательной передачи данных. Для обмена данными по интерфейсу 1-Wire требуется только один вывод микроконтроллера, к которому может быть параллельно подключено сразу несколько 1-Wire устройств.

Пример 1

В примере 1 микроконтроллер через PORTA.0 передает команду "Сброс" 1-Wire устройству, соединенному с ним по ”однопроводному интерфейсу”, а затем, после получения ответного сигнала "присутствия" от 1-Wire устройства, микроконтроллер принимает один байт и сохраняет его в переменной RESULT.

Примечание 1

При использовании битовых режимов передачи данных, все переменные в параметре InputData могут получать только по одному биту. Эту особенность можно использовать для того, чтобы выделить и записать каждый бит по отдельности в свою переменную. Например, программа приведеная в примере 2 может использоваться для того, чтобы получить два бита, используя один из битовых режимов:

Пример 2

Использование модификатора Str

В команде ORead может использоваться модификатор Str, с помощью которого принимаемые данные будут сохраняться в массивы.

Модификатор Str используется для того, чтобы принять данные и поместить их непосредственно в переменную типа байтового массива.

Байтовый массив это множество, состоящее из нескольких байтов, которые в свою очередь упорядочены определенным образом. Каждый из элементов в множестве имеет один и тот же размер. Например, значения 1, 2, 3 должны быть сохранены в той последовательности с которой они поступили. Данные 1 2 3 будут сохранены в байтовом множестве, состоящем из трех элементов.

Ниже приведен пример 3, в котором осуществляется прием десяти байтов по однопроводному интерфейсу и сохранение их в 10-байтовом множестве, MYARRAY:

Пример 3

Если количество полученных элементов недостаточно, чтобы заполнить все множество, то после имени множества может быть помещен formatter, который позволит получить только то количество знаков, какое им было указано.

Пример 4 иллюстрирует, как заполнить только первые n байтов множества, и затем как показать только первые n байтов множества. Параметр n относится к значению, помещенному перед наклонной чертой.

Пример 4

Примеры использования 1-Wire цифровых термометров DS18S20 и DS18B20.

Программа oread1_ds18S20.bas, листинг которой приведен ниже, демонстрирует работу микроконтроллера с полупроводниковым термометром DS18S20 по однопроводному протоколу 1-Wire. Программа считывает значения графов Ремэйнинга и графов в десятичных градусах оC.

На рисунке 1 приведена действующая модель oread1_ds18s20.dsn демонстрирующая работу команды ORead c датчиком DS18S20. Модель работает под управлением программы oread1_ds18s20.bas.

Щелкните, чтобы активировать этот элемент

Рис. 1. Действующая модель oread1_DS18S20.DSN для изучения команды ORead
По этой ссылке можно скачать архив действующей модели oread1_DS18S20.DSN и необходимые для ее работы ASM и HEX файлы.

Примечание:

В следующей программе oread2_ds18S20.bas, листинг которой приведен ниже, демонстрируется измерение не только положительных температур, но и отрицательных тоже.

На рисунке 2 приведена действующая модель oread2_ds18s20.dsn работающая с положительными и отрицательными значениями температуры полученными от DS18S20. Модель работает под управлением программы oread2_ds18s20.bas.

Щелкните, чтобы активировать этот элемент

Рис. 2. Действующая модель oread2_DS18S20.DSN для изучения команды ORead
По этой ссылке можно скачать архив действующей модели oread2_DS18S20.DSN и необходимые для ее работы ASM и HEX файлы.

Программа oread3_ds18В20.bas, листинг которой приведен ниже, демонстрирует работу микроконтроллера с полупроводниковым термометром DS18В20. Этот температурный датчик обладает повышенной точностью измерения температуры, которая составляет 0,0625 оС.

На рисунке 3 приведена действующая модель oread3_ds18b20.dsn, работающая в диапазоне измеряемх температур от -55 до +125 оС и погрешностью измерений 0,0625 оС. Модель работает под управлением программы oread3_ds18b20.bas.

Щелкните, чтобы активировать этот элемент

Рис. 3. Действующая модель oread3_DS18B20.DSN. Демонстрация работы команды ORead
По этой ссылке можно скачать архив действующей модели oread3_DS18B20.DSN и необходимые для ее работы ASM и HEX файлы.