[AVR单片机] Atmega 16串口通信实现数据发送与接收

[复制链接]
1767|4
 楼主| 木文 发表于 2015-10-8 22:24 | 显示全部楼层 |阅读模式
各位大神,小弟刚开始学习AVR单片机,不了解中断的使用,在一边学习,一边摸索,做一个实验
  1、基于Atmega 16通过中断实现串口通信
  2、使用汇编语言
  3、从PC机发送一个字节的数据,单片机接收后返回给PC机相同的数据
 楼主| 木文 发表于 2015-10-9 00:24 | 显示全部楼层
.include"m16def.inc"
.org $000
jmp main
.org $016
jmp TX
.org $018
jmp RX

main:
        ldi r16,0x00
        out ucsra,r16
        out ucsrb,r16       //初始化控制与状态寄存器A、B
        ldi r16,0x86
        out ucsrc,r16       //选择ucsrc寄存器,异步模式,禁止校验,8位数据
        ldi r16,0x00
        out ubrrh,r16
        ldi r16,0x2f
        out ubrrl,r16     //设置波特率位9600
        ldi r16,0x98
        out ucsrb,r16     //接收中断使能
        sei               
        ldi r16,0x02
        out ddrd,r16
 楼主| 木文 发表于 2015-10-9 00:24 | 显示全部楼层
这是开始的初始化,有没有问题给看看
airwill 发表于 2015-10-13 16:59 | 显示全部楼层
只是一个初始化, 寄存器值参考书籍吧, 应该没有啥难度
你可以先不要使能中断, 用查询的办法来操作 UART.
cdwess 发表于 2015-10-31 01:08 | 显示全部楼层
高手才用汇编,新手还是老实的用C吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部