久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

AVR單片機串口通信程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年10月24日   【字體:

  單片機的串口在很多時候都是一個有用的通信接口,比如要修改單片機內部的一些變量,就可以直接使用串口通信,將參數發送到單片機,就省去了重新編譯下載的麻煩。

    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 <avr/interrupt.h>
#include <avr/signal.h>
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;
}

 

 

部分內容摘自網絡,希望對大家有幫助!

關閉窗口

相關文章

主站蜘蛛池模板: 黄色一级在线观看 | 国产一区二区视频在线 | 欧美日韩毛片 | 国产精品一区二区不卡 | 麻豆一区二区三区 | 五月婷婷亚洲 | 欧美黄色精品 | 中文字幕免费视频 | 免费av网站在线观看 | 四虎影视av | 日韩一级免费视频 | 麻豆亚洲一区 | 天天操天天舔 | 人人草人人爽 | 国内自拍xxxx18 | 婷婷色婷婷 | 国产精品久久久久久久久久久久午夜片 | 国产在线一区二区 | 亚洲成人免费网站 | 国产日韩免费 | av噜噜 | 成年人毛片| 超碰99在线| 欧美顶级黄色大片免费 | 日韩av在线不卡 | 人人澡人人爽 | 欧美爱爱视频 | 欧美久久网 | 精品国产91乱码一区二区三区 | 日韩a级片 | 黄色小视频在线观看 | 性大毛片视频 | av一区二区三区 | av片在线免费观看 | 亚洲天堂视频在线观看 | 色婷婷18 | 久久久福利视频 | 夜夜夜夜操 | 五月婷婷在线视频 | 国产伦理一区 | 国产一区精品在线 |