Мастер и работорговля микроконтроллерами

G

garg29

Guest
Я пытаюсь создать проект просто для удовольствия.
Проект предположим, я mesaure некоторые физические
собственности скажем температура 10
мест каждый, расположенные поблизости только.Я должен использовать
Славянский и мастер метод, как я обращено на картинке
ниже.какой метод следует следить за программирование.
Я буду очень благодарен, если кто-нибудь может представить, пожалуйста
лишь краткий пример на этот счет.

Спасибо заранее.

Garg
Извините, но вам необходимо войти в аккаунт это вложение

 
В этой ситуации я использую Modbus (или mechanisams из Modbus) или нечто подобное (я это PLC's).
should put message:

Мастер
должен положить сообщение:
ABCD
A - мастер-адрес, например 01h
B - славянский адресу например 04h (третий славянский MCU)
C - команда (дайте мне температуру, или comething другое, или поставить вывод Сцепляющий 1 "1" или ....), например, дают временный 01h, 02h дать время, 03h установить output1 ....
Д - контрольная (Есть много типов CS, так что выбор ...
should give answer:

Невольничий
должны дать ответ:
ABCDE

A - славянский адрес
B - мастер-адрес (01h)
С -
количество байтов, которое работорговля отправке
D - данные (C число байт данных)
E - контрольная

Привет,

Mr.Cube

 
Благодаря Mr.Cube.Должен ли я использовать SCL
И ПДД два типа проволоки ссылку для всей сети (как я обращено).Извините, если оно слишком основных ....
я в новых сообщений

 
Как правило,

Вы всегда можете использовать I2C, он сделал для этого вида связи (мастер - рабы).

Я думаю, что вы можете найти множество примеров, и кодов на edaboard.

С уважением.

Mr.Cube

 
I2C напоминает мне ds1307 RTC чип, который я пытался commnicate с 89c51 я сделал, но с ПОС микроконтроллер я оказалась безуспешной.В EEPROM 24cxx Я сделал вновь 89c UCS Нужно ли считать же способом, как в коде прилагается

Спасибо ........ с наилучшими пожеланиями.
GargКод:

# включить <reg52.h>

# включить <intrins.h># определить ACK 1

# определить NO_ACK 0Неподписанный символ i2;sbit ПДД = P1 ^ 7; / / подключиться к ПДД Сцепляющий (Data)

sbit SCL = P1 ^ 6; / / соединение с SCL PIN (часы)
//-------------------------------

/ / Начало I2C

//-------------------------------

Начало недействительным (недействительными)

(

ПДД = 1;

SCL = 1;

_nop_ (); _nop_ ();

ПДД = 0;

_nop_ (); _nop_ ();

SCL = 0;

_nop_ (); _nop_ ();

)//-------------------------------

/ / STOP I2C

//-------------------------------

Остановка недействительным (недействительными)

(

ПДД = 0;

_nop_ (); _nop_ ();

SCL = 1;

_nop_ (); _nop_ ();

ПДД = 1;

)//-------------------------------

/ / Запись I2C

//-------------------------------

недействительным WriteI2C (неподписанные символ данных)

(для (i2 = 0; i2 <8; i2 )

(

ПДД = (Данные И 0x80)?
1:0;

SCL = 1; SCL = 0;

Данные <<= 1;

)SCL = 1;

_nop_ (); _nop_ ();

SCL = 0;)//-------------------------------

/ / Читать I2C

//-------------------------------

Неподписанный ReadI2C символ (бит ACK_Bit)

(Неподписанный характеристик данных = 0;ПДД = 1;

для (i2 = 0; i2 <8; i2 )

(

SCL = 1;

Данные <<= 1;

Данные = (Data | ПДД);

SCL = 0;

_nop_ ();

)если (ACK_Bit == 1)

ПДД = 0; / / Отправить ACK

еще

ПДД = 1; / / Отправить NO ACK_nop_ (); _nop_ ();

SCL = 1;

_nop_ (); _nop_ ();

SCL = 0;возвращение данных;

)//-------------------------------

/ / Прочитать 1 байт форме I2C

//-------------------------------

Неподписанный символ ReadBYTE (неподписанные INT Адрес)

(

Неподписанный характеристик данных;

Start ();

WriteI2C (0xA0);

/ / WriteI2C ((беззнаковое знаков) (Адрес>> 8) И 0xFF); / / .... не подходит для небольших EEPROMs

WriteI2C ((беззнаковое символа) Адрес И 0xFF);

Start ();

WriteI2C (0xA1);

Данные = ReadI2C (NO_ACK);

Stop ();

возвращение (Data);

)//-------------------------------

/ / Запись 1 байта в I2C

//-------------------------------

недействительным WriteBYTE (неподписанные INT Адрес, беззнаковое символ данных)

(

Start ();

WriteI2C (0xA0);

/ / WriteI2C ((беззнаковое знаков) (Адрес>> 8) И 0xFF); / / отправить адрес высокий .... не подходит для небольших EEPROMs

WriteI2C ((беззнаковое символа) Адрес И 0xFF); / / отправить адрес низким

WriteI2C (Data);

Stop ();

)

 
Вот некоторые примеры кода I2C.

Угощайся.
Извините, но вам необходимо войти в аккаунт это вложение

 

Welcome to EDABoard.com

Sponsor

Back
Top