Hier, wäre das, was ich als kleine Starthilfe bieten kann:

Code:
;Diese Parameter müssen gesetzt werden, um die Datenrate zu setzen
.equ CLOCK = 3686400
.equ BAUD = 115200             ;Kann auch 4800, 9600, etc. sein!
.equ UBRRVAL = CLOCK/(BAUD*16)-1

.def COM_Data_RX = r14
 .def COM_Data_TX = r15      ;TX/RX können auch ein Register sein!
.def temp = r16


;------------------------------------------------------
; Serielle Kommunikation einstellen...
;------------------------------------------------------

    ; Baudrate einstellen
    LDI temp, LOW(UBRRVAL)
;    LDI temp, UBRRVAL
    OUT UBRRL, temp
    LDI temp, HIGH(UBRRVAL)
    OUT UBRRH, temp

    ;Schnittstelle einstellen...
    ;Bit7:      N/A
    ;Bit6:        1=syncrone Kommunikation
    ;            0=asyncrone Kommunikation
    ;Bit5/4:    Parity Mode
    ;            0:0=Disable
    ;Bit3:        Stop Bit set
    ;            0=1 Bit
    ;            1=2 Bits
    ;Bit2/1        Character/Framesize
    ;            0:0:0=5-bit
    ;            0:0:1=6-bit
    ;            0:1:0=7-bit
    ;            0:1:1=8-bit
    ;            1:1:1=9-bit
    ;Bit0        Clock priorty
    LDI temp, 0b00000000
    OUT UCSRC, temp

    SBI UCSRB, TXEN                    ; TX aktivieren
    SBI UCSRB, RXEN                    ; RX (Empfang) aktivieren
;    SBI UCSRB, RXCIE                ; Interrupt bei Empfang


;    SEI         ; Interrups aktivieren





Daten_senden:
;---------------------------

    SBIS UCSRA,UDRE                    ;Warten bis UDR für das nächste
    RJMP Daten_senden                ;Byte bereit ist

    OUT UDR, COM_Data_TX            ; COM_Data_TX ist ein Register, was die zu sendenen Daten enthält
    RET