无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

運用Visual Basic實現(xiàn)PC與89C51單片機(jī)之間的串行通信

沈 飆 夏海燕

  摘要 在Visual Basic開發(fā)環(huán)境下,運用VB提供的通信控件,實現(xiàn)PC機(jī)與89C51單片機(jī)之間的串行通信。
  關(guān)鍵詞 Visual Basic 89C51單片機(jī) 串行通信 A/D D/A轉(zhuǎn)換

Serial Communication between PC
and 89C51 with Visual Basic

  Abstract:Serial communication between PC and 89C51 single-chip-computer by MSCOMM control box of Visual Basic is introduced.
  Key Words:Visual Basic 89C51 Serial communication A/D D/A

1 系統(tǒng)簡介
  在中科院等離子體物理研究所受控核聚變物理實驗裝置控制系統(tǒng)中,我們開發(fā)設(shè)計了以計算機(jī)控制為基礎(chǔ)的各種信號予置系統(tǒng),系統(tǒng)原理如圖1所示。

15-1.gif (3308 bytes)

圖1 系統(tǒng)原理圖

  系統(tǒng)上位機(jī)由一臺(PC586)微機(jī)構(gòu)成,軟件采用Visual Basic編程,作出十分直觀的人機(jī)界面,并通過串行口將所需的各種予置信號(數(shù)字信號)傳給單片機(jī)系統(tǒng),再由單片機(jī)系統(tǒng)產(chǎn)生實際的模擬信號經(jīng)線性光電隔離器送到現(xiàn)場。予置數(shù)值可以分別顯示在PC機(jī)軟件窗口和單片機(jī)系統(tǒng)的予置數(shù)字表頭上。同時,現(xiàn)場實測信號經(jīng)過線性光電隔離器,也可以實時顯示在本系統(tǒng)的檢測數(shù)字表頭上和PC機(jī)的界面上。如此設(shè)計界面直觀,而且利于對現(xiàn)場信號進(jìn)行實時監(jiān)測。因此,采用本系統(tǒng),大大提高了現(xiàn)場信號予置精度,對實驗操作人員來說人機(jī)界面良好,簡單易懂。我們將分硬件和軟件兩方面分別介紹該系統(tǒng)的情況。

2 硬件介紹
  從系統(tǒng)原理圖上可見,本系統(tǒng)關(guān)鍵的硬件部分是單片機(jī)系統(tǒng)的設(shè)計,上位機(jī)PC機(jī)則直接利用它的RS232串行口即可。系統(tǒng)硬件原理如圖2所示。

15-2.gif (8048 bytes)

圖2 系統(tǒng)硬件原理圖

  本系統(tǒng)采用CPU為89C51的單片微機(jī),89C51本身帶有2K的內(nèi)存儲器,可以在編程器上實現(xiàn)閃爍式的電擦寫達(dá)幾萬次以上,比以往慣用的8031CPU外加EPROM為核心的單片機(jī)系統(tǒng)在硬件上具有更加簡單、方便等優(yōu)點,而且完全兼容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īng)的予置數(shù)字表上。現(xiàn)場返回的信號通過隔離,經(jīng)過A/D轉(zhuǎn)換器和數(shù)據(jù)鎖存器變成單片機(jī)所需的并行數(shù)字信號送到單片機(jī)的數(shù)據(jù)存儲單元中,再由串行口返送到PC機(jī)上,同時顯示在PC機(jī)界面和本系統(tǒng)相對應(yīng)的檢測數(shù)字表上以便于予置和實際情況相對比。利用89C51輸出口對不同數(shù)據(jù)鎖存器74LS373和A/D、D/A的片選輸出可以實現(xiàn)一臺單片機(jī)同時對多路不同信號進(jìn)行予置和檢測。

3 軟件結(jié)構(gòu)
  軟件分PC機(jī)Visual Basic編程和89C51單片機(jī)匯編語言編程兩部分,現(xiàn)分別介紹如下。
3.1 PC機(jī)部分
  PC機(jī)采用Visual Basic(簡稱VB)編程。目前,VB已成為WINDOWS系統(tǒng)開發(fā)的主要語言,以其高效、簡單易學(xué)及功能強大的特點越來越為廣大程序設(shè)計人員及用戶所青睞。VB支持面向?qū)ο蟮某绦蛟O(shè)計,具有結(jié)構(gòu)化的事件驅(qū)動編程模式并可以使用無限擴(kuò)增的控件,而且可以十分簡便地作出良好的人機(jī)界面。在標(biāo)準(zhǔn)串口通信方面,VB提供了具有強大功能的通信控件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è)計多個通信控件來訪問多個通信口。VB通信控件設(shè)計軟件如下:

Global comm_time As Integer //定義一些全局變量
Global data(1000)As Integer
Global Receive(1000)As Integer
Private Sub Form_Load()’ //串口初始化
  Comml.CommPort=1 //設(shè)置串口1
  Comml.Settings=“9600,N,8,1” //波特率:9600 奇校驗,8位數(shù)據(jù),1位停止位
  Comml.InputLen=0 //讀取接收緩沖區(qū)的所有字符
  Comml.InBufferSize=256 //設(shè)置接收緩沖區(qū)為256字節(jié)
  Comml.OutBufferSize=256 //設(shè)置發(fā)送緩沖區(qū)為256字節(jié)
  Comml.PortOpen=True //打開串口1
  Comml.SThreshold=1 //發(fā)送緩沖區(qū)空觸發(fā)發(fā)送事件
  Comml.RThreshold=1 //每一個字符到接收緩沖區(qū)都觸發(fā)接收事件
End Sub
Public Sub send-data() //發(fā)送n個數(shù)據(jù)
  For i=0 To n
  Comml.Output=Chr(data(i))
  Next i
End Sub
Public Sub Comml_OnComm() //接收數(shù)據(jù)觸發(fā)OnComm()事件
  Select Case Comml.CommEvent //在CommEvent中接收數(shù)據(jù)
  Case comEvReceive
  Receive(comm_time)=Asc(Comml.Input) //將接收數(shù)據(jù)放在Receive(comm-time)數(shù)組中  Comm_time=comm_time+1
 End Select
End Sub

3.2 單片機(jī)部分
  單片機(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。如下式所示:

SM0 SM1 SM2 REN TB8 RB8 T1 R1

  本系統(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所示。
單片機(jī)程序清單簡介:
(1)主程序
   MOV SP,#07
   ACALL INIT //調(diào)串口初始化子程序
STRAT:CLR EA 清中斷
   MOV R0,#DATA1 存放接收數(shù)據(jù)首地址#DATA1
   MOV R1,#DATA2 存放發(fā)送數(shù)據(jù)首地址#DATA2
   MOV R2,#N 數(shù)據(jù)個數(shù)
   SETB EA 開中斷
   ACALL D/A 調(diào)延時并啟動D/A轉(zhuǎn)換子程序
   ACALL SEND 啟動A/D轉(zhuǎn)換子程序并串口發(fā)送
   SJMP START 返回
(2)串口初始化程序
INIT:MOV TH1,#FD 設(shè)置波特率
   MOV TL1,#00
   MOV TMOD,#20 定時器2為工作方式2
   MOV TCON,#40 啟動定時器
   SETB ES 允許串口中斷
   MOV SCON,#50 置串行口工作方式1
   MOV P2,#0F
   RET
(3)中斷服務(wù)程序
0023 PUSH ACC 保護(hù)堆棧
   PUSH PSW
   MOV DPH,#00
   JB TI,TEMP1 判斷是否為發(fā)送,是則跳轉(zhuǎn)
WAIT:JNB RI,WAIT 判斷是否為接收,否則循環(huán)
   MOV A,SBUF 將接收的數(shù)據(jù)送到數(shù)據(jù)地址內(nèi)
   MOV @R0,A
   CLR 98 清接收中斷
   INC R0
   DJNZ R1,TEMP1 數(shù)據(jù)若送完則將標(biāo)志置1
   SETB 00
TEMP1:CLR  99 清發(fā)送中斷
   POP PSW
   POP ACC
   RETI
(4)延時及調(diào)D/A轉(zhuǎn)換子程序
D/A:INC DPTR 延時
   MOV A,DPH
   CJNE A,#FF,D/A
   JNB 00,D/A 數(shù)據(jù)未送完,返回
   CLR 00 送完則將送完標(biāo)志清零
   ACALL OUT
   RET
OUT:CLR A
   MOV A,@R0 將接收的串行口數(shù)據(jù)送到P2口
   MOV P2,A
   SETB 90 封鎖數(shù)據(jù)鎖存器
   MOV R3,#00
WAIT1:DJNZ R3,WAIT1 延時
   CLR 90  解除封鎖數(shù)據(jù)鎖存器
   RET
(5)A/D轉(zhuǎn)換及串口發(fā)送子程序
SEND:MOV DPTR,#ADRESS IN0通道地址首址
   MOV R7,#08H 從IN0-IN7依次采集的通道個數(shù)
LOOP1:MOVX @DPTR,A 啟動A/D轉(zhuǎn)換
   MOV R6 #0AH 延時100μs
DELAY:NOP
   NOP
   NOP
   DJNZ R6,DELAY
   MOVX A,@DPTR 將轉(zhuǎn)換結(jié)果送到指定地址R1
   MOV @R1 A
   MOVX A,@R1
   MOV SBUF,A 將指定地址數(shù)據(jù)從串口輸出
   INC DPTR   INC R1
   DJNZ R7,LOOP1
   RET

15-3.gif (8298 bytes)

圖3 程序流程圖

4 結(jié)束語
  該系統(tǒng)目前已成功地應(yīng)用在中科院等離子體物理研究所的HT-7超導(dǎo)托卡馬克受控核聚變物理實驗裝置上,運行良好。對于目前廣泛應(yīng)用的Windows環(huán)境下實現(xiàn)PC機(jī)與單片機(jī)之間的通信問題,希望本文能夠提供一點有用的參考價值。

作者單位中科院等離子體物理研究所 合肥 230031

 

无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
日韩高清三区| 西西人体一区二区| 欧美一区久久久| 美女视频一区在线观看| 中文字幕一区日韩精品| 欧美日韩 国产精品| 国产成人精品亚洲线观看| 免费观看在线综合色| 蜜桃视频一区二区三区| 在线国产日韩| 日本不卡一区二区| 日韩国产一区二| 视频一区二区三区在线| 99视频精品免费观看| 国产亚洲观看| 石原莉奈在线亚洲三区| 日韩av影院| 国产在线|日韩| 亚洲精品婷婷| 成人在线视频区| 伊人久久婷婷| 日本成人中文字幕| 久久国产精品99国产| 亚洲va久久| 蜜桃精品在线| 亚洲3区在线| 久久亚洲风情| 日韩不卡一二三区| 国产白浆在线免费观看| 视频一区二区中文字幕| 国产综合精品| 欧美成人精品一级| 综合一区在线| 99久久九九| 日韩精品电影| 国产亚洲欧美日韩精品一区二区三区| 欧美91视频| 精品72久久久久中文字幕| 在线精品亚洲| 欧美日韩视频免费看| 综合欧美亚洲| 国产精品普通话对白| 综合国产视频| 婷婷中文字幕一区| 精品一区二区三区在线观看视频| 超级白嫩亚洲国产第一| 国产日韩免费| 欧美a级一区| 综合激情视频| 日本va欧美va精品发布| 蜜桃久久精品一区二区| 91免费精品| 国产一区二区三区不卡视频网站 | 国产精品一线| 成人av三级| 激情五月综合| 国产精品伦理久久久久久| 亚洲欧美日本国产专区一区| 蜜桃视频第一区免费观看| 91精品丝袜国产高跟在线| 欧美日韩一区二区国产| 高清日韩中文字幕| 午夜日韩影院| 成人在线免费观看91| 精品中文字幕一区二区三区av| 伊人精品在线| 91精品一区二区三区综合在线爱| 91精品国产自产精品男人的天堂| 欧美激情aⅴ一区二区三区| 久久久久久久久久久妇女| 国产欧美自拍| 欧美日韩一区二区三区四区在线观看 | 波多视频一区| 亚洲欧美在线专区| 婷婷综合六月| 97精品国产| 国产精品色婷婷在线观看| 日韩中文字幕不卡| 久久久精品午夜少妇| 久久久一本精品| 日本午夜精品视频在线观看| 丝袜a∨在线一区二区三区不卡| 99久久久久久中文字幕一区| 久久精品播放| 欧美二三四区| 国产美女高潮在线观看| 欧美亚洲自偷自偷| 日韩国产一区二区| 精品视频黄色| 国产在视频一区二区三区吞精| 日本天堂一区| 精品三级在线观看视频| 欧美日韩视频网站| 99热精品久久| 免费精品视频在线| 日本 国产 欧美色综合| 青青伊人久久| 日韩午夜视频在线| 久久精品国产99国产精品| 国语对白精品一区二区| 亚洲啊v在线| 狠狠干成人综合网| 蜜桃视频在线观看一区二区| 美女精品久久| 国产模特精品视频久久久久| 亚洲精品大片| 日韩欧美久久| 亚洲激情欧美| 日本不卡视频在线观看| a天堂资源在线| 日韩av网站在线观看| 色爱综合网欧美| 亚洲作爱视频| 亚洲a在线视频| 精品国产一区二| 狠狠久久婷婷| 欧美激情视频一区二区三区免费| 中文亚洲欧美| 日韩精品诱惑一区?区三区| 欧美日韩国产一区精品一区| 91欧美精品| 好吊视频一区二区三区四区| av最新在线| 欧美不卡视频| 精品国产网站| 另类综合日韩欧美亚洲| 99久久夜色精品国产亚洲1000部| 国产一区导航| 亚洲精选91| 中文字幕系列一区| 欧美日韩国产高清| 国产日韩三级| 欧洲激情综合| 激情久久一区二区| 国产精品av久久久久久麻豆网| 精品三级久久| 91视频久久| 蜜臀久久99精品久久久画质超高清| 六月丁香综合在线视频| 国产美女高潮在线| 日本不卡在线视频| 日韩精品欧美| 欧美日韩精品一区二区视频| 国产视频一区二| 欧美不卡高清一区二区三区| 深夜福利视频一区二区| 蜜臀av国产精品久久久久| 日本不卡在线视频| 五月天激情综合网| 精品高清久久| 激情久久久久久久| 日韩av网站在线免费观看| 国产欧美自拍| 日本精品不卡| 国产欧洲在线| 欧美在线影院| 久久国产三级| 啪啪国产精品| 日本免费一区二区视频| 久久婷婷亚洲| 91精品蜜臀一区二区三区在线 | 久久国产日本精品| 丝袜亚洲另类欧美| 91精品电影| 亚洲一区资源| 青草国产精品| 国产欧美日韩影院| 国产亚洲精品美女久久久久久久久久| 亚洲欧洲av| 日本a级不卡| 91精品国产自产在线丝袜啪| 亚洲精品韩国| 深夜福利亚洲| 美美哒免费高清在线观看视频一区二区| 欧美三级网址| 亚洲精品一级二级| 超级白嫩亚洲国产第一| 久久精品亚洲人成影院 | 国产日产一区| 国产成人精品免费视| 青青青免费在线视频| 国产精品tv| 日韩av中文字幕一区二区三区| 日韩激情精品| 国产aⅴ精品一区二区三区久久| 国产欧美大片| 麻豆视频观看网址久久| 国产精品久久久久久久久久久久久久久 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产一区二区精品久| 美女视频黄久久| 欧美日韩国产亚洲一区| 国产精品久一| 91午夜精品| 欧美三级网址| 最新日韩av| 91精品综合| 亚洲免费播放| 久久影院资源站| 精品国产成人|