Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467

Как правильно подключить МК к дешифратору семисегментника К176ИД3?

26.06.2012, 12:17. Показов 7927. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю "бомбу" на мк,тоесть отсчитывает 10 секунд,на десятой подаеться напряжение на светодиод.
программу написал,вопрос как правильно подключить мк к к176ид3?
вот код на си
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <mega8515.h>
#include <delay.h>
 
void main(void)
{ 
    DDRB = 0b1111;
    DDRD = 0b1;
    DDRC = 0b0;
    PORTC = 0b0;
    while(1)
    {
    if(PINC==0b10000000)
    { 
    PORTB=0b0000;
    delay_ms(1000);
    PORTB=0b0001;
    delay_ms(1000);
    PORTB=0b0010;
    delay_ms(1000);
    PORTB=0b0011;
    delay_ms(1000);
    PORTB=0b0100;
    delay_ms(1000);
    PORTB=0b0101;
    delay_ms(1000);
    PORTB=0b0110;
    delay_ms(1000);
    PORTB=0b0111;
    delay_ms(1000);
    PORTB=0b1000;
    delay_ms(1000);
    PORTB=0b1001;
    delay_ms(1000);
    PORTB=0b0;
    PORTD=0b1;
    delay_ms(2000);
    PORTD=0b0;
    }
    }
}
Ребят подскажи пожалуйста..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.06.2012, 12:17
Ответы с готовыми решениями:

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

Как правильно подключить?
Купили новую,простейшую мп,столкнулись с проблемой подключения F панели,пожалуйста напишите подробно,если можно обведите цветами,куда какой...

Как правильно подключить?
Добрый день. Тут такое дело. Подключаю старенький ЖД на 80гб. Хочу на него ос поставить. При входе в биос,я его там вижу. А дальше...

13
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
26.06.2012, 14:47
0b10000000
...
0b0010
...
ничего не смущает?

программу написал,вопрос как правильно подключить мк к к176ид3?
...обычно наоборот делается. Попробуем сделать декомпозицию из ваших настроек (что наводит на мысли о чужой программе).

Вот она, конфигурация DDR для регистров портов:
C
1
2
3
4
5
DDRB = 0b1111;
    DDRD = 0b1;
    DDRC = 0b0;
...
    PORTC = 0b0;
Порт B: 0x0b1111 - кстати бред для 8-ми битного регистра порта, так что думайте (оно бы и не скомпилировалось).
Порт D: 0хB1 = 10110001 (нулевой бит регистра порта на вывод, 1-3 на вход, 4..5 на выход, 6-й на вход, 7 на выход)
Порт С: 0хB0 = 10110000 (с 0...3 на вход, 4...5 на выход, 6 на вход, 7 на выход)

Теперь берем схему включения ИД3:
Название: 176ИД3.gif
Просмотров: 952

