在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)串口通信程序

            AVR單片機(jī)串口通信程序

            作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
              單片機(jī)的串口在很多時(shí)候都是一個(gè)有用的通信接口,比如要修改單片機(jī)內(nèi)部的一些變量,就可以直接使用串口通信,將參數(shù)發(fā)送到單片機(jī),就省去了重新編譯下載的麻煩。

                AVR單片機(jī)的串口通信功能可謂強(qiáng)大啊,下面就簡單說下我在學(xué)習(xí)時(shí)的一些經(jīng)驗(yàn)。

            本文引用地址:http://www.biyoush.com/article/201611/323494.htm

                實(shí)驗(yàn)板是AVR-ATMEGA128A單片機(jī),晶振8MHz。

              1、初始化:設(shè)置波特率前,要關(guān)閉 USART0 的所有使用,包括使能和中斷。

              2、設(shè)置 UCSR0A: UCSR0A 能寫的有 Bit0,Bit1,Bit6,其他 5 位為狀態(tài)位.我們一般使用的有 Bit1-U2X0,當(dāng)這一位為 1 時(shí),波特率的分頻因子從 16 降到 8,能夠有效的將異步通信模式的傳輸速率加倍,但是這一位僅對(duì)異步操作有影響,使用同步操作時(shí)應(yīng)將此位清零。

              3、設(shè)置 UCSR0C: Bit6-UMSEL0:USART0 的模式選擇0為異步模式,1為同步模式。

                Bit5:4-UPM01:0:奇偶校驗(yàn)?zāi)J?00 禁止,01,保留,10 偶校驗(yàn),11奇校驗(yàn)。

                Bit3-USBS0:停止位的選擇 0-停止位為1bit,1 停止位為 2bits

                Bit2:1-UCSZ01:0:字符長度 當(dāng) UCSZ02 為0時(shí):00 表示 5 位,01 表示 6 位,10 表示7 位,11表示 8 位。當(dāng) UCSZ02 為 1 時(shí),11 表示 9 位(UCSZ02 為 UCSR0B 里的一位寄存器)。

              4、設(shè)置 UBRR: UBRR 的設(shè)置和這些參數(shù)有關(guān):U2X0,CPU 頻率,波特率

              5、然后就是設(shè)置 UCSR0B:Bit7-RXCIE0 為接收結(jié)束中斷使能,Bit6-TXCIE0 為發(fā)送結(jié)束中斷使 ,Bit4-RXEN0 為接收使能,Bit3-TXEN0 為發(fā)送使能。一般情況下,接收使用中斷方式,所以使用接收結(jié)束中斷使能。

            下面是源代碼:

            /*
            * 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)    //將上位機(jī)發(fā)送的數(shù)據(jù)發(fā)送回上位機(jī)顯示
            {
            temp=UDR0;
            PORTA=~temp;
            UDR0=temp;
            }



            關(guān)鍵詞: AVR單片機(jī)串口通

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