Em dùng Protues thiết kế mạch ghép nối AT90S8515 với PC qua RS232 nhằm khi nhấn 1 fím bất kì mã ASCII của phím ấy hiển thị thông qua đèn LED (ví dụ lấy trong sách Kĩ thuật vi điều kiển AVR)
Lỗi xảy ra:Khi chạy thì tất cả đèn LED đều sáng?nhấn phím "A" cũng k thấy thay đổi tín hiệu đèn LED (tắt/sáng)?
Sơ đồ mạch:
Code:
.include "8515def.inc"
.def rtemp=r17
.def rreg=r18
.def treg=r19
.equ baudrate=$33
.cseg
.org 0
rjmp RESET
rjmp RESET
rjmp RESET
RESET:
ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16
ldi r16,255
out DDRB,r16
rcall init_uart
up:
rcall rxcomp
out PORTB,rreg
inc rreg
mov treg,rreg
rcall txcomp
rjmp up
init_uart:
ldi rtemp,baudrate
out UBRR,rtemp
ldi rtemp,$18
out UCR,rtemp
ret
rxcomp:
sbis USR,RXC
rjmp rxcomp
in rreg,UDR
ret
txcomp:
sbis USR,UDRE
rjmp txcomp
out UDR,treg
ret
Lỗi xảy ra:Khi chạy thì tất cả đèn LED đều sáng?nhấn phím "A" cũng k thấy thay đổi tín hiệu đèn LED (tắt/sáng)?
Sơ đồ mạch:
Code:
.include "8515def.inc"
.def rtemp=r17
.def rreg=r18
.def treg=r19
.equ baudrate=$33
.cseg
.org 0
rjmp RESET
rjmp RESET
rjmp RESET
RESET:
ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16
ldi r16,255
out DDRB,r16
rcall init_uart
up:
rcall rxcomp
out PORTB,rreg
inc rreg
mov treg,rreg
rcall txcomp
rjmp up
init_uart:
ldi rtemp,baudrate
out UBRR,rtemp
ldi rtemp,$18
out UCR,rtemp
ret
rxcomp:
sbis USR,RXC
rjmp rxcomp
in rreg,UDR
ret
txcomp:
sbis USR,UDRE
rjmp txcomp
out UDR,treg
ret
Comment