📄 chapter6.htm
字号:
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>写端口A</big></big></td>
</tr>
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>读端口B</big></big></td>
</tr>
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>写端口B</big></big></td>
</tr>
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>读端口C</big></big></td>
</tr>
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>写端口C</big></big></td>
</tr>
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>写入控制字</big></big></td>
</tr>
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>非法信号组合</big></big></td>
</tr>
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>0</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>x</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>x</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>数据总线缓冲器高阻</big></big></td>
</tr>
<tr>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>1</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>x</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>x</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>x</big></big></td>
<td width="10%" align="center" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>x</big></big></td>
<td width="55%" style="color: rgb(0,0,0)" bgcolor="#79B8BF"><big><big>未选择</big></big></td>
</tr>
</table>
</center></div>
<blockquote>
<h4 align="left"><font face="宋体" size="5" color="#FFFFFF">4、数据总线缓冲器</font></h4>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">8位双向的三态数据缓冲器。</font></p>
</blockquote>
<h3 align="left"><font face="宋体" size="5" color="#FFFFFF">二、引脚信号</font></h3>
<blockquote>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">8255A为双列直插40引脚芯片,其中26引脚为VCC,7脚为GND。其他引脚如下图所示:</font></p>
</blockquote>
<p align="center"><img src="8255a.gif" width="379" height="551"
alt="8255a.gif (6468 bytes)"></p>
<blockquote>
<h4 align="left"><font face="宋体" size="5" color="#FFFFFF">1、和外设相连的引脚:</font></h4>
<blockquote>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">PA<sub>7</sub>~PA<sub>0</sub>:端口A的数据输入/输出引脚。</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">PB<sub>7</sub>~PB<sub>0</sub>:端口B的数据输入/输出引脚。</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">PC<sub>7</sub>~PC<sub>0</sub>:端口C的数据输入/输出引脚。</font></p>
</blockquote>
<h4 align="left"><font face="宋体" size="5" color="#FFFFFF">2、和CPU端相连的引脚:</font></h4>
<blockquote>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">1)RESET---复位。高电平有效,8255A的所有内部寄存器清零,三个端口自动设置为输入端口。</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">2)D<sub>7</sub>~D<sub>0</sub>---数据线,和系统数据总线相连。</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">3)<span
style="text-decoration: overline">CS</span>---片选。低有效。</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">4)<span
style="text-decoration: overline">RD</span>---读。低有效。</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">5)<span
style="text-decoration: overline">WR</span>---写。低有效。</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">6)A<sub>1</sub>、A<sub>0</sub>---端口选择信号。</font></p>
</blockquote>
</blockquote>
<div align="center"><center>
<table border="1" width="41%">
<tr>
<td width="33%" style="color: rgb(0,0,0)" align="center" bgcolor="#C0C0C0"><big><big>A<sub>1</sub></big></big></td>
<td width="27%" style="color: rgb(0,0,0)" align="center" bgcolor="#C0C0C0"><big><big>A<sub>0</sub></big></big></td>
<td width="40%" style="color: rgb(0,0,0)" align="center" bgcolor="#C0C0C0"><big><big>端口</big></big></td>
</tr>
<tr>
<td width="33%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>0</big></big></td>
<td width="27%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>0</big></big></td>
<td width="40%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>A</big></big></td>
</tr>
<tr>
<td width="33%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>0</big></big></td>
<td width="27%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>1</big></big></td>
<td width="40%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>B</big></big></td>
</tr>
<tr>
<td width="33%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>1</big></big></td>
<td width="27%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>0</big></big></td>
<td width="40%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>C</big></big></td>
</tr>
<tr>
<td width="33%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>1</big></big></td>
<td width="27%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>1</big></big></td>
<td width="40%" style="color: rgb(0,0,0)" align="center" bgcolor="#00FFFF"><big><big>控制口</big></big></td>
</tr>
</table>
</center></div>
<blockquote>
<p align="left"><font face="宋体" size="5" color="#FFFFFF"> 当8255A与8088直接相连,或者与PC/XT总线信号相连时,则8255A的端口地址为从一个偶地址开始的连续的4个字节端口地址。</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF"> 当8255A与8086直接相连时,若使用数据总线的低8位D<sub>7</sub>~D<sub>0</sub>,则要求8255A的端口地址为从一个偶地址开始的连续的4个偶地址,此时将系统总线的A<sub>2</sub>接8255A的A<sub>1</sub>,系统总线的A<sub>1</sub>接8255A的A<sub>0</sub>,系统总线的A<sub>0</sub>总是设为0。</font></p>
</blockquote>
<h3 align="left"><font face="宋体" size="5" color="#FFFFFF">三、8255A的控制字</font></h3>
<blockquote>
<p align="left"><font face="宋体" size="5" color="#FFFFFF"> 写到8255A控制端口的8位控制字共有二种,分别称为</font><font
face="宋体" size="5" color="#FFFF00">方式选择控制字</font><font face="宋体"
size="5" color="#FFFFFF">(以该控制字的D<sub>7</sub>=1为标志)和</font><font
face="宋体" size="5" color="#FFFF00">端口C置1/置零控制字</font><font
face="宋体" size="5" color="#FFFFFF">(以该控制字的D<sub>7</sub>=0为标志)。</font></p>
</blockquote>
<blockquote>
<h4 align="left"><font face="宋体" size="5" color="#FFFFFF">1、方式选择控制字</font></h4>
</blockquote>
<p align="center"><img src="8255fshxz.gif" width="503" height="395"
alt="8255fshxz.gif (7561 bytes)"></p>
<blockquote>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">
例如,设某8255A的端口地址为210H~213H,端口A为输入,端口B和端口C都为输出,都工作于方式0,其方式选择控制字的设置过程为:</font></p>
<blockquote>
<blockquote>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">MOV DX,213H
;control port</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">MOV AL,90H
;control word</font></p>
<p align="left"><font face="宋体" size="5" color="#FFFFFF">OUT DX,AL</font></p>
</blockquote>
</blockquote>
</blockquote>
<blockquote>
<h4 align="left"><font face="宋体" size="5" color="#FFFFFF">2、端口C置1/置0控制字</font></h4>
</blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -