微机原理与接口技术:5.4至5.5-自动化智能测控-输入与输出接口技术_第1页
微机原理与接口技术:5.4至5.5-自动化智能测控-输入与输出接口技术_第2页
微机原理与接口技术:5.4至5.5-自动化智能测控-输入与输出接口技术_第3页
微机原理与接口技术:5.4至5.5-自动化智能测控-输入与输出接口技术_第4页
微机原理与接口技术:5.4至5.5-自动化智能测控-输入与输出接口技术_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

第5章

输入与输出接口技术5.4可编程定时/计数芯片8253(8254)8253的引脚和六种工作方式8253的编程与应用教学重点定时器和计数器定时控制在微机系统中具有极为重要的作用,计数是许多过程控制领域常用的功能它们都是由数字电路中的计数电路构成定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器定时功能的实现方法软件延时利用微处理器执行一个延时程序段实现不用硬件,但占用CPU时间、定时精度不高,随系统时钟频率改变不可编程的硬件定时采用分频器、单稳电路或简易定时电路控制定时时间定时电路简单、定时时间可以在一定范围改变可编程的硬件定时软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路具有多种工作方式、能够输出多种控制信号8253定时计数器3个独立的16位计数器通道每个计数器有6种工作方式按二进制或十进制(BCD码)计数8254是8253的改进型D7~D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT25.4.18253的内部结构和引脚1.计数器预置寄存器GATECLKOUT减1计数器输出锁存器计数初值存于预置寄存器;在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变。输出锁存器用于写入锁存命令时,锁定当前计数值计数器的3个引脚CLK时钟输入信号

在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1。GATE门控输入信号

控制计数器工作,可分成电平控制和上升沿控制两种类型。OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号。2.与处理器接口D0-D7数据线A0-A1地址线CS片选信号RD读信号WR写信号CSA1A0I/O地址读操作RD写操作WR00000101001140H41H42H43H读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字D0-D7数据线A0-A1地址线CS片选信号RD读信号WR写信号CSA1A0I/O地址读操作RD写操作WR00000101001140H41H42H43H读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字5.4.38253的工作方式与操作时序8253有6种工作方式,由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式每种工作方式的过程类似:⑴设定工作方式⑵设定计数初值〔⑶硬件启动〕⑷计数初值进入减1计数器⑸每输入一个时钟计数器减1的计数过程⑹计数过程结束方式0:计数结束中断①②⑤④⑥GATEOUTCLK

031244方式0WR①设定工作方式②设定计数初值④计数值送入计数器⑤计数过程⑥计数结束方式0:计数结束中断(续)门控信号GATE为“1”时,计数器才能计数。当GATE信号为低电平时,则计数器停止计数,如果GATE信号再次为高电平时,则计数器继续计数。方式1:可编程单脉冲发生器①②⑤④⑥①设定工作方式②设定计数初值③硬件启动④计数值送入计数器⑤计数过程⑥计数结束GATE③OUTCLK

031244方式1WR方式1:可编程单脉冲发生器(续)定时/计数器8253在计数期间,当GATE又出现上升沿时,计数器重新装入原计数值,重新开始定时/计数,在此期间OUT的输出状态一直保持低电平。

方式1:可编程单脉冲发生器(续)定时/计数器8253在计数过程中,如果重新装入新的计数初值,并不影响当前的计数状态。其响应过程是等本次计数结束、下一个GATE正脉冲触发信号到来时,才会将新的计数初值装入计数器中,使得计数器从新的计数初值开始计数。方式2:频率发生器(分频器)03124GATEOUTCLK

