Поиск сообщества
Показаны результаты для тегов 'сдвиговый регистр'.
Найдено: 8 результатов
-
Здравствуйте. Затеялся собрать анализатор спектра на светодиодах, 20x20 светодиодов, МК ATMEGA328P. Долго ломал голову, как переключать столбцы без использования МК, дабы его не загружать.И вот что у меня получилось. Набросал тестовую прошивку для теста в протеусе. При инилизации подается импульс на вторую ножку U4a, и на предпоследнем столбце. Думал сетку сделать на 5 сдвиговых регистрах (как раз 40 сигнальных линий), но боюсь мощности МК не хватит для обработки FFT и вывода на матрицу, будет подвисать. Кто что думает по поводу схемы? бегущая строка.pdsprj Natali_2012_program.hex
- 26 ответов
-
На спутниковом ресивере вышел из строя дисплей (4-х разрядный индикатор, с двоеточием), на всех 4-х разрядах светится только часть сегментов, и в рабочем режиме, и часы в стэнд-бае. Сам ресивер работает нормально, на экран ТВ вся инфа выводится корректно, значит проблема в плате индикатора? Что в этом случае вышло из строя-микросхема IN74HC164AN или сам индикатор? Продаются микросхемы SN74HC164N DIP (сдвиговый регистр), ноги такие же, подойдёт ли на замену? (буквы другие, последние буквы вроде корпус, а первые-???).
- 8 ответов
-
- IN74HC164A
- SN74HC164N
-
(и ещё 2 )
C тегом:
-
Показано управление сдвиговым регистром 74HC164 в симуляторе Proteus. На основе этой схемы собраны бегущие огоньки из 16 светодиодов. Бегущие огни.rar
- 20 ответов
-
1
-
- 74hc164
- бегущие огни
-
(и ещё 1 )
C тегом:
-
Здравствуйте. Собираю светодиодный индикатор. Использую stm32F103C8T6, сдвиговый регистр 74HC595 (HYC 825Z - не знаю что это значит), светодиодный индикатор на 10 светодиодов SHB10R. Подключаю по такой схеме https://cxemka.com/upload/art/74hc595_spi_stm32/connection_stm32_74hc595_spi.svg Код в Keil с использованием HAL и Cube Проблема: на индикаторе то вообще ничего не зажигается, то надо раз 10 нажать резет и только спустя какое то время оно начинает работать, но не правильно: По идее оно должно зажечь сначала весь индикатор, 4 светодиода, 2 и так по кругу. Но оно иногда проскакивает состояния, зажигает левые светодиоды. Подскажите в чем может быть проблема, изучаю stm совсем не много еще толком ничего не знаю. Можно ли вообще использовать HAL для передачи данных? или писать самому.
-
Доброго дня! Много дней бьюсь со схемой, разводил сам, делаю автополивалку на ESP32 для комнатных растений. Суть загвоздки. Без нагрузки всё работает идеально, регистры переключаются, всё короче чудно. Но как только подключаешь хотя бы один движок - всё, финита. В момент запуска открытый(т.е. низкий. Т.к. транзы P-канальные, низкий уровень=открытый транзистор. Буду далее называть низкий уровень на регистре открытым) разряд регистра закрывается, при этом может самопроизвольно открыться более высокий разряд(а может самый низкий. Или даже возможно ещё какой, не ловил - не знаю). При этом программа на МК продолжает исполняться штатно. Если принудительно постоянно писать в регистр нужное состояние, движки кое-как крутят, но это лютый костыль и вообще не дело. На картинке уже вторая итерация платы, в ней добавлено раздельное питание для силовой и логической части. Т.е. регистр потребляет свои +5В, а исток транзисторов подключён к своим +5. Это вроде как решает проблему, но ровно до того момента, пока я не подключаю питание датчика (датчик влажности почвы, простой, резистивный, питание на все датчики разом открывает ещё один транзистор, подключенный к 0-му разряду регистра) - после этого схема снова начинает чудить. Перебросил питание датчиков с 3.3 на +5(придётся городить делитель для сигнальной линии, но пусть так, чёрт с ним), чудеса более-менее прекращаются. Но всё равно, нет-нет да откроется ненужный разряд. Чую, что где-то порылся какой-то косяк, но найти его не могу.
-
Привет всем. Хочу собрать калькулятор на atmega 328p. Но не как не могу запустить LCD TIC55, основанный на сдвиговом регистре с чипом ML1001. Никогда не связывался с подобным дисплеем. Понравился очень экономичным потреблением тока и экономным количеством выводов управления - всего 3. Проблема в тактирование, как написать программу для вывода хотя б одного символа, документации мало нашел, так же есть библиотека для atmel studio 5, сам пользуюсь 7. Библиотку переделал под 7 но дисплей так ничего и не вывел. Подскажите как правильно написать программу, язык значения не имеет хоть assembler или С. Мне надо что б дисплей вывел хоть один символ корректно, дальше разберусь TIC55 Display Module.pdf
-
Сложение по модулю 2 на триггерах (сдвиговый регистр)
Корлет опубликовал тема в Школьникам и студентам
Надо составить схему регистра на триггерах, выполняющую сложение по модулю два. Складывается два двоичных числа: то, которое хранится на триггере, и то, которое подаётся на вход. С конъюнкцией получилось легко, а вот xor никак не могу придумать. Если кто знает, дайте, пожалуйста, схему или хотя бы расскажите на словах, что где.-
- сложение по модулю
- xor
- (и ещё 5 )
-
Здравствуйте. Прошу помощи в теме статитическая индикация 6 разрядного 7ми сегментного индикатора по 2м проводам Data и Clock. Есть такой код для 3х разрядного индикатора в CVavr Си Хочу закидывать данные в каждый разряд отдельно, и выводить эти функции в прерываниях avr микроконтроллера. // cd4094 control example by kalobyte.com 2009 #include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h> #define REG_PORT PORTB #define REG_DDR DDRB #define REG_PIN_DATA 3 #define REG_PIN_CLK 4 //--- #define REG_DATA_ON REG_PORT|=1<<REG_PIN_DATA; #define REG_DATA_OFF REG_PORT&=~(1<<REG_PIN_DATA); #define REG_CLK {REG_PORT|=1<<REG_PIN_CLK;REG_PORT&=~(1<<REG_PIN_CLK);} unsigned char digs[10]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; // katode // unsigned char digs[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; //anode void cd4094_init(void){ char i=0; while(i!=24){ REG_CLK i++; } } void cd4094(int dig){ char i,tmp,j; //dig = 123; int div[4]; div[1] = digs[dig%10]; dig = dig/10; div[2] = digs[dig%10]; div[3] = digs[dig/10]; for(j=3;j>0;j--){ tmp = div[j]; for(i=8;i>0;i--){ if(tmp & 0x80){ REG_DATA_ON } else {REG_DATA_OFF} tmp <<=1; REG_CLK } } } int main(void){ int i=1; REG_DDR = (1<<REG_PIN_DATA)|(1<<REG_PIN_CLK); REG_PORT = (0<<REG_PIN_DATA)|(0<<REG_PIN_CLK); cd4094_init(); //cd4094(2); while(i<999){ _delay_ms(1000); cd4094(i); i++; } return 0; } Вот такая схема
-
- Статическая
- индикация
- (и ещё 3 )