Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

EXTRA_MILE; Считываем три байта, хранящиеся по адресам 00:01:02h

            call START; Начинаем с формирования состояния СТАРТ

;1-й управляющий байт — адрес микросхемы ------------

            movlw b’10100000’; Адрес ведомого, ведущий-передатчик

            movwf DATA_OUT; Копируем в буферный регистр

            call I2C_OUT; Передаем

            movf ERR, f; Проверяем наличие подтверждения

            btfsc STATUS,Z; ЕСЛИ ноль, ТО продолжаем

              goto EXTRA_MILE; ИНАЧЕ пробуем снова

; Адрес 00 --------------

            clrf DATA_OUT; Формируем адрес

            call I2C_OUT; Передаем

; 2-й управляющий байт для инициирования операции чтения --------

            call START

            movlw b’10100001’; Адрес ведомого, ведущий-приемник

            movwf DATA_OUT; Копируем в буферный регистр

            call 2C_OUT; Передаем

; Теперь считываем три байта данных

            clrf ACKNO; Разрешаем формирование подтверждения

            call I2C_IN; Считываем старший байт из ячейки с адресом 00h

            movf DATA_IN,w; Берем байт

            movwf MSB; и сохраняем его в памяти

            call I2C_IN; Считываем средний байт из ячейки с адресом 01h

            movf DATA_IN,w; Берем байт

            movwf NSB; и сохраняем его в памяти

            incf ACKNO,f; Выставить NACK

            call I2C_IN; Считываем старший байт из ячейки с адресом 02h

            movf DATA_IN,w; Берем байт

            movwf LSB; и сохраняем его в памяти

            call STOP; Завершаем операцию чтения

; Теперь инкрементируем 3-байтное число

            incf LSB,f; Прибавляем единицу

            btfss STATUS,Z; Проверяем на ноль

              goto PUT_BACK; ЕСЛИ не 0, ТО продолжаем

            incfsz NSB,f; Инкрементируем средний байт

              goto PUT_BACK; ЕСЛИ не 0, ТО продолжаем

            incf MSB,f

PUT_BACK call START ; Начинаем операцию записи

            movlw b’10100000’; Пакет записи

            movwf DATA_OUT

            call I2C_OUT

            clrf DATA_OUT; Адрес 00h

            call I2C_OUT

            movf MSB,w; Берем новое значение старшего байта

            movwf DATA_OUT

            call I2C_DUT

            movf NSB,w; Берем новое значение среднего байта

            movwf DATA_OUT

            call I2C_OUT

            movf LSB,w; Берем новое значение младшего байта

            movwf DATA_OUT

            call I2C_OUT

            call STOP

Пример 12.4

Взяв за основу базовый принцип асинхронной передачи данных и дополнив его некоторыми принципами, лежащими в основе синхронного протокола I2С, мы сможем организовать асинхронную передачу данных в обоих направлениях по одной-единственной линии связи (в полудуплексном режиме). Одним из примеров такого скрещивания является интерфейс 1-WireTM[166], характеристики которого показаны на Рис. 12.28.

В схеме, приведенной на Рис. 12.28, а, используется микросхема цифрового термометра DS18S20 (Maxim/Dallas), управление которой осуществляется посредством одной линии порта микроконтроллера, выступающего в качестве ведущего шины 1-Wire.

Рис. 12.28.Взаимодействие с микросхемой цифрового термометра DS18S20 (1-Wire)

Микросхема DS18S20 имеет следующие характеристики:

• Диапазон измеряемой температуры от —55 до +85 °C с шагом 0.5 °C; результат представляется в виде 16-битного числа со знаком.

• Точность измерения ±0.5 % в диапазоне -10…+85 °C.

• Время преобразования — не более 750 мс.

• Нулевой ток потребления в режиме ожидания.

• Может питаться от линии данных, диапазон напряжения питания от +3 до +5.5 В.

• Возможность работы в многоточечной сети.,

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки