新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于VB實現(xiàn)PC機與單片機的串行通訊

        基于VB實現(xiàn)PC機與單片機的串行通訊

        作者: 時間:2012-03-22 來源:網(wǎng)絡(luò) 收藏

        口的操作可分為以下幾步進行:①口初始化;②發(fā)送聯(lián)絡(luò)信號;③接收聯(lián)絡(luò)信號;④發(fā)送數(shù)據(jù)。以下程序由匯編語言編寫:
        ORG 0030H
        START:MOV SP,#60H
        MOV TMOD, #20H ;T1工作模式2
        MOV TH1, #72H
        MOV TL1, #72H ;波特率110HZ
        SETB TR1
        MOV ON, #00H ;SMOD=0
        MOV SCON, #50H ;方式1
        MOV R0,#20H
        MOV R2,#30 ;數(shù)據(jù)個數(shù)
        XX1:MOV A,#55H
        MOV SBUF,A ;發(fā)送聯(lián)絡(luò)信號
        WAIT1:JBC TI,WAIT2 ;等待發(fā)送完畢
        AJMP WAIT1
        WAIT2:JBC RI,READ ;等待接收完畢
        AJMP WAIT2
        READ:MOV A,SBUF ;接收聯(lián)絡(luò)信號
        CJNE A,# 0AAH,XX1 ;接收數(shù)據(jù)不正確,重新開始
        LOOP:MOV A,@R0
        MOV SBUF,A
        WAIT: JBC TI, LOOP1
        AJMP WAIT ;等待發(fā)送完畢
        LOOP1:INC R0
        DJNZ R2,LOOP
        END
        (2)計算機的串行程序
        為了更方便地實時了解數(shù)據(jù)采集的情況,我們把從讀來的數(shù)據(jù)分別賦給數(shù)組,然后描繪出波形曲線。
        首先開啟一個項目,并在窗體上安排一個MSCOMM控件,作為串行的信道。按下F4調(diào)出屬性窗口,變量COMPORT屬性為2,另外將 Rthreshold屬性設(shè)為1,意思就是只要外界傳送任何字符串,隨即引發(fā)事件。安排一個定時器,作為連續(xù)動作的執(zhí)行控件,一旦一位數(shù)據(jù)發(fā)送完就引發(fā)中斷,發(fā)送下一個數(shù)據(jù)。設(shè)置一個picturebox對象,把由傳送來的數(shù)據(jù)以線條方式繪制在此圖片框控件上。按下F4調(diào)出屬性窗口,其Name屬性改為“Graph1”。
        MSCOMM控件支持以文本和二進制格式傳輸數(shù)據(jù),由于下位機是,處理二進制數(shù)據(jù)較為方便。因此本例中以二進制格式發(fā)送和接受數(shù)據(jù),支持字節(jié)變量類型來存儲二進制數(shù)據(jù),從串口讀入的字節(jié)被保存在字節(jié)數(shù)組變量中,因此定義兩個BYTE類型的動態(tài)數(shù)組來存放和接受數(shù)據(jù),在接受數(shù)據(jù)時采用事件驅(qū)動法,當(dāng)接受緩沖區(qū)有Rthreshold個數(shù)據(jù)時,引起ONCOMM事件。
        本程序接收從單片機發(fā)來的30個數(shù)據(jù),當(dāng)數(shù)據(jù)進入機的輸入緩沖區(qū)后,程序會不斷讀取輸入緩沖區(qū)的數(shù)據(jù),并將這些讀入的數(shù)據(jù)收在一起,賦給數(shù)組。
        因為支持坐標(biāo)格式,我們用SCALE函數(shù)作出坐標(biāo),定義X軸由0到30,表示有30個數(shù)據(jù),Y軸由-20到+20,表示采集數(shù)據(jù)的范圍是-20 到+20,表達式為SCALE(0,+20)-(30,-20),為了實時采集數(shù)據(jù),可以用定時器不斷地更新曲線。這樣就可以動態(tài)地顯示被采集的數(shù)據(jù)。



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 日照市| 霍林郭勒市| 朝阳市| 丰顺县| 绿春县| 行唐县| 高碑店市| 五家渠市| 郸城县| 社旗县| 罗平县| 湟源县| 芮城县| 喜德县| 榆林市| 黑河市| 怀仁县| 临潭县| 河曲县| 木兰县| 汾阳市| 盖州市| 祥云县| 山东省| 绍兴市| 甘孜| 永兴县| 蓬莱市| 务川| 南漳县| 锡林郭勒盟| 桐城市| 阿拉尔市| 资溪县| 壤塘县| 右玉县| 德安县| 江口县| 同仁县| 萨嘎县| 新宾|