智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2252|回复: 3
打印 上一主题 下一主题

求助:AVR Mega16单片机的串口通信初始化程序?

[复制链接]

11

主题

131

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1396
QQ
威望
789
贡献
431
兑换币
274
注册时间
2011-11-25
在线时间
88 小时
跳转到指定楼层
1#
发表于 2013-5-10 22:07:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助

16

主题

1037

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5076

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

威望
1956
贡献
2072
兑换币
679
注册时间
2012-2-24
在线时间
524 小时
2#
发表于 2013-5-10 22:24:25 | 只看该作者
//******串口通信的设置步骤*****///
/*一般情况下我们发使用查询法、而接受使用中断、数据寄存器为空一般不用

其中我们会用到数据缓存器寄存器UDR即类似于51中的SBUF寄存器,其中的发送数据缓存器与接受数据缓存器占相同的地址

第一步:设置USART的控制与状态寄存器:UCSRA含有一些中断的标志位和是否倍速模式,在默认的情况下可以不用设置此寄存器
                                                                   :UCSRB包含一些中断的使能位和接受与发送使能
                                                                   :UCSRC与UBRRH(波特率设置寄存器的高8位)共用同一个IO口地址,当其第七位URSEL为1时选择了UCRSC寄存器,当其为0时选择了UBRRH
                                                                   :UCSRC包含了寄存器选择、同步或异步模式的选择、发送数据位数的选择、以及奇偶校验位的选择和停止位的个数

第二步:波特率的设置,即给UBRRH与UBRRl的赋值,低8位加上高寄存器中的低4位共12位

第三步:串口中断函数初始化(主要是接受中断函数)

第四步:开总中断sei();

void USART_intial()
{
   UCSRA&=~(1<<U2X);//设置普通的模式,还可以用来设置倍速模式
   UCSRB=0x98;//使能了接收中断的使能位,而发送与数据寄存器为空中断没有使能,开了发送和接受使能,       
   UCSRC|=(1<<URSEL);//选择为控制寄存器
   UCSRC=0x96;//设置为异步无奇偶校验,停止位为1和8位数据位
   UBRRH=0;
   UBRRL=51;//为波特率为9600,有0.2%的误差,晶振为8MHZ,其实可以通过公式去计算波特率,UBRR=[Fosc/(16*BAUD)]-1;
   sei();

}

void USRAT_send(uchar date)
{
  while(!(UCSRA&(1<<UDRE)));//判断数据寄存器UDR是否为空,不空则等待,空则发送
  UDR=date;
  while(!(UCSRA&(1<<TXC)));//发送完成则TXC置位,否则等待
  UCSRA&=~(1<<TXC);//由于在中断函数中发送标志位会自动清零,但由于我们没有用发送中断函数所以我们要软件清零
  
}
回复 支持 反对

使用道具 举报

11

主题

131

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1396
QQ
威望
789
贡献
431
兑换币
274
注册时间
2011-11-25
在线时间
88 小时
3#
 楼主| 发表于 2013-5-11 09:23:37 | 只看该作者
非常感谢
回复 支持 反对

使用道具 举报

28

主题

1169

帖子

0

精华

常驻嘉宾

如来佛

Rank: 8Rank: 8

积分
3960

论坛元老奖章优秀会员奖章活跃会员奖章在线王奖章

QQ
威望
2706
贡献
150
兑换币
127
注册时间
2012-10-23
在线时间
552 小时
4#
发表于 2013-5-11 11:20:59 | 只看该作者
准备参加国晒
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 14:59 , Processed in 0.265167 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表