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、习题
不会像书上那样涉及很多底层的东西。理解应用情景应该还好。
- 82C55芯片概览
- 82C55控制交通灯
- 16550芯片概览
- 8259A芯片概览
- 概览
- 芯片
- 芯片
- 芯片
- XML概览
- J2EE概览
- ASP概览
- SOA概览
- 数字音频概览
- SOA概览
- 故障诊断概览
- webMethods概览
- SOA概览
- SOA概览
- dfs, bfs之邻接表无向图实验
- 向阿里巴巴学习11个挣大钱的小心机
- 过河卒
- 线程池使用
- 日常开发中linux中最常用的100条命令
- 82C55芯片概览
- Android——RecyclerView——Recycler类全部源码翻译及注释
- nfs无法挂载:Loading: *** ERROR: Cannot mount
- ES记录
- 蜘蛛抓取策略:广度优先和深度优先分析
- Mongodb PHP开发类库
- git添加远程库到github提示Permission denied (publickey)
- linux 练习六 信号的发送与信号处理
- Multipart/form-data POST文件上传详解