《可编程接口芯》PPT课件.ppt_第1页
《可编程接口芯》PPT课件.ppt_第2页
《可编程接口芯》PPT课件.ppt_第3页
《可编程接口芯》PPT课件.ppt_第4页
《可编程接口芯》PPT课件.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

可编程接口芯片,第七章 可编程接口芯片,接口芯片简介,第7.1节 接口芯片简介 接口的功能 数据缓冲:外设数据输入到总线时需要缓冲。 数据锁存:总线数据输出到外设时的锁存,解决CPU与外设速度不匹配问题。 传输控制命令和状态信息:计算机与外设有时需使用硬件握手。例如:计算机利用查询输出到打印机。 信息转换:串并转换、数模转换、电平格式转换 可由程序改变功能的接口芯片称为可编程接口芯片,常用接口芯片,8086系统常用可编程接口芯片 并行接口芯片 INTEL8255,有三个8位端口A、B、C INTEL8155,有三个端口,内带256字节RAM,两个定时器 串行接口芯片 INTEL8251,同步异步串行接口 INTEL8250,异步串行接口芯片 计数定时器 INTEL8253/8254,三个通道16位定时计数器 直接内存访问控制器(DMA) INTEL8237,8255内部接构,第7.2节 可编程并行接口8255A 8255A内部结构与功能 (一)8255A内部结构,8255内部接构,内部结构说明 端口 端口A:由一个8位数据输入锁存器和一个8位数据输出锁存缓冲器组成,可工作于双向方式。 端口B:由一个8位数据输入缓冲器和1个8位数据输出锁存缓冲器构成。 端口C:由一个8位数据输入缓冲器和一个8位数据输出锁存缓冲器构成。C口可分为两个部分,配合A口和B口工作。 A组控制和B组控制 接收CPU控制字,决定8255工作方式。,8255内部接构,读写控制逻辑 由RD、WR、CS、A0、A1和RESET组成,8255占用4个端口地址。 数据总线缓冲器 8位双向数据缓冲器,可直接与数据总线相连。,8255引脚功能,引脚功能说明 8255A为40引脚双列直插的NMOS器件,其引脚如下: PA7PA0:端口A的数据线,双向,三态输出。 PB7PB0:端口B的数据线,可输入,也可输出。 PC7PC0:端口C的数据线,可输入,也可输出,还可做A口或B口的控制信号线。 D7D0:数据线,与系统总线连接。 RD:读信号,输入,低电平有效,从8255A读取数据 WR:写信号,输入,低电平有效,把数据写入8255。 CS:片选信号,输入,低电平有效,决定芯片地址。 A0 A1:端口选择信号,8255占四个端口地址。 RESET:复位信号,输入,高电平有效。复位后清所有内部寄存器,8255端口选择,8255端口选择 A1 A0 00 对A口操作 01 对B口操作 10 对C口操作 11 对控制口操作,8255的计算机连接,8255与计算机的连接,8255与计算机的连接,连接说明 8255的数据线D7D0接8086系统的数据线低8位。 8255的A0接8086的A1,8255的A1接8086的A2,使用偶地址传递信息。 端口地址,8255控制字,8255A的控制字与工作方式 (一) 8255A的控制字 方式控制字 方式控制字送到控制口,以选择A口,B口和C口的工作方式。,8255控制字,说明 8255A有三种工作方式,每种方式都可以输入也可以输出。 方式0:无条件(基本)输入输出。 方式1:查询(选通)输入输出。 方式2:双向方式。 A口有三种工作方式,B口仅有方式0和方式1工作方式。 在方式1和方式2中C口作为联络信号。,8255控制字,端口C按位控制字 说明 按位控制字写入8255的控制口; 该控制字仅对8255的端口C的输出锁存器操作。,8255工作方式,(二)8255A的工作方式 方式0 基本输入输出方式 输入 端口A、B和PC7PC4及PC3PC0都可工作于此方式 在此方式下,口线直接与端口输入缓冲器相连,输入不具有锁存功能 CPU用IN指令读取数据口以得到当前口线状态,8255工作方式,输出 端口A、B、PC7PC4和PC3PC0均可编程工作于此方式。 在此方式下,输出口线通过端口输出缓冲器连接到端口输出锁存器,而且输出缓冲器被打开。 CPU用OUT指令写数据到数据口,以把数据输出到端口输出锁存器,并到达口线。,8255工作方式,方式1 选通输入输出方式 选通输入方式,8255工作方式,信号说明 STB 选通输入:低电平有效,表示外设送出新数据。 IBF 输入缓冲区满:输出,高电平有效。通知外设输入缓冲区满,不要送新数据,由CPU读取数据清除。 INTR 中断请求信号:输出,高电平有效,可向CPU申请中断。 INTEx 中断允许:INTEA是C口输出锁存器的PC4,INTEB是C口输出锁存器的PC2,由它们分别控制A口和B口的中断申请。 INTEx=1 中断允许 INTEx=0 中断禁止,8255工作方式,选通输出方式,8255工作方式,信号说明 OBF 输出缓冲器满,输出,低电平有效,通知外设端口已有可用数据。 ACK 收到信号,输入,低电平有效。外设通知8255已取走数据,由其清除OBF,并置“1”INTR。 INTR 中断请求信号,输出,高电平有效,可向CPU申请中断。 INTEx 中断允许信号 INTEA为PC6输出锁存器,INTEB为PC2输出锁存器 INTEx=1 中断允许, INTEx=0 禁止中断。,8255工作方式,方式2 双向方式 仅A口有此方式,8255工作方式,ACKA 输入,低电平有效。外设发出ACKA打开A口输出缓冲器,读取数据,同时清除OBFA,并使INTR有效。 STBA 选通信号,输入,低电平有效,外设准备好数据,通过STBA把数据锁存到端口输入锁存器,同时使IBFA和INTRA有效。 IBFA 输入缓冲区满,输出,高电平有效。通知外设端口已有数据。该信号由CPU对数据端口读操作清除。 INTEx 中断允许信号 INTE1为PC6输出锁存器,INTE2为PC4输出锁存器 INTEx = 1 中断允许 INTEx = 0 禁止中断,8255应用举例,8255A应用举例 例1 由8255A的A口输出控制一位共阳极数码管,由C口 PC7PC4输入接入四位DIP开关的设置,根据开关设置值,在 数码管上显示字型。 注:LED数码管由8个发光二极管组成七段数码和小数点,8255应用举例,程序 8255初始化控制字:88H 十六进制到字型码采用软件译码方式,8255应用举例,PORTA EQU 60H PORTB EQU 62H PORTC EQU 64H PCTRL EQU 66H DIS PROC MOV AL, 88H OUT PCTRL,AL ;初始化8255 IN AL,PORTC ;读开关状态 MOV CL,4 SHR AL,CL ;转成低4位 LEA BX,SH_TAB XLAT SH_TAB ;查表 OUT PORTA,AL ;显示输出,RET ;字型表 SH_TAB DB 0C0H 0F9 DIS ENDP,8253内部结构,第7.3节 计数器/定时器INTEL 8253 8253内部结构与功能 Intel8253是三个通道16位再装入定时计数器,可由软件设定6种工作方式。 (一)内部结构 内部结构说明 8253内部有三个独立的通道; 每个通道有6种工作方式,由控制寄存器选择; 每个通道可对外部输入CLK进行二进制或十进制减1计数。计数由引脚GATE控制; 计数器归0时由OUT引脚输出信号。,8253内部结构,8253引脚功能,引脚功能 8253具有24个引脚,各引脚功能如下: D7D0 数据总线,双向三态,可直接与计算机系统数据总线相连。 RD 读信号,输入,低电平有效,若有效则CPU从8253内部读取数据. WR 写信号,输入,低电平有效,若有效则CPU将数据写入8253内部寄存器。 CS 片选信号,输入,低电平有效,与计算机连接时分配有效地址。 A1 A0 内部计数器选择信号。 8253内部有三个计数通道,使用四个端口地址。,8253引脚功能,CLK0、CLK1、CLK2 通道0,通道1和通道2的计数时钟输入端,下降沿使通道减1。 GATE0、GATE1、GATE2 门控制,输入,高电平有效或上升沿有效,有效时才允许计数器对输入时钟进行计数。 OUT0、OUT1、OUT2 通道输出信号,当计数器计数到“0”时由此引脚输出一信号。,8253与计算机的连接,8253与计算机的连接,8253与计算机的连接,8253与计算机连接说明 8253数据线D7D0接系统数据总线的低8位。 8253的A1和A0分别接系统的A2和A1,使用偶地址传递信息 由74LS138,74LS30和74LS04译码选中8253,8253与计算机的连接,8253三个通道的时钟由PCLK分频得到,频率为:2.38636/2=1.1931816MHz 在IBM-PC/XT微机系统中,通道0定时OUT0接8259的IR0,通道1刷新动态存储器,通道2控制扬声器发声。,8253控制字,8253控制字及工作方式 (一)8253控制字 控制字写入控制口,说明如下: SC1 SC0 计数器通道选择 0 0 通道0 0 1 通道1 1 0 通道2 1 1 非法,8253控制字,RW1 RW0 计数器读写选择 0 0 计数器锁存 0 1 只读写低8位 1 0 只读写高8位 1 1 先低8位,再高8位 M2 M1 M0 计数器工作方式选择 0 0 0 方式0 0 0 1 方式1 x 1 0 方式2 x 1 1 方式3 1 0 0 方式4 1 0 1 方式5,BCD 计数器进制选择 0 16位二进制计数器 1 BCD码计数器,8253工作方式,(二)8253工作方式 模式0 计数结束产生中断 控制字写入后OUT即变为低电平,当计数器为0时,输出OUT变为高电平,并停止现行操作。 计数初值写入后在下一个CLK下降沿才送入计数器,因此计数值为N+1。 当GATE变为低电平时计数停止,再变为高电平时计数继续进行。 若计数过程中重新送入初值,则按新值重新计数。,8253工作方式,模式1 可重新触发单稳态触发器 写入控制字后OUT变为高电平,GATE上升沿后,下一个CLK的下降沿使得OUT为低电平并开始计数,回零时OUT变为高电平。 GATE再来一次上升沿后会再次使OUT变为低电平,计数器以初值重新计数。 再次给通道写入时间常数,不影响现行操作过程,GATE再次触发后才按新的时间常数操作。,8253工作方式,模式2 分频器 写入控制字后OUT为高电平,输入时间常数后,下一时钟开始计数,减到1时输出变为低电平,经过一个CLK输出变为高电平,计数重新开始。 GATE=1计数进行,GATE=0计数停止,且下一个CLK下降沿计数器重新赋初值,GATE变为高电平,计数重新开始。 计数期间送入新值,本周期继续进行,下一个周期按新值计数操作。,8253工作方式,模式3 方波发生器 写入控制字后OUT为高电平, 输入时间常数后,下一时钟开始计数,计到一半时输出变为低电平,计到终值时变为高电平,并开始下一次计数过程。 若N为偶数,高低电平持续时间相等;若为奇数,则高电平持续时间为(N+1)/2,低电平持续时间为(N-1)/2。 GATE=1计数进行,GATE=0计数停止,OUT为高,计数器重新赋初值,GATE变高,在下一个CLK下降沿计数重新开始。 计数期间送入新值,本周期继续进行,下一个周期按新值计数。,8253工作方式,模式4 软件触发选通 写入控制字后OUT为高电平,输入时间常数后,下一个时钟周期开始计数,计数器为0时,输出一个周期负脉冲,并停止现行操作。 GATE=1允许计数,GATE=0禁止计数,GATE不影响输出 计数期间送入新的时间常数,则下一个时钟按新值重新计数,8253工作方式,模式5硬件触发选通 写入控制字后OUT变为高电平,输入时间常数后由GATE上升沿启动计数。计数为0时输出一个时钟的负脉冲,并停止现行操作。 计数过程中,若GATE又来一个上升沿,则下一个时钟计数器重新赋值计数,8253工作方式,计数过程中写入时间常数,当前周期不受影响,只有下一个 GATE上升沿才启动新值计数,8253应用举例,8253应用举例 (一)ROMBIOS对8253初始化 对计数器0的初始化 MOV AL,36H OUT 46H,AL MOV AL,00H OUT 40H,AL OUT 40H,AL 说明 计数器0工作于方波发生器方式,对CLK(1.1931816MHz)进行65536分频。,8253应用举例,计数器0的输出端OUT0接8259的IR0,每次归0产生一次中断请求,中断类型码由BIOS设置为8。 中断时间间隔为54.925ms,每秒钟来18.2次中断。 通道0的时间间隔是计算机系统时钟基础。 对计数器1的初始化 MOV AL,54H OUT 46H,AL MOV AL,18 OUT 42H,AL 通道1给DMA控制器提供时钟; 输出频率为66.288KHz。,8253应用举例,对计数器2的初始化和接通喇叭 MOV AL,0B6H OUT 46H,AL MOV AX,533H OUT 44H,AL MOV AL,AH OUT 44H,AL IN AL,62H ;读入8255的PB口 MOV AH,AL ;保护原值 OR AL,03H ;置1 PB1和PB0 OUT 62H,AL ;输出,8253应用举例,说明 定时器2工作在方波发生器方式,驱动扬声器发声; 发声频率为896Hz; 扬声器发声还受8255的PB0和PB1控制。,8253应用举例,(二)8253应用 例 由8253的计数器0定时55ms 控制扬声器变调发声,响5.5秒后停止。 说明 8253计数器0的OUT0接8259的IR0,由ROMBIOS初始化,中断类型码为08H,并在完全嵌套方式下工作。 8253计数器0由ROMBIOS设置为模式3,定时时间为55ms。 扬声器发声由8253的计数器2控制发声频率,发声允许由8255的PB0和PB1控制。,8253应用举例,DOS功能调用25H号子功能为设置中断向量。 入口参数 AH=25H,AL=中断类型码 DS:DX 中断服务程序入口地址 返回参数:无 DOS功能调用35H号子功能为取中断向量 入口参数 AH=35H,AL=中断类型码 返回参数 ES:BX 中断服务程序入口地址,8253应用举例,中断服务程序为INT_08H 保护现场和恢复现场; 中断返回前要开中断并发EOI; 中断返回IRET。 每次定时器0中断使扬声器的发声频率的分频常数增加100,并使计数变量count增1。 主程序查询count到100后停止扬声器发声,恢复中断向量,程序退出。,8253应用举例,data segment old_int08h dd ? count dw 0 constant dw 60 state db ? data ends st_seg segment stack db 256 dup (?) st_seg ends code segment assume cs:code,ds:data Int_08h proc far push ax push ds mov ax, data,mov ds, ax mov al, 0b6h out 43h, al mov ax, constant add ax, 100 mov constant, ax out 42h, al mov al, ah out 42h, al inc count mov al, 20h ;发EOI out 20h, al pop ds pop ax sti,iret Int_08h endp main proc far mov ax, data mov ds, ax cli mov ah, 35h mov al, 08h int 21h mov word pt

温馨提示

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

评论

0/150

提交评论