Не работает сдвиговый регистр

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс окт 06, 2013 17:15:02

Сообщение de1m »

Всем привет, это я! ))

Сперва картинки:
Изображение
Изображение

Там нарисовано, как я всё это поключил.
Я хотел подключить пару цифер, но почему-то не работает. Я теперь накидал небольшую программу, для того чтобы проверить работает ли сдвиговый регистр. Должны просто по очереди загораться лампочки, но не загораются. Если управлять ими напрямую через микроконтроллер то работает.

Сдвиговых регистров у меня много, я пару разных попробывал, но везде один результат, думаю, что где-то в подключении ошибка.

Может кто подсказать, что я сделал не правильно.
Вложения
Shift_Registr_LED_Test.c
(1012 байт) 241 скачивание
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

Не видно блокировочных конденсаторов по питанию. :( Ну, да ладно. :)
В процедуры latch и strob задержку между сменой уровней не пробовал ставить?
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс окт 06, 2013 17:15:02

Сообщение de1m »

Kavka писал(а):В процедуры latch и strob задержку между сменой уровней не пробовал ставить?
фикус. В смысле я только что попробывал, но эффекта не дало.

Код: Выделить всё

void latch()
{
	//latch - ein/aus
	PORTB|=(1<<ST_CP); // HIGH
	_delay_ms(10);
	PORTB&=(~(1<<ST_CP));//LOW
}


void strob()
{
	PORTB|=(1<<SH_CP); //HIGH
	_delay_ms(10);
	PORTB&=(~(1<<SH_CP)); //LOW
}
Друг Кота
Аватара пользователя
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

Котов, которые не ставят блокировочные конденсаторы, надо досрочно кастрировать. Схема без блокировочных конденсаторов, как кот без яиц. Работать должным образом не будет.
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс окт 06, 2013 17:15:02

Сообщение de1m »

Барсик писал(а):Работать должным образом не будет.
Ну так подскажите, куда их там. Я сегодня долго про них читал, вроде как понял, но не очень уверен.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Модели в протеусе не нужны блокировочные кондюки. Они только время эмуляции будут сжирать. Да и в такой простой схеме в железе, тем более отладочной, они не нужны. А по сути ставятся емкости 0,1мкФ параллельно питающим лапкам у микросхем.
Нарисовал вашу схему в протеусе, указал на вашу программу. Оба светодиода переключаются.
Docendo discimus
Контактная информация:
Реклама
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс окт 06, 2013 17:15:02

Сообщение de1m »

pyzhman писал(а):Нарисовал вашу схему в протеусе, указал на вашу программу. Оба светодиода переключаются.
В протеусе она и у меня переключается, но в живую не хочет.
Друг Кота
Аватара пользователя
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

pyzhman писал(а):Да и в такой простой схеме в железе, тем более отладочной, они не нужны.
Мой коллега по работе однажды долго так отлаживался :))) Перебрал массу вариантов. Но проблему решили блокировочные конденсаторы 0,1 мкф.
de1m писал(а):подскажите, куда их там
Как уже было сказано, ставятся между общим проводом и питанием микросхем, как можно ближе к выводам микросхемы. Конденсаторы должны быть керамическими, ёмкостью 0,1 - 0,47 мкф. Обычно 0,1 вполне достаточно. Посмотрите на какую-нибудь серьёзную буржуйскую плату. На ней полно конденсаторов с маркировкой "104".
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс окт 06, 2013 17:15:02

Сообщение de1m »

Барсик писал(а):На ней полно конденсаторов с маркировкой "104".
Именно такие у себя нашел и подключил паралелльно к VCC ноге микроконтроллера и +.

Изображение

Но ничего не показывает.

Я это правильно подключил? Если нет, то куда надо было?
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Сообщение Rtmip »

Надо конденсатор подключить к "+" и "-" как можно ближе к МК.
Надо 13 ножку 74hc595 тоже подключить согласно схеме, судя по фото она в воздухе.
Надо проверить питание, полярность и вольтаж, доходит ли оно до микросхем и до диодов.
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Барсик писал(а):долго так отлаживался
Сколько и каких микросхем было в схеме? Какое было питание (в плане "чистоты")? Сразу вылить всё на серого как-то некрасиво. :))
2de1m: монтаж проверяем. И подтягиваем Reset к питанию.
Docendo discimus
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

pyzhman писал(а):Сколько и каких микросхем было в схеме?
Один быстродействующий операционный усилитель. Схема подключена к заводскому лабораторному источнику питания проводами метровой длины.
В другом случае другой товарищ делал что-то на 500 серии, за давностью лет уже не помню подробностей.
А в незапамятные времена я сам что-то делал на 155 серии. Триггеры переключались очень причудливо. :)
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Тады канечна. Быстродействующие, да ещё метр проводов. 500-ая серия совсем требовательна к питанию. Ну а 155-ая при количестве корпусов штук до 7-ми вполне норм. Только подтяжку R- и S- нужно. Я когда-то с 555-ой намаялся - кондюки были, а триггера "как хочу так и работаю", оказывается ресеты/сеты не подтянул. Ну это уже из серии "Вечер воспоминаний". :))
2ТС: ну как? завелась схема?
Docendo discimus
Контактная информация:
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс окт 06, 2013 17:15:02

Сообщение de1m »

pyzhman писал(а):2ТС: ну как? завелась схема?
Извеняюсь, что долго не отвечал. В общем заработало.

Я не пойму как, но я забыл подключить десятую ножку к плюсу и тринадцатую к земле (как это было сделано в протеусе). Когда я это всё подключил, то сразу заработало.

Мигает правда медленно(вместо положенных 0,3с) где-то каждые 3с, но я думаю, что я частоту не правильно выставил.

Всем спасибо за помощь!!
Ответить

Вернуться в «Практика»