色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

電腦的RS-232接口如何才能與單片機實現串口通信

Wildesbeast ? 來源:單片機教程網 ? 作者:單片機教程網 ? 2020-10-06 18:08 ? 次閱讀

單片機的串行口是非常有用的,通過他我們可以把單片機系統的數據傳回電腦處理或者接受電腦傳過來的數據而進行相應的動作,下面我就給大家介紹上一下電腦的RS-232接口與單片機串行通信程序設計方法。

RS-232簡介:

在串行通訊時,要求通訊雙方都采用一個標準接口,使不同的設備可以方便地連接起來進行通訊.RS-232-C接口(又稱EIA RS-232-C)是目前最常用的一種串行通訊接口。 (“RS-232-C”中的“-C”只不過表示RS-232的版本,所以與“RS-232”簡稱是一樣的)它是在1970年由美國電子工業協會(EIA)聯合貝爾系統,調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準”該標準規定采用一個25個腳的DB-25連接器,對連接器的每個引腳的信號內容加以規定,還對各種信號的電平加以規定。后來IBM的PC機將RS232簡化成了DB-9連接器,從而成為事實標準。而工業控制的RS-232口一般只使用RXD,TXD,GND三條線。

下面,讓我們使用S51增強型單片機實驗板來開發一個簡單的串口通信實驗程序,這是一個串口通信綜合實驗,需要全套餐客戶的相關配件配合才能完成。通過該實驗程序,我們可以檢測實驗板串口的狀態,接收計算機發送來的數據,然后再發送回計算機,如果程序中發送和接收窗中顯示的字符相同,則說明實驗板的串口是良好的,能夠正常收發數據,另外單片機接收計算機的控制指令,根據控制指令來控制實驗板上的繼電器動作。

RS-232接口與單片機串行通信程序設計的界面

圖 1

注:當前按鍵:“K”,按鍵的ASC碼:“75”,按鍵的16進制碼:“4BH”

S51增強型單片機實驗板與電腦串口實現RS232通信運行效果圖

注:按壓PC鍵盤的按鍵“K”單片機將串口接收到按鍵實時顯示在液晶模塊上(鎖定了大小鍵)。

1、液晶模塊第一行顯示“PS2-KEY: K ”, 表示接收到PS2鍵盤的按鍵:“K”

2、液晶模塊第二行顯示“HEX:4Bh ASC:75 ”,表示K的HEX碼為“4BH”,ASC碼為:“75”

注:按壓PC鍵盤的按鍵“2”單片機將串口接收到按鍵實時顯示在液晶模塊上

1、液晶模塊第二行顯示“HEX:32h ASC:50 ”,表示K的HEX碼為“32H”,ASC碼為:“50”

2、液晶模塊第一行顯示“PS2-KEY: 2 ”, 表示接收到PS2鍵盤的按鍵:“2”

從上面兩幅圖中可以看到,我們實現主要目標如下:

1、在計算機上,VB6.0編寫的通信測試程序檢測的鍵盤操作,將我們的按壓PS2鍵盤(PC鍵盤)按鍵顯示在數據發送窗中,顯示按鍵當前按鍵、按鍵的ASC碼、按鍵的16進制碼。同時將鍵值通過電腦的RS-232串口發送到S51單片機實驗板上,實驗板上的AT89S51單片機接收到數據后,以二進制方式顯示在實驗板的8位高亮度LED上,然后把接收到的數據重新發送回電腦的RS-232串口,電腦接收到后顯示在程序的接收數據窗中。

2、單片機檢測識別計算機發送過來的鍵盤鍵值,將按鍵值以二進制形式顯示在P1口的8位高亮度LED上,同時,將當前按鍵、按鍵的HEX碼、ASC碼實時顯示在1602液晶模塊上面。

3、單片機接收計算機對單片機的控制指令,當計算機發送“繼電器ON指令”時,則單片機驅動實驗板上的繼電器吸合;相反,如果計算機發送“繼電器OFF指令”時,單片機驅動繼電器釋放,我們可以學習掌握計算機智能控制的原理,只要掌握了這種方法,我們要在電腦上輕輕點擊鼠標就可以控制家里的電氣開關了就不難了(操作方法,點擊軟件的“繼電器”按鈕,實驗板的繼電器吸合,再次點擊按鈕,繼電器釋放)。

