打印
[AVR单片机]

Atmega162USART0使用中遇到的问题,请教各位

[复制链接]
1290|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
whiteboy|  楼主 | 2007-8-12 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是我的一个程序,想要使用Atmega162进行通讯,但在调试过程中UCSR0C一直没有反映,就是程序无法对其进行设置。不道问题在什么地方。

.include "m162def.inc"
.def   COM_DATA  =r10
.org   0x0000
rjmp  RESET
.org   0x0080
RESET:
    ldi r16,high(RAMEND)   ;设atmega162堆栈指针
    out SPH,r16            ;见器件配置文件"m162def.inc "
    ldi r16,low(RAMEND)
    out SPL,r16
    ldi r17,0x0
    ldi r16,0x5f           ;baud rate=4800 (Freq=7.327800)
    rcall USART0_Init
SEND:
    ldi   r16,0x55
    rcall USART0_Transmit 
    rjmp send
;串口发送子程序
USART0_Transmit:
    ;Wait for empty transmit buffer
    sbis UCSR0A,UDRE0
    rjmp USART0_Transmit
    out  UDR0,r16
    ret
;串口接收子程序
USART0_Receive:
    ;Wait for data to be received
    sbis UCSR0A,RXC0
    rjmp USART0_Receive
    ;get an d return received data from buffer
    in   r16,UDR0
    ret
;串口初始化    
USART0_Init:
    ;set baud rate
    out UBRR0H,r17
    out UBRR0L,r16
    ;enable Receiver and Transmitter 
    ldi r16,(1<<RXEN0)|(1<<TXEN0)
    OUT UCSR0B,r16
    ;Set frame format:8data,1stop bit
         ldi r16,(1<<URSEL0)|(1<<UCSZ1)|(1<<UCSZ0) ;Frame=8,n,1
    ;out UCSR0C,r16    ;访问UCSR0C方法一
    out 0x20,r16       ;访问UCSR0C方法二
    ret

上面的USART0_Init子程序中,对UCSR0C的两种访问,在Studio中都没有反映,
除此之外,我在gcc中调试的情况一样,不知道是我使用有问题,还中162自身有什么我还不清楚的地方,请各位大虾帮一把。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