4方式2031240312403124WR当定时/计数器8253写入控制字后,OUT为高电平。计数器写入计数初值后,若GATE为高电平,则开始减1计数,计数期间,OUT输出保持高电平。计数器减到1时,OUT输出低电平。值得注意的是该低电平仅维持一个CLK脉冲宽度。之后,计数器又自动重新装入原来的计数初值,重新开始计数。方式2:频率发生器(分频器)(续)定时/计数器8253在写入初值或计数期间,当GATE变成低电平时,则不进行计数,计数器保持当前值不变。当GATE再次变成高电平时,计数器会重新装入原计数值,并重新开始计数。

方式2:频率发生器(分频器)(续)定时/计数器8253在计数过程中,如果重新装入新的计数初值,并不影响当前的计数状态。其响应过程是等本次计数结束时,才会将新的计数初值装入计数器中,使得计数器从新的计数初值开始计数。

方式3:方波发生器03124GATEOUTCLK

4方式3031240312403124WR当定时/计数器8253写入控制字后,OUT为高电平。计数器写入计数初值后,则计数器立即开始对CLK脉冲计数,计数期间,OUT输出保持高电平。当计数器计数到一半时,计数器改变输出状态,OUT输出低电平,直到计数任务全部完成为止,OUT输出恢复为高电平,然后重复上述过程。方式3:方波发生器(续)定时/计数器8253在方式3下,当计数初值为偶数时,写入控制字后OUT输出立即变为高电平。写入初值后的第一个CLK下降沿到来时,初值装入计数器。当初值N为偶数时,OUT输出占空比为1:1的方波,高、低电平的宽度都是N/2个CLK脉冲宽度。

方式3:方波发生器(续)定时/计数器8253在方式3下,当计数初值为奇数时,方式3的输出波形在一个周期内有(N+1)/2个CLK脉冲宽度的高电平;(N-1)/2个CLK脉冲宽度的低电平。方式3:方波发生器(续)定时/计数器8253在计数过程中,如果GATE信号变为低电平时,计数器则停止计数。若在OUT输出为低电平期间OUT=0,则OUT输出立即变为低电平。当GATE信号恢复高电平后的第一个下降沿到来时,计数器初值被重新装入,并从初值重新开始计数器。

方式4:软件触发选通信号GATEOUTCLK031244方式42233310WR当定时/计数器8253写入控制字后,OUT为高电平。计数器写入计数初值后,则计数器立即开始对CLK脉冲计数,计数期间,OUT输出保持高电平。当计数器计数到0时,计数器改变输出状态,OUT输出低电平,持续一个CLK脉冲宽度的时间后变为高电平。方式4:软件触发选通信号(续)定时/计数器8253在采用方式4计数过程中,如果GATE信号变为低电平时,对计数器有直接影响,但并不改变OUT的输出。GATE信号为高电平时,计数器正常工作,GATE信号为低电平时,计数器停止工作并维持原计数值。当GATE信号恢复高电平后的第一个下降沿到来时,计数器才恢复工作。

方式4:软件触发选通信号(续)定时/计数器8253在采用方式4计数过程中,如果重新装入新的计数初值,改变初值后的第一个CLK下降沿到来时,新的计数初值将立即被装入,使得计数器从新的计数初值开始计数。

方式5:硬件触发选通信号GATEOUTCLK031244方式522333110WR当定时/计数器8253写入方式5控制字后,OUT输出为高电平。计数器写入计数初值后,计数器并不立即开始计数,而是等到门控信号GATE有效(变为高电平)之后的一个时钟周期的下降沿才开始计数,OUT输出一个CLK脉冲宽度的负脉冲。然后OUT恢复高电平输出。方式5:硬件触发选通信号(续)定时/计数器8253在采用方式5计数期间,允许当前计数未完时的多次触发。GATE的再触发信号不会改变OUT的输出状态,但是,当GATE又出现上升沿之后的第一个CLK下降沿时,计数器会重新装入原计数值,并从初值开始计数,而不管原来的计数值为多少,即在每次触发之后,OUT的输出会保持N+1个CLK脉冲宽度的高电平,然后输出一个CLK脉冲宽度的负脉冲。

