Например TDA7294

Форум РадиоКот • Просмотр темы - Задача. Бегущая строка на МК PIC16F877
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 20:08:22

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 36 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Пн май 17, 2021 21:10:38 
Родился

Зарегистрирован: Пн май 17, 2021 21:02:56
Сообщений: 13
Рейтинг сообщения: 0
Доброго времени суток, господа! :beer: Есть задача, создать бегущую строку с основными требованиями:
- Индикация динамическая;
- Число знакомест >10;
- Данные считаются уже зашитыми в память МК. Сообщение должно выводится при нажатии на кнопку. ( аля подключили 3 кнопки и на нажатие каждой выводит определенное сообщение);
- Сообщение должно состоять из 20+- символов, включая пробелы;
- Код asm, без Си.
И самая загвоздка, что не должны использоваться любые аппаратные решения, аля max7219, сдвиговых регистров и тд.
Т.е. тупая задача. Нужно взять допустим память типо 24с64, при необходимости. Зашить в нее там 5 сообщений. Сделать 5 кнопок, и при нажатии на одну из них выводится определенное сообщение( брать 24с64 не обязательно впринципе просто для примера)
PIC16f877 не обязателен тоже, но как по мне он оптимален. LCD нельзя
Итак. Я не прошу делать всю работу за меня конечно же, я уважаю время каждого, но буду очень рад если мне помогут разрешить проблемы с которыми я столкнулся.
Первое. Хотел делать изначально на матричных индикаторах, но без дешифраторов, сдвиговых регистров, драйверов можно реализовать там 2 матрицы 8х8.. Повторюсь, весь алгоритм индикации должен быть в МК. Если я просто не разобрался, и есть варианты как подключить больше 2-3 матриц без всяких приблуд, буду благодарен!
Суть:
Решил взять семисегментные. PORTB,C,D Позволяют подключить порядка 14, если учитывать еще подключение в ПОРТуБ 24С64.
Индикация выполняется через прерывания ( нашел примерный код ), сам пытался делать через паузы, понял что бегущая через паузы это гиблое дело.
Да, с прерываниями я могу просто вручную задать "по тупому" каждый сдвиг вручную прописывая значения для каждого знакоместа. Но хотелось бы понять как реализовать вывод по человечески в цикле и как реализовать считывание определенного сообщения. Т.е. хочу нажать на кнопку и чтобы начало выводится уже предзаписанное сообщение с помощью какого-либо цикла Простите там за тавтологию.
И еще одно, должны быть кнопки аля "+" и " -" которые должны регулировать скорость строки. Но это уже позже.

PS/Всем выделившим время огромное спасибо.

Код программы, исходник и proteus8 схема для 4 индикаторов прилагаю.

Спойлер
Код:
#include <P16F877A.INC>
            LIST        p=16F877A    ;
           
                                    ;
           
Sec           equ         20h  ;
Sec1          equ         21h   ;
Sec2          equ         22h   ;
datind1       equ         23h   ;
datind2       equ         24h    ;
datind3       equ         25h
datind4       equ         26h    ;
shet          equ         27h
W_TEMP        equ         7Eh
STATUS_TEMP   equ         7Fh    ;
 
test            equ         28h
 
 
#DEFINE       ind1  PORTA,0
#DEFINE       ind2  PORTA,1
#DEFINE       ind3  PORTA,2
#DEFINE       ind4  PORTA,3
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Реализация динамической индикации для 4-х семисегментных индикаторов
;Частота тактового генератора для примера 4 МГц, машинный цикл 1 мкс
 
              org         0000h           ;начать выполнение программы с адреса 0000h
                clrf test
              movlw       .4    ;
              movwf       test        ;
 
              goto        Start           ;переход на метку Start
           
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Подпрограмма обработки прерываний
 
              org         0004h           ;начать выполнение подпрограммы с адреса 0004h
       
              movwf       W_TEMP          ;сохранение значений ключевых регистров
              swapf       STATUS,W        ;
              clrf        STATUS          ;
              movwf       STATUS_TEMP     ;
                                          ;   
              bcf         ind1            ;выключение 1-го индикатора
              bcf         ind2            ;выключение 2-го индикатора
              bcf         ind3            ;выключение 3-го индикатора
              bcf         ind4            ;выключение 4-го индикатора
                                          ;
              incf        shet,F          ;инкремент регистра shet
              movlw       .5              ;проверка содержимого регистра shet
              xorwf       shet,W          ;на равенство числу 5
              btfss       STATUS,Z        ;
              goto        met1            ;число в регистре shet не равно 5
              movlw       .1              ;число в регистре shet равно 5: запись числа 1
              movwf       shet            ;в регистр shet
                                          ;
