【正文】
39。 = 1 39。發(fā)送緩沖區(qū)空觸發(fā)發(fā)送事件 39。 = InputModeText 39。字節(jié)模式 39。設(shè)定 InputMode 以讀取二進位資料 = InputModeBinary disp_on = 1 port = 1 rate = 9600 data_t = 8 stop_t = 1End Sub——————————————————————————————————Private Sub Label3_Click()End Sub——————————————————————————————————Private Sub MSComm1_OnComm() Static t As Integer Dim receive_t As Integer Dim i As Integer Dim Buffer As Variant Dim Arr() As Byte Dim s As String Select Case Case EvReceive receive_t = 39。接收緩沖區(qū)的字節(jié)數(shù) 39。 往暫存區(qū)存二進位資料 Buffer = 39。 指定給位元組陣列以便處理 Arr = Buffer s = For i = 0 To receive_t 1 If Arr(i) = 32 And Arr(i) = 126 Then s = s amp。 Chr(Arr(i)) t = t + 1 End If Next i = amp。 s amp。 vbCrLf If t = 300 Then = t = 0 Exit Sub End If Case EvSend End SelectEnd Sub——————————————————————————————————Function ToChar(ByRef f() As Byte, ByVal s As String) ReDim f(0) Dim i As Long For i = 0 To Len(s) 1 ReDim Preserve f(i) f(i) = Asc(Mid(s, i + 1, 1)) Next i ReDim Preserve f(i) f(i) = 0End Functio6 串口通信結(jié)果及其分析圖61 VSPD設(shè)置串口圖62單片機向PC端發(fā)送 圖63 PC端接受單片機通信圖64 PC端向單片機發(fā)送數(shù)據(jù)圖65 單片機接收PC發(fā)送數(shù)據(jù) 先使用VSPD軟件將所涉及的VB程序與單片機的串口進行連接,在這里我設(shè)置的是將1口和3口進行連接,如圖61所示。如圖62所示,仿真開始,單片機向外發(fā)送字符“OH MY GOD”字符,接著PC端對單片機發(fā)送的字符進行接收,如圖63所示。接下來PC端向單片機端發(fā)送字符“OH MY GOD 01210093105”如圖64所示,最后我們在單片機的顯示框中能看到PC端輸入的字符,證明PC端與單片機之間的通信成功。另外當按下保存顯示數(shù)據(jù)按鈕時,會在指定位置生成一個名為“”的文件,也實現(xiàn)是課設(shè)要求的保存數(shù)據(jù)的要求。仿真過程中有些錯誤,我們可以看到在PC端的接收區(qū),除了單片機指定發(fā)送的字符外還有部分亂碼以及接收的位置不穩(wěn)定,亂碼雖然不多但仍需注意,不過鑒于水平有限目前還沒有具體的解決方法,希望以后能加以學習改進。 7 實物圖圖71基于學習單片機的實物調(diào)試8心得體會 本次專業(yè)綜合課程設(shè)計做的比以前的課設(shè)要更加復雜,任務(wù)量也比之前做過的課設(shè)要多。 本次課設(shè)要求我們做基于PC機Windows環(huán)境下數(shù)據(jù)通信、處理及存儲程序設(shè)計與實現(xiàn),既要設(shè)計出一款集數(shù)據(jù)發(fā)送、接收處理及存儲程序,又要將接收的數(shù)據(jù)以文件的形式存在硬盤上。通過對題目的分析我們決定采用RS232串口來實現(xiàn)PC端與單片機端的相互通信,要做到這一點,我們得先要設(shè)計一個類似于串口助手的軟件來模仿我們的PC端。為了達到這個目的,我們利用Visual Baasic ,而這一點恰恰對我這個VB不太熟悉的人來說十分困難,為了能設(shè)計出這個軟件,我查閱了書籍相關(guān)資料并在網(wǎng)上查找有關(guān)的代碼,遇到不會的會請教其他VB學的好的同學,還好有他們的幫助,我的課設(shè)才能順利完成。接下來便是在單片機端進行通信仿真,在這部分我采取了Proteus軟件仿真的方法,對單片機進行簡單的編譯,并配上用于顯示的部件,利用RS232串口與PC端設(shè)計出的軟件進行通信,在這部分需要注意的是要先用VSPD軟件進行串口連接,不然不能通信,一開始沒有注意到這一點調(diào)試了好久。在本次課程設(shè)計過程中我學到了許多之前沒怎么學習的內(nèi)容,加深了對課文內(nèi)容的理解,通過實踐做課程設(shè)計之后我們對Proteus和Visual Basic ,為我們以后使用這些軟件進行學習和工作打下了堅固的基礎(chǔ)。另外在遇到問題的時候,我們要學會查找資料,利用書籍和互聯(lián)網(wǎng)的便利幫助自己完成任務(wù),還要學會虛心請教同學 和老師,有些問題自己不會但別人能一語道破,為我們提供巨大的幫助,子曰:三人行,必有我?guī)熝?。良師益友是我們?nèi)松飞系木薮笾?。本次課程設(shè)計雖然完成了,但是還是有的地方有一些缺陷,還是有一些地方似懂非懂,所以在今后的日子里,還要繼續(xù)努力,繼續(xù)學習。參考文獻[1][2][M].[3]朱清慧. [4] ,[5]喬平安. VisualBasic [6]羅朝盛. Visual Basic 本科生課程設(shè)計成績評定表姓 名性 別男專業(yè)、班級課程設(shè)計題目:基于PC機Windows環(huán)境下數(shù)據(jù)通信、處理及存儲程序設(shè)計與實現(xiàn)課程設(shè)計答辯或質(zhì)疑記錄:成績評定依據(jù):最終評定成績(以優(yōu)、良、中、及格、不及格評定) 指導教師簽字: 年 月