Занимательная микроэлектроника — страница 114 из 117

  ;set HI address

rcall write

         brcs rt_write  ;C=1 ERROR

pop DATA  ;set data to DATA

rcall write

         brcs rt_  ;C=1 ERROR

rcall stop

         brcs rt_  ;C=1 ERROR

ret


;-----------чтение RTC-----------

read_i2c:  ;ClkA — адрес, данные в DATA

                ;если бит с = 1 в регистре флагов, то ошибка

cbi PORTD,pSDA

         cbi PORTD,pSCL

ldi cnt,120

loop_read_:

         rcall start

         ldi DATA 0b11010000  ;addr device,r/w=0

rcall write  ;C=1 ERROR

  mov DATA ClkA  ;set HI address

rcall write

         brcs rt  ;C=1 ERROR

 rcall stare

         ldi DATA, 0b11010001  ;addr device, r/w=1

rcall write

         brcs rt  ;C=1 ERROR

clt  ;no put ACK

rcall read

         rcall stop

         brcs rt  ;C=1 ERROR

ret

rt__:

         dec cnt

         brne loop_read_

         ret

rt_write:

         pop DATA


rt_:

         brcc Ok_wr_

         dec cnt

         brne loop120

Ok_wr_:

         ret

;--------------------------------

write:  ;запись байта из DATA

push DATA

         push cnt

         ldi cnt,8  ;счетчик бит


x42:

         rol DATA

         brcs sei

         sbi DDRD,pSDA

         rjmp del_wr

sel:

         cbi DDRD,pSDA

del_wr:

         cbi DDRD,pSCL

         rcall delay

         sbi DDRD,pSCL

         rcall delay

         dec cnt

         brne x42  ;следующий бит

cbi DDRD,pSDA  ;освободить pSDA для АСК

rcall delay

         cbi DDRD,pSCL

         rcall delay

         clc

         sbic PIND,pSDA  ;читаем в бит С состояние АСК

sec  ;АСК не пришел

sbi DDRD,pSCL

         rcall delay

         pop cnt

         pop DATA

         ret


read:  ;чтение в DATA, бит t=1 —> ответить АСК, t=0 не отвечать АСК

ldi DATA,1

loop_read:

         sbi DDRD,pSCL  ;SCL=0

cbi DDRD,pSDA  ;SDA=1

rcall delay

         cbi DDRD,pSCL  ;SCL=1

rcall delay

         clc

         sbic PIND,pSDA  ;читать SDA в бит С

sec

         rol DATA

         brcc loop_read

         ;отсылаем ACK ()

  sbi DDRD,pSCL  ;SCL=0

rcall delay

         brts se0

         cbi DDRD,pSDA  ;не отвечать ACK (t), SDA=1

rjmp rd_

se0:

         sbi DDRD,pSDA  ;отвечать ACK (t), SDA=0

rd_:

         clc

         rcall delay

         cbi DDRD,pSCL  ;SCL=1

rcall delay

ret


start:

         cbi DDRD,pSDA

         cbi DDRD,pSCL

         rcall delay

         sbis PINC,pSDA

         rjmp start

         sbis PINC,pSCL

         rjmp start

         sbi DDRD,pSDA  ;0=SDA

         rcall delay

         sbi DDRD,pSCL  ;0=SCL

rcall delay

ret


stop:

         sbi DDRD,pSDA

         sbi DDRD,pSCL

         rcall delay

         cbi DDRD,pSCL  ;1=SCL

rcall delay

         cbi DDRD.pSDA  ;1=SDA

  rcall delay

         clc

         sbic PIND,pSDA

         ret

sbic PIND,pSCL

         ret

         sec

ret


delay:  ;~5 мкс (кварц 4 МГц)

push cnt

          ldi cnt,6

cyk_delay: dec cnt

          brne cyk_delay

          pop cnt

ret

Приложение 6Словарь часто встречающихся терминов

