📄 串行接口电路.txt
字号:
ctr53 equ 307h
chan2 equ 306h
ctr51 equ 309h
dat51 equ 308h
baud equ 1200
fact equ 16
dseg segment
way51 db 11011110b;2位停止位,奇校验,8个数据位,波特率因子16
work51 db 00110111b;异步,不做内部复位,请求发送,错误标志复位,正常工作,接收允许,数据终端准备好,发送允许
;状态d7数据装置ready,d6=0异步工作正常,d5FE,d4OE,d3PE,d2发送器空,d1接收器ready,d0发送器ready
cd53 db 10110110b
clk dd 1193182
disp db 'connect',10,13,'$'
dseg ends
cseg segment
assume cs:cseg,ds:dseg
start: mov ax,dseg
mov ds,ax
mov dx,ctr53
mov al,cd53
out dx,al
mov ax,word ptr clk
mov dx,word ptr clk+2
mov bx,baud
div bx
mov bx,fact
mov dx,0
div bx
mov dx,chan2
out dx,al
mov al,ah
out dx,al
MOV DX,ctr51;命令口地址
MOV AL,00H;空操作,向命令口送任意数
OUT DX,AL
MOV AL,40H;内部复位(使D6=1)
OUT DX,AL
NOP
MOV AL,way51;方式命令字
OUT DX,AL
NOP
MOV AL,work51
OUT DX,AL
NOP
MOV DX,OFFSET disp
MOV AH,9
INT 21H
MOV DX,ctr51
waitcn: in al,dx
and al,80h
jz waitcn
mov dx,dat51
in al,dx
waitkb: mov ah,0bh
int 21h
and al,al
jz rech
mov ah,8
int 21h
cmp al,27
jz pend
mov bl,al
mov dx,ctr51
waittec: in al,dx
and al,1
jz waittec
mov dx,dat51
mov al,bl
out dx,al
jmp waitkb
rech: mov dx,ctr51
waitrec: in al,dx
and al,2
jz waitkb
mov dx,dat51
in al,dx
mov ah,2
mov dl,al
int 21h
jmp waitkb
pend: mov ax,4c00h
int 21h
cseg ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -