UC头条:[汇编与接口]常用接口芯片总结
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复位(转为低电平),此时外设得知输入缓冲器为空,可进行下一个字节的传输。
输入过程:当外设准备好数据后,送出数据的同时,送出一个选通信号 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已经将数据送到的外设(外设接没接收同样不管我事)
输出过程:可类比输入过程。
方式2 双向选通输入输出
为方式1输入输出的组合
点击加载图片
控制字
方式选择控制字
D7D6D5D4D3D2D1D0
1a口工作方式a口工作方式a口输入输出c口高8位输出输出b口工作方式b口输入输出c口低8位输出输出
C口按位置/复位控制字
D7D6D5D4D3D2D1D0
0无效无效无效c口位选择c口位选择c口位选择置位1/复位0
8251可编程串行接口
功能特点
可用于同步或异步传送。
同步传送5~8位/字符,能自动插入同步字符。
异步传送5~8位/字符,波特率可调。
可产生1位、1.5位以及2位的停止位。
全双工、双缓冲发送和接收器。
具有奇偶、溢出和帧格式错误检测功能。
内部结构
点击加载图片
发送命令缓冲器:用于存放CPU送来的数据/命令。
接收输出缓冲器:用来存放8251A收到的数据。
接收器:接收串行数据,并按照相应的格式将串行数据变成并行数据,经内部总线送到接收数据缓冲器。
发送器:将CPU送来的数据转换成串行数据并发送出去。
引脚功能
modem控制信号
发送器有关信号
接收器有关信号
工作原理
接收器
异步
通过RxD检测起始位。
接收器采样并装配字符。
将并行数据送至接收数据缓冲器。
同步
接收器实现同步。
接收器采样并装配字符。
将并行数据送至接收数据缓冲器。
发送器
异步
按照规定加上起始位、奇偶校验位和停止位,形成一桢,逐位从TxD线上发送出去。
同步
在发送数据前插入1~2个同步字符,然后在TxD线上发送数据块。
汇编就送大家到这里了,感觉写这个还是很费时间,而且我可能要复习不完了
多写多练程序可以的。
8253可编程定时器
点击加载图片
点击加载图片
点击加载图片
点击加载图片
数模(0832)/模数(0809)转换器
点击加载图片
点击加载图片
8259中断控制器
点击加载图片
点击加载图片
点击加载图片
8237可编程DMA控制器
点击加载图片
杂项
补充资料:锁存器、触发器、寄存器和缓冲器的区别