方式5:硬件触发选通信号(续)定时/计数器8253在采用方式5计数过程中,如果重新装入新的计数初值,并不影响当前的计数状态。但是,如果在新的初值写入后并且计数器计数到0之前有一个GATE信号触发,那么下一个CLK脉冲将使得新初值装入,开始新的计数。各种工作方式的输出波形方式0方式1方式2方式3方式4方式50N(硬件触发)N0/N110NN/2

N/20/N0N(硬件触发)01N(硬件触发)01NN01N010N00N(硬件触发)5.4.28253的控制字(编程)

8253加电后的工作方式不确定8253必须初始化编程,才能正常工作写入控制字写入计数初值读取计数值D7D6D5D4D3D2D1D01.写入方式控制字计数器读写格式工作方式数制D7D6D5D4D3D2D1D000计数器001计数器110计数器211非法00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节000方式0001方式1010方式2011方式3100方式4101方式50二进制1十进制控制字写入控制字I/O地址(A1A0=11)2.写入计数值选择二进制时计数值范围:0000H-FFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围表最大值10000计数值写入计数器各自的I/O地址3.读取计数值对8位数据线,读取16位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然后读取:向控制字I/O地址:给8253写入锁存命令从计数器I/O地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制例假设定时/计数器8253计数器0工作于方式3,按二进制计数,计数值为8。设8253的端口地址为50H~53H。试写出初始化程序。分析:定时/计数器8253计数器0工作于方式3并按二进制计数,那么其控制字为00010110B,初始值为8,应读/写计数器低八位字节。参考程序如下:MOV AL,16H ;计数器0工作于方式3OUT 53H,AL ;写入控制寄存器MOV AL,08H ;计数器计数初值08OUT 50H,AL ;写入计数初值5.4.48253的接口方法例

利用8253做一个秒信号发生器,其输出接一个发光二极管,要求发光二极管以0.5秒点亮、0.5秒熄灭的方式闪烁指示。假设已有一个高精度晶体振荡电路,输出信号为脉冲波,频率为1MHz,8253的端口地址为340H~343H,CPU与8253连接图如书p178的图5-33所示。试写出电路设计图及初始化程序。8253通道级联示意图(结合书p178图5-33)分析由题意知,本例要求用定时/计数器8253设计一个分频电路,且输出应为方波(否则发光二极管不会以0.5秒点亮、0.5秒熄灭的方式闪烁指示)。当频率为1Hz时,即f=1Hz,周期T为=1/f=1s当频率为1MHz时,即f=1MHz,周期T为=1/f=1那么分频系数N可由下式计算因为8253一个通道最大的计数值为65536(),所以对于N=1000000这样的数,一个通道是不可能完成的上述分频任务的。因为所以可以设想用两级通道计数器级联的方法来实现分频系数超过的分频要求。由上图可以看出,首先通道0把1MHz信号1000分频,得到1KHz的信号,然后通道1再把1KHz信号1000分频,最后得到1Hz信号。下面分析通道0和通道1的工作方式问题。由上述分析得知通道1要输出方波信号来驱动发光二极管,所以通道1应选方式3。对于通道0,由于它只起分频作用,对输出波形不作要求,所以方式2和方式3都可以选用。由分析结果,我们对通道0采取工作方式2,BCD计数;对通道1采取工作方式3,BCD计数(也可以二进制计数)。当然,在方式2和方式3中,要保持高电平。参考程序如下:MOV AL,35H ;计数器0工作于方式2,16位计数(按BCD计数)

MOV DX,343HOUT DX,AL ;写入控制寄存器MOV AL,00H ;计数器0初始计数值(低8位)MOV DX,340HOUT DX,AL ;MOV AL,10H ;计数器0初始计数值(高8位)OUT DX,AL ;MOV AL,77H ;计数器1工作于方式3,16位计数(按BCD计数)MOV DX,343HOUT DX,AL ;写入控制寄存器MOV AL,00H ;计数器1初始计数值(低8位)MOV DX,341HOUT DX,AL ;MOV AL,10H ;计数器1初始计数值(高8位)OUT DX,AL ;

5.5并行输入/输出接口8255A教学重点

8255A的工作方式和编程

8255A的应用并行数据传输方式一次传送一个字长的数据,通常是8位、16位或32位为传输单位适合于外部设备与微机之间进行近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间具有多种功能的可编程并行接口电路芯片最基本的接口电路:三态缓冲器和锁存器与CPU间、与外设间的接口电路:状态寄存器和控制寄存器还有端口的译码和控制电路、中断控制电路5.5.18255A的内部结构和引脚数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C上部B组控制B组端口BB组端口C下部读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET1.外设数据端口端口A:PA0-PA7A组,支持工作方式0、1、2端口B:PB0-PB7B组,支持工作方式0、1端口C:PC0-PC7仅支持工作方式0A组控制高4位PC4-PC7B组控制低4位PC0-PC3端口A:PA0-PA7常作数据端口,功能最强大端口B:PB0-PB7常作数据端口端口C:PC0-PC7可作数据、状态和控制端口分两个4位,每位可独立操作控制最灵活,最难掌握2.外部引脚CSA1A0I/O地址读操作RD写操作WR00000101001160H61H62H63H读端口A读端口B读端口C非法写端口A写端口B写端口C写控制字D0-D7数据线A0-A1地址线CS片选信号RD读信号WR写信号RESET复位信号5.5.28255A的控制字与状态字(编程)初始化编程:一个方式控制字

采用控制I/O地址:A1、A0=11工作过程中:通过数据端口对外设数据进行读写

数据读写利用端口A、B和C的I/O地址,A1、A0依次等于00、01、101.方式选择控制字控制字写入控制字I/O地址(A1A0=11)例如,要求:A端口:方式1输入C端口上半部:输出,C口下半部:输入B端口:方式0输出方式控制字:10110001B或B1H初始化的程序段:

MOVDX,0FFFEH

;假设控制端口为FFFEH

MOVAL,0B1H

;方式控制字

OUTDX,AL

;送到控制端口2.C口个别位置1/置0控制字特别便于置位复位内部中断允许触发器INTE控制字写入控制字I/O地址(A1A0=11)D7D6D5D4D3D2D1D0方式1输入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2双向OBFAINTE1IBFAINTE2INTRA×××3.读C口的状态字A组B组4.读写数据端口(补充)初始化编程后:当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据。当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备。8255A具有锁存输出数据的能力对输出方式的端口同样可以输入不是读取外设数据读取的是上次CPU给外设的数据利用8255A的输出锁存能力,可实现按位输出控制

例如,对输出端口B的PB7位置位的程序段:

MOVDX,0FFFAH

;B端口地址假设为FFFAH

INAL,DX

;读出B端口原输出内容

ORAL,80H

;使PB7=1

OUTDX,AL

;输出新的内容5.归纳:读写端口C(补充)C端口被分成两个4位端口,这两个端口只能以方式0工作,可分别选择输入或输出。在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组。当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用。此时,C端口其余引脚仍可设定工作在方式0。对端口C的数据输出有两种办法通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效。通过控制端口A1A0=11:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位/复位内部的中断允许触发器。读取的C端口数据有两种情况(通过端口C的I/O地址)未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息。被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字,可用来检查外设或8255A的工作状态,从而控制程序的进程。5.5.38255A的工作方式与操作时序方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路1.工作方式0方式0是基本的输入/输出方式。在这种方式下,三个端口都可以由程序规定为输入或输出方式,但不能既作为输入又作为输出,也没有提供固定的联络信号。C口分为两个4位——高4位和低4位,可以分别设置为输入或输出方式。各端口在输出方式下有锁存功能,输入不锁存。当以工作方式0输入时,外设先将数据送到8255A的某个端口,CPU执行一条输入指令,RD有效,将该端口的数据送入CPU。当以工作方式0输出时,CPU执行一条输出指令,WR有效,将数据送到8255A的某个端口,然后由外设取走。