met1          movlw       .1              ;проверка содержимого регистра shet
              xorwf       shet,W          ;на равенство числу 1
              btfss       STATUS,Z        ;
              goto        met2            ;число в регистре shet не равно 1: переход на met2
              movf        datind1,W       ;число в регистре shet равно 1: копирование
              movwf       PORTB           ;содержимого регистра datind1 в регистр PORTB
              bsf         ind1            ;включение 1-го индикатора
              goto        exxit           ;переход на метку exxit
met2          movlw       .2              ;проверка содержимого регистра shet
              xorwf       shet,W          ;на равенство числу 2
              btfss       STATUS,Z        ;
              goto        met3            ;число в регистре shet не равно 2: переход на met3
              movf        datind2,W       ;число в регистре shet равно 2: копирование
              movwf       PORTB           ;содержимого регистра datind2 в регистр PORTB
              bsf         ind2            ;включение 2-го индикатора
              goto        exxit           ;переход на метку exxit
met3          movlw       .3              ;проверка содержимого регистра shet
              xorwf       shet,W          ;на равенство числу 3
              btfss       STATUS,Z        ;
              goto        met4            ;число в регистре shet не равно 3: переход на met4
              movf        datind3,W       ;число в регистре shet равно 3: копирование
              movwf       PORTB           ;содержимого регистра datind3 в регистр PORTB
              bsf         ind3            ;включение 3-го индикатора
              goto        exxit           ;переход на метку exxit
met4          movf        datind4,W       ;копирование содержимого регистра datind3
              movwf       PORTB           ;в регистр PORTB
              bsf         ind4            ;включение 4-го индикатора
                                          ;
exxit         bcf         INTCON,T0IF     ;сброс флага прерывания по переполнению TMR0
              movlw       .100            ;запись числа 156 в регистр таймера TMR0
              movwf       TMR0            ;
                                          ;
              swapf       STATUS_TEMP,W   ;восстановление содержимого ключевых регистров
              movwf       STATUS          ;
              swapf       W_TEMP,F        ;
              swapf       W_TEMP,W        ;
                                          ;
              retfie                      ;выход из подпрограммы прерывания
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Основная программа
                                 
             
Start         movlw       b'00000000'
              movwf       PORTB
              movlw       b'00000000'
              movwf       PORTA
              ;movlw       b'00000111'
             ; movwf       CMCON
 
              bsf         STATUS,RP0       
              movlw       b'00000000'         
              movwf       TRISB
              movlw       b'11110000'         
              movwf       TRISA
             
                                          ;запись двоичного числа 11010011 в регистр
              movlw       b'11010011'     ;OPTION_REG, тем самым устанавливаем внутренний
              movwf       OPTION_REG      ;источник тактового сигнала для TMR0
              bcf         STATUS,RP0      ;включаем предделитель перед TMR0
                                          ;устанавливаем коэффициент предделителя 1:16
                                          ;
              clrf        shet            ;обнуление регистра shet, перед запуском
                                          ;прерываний по переполнению TMR0, выполняется
                                          ;однократно, после включения питания
                                          ;
              clrf        datind1        ;очистка регистров вывода информации на
              clrf        datind2        ;индикаторы, равнозначно выключению
              clrf        datind3        ;индикаторов, так как индикаторы с общим
              clrf        datind4        ;катодом
                                          ;
              bcf         INTCON,T0IF     ;сброс флага прерывания по переполнению TMR0
              bsf         INTCON,T0IE     ;разрешение прерываний по переполнению TMR0
              bsf         INTCON,GIE      ;разрешение глобальных прерываний
                                          ;
 
