版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/10/12,共113页,1,第七章 典型可编程接口芯片的编程和应用,2020/10/12,共113页,2,1、数据输入和输出电路 IO接口电路是为了保障主机与外设之间数据信息的交换。依据计算机主机发出的指令进行相应的输入和输出操作。由于数据信息的多样性,输入和输出电路应包含以下部分: 数据的缓冲与锁存 信息的转换 2、地址译码电路 一个可编程接口芯片的内部一般有两个以上的IO端口,它们都挂在主机的系统总线上。 3、控制和状态寄存器 控制寄存器是接收并存放CPU发来的控制命令(控制字)。 状态寄存器的作用是保存外设的当前状态信息(如忙闲、 准备就绪等)。,接口芯片的组成,2020/10
2、/12,共113页,3,I/O接口电路的核心是集成电路芯片,称做“接口芯片”。 按功能分类: 通用接口芯片适用于大部分外设,例如:并行接口芯片8255A、串行接口芯片8251等; 专用接口芯片MC6845用于CRT显示接口电路;8279用于键盘接口电路;与CPU配合使用的中断控制器8259A、DMA控制器8237、定时/计数器8253等。 按可编程性划分: 可编程接口芯片可编写程序选定芯片的某种功能或工作方式。为设定芯片的工作方式而编写的程序段一般被称为该接口芯片的初始化程序段。8237、8255等。 不可编程的接口芯片8286、8282等。,接口芯片的分类,2020/10/12,共113页,
3、4,实现定时功能主要有三种方法,即 1、软件定时:指程序执行一个固定的循环,以得到不同的定时信号,其定时的时间常数是用每条指令的T周期数决定。(常用在延时时间不长,精度要求不高的场合) 2、不可编程的硬件定时:一般采用计数分频器,RC单稳等。(电路确定,定时时间和范围不能改变) 3、可编程的硬件定时:可编程的计数和定时器是专为微机系统而设计的,其工作方式可随时由CPU编程设置,因而能满足各种不同的计数和定时要求。,计数和定时,2020/10/12,共113页,5,Intel 8253定时器/计数器,一、概述 1、定时与计数器的概念 定时器:在时钟信号作用下,进行定时的减“1”计数,定时时间到(
4、减“1”计数回零),从输出端输出周期均匀、 频率恒定的脉冲信号。 由上述可知,定时器强调的是精确的时间。,计数和定时,2020/10/12,共113页,6,定时举例: 一天24小时的计时,称为日时钟。 在监测系统中,对被测点的定时取样。 在读键盘时,为去抖,一般延迟一段时间,再读。 在微机控制系统中,控制某工序定时启动。,计数和定时,2020/10/12,共113页,7,计数器: 在时钟信号作用下,进行减“1”计数,计数次数到(减“1”计数回零),从输出端输出一个脉冲信号。,计数举例: 对零件和产品的计数; 对大桥和高速公路上车流量的统计,等等。,Intel8253在微机系统中可用作定时器和计
5、数器。定时时间与计数次数是由用户事先设定。,计数和定时,2020/10/12,共113页,8,2、 8253 定时/计数器与CPU的关系 8253 定时/计数操作过程与CPU相互独立,并行操作。 3、8253定时/计数结束时产生的脉冲信号可用于对某一事件进行控制,也可作为一外部中端请求信号。,计数和定时,2020/10/12,共113页,9,二、Intel 8253 定时器/计数器的基本性能参数,1、一片8253内部有3个16位的计数器(相互独立)。 2、每个计数器的内部结构相同,可通过编程手段设置为6种不同的工作方式来进行定时/计数。 3、每个计数器在开始工作前必须预置时间常数(时间初始)。
6、 4、每个计数器在工作过程中的当前计数值可被CPU读出(8254不同)。 5、最高计数频率能达到2MHz(8254为10MHz)。 6、可以按照二进制码或BCD码两种方式计数。 (注:时间常数也可在计数过程中更改),计数和定时,功能: 具有计数、定时、测频、代替软件延时和产生多种频率的脉冲信号。8253适用于许多场合,如用作可编程方波频率产生器、分频器、程控单脉冲发生器等等。,2020/10/12,共113页,10,三、8253 定时器/计数器的内部结构,1、内部结构,内部逻辑结构 8253/8254内部有6个模块,2020/10/12,共113页,11,8253 定时器/计数器的内部结构框图
7、,2020/10/12,共113页,12,定时器/计数器的内部结构,数据总线缓冲器,它是一个三态、双向8位寄存器,用于将8253与系统数据总线D0D7 相连。读写操作的信息包括: CPU在对8253进行初始化编程时,向它写入的控制字。 CPU向某一计数器写入的计数初值。 从计数器读出的计数值。,读写控制电路,CS:片选信号 RD:读信号,读取所选定的计数器通道中的内容。 WR:写信号,将计数初值写入所选中的计数通道中或者将控制字写入控制字寄存器中。 A1、A0:端口选择信号 ,3个计数器通道(02)和一个控制字寄存器端口。(8086/8088有区别),2020/10/12,共113页,13,8
8、253的端口寻址及基本操作,2020/10/12,共113页,14,8253 内部的各计数器的结构,CEH(8) CEL(8),CRH(8) CRL(8),OLH(8) OLL(8),8位状态字,8254,2020/10/12,共113页,15,对输入到CLK引脚上的脉冲按二进制或十进制(BCD码)格式进行计数。 采用倒计数法。当计数器的值减为0时,便从OUT引脚输出一个脉冲信号。 输出波形由工作方式决定,同时还受到从外部加到GATE门控信号控制。 作外部事件计数器时,由外部事件产生的CLK脉冲的间隔可以是不相等的。 作定时器时CLK应输入精确的时钟脉冲。定时时间取决于计数脉冲的频率和计数器的
9、初值,即: 定时时间时钟脉冲周期TC预置的计数初值n 例:在某系统中,8253所使用的计数脉冲频率为0.5MHz,即脉冲周期TC2s,如果给8253的计数器预置的初值n500,则当计数器计到数值为0时,定时时间T2s5001ms。 注意:对8253来讲,外部输入到CLK端上的时钟脉冲频率不能大于2MHz。如果大于2MHz,必需经分频后才能送到CLK端。,8253 的内部的各计数器的结构,2020/10/12,共113页,16,控制字寄存器,数制选择,0:二进制计数 1:BCD码计数,2020/10/12,共113页,17,SC1,SC0,M2,RW1,RW0,BCD,M0,M1,D7 D6 D
10、5 D4 D3 D2 D1 D0,00 计数器锁存命令,00 选择计数器0 01选择计数器1 10 选择计数器2,计数器选择,未用,锁存计数器当前计数值控制字,2020/10/12,共113页,18,关于的控制字说明,1、8253只有一个工作方式控制字,但是对每个计数器而言,它们的工作方式控制字内容一定各不相同(前两位不同),所用各计数器的控制字需要分别设置,先后不计。 2、8253的工作方式控制字的特殊形式可用于对计数器的当前计数值进行锁存。 RW1RW2=00,M2、M1、M0、BCD未用 3、在工作方式控制字被设置之后,随后必须紧接着给计数器预设置计数初值,计数器方可开始工作。,2020
11、/10/12,共113页,19,4.计数初值 计数初值与输入时钟(CLK)频率及输出波形(OUT)频率之间的关系为: N= fCLK / fOUT 或者: N= TOUT / TCLK,5. 8253初始化的工作有两个内容: (1)写入控制方式命令,以选择计数器(3个计数器之一),确定工作方式(6种方式之一),指定计数器计数初值的长度和装入顺序以及计数值的码制(BCD或二进制码)。 (2)向已选定的计数器按方式命令的要求写入计数初值。 6. 最大计数初值:0000表示65536或10000。,2020/10/12,共113页,20,例1:选择2号计数器,工作在方式3 ,计数初值为533H(2个
12、字节),采用二进制计数。其初始化程序段为 MOV DX,307H ;命令口 MOV AL,10110110B;2号计数器的初始化命 令字 OUT DX,AL ;写入命令寄存器 MOV DX,306H ;2号计数器数据口 MOV AX,533H ;计数初值 OUT DX,AL ;先送低字节到2号计数器 MOV AL,AH ;取高字节送AL OUT DX,AL ;后送高字节到2号计数器,2020/10/12,共113页,21,例2:要求读出并检查1号计数器的当前计数值是否是全“1”(假定计数值只有低8位),其程序段为 MOV DX,307H ;命令口 L :MOV AL,01000000B ;1号
13、计数器的锁存命令 OUT DX,AL ;写入命令寄存器 MOV DX,305H ;1号计数器数据口 IN AL,DX ;读1号计数器的当前计数值 CMP AL,0FFH ;比较 JNE L ;非全“1”,再读 HLT ; 是全“1”,暂停,2020/10/12,共113页,22,初始化编程步骤,8253没有复位信号,加电后工作方式不确定。 写入控制字 向控制字寄存器写入一个控制字,选定计数器通道,规定该计数器的工作方式和计数方式。写入控制字还起到复位作用,使输出端OUT变为规定的初始状态,并使计数器清0。 写入计数初值 向选中的计数器端口地址中写入一个计数初值,初值设置时要符合控制字中有关格式
14、的规定。初值可以是8位数据,也可以是16位数据。若是8位数,只要用一条输出指令就可完成初值的设置。如果是16位数,则必须用两条输出指令来完成,而且规定先送低8位数据,后送高8位数据。注意,计数初值为0时,也要分成两次写入,因为在二进制计数时,它表示65536,BCD计数时,它表示10000。 由于3个计数器分别具有独立的编程地址,而控制字寄存器本身的内容又确定了所控制的寄存器的序号,因此对3个计数器通道的编程没有先后顺序的规定,可任意选择某一个计数器通道进行初始化编程,只要符合先写入控制字,后写入计数初值的规定即可。 在计数初值写入8253后,还要经过一个时钟脉冲的上升沿和下降沿,才能将计数初
15、值装入实际的计数器,然后在门控信号GATE的控制下,对从CLK引脚输入的脉冲进行递减计数。,2020/10/12,共113页,23,1、方式0 “一次有效” 1)计数器写完控制字,写信号的上升沿后(相应OUT就开始变成低电平),写完计数值后的下一个CLK脉冲,写入CE,开始计数。当计数器减到零时,OUT立即输出高电平(n+1个脉冲后)。,8253 的工作方式,3)在计数过程中可改变计数值(若是8位数,写入新值后,重新开始计数;十六位数写入第一个字节,停止计数,写入第二个字节后,按新值开始计数。,2)计数过程中,GATE=0,停止计数(计数值保持不变),GATE变高后,接着计数。,4)8253内
16、部没有中断控制电路,也没有专用的中断请求线。若要用于中断,则可用OUT信号,但要有外接的中断优先权排队电路与向量产生电路。,2020/10/12,共113页,24,8253 的工作方式,写入控制字后即变低电平,2020/10/12,共113页,25,MOV DX,307H ;命令口 MOV AL,01110000B ;方式字 OUT DX,AL MOV DX,305H ;T1数据口 MOV AL,BYTEL ;计数值低字节 OUT DX,AL MOV AL,BYTEH ;计数值高字节 OUT DX,AL,例1:使计数器T1工作在方式0 ,进行16位二进制计数,计数初值的高低字节分别为BYTEH
17、和BYTEL。其初始化程序段如下:,8253 的工作方式,2020/10/12,共113页,26,2.方式1 -低电平输出(GATE信号上升沿重新计数) 可编程的单稳态工作方式(单拍负脉冲宽度为计数初值)。 情况一: (1)写入控制字后,输出为高;写入计数初值后,计数器并不立即开始工作; (2)GATE有效,才开始工作,使输出OUT变成低电平; (3)直到计数器值减到零后,输出才变高电平。见图中。 情况二: 在计数器工作期间,当GATE又出现一个上升沿时,计数器 重新装入原计数初值并重新开始计数,见图中。 工作期间对计数器写入新的计数初值,则要等到当前的 计数值计满回零且门控信号再次出现上升沿
18、后,才按新写入的计数初值开始工作,见图中。,8253 的工作方式,2020/10/12,共113页,27,8253 的工作方式,n=4,2020/10/12,共113页,28,例2:使计数器T2 工作在方式1 ,进行8位二进制计数, 并设计数初值的低8位为BYTEL。 其初始化程序段为 MOV DX,307H ;命令口 MOV AL,10010010B ;方式字 OUT DX,AL MOV DX,306H ;T2数据口 MOV AL,BYTEL ;低8位计数值 OUT DX,AL,8253 的工作方式,在OUT引脚上得到一个负的单脉冲,单脉冲的宽度等于时钟脉冲的宽度乘以计数值n。 在计数过程中
19、,若GATE产生负跳变,不会影响计数过程的进行。 当计数器回零后,GATE又产生从低到高的正跳变,不需要再送计数初值,计数器按照以前的计数初值又可产生一个同样宽度的负的单脉冲。,2020/10/12,共113页,29,3. 方式2:频率发生器 一种具有自动装入时间常数(计数初值N)的 N分频器。,特点: 1)写入控制字后,输出为高; 2)不用重新设置计数值,通道能连续工作,输出固定频率的脉冲(n-1个高电平,一个低电平,循环输出); 3)计数过程中,GATE变低,暂停计数,OUT为高,在GATE变高后,下一个CLK的下降沿使计数器恢复初值,重新开始计数。 4)计数过程中可以改变计数值。对正在进
20、行的计数过程没有影响,但在计数到“1”时输出变低,过一个CLK周期输出又变高,计数器将按照新的计数值计数。即改变计数值是下次有效。,8253 的工作方式,2020/10/12,共113页,30,n=3,CLK,WE,GATE,OUT,3,2,1,3,2 1 3,2,n=5,8253 的工作方式,方式2的时序波形,2020/10/12,共113页,31,例3:使计数器T0 工作在方式2 ,进行16位二进制计数。 其初始化程序段为 MOV DX,307H ;命令口 MOV AL,00110100B ;方式字 OUT DX,AL MOV DX,304H ;T0数据口 MOV AL,BYTEL ;低8
21、位计数值 OUT DX,AL MOV AL,BYTEH ;高8位计数值 OUT DX,AL,8253 的工作方式,2020/10/12,共113页,32,4. 方式3 -周期性方波输出 方式3与方式2基本相同,也具有自动装入时间常数(计数初值)的功能,写入控制字后,输出为高;不同之处在于: (1)方式3 ,引脚OUT输出的不是一个时钟周期的负脉冲,而是占空比为1:1(计数初值为偶数)或近似1:1的方波;输出在前一半的计数过程中为高电平,后一半为低电平。 (2)由于方式3输出的波形是方波,并且具有自动重装计数初 值的功能,因此,8253一旦计数开始,就会在输出端OUT输出 连续不断的方波。,82
22、53 的工作方式,2020/10/12,共113页,33,n=5,8253 的工作方式,2020/10/12,共113页,34,主要工作特点: 如果GATE为高电平,则在写入计数值后的下一个时钟脉冲时,将计数值装入执行部件,并开始计数。 1)计数器初值为偶数,计数时,每一个时钟脉冲使计数值减2。计数值减为0时,OUT输出引脚由高电平变成低电平,同时自动重新装入计数初值,继续进行计数。当计数值减为0时,OUT引脚又回到高电平,同时再一次将计数初值装入计数器,开始下一轮循环计数; 2)计数初值为奇数,第一个时钟脉冲使计数器减1,以后每来一个时钟脉冲,都使计数器减2,当计数值减为0时,输出端OUT由
23、高电平变为低电平,同时自动重新装入计数初值继续进行计数。这时第一个时钟脉冲使计数器减3,以后每个时钟脉冲都使计数器减2,计数值减为0时,OUT端又回到高电平,并重新装入计数初值后,开始下一轮循环计数。 这两种情况下,从OUT端输出的方波频率都等于时钟脉冲的频率除以计数初值。但要注意,当写入的计数初值为偶数时,输出完全对称的方波,写入初值为奇数时,其输出波形的高电平宽度比低电平多一个时钟周期。,8253 的工作方式,2020/10/12,共113页,35,3) GATE能使计数过程重新开始, GATE=1允许计数, GATE=0禁止计数。若OUT为低期间,GATE变成低电平时,就迫使OUT变为高
24、电平,并禁止计数,当GATE回到高电平时,重新从初值n开始进行计数。 4)如果希望改变输出方波的频率,CPU可在任何时候重新装入新的计数初值,在下一个计数周期就可按新的计数值计数,从而改变方波的频率。,8253 的工作方式,2020/10/12,共113页,36,5. 方式4-单次负脉冲输出(软件触发) GATE为高,写入计数初值后,下一个时钟脉冲后沿将自动把计数初值装入执行部件,并开始计数。计数到0时,OUT端变低,经过一个时钟周期后,又变高,形成一个负脉冲。 1)写入控制字后,输出为高。 2)CPU写入计数值后的下一个时钟脉冲的下降沿开始计数,即在N+1个脉冲后,才输出一个负脉冲。 3)
25、GATE=1,允许计数; GATE=0,停止计数,GATE变高重新从初值开始计数。 4)若改变计数值,则按新的计数值重新开始计数。,8253 的工作方式,2020/10/12,共113页,37,8253 的工作方式,方式4的时序图,OUT,GATE,CLK,2020/10/12,共113页,38,例4:使计数器T0工作于方式4,进行8位二进制计数, 并且只装入低8位计数值。其初始化程序段为: MOV DX,307H ;命令口 MOV AL,00011000B ;方式字 OUT DX,AL MOV DX,304H ;T0数据口 MOV AL,BYTEL ;低8位计数值 OUT DX,AL,825
26、3 的工作方式,2020/10/12,共113页,39,6. 方式5 -单次负脉冲输出(硬件触发) 方式5工作特点是由GATE上升沿触发计数器开始工作。写入控制字后,输出为高。当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数。 1)若计数值为N,则在门控脉冲触发后,经过N+1个时钟脉冲,才输出一个负脉冲。 2)若在计数过程中使用门控脉冲,计数器重新开始计数,但对输出状态没有影响。 3)若在计数过程中改变计数值,没有门控信号的触发,不影响计数过程;当计数到0后,若有新的门控信号触发,则按新的计数值计数;但在写入新的计数值后,在未计数到0之前,有新的门控信号触发,则立即按新
27、的计数值重新开始计数。,8253 的工作方式,2020/10/12,共113页,40,8253 的工作方式,2020/10/12,共113页,41,门控信号的功能,2020/10/12,共113页,42,方式0和方式4,GATE为高电平时,允许计数,GATE为低电平或下降沿时,禁止计数。 方式1和方式5,只有当门控信号产生从低电平到高电平的正跳变时,才允许8253从初始值开始计数。 但两者对输出电平的影响是有区别的: 方式1时,GATE信号触发8253开始计数后,就使输出端OUT变成低电平; 方式5的GATE触发信号不影响OUT端的电平。 方式2和方式3,GATE为高电平时允许计数,低电平或下
28、降沿时禁止计数,若GATE变低后又产生从低到高的正跳变时,将会再次触发8253从初值开始计数。,门控信号的功能,2020/10/12,共113页,43,6种工作方式各有特点,适用的场合也不一样。 对于方式0,在写入控制字后,输出端即变低,计数结束后,输出端由低变高,常用该输出信号作为中断源。其余5种方式写入控制字后,输出均变高。方式0可用来实现定时或对外部事件进行计数。 方式1用来产生单相负脉冲,宽度为计数初值n个时钟脉冲。 方式2用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲的周期相同。 方式3用于产生连续的方波。方式2和方式3都实现对时钟脉冲进行n分频。 方式4和方式5的波形相同,都在计
29、数器回0后,从OUT端输出一个负脉冲,其宽度等于一个时钟周期。但方式4由软件(设置计数值)触发计数,而方式5由硬件(门控信号GATE) 触发计数。 这6种工作方式中,对于方式0、1和4,计数初值装进计数器后,仅一次有效。如果要通道再次按此方式工作,必须重新装入计数值。对于方式2、3和5,在减1计数到0值后,8253会自动将计数初值重新装进计数器。,8253 的工作方式,2020/10/12,共113页,44,8253 的工作方式,2020/10/12,共113页,45,例:在某个以8086为CPU的系统中使用了一块8253芯片,通道的基地址为310H,所用的时钟脉冲频率为1MHz。要求3个计数
30、通道分别完成以下功能:(1)通道0工作于方式3,输出频率为2KHz的方波;(2)通道1产生宽度为480s的单脉冲;(3)通道2用硬件方式触发,输出单脉冲,时间常数为26。,4个端口地址分别为310H、312H、314H和316H,2020/10/12,共113页,46,通道0工作于方式3,即构成一个方波发生器,它的控制端GATE0须接+5V电压,为了输出2KHz的连续方波,应使时间常数N01MHz2KHz500。 通道1工作于方式1,即构成一个单稳态电路,由GATE1的正跳变触发,输出一个宽度由时间常数决定的负脉冲。此功能一次有效,需要再形成一个脉冲时,不但GATE1脚上要有触发信号,通道1也
31、需重新初始化。需输出宽度为480s的单脉冲时,应取时间常数 N1480s1s480。 通道2工作于方式5,即由GATE2的正跳变触发减1计数,在计到0时形成一个宽度与时钟周期相同的负脉冲。此后,若GATE2引脚上再次出现正跳变,又能产生一个负脉冲。这里假设预置的时间常数N2=26。,2020/10/12,共113页,47,;通道0的初始化程序 MOV DX,316H;控制端口地址 MOV AL,00110111B;通道0控制字,先读 写低字节,后高字节,方式3,BCD计数 0UT DX,AL;写入控制字寄存器 MOV DX,310H;通道0端口地址 MOV AL,00H;低字节 OUT DX,
32、AL;先写入低字节 MOV AL,05H;高字节 OUT DX,AL;后写入高字节,2020/10/12,共113页,48,;通道1的初始化程序 MOV DX,316H;控制端口地址 MOV AL,01110011B;通道1控制字,先读 写低字节,后高字节,方式1,BCD计数 0UT DX,AL;写入控制字寄存器 MOV DX,312H;通道1端口地址 MOV AL,80H;低字节 OUT DX,AL;先写入低字节 MOV AL,04H;高字节 OUT DX,AL;后写入高字节,2020/10/12,共113页,49,;通道2的初始化程序 MOV DX,316H;控制端口地址 MOV AL,1
33、0011011B;通道2控制字,只 读写低字节;方式5,BCD计数 0UT DX,AL;写入控制字寄存器 MOV DX,314H;通道2端口地址 MOV AL,26H;低字节 OUT DX,AL;只写入低字节,2020/10/12,共113页,50,习题: 使用8253计数器2产生频率为40KHz的方波。设8253的端口地址为0040H0043H,已知CLK2输入信号的频率为2MHz,试设计8253与8088总线接口电路,并编写产生方波的程序段。,2020/10/12,共113页,51,8253计数通道结构,2020/10/12,共113页,52,方式0:计数结束产生中断,2020/10/12
34、,共113页,53,并行接口芯片8255A,计算机系统的信息交换有两种方式: 并行数据传输方式和串行数据传输方式。 并行数据传输方式是将一个字或一个字符的数据按位同时传输。 (1)适合于外设和微机之间近距离、大量和快速的信息交换。 例如:微机与并行接口打印机、磁盘驱动器、光盘驱动器等; (2)并行数据传输方式是微机系统中最基本的信息交换方式。 例如:主板上各个部件之间、I/O插槽上各个部件之间等的数据交换都是并行传输。,不可编程的并行接口芯片(三态缓冲器和锁存器): 74LS244/245; 74LS273/373等 Intel 8282/8283(74LS373): 8位带锁存器的单向三态不
35、反相/反相缓冲器。 Intel 8286/8287(74LS245):8位双向三态不反相/反相缓冲器。,2020/10/12,共113页,54,并行接口芯片8255A,出,2020/10/12,共113页,55,并行接口芯片8255A,2020/10/12,共113页,56,(1)数据总线缓冲器:三态双向8位缓冲器用于连接8255与系统数据总 线,其发送或接收数据是靠CPU执行输入或输出指令而实现的。控制字和状态信息也是通过这个数据总线缓冲器传送的。 (2)读/写和控制逻辑:部件的功能是管理所有的内部和外部的传送过程,包括数据以及控制字。它接收来自CPU地址总线和控制总线的输入信号,然后向A和
36、B两组的控制部件发送命令。 (3)口A、口B和口C:8255A包含有三个8位的I/O口(A、B和C)。所有的口都能由系统软件组成各种不同的功能部件,但是每个口又有它自己的特点,以便进一步提高8255A的功能和灵活性。 口A:一个 8位的数据输出锁存器缓冲器和一个8位的数据输入锁存器。 口B:一个 8位的数据输出的锁存器缓冲器和一个8位的数据输入锁存器缓冲器。 口C:一个8位的数据输出锁存器缓冲器和一个8位的数据输入缓冲器(不锁存输入信号)。,并行接口芯片8255A,2020/10/12,共113页,57,并行接口芯片8255A,C口可以通过设定工作方式而分成两个4位的口。每个4位的口包含一个4
37、位的锁存器,与口A和口B一起用于输出控制信号和输入状态信号。 A组和B组中的每个控制部件都从读/写控制逻辑接收“命令”,从内部数据总线接收“控制字”,并向有关的口发出适当的命令。 A组控制部件口A和口C高四位(C7C4); B组控制部件口B和口C低四位(C3C0); 口A、口B为数据端口,口C为控制与状态联络线。 (4)A组和B组的控制:每个口的功能组态由系统软件编程设定,实际上是由CPU向8255输出一个控制字来设定。该控制字包含“工作方式”、“位置1、和“位清除”等信息。 控制字寄存器只能写入,不允许读出。,2020/10/12,共113页,58,并行接口芯片8255A,2020/10/1
38、2,共113页,59,8255A的基本操作,2020/10/12,共113页,60,8255A的工作状态是由CPU用输出指令向控制寄存器送控制字来决定。 8255A的控制字分为两类: 一类是方式选择控制字,一类是端口C按位 置1置0控制字。 方式选择控制字第七位总是为1,而端口C置1置0控制字的第七位总是为0。所以,第七位称为这两类控制字的标识符。 (1)方式选择控制字 方式选择控制字可以使8255A的3个数据端口工作在不同的工作方式。该控制字总是将3个数据端口分为两组来设定工作方式,其中端口A和端口C的高4位作为一组,端口B和端口C的低4位作为一组。 8255A可有三种基本工作方式: 方式0
39、:基本输入/输出方式 方式1:带选通的输入/输出方式 方式2:双向传输方式,8255A的控制字,2020/10/12,共113页,61,8255A的控制字,方式选择控制字,端口C置1/置0控制字,端口A可工作在3种工作态式中的任一种,端口B只能工作在方式0或方式1,端口C常用于配合端口A和端口B工作,为这两个端口的输入或输出提供控制信号和状态信号,因此,端口C的各位应可以用置1置0来单独设置。,例:A口输入,B口输出,C口上半口输入,下半口输出,方式0 控制字:10011000b I/O地址 250H253H A1A1,A0A0 控制寄存器地址253H MOV DX,253H MOV AL,9
40、8H OUT DX,AL 例:A口输入,方式1,B口输出,方式0,C口输入 控制字:10111001b,2020/10/12,共113页,62,8255A的工作方式,1、 方式0基本输入输出方式: 在这种功能组态下,三个口中的任何一个都可提供简单的输入和输出操作。不需要应答式联络信号,数据只是简单地写入指定的口,或从口中读出。 方式0的基本功能定义如下: 两个8位的口和两个4位的口: 口A、口B、口C高四位、口C低四位 任何一个通道可以作为输入/输出; 输出时可锁存; 输入时不可锁存; 根据方式0的基本功能定义,这四个端口的输入和输出有十六种不同的组合,可适用于多种应用场合。,2020/10/
41、12,共113页,63,方式0的输入时序,8255A在方式0的输入时序下有以下要求。A、读信号有效之前,应先发出地址信号。B、输入数据要领先于读信号。,在整个读取期间,地址信号要保持有效; 输入数据必须保持到读信号结束后才消失; 要求读脉冲的宽度tRR至少为300ns。,2020/10/12,共113页,64,2020/10/12,共113页,65,方式0的输出时序,方式0的输出,在写操作之前,CPU必须先发选通信号。为保证数据的正确写入,地址信号必须保持到写信号撤除后延迟tWA 时间才消失。数据必须在写信号结束前tDW时间内出现在数据总线上,且保持tWD时间消失。写脉冲的宽度应大于等于400
42、ns。在写信号结束前tDW时间,CPU输出的数据就可以出现在8255A的指定端口上,从而可以送到外设。,2020/10/12,共113页,66,方式0的应用场合,同步传送:发送方和接收方的动作由同一时序信号来管理,双方互相知道对方的动作,所以不需要应答信号,同步方式下8255A的三个数据端口可以实现三路数据传输。 查询式传送:就需要应答信号了。但在方式0下,没有规定固定的应答信号,就需用端口C来配合端口A和端口 B进行输入输出操作,即将端口 C的某 4位(高4位或低4位)规定为输出口,用来输出一些控制信号,而将端口C的其余4位规定为输入口,用来读外设的状态。,2020/10/12,共113页,
43、67,8255A的工作方式,2、方式1带选通的输入输出方式 这种功能组合能提供借助于选通或“应答式联络”信号把I/O数据发送给指定的口或从该口接收I/O数据的方法。在方式1中,口A和口B用口C上的一些引脚产生或接收“应答式联络信号。 方式1的基本功能定义如下: 分成两组(A组和B组); 每组包含一个8位的数据口和一个4位的控制数据口; 8位的数据口既可作为输入又可作为输出。输入和输出均可锁存; 4位的口用于传送8位的数据口的控制和状态信息。,2020/10/12,共113页,68,8255A的工作方式,PB7PB0,INTEB,PC2,STBB,IBFB,INTRB,PC0,PC1,方式1输入
44、:,STB 选通输入,使数据送入输入锁存器 STROBE IBF 输入缓冲器满(应答信号)INPUT BUFFER FULL INTR STB=1,IBF=1,INTE=1 则INTR=1,RD清INTR REQUEST INTEA 中断允许,PC4=1 INTEA=1ENABLE INTEB 中断允许,PC2=1 INTEB=1,CPU是通过软件对端口C的置1置0方式选择实现对中断的控制,通过对PC4置0使INTEA为0而使端口A处于中断屏蔽状态,也可通过对PC2置0使INTEB为0而使端口B处于中断屏蔽状态;相反地,由软件对PC4、PC2置1则可使相应的端口处于中断允许状态。,2020/1
45、0/12,共113页,69,8255A的工作方式,方式1输入:,2020/10/12,共113页,70,8255A的工作方式,方式1输出:,OBF 输出缓冲器满,ACK使OBF=1 ACK 外设接收到数据响应信号 INTEA PC6=1 INTEA=1 INTEB PC2=1 INTEB=1,2020/10/12,共113页,71,8255A的工作方式,方式1输出:,2020/10/12,共113页,72,3、方式2双向传输方式 只有端口A能够工作于方式2。在此方式下,外设可以在8位数据线上既往CPU发数据,又从CPU接收数据。和方式1类似,这时端口A占用了端口C的5根口线为自己提供控制信号。
46、,8255A的工作方式,OBF 通知外设读取数据,PC6=1使能INTEo,输出中断 使8255 A口输出缓冲器开启,送出数据,其上升沿是数据已经输出的回答,PC4=1使能INTEi,输入中断 STB 选通信号,数据送入输入锁存器,IBF 通知CPU读数,防止外设送新的数据来,2020/10/12,共113页,73,8255A的工作方式,方式2:,2020/10/12,共113页,74,8255工作状态字 方式0 无条件传送,无状态字 状态字在C口:,8255A状态字,2020/10/12,共113页,75,端口地址: 3CEH = 0000,0011,1100,1110B 采用部分译码,A5
47、,AEN,G2A,AEN=0时,CPU工作,占用总线 AEN=1时,DMAC工作,占用总线,译码回顾,三八译码器真值表,2020/10/12,共113页,76,例1:8255的口A作为CPU的并行输出口,工作于方式0,口地址258H25BH。,MOV AL,8BH MOV DX,25BH OUTDX,AL LEASI, DAREA MOV DX,258H MOV CX,1000H CLD LP1:LODSB OUTDX , AL CALLDELAY LOOPLP1,8255,计算机 系统,8255应用举例,无条件传送,2020/10/12,共113页,77,8255应用举例,例2:设计思想:口
48、A为方式0输出打印数据,用口C的PC7产生负脉冲选通信号,PC2连接打印机的“忙”输出信号,供CPU查询其状态。,查询传送方式,假设I/O地址为: FFF8H:口A FFFAH:口B FFFCH:口C FFFEH:控制口,;初始化程序段: MOVDX,0FFFEH;控制口地址 MOVAL,10000001B;方式控制字 OUTDX,AL;口A方式0,口C上输出,口C下输入(口B任意) MOVAL,00001111B;口C的置位/复位控制字 OUTDX,AL;使PC7=1,仅在输出数据时,才为负脉冲,2020/10/12,共113页,78,8255应用举例,;子程序(功能:输出数据到打印机打印)
49、,入口参数:AH=待打印数据 PRINTC:PUSHAX PUSHDX PRN:MOVDX,0FFFCH;读口C INAL,DX;查询打印机状态 AND AL,04H;PC2=BUSY=0? JNZPRN;PC2=1,打印机忙 MOVDX,0FFF8H;PC2=0,打印机不忙,输出数据 MOVAL,AH OUTDX,AL MOVDX,0FFFEH;在PC7口产生选通负脉冲 MOVAL,00001110B OUTDX,AL,查询传送方式,2020/10/12,共113页,79,8255应用举例,查询传送方式,2020/10/12,共113页,80,例3:8255作为打印机接口,工作于方式1,中断
50、传送,主程序: (1)方式控制字 10100000 (2)填中断向量表 0AH (3)开放中断8255中断允许; 8259屏蔽允许;CPU中断允许 (4)送空字符,使打印机响应,以引起中断 (5)延时等中断,或处理其他事务 (6)恢复原中断向量表、中断屏蔽字 (7)返回DOS,10010110,8255应用举例,2020/10/12,共113页,81,主程序:MOV AX,350AH INT 21H MOV DX,BX MOV AX,ES MOV DS,AX PUSH DS PUSH DX MOV AL,0A0H MOV DX,25BH OUT DX,AL;8255 控制字 LEA DX,RO
51、UT MOV AX,SEG ROUT MOV DS,AX MOVAX,250AH INT21H;填中断向量表 LEAPOINT,BUFFER;POINT指向BUFFER INAL,21H MOV MAS,AL MOVAL,0FDH OUT21H,AL;中断屏蔽字 MOVAL,0DH MOVDX,25BH OUTDX,AL;8255中断允许,PC6=1 MOVAL,20H MOV DX,258H OUT DX,AL;空格送打印机 STI ;延时或是否进入程序结束部分,;恢复后结束程序 MOVAL,MAS OUT 21H,AL POPDX POPDS MOVAX,250AH INT21H MOVA
52、X,4C00H INT21H,8255应用举例,2020/10/12,共113页,82,中断服务程序: ROUTPROC PUSHAX PUSHBX PUSHDX MOVBX,POINT INCPOINT MOVDX,258H MOVAL,BX CMPAL,结束标志 JZDONE OUTDX,AL ;送数据给打印机,引起中断 DONE:MOVAL,20H OUT20H,AL ;普通EOI结束方式 POPDX POPBX POPAX IRET ROUTENDP,8255应用举例,2020/10/12,共113页,83,例4、一计算机控制系统的接口电路。电路中ADC0809是模数(AD)转换芯片,
53、它的通道选择ADD-C,ADD-B,ADD-A三根引脚接地,即为低电平。因此,选择从通道0(IN-0)输入模拟量,输出的数字量接入8255A的A口PA7PA0。现要求8255A的端口A设置为方式1输入,采用查询方式读取ADC0809输出的数字量,再将读入的数字量经端口B为方式0输出给八位发光二极管(LED)。 程序设计思路: 8255A的端口A设置为方式1输入,端口B设置为方式0输出,PC4置“1”,允许A口中断请求。 将PC2置“1”,然后再置为“0”,启动AD转换器。 8255A端口A的IBFA(PC5)初始化状态为“0”,经反相器后为“1”,使得ADC0809的ENABLE信号有效,允许
54、ADC0809输出数据。当AD转换结束,EOC=1,因而与非门的而个输入端同时为“1”,使得输出为“0”,把它作为外设的“数据准备好”状态信号输出给8255A口A的(PC4)信号线,此时,有效,ADC0809输出的数据被锁存到8255A的A口。数据被锁存后,8255A的A口的输入缓冲器“满”,IBFA=1有效。IBFA信号有效后有两个影响,一个是IBFA信号经反相器后为“0”,使得ADC0809的ENABLE信号无效,禁止ADC0809输出数据;另一个是使INTR(PC3)=1有效,发出中断请求。 CPU发出启动AD的信号后,不断读取C口状态,判断PC3是否为“1”,不为“1”,说明AD转换器
55、尚未完成转换,继续监视PC3直到PC3=1,然后读取A口数据,再由B口输出。,2020/10/12,共113页,84,2020/10/12,共113页,85,假设8255A三个数据端口和一个控制端口的地址为0FFC0H0FFC3H,则程序如下: ORG1000H MOVDX,0FFC3H;送控制端口的地址以对8255A进行初始化 MOVAL,0B0H;A口设为方式1输入,B口设为方式0输出 OUTDX,AL MOVAL,04H;PC2复位 OUTDX,AL MOVAL,09H;PC4置位,允许8255A发中断请求信号 OUTDX,AL;有效 MOVDX,0FFC1H;清显示 MOVAL,00H
56、 OUTDX,AL AA: MOVDX,0FFC3H;发启动脉冲 MOVAL,05H OUTDX,AL MOVAL,04H OUTDX,AL MOVDX,0FFC2H;读C口 BB: INAL,DX ANDAL,08H;判断PC3(INTRA)是否为“1” JZBB;不为“1”,转BB MOVDX,0FFC0H;为“1”,读取A口数据 INAL,DX INCDX OUTDX,AL;由B口输出 JMPAA HLT,2020/10/12,共113页,86,串行通讯,CPU与外部设备之间的信息交换称为通信(Communication)。 基本的通信方式有两种:并行通讯和串行通讯。 并行通讯就是数据的
57、所有位同时传送; 串行通信就是把数据在传输线路上按时间的先后顺序一位一位的传送。,2020/10/12,共113页,87,串行通信的优缺点,并行通信:数据有多少位就需要有多少条传输线,优点是速度快,缺点是传输距离较短。因为数字信号的传输随着距离的增加和信号传输速率的提高,在传输线上的反射、串扰、衰减和共地噪声等影响会引起信号的畸变。 串行通信方式:优点是需要传输线很少,一般为数据发送、时钟等信号线,故串行通信能节省传输线,能对实行串行通信的数据加以处理,减少信号的畸变,实现远距离通信。 当位数很多和长距离传送时,串行通信的优点就更为突出。但串行通信的缺点是传输数据的速度较慢。,2020/10/
58、12,共113页,88,串行通信的方式,异步通讯ASYNC(Asynchronous Data Communication) 串行通讯中,接收方和发送方要遵守同一通信规程(或通讯协议),是对数据传送控制的规定,也叫链路控制规程。在计算机网络中作为网络的链路层协议。 异步通信用一个起始位表示字符的开始,中间为传输的字符数据,最后用停止位表示字符的结束,以此构成一帧(Frame)信息。,ASCII字符的传送格式,2020/10/12,共113页,89,同步通信不像异步通信那样,靠起始位在每个字符开始时使发送和接收取得同步,而是通过同步字符在每个数据块开始时使收发双方取得同步。,同步通信的格式,特点:以同步字符作为传送开始; 每位占用的时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年云南事业单位联考文山州招聘143人考试备考题库及答案解析
- 2026鄱阳湖湖泊湿地综合研究站实验支撑岗位招聘1人考试参考题库及答案解析
- 2026年中核五〇四医院•甘肃(兰州)国际陆港中心医院招聘司机笔试参考题库及答案解析
- 2026年度黄山市歙县事业单位统一公开招聘工作人员51名笔试参考题库及答案解析
- 2026重庆龙璟纸业有限公司招聘1人笔试备考试题及答案解析
- 浙商银行嘉兴分行2026年一季度社会招聘考试备考题库及答案解析
- 2026铜陵分行社会招聘笔试参考题库及答案解析
- 2026年1月黑龙江大庆市肇州县招聘公益性岗位人员35人笔试备考试题及答案解析
- 2026年房地产行业中的网络营销效益评估
- 2026年地震后的建筑评估与修复
- 牛津版八年级英语知识点总结
- 2026中国电信四川公用信息产业有限责任公司社会成熟人才招聘备考题库及完整答案详解
- 2026中国电信四川公用信息产业有限责任公司社会成熟人才招聘备考题库含答案详解
- 国际话语体系构建与策略分析课题申报书
- 南京医科大学2026年招聘人事代理人员备考题库及1套参考答案详解
- 2026年深圳市离婚协议书规范范本
- 2026年教育平台资源输出协议
- 【《四旋翼飞行器坐标系及相互转换关系分析综述》1000字】
- 2026浙江金华市婺城区城市发展控股集团有限公司招聘59人笔试参考题库及答案解析
- 静脉补液课件
- 广东深圳市盐田高级中学2024~2025学年高一上册1月期末考试化学试题 附答案
评论
0/150
提交评论