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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2684|回復: 0
打印 上一主題 下一主題
收起左側

單片機串口通信筆記(中斷復習)

[復制鏈接]
跳轉到指定樓層
樓主
ID:424317 發表于 2020-2-22 13:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
        把單片機當做一個APP,中斷系統就是其中的一項功能。這個功能強不強大,是衡量一個APP的標準。
        這項功能的作用是幫助你處理突發事件的。我們做事都有個優先級。你放在中斷系統里的事情肯定是要優先處理的事情,所以當中斷觸發的時候,單片機要停下它當前做的事,來處理中斷中的事。也就是說,單片機要在中斷觸發時,停止運行主函數里的代碼,轉而運行中斷里的代碼。等到中斷的代碼運行完畢之后,再繼續運行主函數的代碼。
        中斷這一項功能是要手動打開的,所以在主函數的一開始就要先打開中斷系統的開關。也就是EA=1,
EA=0表示關掉所有的中斷,EA=1表示打開。
        中斷可以被6種方式觸發,有以下六種。
        1.外部中斷0,當P3.2口輸入低電平時觸發
        2.外部中斷1,當P3.3口輸入低電平時觸發
        3.串行口中斷,當串口完成一幀數據的傳輸時
        剩下的自己看書或者數據手冊╮(╯▽╰)╭

        既然是六種觸發方式,那你就要在主函數一開始就要告訴單片機是那種。比如你想用P3.2口低電平觸發,那么就要寫EX0=1,表示是外部中斷0,再寫IT0=1,表示低電平觸發。
        如果你想要用串行口中斷,你首先得把單片機串口這項功能打開。寫下:
        EA=1;//打開總中斷
        ES=1;//打開串口中斷
        REN=1;//允許串口接收
理論上就可以使用串口中斷。但是串口中斷的方式也不止一種。最常用的一種就是工作方式1。
        將串口設置成工作方式1的代碼是SM0=0; SM1=1; 這種方式下,單片機與計算機,或者單片機與單片機之間傳輸數據是一幀一幀的傳輸。一幀數據有十位,第一位和最后一位是標志位,用來告訴單片機發送的那一幀數據的開始和結束的,單片機會自動把這兩位剔除。每一幀數據發送完畢之后,一個叫TI的參數就會被置1,這時串行口中斷就會被觸發;每一幀數據接收完畢之后,也會有一個參數被置1,叫RI,也會觸發中斷。
        下面看一段代碼:
void main()
{
        TMOD=0x20;                   //用定時器設置串口波特率           9600
        REN=1;          //串口初始化
        SM0=0;
        SM1=1;
        EA=1;           //開啟總中斷
        ES=1;
        while(1)
        {
                if(num==1)    //判斷是否有串口數據的傳送
                {
                        ES=0;
                        num=0;
                        SBUF=a;                         //發送數據a到SBUF,即將單片機的數據發送到計算機
                        while(!TI);
                        TI=0;
                        ES=1;
                }
        }        
}
void ser() interrupt 4
{
        RI=0;
        P2=SBUF;                        //接收數據SBUF,即將計算機的數據接收。
        a=SBUF;
        num=1;
}

        這段程序會先進行初始化,把該打開的打開,把串口中斷的模式設置好,然后進入while循環。while循環里的第一步,是計算機向單片機發送數據,此時單片機已經接收到了數據,RI被置1,程序進入中斷,RI被清零,緩存在SBUF的數據賦值給a。然后跳出中斷,執行if語句,關閉中斷,再將a賦值給發送緩存區。當數據從發送緩存區進入計算機時,TI會被置1,進而通過while循環。然后在清零TI,打開中斷,以便發送下一幀數據。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天久| 精品国产女人 | 亚洲毛片一区二区 | 亚洲精品68久久久一区 | 亚洲一区二区在线播放 | 久久久久久久av | 一区二区三区免费在线观看 | 久久久91| 国产免费福利在线 | 国产精品久久一区 | 亚洲中午字幕 | 国产剧情一区 | 亚洲综合成人网 | 精品国产色 | 九九热精品视频 | 久久精品a级毛片 | 久久r精品 | 精品久久久久久久久久久院品网 | 国产免费观看久久黄av片涩av | 欧美成人免费在线视频 | 国产精品99久久久久久久vr | 国产视频一区二区 | 亚洲手机在线 | 国产欧美精品 | 日本在线一二 | 欧美一区二区三区在线观看 | 日本欧美在线视频 | 欧美日在线| 国产欧美一区二区三区日本久久久 | 日本黄色免费片 | 毛片电影 | 免费一区二区三区 | 欧美激情精品久久久久久变态 | av一区二区三区四区 | 中文在线一区二区 | 亚洲国产成人精品女人久久久 | 国产日本精品视频 | 黑人中文字幕一区二区三区 | 精品国产一区二区三区成人影院 | 久久久久久久97 | 嫩草研究影院 |