新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 89C51單片機I/O 口模擬串行通信的實現方法

        89C51單片機I/O 口模擬串行通信的實現方法

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

        程序清單見下,系統要求單片機晶振為6M。程序清單如下:
        TXD EQU P1.0
        RXD EQU P1.1 ;定義89C51 P1.0 為發送端,P1.1 為接收端
        ORG 0000H
        AJMP MAIN
        ORG 0100H
        MAIN: MOV A, #30H
        MOV R5,#N
        SETB RXD ;P1.0 置高
        TX: LCALL INPUT ;調用發送子程序,將寄存器A 中內容發給PC 機

        SETB TXD ;P1.1 置高
        MOV R0,#40H
        RX: LCALL OUTPUT ;調用接收子程序,將接收的N 個數據存放在以40H開始的地址中
        MOV @R0,A
        INC R0
        DJNZ R5, RX ;N 個數據接收結束,則等待,否則轉RX 繼續接收
        AJMP $
        ;**************延時833μs 子程序*****
        DEL833: MOV R7 ,#205
        MS11: DJNZ R7,MS11
        RET
        ; **********************************
        ;******** 89C51發送數據給PC 機子程序****
        INPUT: CLR C
        MOV TXD,C ;發送起始位
        LCALL DEL833 ;延時
        MOV R3,#8
        REP: RRC A
        MOV TXD ,C
        LCALL DEL833
        DJNZ R3,REP ;發送8 位數據
        SETB C ;發送停止位
        MOV TXD,C
        LCALL DEL833
        RET
        ;********從PC 機接收數據子程序********
        OUTPUT: JB RXD, $ ; 判斷是否有起始位出現
        LCALL DEL833
        MOV R3,#8
        OUT: MOV C ,RXD
        RRC A
        LCALL DEL833
        DJNZ R3,OUT ; 接收8 位數據
        JNB RXD ,$ ; 判斷是否有停止位出現
        RET
        本文介紹的用 89C51 單片機I/O 口模擬實現串行通信的方法,已成功地應用在某電壓數據采集系統中,實踐證明能可靠地傳送和接收數據。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 轮台县| 道孚县| 浮梁县| 正宁县| 罗江县| 日照市| 额济纳旗| 香港 | 商都县| 宝丰县| 淳化县| 盱眙县| 井研县| 大埔区| 红桥区| 隆化县| 托克托县| 鸡东县| 南京市| 南靖县| 平舆县| 万安县| 阿尔山市| 克什克腾旗| 侯马市| 沙田区| 赤城县| 望谟县| 崇阳县| 浦城县| 富蕴县| 罗平县| 灵璧县| 定日县| 垦利县| 疏勒县| 吉木萨尔县| 安乡县| 温泉县| 柞水县| 霍林郭勒市|