;//----------
m1            movlw       b'10111111'     ;Вывод нулей на индикаторы
              movwf       datind1        ;
              movwf       datind2        ;
              movwf       datind3        ;
              movwf       datind4        ;
                                   
              call        pause
 
 
 
              goto        m1
;//----------
pause         movlw       .6              ;запись числа 6 в регистр Sec2
              movwf       Sec2
p4            movlw       .218            ;запись числа 218 в регистр Sec1
              movwf       Sec1
p3            movlw       .255
              movwf       Sec             ;запись числа 255 в регистр Sec
p2            decfsz      Sec,F           ;декремент с условием регистра Sec
              goto        p2              ;регистр Sec не равен нулю: переход на метку p2
              decfsz      Sec1,F          ;регистр Sec равен нулю: декремент с условием
                                          ;регистра Sec1
              goto        p3              ;регистр Sec1 не равен нулю: переход на метку p3
              decfsz      Sec2,F          ;регистр Sec1 равен нулю: декремент с условием
                                          ;регистра Sec2
              goto        p4              ;регистр Sec2 не равен нулю: переход на метку p4
              return                      ;регистр Sec2 равен нулю: выход из подпрограммы         ;
                                          ;
 
;//---------- ( почему то работает не корректно) перескакивает не на тот символ постоянно
tablica                 ;Таблица выборки для индикатора !!!с общим АНОДОМ!!! Точка нам не нужна, везде гасим
                           
;   andlw   0x0F            ;Маскируем ненужные биты (чтобы случайно не выскочить за предел таблицы)
    addwf   PCL,f           ;Прибавляем значение аккумулятора к счетчику команд PCL. Тем самым выполняя смешение в таблице
    retlw   b'11000000';0   
    retlw   b'11111001';1   ;В соответствии со схемой определяем к какой ножке порта В какой сегмент подключен.
    retlw   b'10100100';2   
    retlw   b'01001111';3   
    retlw   b'10011001';4   
    retlw   b'10010010';5   
    retlw   b'10000010';6   
    retlw   b'11111000';7   
    retlw   b'10000000';8   
    retlw   b'10010000';9   
    retlw   b'11111111';+
    retlw   b'10111111';-
    retlw   b'11111111'     ;A
    retlw   b'11111111'     ;B
    retlw   b'11111111'     ;C
    retlw   b'11111111'     ;D
    retlw   b'11111111'     ;E
    retlw   b'11111111'     ;F
              end                         ;конец всей программы


Вложения:
Ishodniki.rar [23.81 KiB]
Скачиваний: 193
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 08:36:34 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
...как реализовать вывод...

Организовать видеообласть в ОЗУ микроконтроллера. В ней окно, которое отображается на индикаторах. Двигаем окно, следим за содержимым видеообласти.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 09:37:06 
Родился

Зарегистрирован: Пн май 17, 2021 21:02:56
Сообщений: 13
Рейтинг сообщения: 0
Вот по поводу видеопамяти. Знаю, что такой подход можно реализовать на матричных светодиодных индикаторах. А получится ли на 7 сегментных?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 09:58:52 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
Не вижу проблем.

_________________
Docendo discimus


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 10:15:02 
Друг Кота
Аватар пользователя

Карма: 41
Рейтинг сообщений: 2968
Зарегистрирован: Пн июл 23, 2018 10:36:20
Сообщений: 3434
Откуда: Казань
Рейтинг сообщения: -1
Боюсь наш новый друг не совсем представляет себе суть работы.
делал такую херь себе лет 15 назад, на 877 камне, 8х40 точек на матричных индюках и регистрах сдвига. вешал на заднее стекло своей ржавой шестерки в качестве стопаря.
показывал он вякого типа такого
Изображение
весело было...

если ннада могу откапать совй проект.

_________________
ZZZ С Нами Бог ZZZ


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 10:56:17 
Родился

