Цитата(add @ Oct 20 2007, 19:34)

хорошо бы код в студию. может у Вас всетаки програмная ошибка? А то шаманство какоето...
делал проверку вот такой программкой
.include "m8535def.inc"
.def data=R25 ;вместо R25 подставлял разные регистры...
.org 0x0000
rjmp main
.org URXCaddr
rjmp USART_RXC ; USART RX Complete Handler
main:
ldi r31,low(ramend)
out spl,r31
ldi r31, high(ramend)
out sph,r31
ldi data, 0x59
MOV zh,data
;cp zh:zl, data
rcall USART_Init
rcall USART_Transmit
USART_Init:
ldi r16, (1<<RXEN)|(1<<TXEN)
out UCSRB,r16
;Óñòàíîâêà ôîðìàòà ïîñûëêè:
ldi r16, (0<<USBS)|(0<<UMSEL)
out UCSRC,r16
nop
ldi r17, 12
ldi r16, 0
out UBRRH, r16
out UBRRL, r17
ldi r17, (1<<ISC00)|(1<<ISC01)|(0<<ISC10)|(1<<ISC11)|(0<<SM0)|(0<<SM1)|(0<<SM2)|(1<<SE)
out MCUCR, r17
ldi r17, (1<<INT0)|(1<<INT1)
out GICR, r17
ldi r16, $61
ret
loop:
USART_Transmit:
sbis UCSRA,UDRE
rjmp USART_Transmit
mov data, r16
out UDR, data
Wait_Transmit:
sbis SPSR,SPIF
rjmp Wait_Transmit
nop
nop
sei
sleep
USART_RXC:
nop
sbis UCSRA, RXC
rjmp USART_RXC
in r16, UDR
rjmp loop