не так давно начал изучать PIC , пишу на ассемблере. Не могу понять как работать с 595 сдвиговым и матрицей. то есть задвигать через rrf\rlf могу в матрицу, как и в индикатор , но не могу понять как производить заргузку строк столбцов=(
прошу помочь разъяснить на пальцах пробовал через использование EEPROM но как производить обновление и сброс 595 не пойму ни как. допустим при нажатии кнопки чтоб загружался знак. прошу помочь
вот так задвигаю биты в сдвиговый sdvig movlw b'11100011' movwf REG movwf REG bsf switch bcf switch m1 bcf clock bsf bite btfss REG,0 bcf bite bsf clock;тактовый импульс rrf REG,F decfsz Count,1;уменьшаем на еденицу, достигнув нуля прыгаем на goto sdvig, goto m1;пока не достигнем 0 btfsc Count,0 goto sdvig
Заголовок сообщения: Re: Работа с 74HC595+ LED матрица 8*8
Добавлено: Вт апр 05, 2016 19:37:22
Модератор
Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4609 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Разницы нет - мега, пик, ... Главное - понять принцип управления регистром. А статьи по этому поводу есть в интернете, разъясняющие "на пальцах" что к чему. Так что, не думаю, что кто-то будет тут их переписывать.
1. Находим документацию на 595 https://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf и изучаем ее. 2. Определяем как будем управлять 595: разделно (каждая по своему) или как один 16-и разряднъй регистр. В ссълку, что дал Alex , 595 уптавляются как один 16-и разряднъй 3. Создаем схему как в общем будет въглядить. Разделное управление (кликабелное) В въходах нижнего 595 еще буфера нужнъ. Верхнии 595 ето рядъ, нижнии - колонъ 4. Изходя из пункта 1 пишем программу. Примернъй алгоритм -- Въбираем (разрешаем) 595 ряд (3) -- заносим внутри 595 информацию ---- на (4) бит инфо ---- на (1) такт ---- восемь раз -- Запрет ряд (3) -- Въбираем (разрешаем) 595 колону (5) -- заносим внутри 595 информацию ---- на (4) бит инфо ---- на (1) такт ---- восемь раз -- Запрет колона (5) -- информация на въход (2)
Не забъвай, что в 1. есть минималное время для некоторъх въводах. Их надо соблюдать в зависимости от кварца в обвязки 628А
На 595 колон можно сделать и бегущая 1 (0) в зависимости от индикатора
_________________ Лом - ето город в Болгарии, а не инструмент юстировки електроники.
получается делаю два регистра led1 и led2 лед1 передавать в строки а лед2 в столбец? делаю табблицы с retlw с вприантами строк и столбиков ? и потом подгруэаю в регистры. movlw .0 call table movfw led1 после лед1 толкаю в 595 ый. как дальше? отобразил я любую мз строк,столбов любой светодиод. а как сделать подгрузку дальше, тоесть динамическую?
В 595 колон должно бъть один активнъй въвод 1 или 0 в зависимости от индикатора Смотрим рисунок - нижние два ряда игнорируем - у нас 8 бит 1 колона 0х00 2 колона 0x00 3 - 0х04 4 - 0хCE 5 - 0xEF 6 - 0xEF 7 - 0xCE 8 - 0x04 младшии разряд 595 ряд верхнии край рисунка
да, я просто спрашиваю, веоно ли пишу. clock bite switch это дефайны портов тоесть я делаю полностью 8 вдвигов строк и на последнем защелкиваю . и потом делаю также 8 столбов? счетчиков тогда аж 16 получитс? тоесть дл каждого байта?
Вам необходимо в 595 колон иметь всегда 1 (один) активнъй сигнал. Если LED светится при подаче + на ряду и 0 на колоне, то активнъй у вас будет 0. Тогда алгоритм будет такой
595К - колона, 595Р - ряд
-- поготавливаем 595К надо занести 0х7F
next: -- берем следующии ряд в 595Р ---- na 3 data ---- на 1 такт -- такт на 2 - информация на въходе -- на дата единицу -- такт на 595К на 4 - сдвиг активной 0 вправо на 1 разряд все ли сделано ..... GOTO next
PS: У вас байтов 8. Въ въводите 8 байтов на указаннъх местах. 1 байт на 1-ую колону и т.д. Колонъ в себя информацию не носят. Они повторяют порядковъй номер байта.
если счетчик до 16 - то тогда информация будет въглядет таким образом - с b обозначаю действителную информацию (в байтах) bbbbbbbb01111111 bbbbbbbb10111111 bbbbbbbb11011111 bbbbbbbb11101111 bbbbbbbb11110111 bbbbbbbb11111011 bbbbbbbb11111101 bbbbbbbb11111110 Как видиш в правой части ест только сдвиг активного сигнала.
_________________ Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Последний раз редактировалось botchin Вт апр 05, 2016 21:39:12, всего редактировалось 1 раз.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения