中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        單片機(jī)之串口通信

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

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

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

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

        SBUF是數(shù)據(jù)緩沖寄存器,發(fā)送和接收用的是一個(gè)地址,但是不用擔(dān)心沖突,讀只能從接收緩沖區(qū),寫(xiě)只能在發(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的多級(jí)通信控制位

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

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

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

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

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

        寄存器PCON(最高位SMOD)

        SMOD=1時(shí),波特率加倍

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

        PC端程序,VB編寫(xiě),使用MSCOMM控件

        Private Sub Command1_Click()

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

        End Sub

        Private Sub Form_Load()

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

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

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

        MSComm1.PortOpen = True '打開(kāi)串口

        End Sub

        Private Sub MSComm1_OnComm()

        Select Case MSComm1.CommEvent

        Case comEvReceive

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

        End Select

        End Sub

        單片機(jī)程序:

        #include

        void UartInit();

        void UartSendchar(unsigned char ch);

        void main(void)

        {

        UartInit();

        while(1);

        }

        void UartInit()

        {

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

        TMOD = 0x20; // TMOD: 定時(shí)器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)鍵詞: 單片機(jī) 通信

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