ShiftOut()

Описание:

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

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

Синтаксис:

shiftOut(dataPin, clockPin, bitOrder, value)

Параметры:

dataPin: вывод, по которому будем слать данные (int)

clockPin: тактирующий вход, состояние его будет изменяться как только следующий бит будет готов к отправке(int)

bitOrder: в каком порядке перебираем биты; MSBFIRST или LSBFIRST.

(первый старший, или, первый младший)

value: данные для передачи (byte)

dataPin и clockPin должны быть сконфигурированы как выходные при помощи pinMode().

shiftOut может передать 1 байт (8 бит) поэтому требуется два шага для передачи значений, больших 255.

int data = 500;

// передаем старшие 8 бит

shiftOut(dataPin, clock, MSBFIRST, (data >> 8));

// и младшие 8 бит

shiftOut(data, clock, MSBFIRST, data);

Пример:

Смотрите схему подключения микросхемы сдвигового регистра 74HC595.

//**************************************************************//

// Name : shiftOutCode, Hello World //

// Author : Carlyn Maw,Tom Igoe //

// Date : 25 Oct, 2006 //

// Version : 1.0 //

// Notes : Code for using a 74HC595 Shift Register //

// : to count from 0 to 255 //

//****************************************************************

//Pin connected to ST_CP of 74HC595

int latchPin = 8;

//Pin connected to SH_CP of 74HC595

int clockPin = 12;

////Pin connected to DS of 74HC595

int dataPin = 11;

void setup() {

//set pins to output because they are addressed in the main loop

pinMode(latchPin, OUTPUT);

pinMode(clockPin, OUTPUT);

pinMode(dataPin, OUTPUT);

}

void loop() {

//count up routine

for (int j = 0; j < 256; j++) {

//ground latchPin and hold low for as long as you are transmitting

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, LSBFIRST, j);

//return the latch pin high to signal chip that it

//no longer needs to listen for information

digitalWrite(latchPin, HIGH);

delay(1000);

}

}









Дата добавления: 2015-03-23; просмотров: 848;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.