8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 89 90 91 92 93 94 95 ... 105

а

Старт

Адресные разряды Ведомого

R/W

Адресные разряды

Разряды данных

б)

Старт

Сторт A S

Остолоные биты данных

Стоп

Адресные разряды Ведомого

J

Адресные разряды

R/W

Адресные разряды Ведомого

Разряды данных

Рис. 7.16. Временные диаграммы работы MK41T56: а - запись; б - чтение

Схема соединения МК41Т56 с экспериментальной платой параллельного порта показана на рис. 7.17. Контакт D1 управляет линией SDA, данные с которой считываются при помощи контакта S1. Контакт С1 управляет линией SCL.

Текст программы 4156.PAS на ТР6

Program IIC timer,

(«Программа управления хронометром MK41T56 *)

(«Компьютер выступает в качестве ведущего устройства, другие микросхемы ведомые *) («Соединение с экспериментальной платой параллельного порта: D1 = SDA, С1 = SCK, S1 = SDA «)

Функции битов регистра управления определены следующим образом:

бит 7управление выходом, 0 или 1

бит 6бит проверки частоты (если 1, проверка частоты)

бит 5знаковый бит

биты 4-0не используются

Данные можно считать или записать в микросхему по шине PC. Операция записи устанавливает значения времени и даты. Операция считывания извлекает из нее данные. После генерации условия «СТАРТ» в память микросхемы заносятся 8 бит данных из ведущего передатчика. Адрес ведомой микросхемы имеет следующий формат (старший разряд слева): 1, 1,0, 1, 0, 0, 0, R/W. Эти биты составляют постоянный адрес хронометра на шине. Бит R/W определяет тип операции - запись (R/W = 0) или чтение (R/W = 1). Когда адрес ведомой микросхемы передан, в нее посылается адрес, определяющий конкретную ячейку памяти. Он записывается в регистр адреса и принимает значения от 0 до 64. Затем в режиме записи передаются 8 бит данных, которые и помещаются в указанную ячейку памяти. После этого в режиме чтения снова генерируется условие «СТАРТ», потом передаются биты адреса ведомой микросхемы, где бит R/W установлен в 1. И наконец, считываются данные, хранящиеся в указанной ячейке памяти. Временные диаграммы работы ИС представлены на рис. 7.16.


+ 5В

Контакты на экспериментальное плате параллельного порто

32,768кГи

Интерфейс 12С

Рие. 7.17. Экспериментальная схема МК41Т56

(«Условия шины 12С: SCL=1, SDA=1: SCL=1. SDA=1 - О-SCL=1. SDA=0 - 1: допустимые данные: изменение данных-

uses crt,dos,

шина не занята условие "СТАРТ" условие СТОП"

данные постоянны, когда SCL=1 когда SCL=0 *)

Ш c:\ioexp\tplib1\pas} var

i, il: integer,

second,minute,hour,day,date,month, year, control word•byte;

(*TP6 программная библиотека PC № 1, преобразование в двоично-десятичный формат *) Function BCD(data.byte)byte,

(«Преобразование двоичного кода в двоично-десятичный.*) begin

BCD:=round((data div 10)*16+10<frac(data/10)); end;

(«ТР6 программная библиотека PC № 2, запись данных в линию SDA.*) Procedure SDA(data.byte); («Помещение данных в линию SDA.*) begin

wr11e data port(P add ress,1-d ata), end;

(*TP6 программная библиотека PC № 3, управление линией SCL,*) Procedure SCL(data-byte); (•Помещение данных в линию SCL *)


begin

write cont rol port(P add ress,1-data); end;

(*TP6 программная библиотека I2C № 4, инициализация шины PC.*) Procedure INIT;

(•Генерация условия инициализации, SDA=SCL=1.*) begin

SDA(1);

SCL(1);

delay(100); end;

(*TP6 программная библиотека 1гС № 5, генерация условия "СТАРТ",*)

Procedure START;

(•Генерация условия "СТАРТ".*)

begin

SDA(1); SCL(1); SDA(O); SCL(O); end;

(»TP6 программная библиотека PC № 6, генерация тактовых импульсов для подтверждения.*) Procedure АСК;

(•Генерация подтверждения и соответствующих тактовых импульсов.*) begin

SCL(1); SCL(O); end;

(*TP6 программная библиотека PC № 7, передача данных в шину PC *) Procedure TRANSMlT(data:byte); (•Передача данных через шину.*) var

1:byte; begin

for i:=8 downto 1 do begin

SDA(round(data and bit weight(i)/bit weight(i))); («Помещение данных в линию SDA,

когда SCL=0.«)

SCL(1); («SCL=0 - 1.«) SCL(O); («SCL=1 - 0.«)

end;

SDA(1); (*SDA становится равным 1 *) АСК;(«Генерация тактовых импульсов подтверждения.*)

end;

(*ТР6 программная библиотека PC № 8, прием данных от шины РС.«) Function receive(stop flag:boolean);byte; («Прием данных через шину.*) var

i,dummy:byte; begin dummy;=0;

for i:=8 downto 1 do begin

SCL(1);(*SCL становится равным 1.*)

delay(1);



0 ... 89 90 91 92 93 94 95 ... 105