微机原理与接口技术7.ppt_第1页
微机原理与接口技术7.ppt_第2页
微机原理与接口技术7.ppt_第3页
微机原理与接口技术7.ppt_第4页
微机原理与接口技术7.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章计算机接口技术,可编程定时/计数器8253 可编程并行接口8255A,71接口电路概述,接口是CPU与外设之间的数据交换通道。 分两大部分: 总线接口内部寄存器、存取逻辑和传送控制逻辑电路,如数据缓冲、地址锁存等。 外设接口CPU与外设信息交换时的联络和控制,电平与信息的转换等。 按功能分输入接口和输出接口 按传送方式分并行接口和串行接口 按传送信息类型分数字量输入输出接口和模拟量输入输出接口。 以下主要介绍典型的可编程I/O接口。,72 可编程定时/计数器8253,常用定时方法有三种: 软件定时 采用软件编程实现定时,通用灵活,容易实现。但仅适用于延时时间较短、重复次数有限的场合,否则

2、占用CPU时间较长。 硬件定时 采用逻辑电路外接定时部件和电阻、电容来实现,通用性、灵活性差,若改变定时时间和计数的要求需调整电路参数。 可编程定时/计数器 定时/计数功能和范围可由编程来灵活设置,启动后,于CPU并行工作,不占CPU时间。如Intel公司的8253,8253功能,8253是Intel公司生产的16位可编程定时计数器。 具有三个完全相同的独立的16位减法计数器 计数时钟频率最高为2MHZ 按BCD码和二进制方式预置初值并减1计数 六种工作方式,通过编程设定或改变 计数定时值可由CPU随时读取。,721 8253的外部引线及内部结构,1.外部引线及功能(24引脚双列直插式芯片),

3、D7-D0用来传送控制字和计数初值。 #RD读信号,低电平有效 #WR写信号,低电平有效 #CS片选信号 A0 A1口地址选择信号 00计数器0 01计数器1 10计数器2 11控制寄存器 CLK0-CLK 2时钟信号输入端 GATE0-GATE2控制计数器启停 OUT0-OUT2计数器输出,在不同的方式下波形不同。,2.内部结构及工作原理,1、计数器通道 计数器0、计数器1、计数器2 每个通道包括: 一个16位可预置初值的寄存器。 一个计数执行单元 一个输出锁存器 CLK作为输入计数的时钟信号。可以按二进制或BCD码减1计数。 采用二进制写入数值范围:0000H(最大)- FFFFH 采用B

4、CD写入的数值范围:0000(最大)- 9999 GATE是门控信号。用于控制计数的启动和停止 OUT 计数输出信号。,2.内部结构及工作原理,2、控制寄存器 存放方式选择控制字,决定8253 工作方式。 只读。 3、数据总线缓冲器,8位双向三态 写控制字 写计数初值 读计数初值,2.内部结构及工作原理,4、读/写控制逻辑 芯片选择#CS A1A0 #RD #WR,3.计数器启动方法,CPU用输出指令向计数器写入初值后 软件启动:计数器开始启动,进行减1计数。 硬件启动:由门控信号GATE由低变高后开始计数。 重复计数: 在方式2和方式3下,计数器从初值减到0,只要门控GATE=1,计数器就会

5、重复工作,在OUT端产生连续波形。,功能,用作计数器 对输入脉冲CLK,从预置初值开始按二进制或BCD码进行减 1计数。减至0时,OUT端输出脉冲。 用作定时器 计数初值根据定时的时间(和产生输出波形的频率)按如下公式计算: 定时器初值定时时间 / 时钟脉冲周期 CLK频率 / 输出波形的频率,722 8253的工作方式,6种工作方式,每种工作方式的启动、OUT输出波形均不一样,1.方式0计数结束中断,软件启动,不自动重复计数 减1计数至0,OUT端输出高电平,可作为中断请求信号。再次中断请求,需重新装入时间常数。,CW写入控制字 N 写入时间常数,2.方式1可重复触发的单稳态触发器,写入初值

6、,GATE上升沿触发,减1计数器至0,OUT端产生负脉冲。再次启动要GATE再次触发。 OUT端的负脉冲宽度计数初值NT(CLK周期),N时间常数 T时钟周期,可以重复使用,3.方式2分频器,写入控制字后,OUT高,GATE高: 写入计数初值的下一个脉冲减1计数, 减至1时OUT变低,减至0时OUT恢复高电平。 自动装入计数初值,实现循环计数。 在OUT端形成一个连续的负脉冲: 脉冲周期计数值NCLK周期 如果GATE,停止计数,GATE, 从初值开始计数。,3.方式2分频器,4.方式3方波发生器,与方式2类似,不同的是OUT端输出的是方波。 写入控制字后,OUT变高。如果GATE高,写入初值