4、單片機接收到數據后,發出一時短聲提示。同時將數據重新發送回電腦串口,供電腦程序接收顯示,電腦軟件接收到單片機發送過來的數據后,顯示在軟件的接收數據窗中。

【RS-232接口與單片機串行通信程序設計】

該系統程序由單片機通信程序和電腦通信程序構成。在微機測控系統中,一般稱計算機為上位機、而前端采集控制的單片機系統稱為下位機。上位機主要負責所有測控數據的綜合管理與下位機的調度控制,而下位機由單片機構成前端的測控系統,進行原始數據的采集及設備的控制,下位機受上位機的管理控制。

一、單片機程序開發

51單片機有一個全雙工的串行通信口,非常適合與電腦進行通信,51單片機的串口開發在各種教科書上都有詳細的介紹,我們這里不在重復,大家可以參考一下書籍。單片機程序功能主要如下:初始化串口、打開串口中斷、接收電腦發送的數據、在1602液晶模塊上顯示數據、將數據發送回電腦RS-232串口、接收繼電器控制命令、控制繼電器動作等。

單片機通信參考程序如下:

ORG 0000H

AJMP START ;轉到初始化程序

ORG 0023H

AJMP PGUART ;轉到串行中斷服務子程序

START: MOV SP,#60H ;堆棧指針初始化

MOV P0,#0FFH ;P0端口初始化

MOV P1,#0FFH ;P1端口初始化

MOV P2,#0FFH ;P2端口初始化

MOV P3,#0FFH ;P3端口初始化

MOV TMOD,#20H ;定時器T1工作于模式2,自動重裝載

MOV TH1,#0FDH ;TH1初值為“0FDH”,9600bps

MOV TL1,#0FDH ;TL1初值為“0FDH”,9600bps

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

SETB TR1 ;啟動定時器T1

SETB ES ;允許串行口中斷

SETB EA ;開總中斷

CLR UABIT

;----------------------RS-232接口與單片機串行通信程序設計-------------------------------

MAIN: 。。.。。. ;主程序處理其他任務,等待串口中斷

AJMP MAIN

PGUART: 。。.。。. ;串口中斷服務子程序,接收處理數據

RETI

END

二、RS-232串行通信測試軟件開發

計算機RS-232串行通信測試軟件采用VB6.0開發,VisualBasic 6.0(簡稱VB6.0)以其簡單易學,

VB6.0為可視化編程開發軟件,開發程序簡單易學,VB程序開發主要分為兩步:第一步、使用VB控件設計出軟件界面,第二步、給各種控件編寫相應的執行程序代碼,代碼編寫完成后可以運行查看結果了。

VB6提供了多種控件,其中MSCOMM.OCX是用于串行通信的控件,我們可將該控件添加到工具箱(Toolbox)內,這樣就可以利用該控件進行串行通信程序的設計了。

下面介紹Mscomm控件的主要屬性和方法:

1) CommPort:設置或返回串行端口號,VB6的取值范圍為1~16,表示打開或返回通信端口號COM1~COM16

2) Setting:設置或返回串行端口的波特率、奇偶校驗位、數據位數、停止位。如:Mscomm1.Setting=“9600,N,8,1”

3) PortOpen:打開或關閉串行端口,格式為:Mscomm1.PortOpen=『True/False』

4) InBufferSize:設置或返回接收緩沖區的大小,缺省為1024字節

5) InBufferCount:返回接收緩沖區內的等待讀取的字節個數,可通過設置該屬性為0來清除接收緩沖區

6) RThreshold:該屬性為一閥值,當接收緩沖區內字節個數達到或超過該值后就產生OnComm事件

7) InputLen:設置或返回接收緩沖區內用Input讀入的個數。若取0,則Input將讀取整個緩沖區的所有內容

8) Input:該屬性表示從接收緩沖區InputLen個字符

9) OutBufferSize:設置或返回發送緩沖區大小,缺省為512字節

10) OutBufferCounter:返回發送緩沖區內等待發送的字符數,可用來清空緩沖區

11) Output:向發送緩沖區傳送一字符串,即向串口發送數據

第一步:開發程序界面

打開VB6.0 -》 新建“標準 EXE”建立一個新的工程。在工程窗口Form1中添加我們要使用的各種按鈕和控件,其中一個圖標如電話一樣的控件就是MSCOMM串行通信控件了,該控件在界面設計時候可見,在程序運行時候不可見。最后,放置好了各種控件后,程序的界面界面就出來了,是不是很簡單呀!如下圖4所示:

RS-232串口通信測試軟件界面開發

圖 4

第二步:VB軟件編寫

當軟件的界面設計完成后,我們就可以給程序添加代碼了,在程序中實現的主要功能如下:RS-232端口初始化、檢測PC鍵盤按壓的按鍵、發送按鍵編碼、在數據發送窗顯示當前按鍵編碼、在接收數據窗中接收顯示單片機發送來的數據,檢測繼電器控制按鈕的操作,發送繼電器控制命令。。。如下圖5所示:

RS-232串口通信測試軟件程序代碼編寫

圖 5

【串行通信實驗操作】

完成了單片機通信程序及PC上我VB程序開發后,我們編譯工程,得到單片機芯片燒寫的HEX格式目標文件rs232test.hex和串口測試程序可以執行文件RS232test.exe,然后我們就可以拿出實驗板,馬上進行串口通信實驗了,檢測一下我們的實際通信效果。

1、使用ISP編程器將目標文件rs232test.hex燒寫到AT89S51單片機中

2、如前面的所示:我們將燒寫好了通信程序的AT89S51芯片鎖緊到S51單片機實驗板上,然后把1602字符型液晶模塊插到實驗板的1602接口上,用RS232串口通信電纜和USB電纜將實驗板和電腦連接好,按壓實驗板的電源開關,開啟電源,此時實驗板上的電源指示燈亮起來,實驗板準備就緒,隨時可以接收電腦發送的數據了。

3、雙擊我們編寫的串口測試程序RS232test.exe,啟動RS-232串行通信測試軟件,在軟件上設置好和實驗板連接的通信端口,然后點擊“PC發送數據發送窗”,即可激活輸入窗口,然后我們按壓電腦鍵盤上的按鍵,按壓PS2鍵盤的按鍵將會被顯示在軟件中,同時發送到單片機上通過1602液晶模塊進行顯示,當接收到正確數據時候,實驗板上的蜂鳴器也會發出短促的聲音,使你按壓鍵盤的感覺從聲音上體現出來。從單片機發送回來的數據被軟件接收后,會還原顯示在發送數據窗中,如果我們在電腦上按壓的鍵盤上的按鍵,在軟件的發送窗、接收窗及實驗板上1602液晶模塊上顯示的按鍵都相同,則說明我們電腦的RS-232串口良好,單片機的串口也是良好的,通信正常。然后,我們可以點擊軟件中的“繼電器”按鈕,實驗板上的單片機接收到電腦的控制指令后,就會控制繼電器產生相應的開關動作,實現電腦軟件對實驗板上繼電器的控制。

通過實驗加深對51單片機串口的認識:

下面我們通過這套串口測試程序來做個額外實驗。理論上,當我們按壓鍵盤上的按鍵,所有按鍵都會發送到單片機,然后再返回計算機上的,在串口測試軟件上的PC發送數據窗和接收數據窗中顯示的字符數目、字符應該是完全相同的,如上面圖1中顯示。但是,當我們連續快速按壓PC鍵盤(注意:連續速度要足夠快哦,才能看到實驗現象)時,會發現接收數據窗中有時候會漏掉字符,累積下來,接收窗中的字符就會比發送窗中的字符少了。

發生這種現象的原因是什么 ?!

