8251A串行通信实验.docx

上传人:b****8 文档编号:10751783 上传时间:2023-02-22 格式:DOCX 页数:10 大小:422.37KB
下载 相关 举报
8251A串行通信实验.docx_第1页
第1页 / 共10页
8251A串行通信实验.docx_第2页
第2页 / 共10页
8251A串行通信实验.docx_第3页
第3页 / 共10页
8251A串行通信实验.docx_第4页
第4页 / 共10页
8251A串行通信实验.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

8251A串行通信实验.docx

《8251A串行通信实验.docx》由会员分享,可在线阅读,更多相关《8251A串行通信实验.docx(10页珍藏版)》请在冰豆网上搜索。

8251A串行通信实验.docx

8251A串行通信实验

8251A串行通信实验

8251A串行通信实验

xxxxxxxxxxx

一、实验目的

1.理解一部串行通信的基本原理;

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

二、实验内容

1.异步串行自发自收实验

(1)使用8251A发送固定二进制数再接收回来,将收到的数加1后显示在LED上。

 

(2) 通信协议:

异步,波特率为4800bps,波特因子为16,8位数据位,1位停止位,无奇偶校验; 

(3)采用查询方式实现。

2. RS-232通信实验:

 

(1)PC机与试验箱通过串行进行通信,PC机向实验箱发送字符,实验箱上的8521A接收到字符后再原样发回PC机; 

(2)通讯协议自定; 

(3)采用中断方式实现。

三、实验环境 

1.硬件:

GX-8000实验箱,USB电缆,自锁

 

(3)在对8251A进行初始化操作前必须确保其可靠复位,方法是:

向8251A控制口连续写入三个0,然后再写入复位命令字40H。

注意:

对8251A的控制口进行一次写操作,需要16个时钟信号的写恢复时间。

参考代码如下:

 

 

其中,DELAY用于实现延时,其定义如下:

 

 

(4)在程序设计过程中,可以使用单步调试,通过观察程序运行过程中寄存器值的变化调试程序错误,也可以进一步理解8251A 的控制原理。

     

(5)程序如下:

 

DATA SEGMENT   ;数据段  

DATA ENDS 

CODE SEGMENT    ;代码段

 ASSUME CS:

CODE,DS:

DATA 

START:

   MOV DX,28BH   ;初始化8253  

MOV AL,00010110B  

OUT DX,AL  

MOV DX,288H 

 MOV AX,13  

OUT DX,AL 

MOV AL,80H     ;初始化8255 

MOV DX,283H 

OUT DX,AL  

MOV DX,299H ;8251A的控制口地址 

MOV AL,0  

 OUT DX,AL  ;想8251A的控制口写0 

CALL DELAY ;延时  

MOV AL,0  

 OUT DX,AL ;想8251A的控制口写0 

 CALL DELAY  

MOV AL,0 

 OUT DX,AL ;向8251A的控制口写0  

CALL DELAY 

 MOV AL,40H 写复位命令  

OUT DX,AL  

CALL DELAY  

MOV DX,299H  ;初始化8251 

MOV AL,01001110B 

OUT DX,AL  

CALL DELAY  

MOV DX,299H 

MOV AL,00010111B 

OUT DX,AL  

CALL DELAY 

MOV DI,3000H    ;指针初值 

MOV CX,000AH    ;接收数据个数  

A1:

   MOV DX,299H  

 IN AL,DX  ;TxRDY=1?

   

TEST AL,01H   

JZ A1 

MOV DX,298H  

IN AL,DX  ;8251数据口读入数据  

MOV DX,CX 

MOV CL,9    ;发送数 

MOV AL,CL 

OUT DX,AL  

MOV DX,299H 

A2:

     IN AL,DX  ;RxRDY=1?

   

TEST AL,02H  

 JZ A2     

MOV DX,298H  

 IN AL,DX  

 INC CL   

MOV DX,280H   

MOV AL,CL   

OUT DX,AL  

JMP A1 

DELAY  PROC  

MOV CX,02H        

LOOP $        

RET DELAY  

ENDP       

CODE ENDS     

END START 

2. RS-232通信试验 

(1)8251A要实现与PC通信,需要通过RS-232模块将TTL电平信号转换为RS-232电平信号。

部分参考连线如图所示。

 

(2)本实验要求8251A采用中断方式与CPU交换数据,因而需要将8251A的RxRDY(第十四脚)信号连接到8259A的中断请求输入引脚上。

