程序控制输入输出.ppt
- 文档编号:2122475
- 上传时间:2022-10-27
- 格式:PPT
- 页数:30
- 大小:1,011.50KB
程序控制输入输出.ppt
《程序控制输入输出.ppt》由会员分享,可在线阅读,更多相关《程序控制输入输出.ppt(30页珍藏版)》请在冰豆网上搜索。
微型机原理与程序设计微型机原理与程序设计2.4.4串行通信接口串行通信接口8251AIntel8251A是通用同步/异步接收/发送器USART。
8251A具有双缓冲的发送/接收器,数据位支持58bit。
可内同步或外同步,能自动插入同步字符,可有一个或两个同步字符。
异步方式下波特率可达19.2K,同步可达64K。
可自动产生、检测和处理中止字符,产生1、1.5或2个位的停止位,并具有奇偶错、溢出错和帧错检测能力。
微型机原理与程序设计微型机原理与程序设计28251A功能描述功能描述
(1)功能结构)功能结构8251A的结构分成5个主要部分:
接收器、发送器、调制控制、读/写控制及系统数据总线缓冲器。
图2-4-298251A内部结构框图微型机原理与程序设计微型机原理与程序设计1)数据总线缓冲器)数据总线缓冲器数据总线缓冲器是三态双向8位缓冲器,它使825lA与系统数据总线连接起来。
它含有数据缓冲器和命令缓冲器。
2)接收器)接收器接收器的功能是接收在RxD脚上的串行数据并按规定的格式把它转换为并行数据,并存放在数据总线缓冲器中。
3)发送器)发送器在同步方式中,发送器在准备发送的数据前面先插入由初始化程序设定的一个或两个同步字符,在数据中,插入奇偶校验位。
然后,在发送时钟TxC的作用下,将数据一位一位地由TxD引脚发送出去。
在异步方式中,发送器先在串行数据字符前面加上起始位,并根据约定的要求加上校验位和停止位,然后在发送时钟TxC的作用下,由TxD脚一位一位地串行发送出去。
微型机原理与程序设计微型机原理与程序设计4)读)读/写控制写控制读/写控制逻辑对CPU输出的控制信号进行译码以实现表所示的读/写功能,并实现对Modem的控制。
5)定时和通信速率)定时和通信速率8251A的接收器和发送器分别设置接收时钟和发送时钟信号输入线,以决定通信速率。
提供外部时钟信号的装置称为波特率发生器。
异步通信时波特率范围为11019200bit/s,使用时,根据不同速率要求,在接收控制器和发送控制器中分频,以得到合适的接收或发送时钟频率。
微型机原理与程序设计微型机原理与程序设计
(2)8251A的引脚8251A是一种有28个管脚的双列直插式大规模集成电路芯片,根据其内部结构,其管脚分别介绍如下。
其管脚封装图如图2-4-30所示。
8251A的数据总线是8位的,分别为D0-D7,它们是三态双向的,CPU通过数据总线并行传送命令,交换数据及检测状态。
图2-4-308251A管脚封装图微型机原理与程序设计微型机原理与程序设计1)控制信号管脚)控制信号管脚CLK:
时钟输入端口,产生8251A的内部时序。
:
片选信号。
:
控制/数据端。
RESET:
复位信号。
:
读、写控制信号。
2)发送器部分管脚)发送器部分管脚TxD:
数据发送引脚。
TxRDY:
发送器准备好信号。
TxEMPTY:
发送器空信号。
:
由外部输入的发送器时钟。
微型机原理与程序设计微型机原理与程序设计3)接收器部分管脚)接收器部分管脚RxD:
数据接收引脚。
取走数据。
RxRDY:
接收器准备好信号。
SYNDET/BRKDET:
此管脚具有双功能。
:
由外部输入的接收数据时钟。
4)调制解调接口管脚)调制解调接口管脚:
数据终端准备好信号。
:
数据装置准备好信号。
:
请求发送信号。
:
允许发送信号。
微型机原理与程序设计微型机原理与程序设计3.8251A与与CPU连接连接8251A也是一个与CPU连接的相当简单的器件。
为读或写8251A,片选输入必须为逻辑0。
一般通过地址译码器提供片选信号。
为了可以通过地址选择命令端口或数据端口,将与地址线A1连接。
图2-4-31给出了与8086与8251A的连接,接口使用了8086I/O低位I/O体。
因此8251A的所有端口都为偶地址。
微型机原理与程序设计微型机原理与程序设计4.8251A的编程的编程8251A是一个可编程的多功能串行通信接口芯片,在实际使用前必须对它初始化,用来确定其工作方式、传输速率、字符格式以及停止位长度等。
8251A有三种控制字,为方式选择控制字、操作命令控制字和状态控制字。
微型机原理与程序设计微型机原理与程序设计例如,某异步通信中,其数据格式采用8位数据位,1位起始位,2位停止位奇校验,波特率系数是16,其工作方式字为11011110BDEH。
又如,同步通信中,若帧数据格式为字符长度8位,双同步字符,内同步方式,奇校验,则工作方式字为00011100B=1CH微型机原理与程序设计微型机原理与程序设计
(2)操作命令控制字)操作命令控制字操作命令控制字可使825lA处于预先规定的工作状态,操作命令控制字说明:
(1)TxEN:
允许发送/屏蔽发送的控制端。
(2)DTR:
DTR位置1,表示CPU已经准备好接收数据。
(3)RxE:
允许接收/屏蔽接收的控制端。
(4)SBRK:
该位发送断缺字符,正常通信过程中,SBRK应保持为0。
(5)ER:
ER=1清除奇偶出错、溢出出错和帧校验出错标志。
(6)RTS:
该位是请求发送信号。
(7)IR:
该位为内部复位信号,迫使8251回到方式选择控制字状态。
(8)EH:
该位只对同步方式有效。
EH=1时,表示开始搜索同步字符。
微型机原理与程序设计微型机原理与程序设计例如,若要使8251A内部复位,并且允许接收,又允许发送,则程序段为:
微型机原理与程序设计微型机原理与程序设计(3)状态控制字)状态控制字在8251A工作过程中,CPU随时可以用IN指令读取当前8251A的状态控制字。
(1)TxRDY:
该位是发送准备好标志,表示当前发送缓冲器已空。
(2)RxRDY、TxEMPTY、SYNDET/BRKDET:
定义与其相应的引脚定义相同。
(3)DSR:
该状态位为1时,表示外设或调制解调器作好发送数据的准备。
(4)PE:
该位为奇偶错标志位。
(5)OE:
该位为溢出错标志位。
(6)FE:
该位为帧校验错标志位。
(7)PE、OE、FE这三个标志可由操作命令字的ER位为1来全部复位。
微型机原理与程序设计微型机原理与程序设计图2-4-348251A状态控制字格式
(2)RxRDY、TxEMPTY、SYNDET/BRKDET:
这三个位状态的定义与其相应的引脚定义相同,可以供CPU随时查询。
(3)DSR:
该状态位为1时,表示外设或调制解调器已经作好发送数据的准备。
微型机原理与程序设计微型机原理与程序设计若要检查出错信息,则用下列程序段:
例如,若要查询8251A接收器是否准备好,则用下列程序段:
微型机原理与程序设计微型机原理与程序设计图2-4-458251A初始化编程框图(4)初始化编程)初始化编程微型机原理与程序设计微型机原理与程序设计2)异步方式的编程)异步方式的编程设在某8086系统中有一片8251A,其占用的端口地址分别为1A0H和1A2H,并要求其工作方式选择为:
异步通信,字符用7位二进制数表示,奇校验,2位停止位,波特率因子为64。
对其工作状态的要求是:
使发送允许TxEN有效,使接收允许RxE有效,使数据终端准备好信号有效,复位出错标志,将请求发送信号置于有效电平。
分析:
其方式选择控制字应该为DBH,操作命令控制字应该为37H。
MOVDX,1A2HMOVAL,0DBH;设置工作方式OUTDX,ALMOVAL,37H;设置操作控制字OUTDX,AL微型机原理与程序设计微型机原理与程序设计3)同步方式的编程)同步方式的编程设某8251A芯片端口地址分别为1A0H和1A2H。
要求其工作方式:
同步方式、内同步、两个同步字符、奇校验、每个字符8位。
并设第一个同步字符为EFH,第二个同步字符为7EH。
要求其工作状态是:
复位出错标志,启动发送器和接收器,当前CPU已经准备好且请求发送。
分析:
其方式选择控制字应该为1CH,操作命令控制字应该为0B7H。
MOVDX,1A2HMOVAL,40HOUTDX,AL;复位8251AMOVAL,1CHOUTDX,AL;写入方式选择控制字,规定其工作方式MOVAL,0EFHOUTDX,AL;写入第一个同步字符MOVAL,7EHOUTDX,AL;写入第二个同步字符MOVAL,0B7HOUTDX,AL;写入操作命令控制字,设置其工作状态微型机原理与程序设计微型机原理与程序设计58251A应用举例应用举例1)接收数据)接收数据8251A工作于异步方式,7个数据位,2个停止位,奇校验,波特率因子为64。
其数据端口地址为A0H,控制端口地址为A2H。
分析:
通过查询8251A状态寄存器中的RxRDY位,可以确定8251A是否已经从外设接收到了一个字符。
若已接收到,即RxRDY有效,CPU就可执行输入指令,从8251A的数据端口(C/D=0)取回一字节数据放在内存缓冲区。
程序中还要检测状态寄存器的第3、4、5位,看是否出现了奇偶错、溢出错或帧错误。
若发现错误,应停止输入,并转错误处理程序。
微型机原理与程序设计微型机原理与程序设计MOVAL,0DBHOUT0A2H,AL;写入异步方式选择字MOVAL,37HOUT0A2H,AL;写入命令控制字MOVBX,BUFPTR;设缓冲区首地址存放在DS段BUFPTR变量名下MOVDI,0;变址寄存器清0MOVCX,0064H;设置计数值100WAIT:
INAL,0A2H;输入状态字送ALTESTAL,02H;测试状态字第2位,即RxRDY微型机原理与程序设计微型机原理与程序设计JZWAIT;若8251A未收到字符,则重新取状态字INAL,0A0H;若RxRDY有效,则从数据口输入数据MOVBX+DI,AL;将接收到的字符送到缓冲区INCDI;缓冲区指针下移一个单位INAL,0A2H;再读入状态字TESTAL,38H;测试有无三种错误JNZERROR;若有错误,转错误处理程序ERRORLOOPWAIT;如已输入100个字符,则继续进行数据处理微型机原理与程序设计微型机原理与程序设计2)发送数据)发送数据8251A设置为异步传送方式,波特率因子为64,采用偶校验,1位停止位,7位数据位。
8251A与外设有握手信号,采用查询方式发送数据。
CODESEGMENTASSUMSCS:
CODE,DS:
DATA,SS:
STACKMOVAX,DATAMOVDS,AXSTART:
MOVDX,04A2H;控制口地址MOVAL,7BH;工作方式控制字OUTDX,ALMOVAL,37H;操作命令控制字微型机原理与程序设计微型机原理与程序设计OUTDX,ALWAIT:
INAL,DXANDAL,01H;检查TxRDY=1?
JZWAITMOVDX,04A0HMOVAL,36H;输出的数据OUTDX,ALCODEENDSENDSTART3)双机通讯)双机通讯实现8251A在两台微机之间的双机串行通信的电路图2-4-46所示。
微型机原理与程序设计微型机原理与程序设计图2-4-46微机间串行通信接口连接在甲、乙两台微机之间进行串行通信。
甲机发送,乙机接收。
要求把甲机上开发的应用程序(其长度为2DH)传送到乙机中去。
采用起止式异步方式,字符长度为8位,2位停止位,波特率因子为64,无校验,波特率为4800。
CPU与8251A之间用查询方式交换数据。
端口地址分配是:
309H为命令/状态口,308H为数据口。
3)双机通讯)双机通讯实现8251A在两台微机之间的双机串行通信的电路图2-4-46所示。
微型机原理与程序设计微型机原理与程序设计由于是近距离传输,可以不设Modem而直接互连,同时是采用查询I/O方式,故收/发程序中只需检查收/发准备好的状态是否置位,若置他即可收发1个字节。
甲、乙两台微机之间的硬件连接只需TxD、RxD和SG三根线连接就能通信。
软件编程:
接收和发送程序分开编写,每个程序段中包括8251A初始化、状态查询和输入/输出几部分。
发送程序(略去STACK和DATA段):
CSEGSEGMENTASSUMECS:
CSEGTRAPROCFARSTART:
MOVDX,309H;控制口MOVAL,00H;空操作OUTDX,AL微型机原理与程序设计微型机原理与程序设计MOVAL,40H;内部复位OUTDX,ALNOPMOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序控制 输入输出