在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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) > 設計應用 > 基于串口通信的單片機仿真和C語言開發(fā)

            基于串口通信的單片機仿真和C語言開發(fā)

            作者: 時間:2012-08-28 來源:網(wǎng)絡 收藏

            2. 選擇波特率發(fā)生器

            選擇定時器1或定時器2 做為其波特率發(fā)生器。

            3. 設置定時器工作方式

            當選擇定時器1 做為波特率發(fā)生器時,需設置其方式寄存器TMOD 為計數(shù)方式并選擇相應的工作方式(一般選擇方式2 以避免重裝定時器初值);當選擇定時器2 做為波特率發(fā)生器時,需將T2CON 設置為波特率發(fā)生器工作方式。

            4. 設置波特率參數(shù)

            影響波特率的參數(shù)有二,一是特殊寄存器PCON 的SMOD 位,另一個是相應定時器初值。

            5. 允許串行中斷

            因在程序中我們一般采有中斷接收方式,故應設EA=1、ES=1.

            6. 允許接收數(shù)據(jù)

            設置 SCON 中的REN 為1.表示允許串行口接收數(shù)據(jù)。

            7. 允許定時/計數(shù)器工作

            此時開啟定時/計數(shù)器,使其產(chǎn)生波特率8. 編寫串行中斷服務程序。

            當有數(shù)據(jù)到達時,系統(tǒng)將自動執(zhí)行所編寫的中斷服務程序。

            9. 收/發(fā)相應數(shù)據(jù)

            注意的是發(fā)送操作完成需將T1清零,接收工作完成后需將R1清零。

            5.2 程序設計

            5.2.1 主程序設計

            主程序主要完成硬件初始化、子程序調(diào)用等功能。

            1. 初始化。

            首先調(diào)用 LCD 初始化程序,在LCD 上顯示數(shù)據(jù)RECEIVE:和TEMP is: *C.

            然后調(diào)用中斷及初始化子程序程序,把接收數(shù)據(jù)單元RECDATA 清零。設置寄存器SCON 的SM0、SM1 位定義串口工作方式,選擇波特率發(fā)生器為定時器T1;設定定時器T1 工作方式為方式2;設置波特率參數(shù)為9600bps;允許串行中斷及總中斷;允許串口接收數(shù)據(jù),定義REN=1;啟動定時/計數(shù)器T1 工作,定義TR1=1.

            2. 串口收發(fā)數(shù)據(jù)。

            判斷串口成功接收數(shù)據(jù)標志位flag_uart 是否為0,若flag_uart 為0,表明串口未接收到數(shù)據(jù),則繼續(xù)等待串口接收數(shù)據(jù);若flag_uart 為1,表明串口成功接收或發(fā)送數(shù)據(jù),進入串口中斷服務子程序,接收數(shù)據(jù),并將串口成功接收數(shù)據(jù)標志位flag_uart 清零,調(diào)用LCD 顯示接收數(shù)據(jù)子程序,在LCD 上顯示從串口接收到的數(shù)據(jù),同時回傳溫度值給PC機顯示。主程序設計流程圖如圖5.1 所示。

            圖 5.1 主程序流程圖
            圖 5.1 主程序流程圖

            5.2.2 串口中斷服務子程序

            判斷串口發(fā)送標志位TI 是否為1,若TI 為1,則把數(shù)據(jù)從發(fā)給PC 機,并把TI清零,中斷子程序返回;若TI為0,表明RI=0,則把串口接收標志位RI清零,把串口接收緩沖器SBUF 中的數(shù)據(jù)寫入串口接收數(shù)據(jù)單元RECDATA,再把該數(shù)據(jù)送到串口發(fā)送緩沖器SBUF 中,傳給PC 機,置串口成功接收數(shù)據(jù)標志位RECOKBIT 為1,表明串口成功接收發(fā)送數(shù)據(jù),最后中斷子程序返回。串口收發(fā)數(shù)據(jù)中斷服務子程序設計流程圖如圖5.2 所示。

            圖5.2 串口中斷服務子程序
            圖5.2 串口中斷服務子程序



            評論


            相關推薦

            技術專區(qū)

            關閉