реклама на сайте
подробности

 
 
> Помогите разобраться с кодом для 74HC595
lol483
сообщение May 8 2012, 13:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 8-05-12
Пользователь №: 71 734



Здравствуйте, прошу помощи в следующей проблеме: написал кусочек кода для будущих часов на газоразрядных индикаторах с применением регистра последовательного сдвига 74HC595
и столкнулся с непонятным моментом, на осциллографе на соответствующих ножках МК: DS-постоянно 1, SH_CP-постоянно 1, ST_CP-постоянно 0. В соответствии с прикрепленной прошивкой там должны быть определенные колебания. Расскажите что в коде не так, в чем проблема?


Сообщение отредактировал lol483 - May 8 2012, 13:14
Прикрепленные файлы
Прикрепленный файл  __________74HC595.rar ( 26.06 килобайт ) Кол-во скачиваний: 33
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
pavel-pervomaysk
сообщение May 9 2012, 15:09
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716



CODE
// Internal SPI
.equ spi_ddr = DDRB //
.equ spi_port = PORTB //
.equ spi_p = PINB //
.equ ss = PB0 //
.equ sck = PB1 //
.equ mosi = PB2 //
.equ miso = PB3 //

// SPI Master Init // Set MOSI and SCK output, all others input
ldi tmp,(0<<SPIE)|(1<<SPE)|(0<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA)|(0<<SPR1)|(0<<SPR0)
// DORD=1 lsb first DORD=0 msb first
// MSTR=1 SPI master mode MSTR=0 SPI slave mode
// CPOL=1 SCK по спаду CPOL=0 SCK по фронту
// SPR1 SPR0 0 0 (F/4) 0 1 (F/16) 1 0 (F/64) 1 1 (F/128)
out SPCR,tmp // Enable SPI, Master, set clock rate fck/16
ldi tmp,(1<<SPI2X) // SPI freq * 2
out SPSR,tmp //



;Запись байта в регистр с помощью апаратного SPI

74HC595:
sbi d_port,EN //
out SPDR,xh // OUT anod_m
wt_stx1: // Wait for transmission complete
in tmp1,SPSR //
sbrs tmp1,SPIF //
rjmp wt_stx1 //
cbi d_port,EN //
ret

;Запись байта в регистр с помощью програмного SPI




74HC595:
sbi d_port,en // Переводим выходы регистров в третье состояние
rcall out_byte //
cbi d_port,en // Включаем выходы 74НС595
ret

out_byte: // Вывод байта в 74HC595
ldi loop,8 // Счетчик битов
otd: // Cycle
clc // Очищаем CARY Flag
rol data // Сдвигаем данные в лево на 1 (data<<1)
brcc d_z // Если CARY Flag сброшен , идем сюда -----|
sbi d_port,dat // Если CARY Flag установлен то DATA=1 |
rjmp d_ok // |
d_z : // Data zero <----|
cbi d_port,dat // Если CARY Flag сброшен то DATA=0
d_ok: // Импульс CLK
sbi d_port,clk // CLK -> 1
cbi d_port,clk // CLK -> 0
dec loop // Счетчик битов - 1
brne otd // Если счетчик не равен 0 то переходим кциклу otd
ret // Выход из подпрограммы



Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
lol483
сообщение May 9 2012, 19:57
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 8-05-12
Пользователь №: 71 734



Цитата(Павлик @ May 9 2012, 18:09) *

Это походу ассемблер, я в нём очень плохо разбираюсь к сожалению, не понял от куда берется "Data". Это в роли функции здесь? Совсем ничего не понял(

Сообщение отредактировал IgorKossak - May 10 2012, 06:59
Причина редактирования: бездумное цитирование
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- lol483   Помогите разобраться с кодом для 74HC595   May 8 2012, 13:13
- - Genadi Zawidowski   В строке Цитатавыводим "текущий бит" в ...   May 8 2012, 14:01
|- - lol483   Цитата(Genadi Zawidowski @ May 8 2012, 17...   May 8 2012, 20:26
- - ILYAUL   Интересно , а что на OE?   May 8 2012, 21:06
|- - lol483   Цитата(ILYAUL @ May 9 2012, 00:06) Интере...   May 8 2012, 21:13
|- - zombi   Цитата(lol483 @ May 9 2012, 00:13) У меня...   May 9 2012, 10:06
|- - adnega   Цитата(zombi @ May 9 2012, 13:06) В СИ не...   May 9 2012, 10:29
|- - zombi   Цитата(adnega @ May 9 2012, 13:29) PORTD....   May 9 2012, 11:06
|- - _Артём_   Цитата(zombi @ May 9 2012, 14:06) КодPORT...   May 9 2012, 12:28
||- - zombi   Цитата(_Артём_ @ May 9 2012, 15:28) А что...   May 9 2012, 13:03
||- - _Артём_   Цитата(zombi @ May 9 2012, 16:03) А я не ...   May 9 2012, 14:36
||- - zombi   Цитата(_Артём_ @ May 9 2012, 17:36) Разны...   May 9 2012, 15:47
|- - gerber   КодPORTD.0=bin_digits[dig] & 1<...   May 10 2012, 11:51
- - ILYAUL   Код{ PORTD.0=bin_digits[dig] & 1...   May 8 2012, 21:26
|- - lol483   Цитата(ILYAUL @ May 9 2012, 00:26) Код{ ...   May 8 2012, 21:29
|- - ILYAUL   Цитата(lol483 @ May 9 2012, 01:29) Это не...   May 8 2012, 22:01
- - lol483   Я думаю что по сути всё равно когда возникает импу...   May 9 2012, 06:46
- - lol483   Ну значит так: после добавления задержек в код на ...   May 9 2012, 08:49
|- - _Артём_   Цитата(lol483 @ May 9 2012, 22:57) Это в ...   May 9 2012, 20:23
- - lol483   Ребята, кажется я понял в чем дело. Оказывается ра...   May 9 2012, 21:28
|- - zombi   Цитата(lol483 @ May 10 2012, 00:28) Вот о...   May 10 2012, 05:17
|- - Genadi Zawidowski   Цитата(lol483 @ May 10 2012, 01:28) Ребят...   May 10 2012, 06:46
|- - lol483   Цитата(Genadi Zawidowski @ May 10 2012, 09...   May 10 2012, 07:16
- - hd44780   Вы смотрели, что появляется на ноге PD0? Конструк...   May 10 2012, 08:03
- - lol483   Вообщем попробовал так: подключил К155ИД1 (с газор...   May 10 2012, 09:03
- - hd44780   А 74HC595 вообще зачем? Ноги проца экономишь ? Р...   May 10 2012, 10:34
|- - lol483   Цитата(hd44780 @ May 10 2012, 13:34) А 74...   May 10 2012, 10:52
- - hd44780   Про 2 порта я не понял . 4 ноги - код цифры, а ос...   May 10 2012, 11:38
|- - lol483   Цитата(hd44780 @ May 10 2012, 14:38) Про ...   May 10 2012, 12:06
- - hd44780   Понятно. Фактически классическая статическая индик...   May 10 2012, 13:47
- - ILYAUL   Можно начать экономить отказавшись от секунд. Бало...   May 10 2012, 17:59
|- - lol483   Цитата(ILYAUL @ May 10 2012, 20:59) Можно...   May 11 2012, 07:12
- - hd44780   Не знаю. Когда-то давно, когда я ещё был маленьким...   May 11 2012, 08:41
|- - GDI   Цитата(hd44780 @ May 11 2012, 12:41) Вооб...   May 11 2012, 08:55
|- - sKWO   Цитата(hd44780 @ May 11 2012, 11:41) Вооб...   May 11 2012, 08:57
- - lol483   Всё, я разобрался! Оказалось что я не правильн...   May 12 2012, 12:01
- - GDI   Ничего себе заявочки! Цитатарегистр последоват...   May 12 2012, 12:49
- - lol483   Цитата(GDI @ May 12 2012, 15:49) Ничего с...   May 12 2012, 13:23
- - _Артём_   Цитата(lol483 @ May 12 2012, 16:23) По ид...   May 12 2012, 13:28
- - lol483   Цитата(_Артём_ @ May 12 2012, 16:28) Нет ...   May 12 2012, 15:18
- - _Артём_   Ещё сомнительная конструкция: Код PORTD.0=bin_digi...   May 12 2012, 15:28


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 04:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01447 секунд с 7
ELECTRONIX ©2004-2016