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

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        中斷和串口剖析

        作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
        以前對(duì)STC89C52單片機(jī)的串口中斷始終沒有深入的了解

        今天沒什么事,就好好的琢磨了一下,前提是單片機(jī)開啟了串口中斷

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

        1、先說(shuō)串口接收數(shù)據(jù)中斷吧:當(dāng)單片機(jī)串口接收到數(shù)據(jù)后,產(chǎn)生中斷,單片機(jī)跳到中斷程序中,可以選擇接收數(shù)據(jù)或者進(jìn)行其他的操作,此時(shí)的串口數(shù)據(jù)可以作為控制信號(hào),也可以僅僅是一個(gè)觸發(fā)動(dòng)作,具體的操作根據(jù)中斷函數(shù)實(shí)現(xiàn)具體的功能。在中斷函數(shù)最后,需要將串口接收標(biāo)志位RI清0。

        2、發(fā)送中斷:當(dāng)單片機(jī)向串口發(fā)送數(shù)據(jù)后,單片機(jī)產(chǎn)生串口發(fā)送中斷,同理,所發(fā)送的數(shù)據(jù)僅僅是出發(fā)中斷,中斷函數(shù)的具體功能和所發(fā)的數(shù)據(jù)沒有必然的關(guān)系,串口發(fā)送的作用是觸發(fā)中斷。同樣,不要忘了在最后將 TI 清0.

        總的來(lái)講,在STC89C52中,串口發(fā)送和串口接收終端公用一個(gè)中斷源,需要在中斷函數(shù)中采用一個(gè)if...elseif...結(jié)構(gòu)來(lái)判斷接收中斷標(biāo)志位和發(fā)送中斷標(biāo)志位根據(jù)判斷結(jié)果執(zhí)行相應(yīng)的函數(shù)。

        如果需要讀取串口數(shù)據(jù),則在中斷函數(shù)中將緩沖區(qū)的數(shù)據(jù)讀入單片機(jī)進(jìn)行相應(yīng)的處理,如果不需要對(duì)接收到的數(shù)據(jù)進(jìn)行處理,那么此時(shí)串口僅僅是作為一個(gè)開關(guān),作用就是出發(fā)中斷,然后用戶根據(jù)需要在中斷函數(shù)中進(jìn)行相應(yīng)的操作即可,串口發(fā)送總中斷也是這樣一個(gè)道理,只是通常我們都是將串口作為一個(gè)數(shù)據(jù)通道,中斷的作用是,在接收和發(fā)送數(shù)據(jù)的同時(shí)還可以根據(jù)需要進(jìn)行相關(guān)的操作。

        VB下計(jì)算機(jī)與單片機(jī)的通訊:

        (1)PC端程序:

        Private Sub Command1_Click()
        Dim Num As Integer
        Dim outbte(0) As Byte
        Num = Val(Text1.Text)
        outbte(0) = CByte(Num)
        MSComm1.OutBufferCount = 0
        MSComm1.Output = outbte
        End Sub

        Private Sub Command2_Click()
        Unload Me
        End Sub

        Private Sub Form_Load()
        MSComm1.RThreshold = 2
        MSComm1.CommPort = 1
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.PortOpen = True
        End Sub

        Private Sub MSComm1_OnComm()
        Dim indata As Variant
        Dim bte(0) As Byte
        Select Case MSComm1.CommEvent
        Case comEvReceive
        indata = MSComm1.Input
        bte(0) = AscB(indata)
        Text2.Text = bte(0)
        MSComm1.InBufferCount = 0
        End Select
        End Sub

        (2)單片機(jī)程序

        #include

        sbit CW = P1^1;
        sbit CK2 = P1^2;
        sbit CK1 = P1^3;
        sbit M1 = P1^4;
        sbit M2 = P1^5;
        sbit REFIN = P1^6;
        int m = 0;


        void main(void)
        {
        int k,n;
        TMOD = 0x20;
        TH0 = 0xEF;//ef;
        TL0 = 0xFF;

        EA = 1;
        ET0 = 1;

        TR0 = 1;


        TH1 = 0xfd;
        TL1 = 0xfd;

        PCON = 0x00;
        SCON = 0x50;
        //REN = 1;
        //SM2 = 0;

        ET1 = 0;
        ES = 1;

        TR1 = 1;


        REFIN = 0;
        M1 = 1;
        M2 = 0;
        CK1 = 1;
        CW = 1;
        //n = 100;
        while(1)
        {
        for(k = 0; k < 30000; k++);
        SBUF = m;
        //n--;
        }
        }


        void CLK() interrupt 1
        {
        CK2 = !CK2;
        TH0 = 0xEF;
        TL0 = 0xFF;
        m++;
        }

        void SERIAL() interrupt 4
        {

        //TI = 0;
        }



        關(guān)鍵詞: 中斷串口剖

        評(píng)論


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

        關(guān)閉
        ×

        “芯”朋友见面大会
        珠海|11.14|泰克“芯”朋友见面大会珠海站|泰克带您从测试角度看半导体的整条产业链,快来报名抢位吧>>