rs8251.asm

来自「MCS-51单片机实验 39个实用实验和源码」· 汇编 代码 · 共 70 行

ASM
70
字号
;FOR    EAT598
;系统晶振是 11.0592 MHz
Z8251   EQU     0F202H  ;8251 状态/命令口地址
D8251   EQU     0F200H  ;8251 数据口地址
COM_MOD EQU     04EH    ;字符 8 位, 1 位起始位, 1 位停止位
                        ;异步 * 16
COM_COM EQU     25H     ;请求发送,发送允许,接收允许

        ORG     0000H
        AJMP    START
        ORG     0040H
START:
        MOV     SP,#60H
        LCALL   INIT8251        ;初始化8251

WAIT1:		
        MOV     DPTR,#Z8251     ;8251 状态寄存器(读)
        MOVX    A,@DPTR
        ANL     A,#02H
        JZ      WAIT1           ;判断是否有串行输入
        MOV     DPTR,#D8251
        MOVX    A,@DPTR         ;读接收到的字符
		MOV		B,A
        MOV     DPTR,#Z8251
WAIT3:  MOVX    A,@DPTR
        ANL     A,#01H
        JZ      WAIT3           ;判断发送允许
        MOV     A,B
        MOV     DPTR,#D8251
        MOVX    @DPTR,A         ;发送数据
        NOP
        MOV     DPTR,#Z8251
WAIT2:  MOVX    A,@DPTR
        ANL     A,#01H
        JZ      WAIT2           ;判断发送允许
        SJMP    WAIT1

INIT8251:                       ;8251 初始化子程序
        PUSH   	DPH              ;保存现场
        PUSH   	DPL
        PUSH   	ACC
        MOV 	DPTR,#Z8251        

        MOV 	A,#COM_MOD       ;置 8251 工作方式
        MOVX 	@DPTR,A
        NOP

        MOV 	A,#COM_COM       ;请求发送,发送允许,接收允许
        MOVX 	@DPTR,A
        NOP

        MOV 	A,#65H
        MOVX 	@DPTR,A
        NOP

        MOV    	A,#COM_MOD       ;置 8251 工作方式
        MOVX   	@DPTR,A
        NOP

        MOV    	A,#COM_COM       ;请求发送,发送允许,接收允许
        MOVX   	@DPTR,A
        NOP

        POP    	ACC              ;恢复现场
        POP    	DPL
        POP    	DPH
        RET

        END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?