日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]串行通信已經(jīng)成為計算機與其他設備進行數(shù)據(jù)交換最廣泛的通信手段。主要介紹了利用MSP430 單片機的串口通信模塊和VB6.0 提供的串行通信控件MSComm 實現(xiàn)PC 機與MSP430 單片機的串行通信,并著重闡述了在VB6.0 環(huán)境下實現(xiàn)的主要過程。

1 引言

隨著計算機技術的不斷發(fā)展,計算機應用在其發(fā)展過程中逐步形成兩大分支,一是通用計算機,PC 機為代表,著眼于高速數(shù)值運算和數(shù)據(jù)處理,但實時測控能力較弱。二是嵌入式微機,以單片機為代表,著重發(fā)展測控技術,但其數(shù)值運算和數(shù)據(jù)處理能力較弱。目前,在工業(yè)控制以及數(shù)據(jù)采集和數(shù)據(jù)處理的大型系統(tǒng)中,由于PC 機軟件資源豐富,人機交互方便等優(yōu)點。以PC 機作為上位機,以單片機組成的控制單元作為下位機,較好地實現(xiàn)測控及顯示,又能較快地實現(xiàn)數(shù)據(jù)采集和處理。逐漸成為現(xiàn)代工業(yè)控制領域的一個優(yōu)化方案。

故提出了基于VB6.0 的PC 機與MSP430 單片機串行通信的實現(xiàn)方法。以RS485 接口為基礎,以PC 機為上位機,以MSP430 系列單片機為下位機。通過VB6.0 實現(xiàn)了對各個下位機控制參數(shù)的實時監(jiān)控和管理,解決了長期以來單片機與PC機互連中編程難度大,運行效率低的瓶頸。

2 MSComm 控件與MSP430 單片機

2.1 MSComm 控件

計算機編程語言中,Visual Basic 6.0 是Microsoft 公司推出的面向對象的可視化開發(fā)編程工具,具有豐富的數(shù)據(jù)類型和結構化程序結構,開發(fā)效率高,界面制作美觀方便等優(yōu)點,且應用日益廣泛,故Visual Basic 6.0 語言做到了真正的面向對象編程。其中,MSComm 控件全稱為Microsoft CommunicationControl, 是微軟公司提供的ActiveX 控件, 目的是為了簡化Windows 下串行通信編程。通過對此控件的屬性和事件進行編程, 從而實現(xiàn)數(shù)據(jù)的發(fā)送和接收。

MSComm 控件通過串行端口傳輸和接收數(shù)據(jù), 為應用程序提供串行通信功能。MSComm 控件提供下列兩種處理通信的方式: 事件驅動方式和查詢方式。

(1) 事件驅動方式

事件驅動通信是處理串行端口交互作用的一種非常有效的方法。在許多情況下, 在事件發(fā)生時需要得到通知, 例如, 在串口接收緩沖區(qū)中有字符, Carrier Detect 或Request To Send 線上的一個字符到達或一個變化發(fā)生時。在這種情況下可以利用MSComm 控件的OnComm 事件捕獲并處理這些通信事件。

OnComm 事件還可以檢查和處理通信錯誤, 以及所有通信事件和通信錯誤的列表。

(2) 查詢方式

查詢方式實質(zhì)上還是事件驅動, 但在有些情況下, 這種方式顯得更為便捷。在程序的每個關鍵功能之后, 可以通過檢查CommEvent 屬性的值來查詢事件和錯誤。如果應用程序較小,并且是自保持的, 這種方法可能是更可取的。通過比較故采用的是事件驅動方式。

2.2 MSComm 控件屬性

CommPort 屬性:用于設置或返回串口號連接的串行端口號,Windows 將會利用該串口和外界通信。默認值為1,即對COM1 進行操作,最大值為16.

Settings 屬性:以字符串的形式設置或返回串口通信參數(shù)。包括串口通信的比特率,奇偶校驗,數(shù)據(jù)位長度、停止位等。其默認值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校驗,8 位數(shù)據(jù)位,1 個停止位。

PortOpen 屬性:設置或返回串口狀態(tài)。值為True 時打開串口,值為False 時關閉串口。

InPut 屬性:從接收緩沖區(qū)中讀取數(shù)據(jù)并清空該緩沖區(qū),該屬性設計時無效,運行時只讀。寄存器的特性是先進先出。

OutPut 屬性:向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設計時無效,運行時只讀。

InBufferSize 屬性:設置或返回接收緩沖區(qū)的大小,缺省值為1024 字節(jié)。

Inputlen 屬性:設置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù)。

Input Mode 屬性:設置或返回接收數(shù)據(jù)的類型。若值為0時則表示以文本形式讀取;若值為1 時則表示以二進制形式讀取。通常PLC 和PC 構成的通信系統(tǒng)都采用二進制接收方式。

InBuffer Count 屬性:設置或返回接收緩沖區(qū)中等待計算機接收的字符數(shù)。當將其值設為0 時,則輸入寄存器將被清空。

OutBufferSize 屬性:設置或返回發(fā)送緩沖區(qū)的大小,缺省值為512 字節(jié)。

OutBufferCount 屬性:設置或返回發(fā)送緩沖區(qū)中等待計算機發(fā)送的字符數(shù)。當將其值設為0 時,則輸出寄存器將被清空。

Rthreshold 屬性:該屬性為一閥值。當接收緩沖區(qū)中字符數(shù)達到該值時, MSComm 控件設置Commevent 屬性為ComEvReceive,并產(chǎn)生OnComm 事件。用戶可在OnComm 事件處理程序中進行相應處理。若Rthreshold 屬性設置為0,則不產(chǎn)生OnComm 事件。

SThreshold 屬性:在發(fā)生OnComm 事件之前傳輸緩沖區(qū)中的最小字符數(shù)。MSComm1.SThreshold = 0 數(shù)據(jù)傳輸事件不產(chǎn)生OnComm 事件;若設MSComm1.RThreshold = 1 則表示傳輸\ 緩沖區(qū)全空時, MSComm 控件產(chǎn)生OnComm 事件。

Handshaking 屬性:設置或返回硬件握手協(xié)議, 0 表示沒有握手協(xié)議, 不考慮流量控制;1 表示在數(shù)據(jù)流中嵌入控制符來進行流量控制; 2 表示由信號線RTS 自動進行流量控制; 3 表示1、2 兩者皆可。

通信初始化程序如下:

If MSComm1.PortOpen <> True Then

MSComm1.PortOpen=True

End If

MSComm1.CommPort = 1

MSComm1.Settings=“ 9600,N,8,1”

MSComm1.InputLen=0

MSComm1.InBufferCount=0

MSComm1.InputMode=comInputMode Binary

MSComm1. RThreshold =1

MSComm1.Handshaking=comNone

2.3 MSP430 單片機

就目前來看,高性能16 位單片機主要有凌陽系列、飛思卡爾系列、美國德州儀器(TI) 公司的MSP430 系列等類型的單片機。本文推薦選用美國德州儀器(TI) 公司的MSP430 系列單片機,MSP430 系列單片機是美國德州儀器(TI) 1966 年開始推向市場的一種16 位超低功耗的混合信號處理器(Mixed signal Processor) 稱之為混合信號處理器,主要是由于其針對實際應用需求,把許多模擬電路、數(shù)字電路和微處理器集成在一個芯片上,以提供“單片”解決方案。隨著Flash技術的迅速發(fā)展,在2001 年7 月到2002 年又推出了帶LCD控制器的Flash 單片機F41X、F43X、F44X 系列。本系統(tǒng)所選的MSP43OF449 是一個16 位的、具有精簡指令集的、超低功耗的混合型單片機,自問世以來,由于它具有極低的功耗,豐富的片內(nèi)外設和方便靈活的開發(fā)手段,得到廣泛的應用。

(1) 低電壓超低功耗工作電壓為1.8~3.6V,1MHz 的時鐘條件下運行,耗電電流因不同的工作模式而不同?;顒幽J綖?80uA,待機模式為1.1uA,掉電模式為0.1uA.具有16 個中斷源,并且可以任意嵌套,使用靈活方便。用中斷請求將CPU 喚醒只要6us,可編制出實時性特別高的源代碼;5 種節(jié)電模式;可將CPU 置于省電模式,用中斷模式喚醒程序。

(2) 強大的處理能力16 位精簡指令結構,15Ons 指令周期,具有豐富的尋址方式,簡潔的27 條內(nèi)核指令以及大量的模擬指令;大量的寄存器以及片內(nèi)數(shù)據(jù)存儲器都可參加多種運算;還有高效的查表處理方法。

(3) 豐富的片內(nèi)外設將大量的外圍模塊集成到片內(nèi),稱之為片內(nèi)外設。不同型號器件的片內(nèi)外設不同,但其相同模塊的工作原理基本相同,主要的片內(nèi)外設有:時鐘模塊、I/O 端口、定時器、通信模塊、液晶驅動模塊、模數(shù)轉換器、硬件乘法器、模擬比較器和Flash 存儲器等。MSP430 單片機的時鐘由高速晶體、低速晶體、數(shù)字控制振蕩器DCO、鎖頻環(huán)FLL 以及鎖頻環(huán)增強版本FLL+等構成。

2.4 串口通信模塊

通用串行同步異步通信接口USART (Unversal SynchronousAsynchronous Receive/Transmit ) 是一個串行通道,它允許7或8 位串行位流經(jīng)預先編程的速率或外部時鐘確定的速率移入、移出MSP430.

USART 可進行配置,以便同時支持同步( SPI) 與異步(UART) 操作,并且可從幾個內(nèi)部及外部時鐘源(與CPU 時鐘無關) 中進行選擇,所用的是異步(UART) 操作。在UART 模式下,速率也可達到2Mbps.在UART 模式下,實現(xiàn)可靠通信至少要求每位3 或4 個時鐘。例如, 8MHz 時鐘除以4 可以支持高達2Mbps 的速率。波特率發(fā)生器是用波特率選擇寄存器和調(diào)整控制寄存器來產(chǎn)生串行數(shù)據(jù)位定時。

波特率的計算:波特率=BRCLK/(UBR+ ( M7+M6+M5+M4+M3+M2+M1+M0)) ;其中BRCLK 為晶振頻率,UBR 為分頻因子的整數(shù),即晶振頻率除以波特率的整數(shù)部分,而M7,M6,M5,M4,M3,M2,M1,M0 分別為調(diào)整位,是分別寫在UMCTL 中的,如果置位,則對應的時序時間只能波特率分頻器的輸入時鐘擴展一個時鐘周期,每接受或發(fā)送一位,在調(diào)整控制寄存器的下一位被用來決定當前位的定時時間。[!--empirenews.page--]

3 MSP430 單片機與PC 機串口通信

設計MSP430 系列單片機的通信軟件,實際上是對MSP430 系列單片機的串行口的設計,這里采用Visual Basic 6.0 語言來設計,在PC 機上運行的界面如圖1 所示。

 

 

在發(fā)送數(shù)據(jù)文本框中輸入一個“0~255”之間的整數(shù),并單擊發(fā)送數(shù)據(jù)按鈕,單片機將接收到該數(shù)據(jù)并顯示這個數(shù)據(jù), 然后作除4 處理,結果再經(jīng)串口返回到PC 機端。例如當發(fā)送數(shù)據(jù)160 時,單片機電路中數(shù)碼管上顯示160,同時單片機對160 作除4 處理,得到40 返送回PC 機上顯示。

由于PC 機端的RS232 電平與MSP430 單片機端的TTL 電平不匹配, 故必須進行電平轉換,這里采用美信MAX232 芯片完成。電路其他部分為單片機常規(guī)電路。以下是MSP430 單片機與PC 機串口通信VB6.0 程序代碼如下:

(1) PC 機端VB 程序代碼初始化部分代碼:

發(fā)送功能代碼:

Private Sub Form_load ()

MSComm1.CommPort = 1 ' 設置1 號串口

MSComm1.Settings =“9600,N,8,1”‘ 設置參數(shù)

MSComm1.PortOpen = True ' 打開串口

End Sub

發(fā)送功能代碼:

Private Sub Command1_Click ()

Dim Number As Integer ' 發(fā)送的數(shù)據(jù)變量

Dim OutByte (0) As Byte ' 發(fā)送字節(jié)數(shù)組

Number = Val (Text1.text) ' 類型轉換

OutByte (0) =CByte (Number) ' 轉換為二進制

MSComm1.OutBufferCount=0' 清空發(fā)送緩沖

MSComm1.Output = OutByte ' 發(fā)送數(shù)據(jù)

End Sub

接收功能代碼:

Private Sub MSComm1_OnComm ()

Dim InData As Variant ' 變體變量

Dim Arr (0) As Byte ' 接收字節(jié)數(shù)組

Select Case MSComm1.CommEvent

Case comEvReceive ' 觸發(fā)接收事件

InData = MSComm1.Input ' 接收數(shù)據(jù)

Arr (0) = AscB (InData) ' 類型轉換

Text2.text = Arr (0) ' 顯示數(shù)據(jù)

MSComm1.InBufferCount = 0 ' 清空接收緩

End Select

End Sub

(2) MSP430 單片機的部分程序

單片機的編程包括: 設置串行口的工作方式; 波特率的設置; 發(fā)送數(shù)據(jù)并接收數(shù)據(jù)。以下為串行口的初始化程序:

CKCSH MOV1B # SWRST, & U 1CT L; 先在SWRST= 1 時,

設置串口

BIS. B # CHAR, &U 1CTL

MOV. B # SSEL1+ SSEL0, & U 1TCTL;

MOV. B # 045H, & U1BR0; 波特率為9600

MOV. B # 00H, & U1BR1;

MOV. B # 055H, & U1MCT L;

BIS. B # U TXE1+ U RXE1, & ME2;

BIC. B # SWRST, & U1CTL;

4 結語

串口通信是一項廣泛應用到各個領域的通信技術, 尤其是單片機與PC 機間的通信。在實踐中VB6.0 以其好學易用性得到廣泛的應用,MSP430 系列單片機以低功耗等特點被應用在測控系統(tǒng)中,兩者結合能夠快速構筑以單片機采集數(shù)據(jù)和計算機快速處理的系統(tǒng)

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

8位單片機在嵌入式設計領域已經(jīng)成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設計與硬件實現(xiàn)的關鍵環(huán)節(jié)。當前主流的單片機燒錄技術已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應用編程)三大技術體系,分別對應開發(fā)調(diào)試、量產(chǎn)燒錄、遠程升級等不同場景。...

關鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內(nèi)容哦。

關鍵字: 單片機 開發(fā)板 Keil

隨著單片機系統(tǒng)越來越廣泛地應用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關鍵字: 單片機 電磁兼容

以下內(nèi)容中,小編將對單片機的相關內(nèi)容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關鍵字: 單片機 復位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關鍵字: 單片機 異常復位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關報道,通過閱讀這篇文章,大家可以對它具備清晰的認識,主要內(nèi)容如下。

關鍵字: 單片機 仿真器

單片機將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關情況以及信息有所認識和了解,詳細內(nèi)容如下。

關鍵字: 單片機 中斷 boot

一直以來,單片機都是大家的關注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C的相關介紹,詳細內(nèi)容請看下文。

關鍵字: 單片機 數(shù)字信號 模擬信號
關閉