在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            單片機之串口通信

            作者: 時間:2018-08-15 來源:網(wǎng)絡(luò) 收藏

            串口一個重要的部分,和PC,和單片機之間的大都用串口。單片機的串口是全雙工異步串口方式。通過TXD(P3.1)發(fā)送,RXD(P3.0)引腳接收輸入。串口傳送數(shù)據(jù)是一幀一幀發(fā)送的,它有四種工作方式,同時也可以做并行I/O的擴(kuò)展。

            本文引用地址:http://www.biyoush.com/article/201808/386936.htm

            圖上是串口的結(jié)構(gòu)圖。

            SBUF是數(shù)據(jù)緩沖寄存器,發(fā)送和接收用的是一個地址,但是不用擔(dān)心沖突,讀只能從接收緩沖區(qū),寫只能在發(fā)送緩沖區(qū)里。

            寄存器SCON(SM0 SM1 SM2 REN TB8 RB8 TI RI)

            SM0和SM1: 工作方式選擇(0-3),方式1和方式3使用T1產(chǎn)生波特率,方式0和方式2是固定速率。

            SM2 :在方式2和方式3的多級通信控制位

            REN:允許串行接收控制位,0禁止接收

            TB8:對于方式2和方式3,是發(fā)送的第9位

            RB8:對于方式2和方式3,是接收的第9位;對于方式1,是接收到的停止位

            TI:發(fā)送中斷標(biāo)志,發(fā)送完一幀后置位,必須由軟件清零

            RI:發(fā)送中斷標(biāo)志,接收完一幀后置位,必須由軟件清零

            寄存器PCON(最高位SMOD)

            SMOD=1時,波特率加倍

            程序:PC與單片機通信,PC發(fā)送字符,單片機接收后返回給PC

            PC端程序,VB編寫,使用MSCOMM控件

            Private Sub Command1_Click()

            MSComm1.Output = Text1.Text '發(fā)送數(shù)據(jù)

            End Sub

            Private Sub Form_Load()

            MSComm1.CommPort = 4 '設(shè)置串口的端口號

            MSComm1.Settings = 9600,n,8,1 '設(shè)置串口的波特率等參數(shù)

            MSComm1.RThreshold = 1 '設(shè)置最小接收的字節(jié)數(shù)

            MSComm1.PortOpen = True '打開串口

            End Sub

            Private Sub MSComm1_OnComm()

            Select Case MSComm1.CommEvent

            Case comEvReceive

            Text2.Text = Text2.Text MSComm1.Input '接收數(shù)據(jù)

            End Select

            End Sub

            單片機程序:

            #include

            void UartInit();

            void UartSendchar(unsigned char ch);

            void main(void)

            {

            UartInit();

            while(1);

            }

            void UartInit()

            {

            SCON = 0x50; // SCON: 模式1

            TMOD = 0x20; // TMOD: 定時器1 模式2

            PCON = 0x00; // SMOD=0;

            TH1 = 0xFD; // Baud:9600 波特率=2SMOD×fosc/(32×12×(256-TH1))

            TL1 = 0xFD;

            IE = 0x90;

            TR1 = 1;

            EA = 1;

            }

            void UartSendChar(unsigned char ch)

            {

            SBUF = ch;

            while(TI==0);

            TI=0;

            }

            void UartRec() interrupt 4

            {

            unsigned char ch;

            ch = SBUF;

            if(RI)

            {

            RI = 0;

            UartSendChar(ch);

            }



            關(guān)鍵詞: 單片機 通信

            評論


            相關(guān)推薦

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

            關(guān)閉