Светодиодная матрица 8*8

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Открыл глаза
Сообщения: 41
Зарегистрирован: Пт апр 06, 2012 15:29:32

Сообщение Дмитрий31211 »

Здравствуйте. Подскажите плз, как вывести любой символ(неподвижный хотя бы) на LED матрицу 8*8, используя массив в CVAVR на С++. строки и столбцы подключены напрямую к атмеге16. портА-строки, портВ-столбцы(потому что пользоваться 74сн595 ещё не умею).
А вот как вывести на порты, незнаю. :cry: :cry: :cry: Спасибо заранее.

#include <mega16.h>
#include <delay.h>

char temp[8][8] = //например пример, вроде правильно)))
{
00000000,
11111111,
01111110,
11111111,
01011010,
00011000,
00011010,
01111001,

};
void main(void)

while (1)
{
// Place your code here
// А вот как вывести на порты, незнаю. :cry: :cry: :cry:
}
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

:o :o :o регистр DDRx отвечает за направление порта, с PINx можно считать информацию с вывода, на PORTx отвечает за состояние выхода или за включение подтяжки в режиме входа.
Ребята, читайте даташит. Есть же даже на русском языке!
Ставим плюсы: )
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

Сообщение C@at »

Ага читать..... ИзображениеУчиться еще скажите.
Мы народ такой , с детства в крови "Не хочу учиться, Изображение а хочу жениться!" :shock: Из какого это произведения?или это из жизни? Изображение
А ну да, про матрицу 8х8...) Думаю, что, это поможет http://my-avr.at.ua/publ/7_i_segmentnik ... 5/1-1-0-39
Открыл глаза
Сообщения: 41
Зарегистрирован: Пт апр 06, 2012 15:29:32

Сообщение Дмитрий31211 »

Спасибо за ссылку. Дошло!(неделю не мог спать) нужно было просто ввести ещё одну переменную, чтоб вывести весь массив в порты. Буду изучять 74ЦЭАШ595
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 6339
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Дмитрий31211 писал(а): Буду изучять 74ЦЭАШ595
А что это ? Глокнутая куздрявая сепулька ?
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

Это он видимо HC и CH местами путает. 74HC595 микросхема зовется.
Изображение only pure true norwegian blackx Изображение
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

Сообщение C@at »

Дмитрий31211 писал(а):Дошло!(неделю не мог спать) нужно было просто ввести ещё одну переменную,
Вы знайте, что общение на форуме очень хорошо помогает в реализации собственных мыслей...
Несмотря на то, что некоторые в своих постах пишут "колкие советы" они же все равно помогают....
Мне вот интересно, как это можно сделать (8х8 символ) без 74НС595
Если не жалко покажите код, что там сделали ...
Открыл глаза
Сообщения: 41
Зарегистрирован: Пт апр 06, 2012 15:29:32

Сообщение Дмитрий31211 »

//CodeVision 2.05.4

#include <mega16.h>
#include <delay.h>
char number[] =
{ 0b01100110,
0b10011001,
0b10000001,
0b10000001,
0b01000010, //Heart)))
0b00100100,
0b00011000,
0b00000000
};

unsigned char count = 0; //счётчик элементов массива
unsigned char temp; //переменная портаА
void main( void )
{
DDRA=0xFF; //настраиваем портА на выход
PORTA=0x00; //устанавливаем начальное значение ноль
PORTB = 0xff; //настраиваем портВ на выход
DDRB = 0xff; //устанавливаем начальное значение на всех пинах 1

while(1) //бесконечный цыкл
{
temp = 0x01; //записываем начальное значение 0b00000001
while (temp != 0) //бесконечное условие
{
PORTA = temp; //запишем temp в порт A
temp = temp << 1; //сдвигаем разряды
{
PORTB = ~number[count]; //выводим в портВ значения массива
count++; //инкрементируем счётчик
if (count == 8) //проверяем условие счётчика
count =0; //дошол до 8, скинули в ноль
delay_ms(1); // задержка
}
}
}
}

>>Мне вот интересно, как это можно сделать (8х8 символ) без 74НС595

А матрица подключена в протеусе напрямую к портам. Это временно, потому что только изучаю и пока не получается через 74HС595 ёё подключить. В данный момент решаю проблему прокрутки пока одного символа(от помощи по коду, не откажусь))), а дальше-больше))))
Вымогатель припоя
Аватара пользователя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

Сообщение C@at »

От ..я. Что-ж я так мало попросил , только код... :)
Надо проект с протеусом, посмотрю, и сам потренируюсь с регистром.
Открыл глаза
Сообщения: 41
Зарегистрирован: Пт апр 06, 2012 15:29:32

Сообщение Дмитрий31211 »

Файл протеуса))))

PORTB = ~number[count] <<1; - собственно простой сдвиг изображения вправо, или >> влево.
Вложения
Копия martix.rar
(14.03 КБ) 236 скачиваний
Ответить

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