常用可编程并行接口芯片及应用_第1页
常用可编程并行接口芯片及应用_第2页
常用可编程并行接口芯片及应用_第3页
常用可编程并行接口芯片及应用_第4页
常用可编程并行接口芯片及应用_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、主要内容 8.1 可编程接口芯片的概念 8.2 计数器/定时器8253 8.3 可编程并行接口8255A 8.4 可编程DMA控制器8237A 学习要求 1.掌握8253的编程应用 2.掌握8255A的编程应用,第八章 可编程接口芯片及应用,8.1 可编程接口芯片的基本概念,(1)CPU与I/O外设交换信息的方式有两种: 并行通信:数据各位同时向外传送。 优点:传输速率快; 缺点:传输多少位至少要多少根传输线,工程造价高。 串行通信:数据一位一位传送,通信双方沿单根线或双根线 实现二进制序列传输称串行通信。 优点:一根或两根线,线路简单,成本低,适用于远距离传输。 缺点:传输速率慢。,(2)可

2、编程接口芯片 不可编程接口芯片,接口功能单一,用户不可改变。 如74LS244、74LS273 可编程接口芯片,大多是多功能、多通道的。一个通道用户 可定义为输入端口,也可以规定为输出端口。选择的方法是在 芯片正式工作之前,编写一段程序写入该该芯片的控制寄存器 中,用来选择不同的通道和不同的电路功能,使之按照人们所 希望的方式工作,这个过程称为“初始化编程”。,8.1 可编程接口芯片的基本概念,(3)多通道、多功能 多通道:是指一个接口芯片一方面可与CPU相连,另一方面可连接 多个外设。 多功能:是指一个接口芯片能够实现多种接口功能,使接口芯片具 有不同的电路工作状态。,8.2 计数器/定时器

3、8253/8254,定时及计数技术在计算机中具有很重要的作用。比如:定时采样、 定时中断、定时启动电机等,这都需要一类定时及计数电路,因 此微机系统都必须有定时技术。 为获得稳定准确的定时,必须有准确稳定的时间基准(简称时基)。 定时:本质是计数,把时间片加起来就获得一段时间。 定时方式:软件或硬件件。 软件定时:利用CPU执行指令需要若干指令周期的原理,运用软 件编程,然后循环一段程序而产生延时,再配合简单接口可以向 外发送定时控制信号。 优点:不需增加硬件电路只需编制相应的延时子程序即可; 缺点:占用CPU的工作时间,浪费CPU资源。 硬件定时:硬件定时有专用的多谐振荡器件或单稳态触发器。

4、 缺点:改变定时要改变硬件。,可编程通用定时器/计数器芯片:使用灵活,定时时间长,改变定时 时间或工作方式只要改变编程控制参数即可。初始化编程后,就按 设定的方式工作,不再占用CPU的时间。,8.2.1 8253功能概述,主要功能特点: 8253是可编程的计数定时器 每个8253有三个独立的16位计 数器通道,有六种工作方式可 供选择。 每个计数器可按二-十进制计数。 每来一个脉冲计数器减1,当计数 器减到0时,输出端OUT产生一个 跳变。 每个计数器可用作定时器,也 可用作计数器。二者的本质都是 基于计数器减1工作方式。 所有输入/输出都与TTL电平兼 容。,8.2.2 计数/定时的内部结构

5、及工作原理,控制寄存器,初始值寄存器,减1计数器,计数输出寄存器,状态寄存器,CLK,GATE,OUT,组成:,控制寄存器决定工作模式 状态寄存器反应工作状态 初值寄存器计数的初值 计数输出寄存器CPU从中读 当前计数值 计数器执行计数操作, CPU不能访问,每个计数器有三个引脚与外设相连: CLK 外脉冲输入端 GATE 门控输入端 OUT 计数器回零/时间到的信号输出端,8.2.3 计数/定时的工作原理,工作原理:对CLK信号进行减1计数 首先,CPU把控制字写入控制寄存器,计数初始值写入初值寄存器 计数从初值开始,每当CLK信号出现一次,计数值减1 当计数值减到0,从OUT端输出规定的信

6、号 CLK信号出现时,计数器是否减1,由门控信号GATE控制,8.2.3 计数/定时的工作原理,CLK是计数输入信号,计数器对CLK端出现的脉冲个数进行计数 CLK端可以输入外部事件 CLK端可以接入固定频率的时钟信号,从而实现计时 OUT信号在计数结束时发生变化 可将OUT作为外部设备的控制信号 可将OUT作为向CPU申请中断的信号 CPU可以从计数输出寄存器读出当前计数值。 读前,应向控制寄存器发送锁存命令,8.2.4 8253的编程结构,1片8253内部有三个计数器,结构完全相同,8253的引脚如下图所示。 DIP24,+5V电源。 其内部结构和寻址方式 见: P. 388,一片8253

