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

📄 8250.asm

📁 串口芯片8250发送接收的源代码(本源码在M6环境下调试成功
💻 ASM
字号:
;*******************************************
;程序功能:采用查询方式,实现串口自发自收功能及自检功能
;******************************************
CODE SEGMENT
ASSUME CS:CODE
START:    MOV AL,10000000B ;8250初始化,设DLAB=1
          MOV DX,3FBH
          OUT DX,AL
          MOV AX,30H
          MOV DX,3F8H
          OUT DX,AL       ;写入除数低字节
          MOV AL,AH
          MOV DX,3F9H
          OUT DX,AL       ;写入除数高字节
          MOV AL,00001010B ;7位数据,1位停止,奇校验
          MOV DX,3FBH
          OUT DX,AL        ;写入线路控制寄存器
          MOV AL,00001111B 
          MOV DX,3FCH       ;写入Modem寄存器
          OUT DX,AL
          MOV AL,0
          MOV DX,3F9H
          OUT DX,AL         ;写中断控制寄存器,屏蔽所有中断
WAIT_FOR: MOV DX,3FDH
          IN AL,DX
          TEST AL,00011110B ;出错否
          JNZ ERROR
          TEST AL,00000001B ;接收数据就绪否
          JNZ RECEIVE
          TEST AL,01000000B ;移位寄存器空否,不空,返回等待
          JZ WAIT_FOR
          MOV AH,1
          INT 21H           ;读键盘
          MOV DX,3F8H       ;发送数据
          OUT DX,AL
          JMP WAIT_FOR
RECEIVE:  MOV DX,3F8H
          IN AL,DX
          AND AL,01111111B  ;保留7位数据
          CMP AL,03H        ;是Ctrl-C?
          JNZ CHAR
          MOV AH,4CH        ;返回DOS  
          INT 21H
CHAR:     PUSH AX
          MOV DL,AL
          MOV AH,02H        ;显示接收字符
          INT 21H
          POP AX
          JMP WAIT_FOR
ERROR:    MOV DX,3FDH       ;出错则清除线路状态寄存器
          IN AL,DX
          MOV DL,'?'
          MOV AH,02H
          INT 21H
          JMP WAIT_FOR
CODE ENDS
END START 

⌨️ 快捷键说明

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