预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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电缆,自锁紧导线; 2.软件:icode集成开发环境。 四、实验提示 1.异步串行自发自收实验 (1)8251A是一个28管脚的双列直插芯片,插在实验箱的40脚自锁紧通用插座上,实验中需用导线手动连接包括电源、地、数据总线、时钟信号、发送线、接收线在内的所需要的所有线路。参考连线如图3.18所示。 (2)参考程序流程图如图3.19所示: (3)在对8251A进行初始化操作前必须确保其可靠复位,方法是:向8251A控制口连续写入三个0,然后再写入复位命令字40H。注意:对8251A的控制口进行一次写操作,需要16个时钟信号的写恢复时间。参考代码如下: 其中,DELAY用于实现延时,其定义如下: (4)在程序设计过程中,可以使用单步调试,通过观察程序运行过程中寄存器值的变化调试程序错误,也可以进一步理解8251A的控制原理。 (5)程序如下: DATASEGMENT;数据段 DATAENDS CODESEGMENT;代码段 ASSUMECS:CODE,DS:DATA START:MOVDX,28BH;初始化8253 MOVAL,00010110B OUTDX,AL MOVDX,288H MOVAX,13 OUTDX,AL MOVAL,80H;初始化8255 MOVDX,283H OUTDX,AL MOVDX,299H;8251A的控制口地址 MOVAL,0 OUTDX,AL;想8251A的控制口写0 CALLDELAY;延时 MOVAL,0 OUTDX,AL;想8251A的控制口写0 CALLDELAY MOVAL,0 OUTDX,AL;向8251A的控制口写0 CALLDELAY MOVAL,40H写复位命令 OUTDX,AL CALLDELAY MOVDX,299H;初始化8251 MOVAL,01001110B OUTDX,AL CALLDELAY MOVDX,299H MOVAL,00010111B OUTDX,AL CALLDELAY MOVDI,3000H;指针初值 MOVCX,000AH;接收数据个数 A1:MOVDX,299H INAL,DX;TxRDY=1? TESTAL,01H JZA1 MOVDX,298H INAL,DX;8251数据口读入数据 MOVDX,CX MOVCL,9;发送数 MOVAL,CL OUTDX,AL MOVDX,299H A2:INAL,DX;RxRDY=1? TESTAL,02H JZA2 MOVDX,298H INAL,DX INCCL MOVDX,280H MOVAL,CL OUTDX,AL JMPA1 DELAYPROC MOVCX,02H LOOP$ RETDELAY ENDP CODEENDS ENDSTART 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)由于程序需要用中断方式实现收发两种功能,建议编程调试时由易到难,先在上一个实验的基础上实现查询方式下的串口收发,然后再