7、占用四个连续的端口地址,分别对应三个计数器CNT0、CNT1、CNT2和控制寄存器。每个计数器内部都有一个8位控制寄存器,三个控制寄存器共用一个端口,在编程结构图中画为一个。,8253内部寄存器与地址码A1、A0的关系,A1 A0 0 0 选中CNT0计数器 进行读写 0 1 选中CNT1计数器 进行读写 1 0 选中CNT2计数器 进行读写 1 1 选中控制寄存器 进行写,8.2.4 8253的编程结构,8.2.4 8253的编程结构,8253控制字的格式,每个计数器的初值寄存器(CR)、输出锁存器(OL)都是16位的,但它们对应相同的一个8位端口地址,所以16位的CR、OL作为两个8位寄存

8、器读写,由控制寄存器控制读写高8位/低8位,8.2.5 8253的编程命令,初始化,写入控制字 按控制字要求写入计数初值 计数器初值计算:N=fCLK/fOUT=TOUT/TCLK,例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器0,工作模式2,CR/OL仅使用低8位,初值为100,计数值使用二进制,MOV AL, 14H OUT 73H, AL MOV AL, 100 OUT 70H, AL,8.2.5 8253的编程命令,例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器2,工作模式1,CR/OL使用

9、16位,初值为1234,计数值使用BCD,MOV AL, B3H OUT 73H, AL MOV AX, 1234H OUT 72H, AL MOV AL, AH OUT 72H, AL,8.2.5 8253的编程命令,读出命令,1)发出锁存命令,使当前计数值锁存在OL中 2)读OL,获得当前计数值,例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制寄存器端口地址73H。读出计数器0的当前计数值,放在BX中,MOV AL, 0H OUT 73H, AL IN AL, 70H MOV BL, AL IN AL, 70H MOV BH, AL,8.2.6 8253的工作模式,工作模

10、式决定以下内容: 1)门控信号的影响 高电平允许,当GATE=0,即使出现CLK,也不计数 模式0,2,3,4 上升沿允许(上升沿触发) 模式1,5 2)OUT信号的状态 写入控制字后, OUT的状态 计数过程中, OUT的状态 计数终了, OUT的状态 3)计数操作可否重复 不可重复模式0,4 自动重复模式2,3 条件重复模式1,5,8.2.6 8253的工作模式,六种工作模式 详见P. 230,各种工作模式相同之处: 控制字写入计数器,所有的控制逻辑电路立即复位, 输出端OUT进入初始状态 计数初始值写入(GATE上升沿)之后,要经过一个 时钟周期,计数执行部件才可以开始进行计数操作。 因

11、为第一个下降沿将计数寄存器的内容送减1计数器 在每个时钟脉冲CLK的上升沿,采样门控信号GATE 在时钟脉冲的下降沿,计数器作减1计数,注意区分的几点: 不同的工作方式 启动计数器工作的方式不同 OUT输出波形不同 GATE信号的作用不同 本次计数过程中,GATE信号的改变对计数的影响 本次计数过程中,写入计数初值对计数的影响,8.2.6 8253的工作模式,8.2.6 8253的工作模式,方式0: 计数初值写入CR后,OUT由0到1跳变出现在n+1个时钟脉冲之 后 延迟时间TD=(n+1)TCLK 方式1: 单脉冲宽度T=n TCLK 方式2: 对输入端n个时钟脉冲,在输出端仅出现一个时钟脉

12、冲(负脉冲) N分频计数器,8.2.6 8253的工作模式,方式(方波发生器) 例:计数器工作模式3,计数器初值15,时钟脉冲频率为2MHz,确定OUT端输出方波的特性。 解:TCLK=1/2MHz=500ns 计数器初值15为奇数,输出分频波高电平宽度 TCLK(N+1)/2=4s 输出分频波低电平宽度 TCLK(N-1)/2=3.5s 方式4、5: 触发后n+1个时钟脉冲之后输出端产生选通脉冲信号,计数的启动 方式0、2、3、4都是在写入计数初值之后,就开始计数的 而方式1和方式5需要GATE端来外部触发脉冲(条件) ,才开始计数 输出波形 方式2、4、5的输出波形相似 方式2、3的波形连

13、续,方式3为方波 方式1输出的是宽度为为N个CLK脉冲周期的低电平有效脉冲 方式0在计数数过程中输出为低电平,计数结束时变为高电平,8.2.7 8253计数器小结,(1)8253工作方式小结,门控信号GATE 可以控制计数过程 方式0、2、3、4是电平起作用,允许/禁止计数 方式1、2、3、5是上升沿起作用,启动计数 对方式2、3来说,GATE信号的电平、上升沿 都可以起作用,8.2.7 8253计数器小结,8253的编程 初始化编程 写入控制字 写入计数初值 计数初值=CLK脉冲频率/输出脉冲频率 =定时时间(输出脉冲周期)/CLK周期 操作编程 写入计数初值(新) 读取计数器的计数值 向计

14、数器发锁存命令 读取计数器锁存的计数值,8.2.7 8253计数器小结,(2)8253的编程小结,8253的工作模式举例,例:计数器0工作模式4,初始化计数器,使装入计数器10 s后产生选通信号(设时钟频率2MHz,8253端口地址为50H53H)。 解:n+1=T/ TCLK=10/0.5=20 n=19=13H MOV AL, 18H OUT 53H, AL MOV AL, 13H OUT 50H, AL,8.2.8 8253的应用,1. PC机中8253的应用,计数器0:向系统日历时钟提供定时中断 模式3,控制字36H,计数器初始值0 计数器1:动态RAM刷新 模式2,控制字54H,计数

15、器初始值18(12H) 计数器2:控制扬声器发声 模式3,控制字B6H,计数器初始值1331(533H),PC机中,8253的端口地址为40H43H,8.2.8 8253的应用,2. 扬声器控制,设计一个程序,使扬声器发出600Hz频率的声音,按下任意键声音停止,PC机的发声系统以计数器2为核心。CLK2的输入频率1.19MHz, 改变计数器初值可以由OUT2得到不同频率的方波输出对于600Hz, 计数初值1.19MHz/600Hz=1938,发声系统受8255芯片B口的两个输出端线PB0、PB1的控制 PB0为1,使GATE2为1,计数器2能正常计数PB1为1,打开 输出控制门,8.2.8

16、8253的应用,2. 扬声器控制,CODE SEGMENT ASSUME CS:CODE START: IN AL, 61H OR AL, 03H OUT 61H, AL MOVAX, 1983 OUT42H, AL MOVAL, AH OUT 42, AL MOVAH, 01H INT 21H INAl, 61H AND AL, 0FCH OUT 61H, AL MOVAH, 4CH INT 21H CODE ENDS END START,8.2.8 8253的应用,3. 以2MHz输入8253,实现每5秒定时中断(设8253端口地址40H43H),分析:8253最大初值65536,CLK=

17、2MHz可实现最大时间间隔 65536/(2106)=32.769ms 所以需要两个计数器串联,一个计数器的输出作为另一个计数器的输入,8.2.8 8253的应用,计数器1:模式2,OUT1每5ms输出一个脉冲 初值(2106)/(1/0.005)=10000 计数器0:模式2,OUT0每5s输出一个脉冲 初值(1/0.005)/(1/5)=1000,OUT0 GATE0 CLK0 OUT1 GATE1 CLK1,+5V,+5V,2MHz,每5秒产生一个脉冲,程序:,MOV AL, 74H OUT 43H, AL MOV AX, 10000 OUT 41H, AL MOV AL, AH OUT

18、 41H, AL MOV AL, 74H,MOV AL, 34H OUT 43H, AL MOV AX, 1000 OUT 40H, AL MOV AL, AH OUT 40H, AL,8.2.8 8253的应用,4.系统机外扩展实验台,连接关系如下图所示,8253端口地址 0200H0203H。已知CLK0输入的信号频率为250kHz。现 要求CNT0 工作于方式3,其OUTO输出连接到CNT1的CLK1, 作为CNT的脉冲输入源;若使CNT1输出一个周期性的秒钟脉 冲信号,进行编程实现。 计算出计数初值;写出CNT0和CNT1的初始化程序段。,8.2.8 8253的应用,MOV DX, 0

19、203H MOV AL,36H OUT DX, AL MOV DX,0200H MOV AL, 0C4H OUT DX ,AL MOV AL, 09H OUT DX,AL MOV DX,0203H MOV AL,74H OUT DX,AL MV DX,0201H MOV AL,064H OUT DX,AL MOV AL,00H OUT DX,AL,分析计算初值: 设定CNT0工作方式3,输出方波信号,周期为10ms,则其计数初值为:N0=T/tc=10ms*250K=2500=09c4H. CNT1工作方式2,输出方波信号,周期为1s,则其计数初值为:N1=T/tc=1/10ms=100=64