Размер: 1.3 Кб
a-g - выходы на сегменты
A-D - информационные входы
S - разрешение запоминания
(S=H - пропускание сигнала,
(S=L - фиксация сигнала)
M - вход управления инверсией
K - вход блокировки
(K=H - все выходы запираются)
Отсюда видим, что для работы одиночного дешифратора нам хватит одного порта (считаем, что питание уже подключили):
1- конфигурация, допустим порта B, будет следующая DDRB = 0xFE (что эквивалентно побитному распределению в регистре 01111111, т.е. B0..B6 будут сконфигурированы на выход) ...хотя, если восьмой не используется для приема чего-нибудь, то можно сразу 0хFF
2- управление ...для подачи кода используем, допустим, биты B0...B3 (с нулевого по третий биты регистра порта В), для немедленной смены индикации установим вход S дешифратора в "1" (т.е. подадим "1" в бит B4), вход M дешифратора без инверсии (т.е. скажем бит B5 пусть будет нулевым), вход К дешифратора без блокирования (т.е. скажем бит B6 будет нулевым).

Все это распределение условно (ибо зависит от схемы и разводки по печати, как удобнее), но позволяет задать маску для зажигания (управления) индикаторами. Т.е. для зажигания:
- нуля на индикаторе = 0001 0000 = 0x10
- единицы = 0х11
- двойки = 0х12
- и т.д.

Если определить в дефайнах:
C
1
#define SetMask(data, mask)      data |= mask
где: 0х10 - наша маска, устанавливающая режимы для входов S, M, K дешифратора и не влияющая на младшую тетраду в байте. Но, вы должны проверять, чтобы 'data' было не более 15-ти. После наложения маски подаем на PORTB = data.

Cмысл ясен?

p.s.: есть еще множество вариантов управления, вплоть до явного задания массива цифр с сформированными готовыми кодами управления, типа такого
C
1
const unsigned char Digit[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
выборка из массива идет с большей скоростью (нужно при динамической индикации, к примеру).
1
1183 / 658 / 113
Регистрация: 15.05.2012
Сообщений: 4,067
26.06.2012, 15:10
Не красиво подключать 176-ую, требующую питание 9 вольт, к мк.
1
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
26.06.2012, 15:39
...на самом деле, 9 вольт питания для данной ИМС приведены в справочниках как напряжение, при котором сняты типовые характеристики. Данный дешифратор с открытым стоком, как и вся остальная 176-я серия допускает гораздо меньшее напряжение питания и большее.

"9 вольт" пошло от стандартного применения при работе на нагрузку из ИВЛ-индикаторов, но тем не менее дешифратор вполне прекрасно справляется со светодиодными АЛС-ками при 3...5 вольтах. Вот только ограничивающие резисторы нужны будут на выходах (в ИД2 уже предусмотрены).

p.s.: вот другой момент, что данные дешифраторы сняты с производства и только в остатках, в то время как уже есть современные драйверы светодиодов.
1
35 / 35 / 1
Регистрация: 07.02.2012
Сообщений: 79
26.06.2012, 18:05
Уважаемый raxp, Вы погорячились. У ТС в листинге двоичная запись чисел.
Т.е. 0b1111 не 0xB1111, а 0xF.

Если индикатор светодиодный, дешифратор здесь вообще лишний, сегменты прямо на порты, знак выводить по таблице.
Хотя у 176ИД3 выходной ток всего 2 мА, при 9В. Нормальный светодиодный индикатор будет еле светится.
1
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
26.06.2012, 19:19
Если индикатор светодиодный, дешифратор здесь вообще лишний, сегменты прямо на порты, знак выводить по таблице.
если вы не заметили, TC сначала программу "написал", и уже потом решил подумать за схему подключения. На самом деле, использование дешифратора оправданно тогда, когда МК нету, тут с вами согласен.

Хотя у 176ИД3 выходной ток всего 2 мА, при 9В. Нормальный светодиодный индикатор будет еле светится.
тут тоже согласен, с тем уточнением, что для этого на выходе ставятся транзисторные ключи, как вот тут:


Однако, как уже было подмечено, при наличии МК "городить огород" не стоит.
1
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
27.06.2012, 13:12  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
Попробуем сделать декомпозицию из ваших настроек (что наводит на мысли о чужой программе).
моя программа...
Цитата Сообщение от raxp Посмотреть сообщение
Порт B: 0x0b1111 - кстати бред для 8-ми битного регистра порта, так что думайте (оно бы и не скомпилировалось).
и скомпилировылось и подавала напряжение на порты...

Сам я в 8 классе работаем на кружке робототехники,ну руководитель придложил собрать такую штуку пока аналоговую,а я решил на мк.Тем более что раньше изучал С++(не сильно долго),решил сделать на С...

Цитата Сообщение от raxp Посмотреть сообщение
TC сначала программу "написал", и уже потом решил подумать за схему подключения.
я хотел подавать значения на порты A-D,но выказвал бред поэтому обратился сюда...

Цитата Сообщение от raxp Посмотреть сообщение
Вот только ограничивающие резисторы нужны будут на выходах (в ИД2 уже предусмотрены).
Учту...


Цитата Сообщение от raxp Посмотреть сообщение
p.s.: вот другой момент, что данные дешифраторы сняты с производства и только в остатках, в то время как уже есть современные драйверы светодиодов.
Просто эти есть на них и решил делать..

Еще хотел посылать сигналы с мк через буферы...

Добавлено через 2 минуты
Хотел подавать через первые порты B
0
35 / 35 / 1
Регистрация: 07.02.2012
Сообщений: 79
27.06.2012, 19:40
А в чём проблема? Ваша программа выводит двоичный код числа на PORTB0-3.
К ним и подключайте четыре входа 176ИД3 - A, B, C и D соответственно.

Как я понимаю, индикатор и светодиод - единственные подключенные элементы
к мк. Тогда зачем микросхема дешифратора? Подключайте к порту сегменты индикатора
(через резисторы), например к PORTB0 - сегмент "a", к PORTB1 - сегмент "b" и т.д..
Для индикации знака 1 надо зажечь сегменты "b" и "c". Значит PORTB=0x00000110.
Это для индикатора с общим катодом.
Если с общим анодом (зажигается 0, гасится 1) то значение инвертируем - PORTB=0x11111001.
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
28.06.2012, 12:02  [ТС]
Цитата Сообщение от bill_vs Посмотреть сообщение
А в чём проблема? Ваша программа выводит двоичный код числа на PORTB0-3.
К ним и подключайте четыре входа 176ИД3 - A, B, C и D соответственно.
слать импульсы слал,а вот к176ид3 выводила бред.

Добавлено через 5 минут
Ребят не как еще не пойму,почему мк пропускает эту строчку(то есть сразу при подаче питания начинает подавать напряжение на порты),а в протиусе все норм?
Цитата Сообщение от leoned Посмотреть сообщение
if(PINC==0b10000000)
то есть в протиусе пока не подашь напряжение на ножку C алгоритм подачи напр. не выполнятся.
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
28.06.2012, 13:46
почему мк пропускает эту строчку(то есть сразу при подаче питания начинает подавать напряжение на порты
...а вы эту ножку посадите через резистор 10-100 кОм на землю (минус питания) ...не в протеусе, а для реального МК.

а в протиусе все норм?
никогда не расчитывайте на полную адекватность симуляции реальному использованию.
1
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
28.06.2012, 16:52  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
...а вы эту ножку посадите через резистор 10-100 кОм на землю (минус питания) ...не в протеусе, а для реального МК.
Цитата Сообщение от raxp Посмотреть сообщение
никогда не расчитывайте на полную адекватность симуляции реальному использованию.
Благодарю!
А то так и мучался бы)
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
17.07.2012, 18:39  [ТС]
подключил порт к порту ножку к ножки,все как в програмке,МК сдох
надо было буферки воткнуть...
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
17.07.2012, 20:21
...где-то вы нахимичили в монтаже.
0
 Аватар для leoned
31 / 31 / 0
Регистрация: 30.06.2011
Сообщений: 467
18.07.2012, 07:33  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
...где-то вы нахимичили в монтаже.
может быть...
хотя все проверял раза 3.
во всяком случае МК не вернуть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2012, 07:33
Помогаю со студенческими работами здесь

Как правильно подключить ваттметр?
Помогите с расположением W3

Как правильно подключить Access?
Изучаю VB.Net, создал проект на 3 формы с подключенной базой данных, база данных лежит в корневой папке проекта. Все в целом работает, но...

Как правильно подключить спикер?
Как правильно подключить спикер? Материнка Asrock h110m-dgs

Как правильно подключить библиотеку
Саламалейкум, парни. Подключаю вот эту библиотеку matplotlibcpp через #include &quot;&lt;путь к matplotlibcpp.h&gt;&quot;, вылазят ошибки...

Как правильно подключить модуль?
Помогите пожалуйста. Я в программирование полный чайник, но задание сделать нужно. Сделал VCL форму для линейного и квадратного уравнения с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
Выполнение асинхронных задач в Python с asyncio
py-thonny 12.05.2025
Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .
Работа с gRPC сервисами на C#
UnmanagedCoder 12.05.2025
gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru