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

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

引言

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

1、硬件原理

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

電路結(jié)構(gòu)見下圖。

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

2、軟件設(shè)計(jì)

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

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

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

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


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

3、結(jié)束語

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

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

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計(jì)工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