Зарегистрирован: Пн май 17, 2021 21:02:56
Сообщений: 13
Рейтинг сообщения: 0
Было бы очень здорово.
Мне тут подсказали, что я ужасно составил описание.
Ещё раз просто вкратце. Простая учебная задача, без необходимости разработки реального устройства. Есть МК, есть индикатор, есть там 5 кнопок. Нажимаю первую кнопку на индикацию выводится первое сообщение в виде бегущей строки. Вторую, второе.. использовать аппаратные дешифраторы для управления индикаторами запрещено. Число знакомест 10-14. Число символов в сообщении 20+-. Lcd дисплей нельзя.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 11:11:11 
Друг Кота
Аватар пользователя

Карма: 41
Рейтинг сообщений: 2968
Зарегистрирован: Пн июл 23, 2018 10:36:20
Сообщений: 3434
Откуда: Казань
Рейтинг сообщения: -1
ну тогда это не бугчая строка, а последовательное отображение знаков на группе 7-ми сегментных индюках.
преобразования символа в код поджигания индюка и так по кругу.

и занания добытые собственными силами остаются с нами очень на долго.

Добавлено after 2 minutes 33 seconds:
массивы, указатели, циклы. и ни каких проблем

_________________
ZZZ С Нами Бог ZZZ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 11:13:21 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
В сторону: - SSkot постепенно превращается в musor.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 11:26:26 
Родился

Зарегистрирован: Пн май 17, 2021 21:02:56
Сообщений: 13
Рейтинг сообщения: 0
ну тогда это не бугчая строка, а последовательное отображение знаков на группе 7-ми сегментных индюках.
преобразования символа в код поджигания индюка и так по кругу.

и занания добытые собственными силами остаются с нами очень на долго.

Добавлено after 2 minutes 33 seconds:
массивы, указатели, циклы. и ни каких проблем



Ну ладно. Скажем что нужно разработать не бегущую строку. А управляющий контроллер 'бегущая строка'. Буду рад если вы более подробно распишите алгоритм.

Добавлено after 4 minutes 17 seconds:
И есть ли способ без сдвиговых регистров подключить допустим 10 светодиодных матрич 7х5 с одному pic16f877?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 11:53:42 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14053
Откуда: ДОНЕЦК
Рейтинг сообщения: 4
Для развертки остаются правила -
лапки на сегмент и лапки на позицию (если не хитровывернутый вариант развертки)
т.е. 8 сегментных (с учетом запятой) и N позиционных.
Для растрово-точечного лапок МК совершенно маловато (при удобоваримой яркости для дневного света).
Без сдвиговх регистров там не обойтись.
Разве что использовать в качестве точек WS2812 или подобные светики.
Но там быстродействие МК весьма высокое должно быть, ПИК877 может и не потянуть...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 12:01:53 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
...может и не потянуть...

Не забываем, что задача учебная. Препод смотрит на алгоритм (о чем упорно напоминает тс), а не на железо.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 12:03:38 
Друг Кота
Аватар пользователя

Карма: 41
Рейтинг сообщений: 2968
Зарегистрирован: Пн июл 23, 2018 10:36:20
Сообщений: 3434
Откуда: Казань
Рейтинг сообщения: 0
И есть ли способ ...


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

877ой имеет 33 лапки на 5 портов.
если обходиться только ими, то 7 уйдет на коммутацию строк, отстальные 26 на столбцы. т.е 5шт 5х7 прицепишь и одна лапка на прочие нужны.
но работать не буит, т.к. в строке тока не все светики не хватит, нужны буферы.

ненрав регисты сдвига, используй дешифраторы. ток нафига не понятно.

7 сегментоф дергать куда проще чем матрицу.

_________________
ZZZ С Нами Бог ZZZ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 12:12:48 
Родился

Зарегистрирован: Пн май 17, 2021 21:02:56
Сообщений: 13
Рейтинг сообщения: 0
Я вас услышал. Дешифраторы для управления брать нельзя. Значит без сдвиговых всё-таки не обойтись. Как я понимаю у меня есть 2 варианта. Либо брать 7 сегментные и втупую выводить по одному символу. Либо брать матричный индикатор и сдвиговые регистры и через видеопамять смещать текст?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 12:21:36 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
Вариант: RB под сегменты или точки в матрице, RC и RD под знакоместа (итого 16 мест, а надо всего 10). Еще и А и Е остаются. Что за огород начали городить с этими регистрами/дешифраторами?....
upd
25 лапок помимо восьми для точек/сегментов. Если переложить на матрицу, то получается 4 полноценных знакоместа.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 12:36:12 
Друг Кота
Аватар пользователя

