云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 8251复习资料

8251复习资料

  • 62 次阅读
  • 3 次下载
  • 2025/12/2 23:27:51

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复习资料 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

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)向控制

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com