工作方式0适合于数据的无条件传送,也可以人为指定某些位作为状态信息线,进行查询式传送。

2.工作方式1方式1是选通输入/输出方式。这种方式下,A口、B口作为数据的输入或输出口,输入和输出都具有锁存功能;C口的某些位相应地被定义为A口、B口的状态和控制信号线。

若A口和B口都工作于方式1,则C口有6位固定作为A口、B口的状态和控制信号,剩下2位可由程序指定为输入和输出。若A口、B口中一个工作于方式1,另一个工作于方式0,则C口有3位固定作为A口或B口的状态和控制信号,其余5位可由程序指定为输入或输出。

方式1输入引脚:A端口数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中断允许触发器方式1输入引脚:B端口PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能方式1输入联络信号STB——选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器。IBF——输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示输入设备数据已经锁存在8255的输入锁存器,锁存完毕。IBF由STB置位,RD的上升沿使它复位。IBF可作为8255A与外设的联络信号。当IBF=0时,允许外设向8255A传送一个数据;当IBF=1时,表示外设送来的数据还未被CPU取走,这时禁止外设向8255A传送数据。IBF也可作为CPU的查询信号,当IBF=1时,告诉CPU应该从8255A的端口读取数据。

INTR——中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据。在程序设置的中断允许信号INTE=1的条件下,当INTE=1和IBF=1、STB=0时,INTR被置为1,RD的上升沿使它复位。INTE——端口内部的中断允许信号该信号是内部中断允许触发器的状态,由C口的位控字来设置。若位控字使PC4=1,则A口的中断允许信号INTEA=1;若位控字PC2=1,则B口的中断允许信号INTEB=1。这一点对于PC4和PC2两引脚的STB(A)、STB(B)功能并无影响。

方式1输入时序STB和IBF是外设和8255A间的一对应答联络信号,为的是可靠地输入数据方式1输出引脚:A端口外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中断允许触发器方式1输出引脚:B端口PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器方式1输出联络信号OBF——输出缓冲器满信号,低有效8255A输出给外设的一个控制信号,当其有效表示CPU已把数据输出给指定的端口,告诉外设可以将数据取走。CPU的WR低电平的上升沿将外设发来的ACK置为高电平。ACK——响应信号,低有效8255A的端口数据已由外设取走,外设向8255A发出一个负脉冲信号ACK。INTR——中断请求信号,高有效当输出设备已接受数据后,8255A可输出此信号向CPU提出中断请求,要求CPU继续提供数据。在程序设置的中断允许信号INTE=1的条件下,当OBF=1和ACK=1时,INTR被置为1,WR的上升沿使它复位。端口A的INTEA

对应PC6端口B的INTEB

对应PC2方式1输出时序OBF和ACK是外设和8255A间的一对应答联络信号,为的是可靠地输出数据3.方式2双向方式方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据。只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同。方式2的数据输入过程与方式1的输入方式一样。方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据。该方式下,ACK的有效边沿启动A口将数据送出,ACK的上升沿是数据已输出的应答信号。方式2双向引脚PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号方式2双向时序data-out

INTR

data-outdata-indata-inPA0~PA7D0~D7IBF

WROBFACKSTBRD8255A的应用实例(补充)作为通用的并行接口电路芯片,8255A具有广泛的应用:应用在IBMPC/XT微机上连接简易键盘驱动LED数码管

……发光二极管LED是最简单的显示设备由7段LED就可以组成的LED数码管LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中LED数码管可以显示内存地址和数据等hgfedcba1.LED数码管的工作原理主要部分是7段发光管顺时针分别称为a、b、

温馨提示

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

评论

0/150

提交评论