В табл. П6.1 и П6.2 приведен перевод некоторых терминов, часто встречающихся в технической документации. Термины, вошедшие в русский язык в оригинальном звучании или близком к нему (transistor, resistor, logic, timer, emitter и т. п.) и потому понятные без перевода, за некоторыми исключениями в таблицах не приводятся. Не приводятся также термины и сокращения, подробно рассмотренные в тексте соответствующих глав (SRAM, DRAM, EEPROM и т. п.).


Таблица П6.1

Русско-английский

Блок (узел, устройство) — unit

центральный процессорный блок — central processor unit, CPU

Внешний — external

Внутренний — internal

Восьмеричный — octal

Вход — input

Вывод (компонента) — pin, lead

Выпрямитель — rectifier

Выход — output

Вычитание — subtraction

Генератор тактирующих — импульсов clock

Данные — data

Двоичный — binary

Действующий (значение напряжения) — effective

Деление — division

Делитель — divisor

Десятичный — decimal

Диапазон — range, scale

Доступ — access

Дрейф — drift

Емкость — capacity, capacitance

Задержка — delay

Заряд — charge

Затвор — gate

Земля — ground

Измерение — measuring

Индуктивность (катушка индуктивности) — coil

Исток, источник — source

Канал — channel

— передачи данных — data transfer channel

Кнопка — button, key

Конденсатор — capacitor

Корпус — case, package

Коэффициент усиления — gain

— по напряжению — voltage gain

Мост — bridge

— выпрямительный — rectifier bridge

Мощность — power

Набор — kit

Напряжение — voltage

      высокий уровень ~high voltage

      низкий уровень ~low voltage

— питания supply voltage

— смещения bias

Ноль — zero

Объединение (каналов) — multiplex

Отношение — ratio

Пайка — soldering

Память — memory

Панель (для микросхем) — socket

Параллельный — parallel

Переключатель — switch

Период (импульсов) — cycle

Питание — power

      источник питания — power supply

Плата — board

Поддержка — support

Показатель — rate

Полоса (частот) — band

       ширина полосы — bandwidth

Полупроводник — semiconductor

Поправка — correction

Последовательный — serial

Преобразователь — converter

        аналого-цифровой ~analog-to-digital converter, ADC

Проверка, контроль — check

Провод — wire

        гибкий~ (шнур) — cord

Проводник — conductor

Произвольный — random

Прямой — direct

Регулировать — adjuist, control

Регулировка — adjuistment

Режим (работы) — mode

Синхронизация — clock

Сложение — adding

Смещение — offset

Соединение — connect

Соединитель (разъем) — connector

Состояние — state

Стирание — erase

Сток — drain

Сторожевой — (таймер) watchdog

Схема — circuit

Счетчик — counter

Ток — current

— базы — base current

       втекающий~ sink current

       вытекающий~ source current

— насыщения — saturation current

        переменный~ alternating current, AC

        постоянный~ direct current, DC

— смещения — bias current

        сила тока — amperage

Точность (погрешность) — accuracy

Умножение — multiplication

Умножитель — multiplier

Управление — control

        центральное устройство управления — mean control unit, MCU

Усилитель — amplifier

Установка — set

        начальная~ (переустановка) — reset

Устройство — device

Утечка — leakage

Хранение — storage

Частота — frequency

Шестнадцатеричный — hexadecimal

Шина — bus

Элемент (гальванический) — cell, battery


Таблица П6.2

Англо-русский

AC (alternating current) — переменный ток

Access — доступ

Accuracy — точность (погрешность)

ADC (analog-to-digital converter) — аналого-цифровой преобразоватепь

Adding — сложение

Adjuist — регулировать

Adjuistment — регулировка

Amperage — сила тока

Amplifier — усилитель

Band — полоса (частот)

Bandwidth — ширина полосы

Battery — элемент (гальванический)

Bias — смещение; напряжение смещения

Binary — двоичный

Board — плата

Bridge