<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          對(duì)口的操作可分為以下幾步進(jìn)行:①口初始化;②發(fā)送聯(lián)絡(luò)信號(hào);③接收聯(lián)絡(luò)信號(hào);④發(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ù)個(gè)數(shù)
          XX1:MOV A,#55H
          MOV SBUF,A ;發(fā)送聯(lián)絡(luò)信號(hào)
          WAIT1:JBC TI,WAIT2 ;等待發(fā)送完畢
          AJMP WAIT1
          WAIT2:JBC RI,READ ;等待接收完畢
          AJMP WAIT2
          READ:MOV A,SBUF ;接收聯(lián)絡(luò)信號(hào)
          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)計(jì)算機(jī)的串行程序
          為了更方便地實(shí)時(shí)了解數(shù)據(jù)采集的情況,我們把從讀來的數(shù)據(jù)分別賦給數(shù)組,然后描繪出波形曲線。
          首先開啟一個(gè)項(xiàng)目,并在窗體上安排一個(gè)MSCOMM控件,作為串行的信道。按下F4調(diào)出屬性窗口,變量COMPORT屬性為2,另外將 Rthreshold屬性設(shè)為1,意思就是只要外界傳送任何字符串,隨即引發(fā)事件。安排一個(gè)定時(shí)器,作為連續(xù)動(dòng)作的執(zhí)行控件,一旦一位數(shù)據(jù)發(fā)送完就引發(fā)中斷,發(fā)送下一個(gè)數(shù)據(jù)。設(shè)置一個(gè)picturebox對(duì)象,把由傳送來的數(shù)據(jù)以線條方式繪制在此圖片框控件上。按下F4調(diào)出屬性窗口,其Name屬性改為“Graph1”。
          MSCOMM控件支持以文本和二進(jìn)制格式傳輸數(shù)據(jù),由于下位機(jī)是,處理二進(jìn)制數(shù)據(jù)較為方便。因此本例中以二進(jìn)制格式發(fā)送和接受數(shù)據(jù),支持字節(jié)變量類型來存儲(chǔ)二進(jìn)制數(shù)據(jù),從串口讀入的字節(jié)被保存在字節(jié)數(shù)組變量中,因此定義兩個(gè)BYTE類型的動(dòng)態(tài)數(shù)組來存放和接受數(shù)據(jù),在接受數(shù)據(jù)時(shí)采用事件驅(qū)動(dòng)法,當(dāng)接受緩沖區(qū)有Rthreshold個(gè)數(shù)據(jù)時(shí),引起ONCOMM事件。
          本程序接收從單片機(jī)發(fā)來的30個(gè)數(shù)據(jù),當(dāng)數(shù)據(jù)進(jìn)入機(jī)的輸入緩沖區(qū)后,程序會(huì)不斷讀取輸入緩沖區(qū)的數(shù)據(jù),并將這些讀入的數(shù)據(jù)收在一起,賦給數(shù)組。
          因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/VB">VB支持坐標(biāo)格式,我們用SCALE函數(shù)作出坐標(biāo),定義X軸由0到30,表示有30個(gè)數(shù)據(jù),Y軸由-20到+20,表示采集數(shù)據(jù)的范圍是-20 到+20,表達(dá)式為SCALE(0,+20)-(30,-20),為了實(shí)時(shí)采集數(shù)據(jù),可以用定時(shí)器不斷地更新曲線。這樣就可以動(dòng)態(tài)地顯示被采集的數(shù)據(jù)。



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();