第五章 输入输出及接口芯片应用_第1页
第五章 输入输出及接口芯片应用_第2页
第五章 输入输出及接口芯片应用_第3页
第五章 输入输出及接口芯片应用_第4页
第五章 输入输出及接口芯片应用_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

第5章输入输出及接口芯片的应用5.1总线技术5.2I/O接口概述5.3中断系统5.4定时与计数5.5并行接口5.6串行接口

5.1总线技术

PC机从其诞生以来就采用了总线结构方式。自1970年美国DEC公司在PDP11/22小型计算机上采用Unibus总线以来,随着计算机技术的迅速发展,各大公司相继推出了各种标准的、非标准的总线,总线速度是制约计算机整体性能的最大因素。当前总线结构方式已经成为微机性能的重要指标之一。

5.1.1PC/XT总线1、总线的概念计算机系统中各模块之间互连的链路叫做总线,它支持模块之间的信息传送。总线就是各种信号线的集合,是计算机各部件之间传送数据、地址和控制信息的公共通路。从物理结构来看,它是由一组导线和相关的控制、驱动电路组成。在微型计算机系统中有各式各样的总线,总线常被作为一个独立部件看待。2、PC/XT总线的构成1)地址总线A0~A19:用来对系统存储器或I/O接口进行寻址。2)数据总线D0~D7:双向,数据总线,用来在微处理器、存储器和I/O接口之间传送数据、控制命令或信息。3)控制线(21根)ALE:输出,地址锁存允许信号。该信号由8288总线控制器提供,用来锁存CPU送出的地址信息,供其它的芯片或外设读取。在I/O通道中.它与AEN配合作为CPU地址有效的指示。ANE:地址允许信号。该信号用来切断CPU对总线的控制。允许在I/O通道中(即在I/O扩展总线中)进行DMA传送。当AEN为高电平(有效电平)时,由DMA控制器控制地址总线和数据总线,并提供读写命令。MEMR*,MEMW*:输出,内存读取、写入信号。此信号在CPU启动存储器访问总线周期时,由总线控制器所驱动。IOR*,IOW*:输出,I/O读、写信号。当CPU需要向I/O接口读取或写入数据时,相应信号会变成低电平。

IRQ7~IRQ2:输入,第2级至第7级硬件中断请求输入信号。这些信号是I/O接口向CPU发出的请求服务信号,其中IRQ2优先级最高,IRQ7优先级最低。中断请求信号由IRQ信号的上升沿(由低至高的跳变)产生,它应一直保持高电平,直到CPU响应为止。DRQ3~DRQl:

DMA请求输入信号。此信号用来表示外部设备要求进入DMA周期。若某一外设或I/O接口具有高速传输能力且有大量数据要传输,希望与内存直接进行数据传输(即DMA),而不希望通过CPU时,可启动此号信。此信号直接进入主板上的DMA控制器,由DMA控制器按优先顺序,决定让哪个I/O接口传输数据。

DACK0~DACK3:DMA通道0~3的DMA响应信号。此信号由DMA控制器发出,表示对应的DRQ信号(DMA请求DRQ1~DRQ3)已被接受。4)状态线(2根)5)辅助线(11根)3、时钟周期、指令周期、总线周期1)时钟周期:时钟信号CLK的周期,是微处理器处理操作的最基本的时间单位(CPU的主频)。2)指令周期:取出并执行一条指令的时间。一般由若干个机器周期组成。机器周期:通常用内存中读取一个指令字的最短时间周期。指令不同,所需的机器周期数也不同。对于一些简单的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。3)总线周期由于存储器和I/O端口是挂接在总线上的,CPU对存储器和I/O接口的访问,是通过总线实现的。通常把CPU通过总线对微处理器外部(存储器或I/O接口)进行一次访问所需时间称为一个总线周期。一个总线周期一般包含4个时钟周期,T1状态、T2状态、T3状态和T4状态,必要时,可在T3、T4间插入一个至数个Tw。T1状态——输出存储器地址或I/O地址。T2状态——输出控制信号。T3和Tw状态——总线操作持续,并检测READY以决定是否延长时序。T4状态——完成数据传送