20、H. 方式控制字: CNT0方式3控制字为:36H CNT1方式2控制字为:74H,8.3 可编程并行接口8255A,8255A是通用的可编程并行接口芯片(Programmable Peripheral Interface,PPI),8255A可将任一个与TTL兼容的I/O设备与CPU相连 在PC机中,被用作键盘和并行打印机端口的接口。 输出提供至少2.5mA的吸收(逻辑0)电流,最大为4mA,8.3.1 8255A基本功能,主要功能特点: 可编程通用并行输入/输出接口电路 通用性强,使用灵活,通过它CPU可直接与外设相连 具有三个相互独立的输入/输出端口 A端口、B端口、C端口 三个端口可联

21、合使用,构成具有握手联络信号的并行接口 端口有多种工作方式可供选择 A口有三种工作方式:方式0、1、2 B口有二种工作方式:方式0、方式1,8.3.2 8255A内部结构及引脚,一、8255A内部结构,三个数据端口:A口、B口、C口 每个端口都是8位的,可以选择为输入/输出口 A口:8位输出锁存/缓冲、输入锁存/缓冲 B口:8位输出锁存/缓冲、输入锁存/缓冲 C口:8位输出锁存/缓冲、输入缓冲 可分为两个4位端口分别使用 A组、B组控制电路 A组:控制A口和C口上半部分(PC4PC7) B组:控制B口和C口下半部分(PC0PC3),一、8255A内部结构,数据总线缓冲器 读/写控制逻辑,二、8

22、255A的引脚功能,和外设连接的引脚 PA0PA7:A口数据线 PB0PB7:B口数据线 PC0PC7:C口数据线,也可作为和外设的联络线 和CPU连接的引脚 D7D0 、A0、A1 、RESET RESET:输入、高电平有效。 当它有效时,内部所有寄存器清0,三个数据端口均被 设置为输入方式 。 A1A0:端口选择信号,输入。 8255A有四个端口,分别为A口、B口、C口和控制寄存器。,8255A的端口选择操作,二、8255A的引脚功能,8.3.3 8255A的控制字,两个控制字 工作方式控制字 设定工作方式、选择输入/输出 C口的输入/输出可分为两个4位口分别设置 写入控制口(A0=1、A

23、1=1),特征位D7=1,C口置位/复位控制字 控制C口的相应位置位(输出1)或复位(输出0) 写入控制口(A0=1、A1=1),特征位D7=0,8.3.3 8255A的控制字,8.3.4 8255A的三种工作方式,A口:可在三种方式下工作 方式0、方式1、方式2 B口:可在两种方式下工作 方式0、方式1 A口和B口工作方式是由写入控制寄存器的工作 方式控制字决定的 A口和B口的工作方式的设置是相互独立的,8.3.4 8255A的三种工作方式,方式0基本的输入/输出方式 特点: 不使用固定的联络信号 两个8位端口,两个4位端口 端口可作为输入/输出,各端口的输入/输出可以有16种不同的组合 输

24、出锁存、输入不锁存,应用: 无条件传送方式 可实现三路数据传送(8位) 查询传送方式 没有固定联络信号,可任意选择A口、B口、C口作为查询的状态口 一般将A口、B口作为数据端口,而C口分成两个4位口,来为 A口、B口的数据传输提供联络信号。其中一个4位口作为输入口, 用来输入外设的状态信号;而另一个4位口作为输出口,用来输出 发给外设的控制信号,8.3.4 8255A的三种工作方式,方式1 选通的输入/输出方式,特点: 使用固定的联络信号(输入联络信号必用) 可以使用中断 A、B口可工作在方式1,C口某些位被规定为联络信号,而没有 规定的位可以工作在方式0,可选择输入/输出 A口方式1(0)、B口方式1(0) A、B口分别设置输入/输出,输出、输入均带锁存,方式1输入时规定的联络信号,8.3.4 8255A的三种工作方式,/STB(Strobe):选通输入信号,低电平有效。该信号由外设产生,输出到 8255A。当它有效,将外设送来的数据信号锁存到A口或B口的输入锁存器中 。 IBF(Input Buffer Full):输入缓冲器满,高电平有效。该信号作为的应答 信号,是8255A输出到外设的联络信号。当它有效时,表

温馨提示

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

评论

0/150

提交评论