资源描述:
《串行通信8251.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、北京邮电大学实验报告课程名称:微机原理与接口技术实验名称:串行通信8251一.实验目的了解串行通讯的基本原理掌握串行接口芯片8251的工作原理和编程方法二.实验内容1.按下图所示连接好电路,其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连接在一起。1.编程:从键盘输入一个字符,将其ASCII码的值加1后发送出去,再接收回来在屏幕上显示,实现自发自收。2.连线:一.实验思路1.芯片8251(1)重要管脚的说明:Intel8251A是可编程的串行通信接口芯片,它的内部结构如下图所示:D7~D0为三态双
2、向数据线,将CS连接到实验台的I/O地址(本实验将其连接到Y7,因此数据端口地址为2B8H),则可以通过8251的数据端口实现串行通信。TxD为发送数据线,用作输出;RxD为接收数据线,用作输入。本实验将TxD和RxD连接起来,从而实现8251的自发自收。TX/RXCLK为8251的发送时钟和接收时钟,将其与8254的OUT0连接起来,则可以利用8254的计数器0的输出作为时钟信号。(2)方式命令字的确定Intel8251A有两种工作方式:串行同步通信和串行异步通信。本实验采用异步通信方式,其方式命令字格式如下:本实
3、验采用8位字符,波特因子为16,因此方式命令字为11001110。(3)工作命令字的确定Intel8251A的工作命令字的格式如下:本实验要实现自发自收,因此发送端和接收端都要允许,从而确定的命令字为00100111。(4)状态字的检查Intel8251A的状态字的格式如下:通过8251实现数据的收发时必须先确定发送器/接收器是否准备好,这可以通过读取控制端的状态字来确定:D1(RxRDY)表示接收器准备好,当RxRDY=1时,表示接收器已接收到了字符,可以让CPU将该字符读取走。D0(TxRDY)表示发送器准备好,
4、当TxRDY=1时,表示发送缓冲器已空,可以接收CPU送来的欲发送数据。上面已提到本实验中8251的数据端口地址为2B8H,则其控制端口地址为2B9H,编程中只要将读取到的状态字与01b(或10b)相与则可知道发送器(或接收器)是否准备好,从而进行下一步数据处理。1.芯片8254Intel8254可编程计数器具有3个独立的16位计数器通道,每个计数器都可以按照二进制或BCD码计数方式进行计数,每个通道都有六种工作方式。(1)工作方式的选择本实验中8254要实现的功能是给8251提供时钟信号,因此采用方式3较恰当。方式
5、3是对CLK信号进行分频,在写入方式3的控制字和计数初值后计数器开始计数,在计数过程中OUT断的输出是一半时间为高电平,一段时间为低电平的方波。(2)计数器初值计数初值=时钟频率/(波特率*波特率因子),由于本实验中的时钟频率是接1MHz,波特率选的是1200,而波特因子为16,则得到的计数器初值为52.(3)控制字的确定Intel8254的控制字格式如下:本实验采用计数器0进行计数,确定的控制字为:00110110。1.算法流程图一.源代码datasegmentport_8254equ280h;port_8251e
6、qu2b8h;ESCequ27hokdb'hi~','$',0dh,0ahdataendscodesegmentassumecs:code,ds:datamain:;初始化8254movdx,port_8254+3moval,00110110boutdx,almovdx,port_8254movax,52outdx,almoval,ahoutdx,al;初始化8251movdx,port_8251+1xoral,aloutdx,al;moval,40houtdx,al;nopmoval,11001110boutdx,
7、almoval,00100111boutdx,al;打印显示信息movdx,offsetokmovax,segokmovds,axmovah,9int21h;读取8251的状态字L1:movdx,port_8251+1inal,dxandal,01b;TxDRY为1?jzL1;从键盘接收字符movah,1int21h;判断是否为ESCcmpal,ESCjzover;将ASCII码加1后通过8251端口发送字符incalmovdx,port_8251outdx,al;读取8251的状态字L2:movdx,port_82
8、51+1inal,dxandal,10b;DxDRY为1?jzL2;从8251端口接收数据movdx,port_8251inal,dxmovdl,almovah,2int21hjmpL1over:movax,4C00Hint21hcodeendsendmain一.实验心得通过这次实验,熟悉和掌握了两个芯片——Intel8254可编程计数器和In