新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AT89C52單片機與VB串行通信的實現

        AT89C52單片機與VB串行通信的實現

        作者: 時間:2012-03-23 來源:網絡 收藏

        數據發送程序:
        Private Sub Command1_Click()
        Dim outbuf(1 To 6) As Byte
        Dim lstr1 As String
        Dim hstr2 As String
        Dim len1 As Integer
        Command1.Enabled = False
        len1 = Len(Hex(Val(Text2.Text)))
        ………
        If LR(1) = 1 Then
        outbuf(1) = 69 ;對應字符“E”
        Else
        outbuf(1) = 68 ;對應字符“D”
        End If
        outbuf(2) = 84 ;對應字符“T”
        outbuf(3) = LR(1)
        outbuf(4) = stoby(hstr2)
        outbuf(5) = stoby(lstr1)
        outbuf(6) = 13
        MScomm1.RThreshold = 5 * Val(Text2.Text)
        MScomm1.Output = outbuf
        End Sub

        數據接受程序:
        Private Sub MScomm1_OnComm()
        Select Case MScomm1.CommEvent
        Case comEvReceive
        Dim inbuf() As Byte, i%, buf$
        buf =
        inbuf = MScomm1.Input
        Rev_num = UBound(inbuf)
        ReDim lnum(0 To Rev_num) As Integer
        For i = 0 To Rev_num
        lnum(i) = inbuf(i)
        buf = buf + Str(inbuf(i)) +
        Next i
        Case comEvSend
        End Select
        End Sub

        由于MSComm控件數據接受設計為按字節方式,可接發的數值范圍為0~255。當上位機讀取數據個數超過255(1字節)時,為了能讓下位機正確接受,解決方法是通過編制的函數stoby將文本框Text2輸入的記錄個數(字符型)轉化成字節型,并分成兩個字節送給下位機。另外,系統中有關數據保存、數據圖表處理、打印等功能的在此不再贅述。

        5.結論

        2C總線器件的采用簡化了硬件電路設計,提高了可靠性。本系統已投入使用,經過實際應用表明,系統工作穩定、可靠。滿足系統要求,每到一分鐘就向 ATC256中寫入1條記錄(5個數據),ATC256可保存12小時的記錄,下位機需要讀取數據時,可根據下位機的讀取指令讀取任意條記錄。

        [參考文獻]
        [1]ATMEL 2-wires Serial EEPROMs AT24C128/256[DK].
        [2]何立民,高級教程[M],北京:北京航空航天大學出版社,1999年.
        [3]范逸之 陳立元,Visual Basic 與RS-232控制[M],北京:中國青年出版社,2002年.


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 远安县| 改则县| 新和县| 镇雄县| 辽阳市| 当阳市| 蒲江县| 精河县| 大英县| 长顺县| 昌图县| 汉阴县| 牟定县| 定日县| 淳安县| 孝义市| 金阳县| 怀宁县| SHOW| 尉氏县| 五台县| 乌审旗| 南漳县| 那曲县| 中阳县| 武穴市| 仁寿县| 湟中县| 尉犁县| 兴隆县| 启东市| 泰安市| 贞丰县| 恩平市| 定日县| 桂阳县| 齐齐哈尔市| 宾川县| 蒲城县| 资兴市| 大丰市|