8251可编程串行通讯实验
1、一、实验要求
编写程序,以实现实验机与PC机之间的串行通讯。
下图是实验的原理图:
2、二、实验目的
1.学习用8251实验串行通讯的编程方法。
2.进一步学习8088与PC机的通讯方法。
3、三、实验电路连线
cs53接200-207,out1分别接TXCLK和RXCLK,CLK1接1M的频率,GATE1接+5V;8251的CS51接208-20F,CLK接1M的频率,RXD接通信接口的RXI,TXD接通信接口的TDX,用九孔对九孔的串口线将通信接口的J14和PC机的串口连接起来。
4、四、实验说明
由8253通道1分频提供8251TXCLK和RXCLK所需的频率,用串口调试助手接收从8251发送的数据。
操作步骤:首先用串口线把PC机和实验箱连接起来,各实验连线连接完毕,打开程序,编译连接运行后,打开串口调试助手设置好串口,波特率设为1200,在发送区输入数据可在接收区显示出来。
5、注:串口调试助手的原理就是从发送区发送数据通过串口输出,接收区是接收从串口送来的数据并显示在接收区。
6、实验程序如下:
stack segment stack
stack ends
data segment
data ends
code segment
assume cs:code,ds:data,ss:stack
start: PUSH CS
POP DS
mov dx,203h ;设置8253计数1工作方式3
mov al,56h
out dx,al
mov dx,201h
mov al,52 ;给8253计数器1送初值
out dx,al
mov dx,209h ;初始化8251
xor al,al
mov cx,03 ;向8251控制端口送3个0
delay: call out1
loop delay
mov al,40h ;向8251控制端口送40H,使其复位
call out1
mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16
call out1
mov al,27h ;向8251送控制字允许其发送和接收
call out1
next: mov dx,209h
in al,dx
test al,02 ;检查接收是否准备好
jz next ;没有,等待
mov dx,208h
in al,dx ;准备好,接收
push ax
mov cx,40h
s51: loop s51 ;延时
waiti: mov dx,209h
in al,dx
test al,01 ;发送是否准备好
jz waiti
mov dx,208h
pop ax
out dx,al
jmp next
out1 proc near ;向外发送一字节的子程序
out dx,al
push cx
mov cx,400h
gg: loop gg ;延时
pop cx
ret
out1 endp
code ends
end start