第一范文网 - 专业文章范例文档资料分享平台

8251复习资料

来源:用户分享 时间:2025/9/15 3:25:47 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

IN AL , DX ;读状态字

TEST AL , 00000001B ;测D0 JZ L ; D0=0,转L继续测 …….; D0=1,发送器准备好 例:在接收程序中检查出错信息。 L: MOV DX , 309H ; 指向状态口 IN AL , DX ;读状态字

TEST AL , 00111000B ;测D5 D4 D3

JNZ ERROR ; D5D4D3 ≠0,转出错处理 …….; D5 D4 D3 =0,无错 8251A初始化编程步骤:

1)向控制口写入40H,使芯片内部复位;

(2)向控制口写入方式命令字,设工作方式、波特因子和帧数据结构; (3)向控制口写入工作命令字。

(4)读取8251状态,与命令字结合控制数据收发。(查询方式

上图所示电路利用8251实现CPU与 I/O 的操作,下面程序完成的 功能是:连续地从RS-232C接口读取串行字符,将接收的字符取 反,然后将其送回RS-232C接口。接收和发送的每个字符的长度 为8位,使用2个停止位,无奇偶校验。

INT8251: MOV AL , 01000000 ;写工作命令字

MOV DX, 211H OUT DX , AL;复位

MOV AL , 11001110 ;写方式命令字

OUT DX, AL; 2个停止位,8数据,K=16 MOV AL,00010101 ;写工作命令字 OUT DX,AL;

CHRRX: IN AL , DX ;检查是否接收到一个字符 ROR AL , 1

ROR AL , 1;RXRDY→CF

JNC CHKRX; RXRDY=0 未收到,转CHKRX

MOV DX,210H ;RXRDY=1 已收到,数据口

IN AL , DX ;读接收的数据

NOT AL ;把接收到的字符求反 MOV BL , AL ;暂存 CHKTX: MOV DX,211H ;指向控制口

IN AL , DX ;检查是否能发送字符 ROR AL , 1 ; TXRDY→CF

JNC CHKTX ; TXRDY=0,不能发送返回 MOV AL , BL ; TXRDY=1发送已求反的字符 MOV DX,210H

OUT DX, AL ;发送的字符送数据口 JMP CHKRX 1)要求

甲发乙收,2DH个字节,异步方式,8位数据位,2位停止位,无校验,波特因子64,查询方式,零MODEM连接,甲机首址SRC,乙机首址DST,8251A地址308H、309H (2)硬件连接 (3)软件编程

甲、乙机方式命令:0CFH =11001111

2个停止位,不校验,8个数据位,K=64 甲机发送工作命令:23H=00100011

RTS=1(请求发送)DTR=1(DTE就绪)TXEN=1(发送允许) 乙机接收工作命令:16H=00010110

ER=1(复位出错标志)RXE=1(允许接收) DTR=1(DTE就绪) (甲机发送程序段) MOV DX,309H

MOV AL,01H ;空操作 OUT DX,AL

MOV AL,40H 内部复位 OUT DX,AL

MOV AL,0CFH ;方式命令 OUT DX,AL

MOV AL,23H 工作命令 OUT DX,AL

LEA SI,SRC ;指向发送缓冲区 MOV CX,2DH ;数据个数 L:MOV DX,309H ;指向控制口 IN AL,DX ;读状态字 AND AL,01H ;测TxRDY

JZ L ; TxRDY=0,返回等待 MOV DX,308H ;TxRDY=1,发送,指向数据口 MOV AL,[SI];取发送数据 OUT DX,AL;送数据口输出 INC SI ;指向下一单元 LOOP L ;循环

;发送完毕

;以下为乙机接收程序段

MOV DX,309H ;指向控制口 MOV AL,01H ;空操作 OUT DX,AL

MOV AL,40H ;内部复位 OUT DX,AL

MOV AL,0CFH ;写入方式命令 OUT DX,AL

MOV AL,16H;写入工作命令字 OUT DX,AL

LEA DI,DST ;指向接收缓冲区 MOV CX,2DH ;数据个数 L:MOV DX,309H ;控制口 IN AL,DX ;读状态字 TEST AL,38H;测出错标志

JNZ ERR ;出错,转错误处理 AND AL,02H ;测RxRDY

JNZ L ;RxRDY=0,未收到字符,等待 MOV DX,308H ; RxRDY=1指向数据口 IN AL,DX ;接收

MOV [DI],AL ;存入输入缓冲区 INC DI ;指向下一单元 LOOP L ;循环 ;接收完毕

START: MOV AX,DATA

MOV DS,AX

MOV DX,20BH ; MOV AL,96H

OUT DX,AL ( 设置8253计数器2工作方式,计 数器0工作在方式3, 只写计数 初始值低8位,二进制计数。 MOV DX , 20AH ;(

MOV AL , 52 ;

OUT DX , AL ; ) MOV DX ,211H XOR AL ,AL

MOV CX ,( 3 ) DELAY: CALL OUT1

LOOP DELAY

MOV AL ,( 40H ) ;内复位命令 CALL OUT1

MOV AL ,( 4EH ) ;方式命令字 CALL OUT1

MOV AL ,( 15H ) ;允许发送和接收 CALL OUT1 MOV AH , 9

MOV DX , OFFSET MES1 INT 21H WAIT: MOV DX , 211H

IN AL , DX

TEST AL , ( 01H );发送是否准备好? JZ WAIT MOV AH , 01H

INT 21H ;从键盘上读一字符 CMP AL ,( 1BH) ;若ESC,结束 JZ EXIT

MOV DX , 210H INC ( AL) OUT DX ,( AL ) ;发送 MOV CX , 400H

S51: LOOP S51 ;延时 NEXT: MOV DX , 211H

IN AL , DX TEST AL , ( 02H) JZ NEXT MOV DX , 210H

IN AL , DX MOV DL , AL

MOV AH , 02H ;将接收到的字符

INT 21H ;显示在屏幕上 JMP WAIT EXIT: MOV AH , 4CH INT 21H CODE ENDS

END START

搜索更多关于: 8251复习资料 的文档
8251复习资料.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6u31v2s6ci6o2vt5lzj67d82u9zjet00ife_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top