您的位置 首页 被动

AVR单片机串口通讯程序

单片机的串口在很多时候都是一个有用的通信接口,比如要修改单片机内部的一些变量,就可以直接使用串口通信,将参数发送到单片机,就省

  单片机的串口在许多时分都是一个有用的通讯接口,比如要修正单片机内部的一些变量,就可以直接运用串口通讯,将参数发送到单片机,就省去了从头编译下载的费事。

    AVR单片机的串口通讯功用可谓强壮啊,下面就简略说下我在学习时的一些经历。

    试验板是AVR-ATMEGA128A单片机,晶振8MHz。

  1、初始化:设置波特率前,要封闭 USART0 的一切运用,包含使能和中止。

  2、设置 UCSR0A: UCSR0A 能写的有 Bit0,Bit1,Bit6,其他 5 位为状况位.咱们一般运用的有 Bit1-U2X0,当这一位为 1 时,波特率的分频因子从 16 降到 8,可以有用的将异步通讯形式的传输速率加倍,可是这一位仅对异步操作有影响,运用同步操作时应将此位清零。

  3、设置 UCSR0C: Bit6-UMSEL0:USART0 的形式挑选0为异步形式,1为同步形式。

    Bit5:4-UPM01:0:奇偶校验形式,00 制止,01,保存,10 偶校验,11奇校验。

    Bit3-USBS0:中止位的挑选 0-中止位为1bit,1 中止位为 2bits

    Bit2:1-UCSZ01:0:字符长度 当 UCSZ02 为0时:00 表明 5 位,01 表明 6 位,10 表明7 位,11表明 8 位。当 UCSZ02 为 1 时,11 表明 9 位(UCSZ02 为 UCSR0B 里的一位寄存器)。

  4、设置 UBRR: UBRR 的设置和这些参数有关:U2X0,CPU 频率,波特率

  5、然后便是设置 UCSR0B:Bit7-RXCIE0 为接纳完毕中止使能,Bit6-TXCIE0 为发送完毕中止使 ,Bit4-RXEN0 为接纳使能,Bit3-TXEN0 为发送使能。一般情况下,接纳运用中止方法,所以运用接纳完毕中止使能。

下面是源代码:

/*
* usart.c
*
* Created: 2011/7/2 15:48:36
* Author: YIN
*/

#include <avr/io.h>
#include interrupt.h>
#include
volatile unsigned char temp;
void init()
{
UCSR0B=0x00;
UBRR0H=0x00;
UBRR0L=51;
UCSR0A=0x00;
UCSR0C=0x06;
UCSR0B=0x98;
sei();
DDRF=0xff;
PORTF=0xff;
DDRD=0xf0;
DDRA=0xff;

}
void delay()
{
unsigned int i;
i=100;
while(i–);
}

int main(void)
{
init();
while (1);            //等候中止
}

SIGNAL(SIG_UART0_RECV)    //将上位机发送的数据发送回上位机显现
{
temp=UDR0;
PORTA=~temp;
UDR0=temp;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/255541.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部