版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第7章 常用数字接口电路1主要内容: 了解并行通信与串行通信的特点 掌握两种可编程接口芯片的应用2一、并行通信与串行通信3并行通信特点:以数据字节或字为单位进行数据传送; 适合近距离传送 ;对传送的信息不要求固定格式。分类输入和输出数字和模拟单向和双向简单接口和可编程接口 4串行通信特点:按位传送造价低,适合于远距离传送传送方式全双工半双工单工5二、可编程定时/计数器82536定时信号的产生在数字电路、计算机系统以及实时控制系统中常需要用到定时信号。如函数发生器、计算机中的系统日历时钟、DRAM的定时刷新、定时采样和控制系统等,都要用到定时信号。定时信号可以利用软件编程和硬件的方法得到软件定
2、时:设计一个延时子程序硬件定时:利用专门的定时/计数器7掌握:引线功能及计数启动方法6种工作方式及其输出波形应用:芯片与系统的连接芯片的初始化编程8主要内容1、8253 的基本功能2、8253 的内部结构3、8253 的引脚4、8253 的工作方式5、8253 的控制字与编程91.8253 的基本功能8253 的基本功能是对外部输入脉冲进行计数,若外部输入脉冲是连续而均匀的,则利用脉冲个数乘以脉冲周期可以计算出时间,从而实现了定时功能。8253 芯片内具有3 个独立的16 位减法计数器(或称为计数通道),每个计数器性能如下:(1) 最高计数频率。(2) 可编程设定为按二进制计数或BCD 码计数
3、。有6 种工作方式,可编程确定工作在哪一种方式。102.8253 的内部结构1) 数据总线缓冲器:该缓冲器为8 位双向三态,是CPU 与8253 内部之间的数据传输通道。2) 读/写逻辑电路:接收CPU 送来的读写、片选及地址信号,对8253 内部各部件进行控制。113) 控制字寄存器每个计数通道有一个控制字寄存器,用来接收CPU 写入的控制字。控制字是8 位的,只能写不能读。三个计数通道的控制字寄存器共用一个控制端口,由写入的控制字的最高2 位指明该控制字属于哪一个计数通道。124) 计数器02(8253 包含3 个相互独立的、内部结构完全相同的16 位减法计数器。每个计数器均包含:)一个8
4、 位的控制字寄存器,一个16 位的计数初值寄存器CR(它用来存放计数初值,可通过程序设定)以及计数执行单元CE,它是一个16 位的减1 计数器,初值是计数初值寄存器的内容,它只对CLK 脉冲计数,一旦计数器被启动后,每出现一个CLK 脉冲,计数执行单元中的计数值减1,当减为0 时,通过OUT 输出指示信号,一个16 位的输出锁存器通常跟随计数执行单元内容的变化而变化,当接收到CPU 发来的锁存命令时,就锁存当前的计数值而不跟随计数执行单元变化,直到CPU 从中读取锁存值后,才恢复到跟随计数执行单元变化的状态,从而避免了CPU 直接读取计数执行单元时干扰计数工作的可能。初值寄存器GATECLKO
5、UT减1计数器输出锁存器133.8253 的引脚8253 为24 引脚双列直插式封装结构,其引脚按功能分为与CPU 接口引脚和与外设接口引脚,分别如下:1) 与CPU 的接口引脚D7D0:三态双向数据线,与CPU 数据总线直接相连。WR :写控制信号,输入,低电平有效。RD :读控制信号,输入,低电平有效。CS:片选信号,输入,低电平有效。当CS0 时,8253 被选中,允许CPU 对其进行读/写操作。14A1,A0:地址线,输入,用于端口选择。8253 需要占用4 个连续的端口地址,这4 个端口地址分别对应8253 内部的控制寄存器(接收并存放工作方式控制字)和三个计数通道的计数值寄存器(接
6、收并存放计数初值)。具体如下:A1A011,选中控制寄存器端口,可以向8253 送控制字;A1A000、01、10,分别选择计数器0、1、2,可以对它们读/写计数值。CS A1 A0I/O地址读操作RD写操作WR0 0 00 0 10 1 00 1 140H41H42H43H读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字152) 与外设的接口引脚CLK02:计数器0、1、2 的外部计数时钟输入端。GATE02:计数器0、1、2 的门控信号输入端。门控信号用来禁止、允许或重新开始一个新计数过程,详见各工作方式的说明。OUT02:计数器0、1、2 的计数输出端。当定时/
7、计数时间到时,该端输出标志信号。164.8253 的工作方式8253共有6种不同的工作方式,在不同的工作方式下,计数过程的启动方式、OUT端的输出波形都不一样;自动重复功能和GATE的控制作用以及写入新的计数初值对计数过程产生的影响也不相同。171. 方式0 (计数结束产生中断Interrupt on Terminal Count)方式0为软件启动、不自动重复计数方式。当写入控制字CW 后,OUT 信号变为低电平。当将计数初值写入计数初值寄存器CR 后,利用下一个CLK 脉冲的下降沿将CR 的内容装入计数执行单元CE 中,再从下一个CLK 脉冲的下降沿开始,CE 执行减1 计数过程。当写入控制
8、字后,计数器的输出OUT 变成低电平,若门控信号GATE 为高电平,计数器开始减1 计数并且维持OUT 为低电平,直到CE 中的数值减到0 时,OUT 变为高电平,以向CPU 发出中断申请。18门控信号GATE 可以暂停计数,当GATE0 时,计数停止;GATE 恢复为高电平后,继续计数。所以,如果在计数过程中,有一段时间GATE 变为低电平,那么,输出端OUT的低电平持续时间会因此而延长相应的长度。在计数过程中可以改变计数值,若是8 位数,在写入新的计数值后立即按新值重新开始计数,若是16 位数,写入第一个字节后计数停止,写入第二个字节后立即按新值重新计数。不自动重复计数:每写入一次计数初值
9、只计数一个周期,若要重复计数需CPU再次写入计数初值。19方式0 计数结束产生中断GATEOUTCLK 031244方式0WR设定工作方式设定计数初值计数值送入计数器计数过程计数结束202. 方式1 复触发单稳态(Hardware Retriggerable one-shot)方式1 可以输出一个宽度可控的负脉冲。当CPU 写入控制字后,OUT 即变为高电平,写入初值,计数器并不开始计数,而是等到门控信号GATE 上升沿到来后,并且在下一个时钟的下降沿才开始减1 计数,并使输出OUT 变为低,直到计数到0,输出OUT 再变为高。一旦启动,GATE端变低也不会影响计数;可重复触发,当计数到0后,
10、不用再次写入初值,只要用GATE的上升沿重新触发一次计数器,即可产生一个同样宽度的负脉冲。21方式1 复触发单稳态如果在输出保持低电平期间,写入一个新的计数值,不会影响原计数过程,只有当门控GATE 上出现一个新的上升沿后,才使用新的计数值重新计数。如果一次计数尚未结束GATE 上又出现新的触发脉冲,则从新的触发脉冲之后的CLK 下降沿开始重新计数,这时负脉冲的宽度将增加。22方式1 复触发单稳脉冲设定工作方式设定计数初值硬件启动计数值送入计数器计数过程计数结束GATEOUTCLK 031244方式1WR233. 方式2 (分频器Rate Generator)使用方式2 能对输入信号CLK进行
11、n(n 为计数值)分频。当CPU 送出控制字后输出OUT将变高。若门控信号GATE 为高电平,当写入计数初值到CR 后,在下一个CLK 脉冲的下降沿,将CR 装入CE 并启动计数器工作,计数器对输入时钟CLK 进行计数,直至计数器减至1 时,输出OUT 变为低,经过一个时钟周期后输出OUT 又变为高,计数器自动从初值开始重新计数。以上为软件启动,也可以用硬件启动:若送计数初值时GATE为低电平,则要等到GATE信号有低变高时才启动计数(即硬件启动)24方式2 分频器计数过程受门控信号GATE 的控制,GATE 为低电平时暂停计数,强迫OUT端输出高电平;由低电平恢复为高电平后,在第一个时钟脉冲
12、下降沿计数器被置入初值从头开始重新计数。在计数过程中改变初值,对正在进行的计数过程没有影响,而是在下一轮计数过程,才按新的计数值进行计数。方式2计数器可自动重复计数,因此在计数值减到零时,CR 内容能自动地、重复地装入到CE 中,只要CLK 是周期性的脉冲序列,在OUT 上就能连续地输出周期性的分频信号。254. 方式3 (方波发生器Square Ware Mode)采用方式3 时,OUT 端输出连续方波,若计数值N 为偶数,则输出对称方波,前N/2个脉冲期间为高电平,后N/2 个脉冲期间为低电平;若N 为奇数,则前(N1)/2 个脉冲期间为高电平,后(N1)/2 个脉冲期间为低电平。除输出波
13、形不同外,方式3 的其他情况均同方式2。265. 方式4 (软件触发选通脉冲Software Triggered Strobe)当方式4 写入控制字后,OUT 输出即变为高电平,若门控信号GATE 为高电平,当写入计数初值到CR 后,在下一个CLK 脉冲的下降沿将CR 装入CE 并启动计数器工作,执行减1 计数过程,当计数到0 时输出一个时钟周期的负脉冲,计数器停止计数,这种计数方式是一次性的。只有输入新的计数值才重新开始新的计数。计数期间,如果写入新的计数值,立即按新值重新计数(具体情况同方式0)。当门控GATE 为低电平时,计数停止;GATE 为高电平时,从初值开始重新计数此方式中,计数过
14、程的启动是由输出指令对CR 设置计数初值时被“触发”的,并且只有再次将初值写入CR 操作时才会启动另一个计数过程。GATEOUTCLK031244方式42233310WR276. 方式5 (硬件触发选通脉冲Hardware Triggered Strobe)该方式在写入方式控制字后,输出OUT 保持高电平,然后写入计数初值到CR 后,OUT仍然维持高电平,但并不开始计数,只有当门控信号GATE 出现由低电平变高电平的上升沿后,下一个CLK 脉冲的下降沿才将CR 装入CE,并启动计数器开始对CLK 脉冲计数(相当于由硬件触发计数过程),当计数到0 时OUT 上输出一个CLK 周期的负脉冲,然后计
15、数器停止。计数过程在未结束之前,GATE 上重新出现上升沿时,将使计数器从初值开始重新计数。方式5 是由GATE 的上升沿触发计数器开始计数操作。输出脉冲宽度在正常计数情况下,如果写入的计数初值为N,输出端OUT 维持N 个时钟周期的高电平,1 个时钟周期的低电平。GATEOUTCLK031244方式522333110WR28各种工作方式的输出波形方式 0方式 1方式 2方式 3方式 4方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 12930说明(适用于所有工作方式):(1) 当控制字写入计数器后,所有控制逻辑电路立即处于复位状态,计数器输出端OUT进入规定的
16、初始状态(高电平或低电平)。(2) 计数初值写入计数初值寄存器后,要经过一个时钟周期,计数器才开始计数。(3) 在时钟脉冲的上升沿对门控信号GATE 进行采样。(4) 计数器真正开始计数是在时钟脉冲的下降沿。关于计数开始处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送到减1计数器。从第二个CLK信号的下降沿,计数器才真正开始减1计数。31实验1计数开始实验1计数开始计数开始32实验2计数开始335.8253 的控制字与编程1)工作方式控制字2)初始化编程3)8253 在PC/XT 中的应用341)工作方式控制
17、字8253 的编程控制比较简单,只有一个1 字节的控制字。该控制字用来设置各个计数通道的工作方式,以及计数值的锁存与读取(每个计数通道的计数值在计数过程中可随时读取,但控制字不能读取)。8253 工作方式控制字的格式及含义如图所示。D7D6D5D4D3D2D1D035方式控制字计数器读写格式工作方式数制D7D6D5D4D3D2D1D000 计数器001 计数器110 计数器211 非法00 计数器锁存命令 01 只读写低字节10 只读写高字节11 先读写低字节 后读写高字节000 方式0001 方式1010 方式2011 方式3100 方式4101 方式50 二进制1 十进制控制字写入控制字I
18、/O地址(A1A011)示例362)初始化编程8253 使用前,必须首先对其进行初始化,初始化包括写入控制字和计数初值。顺序如下:当控制字D00 时,即二进制计数,初值可在0000HFFFFH 之间选择,初值为0 表示最大值65536(216);当控制字D01 时,装入初值应为BCD 码格式,其值可在00009999 之间选择,初值为0 表示最大值10000(104)。控制字D5D4 位决定控制字的位数(8 位或16 位),若为“01”,则只需写入计数值的低8 位,高8 位自动置0;若为“10”,则只需写入计数值的高8 位,低8 位自动置0;若为“11”,则计数值为16 位,分两次写入,必须先
19、写低8 位,后写高8 位。(3) 计数初值要写入各计数器对应的端口地址,计数器0 对应A1A000 的端口地址,计数器1 对应A1A001 的端口地址,计数器2 对应A1A010 的端口地址。378253应用例1某系统中8253 的端口地址为40H43H,要利用其通道2 对CLK2 上的外部输入脉冲进行计数,计满100 个后向CPU 发中断请求,试写出相应初始化程序。本例中采用二进制计数,则初值100 为64H,写入时只写低8 位即可。由于要向CPU发中断申请,我们设置通道2 工作在方式0,这样计数结束时的正跳变信号可作为中断请求信号 。控制字的格式应为:10010000B90HMOV AL,
20、90HOUT 43H,ALMOV AL,64HOUT 42H,AL388253应用例2采用8253作定时/计数器,其接口地址为0120H0123H。输入8253的时钟频率为2MHz。要求:CNT0在定时100s后产生中断请求CNT1输出100KHz的连续方波信号CNT2每1ms输出一个CLK周期宽的负脉冲画线路连接图,并编写初始化程序. 398253应用例CLK0GATE0OUT1D0D7WRRDA1A0CSDBIOWIORA1A0译码器8253CLK2GATE1GATE2+5VCLK12MHzOUT0OUT2408253应用例计算计数初值: CNT0:100s/0.5us=200 CNT1:
21、2 MHz/100KHz=20 CNT2: 1ms/0.5us=2000确定控制字: CNT0:方式0,低8位计数值 CNT1:方式3,低8位计数值 CNT2:方式2,16位计数值000100000101011010110100418253应用例 初始化程序CNT0:MOV DX,0123HMOV AL,10HOUT DX,ALMOV DX,0120HMOV AL,200OUT DX,ALCNT1:MOV DX,0123HMOV AL,56HOUT DX,ALMOV DX,0121HMOV AL,20OUT DX,ALCNT2:MOV DX,0123HMOV AL,0B4HOUT DX,ALM
22、OV DX,0122HMOV AX,2000OUT DX,ALMOV AH,ALOUT DX,AL423)8253 在PC/XT 中的应用PC/XT 中,使用了一片8253,其地址范围为40H43H,3 个CLK 的输入均为,GATE0 和GATE1 接5V 电源,GATE2 由8255 的PB0 控制。 A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至DMA控制器接至扬声器驱动器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS433 个计
23、数通道的作用及BIOS 中初始化程序分别为:(1) 计数器0:编程为方式3,每55ms 向中断控制器的IRQ0 引脚发送一次中断请求信号,用 于CPU 计时和磁盘驱动器的定时。初始化程序如下:MOV AL,00110110B ;通道0 方式控制字OUT 43H,ALMOV AL,0OUT 40H,AL ;计数初值为65536OUT 40H,AL44(2) 计数器1:工作于方式2,OUT1 输出接至DMA 请求触发器的CP 端,每隔请求 一次DMA 操作,进行动态RAM 的刷新。初始化程序如下:MOV AL,01010100BOUT 43H,ALMOV AL,12HOUT 41H,AL(3) 计
24、数器2 用于产生方波驱动扬声器发声。BIOS 中有一个发声子程序BEEP,它对计数通 道2 的初始化代码为:MOV AL,10110110BOUT 43H,ALMOV AX,0533HOUT 42H,ALMOV AL,AHOUT 42H,AL45三、可编程并行接口825546掌握:主要引线功能及结构3种工作方式及其特点应用:芯片与系统的连接芯片的初始化编程数据输入/输出控制程序设计47可编程并行接口概念CPU 与外设间的数据传送都是通过接口来实现的。CPU 与接口的数据传输总是并行的,即一次传输8 位或者16 位;而接口与外设间的数据传输则可分为两种情况:串行传送与并行传送。串行传送是数据在一
25、根传输线上一位一位地传输,而并行传输是数据在多根传输线上一次以8 位或16 位为单位进行传输。与串行传输相比,并行传输需要较多的传输线,成本较高,但传输速度快,尤其适用于高速近距离的场合。能实现并行传输的接口称为并行接口,并行接口分为不可编程并行接口与可编程并行接口。不可编程并行接口通常由三态缓冲器及数据锁存器等搭建而成,这种接口的控制比较简单,但要改变其功能必须改变硬件电路。可编程接口的最大特点是其功能可通过编程设置和改变,因而具有极大的灵活性。488255A 的内部结构1) 数据总线缓冲器该缓冲器为8 位、双向、三态的缓冲器,直接与系统数据总线相连,是CPU 与8255A间传送数据的必经之
26、路。各种命令字的写入及状态字的读取,都是通过该数据总线缓冲器传送的。2) 读/写控制逻辑CPU 通过输入和输出指令,将地址信息和控制信息送至该部件,由该部件形成对端口的读/写控制,并通过A 组控制和B 组控制电路实现对数据、状态和控制信息的传输。498255A 的内部结构3) A 组和B 组控制A 口及C 口的高4 位构成A 组,B 口及C 口的低四位构成B 组。A 组控制和B 组控制接收CPU 写入的控制字,并据此决定A 组端口及B 组端口的工作方式。4) 数据端口A、B、C(8255A 有3 个8 位数据端口,分别具有如下特点:(1) A 口具有一个8 位数据输入锁存器和一个8 位数据输出
27、锁存器/缓冲器端口A 无论用作输入口还是输出口,其数据均能被锁存。(2) B 口具有输出锁存器/缓冲器和输入缓冲器。作为输入口时,它不具备锁存能力,因此外设输入的数据必须维持到被微处理器读取为止。(3) C 口具有输出锁存器/缓冲器和输入缓冲器。C 口除用作输入和输出口外,在方式1及方式2 下,其部分引脚要作为A 口及B 口的联络信号用,具体情况在工作方式中介绍。508255A 的外部引脚1) 与微处理器连接的信号线2) 8255A 与外部设备连接的信号线518255A 的外部引脚1) 与微处理器连接的信号线D7D0:数据线,三态双向8 位,与系统的数据总线相连。CS:片选信号,低电平有效。为
28、低电平时,8255A 才能接受CPU 的读/写。WR:写信号,低电平有效。为低电平时,CPU 可以向8255A 写入数据或控制字。RD:读信号,低电平有效。为低电平时,允许CPU 从8255A 读取各端口的数据和状态。A1,A0:端口地址选择信号。用于选择8255A 的3 个数据端口和一个控制端口。A1A000 选择A 口,A1A001 选择B 口,A1A010 选择C 口,A1A011 选择控制口。RESET:复位信号,高电平有效。为高电平时,8255A 所有的寄存器清0,所有的输入/输出引脚均呈高阻态,3 个数据端口置为方式0 下的输入端口。528255A 的外部引脚2) 8255A 与外
29、部设备连接的信号线PA7PA0:A 口与外部设备连接的8 位数据线,由A 口的工作方式决定这些引脚用作输入/ 输出或双向。PB7PB0:B 口与外部设备连接的8 位数据线,由B 口的工作方式决定这些引脚用作输入/ 输出。PC7PC0:C 口8 位输入/输出数据线,这些引脚的用途由A 组、B 组的工作方式决定。538255A的工作方式方式0:基本的输入输出方式 适用于无条件传送和查询方式的接口电路方式1:选通的输入输出方式 适用于查询和中断方式的接口电路方式2:双向传输方式 用于与双向传送数据的外设 适用于查询和中断方式的接口电路18548255A的工作方式端口工作方式A方式0方式1方式2B方式
30、0方式1C方式017558255A 的工作方式方式0:基本输入/输出在方式0 下,端口A和端口B可以通过方式选择控制字设定该端口作为输入端口或输出端口来工作。端口C则分为两个4位端口,高4位作为一个端口,低4位作为另一个端口。它们可以通过方式选择控制字规定该端口作为输入端口或输出端口方式0最适合于无条件传送方式,不需要发控制信号给外设,也不需要查询外设的状态。CPU直接执行输入输出指令将数据读入或写出。方式0也能用于查询工作方式,A、B口用来传输数据。由于没有固定的应答信号,这时常将C口的高四位定义为输入口,用来接收外设的状态信息;而将C口低四位定义为输出口,输出控制信息。端口C工作于方式0时
31、,可以按照置1/置0控制字改变端口C的任一引脚的电平。56方式1:带选通的输入/输出方式一的特点是:仅A 口、B 口可工作在这种方式下,A 口或B 口可以为输入,也可以为输出,但不能既输入又输出。不论输入还是输出,都要占用C 口的某些引脚作为联络信号用,并且这种占用关系是固定的。C口未被占用的位仍可用于输入或输出A 口和B 口都设置为方式1 输入当A 口设定为方式1 输入时,A 口所用三条联络信号线是C 口的PC3、PC4、PC5,B口则用了C 口的PC0、PC1、PC2 作为联络信号。57各联络线的定义如下:STB :外设送来的输入选通信号,低电平有效。当有效时,表示外设的数据已准备好,同时
32、将外设送来的数据锁存到8255A 端口的输入数据缓冲器中。IBF:8255A 送外设的输入缓冲器满信号,高电平有效。有效时,说明外设数据已送到输入缓冲器中,但尚未被CPU 取走。该信号一方面可供微处理器查询用,另一方面送给外设,阻止外设发送新的数据。IBF 由STB 信号置位,由读信号的后沿将其复位。INTR:8255A 送到CPU 或系统总线的中断请求信号,高电平有效。当外设要向CPU传送数据或请求服务时,8255A 用INTR 端的高电平向CPU 提出中断请求。INTR 变高的条件是:当输入缓冲器满信号变为高即IBF1,并且中断请求被允许即INTE1,才能使INTR 变高,向CPU 发出中
33、断请求。INTE:中断允许信号。A 口用PC4 的按位置位/复位控制,B 口用PC2 的按位置位/复位控制。只有当PC4 或PC2 置1 时,才允许对应的端口送出中断请求。58方式1 : A口输入时工作过程当外设准备好数据,并将数据送到数据线上后,送出一个STB 选通信号。8255A 的A口数据锁存器在STB 的下降沿将数据锁存。8255A 向外设送出高电平IBF 信号,作为STB的应答信号,表示数据已锁存,暂时不要再送数据。如果PC41,这时就会使INTR 变成高电平输出,向CPU 发出中断请求。CPU 响应中断,执行IN 命令时,RD 的下降沿清除中断请求,而RD 结束时的上升沿则使IBF
34、 复位到零。外设在检测到IBF 为零后,便开始发送下一数据。59A 口和B 口都设置为方式1 输出当A 口与B 口设为方式1 输出时,也分别指定C 口的三条线为联络信号,A 口所用三条联络信号线是C 口的PC3、PC6、PC7,B 口则用了PC0、PC1、PC2。60各联络线的定义如下:OBF :该信号是8255A 输出给外设的输出缓冲器满信号,低电平有效。当有效时,表示CPU 已将数据写到8255A 的输出端口,等待外设取走数据。ACK:响应信号,低电平有效,由外设送来。当为低电平时,表示8255A 的数据已被外设取走,是对OBF 的回答信号。INTR:中断请求信号,高电平有效。当外设取走数
35、据后,8255A 用INTR 端向CPU 发中断请求,请求CPU 输出后面的数据。INTR 引脚上只有当ACK 、OBF 和INTE 都为高电平时,才能发出中断请求,该请求信号由CPU 写操作时的WR 上升沿复位。INTE 中断允许触发器,A 口的INTE 由对PC6 的置位/复位设置,B 口的INTE 由对PC2的置位/复位设置。61方式1 : A口输出时工作过程CPU 通过执行OUT 指令,向8255A 端口输出数据,此时将产生WR 有效信号。写操作完成后,WR 的上升沿使OBF 变低,表示输出缓冲器已满,通知外设取走数据,并且WR的上升沿使中断请求INTR 变低,即使之无效。外设取走数据
36、后,用一个有效的ACK 信号回答8255A, ACK 的下降沿使OBF 变高(无效)。如果INTE1,则ACK 负脉冲的下降沿再使INTR 变高(有效),产生中断请求。CPU 可在中断服务程序中向8255A 输出下一个数据。62基本特点:1 、端口A和端口B可分别作为输入或输出端口工作在方 式1。具体安排由方式选择控制字决定。2、若端口A和端口B只有一个端口工作方式1,则端口C中就 有3条线被规定为配合方式1工作的联络信号。此时另一 个端口可以工作在方式0,端口C中剩余的5条线也可以 工作于方式0。3、若端口A和端口B都工作于方式1,则端口C中就有6条线被 规定为配合方式1工作的联络信号。此时
37、端口C中剩余2条 线仍可以工作于方式0。4、端口A和端口B在方式1下,输入和输出均具有锁存功能。5、当端口C的相应引脚规定为联络信号时,将不能通过编程 再改变。638255工作于方式0的连接示意图D0D7WRRDA1A0CSDBIOWIORA1A0译码器8255PA0 |PA7B口PC0D0D7数据状态数据外设1外设264方式2:带选通的双向输入/输出方式2 是一种双向选通输入/输出方式,只适用于A 口,双向方式使外设和CPU之间进行双向通信,既能发送数据也能接收数据,即此时A口即作为输入口也作为输出口。方式2 下C 口的5 条线(PC3PC7)作为口的联络线,口只能工作在方式0 或方式1 下
38、。若B 口工作在方式1 下,口的位(PC0PC2)作为其联络线;若B 口工作在方式0 下,PC0PC2 可作为输入/输出线。65各联络信号的含义如下:INTR:中断请求信号,高电平有效。不管是输入还是输出,都由这个信号向CPU 发中断申请。OBF :输出缓冲器满,低电平有效。其作用等同于方式1 输出时的OBF 。ACK :来自外设的响应信号,低电平有效。其作用等同于方式1 输出时的ACK 。INTE1:A 口输出中断允许,由PC6 置位/复位。当INTE1 为1 时,8255A 输出缓冲器空时通过INTR 向微处理器发出输出中断请求信号;当INTE1 为0 时,屏蔽输出中断。STB :来自外设
39、的选通输入,低电平有效。其作用等同于方式1 输入时的STB 。IBF:输入缓冲器满,高电平有效。其作用等同于方式1 输入时的IBF。INTE2:A 口输入中断允许,由PC4 置位/复位。当INTE2 为1 时,8255A 输入缓冲器满时通过INTR 向微处理器发出输入中断请求信号;当INTE2 为0 时,屏蔽输入中断。66方式2 : A口工作过程输入时,外设向8255送来数据,同时发STB信号给8255,该信号将数据锁存到8255的A口,从而使IBF有效。STB信号结束使INTR有效,向CPU请求中断。CPU响应中断后,发出读信号IOR,从A口中将数据读走。IOR信号会使INTR和IBF信号无
40、效,从而开始下一个数据的读入过程。67A口:方式2工作过程输出时,CPU发出写脉冲IOW,向A口写入数据。IOW信号使INTR变低电平,同时使OBF有效,外设接到OBF信号后发出ACK信号,从A口读出数据。ACK信号使OBF无效,并使INTR变高,产生中断请求,准备输出下一个数据68 三种工作方式以上介绍了8255A 的三种工作方式,它们分别应用于不同的场合。方式0 可用于无条件输入或输出的场合,如读取开关量、控制LED 显示等;方式1 提供了联络信号,可用于查询或中断方式输入或输出的场合;方式2 是一种双向工作方式,如果一个外设既是输入设备,又是输出设备,并且输入和输出是分时进行的,那么将此
41、设备与8255A 的A 口相连,并使A 口工作在方式2 就非常方便,如磁盘就是一种这样的双向设备。微处理器既能对磁盘读,又能对磁盘写,并且读和写在时间上是不重合的。698255A 的控制字控制字用来设置8255A 的工作方式,8255A 有二个控制字,工作方式选择控制字和C口按位置位/复位控制字。1. 工作方式控制字8255A 各数据端口的工作方式由方式选择控制字进行设置。通过向控制寄存器写入方式选择控制字,可以让3 个数据端口以需要的方式工作。工作方式控制字的格式如图所示。2. C 口按位置位/复位控制字按位置位/复位控制字的作用是使C 口的某一引脚输出特定的电平状态(高电平或低电平),控制
42、字的格式如图所示。这二个控制字写入同一端口地址(A1A011),为了进行区分,控制字的D7 位作为标位,D7=1 表示是工作方式控制字;D7=0 表示是按位置位/复位控制字。7071说明:(1) 仅C 口可按位置位/复位,且只对C 口的输出状态进行控制(对输入无作用)。(2) 一次只能设置C 口1 位的状态。(3) 这个控制字应写入控制口,而不是C 口72初始化编程例工作方式设置:设8255A 的端口地址为60H63H,要求A 组工作在方式0,A 口输出,C 口高4 位输入;B 组工作在方式1,B 口输出,C 口低4 位输入,则对应的工作控制方式字为:10001101B 或8DH。初始化程序如
43、下:MOV AL,8DH ;设置方式字OUT 63H,AL ;送到8255A 控制字寄存器中C口设置:要使PC7 置1,PC3 置0,设8255A 的地址为320H323H,则程序为:MOV AL,0FH ;PC7 置1 的控制字MOV DX,323HOUT DX,ALMOV AL,06H ;PC3 置0 的控制字OUT DX,AL738255应用8255A 工作时首先要初始化,即要写入控制字来指定其工作方式。如果需要中断,还要用C 口按位置位/复位控制字将中断标志INTE 置1 或置0。初始化完成后,就可对3 个数据端口进行读/写。例1:利用8255作为打印机的连接接口,并通过该打印机接口打
44、印字符串,字符串长度放在DS段的COUNT单元中,要打印的字符存放在从DATA单元开始的数据区中。74打印机的主要接口信号75打印机接收主机传送数据的过程(1) 首先查询BUSY 信号。若BUSY1(忙),则等待;当BUSY0(不忙)时,才能送出数据。(2) 将数据送到数据线上,但此时数据并未自动进入打印机。(3) 再送出一个数据选通信号STROBE 给打印机,此后数据线上的数据将进入打印机的内部缓冲器。(4) 打印机发出“忙”信号,即置BUSY1,表明打印机正在处理输入的数据。等到输入的数据处理完毕(打印完1 个字符或执行完1 个功能操作),打印机撤销“忙”信号,即置BUSY0。(5) 打印
45、机送出一个回答信号ACK 给主机,表示上一个字符已经处理完毕76该电路的设计思想是:8255A 的A 口、C 口工作于方式0,A 口用来输出8 位打印数据,C 口的PC6 引脚作选通输出,用来产生STROBE 信号,PC1 引脚用作状态输入,与打印机的BUSY信号相连。因此,可通过初始化使C口高4位为输出,C口低4位为输入。B口不使用,初始化时可任意定义为输入或输出(本例定义为输出)6177D7D6D5D4D3D2D1D011000000方式控制字:10000001B或81H方式选择控制字:D7D6D5D4D3D2D1D001011000置0/置1控制字:00001101B或0DHC口置0/置
46、1控制字:78PC6MOV DX,0FBC2HMOV AL,0CHOUT DX,ALNOP MOV AL,0DHOUT DX,ALPC15选通信号的产生过程MOV DX,0FBC2HMOV AL,0OUT DX,ALNOP MOV AL,40HOUT DX,AL方法1:通过往C口输出数据(先将PC6初始化为1,然后输出一个0,再输出一个1)方法2:利用控制字对C口进行按位置位/复位操作来实现79实现程序INIT:MOV DX,0FBC3HMOV AL,10000001BOUT DX,ALMOV AL,00001101BOUT DX,ALMOV CX,COUNTMOV SI,OFFSET DAT
47、AGOON:MOV DX,0FBC2HIN AL,DXAND AL,02HJNZ GOONMOV AL,SIMOV DX,0FBC0HOUT DX,AL8255的初始化若BUSY为高电平则循环等待否则取第一个字符,输出到A口80MOV DX,0FBC2HMOV AL,0OUT DX,ALMOV AL,40HOUT DX,ALINC SILOOP GOONHLT准备在PC6上生产一个负脉冲指向下一个字符,若未结束则循环81例2上例中,使8255工作在方式1下,利用中断方式进行数据传送。从打印机的工作时序图可知,打印机每接收一个字符后,会送出一个低电平的响应信号ACK,利用这个信号,可使工作于方式
48、1的8255通过中断来打印字符。8255与打印机的电路连接方法为:A口方式1,输出。此时PC7自动作为OBF信号的输出端,PC6自动作为ACK信号的输入端,而PC3自动作为INTR信号的输出端,可将其连接到8259的IR2端(中断类型号0AH)。82题目分析输出时,先输出一个空字符,以引起中断过程,在中断服务程序中输出要打印的字符,利用OBF的下降沿触发一单稳触发器,产生打印机所需要的STROBE脉冲,将字符锁存到打印机中,接收字符后打印机发出ACK信号,清除OBF标志并产生有效的INTR输出,形成新的中断请求,CPU响应中断请求后再输出下一个字符。在初始化8255时,仍使B口工作于方式0输出
49、,C口的其余5条线均定义为输出。故控制字为:10100000B要使PC3能够产生中断请求信号INTR,还必须使A口的中断请求允许状态INTE=1。这是通过8255的置位/复位操作将PC6置1来实现的,即在初始化8255时,除写方式控制字外,还要写C口的位操作控制字。83C7C6C5C4C3C2C1C0例3用8255并行接口芯片实现键盘接口,其电路如图所示,按键排列成4行4列,8255的C口设置为方式0,并将PC7-PC4设定为输出,与各行线相连,PC3-PC0设定为输入,与各列线相连。84+5V+5V+5V+5V+5V+5V+5V第0行第1行第2行第0列第1列第2列第3列控制线检测线01234
50、56789ABPC7PC6PC5PC3PC2PC1PC08255A矩阵式键盘结构+5V第3行PC4CDEF85线性结构键盘最简单的线性结构键盘1.每一个引脚连接一个键2.输入0/1反映健是否高低键0键1键2并行接口111+5V+5V+5V0186矩阵键盘的识别1. 逐行扫描法先使第1 行接地,其他行为高电平,然后通过各列来查看第1 行是否有按键闭合。如果有按键闭合,则该按键所在的列就会变为低电平;如果所有的列都没有变为低电平,则表示第1行没有按键被按下。同理,照此方法,再将第2 行,第3 行.逐个接地,然后检测各列是否有变为低电平的,直到最后一行。在扫描过程中,若扫描到有按键闭合时,立即退出扫
51、描,并将该按键的行、列的值进行处理,从而就确定了闭合按键所在的位置。2. 行列反转法87实际应用中,往往采用以下方法1、识别是否有键按下。PC7-PC4输出全0,然后从PC3-PC0读入,如读入的数据中有一位为0,表明有某个按键按下,转第2步,否则在本步中循环。2、去抖动。延时20ms左右,过滤掉按键的抖动,然后按第1步的方法再做一次,若还有键闭合,则认为确实有一个键被按下,否则返回第1步。3、查找被按下的键。从第0行开始,顺序逐行扫描,即逐行输出0。每扫描一行,读入列线数据,若数据中有一位为0,则表明该位对应的列与当前扫描行的交叉处的按键被按下。88反转法此法不需要逐行扫描,仅用两步即可找到
52、按下的键将PC7-PC4设定为输出, PC3-PC0设定为输入,然后向行线输出全0,接着从PC3-PC0读入列线的值,若读入的数据中有一位为0,则表明与该位对应的列线上有某个键被按下,存储此键为列值。转第2步,否则在本步骤循环。将PC7-PC4设定为输入, PC3-PC0设定为输出,把第1步读入的列值再输出到列线上(即把列值从PC3-PC0 输出),接着从PC7-PC4读入行线的值,其中必有一位为0,为0的位对应的行线就是被按键所在的行。存储此值为行值。将行值和列值组合到一起,用查表的方法即可得到按键的键号。例如:第0行第2列的键按下,则第1步从列线读回的列值为1011B。第2步中再将1011
53、B从列线输出,从行线读回的行值为1110B,二者组合,得到该键的行列值组合为11101011B。89反转法按键识别程序设8255端口C的地址为42H,控制寄存器地址为43HSTART:MOV AL,10000001B ;方式0,C口高4位输出,低4位输入OUT 43H,ALMOV AL,0OUT 42H,ALWAIT:IN AL,42HAND AL,0FHCMP AL,0FHJE WAITMOV AH,ALMOV AL,10001000B ;方式0,C口高4位输入,低4位输出OUT 43H,ALMOV AL,AHOUT 42H,ALIN AL,42HAND AL,0F0HOR AL,AH ;组合行列值90逐行扫描法扫描键盘流程图开始8255A初始化 有键闭合吗?延时,行扫描初值0FEH DL键基值0 BL,行计数器3 CL输出行扫描初值行扫描初值循环左移1位,读列值 有键闭合吗?键基值+8,行计数器-1行扫描完吗?列值右移1位 有键闭合吗?键值寄存器+1键值在BL11NYNY6491第1段:8255A初始化INTIA:MOV DX,PORT8255;PORT8255为控制 ; 寄存器的地址 MOV AL,82H ;A口为输出,B口为输入 ; ,工作方式0 OUT DX,AL ;设定控制字 键盘扫描程序92第2段:是否有键按下KEY1:MOV AL,00 ; MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年肠道传染病消毒隔离培训
- 2026年实验室生物安全隐患排查与奖惩管理办法
- 2026年手机充电器长期不拔引发火灾事故警示
- 2026年房地产代建项目拓展与运营管理整合
- 2026年公司职业健康监护档案管理制度
- 2025甘肃省白银市中考英语真题(原卷版)
- 2025湖北省中考物理试题(解析版)
- 2026年某公司合规管理实施细则
- 2026年深基坑开挖风险辨识与坍塌应急措施
- 2026年新时代乡风文明建设的困境与突破路径
- 北京市2025中国文化遗产研究院应届毕业生招聘4人笔试历年参考题库典型考点附带答案详解
- 2026年住院医师规范化培训试题【新题速递】附答案详解
- 2026年广东省广州市高三二模英语试题(含答案)
- CNCA-C09-02:2025 强制性产品认证实施规则 移动电源、锂离子电池和电池组(试行)
- 疾控中心采购制度
- 2026西安银行总行科技部、数据管理部相关岗位招聘笔试模拟试题及答案解析
- 交通安全培训【课件文档】
- 地铁设备系统综合联调方案
- 红楼梦第9回课件
- GB/T 714-2025桥梁用结构钢
- 接地线课件教学课件
评论
0/150
提交评论