82C55芯片概览

来源:互联网 发布:截动态图软件 编辑:程序博客网 时间:2024/06/05 02:08

期末复习用,会不定期更新。

The 82C55 is used for interface to the keyboard and parallel printer port in many personal computers, but it is found as a function within an interfacing chipset. The chipset 

also controls the timer and reads data from the keyboard interface.

1、芯片的基本结构


A1、A0选择端口,00是port A,01是Port B,10是Port C,11是命令寄存器。


2、芯片的三个模式

B组可以工作在0,1两种模式下,A组更强,0,1,2三种模式均可。A、B组的引脚都可被编程为输入\输出引脚。

command byte是8bit,bit7用来选择是command byte A(为1)还是command byte B(为0),为0时,如果芯片工作在mode1或mode2下,则端口C的任意一个bit都可以被置位或者复位(这个修改只会影响一位而不会影响其他位)。

示意图:


(1)mode 0

此时的芯片可以看成一个带有缓冲的输入或者带有锁存的输出装置。

举个例子:如果IO端口号是700H到703H,可以用下面的代码向指定的端口搬移数据:

MOV AL,10000000B;暂存数据MOV DX,703H;暂存端口号OUT DX,AL;将AL的值写入DX指定的端口

(2)mode 1

让端口A或B作为锁存输入设备工作,这样外部数据就可以被锁在端口中,直到微处理器想要处理它。

a、STB为0,数据被锁入端口,如果CPU不读走树IBF维持1,不准再写入数据,读走后IBF变成0。INTR在STB回到逻辑1的时候变成1,请求一次中断,微处理器读出数据后变成0。

b、数据一旦被写入选通输出端口,OBF为0(低有效),ACK信号(低有效)使外设移走数据(这个信号来自外部设备,表示设备读到数据了),同时让OBF变成1(表示缓冲器没有满)。

(3)mode 2

双向操作,只允许A组。

数据写入时OBF变成0,表示输出端口满。STB为0,将数据装入端口A的输入锁存器。ACK为0,使数据可以出现在端口A。


3、应用(代码太多了,详见书)

(1)步进电机

(2)控制LED

(3)控制键盘


4、习题

不会像书上那样涉及很多底层的东西。理解应用情景应该还好。