第8章 计数器定时器和DMA控制器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GATE OUT ③
WR GATE OUT
n=4 n=3
4
321
0
4 n=2
43
3
2 10
2
1
0
21
0
图8-5 8253的方式1时序波形
机电工程系
方式2——周期性负脉冲输出
CLK n=4
① WR
OUT
n=4 ② WR
OUT n=3
WR

OUT
GATE
4
32
1
n=3
43
21
0
32
1’
0(3) 2
1 (0) 3
方式0——低电平输出(GATE信号上升沿继续计数)
① CLK WR
n=5
OUT
② WR n=5 GATE OUT
③ WR n=9 OUT
54 54 98
3
2
n=4
10
321
4
32
0 10
图8-4 8253的方式0时序波形
机电工程系
方式1——低电平输出(GATE信号上升沿重新计数)
CLK ①
WR GATE OUT ②
例8-3
设 系 统 为 8253 分 配 的 端 口 地 址 为 70H ~ 76H,其中76H为控制字寄存器端口地址, 70H、72H、74H分别为计数器0、1、2的 端口地址。若输入脉冲频率为2MHz,编写 出用计数器0输出频率为1Hz方波的初始化 程序。
分析:由于输入时钟频率为2MHz,而输出 方波频率为1Hz,计算出计数器初值N=( 2×106 ) /1=2×106 。 此 数 超 出 16 位 计 数 器所能够表示的范围。为了解决这一问题 ,可先通过计数器1将2MHz的输入脉冲变 成2kHz方波,然后用OUT1输出的方波作 为计数器0的输入时钟。计数器1的计数初 值N=(2×106)/(2×103)=1000,计数 器0的计数初值M=(2×103)/1=2×103。
OUT
5
5
43
2
1
0
③ WR OUT
n=3 3
n=2
2
1
02
10
图8-8 8253的方式4时序波形
机电工程系
方式5——单次负脉冲输出(硬件触发)
CLK
① WR
n=4
GATE
OUT
② GATE OUT
54
32
10
54
5
4 3 21 0
图8-9 8253的方式5时序波形
机电工程系
8.2.3 8253的编程 设定方式控制字 设定计数初值
机电工程系
8.2.1 8253内部结构及引脚功能
1.8253的内部结构 2.8253的引脚功能
机电工程系
1.8253的内部结
D7~D0 WR RD AAC01S
数据总线 缓冲器

读/写 逻辑
部 总 线
计数器0 计数器1
控制字 寄存器
计数器2
图8-2 8253内部结构
CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE20 OUT2
系统总线
存储器
总线允许
(HLDA)
CPU
③ ②
DMA 控制器
DMA允许
(DACK) ④ ①
I/O 接口
总线请求
DMA请求
(HOLD)
(DREQ)
图8-14 DMA传送机制示意图
I/O 设备
机电工程系
8.3.3 DMA传送的模式
单字节传送模式
只能一个字节一个字节地传送(或校验或检索),每传送一个字节DMAC必须重新 向CPU申请占用总线。
根据题目要求,8253方式控制字应为00110111,具体程序如下:

MOV DX,43H

MOV AL,37H

OUT DX,AL

MOV DX,40H

MOV AL,0

OUT DX,AL

MOV AL,60

OUT DX,AL
;设定控制端口 ;写入控制字
;设计数器0 ;写计数初值低字节
;写计数初值高字节
+5V
OUT0 TNT
R
5MHz 8255PA4
CLK1 OUT1
GATE1



工件
光 敏 电 阻
扬 声 器
光源
机电工程系
8.3 DMA传送的基本原理
8.3.1 DMA传送的特点 8.3.2 DAM传送的机制
1.周期挪用(Cycle Stealing) 2.周期扩展 3.CPU停机
定时器,即在设置好定时常数后,便对外部时钟信号作减1计数,并按定时 常数不断地产生时钟周期整数倍的定时间隔
CPU
数据总线 地址总线 控制总线
控制寄存器 计数初值寄存器
计数器 计数输出寄存器
计数脉冲输入CLK 门控脉冲输入GATE 输出OUT
机电工程系
8.2 可编程计数器/定时器8253
8.2.1 8253内部结构及引脚功能 8.2.2 8253的工作方式及特点 8.2.3 8253的编程 8.2.4 8253的应用举例
图8-13所示为一自动计数系统。当工件从光 源与光敏电阻之间通过时,CLK0端即可接收 到一个脉冲信号,由计数器0计数。每当有 80个工件通过后,由输出端OUT0输出一个负 脉冲作为中断请求信号通知CPU。CPU在处理 该中断的中断服务程序中启动计数器1,由 OUT1产生2000Hz的方波驱动蜂鸣器发声,提 示工件以满80个,5秒后扬声器停止发声。
机电工程系
例8-4
IBM PC/XT系统板上8253的3个计数器的使用。
DACK0BRD
74LS74
A5 A6 AAAA789EN
74LS138 IOR
A
IOW
B C
Y2
GGG221AB
(8255) PB0
RD
U26
WR CS 8253-5
A1 A0 D7~D0
OOOUUUTTT012
GGGAAATTTEEE012 CCCLLLKKK012
机电工程系
设定方式控制字
SC1 SC0 RW1 RW0 M2
M1 M0
BCD
计数格 式选择
00 计数器0 01 计数器1 10 计数器2 11 无意义
工作方式选择
读/写 控制
00 计数器锁存 01 只读/写计数器低字节 10 只读/写计数器高字节 11 读/写计数器16位数
先低字节,后高字节
图8-10 8253的方式控制字
DQ U73
DREQ0(8237) IRQ0(8259)
DQ U21
>C Q
74LS175
PCLK RESETDRV
图8-11 8253与系统总线的连接
机电工程系
例8-5
8253的3个计数器串级连接起来,为某A/D子系统提供可调用的启动采样频
率信号。
设 8253 的 端 口 地 址 为 304H , 305H , 306H , 307H 。 初 始 值 L ,
机电工程系
2.8253的引脚功能
D7 D6 D5 D4 D3 D2 D1 D0
CLK0 OUT0 GATE0 GND
1 24
2 23
3 22
4 21
5 20
6
8253 19
7 18
8 17
9 16
10 15
11 14
12 13
VCC WR
RD
CS
A1 A0 CLK2 OUT2 GATE2 CLK1 GATE1 OUT1
第8章 计数器/定时器与DMA控制器
8.1 计数器/定时器的工作原理 8.2 可编程计数器/定时器8253 8.3 DMA传送的基本原理 8.4 DMA控制器8237A
机电工程系
8.1 计数器/定时器的工作原理
8.1.1 微机系统中的定时 8.1.2 外部定时方法
–软件定时 –硬件定时
机电工程系
MOV AL,76H OUT 76H,AL MOV AX,1000 OUT 72H,AL MOV AL,AH OUT 72H,AL MOV AL,36H OUT 76H,AL MOV AX,2000 OUT 70H,AL MOV AL,AH OUT 70H,AL
32
1 03
32
1 01
图8-6 8253的方式2时序波形
机电工程系
方式3——周期性方波输出
CLK ① WR
OUT
② WR OUT
n=4 2
n=5 3
2 2
2
图8-7 825电工程系
方式4——单次负脉冲输出(软件触发)
CLK
n=5
① WR OUT
5
4
3
21
0
② GATE
8.1.3 可编程计数器/定时器的工作原理
机电工程系
8.1.1 微机系统中的定时
微机系统常常需要为处理器和外设提供时间标记,或对外部事件进行 计数。
内部定时是计算机本身运行的时间基准或时序关系,计算机每个操作 都是按照严格的时间节拍执行的。
外部定时是外部设备实现某种功能时,本身所需要的一种时序关系

OUT 40H,AL

STI

LOOP: HLT

JMP LOOP

MOV AL,01H

OUT 80H,AL

