新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機的雙機通信實驗設計

        單片機的雙機通信實驗設計

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

        一、目的
        1、掌握的原理和編程方法。
        2、學習8251A的使用方法
        二、內容
        1、原理圖:

        本文引用地址:http://www.104case.com/article/171944.htm




        2.實驗內容
        如圖所示,TXC和RXC分別為8251A的發送時鐘和接收時鐘。它由片外8253A的OUT1提供。本實驗要求以查詢方式進行收發。要完成本實驗,需2臺DVCC系列實驗系統。其中一臺為串行發送,一臺為串行接收,在1號機上裝串行發送程序,在2號機上裝串行接收程序,則在1號機上鍵入的字符顯示在2號機的顯示器上。

        由于本系統監控中未對8253A、8251A進行初始化,因此本實驗開始必須對8253、8251進行初始化,然后才可以直接進入對串行口狀態的查詢。
        三、程序
        系統晶振是 6.0 MHz

        ORG 07F0H
        START:
        MOV SP,#60H
        mov A,#02H
        MOV R0,#79H
        MOV @R0,A
        INC R0
        MOV A,#10H
        MOV @R0,A
        INC R0
        MOV A,#01H
        MOV @R0,A
        INC R0
        MOV A,#03H
        MOV @R0,A
        INC R0
        MOV A,#00H
        MOV @R0,A
        INC R0
        MOV A,#08H
        MOV @R0,A
        MOV A,#7EH
        MOV DPTR,#1FFFH
        MOVX @DPTR,A
        MOV 87H,#80H
        MOV SCON,#50H ;串口 方式 1
        MOV TMOD,#20H ;T1 方式 1
        MOV TL1,#0F3H ;波特率 9600 的常數
        MOV TH1,#0F3H
        SETB TR1 ;開中斷
        CLR ET1
        CLR ES
        WAIT:
        JBC RI,DIS_REC ;是否接收到數據
        LCALL DISP ;
        SJMP WAIT ;
        DIS_REC:
        MOV A,SBUF ;讀串口接收到的數據
        LCALL DATAKEY ;顯示輸入的數字(0-F)
        DB 79H,7EH
        AJMP WAIT

        DATAKEY: MOV R4,A
        MOV DPTR,#1FFFH
        MOVX A,@DPTR
        MOV R1,A
        MOV A,R4
        MOV @R1,A
        CLR A
        POP 83H
        POP 82H
        MOVC A,@A+DPTR
        INC DPTR
        CJNE A,01H,DATAKEY2
        DEC R1
        CLR A
        MOVC A,@A+DPTR
        DATAKEY1: PUSH 82H
        PUSH 83H
        MOV DPTR,#1FFFH
        MOVX @DPTR,A
        POP 83H
        POP 82H
        INC DPTR
        PUSH 82H
        PUSH 83H
        RET
        DATAKEY2: DEC R1
        MOV A,R1
        SJMP DATAKEY1

        DISP: SETB 0D4H
        MOV R1,#7EH
        MOV R2,#20H
        MOV R3,#00H
        DISP1:
        MOV DPTR,#DATACO
        MOV A,@R1
        MOVC A,@A+DPTR
        MOV DPTR,#0FF22H
        MOVX @DPTR,A
        MOV DPTR,#0FF21H
        MOV A,R2
        MOVX @DPTR,A
        LCALL DELAY
        DEC R1
        CLR C
        MOV A,R2
        RRC A
        MOV R2,A
        JNZ DISP1
        CLR 0D4H
        RET
        DELAY: MOV R7,#03H
        DELAY0: MOV R6,#0FFH
        DELAY1: DJNZ R6,DELAY1
        DJNZ R7,DELAY0
        RET
        DATAC DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
        DB 88H,83H,0C6H,0A1H,86H,8EH,0BFH,0CH,89H,0DEH
        END
        四、 實驗步驟
        1、準備2臺DVCC系列實驗儀,確定1號為發送,2號為接收。
        2、將1號RXD插孔和2號的TXD插孔相連。
        3、將1號TXD插孔和2號的RXD插孔相連。
        4、將1號GND插孔和2號的GND插孔相連(共地)。
        5、將8253CS插孔和Y4插孔相連,8251CS和Y5插孔相連。
        6、將SIO區D0—D7和BUS2區 XD0—XD7相連。
        7、先運行2號機,在2號機提示符“P.....”狀態下,輸入0D00后,再按EXEC鍵進入等待接收狀態,顯示器顯示“8251—2”。
        8、再運行1號機,在1號機處于提示符“P.....”狀態下,輸入0E00H后,按EXEC鍵,進入串行發送狀態。顯示器顯示“8251—1”。
        9、在1號機的鍵盤上輸入數字鍵,應在2號機顯示器上顯示對應數字值。
        10、輸入數字鍵后再按MON鍵,1號機顯示“8251 good”。如果不輸入數字鍵直接按MON鍵,則顯示“Err”,如果不能正常進行,也顯示“Err”。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 娄底市| 阿拉尔市| 贵港市| 和平县| 平邑县| 顺义区| 霍城县| 济源市| 凭祥市| 衡东县| 漯河市| 九龙县| 青铜峡市| 巴林右旗| 新平| 甘肃省| 陇川县| 汪清县| 泰和县| 河津市| 昭觉县| 容城县| 东平县| 达孜县| 恭城| 菏泽市| 贵阳市| 台东县| 扎赉特旗| 龙山县| 济阳县| 秦安县| 阿瓦提县| 泌阳县| 辽阳县| 长治县| 孝义市| 东至县| 江源县| 临洮县| 孝感市|