Мультиплексор программно на ассемблере
- Сообщения: 1
- Зарегистрирован: Вт фев 14, 2017 12:02:06
Нужно написать программу на ассемблере в Atmel Studio, которая преобразовывает параллельный код в последовательный. На одной плате у меня порты А на вход настроены, и я изменяю уровень сигналов 0,1. Затем с помощью одного проводка я должен передать последовательность этих сигналов на другую плату, и там на порту А загораются светодиоды уровней с первой платы. Помогите, кто шарит. Хотя бы алгоритм.
- Реклама
Это уже последовательная асинхронная передача данных, а не просто преобразование параллельный/последовательный код.
А программно или аппаратно реализовать - это на вкус препода.

А программно или аппаратно реализовать - это на вкус препода.
Открываем даташит и сдираем настройку:
Далее сдираем отправку:
Пишем тело (впрочем, можно и копипасту найти):
Для приёмной стороны копипастим USART_Receive.
Код: Выделить всё
USART_Init:
; Set baud rate
out UBRRH, r17
out UBRRL, r16
; Enable receiver and transmitter
ldi r16, (1<<RXEN)|(1<<TXEN)
out UCSRB,r16
; Set frame format: 8data, 2stop bit
ldi r16, (1<<USBS)|(3<<UCSZ0)
out UCSRC,r16
retКод: Выделить всё
USART_Transmit:
; Wait for empty transmit buffer
sbis UCSRA,UDRE
rjmp USART_Transmit
; Put data (r16) into buffer, sends the data
out UDR,r16
retКод: Выделить всё
call USART_Init
loop:
in r16,PINA
call USART_Transmit
rjmp loopDocendo discimus
- Реклама

