您好,欢迎访问三七文档
1第7章常用数字接口电路2主要内容:掌握二种可编程接口芯片的应用了解串行通信的一般概念37.1接口电路概述CPU与外设之间信息交换的通道信息缓冲、信息变换、电平转换、联络控制分类:8086系统中最常用的数字接口电路芯片:–8253、8255、8250功能传送方式传送的信息类型输入接口并行接口数字量的输入/输出接口输出接口串行接口模拟量的输入/输出接口47.2可编程定时/计数器8253掌握:引线功能及计数启动方法6种工作方式及其输出波形8253的使用:–芯片与系统的连接–芯片的初始化编程5定时/计数器的用途可以实现定时与计数两个功能,可用于–系统时钟–DRAM刷新定时–定时采样–实时控制–脉冲的计数–。。。6如何实现定时?软件方法:用一段程序实现延时•利用程序循环延迟指定的时间•缺点:CPU占用率?延时精度?兼容?硬件方法:定时/计数器电路•利用脉冲计数在设定的时间输出定时信号●8253是一种硬件定时/计数器芯片7一、外部引线及内部结构8253概貌–3个16位的定时/计数器(通道)–24引脚双列直插式–最高计数频率2MHz–TTL电平兼容–单电源+5V供电8外部引线及内部结构DBD7-D08253A1A0WRRDCS通道2通道1通道0CLK0GATE0OUT0CLK1GATE1OUT1CLK1GATE1OUT1A1A0IOWIOR片选信号9外部引线及内部结构连接系统端的主要引线:D7~D0CSRDWRA1,A0–用于选择四个编址部件之一引线结构A1A0选择00计数通道001计数通道110计数通道211控制寄存器10外部引线及内部结构计数通道的主要引线(每通道均相同):CLKn时钟脉冲输入,计数器的计时基准。GATEn门控信号输入,控制计数器的启停。OUTn计数器输出信号,不同工作方式下产生不同波形。(n=0~2)118253的内部结构WRA0A1CS数据总线缓冲器读/写逻辑控制寄存器计数器0计数器1计数器2GATE1D0D7~RDCLK1OUT1CLK2GATE2OUT2CLK0GATE0OUT0片内总线编址部件0编址部件1编址部件2编址部件312编程结构—程序员的观点计数器(3个)——包括控制寄存器——存放控制命令字(只写)占用4个地址—3个计数器,1个控制寄存器16位初值寄存器16位计数寄存器(减法计数器)13定时/计数的工作过程1.设置8253的工作方式2.设置计数初值到初值寄存器3.第一个CLK信号使初值寄存器的内容置入计数寄存器4.以后每来一个CLK信号,计数寄存器减15.减到0时,OUT端输出一特殊波形的信号注:以上计数过程中还受到GATE信号的控制14二、计数启动方式软件启动过程硬件启动过程GATE端保持为高电平写入计数初值后的第2个CLK脉冲的下降沿开始计数GATE端有一个上升沿对应CLK脉冲的下降沿开始计数程序指令启动————软件启动外部电路信号启动——硬件启动15三、工作方式方式0——计数结束中断方式1——可重复触发的单稳态触发器方式2——频率发生器方式3——方波发生器方式4——软件触发选通方式5——硬件触发选通16工作方式方式0方式1软件启动,不自动重复计数。装入初值后OUT端变低电平,计数结束OUT输出高电平。硬件启动,不自动重复计数。装入初值后OUT端变高电平,计数开始OUT端变为低电平,计数结束后又变高。工作波形(计数结束中断)(单稳态触发器)17工作方式方式2方式3软、硬件启动,自动重复计数。装入初值后OUT端变高电平,计数到最后一个CLK时OUT输出负脉冲,并连续重复此过程。软、硬件启动,自动重复计数。装入初值后OUT端变高电平,然后OUT连续输出对称方波:工作波形(频率发生器)(方波发生器)前N/2或(N+1)/2个CLK,OUT为高,后N/2或(N-1)/2个CLK,OUT为低。18工作方式方式4方式5软件启动,不自动重复计数。装入初值后输出端变高电平,计数结束输出一个CLK宽度的负脉冲硬件启动,不自动重复计数。OUT端波形与方式4相同(软件触发选通)(硬件触发选通)工作波形19各种工作方式特点方式0(计数结束中断)–计数过程中,GATE端应保持高电平。–每写入一次初值计数一个周期,然后停止计数。–OUT端输出是一个约(N+1)TCLK宽度的负脉冲。–计数过程中可随时修改初值重新开始计数。方式1(单稳态触发器)–门控信号GATE端的跳变触发计数,可重复触发。–若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为两次计数过程之和。–计数过程中写入新初值不影响本次计数。20各种工作方式特点方式2(频率发生器)–GATE为计数的控制信号:GATE变低计数停止,再变高时的下一个CLK下降沿,从初值开始重新计数。–每个计数周期结束时(减到1时),OUT端输出一个TCLK宽度的负脉冲。–计数过程自动重复进行。–计数过程中修改初值不影响本轮计数过程。方式3(方波发生器)–OUT输出方波,前半周期为高,后半周期为低。–计数过程中修改初值不影响本半轮计数过程。–其余的与方式2类似。21各种工作方式特点方式4(软件触发选通)–计数过程中,GATE端应保持高电平。–每写入一次初值,计数一个周期,然后停止计数。–每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。–计数过程中修改初值不影响本轮计数过程。方式5(硬件触发选通)–写入初值时,GATE端应保持低电平。–GATE每出现一次正脉冲,计数一个周期,然后停止计数。–每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。–计数过程中修改初值不影响本轮计数过程。228253工作方式一览表工作方式一览表23四、控制字用于确定各计数器的工作方式。8253必须先初始化才能正常工作。每个计数器都必须初始化一次。CPU通过OUT指令把控制字写入控制寄存器。格式24五、8253的应用与系统的连接设置工作方式置计数初值编程25与系统的连接示意图CLKGATEOUTD0~D7WRRDA1A0CSDBIOWIORA1A0译码器高位地址A15-A28253共三组8253占用4个接口地址:计数器0计数器1计数器2控制寄存器(决定8253的基地址)26初始化程序流程写控制字写计数值低8位写计数值高8位*非必须写入顺序:可按计数器分别写入控制字和初值。也可先写所有计数器控制字,再写入它们的初值278253应用举例采用8253作定时/计数器,其接口地址为0120H~0123H。输入8253的时钟频率为2MHz。计数器0:每10ms输出1个CLK脉冲宽的负脉冲计数器1:产生10KHz的连续方波信号计数器2:启动计数5ms后OUT输出高电平。画线路连接图,并编写初始化程序。288253应用举例(续)确定计数初值:CNT0:10ms/0.5us=20000CNT1:2MHz/10KHz=200CNT2:5ms/0.5us=10000确定控制字:CNT0:方式2,16位计数值00110100CNT1:方式3,低8位计数值01010110CNT2:方式0,16位计数值10110000298253应用举例(续)CLK0GATE0OUT1D0~D7WRRDA1A0CSDBIOWIORA1A0译码器8253CLK2GATE1GATE2+5VCLK12MHzOUT0OUT2?线路连接图:308253应用举例初始化程序CNT0:MOVDX,0123HMOVAL,34HOUTDX,ALMOVDX,0120HMOVAX,20000OUTDX,ALMOVAL,AHOUTDX,ALCNT1:……CNT2:……31*如何读出当前计数值第1种方法——在计数过程中读计数值–先锁存当前计数值,再用两条输入指令将16位计数值读出。第2种方法——停止计数器再读–用GATE信号使计数器停止,再规定RL1和RL0的读写格式,然后读出。32*扩展定时/计数范围当定时长度不够时,可把2个或3个计数通道串联起来使用,甚至可把多个8253串联起来使用。例如:CLK频率为1MHz,要求在OUT1端产生频率1Hz的脉冲。这时可将计数器0、1串联,工作方式都均为方式3,计数初值均为1000。连接方法见下页。33扩展定时/计数范围1MHz1KHz1Hz348253小结包含3个16位计数器通道4个编址部件:CNT0/1/2和控制寄存器每个计数器通道工作前必须初始化:–控制字和计数初值6种工作方式每种工作方式:启动方式、输出波形、是否可重复计数等各不相同35§7.3并行接口8255特点:含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。36一、引线WRD0D1D2D3D4D5D6D7VCCPB7RDCSGNDA1A0PA4PA5PA6PA7PB5PB6PB4PB3RESETPB1PB2PB0PC3PC2PC1PC0PC4PC5PC6PC7PA3PA2PA1PA05110153540302521共40个引脚37引线(续)连接系统端的主要引线:D0~D7CSRDWRA0,A1RESET——复位信号,接系统总线的RESETA1A0选择00端口A01端口B10端口C11控制寄存器38引线(续)连接外设端的引脚:PA0~PA7PB0~PB7PC0~PC7分别对应A、B、C三个8位输入/输出端口三个端口可通过编程分别指定为输入或输出口。其中,C口即可用作独立的输入/输出口,也可用作A、B口的控制信号输出或状态信号输入。39二、结构A组B组端口A端口C的高4位端口B端口C的低4位408255与系统的连接示意图D0~D7WRRDA1A0CSDBIOWIORA1A0译码器8255A口B口C口D0~D7外设A15~A2系统总线41三、8255工作方式基本输入/输出方式(方式0)选通工作方式(方式1)双向传送方式(方式2)(仅A口)某端口工作于哪一种方式,可通过软件编程来指定。即向8255写入方式控制字来决定其工作方式,见下页。42方式控制字及位控字可以利用软件编程确定8255的3个端口工作于何种方式下;8255的C端口可以按位操作。当其工作于方式0下且作为输出口时,对于那些作为输出的位需要设置初始状态(1/0)。43方式控制字与位控字格式控制字——确定3个端口的工作方式位控字——确定C口某一位的初始状态,或用于设置INTE位(方式1,2)。44工作方式08255相当于三个独立的8位简单接口。各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口即可以是一个8位的简单接口,也可以分为两个独立的4位端口。设置为输出口时有锁存能力,设置为输入口时无锁存能力。45方式0的应用:用于连接简单外设。适用于:–无条件输入输出方式。–查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。46工作方式1利用一组选通控制信号控制A端口和B端口的数据输入输出。A、B口作输入或输出口,C口的部分位固定用作A、B口的选通控制信号。A口、B口在作为输入和输出时的选通信号不同。输入输出47C口的信号功能(方式1输入)STB#——选通信号。它将外设数据送入8255的输入锁存器。IBF——输入锁存器满。通知外设不能送下一个数据。此信号由STB的前沿产生。CPU用IN指令取走数据后,此信号被清除。INTR——中断请求。STB#的后沿产生,用于中断CPU,让CPU读走输入锁存器中的数据。INTE——中断允许位,是否允许发出INTR请求。INTE=1和IBF为高电平时,允许发出INTR请求。48C口的信号功能(方式1输出)OBF#——通知外设取走数据。ACK#——外设响应信号,表示已从数据端口取走数据。此信号使OBF变高。INTR——ACK#上升沿产生,通知CPU输出下一个数据(通常接到8259)。INTE——中断允许位,INTE=
本文标题:常用数字接口电路
链接地址:https://www.777doc.com/doc-4680628 .html