李健
摘要:介紹了利用幾種常見軟件實現(xiàn)的51單片機與PC機串口通信的仿真過程,可以在單片機課程的理論教學(xué)中加以應(yīng)用,具有效率高、成本低等優(yōu)點,有助于教師的教學(xué)和學(xué)生對知識的掌握和應(yīng)用。
關(guān)鍵詞:51單片機;PC機;串口通信;仿真
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)32-0038-02
在實際應(yīng)用中,單片機與PC機間的通信非常普遍[1]。這時單片機主要完成現(xiàn)場數(shù)據(jù)采集和設(shè)備監(jiān)控[2],PC機接收單片機發(fā)來的數(shù)據(jù)進行分析、處理,并對結(jié)果再次發(fā)送單片機進行現(xiàn)場控制等。筆者在單片機課程的理論教學(xué)中,由于課堂上受到條件的約束,采用了純軟件的方法對單片機串口通信進行仿真和演示,便于實現(xiàn)和讓學(xué)生理解。下面通過一個實例來介紹51單片機與PC機之間串口通信的仿真與實現(xiàn)過程。
1 所需軟件
使用到的軟件有:VSPD、Proteus、Keil和串口助手[3]。VSPD是一個虛擬串口小軟件,可以虛擬出一對串行接口用于仿真;Proteus是一款流行的單片機仿真軟件,用于建立串口通信仿真電路;Keil是用于編寫單片機程序的軟件;串口助手是用于上位機即PC機的軟件,用來向單片機發(fā)送數(shù)據(jù),或者接收單片機發(fā)送來的數(shù)據(jù)并進行顯示。
2 設(shè)計與仿真過程
預(yù)期實現(xiàn)的功能為:PC機通過串口助手向單片機發(fā)送一個字節(jié)數(shù)據(jù),單片機接收到后將數(shù)據(jù)的二進制形式通過八個數(shù)碼管的亮滅顯示出來,接收的“1”對應(yīng)的燈亮,接收的“0”對應(yīng)的燈滅。同時單片機將接收的數(shù)據(jù)發(fā)回給PC機,PC機將數(shù)據(jù)在串口助手中再顯示出來。
2.1 利用Proteus設(shè)計仿真電路
如圖1所示,在Proteus軟件中選用AT89C51單片機、COMPIM、電阻和發(fā)光二極管組成仿真電路。COMPIM在仿真中相當于PC機上配置的RS232標準串行接口,為D型九針插座[4]。在實際中,單片機和PC機之間需要通過MAX232芯片進行電平轉(zhuǎn)換才能連接,但在仿真圖中可以直接將兩者的RXD(接收數(shù)據(jù))和TXD(發(fā)送數(shù)據(jù))連接起來進行串行通信。本次仿真中,單片機程序中設(shè)置的串口波特率為9600,虛擬串口軟件中建立連接的串口號為COM1和COM5,所以需要修改COMPIM的屬性,將兩處的串口號都修改為COM1,波特率修改為9600。
2.2 利用Keil編寫單片機程序
完成電路的設(shè)計后,再利用Keil軟件根據(jù)電路和預(yù)期的功能編寫單片機程序,主要利用單片機的串口中斷方法實現(xiàn),具體代碼見圖2所示。
2.3 利用VSPD建立虛擬串口連接
如圖3所示,利用虛擬串口軟件VSPD新建一對串口連接,選擇的是串口號是COM1和COM5。在圖2的單片機程序中設(shè)置了串口的波特率為9600,圖1的COMPIM也修改了屬性,一旦Proteus軟件和串口助手軟件(串口號為COM5)運行后兩串口號后面的參數(shù)都會顯示出來,見圖3的左側(cè)Virtual ports一欄。
2.4 利用串口助手進行調(diào)試和驗證
如圖4所示,將Proteus軟件運行起來,和串口助手并列,進行仿真對比,檢驗串口通信是否實現(xiàn)。串口助手上方為接收緩沖區(qū),中間為發(fā)送緩沖區(qū),下方為參數(shù)設(shè)置等。先將下方的串口號改為COM5,波特率改為9600。然后點擊左下角的“打開串口”按鈕(打開后顯示“關(guān)閉串口”,圖中為已打開狀態(tài)),在發(fā)送緩沖區(qū)填入“86”(當前為HEX模式,即發(fā)送十六進制數(shù)據(jù)86)后,點擊“發(fā)送數(shù)據(jù)”按鈕。在圖4 Proteus軟件里根據(jù)八個發(fā)光二極管亮滅情況可以看出顯示的正好是86,說明單片機接收數(shù)據(jù)正確,同時很快串口助手的接收緩沖區(qū)也顯示了86,說明單片機也將數(shù)據(jù)發(fā)回給PC機,實現(xiàn)了串口通信功能。
3 結(jié)論
本文利用幾種常見的軟件實現(xiàn)了51單片機與PC機之間的串口通信仿真,具有效率高,成本低等優(yōu)點,實踐證明可以在單片機課程的理論教學(xué)中加以應(yīng)用,有助于學(xué)生對該處知識點的理解與掌握。但在實踐課程中需要注意要求學(xué)生對完整電路的設(shè)計和制作,達到學(xué)以致用的目的。
參考文獻:
[1] 李全利. 單片機原理及接口技術(shù)[M]. 北京:高等教育出版社,2009:182-186.
[2] 曾維鵬,蔡莉莎,林爾敏. 基于VC++及Proteus的上、下位機串口通信仿真技術(shù)[J]. 鎮(zhèn)江高專學(xué)報,2013.10:74-76.
[3] 趙曉東,張麗梅. 51單片機串口通信仿真的純軟件實現(xiàn)[J]. 科技信息,2011.12:245.
[4] 張毅剛,趙光權(quán),張京超. 單片機原理及應(yīng)用——C51編程+Proteus仿真(第二版)[M]. 北京:高等教育出版社, 2016:254-259.
【通聯(lián)編輯:王力】