亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VSPD和Proteus串口通信教學實驗

        2018-10-30 09:53:50田社平方向忠
        實驗室研究與探索 2018年9期
        關鍵詞:單片機實驗

        田社平, 方向忠, 張 峰

        (上海交通大學 電子信息與電氣工程學院,上海 200240)

        0 引 言

        串口是目前工業(yè)通信中較為普遍的一種通信方式,同時在單片機教學中占據(jù)重要地位[1-4]。傳統(tǒng)的串口通信實驗往往需要一根串口線連接兩個終端(兩臺PC機,或者一臺PC一個單片機系統(tǒng),或者兩個單片機系統(tǒng)),其對硬件仿真器依賴性較強。由于很多仿真器不能做到完全硬件仿真,因而可能造成仿真時正常,而實際運行時出現(xiàn)錯誤的情況,或者造成仿真不能通過,但是實際運行正常的情況。當單片機芯片型號發(fā)生較大變化時,需要配置新的仿真器,增加了資金投入。因此,開發(fā)一種虛擬的串口通信教學實驗系統(tǒng),具有良好的教學價值。例如,可以利用Keil和虛擬串口驅動(VSPD)即可達到這一目的[5-7],但這樣的實驗系統(tǒng)具有操作較為復雜、顯示不夠直觀、不能加入硬件設計等缺點。

        本文討論一種基于VSPD和Proteus[8-9]串口調(diào)試與實驗方法,可以在一臺PC機上完成原本需要兩個終端才能實現(xiàn)的串口通信。首先從虛擬串口的結構和原理,闡述串口通信的基本原理。接著以一個實例給出了基于VSPD的串口通信的具體實現(xiàn)過程。該例實現(xiàn)了PC機與單片機之間的串口通信,PC機端串口通信程序采用VC++6.0編寫,單片機選用Intel公司的AT89C51,在Proteus仿真軟件中用匯編語言編寫。

        1 虛擬串口驅動程序

        虛擬串口驅動程序是一個標準的Win32驅動程序模型(WDM)的設備驅動程序,它面向串口用戶程序,為用戶提供標準而完整的串口設備接口。該驅動程序的系統(tǒng)I/O調(diào)用接口以及讀寫控制完全仿造標準的串口驅動程序制作,所以從用戶角度看,虛擬串口的使用和普通串口沒有任何區(qū)別。

        虛擬串口的應用類型有很多,基于串口教學實驗的需要,這里只介紹其中一種——互聯(lián)型虛擬串口?;ヂ?lián)型虛擬串口是將兩個虛擬串口的數(shù)據(jù)通道連接起來。其效果相當于用串口回環(huán)線將兩個物理串口連接起來。除了將串口數(shù)據(jù)線TX和RX交叉連接以外,互聯(lián)型虛擬串口程序還將RTS、CTS、DTR、STR等控制線也進行互連,如圖1所示。

        圖1 互聯(lián)型虛擬串口模擬的串口回環(huán)線

        這些連接都是軟件意義上的,并沒有實際物理線相聯(lián)。這根使用軟件來模擬的串口回環(huán)線,實際上是使用線程通信完成的,其原理圖如圖2所示。由該圖可知,兩個虛擬串口連接以后,任何串口發(fā)送的數(shù)據(jù)將會被另外一個虛擬串口所接收。

        圖2 互聯(lián)型虛擬串口原理

        虛擬串口驅動程序有很多,常用的有VSPD、VSPM和SUDT SerialNull 等。而VSPD以其操作簡單,容易上手等特點倍受青睞。VSPD全稱為Virtual Serial Port Driver XP,是Eltima軟件公司的一款產(chǎn)品。它能成對地添加虛擬串口,最多可虛擬256個串口。VSPD虛擬串口對的操作界面如圖3所示。

        圖3 VSPD虛擬串口對

        VSPD可以和Proteus結合,添加的一對虛擬串口被設定為通過非MODEM(三線制)串口連接在一起,就像兩個真實的物理串口一樣,從而實現(xiàn)在一臺PC機上模擬兩個軟件的串口通信。

        2 VSPD串口實驗

        2.1 實驗內(nèi)容及要求

        建立單片機與PC機之間的串口通信,單片機電路如圖4所示。要求單片機的4個開關控制4盞LED燈,當開關合上時,相應的燈亮,同時將信息發(fā)送給PC機,如“P1.x is on. Lx lights.”,其中x取0~3,分別與SW1~4對應;PC機接收到信息后顯示,同時向單片機發(fā)送字符(0-9,A-F),并通過單片機控制數(shù)碼管顯示相應的數(shù)字。PC機串口編程采用VC++6.0,單片機采用89C51匯編語言編程實現(xiàn)。串口通信格式為:1 200 bit/s波特率,8位數(shù)據(jù),無校驗,1個停止位。

        圖4中,SCMR為虛擬接收端口,用來顯示單片機接收到的數(shù)據(jù);SCMT為虛擬發(fā)送端口,用來顯示單片機發(fā)送的內(nèi)容。P1為串口物理接口模型COMPIM,用來與外部進行RS-232串口通信。在仿真實驗時,必須在相應的“Edit Component”對話框中設置與實驗一致的串口通信參數(shù)。其中COMPIM的設置界面如圖5所示。

        圖4 串口實驗下位機電路

        圖5 串口通信參數(shù)設置界面

        2.2 單片機編程

        為了使例程具有一般性,單片機采用通用的89C51,在Proteus上運行實現(xiàn)[10-12]。89C51的時鐘頻率取11.059 2 MHz,單片機選用串口方式1,定時器方式2,SMOD=1。由波特率公式:

        波特率=2SMOD/32×T1溢出率,T1溢出率=時鐘頻率/[12×(256-TH1初值)]

        可以求得T1的溢出率為1200/(2/32)=19200,從而算得定時初值為

        256-11.0592×106/(19200×12)=208=0D0H

        單片機的主程序如下:

        MOV SP, #60H

        MOV SCON, #50H ;串口方式1,允許接收

        MOV TMOD, #20H ;定時器1為方式2

        ORL PCON, #80H ; SMOD=1

        MOV TH1, #0D0H ;波特率為1200

        MOV TL1, #0D0H

        SETB TR1

        MOV DPTR, #CHSE ;發(fā)送’Hello, world!’

        LP1: CLR A

        MOVC A, @A+DPTR

        CJNE A, #’’, SE1 ;判是否到發(fā)送結束位

        LJMP LP2

        SE1: LCALL SEND ;發(fā)送子程序

        LCALL DELAY ;延時子程序

        INC DPTR

        LJMP LP1

        LP2: MOV DPTR,#TABLE ;初始化顯示‘5’

        MOV A, #05H

        MOVC A, @A+DPTR

        MOV P0, A

        CLR A

        CLR DPTR

        LP: JNB P1.0, L1 ;檢測按鍵,如果P1.0按下轉L1

        JNB P1.1, L2

        JNB P1.2, L3

        JNB P1.3, L4

        JNB RI, LP ;等待接收1個字符

        CLR RI

        MOV A, SBUF ;接收到的字符送A

        LCALL DELAY

        MOV RDATA, A

        LCALL SEND

        LCALL DELAY

        MOV DPTR, #TABLE

        LCALL CHANGE ;ASCII碼轉16進制數(shù)子程序

        MOV A, RDATA

        LCALL DISP ;顯示子程序

        LJMP LP

        程序中,SEND為發(fā)送子程序,DELAY為延時子程序,CHANGE為數(shù)制轉換子程序,完成ASCII碼到十六進制的轉換,Lx(x為1,2,3,4)為開關操作程序,即實現(xiàn)按下開關,相應的指示性語句發(fā)送到PC機的功能。CHSE地址存放的是初始字符串“Hello, world!”,TABLE地址存放的是7段碼值。由于篇幅所限,具體代碼從略。

        2.3 PC機編程

        Win32中基于VC++6.0的常用串口通信程序一般可以用兩種方法實現(xiàn)[13-14]:①利用MSComm ActiveX串行通信控件;②使用Windows API通信函數(shù)。本實驗中采用MSComm ActiveX控件進行編程。MSComm提供了兩種處理通信問題的方法:①事件驅動法,當串口上發(fā)生某一事件時,使用MSComm控件的OnComm事件可以捕獲并處理這些事件;②查詢法,每當應用程序執(zhí)行完某一串行口操作后,將不斷檢查MSCommEvent屬性以檢查執(zhí)行結果或者檢查某一事件是否發(fā)生。本實驗中采用第一種方法,在串口接收緩沖區(qū)中有字符時接收。

        實驗中MSComm控件涉及的幾個重要屬性如表1所示。

        表1 實驗中MSComm的幾個屬性

        根據(jù)表1的控件屬性設置好正確的串口通信參數(shù)配置、數(shù)據(jù)獲取方式和通信響應類型等,通過Output發(fā)送數(shù)據(jù),由Input在OnComm函數(shù)中接收數(shù)據(jù)。圖6為VC++6.0實現(xiàn)的串口通信實驗程序流程框圖。

        圖6 串口實驗PC機程序流程

        2.4 實驗運行結果

        首先打開VSPD增加一對虛擬串口對,如COM1和COM2;接著運行C++程序,設置好串口號為COM2,波特率為1 200,8位數(shù)據(jù)位,1位停止位和無奇偶校驗之后,打開串口;然后運行Proteus軟件,對串口物理接口,虛擬接收/發(fā)送端口設置對應的通信參數(shù),串口號選為COM1,點擊Proteus左下方的運行鍵。最后的結果如圖7所示。

        程序通信后,首先由單片機向PC機發(fā)送字符串"Hello world!";當按下P1.x時,單片機就向PC機發(fā)送"P1.x is on. Lx lights."(x為0到3中的一個整數(shù)),同時相應的LED就會點亮。由單片機向PC機發(fā)送過程中,PC機和虛擬發(fā)送端口同時顯示發(fā)送的內(nèi)容。當PC機向單片機發(fā)送字符A時,虛擬接收端口和數(shù)碼管就會顯示"A"。由此,實驗任務得到實現(xiàn)。

        (a) PC端串口通信界面

        虛擬端口發(fā)送顯示

        虛擬端口接收顯示數(shù)碼管顯示

        (b) 單片機端顯示界面

        圖7 串口通信實驗仿真結果

        3 結 語

        本實驗利用虛擬串口驅動程序VSPD和虛擬仿真軟件Proteus實現(xiàn)了串口通信功能,具有實驗現(xiàn)象直觀、軟件調(diào)試方便的特點。在調(diào)試階段不受時間地點和器材的限制,從而減少硬件的使用,給開發(fā)和調(diào)試帶來了很大的靈活性,能取得事半功倍之效,提高學生的研究能力和學習興趣。

        盡管本實驗中的單片機采用目前單片機教學中主流的MCS-51系列單片機,但本文方法也適用于各類單片機、微控制器的串口通信開發(fā)與調(diào)試,程序的編寫也可采用C語言以簡化開發(fā)過程[15]。同樣,PC機端串口程序也可采用不同的語言編寫,例如,當用VB或是其他語言實現(xiàn)串口通信程序時,仍可移植本實驗設計思路。因此,本實驗的實現(xiàn)方案可以根據(jù)教學實際進行靈活配置,將教學重點放在對串口通信的理解上,以取得良好的教學效果。

        本文給出了虛擬串口通信實驗的框架結構和基本實現(xiàn)方法,在實際教學中可以在此基礎上增加諸如修改通信參數(shù)、進行大數(shù)據(jù)量傳輸?shù)葘嶒炓螅詽M足不同的教學要求。

        猜你喜歡
        單片機實驗
        記一次有趣的實驗
        微型實驗里看“燃燒”
        基于單片機的SPWM控制逆變器的設計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        做個怪怪長實驗
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機之間的串行通信及應用
        電子制作(2018年12期)2018-08-01 00:48:04
        基于單片機的平衡控制系統(tǒng)設計
        電子制作(2017年19期)2017-02-02 07:08:27
        NO與NO2相互轉化實驗的改進
        實踐十號上的19項實驗
        太空探索(2016年5期)2016-07-12 15:17:55
        女邻居的大乳中文字幕| 日本乱熟人妻中文字幕乱码69| 在线视频观看国产色网| 人人妻人人爽人人澡人人| 一级二级中文字幕在线视频| 人妻少妇精品视频一区二区三区 | 久久中文字幕日韩精品| 我也色自拍俺也色自拍| 日本在线视频www色| 国产农村乱子伦精品视频| 亚洲人成人99网站| 中国黄色偷拍视频二区| 亚洲av一二三区成人影片| 国产啪精品视频网站| 久热re在线视频精品免费| 日本一区二区三区综合视频| 午夜亚洲av日韩av无码大全| 国产裸体歌舞一区二区| 久99久精品免费视频热77| 激情都市亚洲一区二区| 青娱乐极品视觉盛宴国产视频| 大地资源网最新在线播放| 亚洲青涩在线不卡av| 少妇被粗大进猛进出处故事| 熟女体下毛毛黑森林| 国产精品网站夜色| 一区二区激情偷拍老牛视频av| 无码国产精品一区二区av| 台湾佬中文网站| 国产欧美精品区一区二区三区| 国产一区二区三区免费精品| 精品黄色一区二区三区| 无码少妇丰满熟妇一区二区 | 91精品国产色综合久久| 久久国内精品自在自线图片| 亚洲成a∨人片在线观看无码| 亚洲最大不卡av网站| 久久精品国产亚洲av麻豆图片| 亚洲av无码成人yellow| 国产成版人性视频免费版| 伦伦影院午夜理论片|