8155的外部引脚及内部逻辑结构的阐述.docx_第1页
8155的外部引脚及内部逻辑结构的阐述.docx_第2页
8155的外部引脚及内部逻辑结构的阐述.docx_第3页
8155的外部引脚及内部逻辑结构的阐述.docx_第4页
8155的外部引脚及内部逻辑结构的阐述.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8155详细说明155可编程通用并行接口芯片 7.4.1 8155的外部引脚及内部逻辑结构 1. 外部引脚 8155芯片为40引脚双列直插封装,单一的,5V电源,其引脚排列如图7.16所示。其中: : A口的输入输出信号线。该口作输入还是输出,由软件决定。 : B口的输入输出信号线。该口作输入还是输出,由软件决定。 : C口信号线。该口可作输入、输出口外,还可以传送控制和状态信号,因此C口共有四种工作方式,即:输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口 和B口控制端口方式(ALT4)。其工作方式由软件决定。 , :地址数据复用线。 :片选信号。低电平有效。 图7-16 8155外部引脚 :IO和RAM的选择信号。 ,0,选中RAM; ,1,选中IO口。 :地址锁存信号。除了进行 , 的地址锁存控制外,还用于把片选信号 和 等信号进行锁存。 :读选通信号。 :写选通信号。 :复位信号。复位后A口、B口和C口均为数据输入方式。 :定时器/计数器的计数脉冲输入端。 :定时器/计数器。 2. 内部逻辑结构 8155的内部逻辑结构如图7-17所示。由图可以看出,8155由三部分组成,即:存储单元为256字节的静态RAM;3个可编程的I/O,其中2个口(A口和B口)为8位口,1个口(C口)为6位口;1个14位的定时器/计数器 图7-17 8155的内部逻辑结构 由以上可知8155有A口、B口、C口和定时器/计数器低8位以及定时器/计数器高8位五个端口,另外8155内部还有一个命令/状态寄存器,所以8155内部共有6个端口。对它们只需要使用 即可实现编址,如表7-5所示。 表7-5 8155的端口地址编码 AD AD AD AD AD AD AD AD 对应端口 76543210命令/状态寄 0 0 0 存器 0 0 1 A口 0 1 0 B口 0 1 1 C口 定时器/计数 1 0 0 器低8位 定时器/计数 1 0 1 器高8位 7.4.2 8155的命令/状态字 1. 8155的命令字 由以上内容可知,8155的A口有输入和输出两种工作方式,B口也有输入和输出两种工作方式,而C口有输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口 和B口控制端口方式(ALT4)四种工作方式。这些端口的工作方式是由8155内部的命令寄存器(命令字)来控制的。命令字除了规定端口的工作方式还规定了定时器/计数器的工作方式。命令字只能进行写操作。其格式如图7.18所示。 图7.18 8155的命令字 当以无条件方式进行数据输入输出时,由于不需要任何联络信号,因此这时A口、B口和C口都可以进行数据的输入输出操作。 当A口或者B口以中断方式进行数据传送时,所需要的联络信号由C口提供,其中 为A口提供, 为B口提供。各联络信号的定义如表7-6所示。 表7-6 联络信号 C口 对A口控制(ALT3) 对A口和B口控制(ALT4) AINTR AINTR ABF ABF 输出 BINTR 输出 BBF 输出 联络信号共有三个,其中: INTR:中断请求信号(输出),高电平有效。送给MCS-51单片机的外中断请求 BF :缓冲器满状态信号(输出),高电平有效。 :选通信号(输入),低电平有效。数据输入时, 是外设送来的选通信号;数据输出时, 是外设送来的应答信号。 以中断方式进行数据输入输出时,其过程和8255基本相同,在此不作赘述。 2. 8155的状态字 状态字只能读不能写,所以8155的命令字和状态字共用一个地址。当对命令/状态字进行写操作时,写进去的是命令,当对命令/状态字进行读操作时,读出来的是状态。状态字用于寄存各端口及定时器/计数器的工作状态。其格式如图7.19所示。 图7.19 8155的状态字 7.4.3 8155的扩展逻辑电路 8155与MCS-51单片机的连接比较简单,因为8155的许多信号与MCS-51单片机兼容,可以直接连接。表7-7列出了这些信号的对应关系。 表7-7 8155与MCS-51单片机兼容的信号 MCS-51单MCS-51单8155 8155 片机 片机 , 口 ALE ALE RESET RST , 时数据地址复用线,之所以能与 口线直接相连而不需地址锁存器,是因为8155内部已有锁存器,可以进行地址锁存,因此连接时不需要再加锁存器。 8155与MCS-51单片机连接的主要麻烦在 信号上。因为是8155特有的信号,MCS-51单片机中没有相应的信号。因此要设法形成这个信号,提供给8155使用。 信号的形成有多种方法,不同的形成的方法对应着不同的编址方法。下面介绍比较常用的一种方法。用高位地址线作 信号 这种方法实际就是编址技术中的线选法。例如以 接 ,则8155与8051的连接如图7.20所示。 这种 信号产生方法中,对8155需要使用16位地址进行编址。这种方法适应于有多片I/O扩展及存储器扩展的较大单片机系统中,因此要使用片选信作为片选信号与 直接相连。 号。例如图中使用 图7.20 高位地址直接作为 信号 假设没有用到的地址位其值为系统复位后的值,即为1。则 时,端口地址范围为:0FDF8H,0FDFDH; 时,8155内部RAM地址范围是:0FC00H,0FCFFH。 7.4.4 8155的定时器/计数器 1. 8155定时器/计数器的计数结构 8155的定时器/计数器是一个14位的减法计数器,由两个8位寄存器构成,如图7.21所示。以其中的低14位组成计数器,剩下的两个高位( , )用于定义计数器输出的信号形式。 图7.21 8155定时器/计数器的计数结构 2. 定时器/数器的使用 8155的定时器/计数器与MCS-51单片机芯片内部的定时器/计数器,在功能上是完全相同的,同样具有定时和计数两种功能。但是在使用上却与MCS-51单片机的定时器/计数器有许多不同之处。具体表现在: 8155的定时器/计数器是减法计数,而MCS-51单片机的定时器/计数器?却是加法计数,因此确定计数初值的方法是不同的。 ? MCS-51单片机的定时器/计数器有多种工作方式,而8155的定时器/计数器只有一种固定的工作方式,即14位计数。通过软件方法进行计数初加载。 ? MCS-51单片机的定时器计数器有两种计数脉冲。定时功能时,以机器周期为计数脉冲;计数功能时,从芯片外部引入计数脉冲。但8155的定时器/计数器,不论是定时功能还是计数功能都是由外部提供计数脉冲,其信号引脚是TIMERIN。 ? MCS-51单片机的定时器/计数器,计数溢出时,自动置位TCON寄存器的计数溢出标志位(TF),供用户查询或中断方式使用;但8155的定时器/计数器,计数溢出时向芯片外部输出一个信号(TIMEROUT)。而且这一信号还有脉冲和方波两种形式,可由用户进行选择。具体由 , 两位定义: =00 单个方波 =01 连续方波 =10 单个脉冲 =11 连续脉冲 这四种输出形式如图7.22所示。 图7.22 8155信号输出形式 3. 定时器/计数器的控制 8155定时器/计数器的工作方式由命令字中的最高两位 进行控制(见图7.18)。具体说明如下: D7D6=00 不影响计数器工作。 D7D6=01 停止计数。如计数器未启动则无操作,如计数器正运行则停止计数。 D7D6=10 达到计数值(计数器减为0)后停止。 D7D6=11 启动,如果计数器没运行,则在装入计数值后开始计数;如果计数器已运行,则在当前计数值计满后,再以新的计数值进行计数。 7.4.5 8155的初始化 要求使用8155定时器/计数器对计数脉冲进行千分频,即计数1000后,TIAMEROUT端电平状态发生变化,并重新置数以产生连续方波。此外假定A口为输出方式,允许中断;B口为输入方式,不允许中断;C口为对A口控制方式(ALT3)。请编写初始化程序。 解:要求输出连续方波,所以定时器/计数器的最高两位M2 M1,01。计数器的其它14位装入计数初值。8155为减法计数,所以计数初值为1000,化为16进制数为03E8H。则定时器/计数器的高8位为:43H,低8位为:0E8H。 命令名字的设置如下: 计数器 B口 A口 C口 B口 A口 装入后启动 不允许中断 允许中断 ALT3 输入 输出 1 1 0 1 1 0 0 1 因此,命令字的内容为0D9H。假定命令/状态寄存器的地址为0FDF8H。则初始化程序为: MOV DPTR, #0FDF8H ;命令/状态寄存器地址 MOV A, #0D9H ;命令字 MOVX DPTR, A ;装入命令字 MOV DPTR, #0FDFEH ;计数器低8位地址 MOV A, #0E8H ;低8位计数值 MOVX DPTR, A ;写入计数值低8位 INC DPTR ;计数器高8位地址 MOV A, #43H ;高8位计数值 MOVX DPTR, A ;写入计数值高8位 7.4.6 8155的应用举例 8155有很强的功能,在此以8155作单片机键盘接口为例进行说明。在讲此例之前首先说明单片机的键盘接口和键功能的实现。 1. 单片机的键盘接口处理 单片机的键盘接口处理的内容包括以下几个方面: 键扫描 首先是判定有没有键被按下。如图7.23所示,键盘的行线一端经电阻接,5V电源,另一端接单片机的输入口线。各列线的一端接单片机的输出口线,另一端悬空。为判定有没有键按下,可先经输出口向所有列线输出低电平,然后再输入各行线状态。若行线全为高电平,则表明无键按下;若行线状态中有低电平,则表明有键被按下。 然后再判定被按键的位置。因为键盘矩阵有键被按下时,被按键处的行线和列线被接通,使穿过闭合键的那条行线变为低电平。假定图中A键被按下,则判定键位置的扫描是这样进行的: 先使输出口输出0FEH,然后输入行线状态,测试行线状态中是否有低电平的(7.23a)。如果没有低电平,再使输出口输出0FDH,再测试行线状态(7.23b)。到输出口输出0FBH时,行线中有状态为低电平者,则闭合键找到(图7.23c),通过此次扫描的列线值和行线值就可以知道闭合键的位置。至此扫描似乎可以结束,但是实际上扫描往往要继续进行下去,以发现出现的多键同时被按下。 图7.23 键扫描示意图 去抖动 当扫描表明有键被按下之后,紧接着应进行去抖动处理。因为常用键盘的键实际上就是一个机械开关结构,被按下时,由于机械触点的弹性及电压突然跳变等原因,在触点闭合或断开的瞬间会出现电压的抖动,如图7.24所示。抖动时间长短与键的机械特性有关,一般为5,10ms。而键的稳定闭合时间和操作者的按键动作有关,约为十分之几到几秒不等。 为保证键扫描的正确,需要进行去抖动处理。去抖动有硬件和软件两种方法。硬件方法就是在键盘中附加去抖动电路,从根上消除抖动产生的可能性;而软件方法则是采用时间延迟以躲过抖动(大约延迟20,30ms即可),待行线上状态稳定之后,在进行行状态输入。一般为简单起见多采用软件方法。 图7.24 键闭合和断开时的电压抖动 键码计算 被按键确定下来之后,接下来的工作是计算闭合键的键码,因为有了键码,才好通过散转指令把程序执行转到闭合键对应的中断程序上去。 本来可以直接使用该闭合键的行列值组合产生键码,但这样做会使各子程序的入口地址比较散乱给JMP指令的使用带来不便。所以通常都是以键的排列顺序安排键号,例如图7.25所示的键号是按从左到右、从上向下的顺序编排的。 图7.25 键码图 这样安排,使键码既可根据行号列号以查表求得,也可通过计算得到。图7.25所示的键码编排规律,各行首号依次是00H、08H、10H、18H,如列号按0,7顺序,则键码的计算公式为: 等待键释放 计算键码后,再以延时后进行行扫描的方法等待键释放。等待释放是为了保证键的一次闭合仅进行一次处理。 2. 键盘接口的控制方式 在单片机的运行过程中,何时执行键盘扫描和处理,可有下列三种情况: l 随机方式,每当CPU空闲时执行键盘扫描程序 l 中断方式,每当有键闭合时才向CPU发出中断请求,中断响应后执行键盘扫描程序 l 定时方式,每隔一定时间执行一次键盘扫描程序,定时可由单片机的定时器完成。 3. 键处理子程序 在计算机中每一个键都对应一个处理子程序,得到闭合键的键码后,就可以根据键码,转到相应的键处理子程序(分支以JMP等散转指令实现),进行字符、数据的输入或命令处理。这样就可以实现该键设定的功能。 总结以上内容,键处理的流程如图7.26所示。 图7.26 键处理的流程图 4. 用8155作单片机键盘接口 ? 接口电路逻辑图 以8155作84键盘的接口为例。A口为输出口,接键盘列线。C口为输入口,以 接键盘的4条行线。如图7.27所示。 图7.27 8155作键盘接口 则A口地址为0FDF9H,C口地址为0FDFBH。 ?判定有无闭合键的子程序 判定有无闭合键的子程序为KSI,供在键盘扫描程序中调用。程序如下: KSI: MOV DPTR,#0FDF9H ;A口地址 MOV A, #00H MOVX DPTR,A ;A口送00H INC DPTR INC DPTR ;C口地址 MOVX A,DPTR ;读C口 CPL A ANL A,#0FH ;屏蔽高四位 RET 执行KSI子程序的结果是:有闭合键则 ,无闭合键则 。 ?键盘扫描程序 如前所述,在单片机应用系统中常常是键盘和显示器同时存在,因此可以把键盘扫描程序和显示程序配合起来使用,即:把显示程序作为键扫描程序的延时子程序。这样做既省去了一个专门的延时子程序,又能保证显示器常亮的可观效果。 假定本系统中显示程序为DIR,执行时间约为6ms。键盘扫描程序如下: KEY1: ACALL KSI ;检查是否有键闭合 JNZ LK1 ;A非“0”则转移 ACALL DIR ;显示一次(“延时6s) AJMP KEY1 LK1: ACALL DIR ;有键闭合二次延时 ACALL DIR ; 共12ms去抖动 ACALL KSI ;再检查是否有键闭合 JNZ LK2 ;有键闭合转移到LK2 ACALL DIR AJMP KEY1 ;无键闭合,延时6ms后转KEY1 LK2: MOV R, #0FEH ;扫描初值送R 22MOV R, #00H ;扫描列号送R 44LK4:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论