當前位置:首頁 > 電源 > 數字電源
[導讀]引言隨著計算機技術尤其是單片微型機技術的發(fā)展,人們已越來越多地采用單片機來對一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數進行檢測和控制。PC機具有強大的監(jiān)控和管理功能,而單片機則具有快速及靈活的控制特點,

引言

隨著計算機技術尤其是單片微型機技術的發(fā)展,人們已越來越多地采用單片機來對一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數進行檢測和控制。PC機具有強大的監(jiān)控和管理功能,而單片機則具有快速及靈活的控制特點,通過PC機的RS-232串行接口與外部設備進行通信,是許多測控系統(tǒng)中常用的一種通信解決方案。因此如何實現PC機與單片機之間的通訊具有非常重要的現實意義。本文將論述在VB環(huán)境下PC機與單片機之間實現串行通訊的軟硬件方案。PC機的通訊程序使用Visual Basic編寫,VB是Microsoft公司推出的Windows應用程序開發(fā)工具,因其具有界面友好,編程簡便等優(yōu)點而受到廣泛的使用,而且 Visual Basic 6.0 版本帶有專門實現串行通訊的MSCOMM控件。

1、硬件原理

目前的PC機都有至少一個串行通訊端口RS-232,RS-232端口可用于兩臺計算機之間進行通訊,RS-232的邏輯電平用正負電壓表示,且信號使用負邏輯,邏輯0的電壓范圍是+5V~+15V,而邏輯1的電壓范圍是-5V~ -15V,RS-232端口是計算機與其他設備溝通的最常用的接口,不但實作簡單,而且價格便宜。在8051單片機的內部有一個全雙工的異步串行I/O 口,它的輸入和輸出使用5V邏輯而不是RS-232電壓,如何進行兩種信號的轉換,是連接時需要解決的問題,事實上,解決的方法很簡單,只需使用一個諸如 MAX232這樣的專用芯片即可。

電路結構見下圖。

MAX232包含兩個將TTL輸入轉換成RS-232輸出的驅動器,還包含兩個將RS-232輸入翻譯成CMOS輸出的接收器,這些驅動器和接收器具有反向的功能。4個外置的電容大小為1uF,如果使用極化電容,注意極性,引腳6的電壓為負,因此它的電容的正極連接到地,電容等級至少為15V。

2、軟件設計

本次通訊中,我們以一個測控系統(tǒng)的上位機和下位機之間的通信為背景,給出單片機部分和VB環(huán)境下的通信程序實例,系統(tǒng)中單片機負責數據采集、處理和控制,上位機進行現場可視化檢測,通信協(xié)議采用半雙工異步串行通信方式,通過RS232的RTS信號進行收發(fā)轉換,傳輸數據采用二進制數據,上位機與下位機之間采用主從式通訊。

(1)單片機的串行通訊程序

8051單片機從外部采集到的一組數據(30個),存在片內RAM20H~3DH區(qū)域,要求將這個數據塊傳送給PC機,為了保證傳送的正確,傳送前由單片機先向PC機發(fā)送數據# 55H(聯絡信號),PC機接收到后,向單片機回送數據# 0AAH(回應信號),經檢驗正確后,單片機才開始向PC機傳送數據。

[!--empirenews.page--]

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

[!--empirenews.page--]


Private  sub  form_l oad()
Comm1.portopen=true
Timer.interval=1000      '定時器時間間隔為1000s
Timer.enabled=true
Mscomm1.compore=1     '選擇通訊口1
Mscomm1.settings=“110,n,8,1”    '波特率110,無奇偶校驗,8個數據位,一個停止位
Mscomm1. inputmode=1          '通過input屬性以二進制形式取回數據
Mscomm1.inputlen=0            '讀取接收緩沖區(qū)全部內容
Mscomm1.rthreshold=1          '每收到一個字符位引發(fā)oncomm事件
Graph1.scale(0,10)-(20,0)         '定制坐標
Grahp1.forecoclr=rgb(0,0,255)
End sub
Private Sub Command1_Click()
Dim a!(30), b!(30)
num = MSComm1.InBufferCount     '取輸入緩沖區(qū)字節(jié)個數
instring = MSComm1.Input          '把輸入緩沖區(qū)數據送給數組
For i = 0 To num - 1
a(i) = i
b(i) = instring(i)
GRAPH1.Cls
If i = 1 Then
GRAPH1.PSet (a(i), b(i))
Else
GRAPH1.Line -(a(i), b(i))          '將數組數據給繪圖函數
End If
Next i
End Sub

3、結束語

利用VB6.0的事件驅動方式可以很方便地開發(fā)數據采集與監(jiān)控系統(tǒng),用單臺PC機可以測量和監(jiān)控多路控制信號,整控制系統(tǒng)設計方便,對小型測控系統(tǒng)的設計具有很大的實用性。

參考文獻:
1、 何立民,單片機應用系統(tǒng)設計.北京:航空航天大學出版社,1992
2、 美Jan Axelson 著,串行端口大全,精英科技譯,2001.5
 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