Карма: 41
Рейтинг сообщений: 2968
Зарегистрирован: Пн июл 23, 2018 10:36:20
Сообщений: 3434
Откуда: Казань
Рейтинг сообщения: 0
Что за огород начали городить с этими регистрами/дешифраторами?....


дык.
сударь матрицы желает, 10 штукоф.

...допустим 10 светодиодных матрич 7х5 с одному pic16f877?

_________________
ZZZ С Нами Бог ZZZ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 12:42:11 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 8
Да не вопрос.
Цитата:
С овечьей шкурой к скорняку
Зашёл Вартан-сосед:
- Из этой шкуры шапку сшить
Ты можешь или нет?

- Могу! - сказал в ответ скорняк,
На шкуру посмотрев.
- А выйдет две? - спросил Вартан,
На корточки присев.

- И две сошью.
- А три?
- И три!
- Сошьёшь четыре?
- Да!
- А пять?
- Ну что ж, могу и пять,
Коль в этом есть нужда!

- Быть может, выкроешь все шесть?
- Могу, раз надо так!
- Где шесть, там - семь! - сказал Вартан.
- Идёт! - сказал скорняк.

Когда заказчик через день
За шапками пришёл,
Семь шапок выложил скорняк
На свой рабочий стол.

- Да разве это мой заказ?
Вскричал в сердцах Вартан.
Когда ты шапки мне кроил,
Ты был, должно быть, пьян?

Что с ними делать мне теперь?
Куда прикажешь деть?
Ведь ни одну из них нельзя
На голову надеть!

- Но ты же сам того хотел!
Сказал в ответ скорняк.
Больших семь шапок из овцы
Не выкроишь никак!


И еще вариант: хватит даже семи лапок микроконтроллера. Ручная развертка. В курсе? Знакомест дофинты.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 12:50:45 
Друг Кота
Аватар пользователя

Карма: 41
Рейтинг сообщений: 2968
Зарегистрирован: Пн июл 23, 2018 10:36:20
Сообщений: 3434
Откуда: Казань
Рейтинг сообщения: 0
...через видеопамять смещать текст?


нема у 877 видеопамять...

4K прмяти программ, 368 байт данных... ну EEPROM еще.

картинки придется предствалять в виде массива/вов в памяти программ.

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

научить 877 рисовать на матрицах статитческий кадр окне отображения резметом с саму матрицу 7х50 в вашем случае.

дальше смещать кадр на одну позицию и снова отображать какое то время, не забыть про гашение матриц во время пермещения "окна"

ну и т.д. и тп.

регистры сдвига аппартно подходят сильно лучше.


текст конечно можно записать ASCII в памяти программ, но придется пилить знакогенератор для загрузки картинки в "ОЗУ".

короче, делай на 7ми сегментниках. там все сильно проще.

_________________
ZZZ С Нами Бог ZZZ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 12:56:47 
Родился

Зарегистрирован: Пн май 17, 2021 21:02:56
Сообщений: 13
Рейтинг сообщения: 0
Стих просто максимально в тему.

Да изначально было задание Аля 10 7х5 матриц, нажимаешь кнопку выводим сообщение. Без аппаратных дешифраторов и типо без сдвиговых, рулить индикаторами должен МК. Я не особо разобрался как быть в такой ситуации и решил взять 7 сегм.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 13:32:16 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14053
Откуда: ДОНЕЦК
Рейтинг сообщения: 4
Ну уж если посадомазохизьму...
7 точек = столбец
5 точек = строчка
10 линий на коммутатор позиций
итог 22 лапки МК.
яркость и стабильность изображения конечно "их бин Песец" (как и ключи в обвязке коммутации), но для 40-лапки вполне теоретически возможно...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Задача. Бегущая строка на МК PIC16F877
СообщениеДобавлено: Вт май 18, 2021 13:53:07 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
Господа! Уходим от железа. Автору нужен алгоритм.

_________________
Docendo discimus


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y