MOV AL,77H

OUT 43H,AL

MOV AL,0

OUT 41H,AL

MOV AL,25

OUT 41H,AL

CALL D5S

MOV AL,0

OUT 80H,AL
例8-6
机电工程系
8.1.2 外部定时方法
软件定时
它是利用CPU内部定时机构,运用软件编程,循环执行 一段程序而产生的等待延时。
硬件定时
采用可编程通用的定时/计数器或单稳延时电路产生定 时或延时
机电工程系
8.1.3 可编程计数器/定时器的工作原理
计数器,即在设置好计数初值后,便开始对外部触发脉冲作减1计数,减为0 时,输出一个信号
8.3.3 DMA传送的模式
1.单字节传送模式 2.数据块传送模式 3.请求传送模式
机电工程系
8.3.1 DMA传送的特点
DMA方式可以实现外部设备与存储器之间的数据高速传输 DMA传送主要用于需要高速大批量数据传送的系统中,以提高数据的
吞吐量 DMA传送方式的优点是以增加系统硬件的复杂性和成本为代价的 DMA传送虽然脱离CPU的控制,但并不是说DMA传送不需要进行控制和
手动/继电器开关 +5V
MOV AX,M OUT 305H,AL MOV AL,AH OUT 305H,AL MOV AL,96H OUT 307H,AL
OUT2 (方式3)GATE
2
CLK2
时钟发生器
MOV AL,N
OUT 306H,AL
机电工程系

MOV AL,15H

OUT 43H,AL

MOV AL,80
。 方式控制字为00110110B,即36H。
MOV DX,316H MOV AL,36H OUT DX,AL MOV AX,1000 MOV DX,310H OUT DX,AL MOV AL,AH OUT DX,AL
机电工程系
8.2.4 8253的应用举例 例8-3 例8-4 例8-5 例8-6
机电工程系
例8-2 假定8253的4个端口地址分别为310H 、312H、314H、316H,输入脉冲频率为 2MHz,编写出用计数器0输出频率为2kHz 方波的初始化程序。
分析: 根据题目要求,采用计数器0、工作方式3、
二进制计数。 计数初值N=(2×106)/(2×103)=1000
8253 (方式2)
OUT0 CLK0
启动转换
A/D转换子系统
N为二进制数,且小于256,M
GATE
为BCD数,且大于100。 0
MOV AL,14H
OUT 307H,AL MOV AL,L OUT 304H,AL MOV AL, 73H OUT 307H,AL
OUT1 (方式1)GATE
1
CLK1
8.2.2 8253的工作方式及特点
方式0——低电平输出(GATE信号上升沿继续计数) 方式1——低电平输出(GATE信号上升沿重新计数) 方式2——周期性负脉冲输出 方式3——周期性方波输出 方式4——单次负脉冲输出(软件触发) 方式5——单次负脉冲输出(硬件触发)
机电工程系
管理
机电工程系
8.3.2 DMA传送的机制
1.周期挪用(Cycle Stealing)
DMAC在处理器不访问存储器或I/O端口时控制总线
2.周期扩展
DMAC在处理器不访问存储器或I/O端口时控制总线
3.CPU停机
CPU停机是指在DMA操作期间,CPU交出总线控制权,由DMA控制器接管总线,完 成数据传送
1 十进制计数 0 二进制计数 000 方式0 001 方式1 ×10 方式2 ×11 方式3 100 方式4 101 方式5
机电工程系
设定计数初值
例8-1 设8253计数器0工作于方式3下,计数初值为6000(十进制格式),试 写出其初始化程序。(设8253计数器0,计数器1,计数器2及控制端口地址 分别为40H~43H。)
表8-1 8253计数器的选择与操作
CS RD WR A1
A0
功能
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
读计数器0当前值 读计数器1当前值 读计数器2当前值 设置计数器0的初始值 设置计数器1的初始值 设置计数器2的初始值 设置控制字
图8-3 8253 引脚
机电工程系
相关文档
最新文档