7、后开始减1计数,当减到N/2时,OUT变低,直到计数器为0,自动重新装入初值。OUT产生对称方波。 若计数值奇数: OUT在(N1)/2计数期间高电平 在(N1)/2计数期间低电平 GATE由高变低,停止计数。,4.方式3方波发生器,7.2.3 8253的控制字及编程,8253必须先初始化,才能正常工作,控制字如下:,数制选择:0 二进制 1 BCD码,方式选择: 000方式0 001方式1 X10方式2 X11方式3 100方式4 101方式5,读写格式: 00计数器锁存 01只读写低8位字节 10只读写高8位字节 11先读写低8位 后读写高8位,计数器选择: 00选计数器0 01选计数器1

8、 10选计数器2 11无效,例,要求计数器1,工作方式3,先写计数器低字节,后写计数器高字节,对外部脉冲CLK进行二进制计数。控制寄存器地址83H,写出控制字并编写将控制字送入寄存器的语句。 控制字:01110110B MOV AL, 01110110B OUT 83H,AL,7.2.4 8253应用,与系统的连接 初始化编程,18253与系统的链接,8253占用4个接口地址,地址范围由高位地址信号决定,经译码作为CS信号,A1A0与系统的A1A0直接相连。4个地址进行不同操作时引脚状态如下表,表72 各寻址信号组合功能,例:8253与系统总线的连接,A2 - A15经译码电路接CS引脚 4个

9、口地址 0FF04H 1FF05H 2FF06H 控制器 FF07H,2.8253编程,也称对8253初始化: 写各计数器的方式控制字 写计数初值,写方式控制字,写计数初值低8位,写计数初值高8位,写0方式控制字,写1方式控制字,写2方式控制字,写0计数值低8位,写1计数值低8位,写1计数值高8位,写2计数值低8位,写2计数值高8位,写0计数值高8位,图72 初始化顺序,例71,PC机上使用了一片8253定时/计数器,三个计数器的时钟频率均为1.19MHz。 地址:40H,41H,42H, 43H。 计数器0为系统时钟提供频率18.2Hz时间基准。 计数初值: 1.19MHz/18.2Hz=6

10、553610000H 控制字: 00110110=36H,例71,计数器1提供周期15.13 S 的刷新信号。 计数初值: 控制字:01010100=54H 计数器2提供频率为1KHz的音频信号。 计数初值:1.19MHz/1KHz1190=04A6H 控制字:10110110B6H,程序部分,MOV AL,00110110;计数器0方式3 OUT 43H,AL ;约55mS中断一次 MOV AL,0 OUT 40H,AL ;时间常数65536(H:00,L:00) OUT 40H,AL MOV AL,01010100 ;计数器1方式2 OUT 43H,AL MOV AL,18 ;时间常数18

11、(L:18) OUT 41H,AL MOV AL,10110110 ;计数器2,方式3,1KHz的音频 OUT 43H,AL MOV AX,1190 ;时间常数1190 OUT 42H,AL MOV AL,AH OUT 42H,AL,例7-2 P306,图711中3个CLK频率均为2MHz,计算三个计数器的控制字,0定时100S后,产生中断请求 时间常数: 100S/0.5S =200 控制字:00010000 1用于产生10 S 的对称方波 时间常数:10S/ 0.5S =20 控制字:01010110 2工作方式2,每隔1ms产生一个负脉冲 1ms/0.5S2000 控制字:1011010

12、0,程序部分,MOVDX,0FF07H;计数器初始化 MOVAL,10H ;00010000 OUTDX,AL ; MOVAL,56H ;01010110 OUTDX,AL MOVAL,0B4H ;10110100 OUTDX,AL MOVDX,0FF04H;0计数地址 MOVAL,200 ;100S/0.5S初值 OUTDX,AL ;=200 MOVDX,0FF05H;1计数地址 MOVAL,20 ;10S/ 0.5S初值 OUTDX,AL ;=20 MOVDX,0FF06H;2计数地址 MOVAX,2000 ;1ms/0.5S2000初值 OUTDX,AL MOVAL,AHOUTDX,AL

13、,73 可编程并行接口芯片8255,并行接口,同时传送数据的所有位。,7.3.3 8255的引线及结构,40引脚 D7-D0双向数据信号线 #RD读信号,低电平有效 #WR写信号,低电平有效 #CS片选信号 A0 A1地址信号, 可产生4个有效地址 00 口A 01 口B 10 口C 11 控制寄存器 PA7PA0口A数据线 , PB7PB0口B数据线 ,PC7PC0口C数据线,内部结构,8255A是一个通用可编程8位并行输入输出接口芯片。 数据端口 A组和B组控制电路 读/写控制逻辑 数据总线缓冲器,7.3.2 8255工作方式,8255有三种基本工作方式 方式0基本输入输出 方式1选通输入