其實這是由于計算機發送過來的數據太快,而單片機的串口中斷一次只能接收處理一個數據,前一個數據還沒有處理完,后面又有數據發送過來,單片機來不及處理漏掉了。這是由51單片機的串口特性決定的,AT89S51單片機的串口只有一個字節的發送和接收緩沖區SBUF,也就是說每次只能發送或接收一個字節數據,如果在接收的數據沒有及時處理完,而又有新的數據進來,會造成數據丟失,不像計算機中VB6的MSCOMM串行通信控件,默認的接收緩沖區為1024字節,而默認的發送緩沖區也有512字節,而且還可以改變緩沖區大小,計算機有了收發數據緩沖區,通信當中就不容易出現緩沖區溢出而通信錯誤的現象。

在測控系統中,如果出現這種錯誤的話則有可能系統失控,數據出錯,誤報警等。當然,我們在通信中也可以加入校驗機制來檢查錯誤,但這種現象也使系統穩定性降低,出現莫名其妙的故障,而且這種屬于軟件故障,我們往往不容易想到,會走彎路。為了減少這種問題的出現,在這里站長提醒大家,在開發的單片機串口中斷服務子程序中,要盡量加快數據處理速度,在接收完成數據后,要及時打開串口中斷,以便接收新的數據,而其他占用時間的運算程序盡量不要在串口中斷里面處理,這是每一個單片機開發人員值得注意的問題,希望大家能夠從我們這個實驗中得到啟發,開發出更完美的程序來,少走彎路。

好了,這個實驗到此結束了,希望大家通過對這個軟件的學習,掌握單片機實時溫度監控的開發、串口通信程序的開發及計算機串口實時控制開發原理及PC監控軟件的開發,為開發其他功能更加完善的單片機綜合應用系統打好基礎。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44561

    瀏覽量

    635584
  • RS-232
    +關注

    關注

    0

    文章

    388

    瀏覽量

    49937
  • 串口通信
    +關注

    關注

    34

    文章

    1626

    瀏覽量

    55543
