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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > RS-232接口與單片機(jī)串行通信程序

          RS-232接口與單片機(jī)串行通信程序

          作者: 時(shí)間:2013-01-15 來(lái)源:網(wǎng)絡(luò) 收藏


          4、接收到數(shù)據(jù)后,發(fā)出一時(shí)短聲提示。同時(shí)將數(shù)據(jù)重新發(fā)送回電腦串口,供電腦程序接收顯示,電腦軟件接收到發(fā)送過(guò)來(lái)的數(shù)據(jù)后,顯示在軟件的接收數(shù)據(jù)窗中。

          程序設(shè)計(jì)】

          該系統(tǒng)程序由單片機(jī)通信程序和電腦通信程序構(gòu)成。在微機(jī)測(cè)控系統(tǒng)中,一般稱(chēng)計(jì)算機(jī)為上位機(jī)、而前端采集控制的單片機(jī)系統(tǒng)稱(chēng)為下位機(jī)。上位機(jī)主要負(fù)責(zé)所有測(cè)控?cái)?shù)據(jù)的綜合管理與下位機(jī)的調(diào)度控制,而下位機(jī)由單片機(jī)構(gòu)成前端的測(cè)控系統(tǒng),進(jìn)行原始數(shù)據(jù)的采集及設(shè)備的控制,下位機(jī)受上位機(jī)的管理控制。

          一、單片機(jī)程序開(kāi)發(fā)

          51單片機(jī)有一個(gè)全雙工的口,非常適合與電腦進(jìn)行通信,51單片機(jī)的串口開(kāi)發(fā)在各種教科書(shū)上都有詳細(xì)的介紹,我們這里不在重復(fù),大家可以參考一下書(shū)籍。單片機(jī)程序功能主要如下:初始化串口、打開(kāi)串口中斷、接收電腦發(fā)送的數(shù)據(jù)、在1602液晶模塊上顯示數(shù)據(jù)、將數(shù)據(jù)發(fā)送回電腦RS-232串口、接收繼電器控制命令、控制繼電器動(dòng)作等。

          單片機(jī)通信參考程序如下:

          ORG0000H
          AJMPSTART ;轉(zhuǎn)到初始化程序

          ORG0023H
          AJMPPGUART ;轉(zhuǎn)到串行中斷服務(wù)子程序

          START:MOVSP,#60H ;堆棧指針初始化
          MOVP0,#0FFH ;P0端口初始化
          MOVP1,#0FFH ;P1端口初始化
          MOVP2,#0FFH ;P2端口初始化
          MOVP3,#0FFH ;P3端口初始化
          MOVTMOD,#20H ;定時(shí)器T1工作于模式2,自動(dòng)重裝載
          MOVTH1,#0FDH ;TH1初值為"0FDH",9600bps
          MOVTL1,#0FDH ;TL1初值為"0FDH",9600bps
          MOVSCON,#50H ;串行口工作于方式1,允許接收
          SETBTR1 ;啟動(dòng)定時(shí)器T1
          SETBES ;允許串行口中斷
          SETBEA ;開(kāi)總中斷
          CLR UABIT
          ;----------------------與單片機(jī)程序設(shè)計(jì)-------------------------------

          MAIN:...... ;主程序處理其他任務(wù),等待串口中斷
          AJMP MAIN

          PGUART: ...... ;串口中斷服務(wù)子程序,接收處理數(shù)據(jù)
          RETI

          END

          二、RS-232串行通信測(cè)試軟件開(kāi)發(fā)

          計(jì)算機(jī)RS-232串行通信測(cè)試軟件采用VB6.0開(kāi)發(fā),VisualBasic 6.0(簡(jiǎn)稱(chēng)VB6.0)以其簡(jiǎn)單易學(xué),

          VB6.0為可視化編程開(kāi)發(fā)軟件,開(kāi)發(fā)程序簡(jiǎn)單易學(xué),VB程序開(kāi)發(fā)主要分為兩步:第一步、使用VB控件設(shè)計(jì)出軟件界面,第二步、給各種控件編寫(xiě)相應(yīng)的執(zhí)行程序代碼,代碼編寫(xiě)完成后可以運(yùn)行查看結(jié)果了。

          VB6提供了多種控件,其中MSCOMM.OCX是用于串行通信的控件,我們可將該控件添加到工具箱(Toolbox)內(nèi),這樣就可以利用該控件進(jìn)行串行通信程序的設(shè)計(jì)了。

          下面介紹Mscomm控件的主要屬性和方法:
             1) CommPort:設(shè)置或返回串行端口號(hào),VB6的取值范圍為1~16,表示打開(kāi)或返回通信端口號(hào)COM1~COM16
             2) Setting:設(shè)置或返回串行端口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位數(shù)、停止位。如:Mscomm1.Setting=“9600,N,8,1”
             3) PortOpen:打開(kāi)或關(guān)閉串行端口,格式為:Mscomm1.PortOpen=『True/False』
             4) InBufferSize:設(shè)置或返回接收緩沖區(qū)的大小,缺省為1024字節(jié)
             5) InBufferCount:返回接收緩沖區(qū)內(nèi)的等待讀取的字節(jié)個(gè)數(shù),可通過(guò)設(shè)置該屬性為0來(lái)清除接收緩沖區(qū)
             6) RThreshold:該屬性為一閥值,當(dāng)接收緩沖區(qū)內(nèi)字節(jié)個(gè)數(shù)達(dá)到或超過(guò)該值后就產(chǎn)生OnComm事件
             7) InputLen:設(shè)置或返回接收緩沖區(qū)內(nèi)用Input讀入的個(gè)數(shù)。若取0,則Input將讀取整個(gè)緩沖區(qū)的所有內(nèi)容
             8) Input:該屬性表示從接收緩沖區(qū)InputLen個(gè)字符
             9) OutBufferSize:設(shè)置或返回發(fā)送緩沖區(qū)大小,缺省為512字節(jié)
             10) OutBufferCounter:返回發(fā)送緩沖區(qū)內(nèi)等待發(fā)送的字符數(shù),可用來(lái)清空緩沖區(qū)
             11) Output:向發(fā)送緩沖區(qū)傳送一字符串,即向串口發(fā)送數(shù)據(jù)



          第一步:開(kāi)發(fā)程序界面

          打開(kāi)VB6.0 -> 新建“標(biāo)準(zhǔn) EXE”建立一個(gè)新的工程。在工程窗口Form1中添加我們要使用的各種按鈕和控件,其中一個(gè)圖標(biāo)如電話(huà)一樣的控件就是MSCOMM串行通信控件了,該控件在界面設(shè)計(jì)時(shí)候可見(jiàn),在程序運(yùn)行時(shí)候不可見(jiàn)。最后,放置好了各種控件后,程序的界面界面就出來(lái)了,是不是很簡(jiǎn)單呀!如下圖4所示:

          RS-232串口通信測(cè)試軟件界面開(kāi)發(fā)
          點(diǎn)擊瀏覽下一頁(yè)

          圖 4

          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理


          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理




          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          看屁屁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); })();