
计算机接口技术电子教案课件-8237a的地址扩展.ppt
45页8237A的地址扩展8237A——16条地址线 8086——20条 80286——24条 386——32条 扩展方法——增加页地址寄存器 DMA传送时的高位地址由“页面寄存器”提供,页面 寄存器由CPU的输出指令实现写入 DMAC1的通道0~通道3:8237A提供系统A0~A15低16 位地址,页面寄存器输出系统A16~A23高8位地址 DMAC2的通道5~通道7:8237A提供系统A1~A16的16 位地址,而系统A0被强迫为逻辑0,页面寄存器仅输 出高7位地址A17~A23例试初始化DMA通道2为写传送,用于将软盘一个扇区 的数据(512Byte)传送到内存中 入口条件:ES:BX=缓冲区首地址 INITDMA2PROC MOVAL,04H;命令字 OUT08H,AL;08H 命令寄存器端口 MOVAL,46H;方式字 OUT0BH,AL;0BH 方式寄存器端口 …… 此时DL为页地址,BX为基地址OUT0CH,AL;0CH 先/后触发器 ;软件命令,AL为任意 值 MOVAL,BL;写基地址低8位 OUT04H,AL;04H 写CH2的基地址和当前 MOVAL,BH;地址寄存器 OUT04H,AL MOVAL,DL;写页地址寄存器 OUT81H,AL MOVAL,0FFH;写字节数 OUT05H,AL;05H 写CH2的基字节数和当 MOVAL,01H;前字节数寄存器OUT05H,AL MOVAL,02H;单通道屏蔽字 OUT0AH,AL;去除CH2的屏蔽 MOVAL,10H OUT08H,AL;重写命令字,开DMA RET INITDMA2ENDP命令字D1 D0D3D7D2D4D5D60 DACK低 电平有效0 DREQ高 电平有效0 启用8237 1 禁用82371 Mem-Mem时源地 址保持不变0 固定 优先级 1 优先 级循环0 不扩展 写信号0 一般 时序 1 压缩 时序1 Mem-Mem命令字:0000 0100B=04H方式字D1 D0D3 D2D4D5D7 D600 请求模式 01 单字节模式 10 数据块模式 11 级联模式0 地址增 1 地址减00 DMA校验 01 DMA写 10 DMA读 11 非法00 通道0 01 通道1 10 通道2 11 通道30 禁止自 动初始化 1 允许自 动初始化方式字:0100 0110B=46H8237A各寄存器对应的端口地址第五章 定时器/计数器接口——intel8253§5.1 概述计数器记录外设提供的具有一定随机性的脉冲 信号时,它主要反映脉冲的个数,进而获知外 设的某种状态定时器由数字电路中的计数电路构成,通过记 录高精度晶振脉冲信号的个数,输出准确的 时间间隔§5.1 概述实现定时/计数的三种方法 1、软件方法 CPU执行每条指令所需时间是固定的,通过编制一个延时程 序段让微处理器执行, 可得到定时的时间。
这种方法通用性 和灵活性好,但占用CPU时间 2、不可编程的硬件方法 采用分频器、单稳电路或简易定时电路控制定时时间,例如 555定时电路,这种方法不占用CPU时间,但通用性、灵活性 差 3、可编程计数器/定时器方法 软件硬件相结合,用可编程定时器芯片构成定时电路,可由 软件设定定时与计数功能,设定后与CPU并行工作,不占用 CPU时间,使用灵活§5.2 8253可编程定时/计数器一、8253的特性 8253采用+5V单一电源,24引脚DIP封装 (1)片内具有3个独立的16位计数通道 (2)计数频率(CLK时钟频率)为0~2.6MHz (3)每个通道独立定时或计数,可以按二进制或 BCD计数 (4)每个通道可编程设定6种不同的工作方式 (5)可由软件或硬件控制开始计数或停止计数 (6)所有输入/输出引脚与TTL兼容8253二、8253的内部结构数据 总线 缓冲器D7~D0读/写控制 逻辑CSA0 A1 RD WR控制字 寄存器计数器 通道0计数器 通道1计数器 通道2CLK 0 GATE 0 OUT 0CLK 1 GATE 1 OUT 1CLK 2 GATE 2 OUT2二、8253的内部结构数据 总线 缓冲器D7~D0读/写控制 逻辑CSA0 A1 RD WR控制字 寄存器计数器 通道0计数器 通道1计数器 通道2CLK 0 GATE 0 OUT 0CLK 1 GATE 1 OUT 1CLK 2 GATE 2 OUT2数据总线缓冲器 8位双向三态的缓冲器,可直接 挂在数据总线上。
1.可以向控制寄存器写入控制字 ,向计数器写入计数初值 2.可由CPU通过该缓冲器读取计 数器的当前计数值 二、8253的内部结构数据 总线 缓冲器D7~D0读/写控制 逻辑CSA0 A1 RD WR控制字 寄存器计数器 通道0计数器 通道1计数器 通道2CLK 0 GATE 0 OUT 0CLK 1 GATE 1 OUT 1CLK 2 GATE 2 OUT2读/写控制逻辑 功能: 1.接收来自CPU的控制信号,包 括读信号、写信号、片选信号和 芯片内部寄存器的寻址信号A1、 A0, 2.8253各计数器的读/写操作二、8253的内部结构数据 总线 缓冲器D7~D0读/写控制 逻辑CSA0 A1 RD WR控制字 寄存器计数器 通道0计数器 通道1计数器 通道2CLK 0 GATE 0 OUT 0CLK 1 GATE 1 OUT 1CLK 2 GATE 2 OUT2控制字寄存器接收来自CPU的控制字,并 由控制字D7、D6位的编码决定该 控制字写入哪一个计数器的控制 寄存器中8253的控制字BCD码(十进制数)1二进制数0计数方式选择方式5101方式4100方式3011方式2010方式1001方式0000工 作 方 式 选 择 先低后高字节读/写11只读/写高8位10只读/写低8位01锁存命令00读/写格式选择通道选择无意义选通道2选通道1选通道011100100D1D0D2D3D4D5D6D7在8254中是锁 存命令特征位此时D3-D0无效 低8位自动填0最小0001H 最大0000H最小1 最大104 若初值为20D, 直接写20H就可 以了每个计数器通道的结构计数初值存于预置寄 存器;预置寄存器GATECLKOUT 减计数器输出锁存器 输出锁存器用于写入 锁存命令时, 锁定当前计数值在计数过程中, 减计数器的值不断递 减, 而预置寄存器中的预 置不变。
三、8253的引脚CLK[0,1,2],时钟脉冲 输入端 用于输入定时脉冲或计 数脉冲信号 CLK可以是系统时钟脉 冲,也可以由其他脉冲 源提供 三、8253的引脚OUT[0,1,2,],计数输 出端 在不同方式的计数过程 中,OUT引脚上输出相 应的信号 三、8253的引脚GATE[0,1,2],门控输 入端 用于外部控制计数器的 启动和停止计数的操作 两个或两个以上计数器 连用时,可用此信号来 同步四、8253的工作方式Intel8253的每个计数通道都有6种工作方式 这6种工作方式主要有五点不同:1)启动方式不同;2)输出波形不同; 3)门控信号GATE对计数过程的影响不同; 4)在计数过程中重新写入计数初值对计数过程的影 响不同; 5)计数结束后,计数器是否恢复计数初值并自动重 复计数不同1、方式 0 (计数结束输出高电平)•写入控制字,OUT端立即变为低电平 •计数初值装入该计数器后,计数开始——软件启动 •在整个计数过程中,OUT保持低电平,当计数器减为0时,OUT输出高电平 Ø计数器只计一遍——不重复计数Ø计数过程中,GATE端应保持高电平Ø计数过程中可以随时修改初值:装入计数值为8位时,立即开始计数;装 入16位计数值时,在写入第一个字节后停止计数,等第二个字节写入后开始新的 计数。
2、方式1(可编程单拍脉冲)•写入控制字,OUT端为高电平 •装入初值后,在GATE信号的上升沿后的下一个CLK脉冲的下降沿开 始计数,OUT变为低电平 •在整个计数过程中,OUT保持低电平 •当计数器减为0时,OUT变为高电平,输出一个单脉冲 Ø若GATE信号再由低变高,可再产生一个单脉冲可多次触发计数 ØGATE上升沿触发,计数值可重复使用——硬件启动,可重复计数3、方式2(分频器)•写入控制字,输出变高 •装入初值,开始计数——软件启动 •由GATE信号控制,若GATE信号为0时,暂停计数,当变 为高电平的下一个CLK脉冲又开始重新计数——硬件启动Ø计数过程中,CPU可随时改变计数值,但下次计数才按 新的计数值计数Ø8253相当于一个分频脉冲产生器,若计数值为N,则每 输入N个CLK脉冲,输出一个脉冲,脉冲宽度等于CLK周期4、方式3(方波发生器)•CPU写入控制字后OUT变高 •写入计数值后,若GATE=1则自动开始计数——软件启动 •GATE可以控制计数,若GATE=0暂停计数,GATE=1允许计数——硬 件启动 •计数过程中,新装入值不影响原计数过程 Ø前 N/2或(N+1)/2 个CLK,OUT为高,后N/2或(N-1)/2 个CLK , OUT为低。
Ø输出周期性方波,若计数值为N,则输出的方波周期是N×CLK周 期 ——重复计数方式3的应用计数器0:方式3,计数值:65536,输出频率为 1.19318MHz÷65536=18.206Hz的方波,门控为常 启状态,这个方波信号不断产生OUT0端接8259A的IRQ0,用作中断请求信号 每秒产生18.206次中断请求,或说每隔55ms( 54.925493ms)申请一次中断DOS系统利用计数器0的这个特点,通过08号中断 服务程序实现了日时钟计时功能A0 A1— — — A0 — A1 —D0~D7D0~D7OUT1OUT2OUT0GATE0 GATE1 GATE2CLK0 CLK1 CLK2D QCLK+5V接至DMA控制器接至扬声器驱动器 PB0PB1IRQ0DRQ08253+5V1.19318MHz DACK0 BRDIORIOWRD WRCST/CCS计数工作方式3计数值0=65536计数工作方式2计数值185、方式4(软件触发选通)•写入控制字,OUT端为高电平 •写入计数初值后立即开始计数——软件启动 •计数器计到0时,OUT变为低电平,经过一个CLK脉冲周 期,OUT又变高,计数器停止计数Ø只有写入新计数值才能开始新的计数——不自动重复 计数Ø要求GATE一直为高电平,若为低则暂停 6、方式5(硬件触发选通)•写入控制字,OUT变高 •写入计数初值 •由GATE信号的上升沿触发开始计数。
计到0后,OUT变为低 电平经一个CLK周期后,OUT又变为高电平,并停止计数Ø等下次GATE触发才能再计数——不自动重复计数Ø计数初值可多次使用6种工作方式对比方式功 能输出波形触发性质0计数结束产 生高电平写初值后, 经N+1个时钟周期OUT端变为高电平, GATE=0停止计数软触发单次负脉冲1可重触发单 稳态触发器输出宽度为N个时钟周期的负脉冲,只要有新的GATE脉冲,重新计数硬触发单次负脉冲2分频器输出宽度为一个时钟周期的负脉冲 ,自动触发连续的脉冲波3方波发生器N为偶数,占空比为1/2; N为奇数, N+1/2个正脉冲,N-1/2个负脉冲自动触发连续的方波4软件触发的 选通信号写入初值后,经N个时钟周期, OUT 变低一个时钟周期软触发单次单拍负脉冲5硬件触发的 选通信号门控触发后,经N个时钟周期, OUT 变低一个时钟周期硬触发单次单拍负脉冲8253-工作方式与门控信号的关系方式GATE=0及下降沿GATE=1GATE上升0暂停计数允许计数不受影响1不受影响不受影响从初值开始重新计数2停止计数允许计数从初值开始重新计数3停止计数允许计数从初值开始重新计数4暂停计数允许计数不受影响5不受影响不受影响从初值开始重新计数§5.3 8253应用实例先初始化,步骤如下:1.写入方式控制字,以选择计数通道,确定其工作方式。
2.写入计数初值到对应的计数通道中,确定计数定。












