⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t16550-3.asm

📁 A1.asm 显示程序实验 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT USE16 MES1 DB
💻 ASM
字号:
;T16550-3.asm
;16550双机通信发送机程序

;***************根据CHECK配置信息修改下列符号值*******************
IOY0         EQU   9C00H          ;片选IOY0对应的端口始地址
;*****************************************************************
MY16550_0    EQU   IOY0+00H*4     ;16550数据缓冲寄存器端口地址
MY16550_1    EQU   IOY0+01H*4     ;16550中断允许寄存器端口地址
MY16550_3    EQU   IOY0+03H*4     ;16550线路控制寄存器端口地址
MY16550_4    EQU   IOY0+04H*4     ;16550 MODEM控制寄存器端口地址
MY16550_5    EQU   IOY0+05H*4     ;16550线路状态寄存器端口地址

STACK1 SEGMENT STACK
        DW 256 DUP(?)
STACK1 ENDS

DATA  SEGMENT
AA    DB  2FH
DATA  ENDS

CODE SEGMENT
        ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA
       MOV DS,AX

       MOV DX,MY16550_3           ;设置16550线路控制寄存器
       MOV AL,80H                 ;准备设置波特率除数寄存器
       OUT DX,AL
       CALL DALLY

       MOV DX,MY16550_0           ;设置除数寄存器低字节0CH  
       MOV AL,0CH                 ;000C对应9600 bit/s
       OUT DX,AL            
       CALL DALLY
                            
       MOV DX,MY16550_1           ;设置除数寄存器高字节00H
       MOV AL,00H
       OUT DX,AL
       CALL DALLY
       
       MOV DX,MY16550_3           ;设置线路控制寄存器,初始化数据格式
       MOV AL,1BH                 ;偶校验,1位停止位,字符宽度为8
       OUT DX,AL
       CALL DALLY

       MOV DX,MY16550_4           ;设置MODEM控制寄存器 
       MOV AL,03H
       OUT DX,AL
       CALL DALLY
        
       MOV DX,MY16550_1           ;设置中断允许寄存器
       MOV AL,00H                 ;中断不打开
       OUT DX,AL
       CALL DALLY

A1:    INC AA
       MOV DX,MY16550_0
       MOV AL,AA
       OUT DX,AL              
       CALL DALLY
       CMP AL,39H
       JNZ A1

QUIT:  MOV AX,4C00H               ;返回到DOS
       INT 21H

DALLY PROC NEAR                   ;软件延时子程序
       PUSH CX
       PUSH AX
       MOV CX,0300H
D1:    MOV AX,3000H
D2:    DEC AX
       JNZ D2
       LOOP D1
       POP AX
       POP CX
       RET
DALLY ENDP

CODE ENDS
     END START

⌨️ 快捷键说明

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