当8251A接收到PC串口发来的字符时,RxRDY有效,向CPU发出中断请求。

 

(3) PC端对串口的发送和接收操作可使用超级中断实现,其操作方法如下。

 

a.依次点击“开始”   “所有程序”  “附件” “通讯” “超级终端”,弹出如图3.21所示窗口,在新建链接对话框中输入链接的名称,点击“确定”。

 

b.在“连接到”对话框选择连接时使用的端口“COM1”,点击“确定”,如图3.22所示。

 

c.设置COM1端口属性,如图3.23所示。

 

d.参考图3.20连线,下载并运行通信程序,可以看到如图3.24所示的运行结果,键盘输入的字符经串口发出去后又成功地接收回来,并显示在了窗口中。

   

(4) 由于程序需要用中断方式实现收发两种功能,建议编程调试时由易到难,先在上一个实验的基础上实现查询方式下的串口收发,然后再修改为中断方式。

 

(5) 程序如下所示:

 

STACKS SEGMENT STACK              ;堆栈段 

 STA DW  128 DUP(?

) 

STACKS ENDS  

DATA SEGMENT                     ;数据段  

DATA ENDS 

CODE SEGMENT             ;代码段 

ASSUME CS:

CODE,DS:

DATA,SS:

STACKS    

START:

       MOV AX,DATA       

MOV DS,AX       

MOV AX,STACKS       

MOV SS,AX 

      CLI            ;关中断 

      MOV AL,00010011B 中断请求高有效,一片8259A,ICW1       

MOV DX,290H       

OUT DX,AL 

      MOV AL,18H      ;ICW2       

MOV DX,291H  

      OUT DX,AL 

      MOV AL,0DH      ;ICW4      

 MOV DX,291H       

OUT DX,AL

MOV DX,291H 

      IN AL,DX       ;初始化主片,读OCW1,中断屏蔽控制字,奇地址       

MOV AL,11111110B       

MOV DX,291H 

OUT DX,AL       ;OCW1       

MOV AX,0       

MOV ES,AX       

MOV DI,00011000B       

SHL DI,1       

SHL DI,1             

MOV BX,SEG ISR  ;设置中断向量 

    MOV DS,AX   

      MOV AX,OFFSET ISR 

      MOV ES:

[DI],AX       

MOV ES:

[DI+2],BX 

      MOV DX,28BH   ;初始化8253      

MOV AL,00010110B      

OUT DX,AL      

MOV DX,288H      

MOV AX,13   

OUT DX,AL 

 MOV DX,299H ;8251A的控制口地址  

MOV AL,0   

OUT DX,AL               ;想8251A的控制口写0 

CALL DELAY ;延时  MOV AL,0  

 OUT DX,AL ;想8251A的控制口写0 

 CALL DELAY  

MOV AL,0  

OUT DX,AL ;向8251A的控制口写0  

CALL DELAY 

 MOV AL,40H ;写复位命令  

OUT DX,AL  

CALL DELAY  

MOV DX,299H  ;初始化8251 

MOV AL,01001110B 

OUT DX,AL  

CALL DELAY  

MOV DX,299H 

MOV AL,00010111B 

OUT DX,AL 

 CALL DELAY 

MOV DI,3000H    ;指针初值 

 CX,000AH    ;接收数据个数 

MOV DX,298H  

IN AL,DX  ;8251数据口读入数据 

MOV DX,CX 

MOV CL,123    ;发送数 

MOV AL,CL 

OUT DX,AL 

STI 

A2:

   JMP A2 

DELAY  PROC         

MOV CX,02H        

LOOP $        

RET 

DELAY  ENDP      

 ISR PROC        ;中断服务子程序           

 PUSH AX      

PUSH DX 

  STI            ;开中断       

MOV DX,298H       

IN AL,DX       

MOV CL,AL 

A1:

     MOV DX,299H     

IN AL,DX  ;TxRDY=1?

    

 TEST AL,01H    

 JZ A1     

MOV DX,298H     

MOV AL,CL     

OUT DX,AL 

      CLI       ;关中断 

      MOV DX,290H   ;写OCW2,送中断结束命令EOI      

MOV AL,20H      

 OUT DX,AL      

 POP DX       

POP AX 

  IRET                ;中断返回      

 ISR ENDP       

CODE ENDS  

END START

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1