久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

立即注冊(cè) 登錄
返回首頁(yè)

uid:71870的個(gè)人空間

日志

VB與單片機(jī)通信的建立

已有 5757 次閱讀2015-1-17 10:27 |個(gè)人分類:資料| 計(jì)算機(jī)系統(tǒng), 發(fā)送信息, 監(jiān)控系統(tǒng), 單片機(jī), 通信


多點(diǎn)溫度監(jiān)控系統(tǒng)下位機(jī)將溫度轉(zhuǎn)換并將溫度值存儲(chǔ)到單片機(jī)的RAM里,本章主要討論采用比較廉價(jià)的通信方式—RS232來(lái)實(shí)現(xiàn)多點(diǎn)溫度監(jiān)控系統(tǒng)的上位機(jī)(PC機(jī))向下位機(jī)(單片機(jī))發(fā)送信息以及上位機(jī)接收下位機(jī)的溫度信息并加以處理。

1.1 串行通信及RS232總線

多點(diǎn)溫度監(jiān)控系統(tǒng)下位機(jī)采集到的大量溫度信息,需要傳送至上位機(jī),為接下來(lái)的溫度分析處理提供數(shù)據(jù)。下位機(jī)只有一個(gè)單片機(jī)與PC機(jī)通信且兩者之間的距離不是很長(zhǎng),因此我們采用異步串行通信中應(yīng)用最廣的RS-232標(biāo)準(zhǔn)總線實(shí)現(xiàn)兩者之間的信息傳遞。本節(jié)將主要介紹串行通信的基本概念,數(shù)據(jù)傳送方式,RS-232總線標(biāo)準(zhǔn)等。

1.1.1 串行通信

隨著計(jì)算機(jī)系統(tǒng)的應(yīng)用和微機(jī)網(wǎng)絡(luò)的發(fā)展,計(jì)算機(jī)的通信功能顯得尤為重要。從廣義上講,計(jì)算機(jī)通信可以分為并行通信和串行通信。并行通信速度快、實(shí)時(shí)性好,但占用的口線多、成本高、通信距離短,不適用于小型化產(chǎn)品。串行通信只需一根傳輸線即可完成通信功能,成本低,在通信中得到了廣泛應(yīng)用。計(jì)算機(jī)與外界的數(shù)據(jù)傳送大多數(shù)都是串行的,通常把計(jì)算機(jī)與外界的數(shù)據(jù)傳送稱之為通信,因此提到的通信大多數(shù)都是指串行通信。

1、串行通信的概念

串行通信是計(jì)算機(jī)與外部設(shè)備進(jìn)行信息交換的一種方式,是指數(shù)據(jù)一位一位地按順序在一根信號(hào)線上進(jìn)行傳輸?shù)耐ㄐ欧绞健4型ㄐ庞袃煞N基本工作方式:異步傳送和同步傳送。在單片機(jī)中使用的串行通信都是異步方式,因此本系統(tǒng)采用異步串行通信方式來(lái)實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的通信。

異步串行通信是以字符為單位組成的禎傳送的,即一禎一禎地傳送。禎由發(fā)送端一禎一禎地發(fā)送,通過(guò)傳輸線被接收一禎一禎地接收。發(fā)送端何時(shí)開(kāi)始發(fā)送以及何時(shí)結(jié)束發(fā)送是由禎格式規(guī)定的。通信線上沒(méi)有數(shù)據(jù)傳送時(shí)為邏輯高電平,每當(dāng)接收端檢測(cè)到傳輸線上發(fā)送來(lái)的邏輯低電平(禎起始位)時(shí)就知道發(fā)送端已開(kāi)始發(fā)送,每當(dāng)接收端接收到禎的停止位時(shí)就知道一禎字符信息已發(fā)送完畢。

禎是一個(gè)字符的完整通信格式,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位等四部分組成。字符傳送的禎格式如圖3.1所示:

3.1 異步通信的禎格式

禎中各部分結(jié)構(gòu)和功能如下:

1)起始位:位于字符禎開(kāi)頭,始終為邏輯“0低電平。用于向接收設(shè)備表示發(fā)送端開(kāi)始發(fā)送一禎信息。

2)數(shù)據(jù)位:緊跟起始位之后,數(shù)據(jù)位的個(gè)數(shù)可以是56789位。PC機(jī)中經(jīng)常采用7位或8位數(shù)據(jù)傳送,8051串行口采用8位或9位數(shù)據(jù)傳送。傳送時(shí),數(shù)據(jù)位從最低有效位開(kāi)始發(fā)送,依次在接收設(shè)備中被轉(zhuǎn)換為并行數(shù)據(jù)。

3)奇偶校驗(yàn)位:位于數(shù)據(jù)位后,用于對(duì)字符傳送作正確性檢查,因此奇偶校驗(yàn)位是可選擇的,共有3種可能,即奇校驗(yàn)、偶校驗(yàn)和無(wú)校驗(yàn),由用戶根據(jù)需要選定。

4)停止位:位于字符禎末尾,為邏輯“1高電平,用于標(biāo)志一個(gè)字符傳送的結(jié)束。可取11.52位。

2、串行通信的數(shù)據(jù)傳送方式

在串行通信中,數(shù)據(jù)通常是在發(fā)送端和接收端之間進(jìn)行傳送,根據(jù)數(shù)據(jù)傳送的方向,可分成三種基本的傳送形式:?jiǎn)喂ぁ⑷p工和半雙工。

單工形式的數(shù)據(jù)傳送是單向的,只需要一根數(shù)據(jù)線,通信線的一端固定為發(fā)送端,另一端固定為接收端。半雙工形式的數(shù)據(jù)傳送是雙向的,但任何時(shí)刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。雖然半雙工形式比單工形式靈活,但它的效率依然較低,從發(fā)送方式轉(zhuǎn)換到接收方式所需要的時(shí)間大約為數(shù)個(gè)毫秒,這個(gè)時(shí)間延遲在時(shí)間較為敏感的系統(tǒng)是無(wú)法忍受的。全雙工形式下,采用了信道劃分技術(shù),避免了半雙工形式的缺點(diǎn),數(shù)據(jù)傳送是雙向的,且可以同時(shí)發(fā)送和接收數(shù)據(jù)。本系統(tǒng)采用了效率較高的全雙工通信形式。

3、串行通信的傳送速率

在串行通信中,用“波特率”來(lái)描述數(shù)據(jù)的傳輸速率。所謂波特率,即每秒鐘傳送的二進(jìn)制位數(shù),其單位為bps。它是衡量串行數(shù)據(jù)傳輸快慢的重要指標(biāo)。接收方的波特率和發(fā)送方的波特率可以分別設(shè)置,但接收方的波特率必須與發(fā)送方的波特率相同。

1.1.2 RS-232總線標(biāo)準(zhǔn)

在串行通信時(shí),要求雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來(lái)進(jìn)行通信。RS-232C是美國(guó)電子工業(yè)協(xié)會(huì)   EIA公布的串行通信標(biāo)準(zhǔn),RSRecommended Standard的字頭縮寫(xiě),代表推薦,232是標(biāo)識(shí)號(hào),C表示修改的次數(shù)。RS-232C適用于短距離或帶調(diào)制解調(diào)器的通信場(chǎng)合,目前已廣泛應(yīng)用于計(jì)算機(jī)與外圍設(shè)備的串行異步通信接口中。

1、機(jī)械特性

RS-232C的機(jī)械特性主要指兩個(gè)通信裝置如何實(shí)現(xiàn)機(jī)械對(duì)接。RS-232C是數(shù)據(jù)終端設(shè)備DTE與數(shù)據(jù)通訊設(shè)備DCE之間的接口,RS-232C的機(jī)械標(biāo)準(zhǔn)規(guī)定DTE應(yīng)配置DB25插頭,即25針連接器,DEC應(yīng)配置DB25的插座,即25孔連接器。

3.1 計(jì)算機(jī)DB-9連接器引腳信號(hào)功能

引腳號(hào)

信號(hào)名稱

方向

信號(hào)功能

1

DCD

PC機(jī)對(duì)方

PC機(jī)收到遠(yuǎn)程信號(hào)(載波檢測(cè))

2

RXD

PC機(jī)對(duì)方

PC機(jī)接收數(shù)據(jù)

3

TXD

PC機(jī)對(duì)方

PC機(jī)發(fā)送數(shù)據(jù)

4

DTR

PC機(jī)對(duì)方

PC機(jī)準(zhǔn)備就緒

5

GND

——

信號(hào)地

6

DSR

PC機(jī)對(duì)方

對(duì)方準(zhǔn)備就緒

7

RTS

PC機(jī)對(duì)方

PC機(jī)請(qǐng)求發(fā)送數(shù)據(jù)

8

CTS

PC機(jī)對(duì)方

對(duì)方已切換到接收狀態(tài)(清除發(fā)送)

9

RI

PC機(jī)對(duì)方

通知PC機(jī),線路正常(振鈴指示)

 

實(shí)際應(yīng)用中,DB-25型連接器中的許多信號(hào)用不上,對(duì)于一般的雙工通信,僅需幾條信號(hào)線就可實(shí)現(xiàn),包括一條發(fā)送線、一條接收線和一條地線。因此普遍采用DB9插頭,即9針連接器。表3.1給出了DB9連接器的信號(hào)引腳功能。

本系統(tǒng)采用DB9型連接器,通過(guò)三根線實(shí)現(xiàn)系統(tǒng)連接,即接收數(shù)據(jù)引腳與發(fā)送數(shù)據(jù)引腳彼此交叉相連,信號(hào)地對(duì)應(yīng)相接。這是最常用的全雙工最簡(jiǎn)單系統(tǒng)連接法。

2、電氣特性

RS-232標(biāo)準(zhǔn)的電氣特性如表3.2所示。

3.2 RS-232標(biāo)準(zhǔn)的電氣特性

不帶負(fù)載時(shí)驅(qū)動(dòng)器輸出電平

-25V~25V

負(fù)載電阻范圍

3~7k

驅(qū)動(dòng)器輸出電阻

<300

負(fù)載電容(包括線間電容)

<2500pF

邏輯0時(shí)驅(qū)動(dòng)器輸出電平

5~15V

邏輯0時(shí)負(fù)載端接收電平

>+3V

邏輯1時(shí)驅(qū)動(dòng)器輸出電平

-15~-5V

邏輯1時(shí)負(fù)載端接收電平

<-3V

輸出短路電流

<500mA

驅(qū)動(dòng)器轉(zhuǎn)換速率

<30

 

由表4.2可以看出RS-232C電平采用負(fù)邏輯,邏輯“0”:+5~+15V,邏輯“1”:-5~-15V。在計(jì)算機(jī)和智能儀器內(nèi),通用的信號(hào)是正邏輯的TTL電平。而RS-232C電平是負(fù)邏輯的,與TTL電平不兼容,必須進(jìn)行電平轉(zhuǎn)換。電平轉(zhuǎn)換通常可以使用MC1488MC1489MAX232等芯片來(lái)實(shí)現(xiàn)。本系統(tǒng)是采用MAX232芯片實(shí)現(xiàn)電平轉(zhuǎn)換的。

RS-232標(biāo)準(zhǔn)規(guī)定的波特率為:507510015030060012004800960019200bps。本系統(tǒng)波特率采用9600bps

1.2 Visual Basic6.0中的串行通信控件MSComm

Visual Basic是一種可視化的編程語(yǔ)言,利用可視化技術(shù)進(jìn)行編程,可使應(yīng)用程序的開(kāi)發(fā)簡(jiǎn)單、快捷,可編寫(xiě)出界面友好、功能強(qiáng)大的應(yīng)用程序。MSComm控件全稱為Microsoft Communications Control,是Microsoft公司提供的ActiveX控件,目的是為了簡(jiǎn)化Windows下串行通信編程,它既可以用來(lái)提供簡(jiǎn)單的串口端口通信功能,也可以用來(lái)創(chuàng)建功能完備的、事件驅(qū)動(dòng)的高級(jí)通信工具。

MSComm控件在串口編程時(shí)非常方便,程序員不必花時(shí)間去了解較為復(fù)雜的API函數(shù),而且在Visual BasicVisual C++Delphi等語(yǔ)言中均可以使用。使用它可以建立與串行端口的連接,通過(guò)串行端口連接到其它通信設(shè)備(如調(diào)制解調(diào)器),發(fā)出命令,交換數(shù)據(jù),以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯(cuò)誤。

1.2.1 MSComm控件處理通信的方式

MSComm控件通過(guò)串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能。

它提供下列兩種處理通信的方式。

1、事件驅(qū)動(dòng)方式

事件驅(qū)動(dòng)通信是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)程序得到通知,例如,在串口接收緩沖區(qū)中有一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí),程序都可以利用MSComm控件的OnComm事件捕獲并處理這些通信事件,OnComm事件還可以檢查和處理通信錯(cuò)誤。在程序設(shè)計(jì)中,可以在OnComm事件處理函數(shù)中加入自己的處理代碼,一旦事件發(fā)生即可自動(dòng)執(zhí)行該段程序。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。

2、查詢方式

在程序的每個(gè)關(guān)鍵功能完成之后,可以通過(guò)檢查CommEvent屬性的值來(lái)查詢事件和錯(cuò)誤。適用于自保持的應(yīng)用程序較小的編程。查詢方式的編程可用計(jì)時(shí)器或DoLoop程序?qū)崿F(xiàn)。其實(shí),查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。

1.2.2 MSComm控件的常用屬性

對(duì)控件編程首先需要了解它的屬性和事件。下面介紹MSComm控件的一些主要屬性,如表3.3所示。

 

 

 

 

3.3 MSComm控件的主要屬性

屬性

描述

Commport

設(shè)置并返回通信串口號(hào)

Settings

以字符串的形式設(shè)置并返回串口波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。格式為:MSComm1.Settings=BBBB,P,D,S

Portopen

設(shè)置并返回串口狀態(tài),也可以打開(kāi)和關(guān)閉串口

Input

從接收緩沖區(qū)中讀取數(shù)據(jù)并清空緩沖區(qū)

Inputlen

設(shè)置并返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù)

InBufferSize

設(shè)置并返回接收緩沖區(qū)的大小,缺省值為1024字節(jié)

InBufferCount

設(shè)置并返回接收緩沖區(qū)中等待接收的字符數(shù)

InputMode

設(shè)置并返回接收數(shù)據(jù)的類型。其值為01時(shí),分別表示通過(guò)Input屬性以文本方式和二進(jìn)制方式取回?cái)?shù)據(jù)

OutBufferSize

設(shè)置并返回發(fā)送緩沖區(qū)的大小,缺省值為512字節(jié)

OutBufferCount

設(shè)置并返回發(fā)送緩沖區(qū)中等待計(jì)算機(jī)發(fā)送的字符數(shù)

Output

向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設(shè)計(jì)時(shí)無(wú)效,運(yùn)行時(shí)只讀

Rthreshold

MSComm控件設(shè)置ConunEvent屬性為comEvReceive并產(chǎn)生OnComm之前,設(shè)置并返回要接收的字符數(shù)

 

其中CommEvent屬性是一個(gè)非常重要的屬性。一旦串口發(fā)生通信事件或產(chǎn)生錯(cuò)誤,依據(jù)產(chǎn)生的事件和錯(cuò)誤,MSComm控件為CommEvent屬性賦以不同的代碼,同時(shí)產(chǎn)生OnComm事件。用戶程序就可在OnComm事件處理程序中針對(duì)不同的代碼,進(jìn)行相應(yīng)的處理。CommEvent屬性的事件代碼、常數(shù)以及含義參見(jiàn)表3.4和表3.5

3.4 CommEvent通信事件代碼、常數(shù)及含義表

事件代碼

常值

含義

1

ComEvRecive

接收到Rthreshold個(gè)字符。該事件將連續(xù)產(chǎn)生,直到用Input屬性從接收緩沖區(qū)中讀取并刪除字符

2

ComEvSend

發(fā)送緩沖區(qū)中數(shù)據(jù)少于Sthreshold個(gè),說(shuō)明串口已經(jīng)發(fā)送了一些數(shù)據(jù),程序可以用Output屬性繼續(xù)發(fā)送數(shù)據(jù)

3

ComEvCTS

Clear To Send信號(hào)線的狀態(tài)發(fā)生變化

4

ComEvDSR

Data Set Ready信號(hào)線從1變到0

5

ComEvCD

Carrier Detect信號(hào)線的狀態(tài)發(fā)生變化

6

ComEvRing

檢測(cè)到振鈴信號(hào)

7

ComEvEOF

接收到文件結(jié)束符

 

3.5 ComEventnt通信錯(cuò)誤代碼、常數(shù)及含義表

事件代碼

常數(shù)

含義

1001

ComEvntBreak

接收到一個(gè)中斷信號(hào)

1002

ComEvntCTSTO

Clear To Send信號(hào)超時(shí)

1003

ComEvntDSRTO

Data Set Ready信號(hào)超時(shí)

1004

ComEvntFrame

禎錯(cuò)誤

1006

ComEvntOverrun

串口超速

1007

ComEvntCDTO

載波檢測(cè)超時(shí)

1008

ComEvntRxOver

接收緩沖區(qū)溢出,緩沖區(qū)中已沒(méi)有空間

1009

ComEvntRxParity

奇偶校驗(yàn)錯(cuò)

1010

ComEvntTxFull

發(fā)送緩沖區(qū)溢出,緩沖區(qū)中已沒(méi)有空間

1011

ComEvntDCB

檢測(cè)串口的設(shè)備控制塊時(shí)發(fā)生錯(cuò)誤

 

1.2.3 MSComm控件的使用

MSComm控件通信的流程圖如圖3.2所示。編寫(xiě)程序時(shí),只需要按照下面流程圖,即可實(shí)現(xiàn)通信功能。

3.2 MSComm控件通信的流程圖

1.3 PC機(jī)與AT89S51單片機(jī)的通信

PC機(jī)與單片機(jī)之間的串行通信主要實(shí)現(xiàn)下位機(jī)的溫度數(shù)據(jù)的采集和傳輸。下位機(jī)程序用匯編語(yǔ)言編寫(xiě),固化在AT89SC51單片機(jī)中。單片機(jī)是測(cè)量系統(tǒng)的數(shù)據(jù)采集端,它主要完成對(duì)多個(gè)測(cè)溫傳感器DS18B20的控制和溫度數(shù)據(jù)的讀取以及同上位機(jī)的數(shù)據(jù)通信。上位機(jī)軟件用VB編寫(xiě),主要完成通信參數(shù)設(shè)置和溫度數(shù)據(jù)的轉(zhuǎn)換。

通信參數(shù)設(shè)置主要用來(lái)完成對(duì)系統(tǒng)通信參數(shù)的設(shè)置,包括設(shè)定通信端口、波特率、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。溫度數(shù)據(jù)的轉(zhuǎn)換主要實(shí)現(xiàn)對(duì)接受到的溫度數(shù)據(jù)由十六進(jìn)制到十進(jìn)制的轉(zhuǎn)換,同時(shí)這一步也為后面的數(shù)據(jù)庫(kù)的生成及溫度信息管理工作做好了準(zhǔn)備。

