微机原理10.ppt_第1页
微机原理10.ppt_第2页
微机原理10.ppt_第3页
微机原理10.ppt_第4页
微机原理10.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、7.1概述 7.2CPU与外设数据传送的方式 7.3可编程计数器/定时器8253 7.4串行通讯和串行接口 7.5 并行接口 7.6 DMA控制器8237 7.7 D/A和A/D转换技术,第七章 输入/输出接口,7.1 概述,一、接口电路的分类和功能,外设必须通过接口电路与CPU相连接,数据总线,控制总线,地址总线,接口电路,外部设备,数据线,控制线,状态线,一、接口电路的分类和功能,接口电路按通用性分为两类:通用接口和专用接口 通用接口:可供多种外部设备使用的标准接口,目的是使微机正常 工作 通用接口通常制造成集成电路芯片,称为接口芯片。 最初的IBM-PC使用了6块接口芯片:8284、82

2、88、8255、8259、8237、8253 后来的微机将这些芯片集成为大规模集成电路芯片,称为芯片组。 如82430TX芯片组,由两片芯片组成: 北桥:82439TX 南桥:82371AB,一、接口电路的分类和功能,一、接口电路的分类和功能,专用接口:为某种用途或某类外设而专门设计的接口电路,目的 在于扩充微机系统的功能。 专用接口通常制造成接口卡,插在主板总线插槽上使用。 通用接口和专用接口的界限并不严格。,按照可编程性,接口芯片分成硬步线逻辑接口芯片和可编程接口芯片。 可编程接口芯片的功能可以由指令来控制。,一、接口电路的分类和功能,接口电路的功能: 1)缓冲锁存数据 2)地址译码 3)

3、传递命令 4)码制转换 5)电平转换,P. 228,二、接口电路的基本结构,接口电路通常包含一组能够与处理器交换信息的寄存器,称为I/O端口寄存器,简称为I/O端口 1)数据端口存放数据信息 2)状态端口存放状态信息,即反映外设当前工作状态的信息 3)控制端口存放控制信息,状态信息与控制信息可以广义地看作数据信息,因此可以通过数据总线传送,P. 196,三、I/O端口的编址方式,I/O端口与存储单元统一编址 I/O端口独立编址 PC系列机采用I/O端口独立编址方式,Port 65535 Port 255,Port 3 Port 2 Port 1 Port 0,Port 0(16位),Port

4、1(16位),Port 0 (32位),三、I/O端口的编址方式,端口地址是一种重要资源,三、I/O端口的编址方式,端口的寻址 把端口地址放在DX寄存器中,对该端口进行读写 INAL, DX OUT DX, AL,P. 83,可寻址的端口号为065535(FFFFH),端口地址小于或等于FFH(255),可以用立即数表示端口地址 IN AL, 42H OUT 43H, AL,7.2 CPU与外设数据传送的方式,程序传送方式 中断传送方式 DMA传送方式,无条件传送 程序查询传送(条件传送),一、程序传送方式,(一)无条件传送,CPU与外设间的数据交换在程序控制下进行,不查询外设状态,认为外设已

5、经准备就绪,直接与外设传送数据,外设准备就绪:对于输入设备,已经把数据放入接口电路的数据输入寄存器,CPU可以读取;对于输出设备,已经准备好接收数据(接口电路的数据输出寄存器已空),CPU可以向它输出数据,由于不查询外设状态,接口电路不需要状态寄存器,一、程序传送方式,输入缓存 输出锁存 无条件程序传送的原理,P. 197,一、程序传送方式,(二)程序查询传送,在执行输入输出前,要先查询接口中状态寄存器的状态。 输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪 输出时,状态寄存器的状态指示输出设备是否空闲,P. 199,二、中断传送方式,使用查询方式,CPU必须检测接口电路的状态寄存器

6、,如果设备未准备好,CPU就要不断地查询,降低了CPU的运行效率 中断方式:当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,提高了CPU的利用率 每条指令完成后,CPU均可响应中断,因此当设备准备好时,可及时与CPU交换数据,提高了实时性,三、DMA传送方式,对于高速外设(如磁盘、高速A/D),中断方式不能满足数据传输速度的要求。 DMA=Direct Memory Access直接存储器访问 DMA方式是一种由专门的硬件电路执行I/O的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经过CP

7、U。这种专门的硬件电路称为DMA控制器,简称DMAC,7.3 可编程计时器/计数器8253,一、计数/定时的工作原理,计数/定时的功能 对外部事件发生次数进行计数 计算机系统经常用到定时信号,如DRAM刷新定时,计数和计时本质上是相同的,它们都是对一个输入脉冲进行计数,如果输入脉冲的频率一定,那么记录脉冲的个数与所需的时间是一一对应的关系。 例如输入脉冲频率为2MHz,那么计数2106 计时1秒,因此,使用同一个芯片,既能计数,又能计时计时器/计数器,一、计数/定时的工作原理,控制寄存器,初始值寄存器,计数器,计数输出寄存器,状态寄存器,CLK,GATE,OUT,组成:,控制寄存器决定工作模式

8、 状态寄存器反应工作状态 初值寄存器计数的初值 计数输出寄存器CPU从中读 当前计数值 计数器执行计数操作, CPU不能访问,一、计数/定时的工作原理,工作原理:对CLK信号进行减1计数 首先,CPU把控制字写入控制寄存器,计数初始值写入初值寄存器 计数从初值开始,每当CLK信号出现一次,计数值减1 当计数值减到0,从OUT端输出规定的信号 CLK信号出现时,计数器是否减1,由门控信号GATE控制,一、计数/定时的工作原理,CLK是计数输入信号,计数器对CLK端出现的脉冲个数进行计数 CLK端可以输入外部事件 CLK端可以接入固定频率的时钟信号,从而实现计时 OUT信号在计数结束时发生变化 可

9、将OUT作为外部设备的控制信号 可将OUT作为向CPU申请中断的信号 CPU可以从计数输出寄存器读出当前计数值。 读前,应向控制寄存器发送锁存命令,二、8253的编程结构,1片8253内部有三个计数器,结构完全相同,8253的引脚、内部结构、寻址方式 P. 229,每个计数器内部都有一个8位控制寄存器,三个控制寄存器使用相同的端口,在编程结构图中画为一个,8253没有状态寄存器,二、8253的编程结构,8253控制字的格式,P. 230,每个计数器的初值寄存器(CR)、输出锁存器(OL)都是16位的,但它们对应相同的一个8位端口地址,所以16位的CR、OL作为两个8位寄存器读写,由控制寄存器控

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

11、AL, 73H OUT 73H, AL MOV AX, 1234H OUT 71H, AL MOV AL, AH OUT 71H, AL,三、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,四、8253的工作模式,工作模式决定以下内容: 1)门控信号的影响 高电平允许,当GATE=0,

12、即使出现CLK,也不计数 模式0,2,3,4 上升沿允许(上升沿触发) 模式1,5 2)OUT信号的状态 写入控制字后, OUT的状态 计数过程中, OUT的状态 计数终了, OUT的状态 3)计数操作可否重复 不可重复模式0,4 自动重复模式2,3 条件重复模式1,5,四、8253的工作模式,六种工作模式 P. 230,计数初值写入初值寄存器后,要经过一个CLK输入后才开始计数 (或,经过一个CLK后,计数初值才到达计数执行部件) 计数器在CLK的下降沿使计数值减1,四、8253的工作模式,方式0: 计数初值写入CR后,OUT由0到1跳变出现在n+1个时钟脉冲之 后 延迟时间TD=(n+1)

13、TCLK 方式1: 单脉冲宽度T=n TCLK 方式2: 对输入端n个时钟脉冲,在输出端仅出现一个时钟脉冲 N分频计数器,四、8253的工作模式,方式3: 例:计数器工作模式3,计数器初值15,时钟脉冲频率为2MHz,确定OUT端输出方波的特性。 解:TCLK=1/2MHz=500ns 计数器初值15为奇数,输出分频波高电平宽度 TCLK(N+1)/2=4s 输出分频波低电平宽度 TCLK(N-1)/2=3.5s 方式4、5: 触发后n+1个时钟脉冲之后输出端产生选通脉冲信号,四、8253的工作模式,例:计数器0工作模式4,初始化计数器,使装入计数器10 s后产生选通信号(设时钟频率2MHz,

14、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,五、8253的应用,1. PC机中8253的应用,计数器0:向系统日历时钟提供定时中断 模式3,控制字36H,计数器初始值0 计数器1:动态RAM刷新 模式2,控制字54H,计数器初始值18(12H) 计数器2:控制扬声器发声 模式3,控制字B6H,计数器初始值1331(533H),PC机中,8253的端口地址为40H43H,五、8253的应用,2. 扬声器控制,设计一个程序,使扬声器发出600Hz

15、频率的声音,按下任意键声音停止,PC机的发声系统以计数器2为核心。CLK2的输入频率1.19MHz, 改变计数器初值可以由OUT2得到不同频率的方波输出 对于600Hz,计数初值1.19MHz/600Hz=1938,发声系统受8255芯片B口的两个输出端线PB0、PB1的控制 PB0为1,使GATE2为1,计数器2能正常计数 PB1为1,打开输出控制门,五、8253的应用,2. 扬声器控制,CODE SEGMENT ASSUME CS:CODE START: IN AL, 61H OR AL, 03H OUT 61H, AL MOVAX, 1983 OUT42H, AL MOVAL, AH O

16、UT 42, AL MOVAH, 01H INT 21H INAl, 61H AND AL, 0FCH OUT 61H, AL MOVAH, 4CH INT 21H CODE ENDS END START,五、8253的应用,3. 以2MHz输入8253,实现每5秒定时中断(设8253端口地址40H43H),分析:8253最大初值65536,CLK=2MHz可实现最大时间间隔 65536/(2106)=32.769ms 所以需要两个计数器串联,一个计数器的输出作为另一个计数器的输入,五、8253的应用,计数器1:模式2,OUT1每5ms输出一个脉冲 初值(2106)/(1/0.005)=100

17、00 计数器0:模式2,OUT0每5s输出一个脉冲 初值(1/0.005)/(1/5)=1000,OUT0 GATE0 CLK0 OUT1 GATE1 CLK1,+5V,+5V,2MHz,每5秒产生一个脉冲,五、8253的应用,程序:,MOV AL, 74H OUT 43H, AL MOV AX, 10000 OUT 41H, AL MOV AL, AH OUT 41H, AL MOV AL, 74H MOV AL, 34H OUT 43H, AL MOV AX, 1000 OUT 40H, AL MOV AL, AH OUT 40H, AL,作业,1.试述CPU与外设交换数据的方式及其特点 2.设8253三个计数器的CR/OL端口地址为70H、71H、72H,控制寄存器端口地址73H。编写程序片段,使: 计数器0,工作模式1,使用1

温馨提示

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

评论

0/150

提交评论