999国内精品永久免费视频,色偷偷9999www,亚洲国产成人爱av在线播放,6080亚洲人久久精品,欧美超高清xxxhd

首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁
  P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機(jī)界面 | 運(yùn)動控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機(jī)柜箱體殼體 | 低壓電器 | 機(jī)器視覺
運(yùn)用Visual Basic實(shí)現(xiàn)PC與89C51單片機(jī)之間的串行通信
中華工控網(wǎng)
收藏本文     查看收藏
運(yùn)用Visual Basic實(shí)現(xiàn)PC與89C51單片機(jī)之間的串行通信</P><P> 沈 飆 夏海燕</P><P>   摘要 在Visual Basic開發(fā)環(huán)境下,運(yùn)用VB提供的通信控件,實(shí)現(xiàn)PC機(jī)與89C51單片機(jī)之間的串行通信。<BR>   關(guān)鍵詞 Visual Basic 89C51單片機(jī) 串行通信 A/D D/A轉(zhuǎn)換</P><P> Serial Communication between PC<BR> and 89C51 with Visual Basic</P><P>   Abstract:Serial communication between PC and 89C51 single-chip-computer by MSCOMM control box of Visual Basic is introduced.<BR>   Key Words:Visual Basic 89C51 Serial communication A/D D/A</P><P> 1 系統(tǒng)簡介<BR>   在中科院等離子體物理研究所受控核聚變物理實(shí)驗(yàn)裝置控制系統(tǒng)中,我們開發(fā)設(shè)計(jì)了以計(jì)算機(jī)控制為基礎(chǔ)的各種信號予置系統(tǒng),系統(tǒng)原理如圖1所示。<BR> <BR> <br><A HREF="/editor/uploadfiles/learns01/2003102316154223983.gif" TARGET=_blank><IMG SRC="/editor/uploadfiles/learns01/2003102316154223983.gif" border=0 alt=按此在新窗口瀏覽圖片 onload="javascript:if(this.width>580)this.width=580"></A></P><P> 圖1 系統(tǒng)原理圖</P><P>   系統(tǒng)上位機(jī)由一臺(PC586)微機(jī)構(gòu)成,軟件采用Visual Basic編程,作出十分直觀的人機(jī)界面,并通過串行口將所需的各種予置信號(數(shù)字信號)傳給單片機(jī)系統(tǒng),再由單片機(jī)系統(tǒng)產(chǎn)生實(shí)際的模擬信號經(jīng)線性光電隔離器送到現(xiàn)場。予置數(shù)值可以分別顯示在PC機(jī)軟件窗口和單片機(jī)系統(tǒng)的予置數(shù)字表頭上。同時(shí),現(xiàn)場實(shí)測信號經(jīng)過線性光電隔離器,也可以實(shí)時(shí)顯示在本系統(tǒng)的檢測數(shù)字表頭上和PC機(jī)的界面上。如此設(shè)計(jì)界面直觀,而且利于對現(xiàn)場信號進(jìn)行實(shí)時(shí)監(jiān)測。因此,采用本系統(tǒng),大大提高了現(xiàn)場信號予置精度,對實(shí)驗(yàn)操作人員來說人機(jī)界面良好,簡單易懂。我們將分硬件和軟件兩方面分別介紹該系統(tǒng)的情況。</P><P> 2 硬件介紹<BR>   從系統(tǒng)原理圖上可見,本系統(tǒng)關(guān)鍵的硬件部分是單片機(jī)系統(tǒng)的設(shè)計(jì),上位機(jī)PC機(jī)則直接利用它的RS232串行口即可。系統(tǒng)硬件原理如圖2所示。</P><P> <BR> <br><A HREF="/editor/uploadfiles/learns01/2003102316154875130.gif" TARGET=_blank><IMG SRC="/editor/uploadfiles/learns01/2003102316154875130.gif" border=0 alt=按此在新窗口瀏覽圖片 onload="javascript:if(this.width>580)this.width=580"></A></P><P> 圖2 系統(tǒng)硬件原理圖</P><P>   本系統(tǒng)采用CPU為89C51的單片微機(jī),89C51本身帶有2K的內(nèi)存儲器,可以在編程器上實(shí)現(xiàn)閃爍式的電擦寫達(dá)幾萬次以上,比以往慣用的8031CPU外加EPROM為核心的單片機(jī)系統(tǒng)在硬件上具有更加簡單、方便等優(yōu)點(diǎn),而且完全兼容MCS 51系列單片機(jī)的所有功能。該單片機(jī)系統(tǒng)的工作流程是這樣的:89C51單片機(jī)利用自身具有的串行通信口,直接接收PC機(jī)傳送下來的串行數(shù)據(jù),然后將所接收的各組數(shù)據(jù)通過并行口輸出,經(jīng)過數(shù)字光隔,送到數(shù)據(jù)鎖存器74LS373,最后將鎖存的數(shù)據(jù)送到D/A轉(zhuǎn)換器進(jìn)行數(shù)模轉(zhuǎn)換并通過運(yùn)放將模擬信號輸出,同時(shí)顯示在相應(yīng)的予置數(shù)字表上,F(xiàn)場返回的信號通過隔離,經(jīng)過A/D轉(zhuǎn)換器和數(shù)據(jù)鎖存器變成單片機(jī)所需的并行數(shù)字信號送到單片機(jī)的數(shù)據(jù)存儲單元中,再由串行口返送到PC機(jī)上,同時(shí)顯示在PC機(jī)界面和本系統(tǒng)相對應(yīng)的檢測數(shù)字表上以便于予置和實(shí)際情況相對比。利用89C51輸出口對不同數(shù)據(jù)鎖存器74LS373和A/D、D/A的片選輸出可以實(shí)現(xiàn)一臺單片機(jī)同時(shí)對多路不同信號進(jìn)行予置和檢測。</P><P> 3 軟件結(jié)構(gòu)<BR>   軟件分PC機(jī)Visual Basic編程和89C51單片機(jī)匯編語言編程兩部分,現(xiàn)分別介紹如下。<BR> 3.1 PC機(jī)部分<BR>   PC機(jī)采用Visual Basic(簡稱VB)編程。目前,VB已成為WINDOWS系統(tǒng)開發(fā)的主要語言,以其高效、簡單易學(xué)及功能強(qiáng)大的特點(diǎn)越來越為廣大程序設(shè)計(jì)人員及用戶所青睞。VB支持面向?qū)ο蟮某绦蛟O(shè)計(jì),具有結(jié)構(gòu)化的事件驅(qū)動編程模式并可以使用無限擴(kuò)增的控件,而且可以十分簡便地作出良好的人機(jī)界面。在標(biāo)準(zhǔn)串口通信方面,VB提供了具有強(qiáng)大功能的通信控件MSCOMM,文件名為MSCOMM.VBX。該控件可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,對串口狀態(tài)及串口通信的信息格式和協(xié)議進(jìn)行設(shè)置。這是一個標(biāo)準(zhǔn)的十位串口通信,包括8位標(biāo)準(zhǔn)數(shù)據(jù)和數(shù)據(jù)的起始位和停止位。在發(fā)送或接收數(shù)據(jù)過程中觸發(fā)OnComm事件,通過編程訪問CommEvent屬性了解通信事件的類型,分別進(jìn)行各自的處理。每個通信控件對應(yīng)一個串口,可以設(shè)計(jì)多個通信控件來訪問多個通信口。VB通信控件設(shè)計(jì)軟件如下:</P><P> Global comm_time As Integer //定義一些全局變量<BR> Global data(1000)As Integer<BR> Global Receive(1000)As Integer<BR> Private Sub Form_Load()’ //串口初始化<BR>   Comml.CommPort=1 //設(shè)置串口1<BR>   Comml.Settings=“9600,N,8,1” //波特率:9600 奇校驗(yàn),8位數(shù)據(jù),1位停止位<BR>   Comml.InputLen=0 //讀取接收緩沖區(qū)的所有字符<BR>   Comml.InBufferSize=256 //設(shè)置接收緩沖區(qū)為256字節(jié)<BR>   Comml.OutBufferSize=256 //設(shè)置發(fā)送緩沖區(qū)為256字節(jié)<BR>   Comml.PortOpen=True //打開串口1<BR>   Comml.SThreshold=1 //發(fā)送緩沖區(qū)空觸發(fā)發(fā)送事件<BR>   Comml.RThreshold=1 //每一個字符到接收緩沖區(qū)都觸發(fā)接收事件<BR> End Sub<BR> Public Sub send-data() //發(fā)送n個數(shù)據(jù)<BR>   For i=0 To n<BR>   Comml.Output=Chr(data(i))<BR>   Next i<BR> End Sub<BR> Public Sub Comml_OnComm() //接收數(shù)據(jù)觸發(fā)OnComm()事件<BR>   Select Case Comml.CommEvent //在CommEvent中接收數(shù)據(jù)<BR>   Case comEvReceive<BR>   Receive(comm_time)=Asc(Comml.Input) //將接收數(shù)據(jù)放在Receive(comm-time)數(shù)組中  Comm_time=comm_time+1<BR>  End Select<BR> End Sub</P><P> 3.2 單片機(jī)部分<BR>   單片機(jī)89C51采用MCS51系列的匯編語言編程。它有一個標(biāo)準(zhǔn)的串行口,有4種工作方式,其中方式1是標(biāo)準(zhǔn)的10位異步通信方式,10位數(shù)據(jù)和PC機(jī)的標(biāo)準(zhǔn)串口相對應(yīng),由串行口控制寄存器SCON設(shè)置狀態(tài),其字節(jié)地址為98H。如下式所示:<BR> </P><P> SM0 SM1 SM2 REN TB8 RB8 T1 R1 </P><P> <BR>   本系統(tǒng)中89C51串口控制器SCON設(shè)置為50H,SM0、SM1為0、1,即為串行工作方式1,REN為1,即允許串口接收。另外,還應(yīng)使89C51的中斷允許寄存器IE的開放或禁止所有中斷位EA為1,開放或禁止串行通道中斷位ES為1,即允許串行口中斷。89C51的并行口P0和P2分別作為八位數(shù)據(jù)的輸入和輸出口。P3口的輸出作為數(shù)據(jù)鎖存器和D/A、A/D的禁止和允許。程序流程如圖4所示。<BR> 單片機(jī)程序清單簡介:<BR> (1)主程序<BR>    MOV SP,#07<BR>    ACALL INIT //調(diào)串口初始化子程序<BR> STRAT:CLR EA 清中斷<BR>    MOV R0,#DATA1 存放接收數(shù)據(jù)首地址#DATA1<BR>    MOV R1,#DATA2 存放發(fā)送數(shù)據(jù)首地址#DATA2<BR>    MOV R2,#N 數(shù)據(jù)個數(shù)<BR>    SETB EA 開中斷<BR>    ACALL D/A 調(diào)延時(shí)并啟動D/A轉(zhuǎn)換子程序<BR>    ACALL SEND 啟動A/D轉(zhuǎn)換子程序并串口發(fā)送<BR>    SJMP START 返回<BR> (2)串口初始化程序<BR> INIT:MOV TH1,#FD 設(shè)置波特率<BR>    MOV TL1,#00<BR>    MOV TMOD,#20 定時(shí)器2為工作方式2<BR>    MOV TCON,#40 啟動定時(shí)器<BR>    SETB ES 允許串口中斷<BR>    MOV SCON,#50 置串行口工作方式1<BR>    MOV P2,#0F<BR>    RET<BR> (3)中斷服務(wù)程序<BR> 0023 PUSH ACC 保護(hù)堆棧<BR>    PUSH PSW<BR>    MOV DPH,#00<BR>    JB TI,TEMP1 判斷是否為發(fā)送,是則跳轉(zhuǎn)<BR> WAIT:JNB RI,WAIT 判斷是否為接收,否則循環(huán)<BR>    MOV A,SBUF 將接收的數(shù)據(jù)送到數(shù)據(jù)地址內(nèi)<BR>    MOV @R0,A<BR>    CLR 98 清接收中斷<BR>    INC R0<BR>    DJNZ R1,TEMP1 數(shù)據(jù)若送完則將標(biāo)志置1<BR>    SETB 00<BR> TEMP1:CLR  99 清發(fā)送中斷<BR>    POP PSW<BR>    POP ACC<BR>    RETI<BR> (4)延時(shí)及調(diào)D/A轉(zhuǎn)換子程序<BR> D/A:INC DPTR 延時(shí)<BR>    MOV A,DPH<BR>    CJNE A,#FF,D/A<BR>    JNB 00,D/A 數(shù)據(jù)未送完,返回<BR>    CLR 00 送完則將送完標(biāo)志清零<BR>    ACALL OUT<BR>    RET<BR> OUT:CLR A<BR>    MOV A,@R0 將接收的串行口數(shù)據(jù)送到P2口<BR>    MOV P2,A<BR>    SETB 90 封鎖數(shù)據(jù)鎖存器<BR>    MOV R3,#00<BR> WAIT1:DJNZ R3,WAIT1 延時(shí)<BR>    CLR 90  解除封鎖數(shù)據(jù)鎖存器<BR>    RET<BR> (5)A/D轉(zhuǎn)換及串口發(fā)送子程序<BR> SEND:MOV DPTR,#ADRESS IN0通道地址首址<BR>    MOV R7,#08H 從IN0-IN7依次采集的通道個數(shù)<BR> LOOP1:MOVX @DPTR,A 啟動A/D轉(zhuǎn)換<BR>    MOV R6 #0AH 延時(shí)100μs<BR> DELAY:NOP<BR>    NOP<BR>    NOP<BR>    DJNZ R6,DELAY<BR>    MOVX A,@DPTR 將轉(zhuǎn)換結(jié)果送到指定地址R1<BR>    MOV @R1 A<BR>    MOVX A,@R1<BR>    MOV SBUF,A 將指定地址數(shù)據(jù)從串口輸出<BR>    INC DPTR   INC R1<BR>    DJNZ R7,LOOP1<BR>    RET </P><P> <br><A HREF="/editor/uploadfiles/learns01/2003102316155363529.gif" TARGET=_blank><IMG SRC="/editor/uploadfiles/learns01/2003102316155363529.gif" border=0 alt=按此在新窗口瀏覽圖片 onload="javascript:if(this.width>580)this.width=580"></A></P><P> 圖3 程序流程圖</P><P> 4 結(jié)束語<BR>   該系統(tǒng)目前已成功地應(yīng)用在中科院等離子體物理研究所的HT-7超導(dǎo)托卡馬克受控核聚變物理實(shí)驗(yàn)裝置上,運(yùn)行良好。對于目前廣泛應(yīng)用的Windows環(huán)境下實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的通信問題,希望本文能夠提供一點(diǎn)有用的參考價(jià)值。</P><P> 作者單位:中科院等離子體物理研究所 合肥 230031<BR>
 

狀 態(tài): 離線

公司簡介
產(chǎn)品目錄

公司名稱: 中華工控網(wǎng)
聯(lián) 系 人: 客服中心
電  話: 0755-26546361
傳  真: 0755-26585268
地  址: 深圳市南山區(qū)創(chuàng)業(yè)路現(xiàn)代城華庭1棟6A
郵  編: 518054
主  頁:
 
該廠商相關(guān)技術(shù)文摘:
智能儀器儀表的發(fā)展特點(diǎn)與前景分析
電動機(jī)性能虛擬儀器測試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
視頻監(jiān)控護(hù)航高鐵安全運(yùn)營
基于PLC,觸摸屏及變頻器對吹膜機(jī)的改造
永宏P(guān)LC應(yīng)用于自助圖書借還終端機(jī)
基于永宏P(guān)LC的GSM通訊原理及其應(yīng)用
改善汽車生態(tài)學(xué)、安全性和舒適性,四大測試分析是關(guān)鍵
改善汽車生態(tài)學(xué)、安全性和舒適性,四大測試分析是關(guān)鍵
數(shù)控技術(shù)的發(fā)展趨勢及產(chǎn)業(yè)化
數(shù)控技術(shù)發(fā)展戰(zhàn)略與發(fā)展途徑的思考
用Energid 的軟件進(jìn)行機(jī)器人的抓取和操作
如何借助RFID技術(shù)升級企業(yè)信息管理水平
更多文摘...
立即發(fā)送詢問信息在線聯(lián)系該技術(shù)文摘廠商:
用戶名: 密碼: 免費(fèi)注冊為中華工控網(wǎng)會員
請留下您的有效聯(lián)系方式,以方便我們及時(shí)與您聯(lián)絡(luò)

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報(bào)
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved