8251,8253,8255总结---致虞硕

8251

8251A异步停止位2校验位2数据长度2异步方式2

只有两个端口地址,51H,50H,前者写方式字,后者输出
甲机2000H:3000H 查询方式 发送1024字节 串行 乙机4000H:5000H
在这里插入图片描述
在这里插入图片描述

从后往前
一位停止位:01偶校验带:11 7位:10异步波特16:10
01 11 10 10即7AH
0001 0001B命令字,两个1,第一个清除内部错误标志,第二个允许发送
51H要写两次,读状态字一次,因为端口只有两个

CODE AX 2000H;
ASSUME CS:CODE
START: MOV AX,2000H;
MOV DS,AX;装基址
MOV SI,3000H;装偏移地址
MOV CX,1024;传送1024字节
以上为初始化
MOV AL,7AH;(0111 1010B)读入方式字
OUT 51H,AL;写入方式字
以上写方式字
MOV AL,11H;(0001 0001B)
OUT 51H,AL;
以上写命令字
STATE: IN AL,51H; L读状态字
TEST AL,01H;(0000 0001B)检测是否发送好了
JZ STATE;为0没好,回去继续测试
MOV AL,[SI];数据从存储器读入,SI指向的内容,一个字节
OUT 50H,AL;传到输出端口
INC SI;ok了,下一个
DEC CX;计数器减1
JNZ STATE;又开始查询
MOV AH,4CH;返回DOS
INT 21H
CODE ENDS
END START

8253计数器位2低8位01方式选择3进制选择2

在这里插入图片描述

F—>时钟周期T=0.5us
T2=40(32)------6us
方式1,计数初值n1=6/0.5=12
n2=40/05=80
方式2,计数初值n2=80
因为低8位0~255足够装下

在这里插入图片描述

0为方式1,1为方式2
80H,81H,82H,83H
83方式字,其他为计数通道

总共两个计数器,即两个通道
0通道00,低8位写入01,工作方式001,十进制计数1
0001 0011B----13H
1通道01,低8位写入01,工作方式010,十进制计数1
总而言之,不同计数器,写入方式字不一样,但方式字端口一样
输出计数初值,和端口不同
CODE AX 2000H;
ASSUME CS:CODE
START: MOV AL,13H;读入方式字
OUT 83H,AL;写入方式字
计数器1,方式1,只写低八位,BCD码计数
MOV AL,12H;把16进制当10进制,计数初值读入
OUT 80H,AL;
计数初值写入,方式1计数端口80H

MOV AL,55H;
OUT 83H,AL;
计数器2,方式2,只写低八位,BCD码计数
MOV AL,80H;把16进制当10进制,计数初值读入
OUT 81H,AL;
计数初值写入,方式2计数端口81H

MOV AH,4CH;返回DOS
INT 21H
CODE ENDS
END START

8255方式控制字1A口方式位2A口IO位1CBBC0000

D0H A口 进
D1H B口 出
D2H C口 出
D3H 工作方式
Al在CPU里,也是AX的低八位
90H为方式字,1001 0000B A口方式0,A口入,B,C口出
在这里插入图片描述

检测为0,B口出:清低四位,再B口出
1,C口出:低四位置1,再C口出
最后jmp无条件转出
CODE AX 2000H;
ASSUME CS:CODE
START: MOV AL,90H;A口入,B,C口出
OUT 0D3H,AL;写方式字

IN AL,0D0H;读入A口数据到CPU
TEST AL,80H;检测最高位是否为0
JZ P1
OR AL,0FH; 1,低四位1,C口出
OUT 0D2H,AL;
JMP EXIT

P1: AND AL,0F0H;为0,清低四位0,B口出
OUT 0D1H,AL;
EXIT:
MOV AH,4CH;返回DOS
INT 21H
CODE ENDS
END START

简要说明I/0接口的基本功能?

(1)地址译码,选取接口寄存器
(2)接收控制命令,提供工作状态信息
(3)数据缓冲(速度匹配),格式转换
(4)控制逻辑,如中断、DMA控制逻辑、设备操作等。

简述可屏蔽中断的响应和处理过程?
(1)有中断源发出中断请求。
(2)中断总允许控制位ea=l,cpu开放总中断。
(3)申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。
(4)无同级或更高级中断正在服务。
(5)当前指令周期已经结束。(6)若现行指令为reti或访问ie或ip指令时,读指令以及紧接着的另一条指令已执行完毕。
满足以上条件,则cpu响应响应中断元的中断请求。
简述DMA的处理过程?
实现DMA传送的基本操作如下:
1、外设可通过DMA控制器向CPU发出DMA请求;
2、CPU响应DMA请求,系统转变为DMA工作方式,并把总线控制权交给DMA控制器;
3、由DMA控制器发送存储器地址,并决定传送数据块的长度;
4、执行DMA传送;
5、DMA操作结束,并把总线控制权交还CPU。

.
指令解释
J跳转
Z代表zero 0
JMP代表无条件转出
IN读入CPU,到AL
OUT从AL输出到端口
OR:JZ之后的其他情况
INC自增
DEC自减

8251A默认段基址寄存器为DS MOV AL,[SI];
暂存即将写出统一用MOV AL
读入统一用IN AL

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的点赞我的光

我的第一次被打赏在哪?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值