Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 2
Регистрация: 16.06.2017
Сообщений: 102
1

Некорректно горят семисегментные дисплеи

15.01.2018, 13:23. Показов 1591. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Хотел вывести число на семисегментный дисплей, поставил нужную задержку, но почему-то они не горят, а просто зажигаются и тухнут. Сделал как в одном из примеров, у него они просто горели, у меня почему-то зажигаются и тухнут. Если кто может помочь или была тема с таким, то помогите пожалуйста

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <mega64.h>
#include <delay.h>
 
static flash unsigned char digit[] = {       
(0b00111111),    //0       
(0b00000110),    //1       
(0b01011011),    //2       
(0b01001111),    //3       
(0b01100110),    //4       
(0b01101101),    //5       
(0b01111101),    //6       
(0b00000111),    //7       
(0b01111111),    //8       
(0b01101111)     //9  
};
 
 
void ind() {
 
         
        PORTD.0=1;
        PORTB=digit[1];
        delay_ms(5);
        PORTD.0=0;
        
        PORTD.1=1;
        PORTB=digit[2];
        delay_ms(5);
        PORTD.1=0;
       
       
        PORTD.2=1;
        PORTB=digit[0];
        delay_ms(5);
        PORTD.2=0;
        
       
 
}
 
void main(void)
{
 
PORTA=0x00;
DDRA=0x00;
 
PORTB=0x00;
DDRB=0b011111111;
 
PORTC=0x00;
DDRC=0x00;
 
PORTD=0x00;
DDRD=0b00001111;
 
PORTD=0x00;
DDRD=0x00;
 
while (1)
      {
       
      
      ind();
      
      };
}
Пока я только использую центральный дисплей
Миниатюры
Некорректно горят семисегментные дисплеи  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2018, 13:23
Ответы с готовыми решениями:

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

СМА ARISTON AQSL 85 CSI HA 080510580000 после подачи напряжения горят все светодиоды и не реагирует ни на одну кнопку, На блоке управления горят все светодиоды и не реагирует на кнопки
СМА ARISTON AQSL 85 CSI HA S/N 080510580000 по словам клиента машинку после окончания стирки...

Семисегментные часы
Здравствуйте, нужно сделать семисегментные (цифровые) часы на c#. Варианты реализации с помощью...

семисегментные индикаторы
Помогите составить схему пожалуйста

Семисегментные часы
Здравствуйте, уважаемые! :) Задача такая : Написать часы, которые отображают текущее время в виде...

28
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
15.01.2018, 14:04 2
У Вас схема подключение индикаторов под динамическую индикацию, http://avr-start.ru/?p=491 а программная реализация под статическую индикацию.
Хотя нет под динамическую, но криво реализованную
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.01.2018, 14:16 3
Цитата Сообщение от Svinopes Посмотреть сообщение
DDRD=0x00;
Странно, что вообще что-то зажигается. Хотя... протеус ... он много прощает.

Добавлено через 2 минуты
Цитата Сообщение от Витальич Посмотреть сообщение
криво
Не, не криво. Вот когда все 10 разрядов нужно будет зажигать, вот тогда и посмотрим.
0
0 / 0 / 2
Регистрация: 16.06.2017
Сообщений: 102
15.01.2018, 14:26  [ТС] 4
DDRD исправил) все равно ничего не поменялось
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.01.2018, 14:31 5
Цитата Сообщение от Svinopes Посмотреть сообщение
у него
Где?

Добавлено через 25 секунд

Не по теме:

Это я к тому, что содрать тоже надо уметь.

0
0 / 0 / 2
Регистрация: 16.06.2017
Сообщений: 102
15.01.2018, 14:37  [ТС] 6
https://www.youtube.com/watch?v=V1QQIvfasMw Он реализовывал что-то на подобии часов, но мне нужно просто вывести какие-то символы
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
15.01.2018, 14:46 7
http://forum.cxem.net/index.ph... nt=2299413
Делал когда-то универсальную библиотеку для семисегментника, правда там всего 8 разрядов. Но и на них могут быть проблемы с яркостью.
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
15.01.2018, 14:51 8
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Но и на них могут быть проблемы с яркостью.
Не должно, если правильно выбрать частоту сканирования, резисторы стоят в сегментах, да и переключение сделать "гасим сегменты далее выключаем разряд, включаем сегменты, включаем следующий разряд", хотя последние мерцание больше убирает.
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.01.2018, 15:01 9
Цитата Сообщение от Svinopes Посмотреть сообщение
какие-то символы
Какие?

Добавлено через 10 секунд
Сколько?

Добавлено через 1 минуту
Цитата Сообщение от Витальич Посмотреть сообщение
правильно выбрать частоту сканирования
И напряжение питания. Китайские, например, noname, и 40 держат при большой разрядности индикатора.
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
15.01.2018, 15:03 10
А также можно рассчитывать не статический ток, а динамический который мы пропустим через сегмент, он как правило больше и указан в нормальном мануале.
0
0 / 0 / 2
Регистрация: 16.06.2017
Сообщений: 102
15.01.2018, 15:06  [ТС] 11
В данном случаем цифры, потом может еще что-то. Я же могу управлять 7-ю светодиодами, поэтому и написал что символы, т.к. что хочешь можно вывести, главное правльно подать сигнал на эти светодиоды
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.01.2018, 15:09 12
А что говорит пошаговая отладка в протеусе?
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
15.01.2018, 15:35 13
Цитата Сообщение от Витальич Посмотреть сообщение
Не должно, если правильно выбрать частоту сканирования, резисторы стоят в сегментах, да и переключение сделать "гасим сегменты далее выключаем разряд, включаем сегменты, включаем следующий разряд", хотя последние мерцание больше убирает.
Не мерцание а засветку следующего разряда "эхом" предыдущего. Средняя яркость разряда это мгновенная яркость разделенная на количество. В случае ТСа на 10. Не уверен безопасно ли пускать через диоды десятикратный ток.
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.01.2018, 15:45 14
Полампера держат на ура(при даташитных 10мА).
0
0 / 0 / 2
Регистрация: 16.06.2017
Сообщений: 102
15.01.2018, 16:06  [ТС] 15
В пошаговой отладке вроде все идет как надо, только доходит до цикла while и там на пару миллисекунд загораются те числа и сразу тухнут.
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.01.2018, 16:21 16
Ваша схема, ваша программа. В чём проблема?
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <mega64.h>
#include <delay.h>
 
static flash unsigned char digit[] = {       
(0b00111111),    //0       
(0b00000110),    //1       
(0b01011011),    //2       
(0b01001111),    //3       
(0b01100110),    //4       
(0b01101101),    //5       
(0b01111101),    //6       
(0b00000111),    //7       
(0b01111111),    //8       
(0b01101111)     //9  
};
 
 
void ind() {
 
         
        PORTD.0=1;
        PORTB=digit[1];
        delay_ms(5);
        PORTD.0=0;
        
        PORTD.1=1;
        PORTB=digit[2];
        delay_ms(5);
        PORTD.1=0;
       
       
        PORTD.2=1;
        PORTB=digit[0];
        delay_ms(5);
        PORTD.2=0;
        
       
 
}
 
void main(void)
{
 
PORTA=0x00;
DDRA=0x00;
 
PORTB=0x00;
DDRB=0b011111111;
 
PORTC=0x00;
DDRC=0x00;
 
PORTD=0x00;
DDRD=0b00001111;
 
//PORTD=0x00;
//DDRD=0x00;
 
while (1)
      {
       
      
      ind();
      
      };
}
Миниатюры
Некорректно горят семисегментные дисплеи  
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.01.2018, 16:22 17
Цитата Сообщение от Svinopes Посмотреть сообщение
зажигаются и тухнут
После тухнут опять зажигаются?
0
0 / 0 / 2
Регистрация: 16.06.2017
Сообщений: 102
15.01.2018, 16:53  [ТС] 18
Там в архиве видео, как у меня работает
Вложения
Тип файла: 7z PDS 2018-01-15 16-50-10-17.7z (1.23 Мб, 4 просмотров)
0
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
15.01.2018, 17:03 19
Не открывается видео.
0
0 / 0 / 2
Регистрация: 16.06.2017
Сообщений: 102
15.01.2018, 17:24  [ТС] 20
а сейчас?

0
15.01.2018, 17:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2018, 17:24
Помогаю со студенческими работами здесь

Семисегментные индикаторы
Помогите составить схему, прикреплю пример схемы для вывода 1

Про семисегментные индикаторы
Имеется обычный блок из 8 семисегментных индикаторов и МК pic16f877A Удалось разобраться как,...

Семисегментные часы на GDI+
format PE64 GUI WINDOW_HEIGHT equ 32 ; Высота окна DLU TIMER_ID equ 123124 ...

Семисегментные часы на Паскале
Товарищи! Помогие пожалуйста! Как можно вывести цифры в виде семисегментных индикаторов для часов?...

Электронные семисегментные часы
Нужно с помощью библиотек SFML создать электронные семисегментные часы, которые идут в настоящее...

Электронные семисегментные часы
Не могу сделать электронные семисегментые часы с изпользованием библиотеки graphics.h. Нужна помощь...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru