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