|
|
 |
Ответов
|
May 9 2012, 15:09
|

Местный
  
Группа: Свой
Сообщений: 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 // Выход из подпрограммы
Эскизы прикрепленных изображений
|
|
|
|
|
May 9 2012, 19:57
|
Участник

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

|
Цитата(Павлик @ May 9 2012, 18:09)  Это походу ассемблер, я в нём очень плохо разбираюсь к сожалению, не понял от куда берется "Data". Это в роли функции здесь? Совсем ничего не понял(
Сообщение отредактировал IgorKossak - May 10 2012, 06:59
Причина редактирования: бездумное цитирование
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|