5.1.2微机总线的标准和分类1、总线标准与性能指标所谓总线标准,可视为系统与各模块、模块与模块之间一个互连的标准界面。这个界面对两端的模块都是透明的,即界面的任一方只需根据总线标准的要求完成自身一面接口的功能要求,而无需了解对方接口与总线的连接要求。因此,按总线标准设计的接口可视为通用接口。

目前流行的总线标准有:(1)ISA(IndustrialStandardArchitecture)总线,又称AT总线,它采用独立于CPU的总线时钟,因此CPU可采用比总线频率更高的时钟,有利于CPU性能的提高。但ISA总线没有支持总线仲裁的硬件逻辑,因此不支持多台主设备系统,且ISA上的所有数据的传送必须通过CPU或DMA接口来管理,因此使CPU花费了大量时间来控制与外部设备交换数据。ISA总线时钟频率为8MHz,最大传输率为16MB/s。2)EISA(ExtendedIndustrialStandardArchitecture)总线,是一种在ISA基础上扩充开放的总线标准,它与ISA完全兼容,它从CPU中分离出了总线控制权,是一种智能化的总线,能支持多总线主控和突发方式的传输。EISA总线的时钟频率为8MHz,最大传输率可达33MB/s,数据总线为32位,地址总线为32位,扩充DMA访问。3)PCI(PeripheralComponentInterconnect外部设备互连总线)是由Intel公司提供的总线标准。具体特点:32位总线,扩展支持64位总线,包括数据总线和地址总线;

33M总线时钟,增强方式66M总线时钟;支持多总线结构,在一条总线上,可多个CPU同时工作,共享总线资源;

5V、3.3V两种信号电压标准。

总线性能指标1)总线宽度

总线宽度又称为总线位宽指的是总线中数据总线的数量,用bit(位)表示,总线的位宽指的是总线能同时传送的数据位数,即我们常说的16位、32位、64位等总线宽度的概念。在工作频率固定的条件下,总线的位宽越宽则总线每秒数据传输率越大,也即总线带宽越宽。2)总线时钟频率总线时钟是总线中各种信号的定时标准,也称为总线的工作频率,以MHz为单位。它是指用于协调总线上的各种操作规程的时钟信号的频率。工作频率越高则总线工作速度越快,也即总线带宽越宽。一般来说,总线时钟频率越高,其单位时间内数据传输量越大,但不完全成正比例关系。3)最大数据传输速率(带宽bandwidth)。最大数据传输速率指的是在总线中每秒钟传输的最大字节量,有时也被称为带宽(bandwidth),用MB/s表示,即每秒多少兆字节。总线数据传输速率=总线宽度*总线频率/8在现代微机中,一般可做到一个总线时钟周期完成一次数据传输,因此,总线的最大数据传输速率为总线宽度除以8(每次传输的字节数)再乘以总线时钟频率。例如,PCI总线的宽度为64位,总线时钟频率为33.3MHz,则最大数据传输速率为64÷8×33.3=266MB/s。但有些总线采用了一些新技术(如在时钟脉冲的上升沿和下降沿都选通等),使最大数据传输速率比上面的计算结果高。总线是用来传输数据的,所采取的各项提高性能的措施,最终都要反映在传输速率上,所以在诸多指标中最大数据传输速率是最重要的。总线带宽、总线位宽、总线工作时钟频率的关系举个例子就很容易明白了。高速公路上的车流量取决于公路车道的数目和车辆行驶速度,车道越多、车速越快则车流量越大;总线带宽就象是高速公路的车流量,总线位宽仿佛高速公路上的车道数,总线时钟工作频率相当于车速,总线位宽越宽、总线工作时钟频率越高则总线带宽越大。

当然,单方面提高总线的位宽或工作时钟频率都只能部分提高总线的带宽,并容易达到各自的极限。只有两者配合才能使总线的带宽得到更大的提升。

1)按照总线传递的内容分类:地址总线AB、数据总线DB、控制总线CB。2)按总线所处的位置可分为:

片内总线:在CPU内部,寄存器之间和算术逻辑部件ALU与控制部件之间传输数据所用的总线称为片内总线。(即芯片内部的总线)又称为内部总线或内总线。(InternalBus)

片外总线:CPU与内存RAM、ROM和输入/输出设备接口之间进行通讯的通路。把片外总线又称为外部总线或外总线

(ExternalBus)。CPU通过总线实现程序取指令、内存与外设的数据交换。2、总线的分类3)按照总线的结构分类单总线结构:在这种结构中,将CPU、主存和I/O设备都挂到一组总线上,形成单总线结构的计算机。这种结构最明显的特点就是,当I/O与主存交换信息时,原则上不影响CPU的工作,CPU仍可继续处理不访问主存或I/O的操作,这就使CPU工作效率有所提高。但是,因为只有一组总线,当某一时刻各部件都要占用时,就会出现争用现象。

双总线结构:在单总线基础上,又单独开辟一条CPU与主存之间的通路,叫存储总线。这组总线速度高,只供主存与CPU之间传输信息。这样既提高了传输效率,又减轻了系统总线的负担,还保留了I/O与存储器交换信息时不经过CPU的特点。5.1.3ISA总线5.1.4PCI总线5.2.1接口的概念与I/O接口计算机两部件之间的界面称之为接口。

接口的主要功能是:(1)数据缓冲及输入、输出(2)寻址功能(3)命令译码(4)同步、联络和控制功能5.2I/O接口概述1)I/O接口与I/O设备之间交换的信号通常有四种:数字量、模拟量、开关量、脉冲量。2)I/O接口与CPU之间交换的信息通常有三种:数据信息、状态信息、控制信息。2、I/O接口的交换信号5.2.2I/O接口的典型结构内部结构数据寄存器:存放外设与主机之间传送的信息,在缓冲区可存放一批数据。状态寄存器:存放外设或接口的状态。控制(命令)寄存器:存放控制外设的信号或命令。注:同样的二进制代码,在不同的寄存器中将有不同的作用。外部特性

接口电路的外部特性由其引出信号来体现:

(1)面向处理器一侧的信号(与CPU的连接):类似处理器总线或系统总线,主要处理地址译码。

(2)面向外设一侧的信号(与外设连接):与外设有关,但可以笼统地分成外设的数据信号、状态信号和控制信号主要功能

(1)数据缓冲:匹配快速的处理器与相对慢速的外设的数据交换

(2)信号变换:把信号相互转换为适合对方的形式CPU通过接口对外设进行控制的方式有以下几种:

1)程序控制方式这种方式下,CPU通过I/O指令询问指定外设当前的状态,如果外设准备就绪,则进行数据的输入或输出,否则CPU等待,循环查询。这种方式的优点是结构简单,只需要少量的硬件电路即可,缺点是由于CPU的速度远远高于外设,因此通常处于等待状态,工作效率很低。

5.2.4I/O数据传输的控制方式2)中断处理方式在这种方式下,CPU不再被动等待,而是可以执行其他程序,一旦外设为数据交换准备就绪,可以向CPU提出服务请求,CPU如果响应该请求,便暂时停止当前程序的执行,转去执行与该请求对应的服务程序,完成后,再继续执行原来被中断的程序。

中断处理方式的优点:为CPU省去了查询外设状态和等待外设就绪所花费的时间;提高了CPU的工作效率,还满足了外设的实时要求。

中断处理方式的缺点:需要为每个I/O设备分配一个中断请求号和相应的中断服务程序;每传送一个字符都要进行中断,启动中断控制器,还要保留和恢复现场以便能继续原程序的执行。3)DMA(直接存储器存取)传送方式

DMA最明显的一个特点是它不是用软件而是采用一个专门的控制器来控制内存与外设之间的数据交流,无须CPU介入,大大提高CPU的工作效率。在进行DMA数据传送之前,DMA控制器会向CPU申请总线控制权。5.3.1中断概述5.3.28086/8088的中断系统5.3.38259A可编程控制器5.3.48259的应用5.3中断系统中断响应的条件:①CPU应工作在中断方式(CPU开中断,IF=1)②申请中断的事件优先级别到位③CPU执行完当前一条完整的指令以后作用:①提高CPU的工作效率②提高实时数据的处理时效③可以实现多任务多用户管理5.3.1中断概述中断源:引起中断的原因或来源。中断源可分为两大类:一类是来自CPU内部,称之为内部中断源;另一类来自于CPU外部。称之为外部中断源。中断处理流程:保护断点;转入中断服务程序;返回断点。1.中断分类中断特点:矢量型中断,有256个中断矢量号(设备号)(0~255)5.3.28086/8088的中断系统软件中断硬件中断中断矢量:是中断处理子程序的入口地址,每个中断类型对应一个中断矢量中断矢量表:在内存中,开辟一个区域存放中断服务程序的入口地址的表。对于8086,这个区域的首地址00000H(固定)问题:已知中断矢量号代码,怎样找到中断服务程序的入口地址?(例5-4)2.中断矢量和中断矢量表例:键盘中断的矢量号为09H,它的中断服务程序入口地址为0BA9H:0125H,求它在中断矢量表中的地址及相应单元内容解:键盘中断对应的中断矢量表位于0000:0024H(09H×4=24H)开始的4单元这4个单元的内容见表:1、8259A的内部结构及管脚分配5.3.38259可编程中断控制器特点:可编程、八级向量优先中断、级连、优先权动态地改变。1)中断请求寄存器(IRR)中断请求IR7~IR0,当某个为高电平时,IRR相应位置“1”。2)中断服务寄存器(ISR)任何一级中断被响应,执行其中断服务程序,ISR相应位置“1”。多重中断情况下,ISR中多位被同时置“1”。3)优先权判别器(PR)当IR7~

