大风吹鼓谱:8251A的编程字
来源:百度文库 编辑:偶看新闻 时间:2024/04/30 00:56:01
(1)工作方式控制字D1D0 确定是工作于同步方式还是异步方式。D1D0=00为同步方式,当方式设为同步时,方式控制字后必须装入 同步字符,并由同一个方式控制字规定装入单同步字符还是双同步字符;D1D0≠00为异步方式,且有3种组合来 选择输入的时钟频率与波特率之间的系数。
D3D2 确定每个字符的数据位(不包括奇偶校验位)。
D5D4 确定是否校验和奇偶校验的性质。
D7D6 含义因同步方式或异步方式而异。异步方式(D1D0≠00)时用来确定停止位个数。同步方式时D6用来确定 是内同步(SYNDET脚为输出)还是外同步(SYNDET为输入),D7用来确定同步字符个数。外同步方式时,同步字 符只用于发送,接收时不作用。
例:某异步通讯,数据位为8位,1位起始位、2位停止位、奇校验、波特率系数为16。
则有:11011110B=0DEH
MOV DX,309H ;8251A命令口
MOV AL,0DEH
OUT DX,AL
(2)工作命令控制字D0 设置为1允许8251A开始发送操作。只有命令字的D0=1,引脚TXDRY(通知CPU:发送器准备好)才可能有效(为1)。可作为发送中断屏蔽位。
D1 设置为1强制引脚DTR有效,表示数据终端准备好,通知调制解调器:8251A已准备好。
D2 设置为1允许8251A开始接收数据。只有命令字D2=1,RXRDY(通知CPU接收器准备好的引脚)才有可能为1。允许接收时必须使错误标志复位(见D4)。在同步方式时还必须指定进入同步搜索操作(见D7)。
D3 设置为1迫使TXD端发送低电平,以此作断点字符。
D4 设置为1则对状态字中的所有操作出错标志(FE,OE,PE)复位。
D5 设置为1强制RTS引脚(请求发送)有效,向调制解调器提出发送请求。
D6 设置为1强制8251A内部复位,使之回到准备接收方式字的状态。
D7 只用于同步方式。为使8251A进入同步搜索操作,将输入的信息和同步字符比较,一致则使SYNDET/BRKDET(同步/断点检测)引脚有效,开始对数据的接收操作。
例:若要使8251A内部复位且允许接收/发送,则有
MOV DX,309H
MOV AL,40H ;D6=1,复位
OUT DX,AL
MOV AL,05H ;D2=1,D0=1
OUT DX,AL
(3)状态字状态字的作用是8251A向CPU送去数据传送操作中的各种状态信息。方式字,同步字符,命令字都是CPU写入8251A的,以控制8251A的工作方式和操作。那么,8251A在发送,接收数据的过程中实际工作状态如何呢?如一个字符接收全了 没有?接收的数据有没有错误?有什么类型的错 误?发送缓冲器空了没有?发送移位寄存器空了没有?等等,这些在发送/接收数据操作过程中的状态信息随 时寄存在8251A内部的状态冲寄存器内,CPU可以通过I/O读操作(=1)把状态字读入加以分析,控制CPU和 8251A之间的数据交换。
状态位D0(TXRDY)——发送器准备好。
状态位D1(RXRDY)——接收准备好。
状态位D2(TxE)——发送器空。
状态位D3(PE)——奇偶校验错标志
状态位D4(OE)——溢出(覆盖)错误标志。
状态位D5(FE)——帧格式错误标志
状态位D6(SYNDET)——同步检测。
状态位D7(DSR)——数据装置准备好。
请问编程高手:关于a++与++a的问题
三菱PLC-A编程器的中文软件?
编程 8858 求a的n次方根
求编程中a.b.c 的最大数!
编程:用户输入A,B,C的值,计算Y=3A(1+C)
C编程:已知AB为正整数,A<B,A*B=716699要求A+B取最小值,求满足条件的A值.
pascal编程:读入两个数a,b(0<a,b<30000),输出它们的和。
C语言编程:如何给任意长度的字符串a赋值?(只用C语言语法)
pascal编程求正整数A和B之间的完全数
编程:已知 上底:a 下底:b 高:h 求梯形的面积
编程的语句结构if then 能实现哪些特殊的功能效果。比如a=a+1 if a>3 then 这样可以限制次数。
EXCEL中编程实现A=A+1 效果?
熟悉套接字编程的进!
Turbo C编程问题:假设所有数据均为整型,则表达式(a=2,b=5,b++,a+b)的值是多少?
工作:学应用数学专业的干什么好啊??A教书 B搞经济 C搞编程 D其他
C++编程中的转移字符'\a'的意思是"响铃",那什么是"响铃"
文字处理的编程(编程方法不限)
如何学编程,编程的第一步是什么?
比较 a b c 大小 。用C 编程
编程的一些常识
C语言的编程
c语言的编程??
最常用的编程
MP3的编程怎样用