微机接口实验报告
实验名称8251A串行通信
实验人学号09070012 姓名王蒙
同组人学号 09070019 姓名刘畅
实验日期 2011.12.2 报告完成日期 2011.12.3
成绩指导教师签字
年月日
一、实验题目及名称
8251A串行通信实验
二、实验目的
1.理解异步串行通信的基本原理
2.掌握可编程串行接口芯片8251A的工作原理和编程方法
三、实验内容
1.异步串行自环实验:
a)从键盘输入字符,使用8251A发送出去再接收回来,将接受的字符显示在微机屏幕上;
b)通信协议:异步,波特率为4800bps,波特率因子为16,8位数据位,1位停止位,无奇偶校验;
c)按“ESC”键退出程序;
2.双机串行通信实验:
a)一个试验箱发送主机键盘输入的字符,另一个实验箱接收,并将接收的字符显示在接收主机的屏幕上;
b)两组合作完成;
c)通讯协议自定;
四、实验环境
1.硬件:TPC-H实验箱,导线;
2.软件:未来汇编开发环境;
五、实验一
异步串行自环实验
1.硬件连接图:
8253:
CS: 280H---287H GATE0:+5V
CLK0:1Mhz---20---CLK OUT0: 9---T xC---25---RxC 8251:
CS: 2A0H---11---2A7H WR:10---IOW
RD:13---IOR C\D:12---A0
RESET---21---reset CTS---17---GND
VCC---26---+5V GND---4---GND
RxD---3---T xD---19 D0---27
D1---28 D2---1 D3---2 D4---5
D5---6 D6---7 D7---8
2.关键程序段:
DATA SEGMENT
DATA ENDS
STACK SEGMENT STACK
DW 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV DX,5403H
MOV AL,00010101B
MOV DX,5400H MOV AL,13H OUT DX,AL
MOV DX,5421H MOV AL,0H OUT DX,AL CALL DELAY
MOV AL,0H OUT DX,AL CALL DELAY
MOV AL,0H OUT DX,AL CALL DELAY
MOV AL,40H OUT DX,AL CALL DELAY
MOV AL,4EH OUT DX,AL CALL DELAY
MOV AL,15H OUT DX,AL CALL DELAY
TRANS:
MOV DX,5421H IN AL,DX TEST AL,01H JZ TRANS
MOV AH,01H INT 21H CMP AL,1BH JZ EXIT MOV DX,5420H OUT DX,AL
MOV DX,5421H
IN AL,DX
TEST AL,02H
JZ RECEIVE
MOV DX,5420H
IN AL,DX
MOV DL,AL
MOV AH,02H
INT 21H
JMP TRANS
EXIT:
MOV AH,4CH
INT 21H
DELAY PROC
MOV CX,02H
L:
LOOP L
ENDP
CODE ENDS
END START
六、实验二
双机串行通信实验
1.硬件连接图
跟上次试验大致一样除了
TxD---RxD
RxD---TxD
GND---GND
2.关键程序段
发送部分:
MOV AL,11H;写入控制字,只可发送
OUT DX,AL
CALL DELAY
TRANS:
MOV DX,5421H;读8251A状态字
IN AL,DX
TEST AL,01H;TxRDY=1?
JZ TRANS
MOV AH,01H;键盘接受,屏幕显示
INT 21H
CMP AL,1BH;是否为ESC
JZ EXIT
MOV DX,5420H;向8251A写入AL中的字符
OUT DX,AL
JMP TRANS
接收部分:
MOV AL,14H;写入控制字,只可接受
OUT DX,AL
CALL DELAY
RECEIVE:
MOV DX,5421H;读8251A状态字
IN AL,DX
TESL AL,02H;RxRDY=1?
JZ RECEIVE
MOV DX,5420H;从8251A读字符
IN AL,DX
MOV DL,AL;屏幕显示AL中所读字符
MOV AH,02H
INT 21H
JMP RECEIVE
七、实验体会
通过本次实验我们更加熟悉了8253与8251之间的联系,这次实验非常顺利,几乎没有遇到什么困难,就是在第二个实验的硬件连接时,没有注意到两个机箱相连的GND端口必须接到地,这让我们困扰了很久,因为没有接地,使得电压不稳,输出在屏幕上都是光标闪烁,在最后老师的提醒下终于完成了实验。