• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      51單片機(jī)與PC機(jī)串口通信的仿真與實(shí)現(xiàn)

      2018-12-22 10:55李健
      電腦知識(shí)與技術(shù) 2018年32期
      關(guān)鍵詞:波特率PC機(jī)助手

      李健

      摘要:介紹了利用幾種常見(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)編輯:王力】

      猜你喜歡
      波特率PC機(jī)助手
      基于FPGA的異步串行通信波特率容錯(cuò)設(shè)計(jì)
      基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
      基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
      VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
      排除OLT設(shè)備登錄故障
      小助手
      靈感助手表彰大會(huì)(二)
      靈感助手表彰大會(huì)(一)
      C*Core芯片SCI串口波特率容限優(yōu)化
      計(jì)算機(jī)多設(shè)備接口波特率不匹配的研究
      白水县| 通州市| 木兰县| 宣城市| 吴川市| 萝北县| 芦溪县| 曲周县| 当雄县| 定襄县| 贵定县| 武鸣县| 卓尼县| 遂溪县| 平顺县| 涟源市| 仪陇县| 吉林市| 衡阳市| 黄石市| 内黄县| 邹城市| 明溪县| 襄汾县| 四子王旗| 梅州市| 福海县| 林西县| 尚志市| 牙克石市| 梁山县| 柳河县| 唐河县| 包头市| 普陀区| 水城县| 兴业县| 永康市| 左权县| 西峡县| 临沧市|