收藏 人收藏

    評論

    相關推薦

    RS 232串口通信在PC單片機通信中的應用

    在絕大多數PC的標準配置中,都有一個到多個RS 232串口,因為RS 232
    發表于 01-19 10:09 ?6961次閱讀
    <b class='flag-5'>RS</b> <b class='flag-5'>232</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>在PC<b class='flag-5'>機</b>與<b class='flag-5'>單片機</b><b class='flag-5'>通信</b>中的應用

    單片機RS232接口無法與電腦通信

    如圖,所用芯片為MAX232ESE,MCU型號為STC12C5。已經事先通過CH340芯片向單片機燒寫好測試程序,在電腦串口調試助手中能正常接收數據。拔出MicroUSB線后換USB-
    發表于 08-29 23:10

    串口通信發展史 RS-232有哪些優點

    ProLINK 則是基于 Profile 上的。目前,RS-232 是 PC 通信工業中應用最廣泛的一種串行接口,后面會詳細介紹一下 RS-2
    發表于 10-16 10:01

    基于單片機的CAN與RS-232轉換器設計

    本文完成了基于單片機控制的CAN 與RS-232 轉換器的研究與設計,設計了AT89C51單片機RS-232 接口和CAN 模塊的控制,解
    發表于 08-31 11:45 ?62次下載

    AT89S52與RS-232接口電路

    AT89S52與RS-232接口電路 圖5 AT89S52與RS-232接口電路 單片機采用AT89S52
    發表于 03-07 09:37 ?3049次閱讀
    AT89S52與<b class='flag-5'>RS-232</b>的<b class='flag-5'>接口</b>電路

    RS-232 接口,RS-232 接口是什么意思

    RS-232 接口,RS-232 接口是什么意思 電纜長度限制 RS-232的最初標準建議將電纜長度限制在50 ft以內,對于≤20 00
    發表于 03-09 10:57 ?6.2w次閱讀

    基于單片機串口RS232+485)通信各種程序集合【C語言】

    基于單片機串口RS232+485)通信各種程序集合 【C語言】
    發表于 12-31 10:28 ?109次下載

    基于單片機RS232串口通信各種程序集合 【C語言】

    基于單片機RS232串口通信各種程序集合 【C語言】
    發表于 01-06 11:08 ?75次下載

    基于RS-232的數字溫度測量計的設計與實現

    本文是基于RS-232的數字溫度測量計的設計與實現,采用單片機STC89C52作為發送機和接受的主控芯片,通過溫度傳感器進行溫度采集,lcd1602顯示,采用MAX
    發表于 12-18 10:03 ?2965次閱讀
    基于<b class='flag-5'>RS-232</b>的數字溫度測量計的設計與<b class='flag-5'>實現</b>

    電腦通過RS232接口單片機連接的詳細資料概述

    電腦通過RS232接口單片機連接的常用實現
    發表于 06-06 08:00 ?30次下載
    <b class='flag-5'>電腦</b>通過<b class='flag-5'>RS232</b><b class='flag-5'>接口</b>與<b class='flag-5'>單片機</b>連接的詳細資料概述

    如何實現PC與51系列單片機通信

    單片機和PC的串行通信一般采用RS-232RS-422或B3-485總線標準接口,也有采用非
    發表于 04-30 10:00 ?6270次閱讀
    如何<b class='flag-5'>實現</b>PC<b class='flag-5'>機</b>與51系列<b class='flag-5'>單片機</b>的<b class='flag-5'>通信</b>

    基于C8051F040單片機的CAN總線和RS-232串口通信設計

    目前工業設備之間的通信很多采用RS-232接口,但由于RS-232通信距離短、接口易損,而且只能
    發表于 06-04 14:49 ?4251次閱讀
    基于C8051F040<b class='flag-5'>單片機</b>的CAN總線和<b class='flag-5'>RS-232</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>設計

    RS-232接口實現串口數據傳輸的點對點通信設計

    單片機在控制本地的外圍期間時,信息的交互是通過8位并行數據總線進行的,但是在較大規模的現代控制系統中,單片機還需要控制遠端的設備,可以利用單片機的串行通信模塊,在學習了
    發表于 03-03 15:19 ?3766次閱讀
    <b class='flag-5'>RS-232</b><b class='flag-5'>接口實現</b><b class='flag-5'>串口</b>數據傳輸的點對點<b class='flag-5'>通信</b>設計

    基于RS232串口實現PIC單片機下位與QT上位通信

    基于RS232串口實現PIC單片機下位與QT上位通信
    發表于 11-16 12:21 ?21次下載
    基于<b class='flag-5'>RS232</b><b class='flag-5'>串口實現</b>PIC<b class='flag-5'>單片機</b>下位<b class='flag-5'>機</b>與QT上位<b class='flag-5'>機</b><b class='flag-5'>通信</b>

    單片機串口通信的接收與發送程序

    等功能。本文將詳細介紹單片機串口通信的接收與發送程序。 二、串口通信基礎 串口
    的頭像 發表于 12-19 13:57 ?6600次閱讀
    主站蜘蛛池模板: 女教师の诱惑| 欧美一夜爽爽爽爽爽爽| 久久操韩国自偷拍| 免费国产成人手机在线观看 | chinese情侣自拍啪hd| 成人精品视频99在线观看免费| 国产女人91精品嗷嗷嗷嗷| 久久视频在线视频观看精品15| 欧洲精品不卡1卡2卡三卡四卡| 亚洲国产精品无码2019| 99在线国产视频| 国产亚洲精品久久精品6| 男人插曲女人下生免费大全| 午夜男女爽爽羞羞影院在线观看| 中文字幕久久久| 国产精品久久久久影院色| 毛片一区二区三区| 亚洲AV无码一区二区色情蜜芽| 99久在线国内在线播放免费观看| 国产亚洲精品久久久999密臂| 免费在线视频一区| 亚洲精品中文字幕一二三四区| bl被教练啪到哭H玉势| 黄色888| 热re99久久精品国99热| 影音先锋影院中文无码| 国产成在线观看免费视频| 免费看黄色小说| 亚洲视频无码高清在线| 国产99久久久国产精品免费看| 老版香蕉版下载| 亚洲精品无夜久久久久久久久| 被cao的奶水直喷高H| 久久视频这有精品63在线国产| 午夜福利32集云播| 白人大战34厘米黑人BD| 久久综合色一综合色88中文| 亚州精品视频| 第一次玩老妇真实经历| 奶好大下面流了好多水水| 亚洲区视频|