1、单片机控制装置与调试任务十五 8255综合应用1.8255的内部结构和引脚的内部结构和引脚 (1)8255A的内部结构 8255A内部结构如图162所示,它有3个8位数据端口,即端口A、端口B和端口C。编程人员可以通过软件将它们分别作为输入端口或输出端口,不过这3个端口在不同的工作方式下有不同的功能及特点,如表152所示。表152 8255A端口功能表 它的控制电路分为A组和B组,这是两组根据CPU的命令字控制8255A工作方式的电路。它们的控制寄存器先接受CPU送出的命令字,然后根据命令字分别决定两组的工作方式,也可根据CPU的命令字对端口C的每1位实现按位“复位”或“置位”。A组控制电路控
2、制端口A和端口C的上半部(PC7PC4)。B组控制电路控制端口B和端口C的下半部(PC3PC0)。(2)8255A的芯片引脚 8255A是一种有40个引脚的双列直插式标准芯片,其引脚排列如图131所示。除电源(5V)和地址以外,其它信号可以分为两组:与外设相连接的有:PA7PA0:A口数据线;PB7PB0:B口数据线;PC7PC0:C口数据线.与CPU相连接的有:D7D0:8255A的数据线,和系统数据总线相连。RESET:复位信号,高电平有效。当RESET有效时,所有内部寄存器都被清除,同时,3个数据端口被自动设为输入方式。:片选信号,低电平有效。只有当有效时,芯片才被选中,允许8255A与
3、CPU交换信息。:片选信号读信号,低电平有效。当有效时,CPU可以从8255A中读取输入数据。:写信号,低电平有效。当有效时,CPU可以往8255A中写入控制字或数据。A1、A0:端口选择信号。8255A内部有3个数据端口和1个控制端口,当A1A0=00时选中端口A;A1A0=01时选中端口B;A1A0=10时选中端口C;A1A0=11时选中控制口。A1、A0和、及组合所实现的各种功能如表13-2所示。表13-2 8255功能选择适配表RDWRCSA1A0操作说明00010PA口数据总线01010PB口数据总线10010PC口数据总线00100数据总线PA口01100数据总线PB口10100数
4、据总线PC口11100数据总线控制寄存器1数据总线为三态11010非法状态110数据总线为三态2.8255A的控制字与工作方式的控制字与工作方式 8255A有两种控制命令字:一个是方式选择控制字,另一个是C口按位置位/复位控制字,其控制字格式如图图13-3和图13-4所示。初始化时,CPU首先对8255A的控制寄存器写入方式选择控制字,选择8255A的工作方式。在8255A工作期间,如果把一个置位复位控制字送入8255A的控制寄存器,就能将C口的某一位置1或清0,而不影响其他位的状态,使C口具有位操作功能。图图15-3 8255A方式选择控制字 图图15-4 C口按位置位/复位控制字8255有
5、3种工作方式:方式0、方式1和方式2。工作方式的选择是通过上述写控制字的方法来完成的。方式O(基本输入输出方式):A口、B口及c口高4位、低4位都可以设置为方式0输入或输出,不需要选通信号。单片机可以用8255A进行数据的无条件传送,数据在8255A的各端口能得到锁存和缓冲。在方式0下,输入口为缓冲输入方式,输出口具有锁存功能。方式1(选通输入输出方式):A口和B口都可以独立地设置为方式1,在这种方式下,8255A的A口和B口通常用于传送和它们相连外设的数据,C口作为A口和B口的握手联络线,以实现中断方式传送数据。方式2:(双向选通传送方式),只有A口可以设置为方式2,在这种方式下即能输入又能
6、输出。适用于与双向传送数据的外设,也适用于查询和中断方式的接口电路,3.8255与处理器地址分配与处理器地址分配 8255的地址是A1、A0和组合在主机上分的,假设某个项目连接中,它在主机地址是由单片机P0口和P2口控制的,地址从A0到A15,如果主机P2.0和和P2.1接8255的A0、A1,接P2.7,则具体地址分配如表13-3 。表15-3 8255地址分配P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0地址端口A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00 0111110 0
7、0 0111111117cffHA0 0111110 01 1111111117dffHB0 0111111 10 0111111117effHC0 0111111 11 1111111117fffH控制口 从上表中可清楚看出8255的地址分配,红色为控制口的选择。当然地址分配还有很多种,关键看硬件如何连接。二、任务分析二、任务分析 在YL-236型单片机实训考核装置上完成任务,具体任务为:应用8255实现在数码管上显示矩阵键盘的按键值。三、任务实施三、任务实施 1.流程图流程图 根据题目要求,本任务按照先对8255初始化,然后扫描键盘,最后再显示的过程,具体流程如图所示,开始键盘扫描8255
8、初始化数码管显示键盘是否按下?图图15-52接线图接线图 本任务需用到扩展的8255,按键模块、1602液晶显示模块,具体接线图如图图15-6,PO.0-P0.7 P2.0 P2.1P2.7 主机模块 P3.6P3.7 RST P3.0 P3.1 P3.2P3.0 指令模块ROW0-ROW3COL0-COL3 COL3D0-D7 PA0-PA7A0A1CS 8255WRRD PB0-PB3 RST PC0-PC3D0-D7 数码管CS1 CS2 WR 图图15-6 15-6 系统接线图系统接线图注意:由于图中不好画,所以主机P3.0、P3.1、P3.2 接线分别接的是数码管CS1、CS2、WR
9、,3程序代码程序代码 通过上面的分析和连线图,可以计算出8255地址为A 口地址为7cffH,B 口地址为7dffH,C口地址为7effH,控制口地址为7fffH。具体的程序代码如下:#include /包括头文件#includetypedef unsigned int uint;/定义变量typedef unsigned char uchar;#define com8255 XBYTE0 x7fff/寄存器控制端口#define PA8255 XBYTE0 x7cff/选中PA口#define PB8255 XBYTE0 x7dff/选中PB口#define PC8255 XBYTE0 x7
10、eff/选中PC口 sbit cs1=P30;/数码管段选sbit cs2=P31;/数码管位选sbit wr=P32;/读写控制uchar code scancode4=0 xfe,0 xfd,0 xfb,0 xf7;/键盘的扫描/*定义数码管段码,*/uchar code dsylight=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e;详情见书上4 实验结果实验结果 经过程序的调试、编译,并下载到单片机,可以在设备上显示,然后用仿真软件可以仿真得
11、出效果图如15-7所示。图图 15-7 8255综合应用效果图 四、四、任务自评任务自评 通过前面的讲解,同学们应该应该熟悉了8255的应用吧,那就通过下面的表格来反映学习情况。项目内容完成要求 分值完成情况自评分值 8255综合应用流程设计正确 20程序编写正确 30实物连线正确 20调试程序正确 30五、知识衔接五、知识衔接 18255的工作方式和使用范围的工作方式和使用范围 前面讲了8255的内部结构,其工作方式和适用范围如表13-4.表15-4 工作方式和适用范围方式方式名称使用范围方式0基本输入输出方式适用于无条件传送和查询方式的接口电路方式1选通输入输出方式适用于查询和中断方式的接
12、口电路方式2双向选通传送方式适用于与双向传送数据的外设、适用于查询和中断方式的接口电路28255的工作时序的工作时序 方式1输入时序 方式1的输入和输出图如图13-7(a)(b),其中和IBF是外设和8255间的一对应答联络信号,为的是可靠地输入数据a)方式1输入时序 (b)方式1输出时序15-8方式1的输入和输出时序图(2)方式2时序图 方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据,只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同,方式2的数据输入过程与方式1的输入方式一样。时序图如图15-9.图15-9 方式2的时序图六、六、作业作业1.应用8255,1602液晶显示、键盘、温度传感器实现室温的加减显示。2.应用8255实现机械手的稳定控制。