微机原理(第五章 定时计数器)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用同一个芯片,既能计数,又能定时——定时器/计数器
2012-8-9 7
一、计数/定时的工作原理
组成: 控制寄存器——决定工作模式 状态寄存器——反应工作状态 初值寄存器——计数的初值 计数输出寄存器——CPU从中读 当前计数值 计数器——执行计数操作, CPU不能访问
控制寄存器 初始值寄存器 GATE 计数器 CLK
2012-8-9 5
端口通常分为三类: 用来传输数据的称为数据端口; 用来存放设备或者部件状态的称为状态端口; 用来存放CPU发出的命令的称为控制端口。 CPU通过数据端口完成数据传输,因此,数据端口 一般是可读可写的; CPU通过状态端口可以检测外设和接口部件当前的 状态,因此,状态端口一般是只读的; CPU通过控制端口传输命令以便控制接口和设备的 动作,因此,控制端口一般是只写的。
方式1: 单脉冲宽度T=n TCLK 方式2: 对输入端n个时钟脉冲,在输出端仅出现一个时钟脉冲 ——N分频计数器
24
2012-8-9
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个时钟脉冲之后输出端产生选通脉冲信号
2012-8-9 10
一、计数/定时的工作原理
CLK是计数输入信号,计数器对CLK端出现的脉冲个 数进行计数 •CLK端可以输入外部事件 •CLK端可以接入固定频率的时钟信号,从而实 现计时 OUT信号在计数结束时发生变化 •可将OUT作为外部设备的控制信号 •可将OUT作为向CPU申请中断的信号 CPU可以从计数输出寄存器读出当前计数值。 读前,应向控制寄存器发送锁存命令
2012-8-9
9
5.2.1 8253的功能与结构
1.8253的主要功能
⑴ 有3个独立的16位计数器通道。 ⑵ 每个计数器都可以按照二进制 或二—十进制(BCD码)计数。 ⑶ 每个计数器的计数速率可高达2MHz。 ⑷ 每个通道有6种工作方式,可由程序设置 和改变。 ⑸ 所有的输入输出都与TTL兼容。
6
2012-8-9
5.2 可编程定时器/计数器8253
一、计数/定时的工作原理
计数/定时的功能 •对外部事件发生次数进行计数 •计算机系统经常用到定时信号,如DRAM刷新定时
计数和定时本质上是相同的,它们都是对一个输入脉冲进 行计数,如果输入脉冲的频率一定,那么记录脉冲的个数与 所需的时间是一一对应的关系。 例如输入脉冲频率为2MHz,那么计数2106 计时1秒
2012-8-9
29
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
2012-8-9
2012-8-9
26
5.2.4 8253 的应用
例2 在以8088CPU为核心的系统中,扩展一片8253芯片, 要求通道0对外部脉冲进行计数,计满400个脉冲后向CPU 发出一个中断请求,完成软硬件设计。 分析:首先完成硬件设计。8253与系统总线的连接如下:
2012-8-9
27
题目要求的输出波形 经分析选择方式0。 计数初值为400 确定控制字:00110000B 初始化程序: MOV OUT MOV OUT MOV OUT
2012-8-9 11
二、8253的内部结构
1片8253内部有三个计数器,结构完全相同 8253的内部结构 8253的内部结构如图5-2 所示,主要由以下部 分组成: (1) 数据总线缓冲器 (2) 读/写控制逻辑。 (3) 控制字寄存器。 (4) 计数器0,计数器1, 计数器2。
2012-8-9
南京理工大学
2012年
2012-8-9 1
授课教师: 殷代红 制 作 者: 殷代红
邮箱:yindh07@sina.com
2012-8-9
2
第五章 定时与计数器
2012-8-9
3
5.1 概述
5.1.1 定时与计数问题的提出 定时与计数是计算机经常面临的工作,它不仅应用在计算机 内部,同时,也广泛应用在各种不同领域的实际系统中, 如定时中断、定时检测、定时扫描等等,还有些场合要求 能对外部事件计数。 实现定时与计数的方法通常有两种:软件方法和硬件方法。 软件方法:通过用户编制的程序来完成,如延时子程序,软 件定时占用CPU,降低了CPU的利用率。 硬件方法:通过完全的硬件连接或软/硬件的结合来完成, 包含简单硬件定时和可编程硬件定时两种方式。 简单硬件定时可以采用小规模集成电路器件(例如555), 外接部分定时部件(电阻和电容)构成。这样的定时电路 简单而且通过改变电阻和电容,可以使定时在一定的范围 内改变,但不能由指令来控制和改变。 可编程定时器电路的定时值及其范围,可以很容易地由软件 来确定和改变,所以使用灵活,功能更强。
2012-8-9
15
3.8253的引脚功能
8253的引脚按功能可分 为两组: 一组面向三总线 数据总线、控制总线和 地址总线, 另一组面向外部操作。 CLK、GATE、OUT
2012-8-9
16
5.2.2 8253的初始化编程
对8253某一通道的初始化编程涉及两个内容: 首先向控制端口写入通道控制字,由此控制字 确定选中哪个通道、采用什么工作方式和计数 方式、如何写入计数初值等内容, 然后向选中的通道端口写入计数初值。
2012-8-9
MOV AL, 0H OUT 73H, AL IN AL, 70H MOV BL, AL IN AL, 70H MOV BH, AL
21
5.2.3 8253的工作方式
工作方式决定以下内容:
1)门控信号的影响 高电平允许,当GATE=0,即使出现CLK,也不计数 ——方式0,2,3,4 上升沿允许(上升沿触发) ——方式1,5 2)OUT信号的状态 写入控制字后, OUT的状态 计数过程中, OUT的状态 计数终了, OUT的状态 3)计数操作可否重复 不可重复——方式0,4 自动重复——方式2,3 条件重复——方式1,5
每5秒产生 一个脉冲 +5V
+5V 2MHz
30
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
2012-8-9
31
作业
1.什么叫端口? 端口通常有哪几种? 各有什么特点? 2.试说明8253的内部结构包括哪几个主要功能模块? 3.8253芯片共有几种工作方式?每种工作方式各有什么特点? 4.若选用8253通道2,工作在方式1,按二进制计数,计数值 为5432。设端口地址为D8H~DBH,完成初始化编程。如果 计数值改为65536呢?如果此时又增选8253通道0,工作在方式 0,按BCD码计数,计数值为2000,再完成对通道0的初始化 编程。 5.设8253的端口地址同4,编写程序片段,读出计数器2的内容, 并把读出的数据装入寄存器AX. 6.设计数器的时钟输入频率为1.91MHz,为产生25KHZ的 方 波输出信号,应向计数器装入的计数初值为多少?
2012-8-9 4
5.1.2 端口的概念 接口电路:微机可以通过接口电路接收外部设 备送来的信息或将信息发送给外部设备。 分类:可以提供使微机正常工作所需要的辅助 电路; 输入/输出接口电路包括并行接口、串行接口、 专用接口等, 提供CPU与接口直接进行操作的“通道” 每个部件或接口内部都包含有一组寄存器, 这些寄存器通常称为端口,每个端口有一个 端口地址。
计数输出寄存器 状态寄存器
OUT
2012-8-9
8
一、计数/定时的工作原理
工作原理:对CLK信号进行减1计数 首先,CPU把控制字写入控制寄存器,计数初始值写入初值 寄存器 计数从初值开始,每当CLK信号出现一次,计数值减1 当计数值减到0,从OUT端输出规定的信号 CLK信号出现时,计数器是否减1,由门控信号GATE控制
2012-8-9
17
1.8253的控制字
2012-8-9
18
8253的编程命令
初始化
1)写入控制字 2)按控制字要求写入计数初值
ຫໍສະໝຸດ Baidu
计数器初值计算:N=fCLK/fOUT
例:设三个计数器的端口地址为70H、71H、72H,控制端口地址73H。 计数器0,工作模式2,仅使用低8位,初值为100,计数值使用二进制。
2012-8-9 22
8253的工作方式
六种工作方式
计数初值写入初值寄存器后,要经过一个CLK输入后才开始计数
(或,经过一个CLK后,计数初值才到达计数执行部件)
计数器在CLK的下降沿使计数值减1
2012-8-9
23
8253的工作方式
方式0: 计数初值写入CR后,OUT由0到1跳变出现在n+1个时钟 脉冲之后 延迟时间TD=(n+1)TCLK
25
2012-8-9
8253的工作方式
例:计数器0工作方式4,初始化计数器,使装入计数器10 s 后产生选通信号(设时钟频率2MHz,8253端口地址为50H~53H)。
解:n+1=T/ TCLK=10/0.5=20 n=19=13H MOV AL, 18H OUT 53H, AL MOV AL, 13H OUT 50H, AL
MOV AL, 14H OUT 73H, AL MOV AL, 100 OUT 70H, AL
2012-8-9 19
8253的编程命令 例:设三个计数器的端口地址为70H、71H、72H,控 制寄存器端口地址73H。计数器1,工作模式1,使用 16位,初值为1234,计数值使用BCD
MOV AL, 73H OUT 73H, AL MOV AX, 1234H OUT 71H, AL MOV AL, AH OUT 71H, AL
2012-8-9
AL,30H 03H,AL AX, 400 00H,AL AL,AH 00H,AL
;控制字写入控制口 ;二进制形式的数据 ;先写低8位,写入通道0
;后写高8位,写入通道0
28
5.2.4 8253 的应用
1. 以2MHz输入8253,实现每5秒定时中断 (设8253端口地址40H~43H) 分析:8253最大初值65536,CLK=2MHz可实现最大时间间隔 65536/(2106)=32.769ms 所以需要两个计数器串联,一个计数器的输出作为另一个计数 器的输入
12
(1) 数据总线缓冲器。 是8253与CPU数据总线连 接的8位、双向、三态 缓冲器。CPU用输入 输出指令对8253进行 读写的所有信息都是 通过该缓冲器传送的, 内容包括: • CPU在初始化编程时写 入8253的控制字。 • CPU向8253的某一通道 写入的计数值。 • CPU从某一个通道读取 的计数值。
2012-8-9 20
3.读取通道当前的计数值 8253任一通道的当前计数值,CPU都可用输入指令读取。 8253的通道计数器是16位的,要分两次读至CPU,为避免 在CPU的两次读出过程中出错,在进行读出操作前必须对 相应通道进行锁存,锁存的办法有两种: ① 利用GATE信号使计数过程暂停。 ② 向8253的控制口写入一个令通道锁存器锁存的控制字。 例:设三个计数器的CR/OL端口地址为70H、71H、72H, 控制寄存器端口地址73H。读出计数器0的当前计数值,放 在BX中
2012-8-9 13
CS
(2)读/写控制逻辑。 8253内部操作的控制部分。 它接收输入的信号. 实现片选、内部通道选 择(见表5-1)以及对相 关端口的读/写操作。 A1 A0 端口 0 0 1 0 1 0 通道0 通道1 通道2
1 1
2012-8-9
控制端口
14
(3) 控制字寄存器。在对8253进 行初始化编程时,该寄存器 存放由CPU写入的控制字, 由此控制字来决定所选中通 道的工作方式。此寄存器只 能写入不能读出。 (4) 计数器0,计数器1,计数器 2。 是三个独立的计数器/定时器通 道,各自可按不同的工作方 式工作。