乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      基于VB的PC-單片機(jī)通信波特率自動(dòng)檢測(cè)方法

       quasiceo 2015-07-30

      基于VB的PC-單片機(jī)通信波特率自動(dòng)檢測(cè)方法

      2012-03-10 18:33:05   來(lái)源:微計(jì)算機(jī)信息   

      關(guān)鍵字: PC機(jī)  單片機(jī)  波特率  自動(dòng)檢測(cè)

      一. 引言

          主從分布式微機(jī)系統(tǒng)是控制領(lǐng)域廣泛使用的微機(jī)系統(tǒng)。主機(jī)一般由數(shù)據(jù)處理能力強(qiáng)、有良好人機(jī)界面的PC機(jī)擔(dān)任,分機(jī)常以體積小、價(jià)格便宜、控制能力強(qiáng)的單片機(jī)為核心。
          信息量不大的PC機(jī)—單片機(jī)通信一般采用串行通信方式。在分布式多波特率通信系統(tǒng)中,常常要求從機(jī)自身的波特率能隨主機(jī)設(shè)備自動(dòng)調(diào)整以使系統(tǒng)適應(yīng)性更強(qiáng)、更具智能化。
          本文介紹:主機(jī)為PC機(jī)用VB6.0編程,從機(jī)為80C51單片機(jī)時(shí),利用微軟的Mscomm控件和單片機(jī)的定時(shí)/記數(shù)器實(shí)現(xiàn)單片機(jī)波特率準(zhǔn)確自動(dòng)檢測(cè)的方法。
          該方法硬件和軟件實(shí)現(xiàn)容易、簡(jiǎn)單、實(shí)用。

      二.MSComm控件簡(jiǎn)介

          微軟MSComm控件提供了一系列標(biāo)準(zhǔn)通信屬性和方法,具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。該控件具有兩種處理方式:(1)事件驅(qū)動(dòng)方式:由 MSComm控件的OnComm事件捕獲并處理通信錯(cuò)誤及事件;(2)查詢方式:通過(guò)檢查CommEvent屬性的值來(lái)判斷事件和錯(cuò)誤。
          當(dāng)設(shè)置MSComm控件的Settings屬性值為“9600,n,8,1”時(shí)表明:PC機(jī)串口波特率為9600b/s, 幀格式為:無(wú)校驗(yàn),一個(gè)起始位,8個(gè)數(shù)據(jù)位,一個(gè)停止位。一幀數(shù)據(jù)共10位。幀結(jié)構(gòu)如下:

      \

          當(dāng)設(shè)置MSComm控件的Settings屬性值為“9600,e,8,1”時(shí)表明:PC串口波特率為9600b/s, 幀格式為:一個(gè)起始位,8個(gè)數(shù)據(jù)位,一個(gè)偶校驗(yàn)位,一個(gè)停止。一幀數(shù)據(jù)共11位。幀結(jié)構(gòu)如下:
       \

          其中D0~D7是8位數(shù)據(jù)位,D8是偶校驗(yàn)位。

      三.硬件原理框圖

                \
      四.軟件算法思想

         通信開(kāi)始時(shí),主機(jī)用一幀十位的格式發(fā)一個(gè)ASCII碼為0的測(cè)試字符,則對(duì)應(yīng)的幀結(jié)構(gòu)如下:
         \

          單片機(jī)循環(huán)檢測(cè)RXD腳,無(wú)數(shù)據(jù)時(shí)該腳為高電平,當(dāng)檢測(cè)到測(cè)試數(shù)據(jù)起始位時(shí)(低電平)啟動(dòng)計(jì)數(shù)器T0,當(dāng)檢測(cè)到停止位時(shí)(高電平)停止記數(shù),T0所記數(shù)(TH0TL0)為單片機(jī)接收一幀數(shù)據(jù)9位所需的機(jī)器數(shù)時(shí)間。則,單片機(jī)波特率為:
      波特率=9/(TH0TL0 x 機(jī)器周期)
            =9/(TH0TL0 x 12 x 振蕩周期)
            =(9 x 振蕩頻率)/(TH0TL0 x 12)

      五. 主機(jī)發(fā)送ASCII碼值為0的字符的源程序
          
      Private Sub Form_Load()
        MSComm1.CommPort = 1                ;使用COM1串口
        MSComm1.Settings = "9600,n,8,1"         ;設(shè)置通信格式,見(jiàn)本文一
      End Sub

      Private Sub Send_Click()
        If MSComm1.PortOpen = False Then MSComm1.PortOpen = True ;打開(kāi)串口COM1
      MSComm1.OutBufferCount = 0           ;清0發(fā)送緩沖區(qū)發(fā)送字符數(shù)
        A =Chr(0)                             ;ASCII碼為0的字符送A
        MSComm1.Output = A                  ;發(fā)送
      End Sub

          說(shuō)明:若程序中MSComm1.Settings = "9600,e,8,1",則發(fā)送的是一幀11位偶校驗(yàn)數(shù)據(jù),其中D0~D8均為0。對(duì)應(yīng)單片機(jī)檢測(cè)程序(見(jiàn)下文五)TH0TL0結(jié)果值為一幀10位的對(duì)應(yīng)機(jī)器數(shù)值。

      六.單片機(jī)接收測(cè)試數(shù)據(jù),計(jì)算接收一幀9位數(shù)據(jù)所需機(jī)器數(shù)時(shí)間,源程序如下:

      ORG 8000H
      MOV  TMOD,#01H  ;T0工作于方式1,GATE=0
      MOV  TH0,#00H    ;清0  TH0TL0
      MOV  TL0,#00H
      RLL1: JB P3.0,RLL1        ;等待RXD腳變低
      SETB TR0          ;啟動(dòng)T0
      RLL2: JNB P3.0,RLL2       ;等待RXD腳變高
      CLR TR0            ;停止T0記數(shù)
      MOV A,TL0         ;存放一幀9位記數(shù)機(jī)器數(shù)值
      MOV A,TH0
         ?。?/p>

      參考書(shū):

      石東海 扈嘯 周旭升《單片機(jī)數(shù)據(jù)通信技術(shù)從入門(mén)到精通》西安電子科技大學(xué)出版社 2002
      復(fù)旦大學(xué)微機(jī)開(kāi)發(fā)應(yīng)用研究室《MCS—51微型計(jì)算機(jī)用戶手冊(cè)》1986

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多