1、实验参考例程(接收机) (A82513.ASM)M8251_DATA EQU 0600HM8251_CON EQU 0602HM8254_2 EQU 06C4HM8254_CON EQU 06C6HSSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AL, 0B6H ;初始化 8254MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, ALCLICALL INIT ;复位 82
2、51CALL DALLYMOV AL, 7EHMOV DX, M8251_CONOUT DX, AL CALL DALLYMOV AL, 34HOUT DX, AL CALL DALLYMOV AX, 0152H ;输出显示字符 RINT 10HMOV DI, 3000HMOV CX, 000AHA1: IN AL, DXAND AL, 02HJZ A1MOV DX, M8251_DATAIN AL, DXAND AL, 7FHMOV DI,ALINC DILOOP A1MOV AL, 00HMOV SI, 300AHMOV SI, ALMOV AH, 06HMOV BX, 3000HINT
3、10H ;输出显示接收到的数据STIA2: JMP A2INIT: MOV AL, 00H ;复位 8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY: PUSH CXMOV CX, 3000HA3: PUSH AXPOP AXLOOP A3POP CXRETCODE ENDSEND START实验参考程序(发送机) (A82514.ASM)M8251_DATA EQU 0600HM8251_CON EQU 0602HM
4、8254_2 EQU 06C4HM8254_CON EQU 06C6HSSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AL, 0B6H ;初始化 8254, 得到收发时钟MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, ALCALL INIT ;复位 8251CALL DALLYMOV AL, 7EHMOV DX, M8251_CONOUT DX, AL ;8251方式字
5、CALL DALLYMOV AL, 34HOUT DX, AL ;8251控制字CALL DALLYMOV DI, 3000HMOV CX, 000AHA1: MOV AL, DICALL SENDCALL DALLYINC DILOOP A1A2: JMP A2INIT: MOV AL, 00H ;复位 8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY: PUSH CXMOV CX, 3000HA4: PUSH AXPOP AXLOOP A4POP CXRETSEND: PUSH AX ;数据发送子程序PUSH DXMOV AL, 31HMOV DX, M8251_CONOUT DX, ALMOV DX, M8251_DATAOUT DX, ALMOV DX, M8251_CONA3: IN AL, DXAND AL, 01HJZ A3POP DXPOP AXRETCODE ENDSEND START