北工大微机原理 实验六 8251串行通信实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六串行通信实验8251

一、实验目的:

1、进一步了解串行通信的基本原理

2、掌握串行接口芯片8251的工作原理和编程方法

二、实验内容:

1、按图连接线路。

2、从键盘输入一个字符,将其ASCLL码加1后发送出去,再接收回来在屏幕上加1 后的字符显示出来,实现自发自收。

三、实验设备:

8251芯片 8253芯片试验箱若干导线

四、实验原理:

根据引脚号按下图在试验箱上正确连接好电路

五.程序代码:

data segment

ioport equ 5400h-280h

io8253a equ ioport+280h

io8253b equ ioport+283h

io8251a equ ioport+2b8h

io8251b equ ioport+2b9h

ap1 db 'you can play a key on the keybord!',0dh,0ah,24h

ap2 dd ap1

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov dx,io8253b ;设置8253计数器0工作方式

mov al,16h

out dx,al

mov dx,io8253a

mov al,52 ;给8253计数器0送初值

out dx,al

mov dx,io8251b ;初始化8251

xor al,al

mov cx,03 ;向8251控制端口送3个0

delay: call out

loop delay

mov al,40h ;向8251控制端口送40H,使其复位

call out

mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out

mov al,27h ;向8251送控制字允许其发送和接收

call out

lds dx,ap2 ;显示提示信息

mov ah,09

int 21h

wait: mov dx,io8251b

in al,dx

test al,01 ;发送是否准备好

jz wait

mov ah,01 ;是,从键盘上读一字符

int 21h

cmp al,27 ;若为ESC,结束

jz exit

mov dx,io8251a

inc al

out dx,al ;发送

mov cx,0F00h

kd1: loop kd1 ;延时

next:mov dx,io8251b

in al,dx

test al,02 ;检查接收是否准备好

jz next ;没有,等待

mov dx,io8251a

in al,dx ;准备好,接收

mov dl,al

mov ah,02 ;将接收到的字符显示在屏幕上 int 21h

jmp wait

exit: mov ah,4ch ;退出

int 21h

out proc near ;向外发送一字节的子程序 out dx,al

push cx

mov cx,0F00h

kd2: loop kd2 ;延时

pop cx

ret

out endp

code ends

end start

六、实验结果:

将程序进行汇编,连接,运行后,从键盘输入字母或者数字,屏幕上显示这个字母或数字和这个数字的ASCⅡ加一后的字母或数字。此实验实现自发自收的功能,采用查询的方式,当从键盘输入字母或数字时芯片将读取其ASCⅡ码,判别是否为27h,如果不是,则将ASC Ⅱ码加一后再转换成字符输出到屏幕上显示。实现了输入输出的转换功能。

七.试验截图:

相关文档
最新文档