8255可编程并行接口
内部结构
(1)数据总线缓冲器
(2)3个8位端口PA/PB/PC
(3)A组和B组控制电路
(4)读写控制逻辑
四个端口:PA口,PB口,PC口,控制口。
8255引脚功能
比较简单这里就不浪费笔墨了
8255工作方式
方式0 基本输入输出
- 每一个端口都定义为输入口或输出口
- 端口C可作为两个独立的4位端口使用,并可定义为输入口或输出口
方式1 选通输入输出
- 端口A和端口B可工作在方式1,每一个端口都定义为输入口或输出口;
- 端口C的某些引脚分别作为端口A和端口B的联络信号,有确定的意义,不能用软件重定义。
输入(以pa口为例,pb口对应PC2 PC1 PC0)
S T B ‾ \overline{STB} STB:输入选通信号,有效时,将输入的数据信号送入A口的数据寄存器(通俗一点就是,我只是把数字送上来了,但是你接没接收就不管我的事了)
I B F IBF IBF:输入缓冲器满信号,有效时,通知外设输入的数据已经写入到输入寄存器。
I N T R INTR INTR:中断请求信号,当 S T B ‾ \overline{STB} STB, I B F IBF IBF, I N T E INTE INTE都为高电平时,使得 I N T R INTR INTR为高电平,CPU响应中断,响应中断时, R D ‾ \overline{RD} RD下降沿自动使 I N T R INTR INTR复位(转为低电平), R D ‾ \overline{RD} RD上升沿自动使 I B F IBF IBF复位(转为低电平),此时外设得知输入缓冲器为空,可进行下一个字节的传输。
I N T E INTE INTE:中断允许信号,A口为 P C 4 PC_4 PC4,B口为 P C 2 PC_2 PC2
输入过程:当外设准备好数据后,送出数据的同时,送出一个选通信号 S T B ‾ \overline{STB} STB。8255的A口数据锁存器在 S T B ‾ \overline{STB} STB的下降沿下将数据锁存。向外设送出高电平IBF,表示锁存数据已完成,不要再送数据。如果 P C 4 PC_4 PC4为1,这时就会使得 I N T R INTR INTR为高电平,向CPU发出中断请求,执行IN指令时, R D ‾ \overline{RD} RD开始时的下降沿清除中断请求,而 R D ‾ \overline{RD} RD结束时的上升沿使得IBF复位到零,外设检测到 I B F IBF IBF为0可进行下一个字节的传输。
输出(pa口为例,pb口对应PC2,PC1,PC0)
O B F ‾ \overline{OBF} OBF:输出缓冲器满信号,有效时表明CPU已经将数据送到的外设(外设接没接收同样不管我事)
A C K ‾ \overline{ACK} ACK:响应信号,外设送来,有效时表明8255的数据已经被外设所接受。
I N T R INTR INTR:中断请求信号,向CPU发出中断请求
I N T E INTE INTE:中断允许信号,A口为 P C 6 PC_6 PC6设置,B口为 P C 2 PC_2 PC2设置
输出过程:可类比输入过程。
方式2 双向选通输入输出
为方式1输入输出的组合
控制字
方式选择控制字
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
1 | a口工作方式 | a口工作方式 | a口输入输出 | c口高8位输出输出 | b口工作方式 | b口输入输出 | c口低8位输出输出 |
C口按位置/复位控制字
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
0 | 无效 | 无效 | 无效 | c口位选择 | c口位选择 | c口位选择 | 置位1/复位0 |
8251可编程串行接口
功能特点
- 可用于同步或异步传送。
- 同步传送5~8位/字符,能自动插入同步字符。
- 异步传送5~8位/字符,波特率可调。
- 可产生1位、1.5位以及2位的停止位。
- 全双工、双缓冲发送和接收器。
- 具有奇偶、溢出和帧格式错误检测功能。
内部结构
发送命令缓冲器:用于存放CPU送来的数据/命令。
接收输出缓冲器:用来存放8251A收到的数据。
接收器:接收串行数据,并按照相应的格式将串行数据变成并行数据,经内部总线送到接收数据缓冲器。
发送器:将CPU送来的数据转换成串行数据并发送出去。
引脚功能
modem控制信号
D T R ‾ \overline{DTR} DTR:输出,数据终端准备好信号,向外设输出表示CPU准备就绪。
D S R ‾ \overline{DSR} DSR:输入,表示数据装置准备好。
R T S ‾ \overline{RTS} RTS:输出,请求发送信号
C T S ‾ \overline{CTS} CTS:输入,清除发送信号
发送器有关信号
T X D T_XD TXD:发送数据。
T X R D Y T_XRDY TXRDY:发送器准备好信号
T X E T_XE TXE:发送器缓冲空标志
T X C ‾ \overline{T_XC} TXC:输入控制发送器数据速率的时钟。
接收器有关信号
R X D R_XD RXD:接收数据
R X R D Y R_XRDY RXRDY:接收器准备好标志
R X C ‾ \overline{R_XC} RXC:接受时钟输入端
S Y N D E T / B R K D E T SYNDET/BRKDET SYNDET/BRKDET:同步和间断检测
工作原理
接收器
异步
- 通过RxD检测起始位。
- 接收器采样并装配字符。
- 将并行数据送至接收数据缓冲器。
同步
- 接收器实现同步。
- 接收器采样并装配字符。
- 将并行数据送至接收数据缓冲器。
发送器
异步
按照规定加上起始位、奇偶校验位和停止位,形成一桢,逐位从TxD线上发送出去。
同步
在发送数据前插入1~2个同步字符,然后在TxD线上发送数据块。
汇编就送大家到这里了,感觉写这个还是很费时间,而且我可能要复习不完了
多写多练程序可以的。
8253可编程定时器
数模(0832)/模数(0809)转换器
0832
0809
8259中断控制器
8237可编程DMA控制器
杂项
补充资料:锁存器、触发器、寄存器和缓冲器的区别