IR0中有多个中断请求信号同时产生时,PR判定哪个中断请求具有最高优先权,并把它置入ISR的相应位。4)中断屏蔽寄存器(IMR)通过IMR可实现对各级中断的有选择的屏蔽。2、8259A的中断处理顺序①当有一条或若干条中断请求输入线(IR0~IR7)上的中断请求信号有效.则IRR的相应位置1。②若中断请求线中至少有一条是中断未被屏蔽的,则8259A由INT引脚向CPU发出中断请求信号INTR。③若CPU是处于开中断状态,则在当前指令执行完以后。CPU用INTA信号作为对INTR的响应。④8259A在接收到CPU发出的第一个INTA脉冲后,使最高优先权的ISR位置并使相应的IRR位复位。⑤在第二个中断响应总线周期中,CPU再输出一个INTA脉冲,这时8259A就把刚才选定的中断源所对应的8位中断类型码放到数据总线上。CPU读取该中断类型码并乘以4,就可以从中断向量表中取出中断服务程序的人口地址并转去执行。⑥若8259A工作在自动中断结束AEOI方式。在第二个INTA脉冲结束时,就会使中断源所对应的ISR中的相应位复位。对于非自动中断结束方式.则由CPU在中断服务程序结束时向8259A写入EOI命令,才能使ISR中的相应位复位。3、8259A与总线的连接4、8259A编程8259A接收来自CPU的两类命令字:初始化命令字ICW、操作命令字OCW。8259A属于I/O接口芯片,向8259A写入用OUT,读取其状态用IN。(1)8259A的初始化初始化:第一部分称预置命令字ICW1~ICW4。预置命令字是要按规定顺序写入8259A中的。预置命令字功能:

ICW1:8259A是单一式还是主从式;

ICW2:设置中断类型码的初始化命令字,必须写到8259A的奇地址端口中;

ICW3:只有在系统中包含有多片8259A时,ICW3才有效。而系统中是否有多片8259A由ICW1指示。ICW3是标志主片/从片的初始化命令字,必须写到8259A的奇地址端口中;

ICW4:完成中断管理方式的设定。不是任何情况下都需要设置4个预命令,可根据8259A的使用情况而定。(1)ICW1芯片初始化命令字标记:A0=0,D4=1D7D6D5D4D3×××D2D1D01LTIM0SNGLIC4习惯上填01-中断请求电平触发0-中断请求边沿触发对8086系统总为01-单片,0-级联1-设置ICW40-不设置A00(2)ICW2设置中断类型码初始化命令字,紧跟在ICW1之后,定义中断类型码的高5位,低3位由IRi确定。标记:A0=1D7D6D5D4D3T7T6T5D2D1D0T4T3A10A9A8A01与用户选择类型码有关,选择系统没有占用的000—IR0001—IR1010—IR2011—IR3100—IR4101—IR5110—IR6111—IR7注:中断类型码一定是连续的!(3)ICW3

级联方式初始化字,紧跟在ICW2之后,标记:A0=1

自学(4)ICW4

对于8086/8088系统是必须设置的预置命令字方式控制初始化命令字,写ICW4的标记为A0=1P218例5-5:例:若8259A以两片级联方式管理15级中断,从片INT接到主片的IR2上,主、从片的中断请求采用边缘触发方式,选用完全嵌套、非缓冲方式。主片的中断类型码为8~0FH,从片的中断类型码为70H~77H,设主片的地址为20H,21H;从片的地址为22H,23H。请初始化8259A。;初始化主片MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,AL;初始化从片MOVAL,11HOUT22H,ALMOVAL,70HOUT23H,ALMOVAL,02HOUT23H,ALMOVAL,01HOUT23H,AL5.4.1定时与计数概述5.4.28253/8254可编程间隔定时器5.4定时与计数58如何实现定时?软件方法:用一段程序实现延时利用程序循环延迟指定的时间缺点:CPU占用率?延时精度?兼容?硬件方法:定时/计数器电路利用脉冲计数在设定的时间输出定时信号,灵活性较差?采用可编程定时器/计数器定时时间与计数值可由软件来确定和改变,设定后与CPU并行工作,不占用CPU的时间。5.4.1定时与计数概述598253是一种可编程的计数器/定时器接口芯片。内部有三个独立的计数器,通过设置控制字,各计数器可以工作于不同方式。该芯片的最高计数频率为2MHz,可用于产生各种定时波形,也可用于对外部事件计数。可以实现定时与计数两个功能,可用于:系统时钟DRAM刷新定时定时采样实时控制脉冲的计数5.4.28253/8254可编程间隔定时器601.8253的外部引脚和内部结构数据线:写控制字,读写计数器的计数值计数器0的时钟输入端计数器0的输出端为低电平的时候,CPU将计数值写入计数器或将控制字写入控制字寄存器为低电平的时候,CPU读取所选计数器的内容A1A0选中端口00计数器001计数器110计数器211控制字寄存器计数器0的门控信号脉冲输入端,控制计数(1)8253的外部引脚61编址部件0编址部件1编址部件2编址部件3(2)8253的内部结构62编程结构计数器(3个)——每个包括控制寄存器——存放控制命令字(只写)占用4个地址—3个计数器,1个控制寄存器计数(初值)寄存器16位计数工作单元输出锁存器(减法)(两个8位)(两个8位)63设置8253的工作方式:此时,全部控制逻辑电路复位,输出OUT为初始状态(高电平或低电平);设置计数初值到计数(初值)寄存器第一个CLK信号使初值寄存器的内容置入计数工作单元以后每来一个CLK信号在CLK的上升沿时,计数器对门控信号GATE进行采样,来决定工作状态(计数、触发、停止、重新置初值);在CLK的下降沿时,计数器执行部件从初值开始作减1计数;其中0是最大初值,1是最小初值;若以二进制数制计数,则0相当于216=65536;若以BCD码数制计数时,则0相当于104=10000.减到0时,OUT端输出一特殊波形的信号(3)8253的工作原理64CLKGATEOUTD0~D7WRRDA1A0CSDBIOWIORA1A0译码器高位地址A15-A28253共三组8253占用4个接口地址:

计数器0

计数器1

计数器2

控制寄存器(决定8253的基地址)2、8253与总线的连接65控制字格式SC1SC0RW1RW0M2M1M0BCD1--计数值为BCD码格式0--计数值为二进制格式M2M1M0

模式选择

000模式0001模式1/10模式2/11模式3100模式4101模式500----对计数器进行锁存01----只读/写低8位字节10----只读/写高8位字节11----只读/写低8位字节,

再读/写高8位字节.00----选计数器001----选计数器110----选计数器211----无意义3、8253的编程设置8253的某一计数工作方式的编程只需两个步骤:1)写入控制字;2)写入计数初值。例1:设地址总线上A7~A2=100101B时,某8253的CS*有效,8253的A1和A0分别与地址总线的A1和A0相连。1)试确定该8253各端口的地址;2)如果控制字为00110110B,试确定该8253的设置。(1)设置计数器的工作方式例2:某8253的端口地址范围为94H~97H,三个CLK端均输入1MHz的时钟脉冲,试分析下面的程序,确定计数器0和计数器1的工作方式及OUT端输出的波形。MOVAL,00010100BOUT97H,ALMOVAL,0OUT94H,ALMOVAL,01010001BOUT97H,ALMOVAL,0OUT95H,AL有三种途径可以读取计数器当前值:1)使用端口读指令

INAL,XXXXXX01B2)使用锁存命令D7D6选择计数器,D5D4=00B。3)使用读回命令(8254增加)(2)读取计数器当前值4、8253的工作方式(1)方式0:计数结束中断(2)方式1:可由硬件重复触发的单脉冲(3)方式2:序列脉冲发生器(4)方式3:方波发生器(5)方式4:软件触发选通脉冲(6)方式5:硬件触发选通脉冲70工作方式0:计数结束产生中断在GATE=1时写入控制字,OUT端输出低电平为起始电平,装入计数初值n,开始计数。写信号后沿()经一个CLK()将n值装入计数器。每经过一个CLK,在CLK下降沿,计数器减1。n=0时,计数结束,OUT由低电平变为高电平(可利用该电平变化向CPU发出中断请求),并保持,不开始重新计数。只有写入另一个计数值时,开始新的计数。在GATE=0时停止计数,直至GATE恢复高电平,再继续计数71工作方式0:计数结束产生中断(小结)软件启动,不自动重复计数。装入初值后OUT端变低电平,计数结束OUT输出高电平。计数过程中,GATE端应保持高电平。每写入一次初值计数一个周期,然后停止计数。OUT端输出是一个约(n+1)*CLK宽度的负脉冲。计数过程中可随时修改初值重新开始计数。72写入控制字,OUT端输出高电平为起始电平。装入计数初值n后,必须等待GATE的上升沿来后才转入计数,这时OUT变低,开始计数,每一个计数脉冲,计数器值减1。计数到0,OUT变成高电平,负脉冲结束,脉冲宽度=tc×n(tc为时钟周期)。在计数过程中,若GATE变低,不影响计数。方式1的时序图(计数过程中GATE仅有一个上升沿)方式1:可由硬件重复触发的单脉冲73在计数过程中,若再次产生GATE的上升沿触发,则要重新装入n值,在再触发脉冲上升沿之后的一个CLK脉冲的下降沿,计数器重新开始计数。可以通过该方法改变脉冲的宽度。方式1的时序图(计数过程中GATE不止产生一个上升沿)方式1:可由硬件重复触发的单脉冲74硬件启动,不自动重复计数。装入初值后OUT端变高电平,计数开始OUT端变为低电平,计数结束后又变高。门控信号GATE端的跳变触发计数,可重复触发。若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为两次计数过程之和。计数过程中写入新初值不影响本次计数。方式1:可由硬件重复触发的单脉冲(小结)75写入控制字,OUT端输出高电平为起始电平,装入计数初值n,开始计数。每一个计数脉冲下降沿n减1,当n减至1时,OUT变低,n减为0时,OUT变高,产生一个周期一样宽的负脉冲。接着自动装入n连续计数,输出频率为与时钟脉冲:fclk/n。计数过程中,允许重新装入新的n值,下一个计数周期按新的n值计数。在GATE=1时:方式2的时序图方式2:序列脉冲发生器76计数过程中,若GATE=0,停止计数,并强迫OUT输出高电平,在GATE变为高电平后,重新装入n值,开始计数。方式2的时序图(GATE电平改变)方式2:序列脉冲发生器77软、硬件启动,自动重复计数。装入初值后OUT端变高电平,计数到最后一个CLK时OUT输出负脉冲,并连续重复此过程。GATE为计数的控制信号:GATE变低计数停止,再变高时的下一个CLK下降沿,从初值开始重新计数。每个计数周期结束时(减到1时),OUT端输出一个CLK宽度的负脉冲。计数过程自动重复进行。计数过程中修改初值不影响本轮计数过程。方式2:序列脉冲发生器(小结)78方式3的时序图(5)(4)(4)(5)输出频率为:fclk/n的方波。写入控制字后,OUT端输出低电平作为起始电平,装入计数值n后,变为高电平。n为偶数,每个时钟脉冲下降沿n值减1,至n/2后,电平变为低电平,并继续减1计数至0,然后改变OUT电平,重新装入n,开始计数。n为奇数,输出高电平宽度为(n+1)/2,低电平宽度为(n-1)/2的方波。GATE=0

停止计数,并强迫OUT输出高电平,在GATE变高后,重新将n装入,开始计数。注:GATE功能同方式2GATE=1工作方式3:方波频率发生器79工作方式3:方波频率发生器(小结)软、硬件启动,自动重复计数。装入初值后OUT端变高电平,然后OUT连续输出对称方波:前N/2或(N+1)/2个CLK,OUT为高后N/2或(N-1)/2个CLK,OUT为低。计数过程中修改初值不影响本半轮计数过程其余的与方式2类似。80工作方式4:软件触发选通脉冲写入控制字后,OUT端变为高电平,写入初始值后,计数器作减1计数,OUT电平保持不变。计数器减至0时,OUT端输出一个脉冲周期的负脉冲,然后停止计数,只有输入新的计数值后,才能开始新的计数。计数过程中,若GATE变低电平,停止计数,在其变高后,重新将n装入,开始计数。方式4的时序图(a.GATE一直为高电平b.GATE电平改变)81工作方式4:软件触发选通脉冲(小结)软件启动,不自动重复计数。装入初值后输出端变高电平,计数结束输出一个CLK宽度的负脉冲计数过程中,GATE端应保持高电平。每写入一次初值,计数一个周期,然后停止计数。每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。计数过程中修改初值不影响本轮计数过程。82工作方式5:硬件触发选通脉冲写入控制字后,OUT端变为高电平,写入初始值n后,必须等待GATE的上升沿触发才转入计数。计数器减至0时,OUT端输出一个脉冲周期的负脉冲。然后n值自动装入计数器,但要等GATE的上升沿来后才再次开始计数。计数过程中,若GATE变低电平,不影响计数,但其上升沿将使得n重新装入计数器,开始计数。方式5的时序图(a.GATE一直为高电平b.GATE电平改变)83工作方式5:硬件触发选通脉冲硬件启动,不自动重复计数。OUT端波形与方式4相同写入初值时,GATE端应保持低电平。GATE每出现一次正脉冲,计数一个周期,然后停止计数。每个计数周期结束时(减到0时),OUT端输出一个CLK宽度的负脉冲。计数过程中修改初值不影响本轮计数过程。84在使用8253芯片时,首先要对其进行初始化编程。初始化编程包括写入控制字和写入计数值两个步骤。第一步,写入控制字。任一计数器的控制字都要从8253的控制口地址写入,控制哪个计数器由控制字的D7D6位来决定。第二步,写入计数初始值。计数初始值经由各计数器的端口地址写入。若控制字里规定只写低八位,则写入低八位,高8位自动置0若控制字里规定只写高八位,则写入高八位,低8位自动置0。若是16位计数值,则分两次写入,先写入低8位,再写入高八位。写入顺序:可按计数器分别写入控制字和初值。也可先写所有计数器控制字,再写入它们的初值5、8253/8254的应用书本P242例5-8:MOVDX,26BHMOVAL,00110000BOUTDX,ALMOVDX,268HMOVAL,00HOUTDX,ALMOVAL,40HOUTDX,AL2008.1-39;2007-38;2010-38868253小结包含3个16位计数器通道4个编址部件:计数器0/1/2和控制寄存器每个计数器通道工作前必须初始化:控制字和计数初值6种工作方式每种工作方式:启动方式、输出波形、是否可重复计数等各不相同1、8255A的外部引脚和内部结构1)引脚

5.5并行接口数据线:与CPU交换数据PC口PB口PA口地址选择A1A000端口A01端口B10端口C11控制字寄存器2、8255A与总线的连接3、8255A的编程(1)设置工作方式和端口读/写(2)置位复位端口C应用注意:PC口控制字虽然是对端口C操作,但应写入到控制口地址,而不是写入到PC数据口。4、8255A的工作方式(1)方式0:基本输入/输出。在方式0下,A、B、C三个端口均用作输入/输出,这种输入/输出只是简单的输入/输出,无联络信号。A口和B口在方式1输入时的情况(2)方式1:带选通的输入/输出1)方式1的输入A口和B口在方式1输出时的情况2)方式1的输出方式2下的引脚定义(3)方式2:带选通的双向输入/输出例:如图,设8255端口地址为2F80~2F83H,编程设置8255A组、B组均工作于方式0,A口输出,B口输出,C口高4位输入,低4位输出。然后,读入开关K的状态,若K打开,则使发光二极管熄灭;若K闭合,则使发光二极管点亮。5.5.3LED显示器接口1、工作原理2、1位LED数

温馨提示

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

评论

0/150

提交评论