14、输出 方式2双向传送方式 A口有三种工作方式。 B口可以方式0或方式1。 C口只能工作在方式0,或配合A口、B口提供状态信息。 三个端口工作在那个方式下,可通过软件编程设定。,1、方式0,基本输入输出方式,无中断,无联络信号。 适合无条件传输。 三个端口相互独立,都可以由方式选择控制字规定为输入或输出端口。 定义为输出端口有数据锁存能力,定义输入端口无锁存能力。 C端口有按位置位和复位能力。 可以有16种不同的组合。,2、方式1,选通的输入输出方式。 用法1:A口为输出,定义: PC7 PC6 PC3为控制信号 PC5、PC4为I/O。 #OBF(Output Buffer Full) 输出信

15、号,低电平有效 表示CPU已将数据写入该端口的数据输出缓冲区 #ACK(Acknowledge) 输入,低有效,表示外部输出设备已收到数据 INTR(Interrupt Request) 向CPU发出,请求送数据。高电平有效,方式1,用法2:A口为输入 PC5-PC3为控制信号 PC7、PC6为I/O。 #STB(Strobe)设备选通信号 输入,外设提供,低有效。 表示外部输入数据锁存到端口的数据缓冲器中。 IBF(Input Buffer Full) 输出信号,高有效。表示有数据未被取走。CPU读走数据,IBF变低。 INTR(Interrupt Request) 向CPU发出,高电平有效

16、,3、方式2功能,双向传送 仅限A口,输入输出均有锁存能力。 工作过程是方式1输入输出的结合,入和出采用分时传输。 利用C口的5条线(PC3-PC7)作为控制信号。 A口工作在方式2时,B口可工作在方式0或方式1 C口(PC0-PC2)可作I/O或B口在方式1下的控制线。,工作方式的初始化,初始化 通过软件编程的方法,确定8255A的工作状态,即向控制寄存器写入控制字。 根据需要 每个端口,可以设置成不同的工作状态。 每个端口,输出锁存器的数据可以用输入指令读回。,733 方式控制及状态字,1、方式选择控制字,例,A组方式1(输入),B组方式1(输出),C口为联络信号 控制字:10110100

17、B4H 端口地址:97H 程序如下:MOV AL,0B4H OUT 97H,AL 如果控制字80H 三个端口的状态?,2、C口置位/复位控制字,C端口的控制字要写入控制端口。标志位0,例,让C端口的PC4位复位,控制字: 让C端口的PC3位置位,控制字: 端口地址0FFF7H 程序:MOV DX,0FFF7H MOV AL,08H ; PC4位复位 OUT DX,AL MOV AL,07H ; PC3位置位 OUT DX,AL,00001000B,00000111B,3、状态字,反映C端口各位当前的状态。当A口方式1或方式2时,通过读C端口的状态,可以检查端口的工作情况:,734 8255应用

18、,1、8255地址译码及端口分配 8255有A、B、C三个端口和一个控制寄存器 高位地址经译码产生片选信号 A1A0与片内A1A0相连,8255A各引脚状态,2、初始化及应用举例,8255A与系统的连接: 采用全译码方式 A0A1直接与系统相连 高位地址经过译码与8255的CS相连。 在使用之前必需进行初始化 用IN和OUT指令进行读写操作 将控制字写入控制寄存器 数据传输过程还要发出控制信号和检索状态信息,例73:8255作为打印机接口,打印字符串长度放DS段COUNT单元中,打印的字符放DATA单元开始的内存。,程序编制如下:,INIT:MOVDX,0FBC3H ; 端口: 0FBC0H-

19、0FBC3H MOVAL,10000001B;口A:方式0 输出 OUTDX,AL ;口C:高4位输出,低4位输入 MOVAL,00001101B ;置PC6初始值为“1” OUTDX,AL MOVCX,COUNT ;循环次数字符串长度 MOVSI,OFFSET DATA;数据区首址 GOON:MOVDX,0FBC2H INAL,DX ANDAL,02H;若BUSY为“1”循环等待 JNZGOON,程序编制如下:,MOVAL,SI;否则从内存取数据 MOVDX,0FBC0H;取口A端口地址 OUTDX,AL;数据从口A输出 MOVDX,0FBC2H;在PC6上生成一个负脉冲 MOVAL,0;将

20、PC6置“0” OUTDX,AL;产生一个下跳沿 MOVAL,40H; 将PC6置“1” OUTDX,AL; INCSI;地址加1 LOOPGOON;继续 HLT 对于C端口的控制也可以用置位/复位操作: MOVDX,0FBC3H MOVAL,000001100B MOVAL,000001101B OUTDX,AL ;PC60 OUTDX,AL ;PC6=1,例7-6如图所示,端口B接有8只彩灯.令其在方式0下以PB0PB1PB7的顺序控制每灯亮1秒,并循环工作。 要求:根据电路确定端口地址,编写程序。,程序:,端口地址:90h,91h,92h,93h 控制字:10000000 程序: MOV AL,80H OUT 93H,AL MO

温馨提示

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

评论

0/150

提交评论