1.3.1 硬件連接線路

PC機(jī)與單片機(jī)之間的通信通過(guò)串口實(shí)現(xiàn)。由于RS232電平與TTL電平不兼容,本系統(tǒng)通過(guò)MAX232芯片實(shí)現(xiàn)TTL電平到RS232電平的轉(zhuǎn)換,MAX232芯片是包含兩路接收器和驅(qū)動(dòng)器的RS232電平轉(zhuǎn)換芯片,適用于各種232通信接口。如圖3.3所示。

3.3 PC與硬件單片機(jī)的連接電路圖

1.3.2 通信協(xié)議

為使數(shù)據(jù)在PC和單片機(jī)之間無(wú)差錯(cuò)的傳送,本文采用通信協(xié)議來(lái)規(guī)約數(shù)據(jù)的傳輸。PC機(jī)與單片機(jī)雙方的通信協(xié)議如下:

波特率:9600bps

數(shù)據(jù)格式:8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn);

傳送方式:PC機(jī)和單片機(jī)都采用查詢方式收發(fā)數(shù)據(jù),傳送的數(shù)據(jù)格式為二進(jìn)制格式。DS18B20轉(zhuǎn)換出的溫度信息包含兩個(gè)字節(jié),經(jīng)過(guò)處理后,一個(gè)字節(jié)為溫度的整數(shù)部分,另一個(gè)字節(jié)為溫度的小數(shù)部分。每個(gè)DS18B20共傳送三個(gè)字節(jié),第一個(gè)字節(jié)為傳感器所在的行列號(hào),第二個(gè)字節(jié)是溫度的整數(shù)部分,第三個(gè)字節(jié)是溫度的小數(shù)部分。單片機(jī)收到PC機(jī)發(fā)送的握手信號(hào)“S”后,就依次命令DS18B20進(jìn)行溫度轉(zhuǎn)換;PC機(jī)依次接收單片機(jī)上傳過(guò)來(lái)的數(shù)據(jù),并顯示在特定區(qū)域。

1.3.3 VB程序編制

本系統(tǒng)串行通信的界面如圖3.4所示:

3.4 串行通信的界面

因?yàn)橄到y(tǒng)采用的是事件驅(qū)動(dòng),所以具體程序的編制必須圍繞相應(yīng)的事件進(jìn)行。本系統(tǒng)中,有關(guān)通信的工作過(guò)程主要有:通信參數(shù)初始化、發(fā)送握手信號(hào)、接收數(shù)據(jù)。具體初始化程序如下:

Private Sub Form_Load()

MSComm1.CommPort = 1                '設(shè)置通訊窗口

MSComm1.Settings = "9600,N,8,1"     '設(shè)置數(shù)據(jù)傳輸率和發(fā)送字符格式

MSComm1.InputMode = comInputModeText

MSComm1.InBufferSize = 1024         '設(shè)置接收緩沖區(qū)1024Byte

MSComm1.InputLen = 0                '設(shè)置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù),0表示一次讀取所有數(shù)據(jù)

MSComm1.RThreshold = 21

If MSComm1.PortOpen = False Then     '打開(kāi)串口

   MSComm1.PortOpen = True

End If

End Sub

初始化完成后,PC機(jī)就可以與單片機(jī)進(jìn)行通信了。點(diǎn)擊“開(kāi)始接收”按鈕即可完成向單片機(jī)發(fā)送握手信號(hào)功能。

發(fā)送程序?yàn)椋?/font>

Dim rece As String

rece = MSComm1.Input

If Mid(rece, 1, 1) = "S" Then

Text1.Text = Text1.Text & rece

Else

Text1.Text = Text1.Text

End If

單片機(jī)接收到PC機(jī)發(fā)送的握手信號(hào)S后,就依次命令總線上的DS18B20進(jìn)行溫度轉(zhuǎn)換并向PC機(jī)發(fā)送轉(zhuǎn)換后的溫度信息。我們?cè)?/span>OnComm事件里進(jìn)行溫度數(shù)據(jù)的接收和轉(zhuǎn)換。在轉(zhuǎn)換后的溫度之間加上一個(gè)空格,且在單個(gè)DS18B20溫度信息末尾加上回車和換行符,目的是為PC機(jī)接收到的溫度信息保存的文本文件轉(zhuǎn)換成數(shù)據(jù)庫(kù)作好準(zhǔn)備。如果系統(tǒng)初始化不正常或DS18B20端脫開(kāi)未接好時(shí),轉(zhuǎn)換出的溫度為默認(rèn)初始值+85,溫度高低字節(jié)為05H50H。系統(tǒng)檢測(cè)到DS18B20轉(zhuǎn)換的溫度值為上面兩種情況時(shí),我們?cè)诮邮諈^(qū)顯示該測(cè)點(diǎn)出現(xiàn)“測(cè)量有誤”字樣,提醒我們對(duì)系統(tǒng)進(jìn)行硬件線路檢查。OnComm事件程序如下:

Private Sub MSComm1_OnComm()

Dim buffer As Variant

Dim arr() As Byte

Dim i As Integer, a As Integer

Dim restr1 As String, restr2 As String, srestr3 As String, ABC As String

a = MSComm1.InBufferCount

Select Case MSComm1.CommEvent

Case comEvReceive

buffer = MSComm1.Input

arr = buffer

For i = 0 To 18 Step 3

restr1 = arr(i)

restr2 = arr(i + 1)

restr3 = arr(i + 2)

If restr2 = 127 And restr3 = 240 Then

Text1.Text = Text1.Text = Str(Now) + " " + restr1 + " " + "測(cè)量有誤" + " " + Chr(13) + Chr(10)

Else

If Val(restr3) = 0 Then

ABC = "." + Mid$(Str(Val(restr3) / 256), 2, 3)

Else

ABC = Mid$(Str(Val(restr3) / 256), 2, 3)

End If

Text1.Text = Text1.Text + Str(Now) + "    " + restr1 + "    " + restr2 + ABC + "   " + Chr(13) + Chr(10)

End If

Next i

End Select

End Sub

 

評(píng)論 (0 個(gè)評(píng)論)

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

返回頂部
主站蜘蛛池模板: 99在线免费观看 | 久久毛片 | 久草成人网| 超碰成人免费观看 | 精品久久久一区二区 | 91国内精品久久 | 中文字幕高清免费日韩视频在线 | 久久久国产精品视频 | 欧美日本在线观看 | 91精品国产综合久久久久久蜜臀 | 天堂av中文 | 亚洲成av人片在线观看无码 | 精品国产亚洲一区二区三区大结局 | 97人人超碰 | 狠狠骚| 成人免费福利 | 蜜桃视频在线观看免费视频网站www | 国产区在线看 | 免费一区二区三区在线视频 | 国产精品一区二区无线 | 先锋av资源在线 | 欧美日韩一区在线 | 91社区在线观看 | 久久33| 91精品国产色综合久久不卡98口 | 国产精品五区 | 精品国产乱码久久久久久丨区2区 | 羞羞的视频免费观看 | 911精品国产 | 国产精品欧美一区二区三区 | 国产成人99久久亚洲综合精品 | 亚洲精品一区在线 | 91久久综合亚洲鲁鲁五月天 | 国产一区二区三区亚洲 | 99在线精品视频 | 欧美在线视频一区二区 | 青青草av网站 | 亚洲免费一 | 精品免费视频 | 国产成人99久久亚洲综合精品 | 99国内精品久久久久久久 |