打印
[AVR单片机]

Atmega16串口usart调试出现了问题,新手请教

[复制链接]
1199|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
木文|  楼主 | 2015-10-9 22:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
.include"m16def.inc"
.org $000
jmp main
.org $016
jmp usart_Transport
.org $018
jmp usart_Recive

main:
        ldi r17,0x00
        out ucsra,r17
        out ucsrb,r17     //初始化控制与状态寄存器A、B

        ldi r16,0x86
        out ucsrc,r17   //选择ucsrc寄存器,异步模式,禁止校验,8位数据

        ldi r16,0x00
        out ubrrh,r17
        ldi r16,0x2f
        out ubrrl,r17     //设置波特率位9600
        ldi r16,0x98
        out ucsrb,r17     //接收中断使能
        sei               
        ldi r16,0x02
        out ddrd,r17    //设置为输出
///发送
usart_Transport:
        sbis ucsra,udre    //等待发送缓冲器为空
        rjmp usart_Transport
        out udr,r16         //将数据放入缓冲器,发送数据
///接收
usart_Recive:
        sbis ucsra,rxc
        rjmp usart_Recive
        in r16,udr

相关帖子

沙发
木文|  楼主 | 2015-10-9 22:17 | 只看该作者
这是串口调试助手的结果,为啥显示COM3口关闭

QQ截图20151009221315.png (45.33 KB )

QQ截图20151009221315.png

使用特权

评论回复
板凳
木文|  楼主 | 2015-10-9 22:18 | 只看该作者
求救哪位大神给看看,汇编语言真的不是太懂

使用特权

评论回复
地板
元方义城| | 2015-10-10 09:33 | 只看该作者
现在耐心看汇编的人还有谁?改用C吧

使用特权

评论回复
5
zgxpc| | 2015-10-12 22:01 | 只看该作者
USB转串口线没插好吧

使用特权

评论回复
6
airwill| | 2015-10-13 16:56 | 只看该作者
这段汇编其实很简单.
main 主程序在完成串口初始化后, 为何没有做个死循环?

///发送
usart_Transport:
        sbis ucsra,udre    //等待发送缓冲器为空
        rjmp usart_Transport
        out udr,r16         //将数据放入缓冲器,发送数据
///接收
usart_Recive:
        sbis ucsra,rxc
        rjmp usart_Recive
        in r16,udr

这是发和收数据的子程序, 并不是中断服务函数. 应该放在主程序里调用.
中断服务函数是需要特别的中断返回指令的.
看来楼主还是新手, 建议改学 C 语言吧, 起步稍微辛苦一点, 后面会有很多甜头.

使用特权

评论回复
7
duxingkei| | 2015-10-14 16:31 | 只看该作者
本帖最后由 duxingkei 于 2015-10-14 16:33 编辑
木文 发表于 2015-10-9 22:17
这是串口调试助手的结果,为啥显示COM3口关闭

COM3 你确定是接了M16的串口?   要是USB转串口,重新拔插USB口,确定RX  TX接通正确?交叉下TX TX试试
汇编,写倒是会写,但是建议改C吧,大把例程,没这么复杂

使用特权

评论回复
8
duxingkei| | 2015-10-14 16:36 | 只看该作者
仔细看了下你的中断,没有 PUSH  POP进栈 出栈 ,也许程序简单,不需要吧。

测试串口的话,建议先直接在主程序里面拼命发送 ,用电脑接收测试下线路是否OK

使用特权

评论回复
9
mcumail| | 2015-10-15 08:49 | 只看该作者
不懂汇编啊

使用特权

评论回复
10
190008417| | 2015-10-17 13:18 | 只看该作者
汇编语言有点难懂哈,现在的单片机都用C语言。

使用特权

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

本版积分规则

2

主题

6

帖子

0

粉丝