【微机原理】8253
微机第9章8253
0 0----选计数器0
0 1----选计数器1 1 0----选计数器2 1 1----无意义
写入控制口,地址A1A0=11
2、计数初值的写入
若规定只写低8位,则写入的为计数值的低8位, 高8位自动置0; 若规定只写高8位,则写入的为计数值的高8位, 低8位自动置0; 若是16位计数值,则分两次写入,先写低8位, 再写入高8位。
计数值写入计数器各自的 计数通道(端口地址)
注: ① 写入控制字后,所有控制逻辑电路复位, 输出端OUT进入初始状态。 ② CPU向8253写入的计数初值,要在CLK端输入一个 正脉冲后才能被真正装入指定通道(若在此CLK下降 沿之前读计数器,则其值是不定的)。 之后再次输入时钟脉冲(CLK)才开始计数,且每次 在脉冲的下降沿减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计 数。
④ 当GATE变为低电平时计数 停止,再变为高电平时计数继 续进行。 ⑤若计数过程中重新送入初值, 则按新值重新计数。
(2)方式1——可重复触发单稳触发器
WR CLK GATE OUT 3 2 1 0 FFFE 3 2 方式1时序图 CW N=3
③计数过程中,再次给通道写入时间 ①写入CW后OUT变为高电平, GATE 常数,不影响现行操作过程,GATE再 上升沿触发后,OUT变为低并开始计数, 次触发后才按新的时间常数操作。 归零时OUT变为高电平。 ④计数过程中,GATE触发沿提前到来, ②GATE再来一次上升沿使OUT为低, 在下一个CLK的下降沿,计数器开始重 新计数,这将使输出单稳脉冲比原先 计数器以初值重新计数。 设定的计数值加宽。 可重复触发——当计数归零后,不用再次送计数值,只要给它触发脉冲,即 可产生一个同样宽度的单稳脉冲输出。
微机原理 可编程计数器定时器8253及应用
第八章 可编程计数器/定时器8253及应用 8-1 8253工作原理
一、8253的内部结构与引脚信号 二、8253的初始化编程
三、8253的工作方式
四、8253与系统的连接
8-2 8253的应用举例
一、8253定时功能举例 二、8253计数功能举例
1
第八章
定时/计数技术概述
计算机中常用到定时功能,如:动态RAM刷新、
第八章
二、8253的初始化编程
8253的初始化编程按顺序分两步完成:
1、写入控制字
2、写入计数初值
初始化编程的几点说明: 对3个计数通道的初始化编程没有先后顺序
若是16位数,必须用两条OUT指令来完成,且先送低8
位数据,后送高8位数据。 若计数初值为0时,要分成两次写入。0在二进制计数
18
第八章
8253方式3
4、方式3——方波发生器
时序图
计数初值为偶数时的波形
CW=16H WR CR=4 CLK GATE LSB=4
OUT
CRCE 4
CRCE 2
19
CRCE
2 4
CRCE 2 4
CRCE 2 4
4
第八章
8253方式3 计数初值为奇数时的波形
CW=16H WR
LSB=5 CR=5
CLK GATE
OUT CRCE 5 4 CRCE 2 5 CRCE CRCE 4 2 5
2
5
20
第八章
8253方式4
5、方式4——软件触发选通
时序图
CW=18H WR
LSB=2 CR=2
LSB=2 CR=2
CLK GATE OUT CRCE 2 1 CRCE 0 2 1 0 0
《微机原理与接口技术》第九章8253
二、8253的内部结构
数据总线 缓冲器 读/写控 制电路 计数通道
通道控制 寄存器
三、 8253的管脚分配
控制线
数据线 通道选择
通道管脚
四、 8253的编程
8253只有一个控制字,8253的一个方式 控制字只决定一个计数通道的工作模式。 8253 的控制字格式如图所示。共分为 4 部 分,通道选择、计数器读 / 写方式、工作 方式和计数码的选择。
第9章 可编程接口芯片
可编程接口概术 可编程定时/计数器接口芯片8253
可编程接口概术
一个简单的具有输入功能和输出功能的 可编程接口电路如下图,它包括一个输入接口, 其组成主要是八位的三态门;一个输出接口, 其组成主要是八位的锁存器;另外还有八位的 多路转换开关及控制这个开关的寄存器FF。
9. 1 可编程定时/计数器接口芯片8253 一、功能
定时和脉冲信号的处理与接口是完全有别于 并行信号的,其特点是信号形式简单但需要连 续检测,下面介绍的INTEL8253可编程定时/ 计数器就是可以实现所要求这方面功能。8253 内部有3个独立的16位定时/计数器通道。计 数器可按照二进制或十进制计数,计数和定时 范围可在1—65535之间改变,每个通道有6种 工作方式,计数频率可高达2MHz以上。
4、方式3——方波发生器 方式2虽然可以作分频电路,但其输出 是窄脉冲,如果是方波,就只有选方式3
5、方式4——软件触发方式 方式4在工作过程中有以下特点:
a、 门控信号GATE为高电平,计数器开始减 1计数,OUT维持高电平; b、 当计数器减到0,输出端OUT变低,再经 过一个 CLK 输入时钟周期, OUT 输出又变 高。
解:1、电路。 需要两个通道,一个作为计数,选用通道0。另一 个产生1KHz信号,选用通道1。工作原理如下,传感 器电路把物理事件转换为脉冲信号输入到通道0计数, 当记录10000个事件后,通道0计数器溢出,GATE端输 出高电平,这时通道1开始工作,产生1KHz信号推动喇 叭发音。
微机原理8253
OUT
1、 结构
8位双向三态。用于与CPU交换信息。 • 初始化时,CPU向其写入命令字等, 计数值; • CPU读取计数值。
计数器/ 数据总线 缓冲器
接收来自系统总线 的控制信号,以产 生控制整个芯片工 作的控制信号 计数器 0号 定时器通 道。 由16位的 可预置值 的减法计
读/ 写 逻辑
计数器 1号
数器构成。
初始化时,由CPU 写入控制字以决定 某通道的工作方式。
控制字 寄存器
计数器 2号
端口选择
8253有3个独立的计数器(计数通道),其内部结构完全 相同,如图3.3所示。 图3.3表示计数器由16位计数初值寄存器、减1计数器和当 前计数值锁存器组成。
8253无论作定时器用,还是作计数器用,其内部操 作完全相同,区别只在于前者是由计数脉冲(间隔不一 定相同)进行减1计数,而后者是由周期一定的时钟脉 冲作减1计数。作计数器用时,要求计数的次数可直接 作为计数初值预值到减1计数器;作定时器用时,计数 初值即定时系数应根据要求定时的时间和时钟脉冲周期 进行如下换算才能得到: 定时系数=要求定时的时间/时钟脉冲周期 计数初值与输入时钟(CLK)频率及输出波形(OUT) 频率之间的关系为 Ci= CLK/OUT 或 TC=CLK/OUT 利用关系式,可以计算出当给定CLK频率,要求所输出 的波形的频率为某值时的计数初值。
一、基本概念
一、定时/计数 在计算机系统、工业控制领域、乃至日常生活中,都存在定时、计 时和计数问题,尤其是计算机系统中的定时技术特别重要。 1.定时 定时和计时是最常见和最普遍的问题,一天24小时的许晓称为日时 钟。 2.计数 计数使用得更多。 3.定时与计数的关系 计时的本质就是计数,只不过这里的“数”的单位是时间单位。
微机原理-8253
MOV AL,0B5H; OUT 07H,AL; MOV AL,00H; OUT 06H,AL; MOV AL,05H; OUT 06H,AL;
精品资料
方式(fāngshì) 3 —— 方波发生器
• 方式3与方式2的工作类似,输出(shūchū)固定频率的 脉冲。 • 计数器具有“初值自动重装”的功能。 • 工作特点如下: • 当计数值为 偶数 时,则输出(shūchū)对称方波。 • 前 N/2 计数期间 输出(shūchū)高电平,即 OUT = 1; • 后 N / 2 计数期间输出(shūchū)低电平,即OUT = 0; • 当计数值为 奇数 时,前 (N+1) / 2 计数期间, • 输出(shūchū)高电平,即 OUT = 1, • 后(N-1) / 2 计数期间输出(shūchū)低电平,即 OUT = 0 。
精品资料
方式0 —— 工作(gōngzuò)方式的特点
1、写入控制字后,OUT= 0 为低电平,只有当 GATE = 1 时, CLK 端来一个计数脉冲,计数器才进行减一计数。 当计数值减为 0 时,计数全过程结束,计数器停止计数, OUT =1为高电平。
2、如果使计数器重新开始计数,需再次写入计数字值,当新计数值 写入后, OUT 端电平才能由高变低。
•
OUT =1 不变。
•
当计数值减为1 时,OUT = 0 ,经过一个 CLK时钟
•
周期后, 计数器自动启动,继续重复计数过程。
• OUT =0 的时间是一个 CLK 周期。
精品资料
方式(fāngshì)2 ——频率发生器
2、在计数过程中,可以改变计数值。如果在计数过程中, 重新写入某一计数值,在写入新计数值后,不影响正在 进行的计数过程,待计数过程完成后,在下一个计数过 程开始时,按新的计数值,重新开始作减一计数。
微机原理-8253
8253工作方式特点: 8253工作方式特点: 工作方式特点
方式0 在写入控制字后,输出端即变低,计数结束后, 方式0,在写入控制字后,输出端即变低,计数结束后,输 出端由低变高,常用该输出信号作为中断源。 出端由低变高,常用该输出信号作为中断源。 方式1 用来产生单脉冲。 方式1,用来产生单脉冲。 方式2 用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲 方式2,用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲 CLK 的周期相同。 的周期相同。 方式3 用来产生连续的方波。方式2和方式3 方式3,用来产生连续的方波。方式2和方式3都实现对时钟 脉冲进行n分频。 脉冲进行n分频。 方式4和方式5 波形相同,都在计数器回0 方式4和方式5的波形相同,都在计数器回0后,从OUT端输出 OUT端输出 一个负脉冲,其宽度等于一个时钟周期。 一个负脉冲,其宽度等于一个时钟周期。 方式0 方式0、1和4,计数初值装进计数器后,仅一次有效。方式2,3 计数初值装进计数器后,仅一次有效。方式2 在减1计数到0值后,8253会自动将计数值重装进计数器 会自动将计数值重装进计数器。 和5,在减1计数到0值后,8253会自动将计数值重装进计数器。
可编程定时器/计数器8253
8253可编程定时器 计数器的主要性能: 可编程定时器/计数器的主要性能 可编程定时器 计数器的主要性能: 个独立的16位计数器 有3个独立的 位计数器 个独立的 工作方式可编程控制 计数脉冲频率0~2MHz 计数脉冲频率 可以按二进制或BCD码计数 可以按二进制或BCD码计数 使用单一+5V电源 电源 使用单一
方式2:频率发生器(n分频器)
CLK
WR
GATE OUT
n=4
4
3 2
1 0 4 3
微机原理课_8253
8.1 概述
1、应用场合
在微机系统中,要求对外部信号进行计数 或要求对时间进行精确定时----计数/定时器. 计数由外部脉冲信号提供,当达到设定的计数 值时,输出一个电平信号,告知外部设备已经计 满。定时时间基准由8086内部时钟源提供,经 定时钟分频后得到所需的时间信号,当定时时 间到后也输出一个电平信号,告知外部设备定 时时间到。
8253初始化编程要求
1、8253三个端口有各自独立的地址,控制字分别对
各端口的工作方式进行设置。 2、对某一个端口设置初值时,先设置控制字 3、设置初值时,要符合D5、D4的规定,分别输入计 数值。(16位计数值要用两条指令写入计数值) 4、锁存(D5D4=00)的目的是:在CPU读取计数值前 先用锁存命令锁存减1计数器的当前值,否则得不到 正确的结果,CPU取走数据后,锁存功能自动失锁 5、编程顺序:先写入控制字到控制寄存器,然后写 入计数初值到所确定的计数器端口!!!
2、定时与计数的三种方式
1) 软件定时: 利用 CPU 每执行一条指令都需要几个固定的 指令周期的原理,因此执行一个程序段就需要一 定的时间,运用软件编程的方式,通过改变指令 执行的循环次数就可以控制定时时间,由于它占 用了CPU,因而降低了CPU的利用率。 例: MOV CX,1000H DEALY: MOV BX,1000H LOOP DEALY
15 14 13
CLK1 GATE 1 OUT1
计数器
微机原理与接口技术_第7章8253
§7-1 8253的工作原理 ——8253的内部结构和引脚信号
然后,开始递减计数。即每输入一个时钟脉冲,计数
器的值减1,当计数器的值减为0时,便从OUT引脚输出 一个信号。输出信号的波形主要由工作方式决定,同 时还受到从外部加到GATE引脚上的门控信号控制,它 决定是否允许计数。 当用8253作外部事件计数器时,在CLK脚上所加的计 数脉冲是由外部事件产生的,这些脉冲的间隔可以是 不相等的。 如果要用它作定时器,则CLK引脚上应输入精确的时 钟脉冲。这时,8253所能实现的定时时间,决定于计 数脉冲的频率和计数器的初值,即 定时时间=时钟脉冲周期tc×预臵的计数初值n
16
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 ③引脚 8253的3个计数器都各有3个引脚,它们是:
CLK0~CLK2:计数器0~2的输入时钟脉冲从这里输
入。频率不能大于2MHz。
OUT0~OUT2:计数器0~2的输出端。
GATE0~GATE2:计数器0~2的门控脉冲输入端。
4
第七章 可编程计数器/定时器8253及其应用 ——概述 2. 不可编程的硬件定时 555芯片是一种常用的不可编程器件,加上外接电阻和电 容就能构成定时电路。这种定时电路结构简单,价格 便宜,通过改变电阻或电容值,可以在一定的定时范 围内改变定时时间。但这种电路在硬件已连接好的情 况下,定时时间和范围就不能由程序来控制和改变, 而且定时精度也不高。 3. 可编程的硬件定时 ①可编程定时器/计数器电路利用硬件电路和中断 方法控制定时,定时时间和范围完全由软件来确 定和改变,并由微处理器的时钟信号提供时间基 准,这种时钟信号由晶体振荡器产生,故计时精
12
§7-1 8253的工作原理 ——8253的内部结构和引脚信号 8253输入信号组合的功能表
河北专接本微机原理8253工作方式
河北专接本微机原理8253工作方式8253是一种三个定时/计数器的可编程计时器/计数器,主要用于计时、计数、频率测量等应用。
它的工作方式如下:
1.设置8253的计数模式:该模式确定计数器如何工作,如定时器模式、计数器模式、PWM模式等。
2.设置计数器初值:当计数器启动时,它会从预设的初值开始计数,计数值将减少或增大移位寄存器的值。
3.计数器工作:当8253启动计数器时,计数器会开始计数,直到计数器的值达到初始值。
在定时器模式下,计数器的值减少到0时会产生一个中断请求信号。
4.处理计数器的中断请求信号:当计数器的值减少到0时,它会发出一个中断请求信号,CPU会在下一次中断请求事件时响应,并执行中断服务程序。
5.重新设置计数器初值并继续工作:当计数器计数完毕后,可以重新设置计数器的初始值,并将其重新启动,以进行下一轮计数。
总之,8253的工作方式可以通过选择计数模式、设置计数器初值、处理中断请求、重新设置计数器来实现。
微机原理第七章 计数器定时器8253
三、Intel 8253
1. 芯片引腿 2. 编程结构 3. 结构组成 4. 控制寄存器格式 5. 编程命令 6. 工作模式
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0
GATE0 GND
1
24
2
23
3
22
4
21
8253 5
20
6
19
7
18
8
17
9
16
10
15
11
14
12
13
D0---BCD位,用来设置装入CR计数值的格式。 0——计数值为二进制格式 1——计数值为BCD码格式
一作为计数器,在设置好计数初值后,便开 始减1计数,减到“0”时,输出一个信号;
二作为定时器,在设置好定时常数后,便进 行减1计数,并按定时常数不断地输出 为时 钟周期整数倍的定时间隔。
计数器与定时器的差别在于:计数器计 数到零时便输出一个信号并结束;而定时器 会不断地产生信号。
计数器与定时器的共同点在于: 它们的工作过程没有根本区别,都是基于
3. 结构组成
D7~D0
数据总线 缓冲器
计数器 0
CKL0 GATE0 OUT0
RD
CKL1
WR A0
读/写控制逻 辑电路
A1
内 部 总
计数器 1
GATE1 OUT1
CS
线
控制 寄存器
计数器 2
CKL2 GATE2 OUT2
8253的芯片引脚及结构组成
① 计数器0,计数器1,计数器2 ② 数据总线缓冲器
功能: 往控制寄存器设置控制字 往计数器设置初值 从计数器读取计数值 ③控制寄存器 ④读/写逻辑电路
微机原理8253
• 简述8253芯片的几种工作方式。若时钟频率2MHz,端口 地址为40H~43H,编写程序段使计数器2产生一个1KHz方 波。 • 8253芯片有6种工作方式,分别是方式0(计数结束中断)、 方式1 (复触发的单稳态触发器)、方式2(频率发生器)、方 式3(方波发生器)、方式4(软件触发选通)和方式5(硬件触 发选通)。 • 计数器2的计数值为 • 2MHz/1KHz=2000 • MOV DX, 43H ;选择控制寄存器端口 • MOV AL, B6H ;控制字也可为0BCH • OUT DX, AL ;写控制字 • MOV DX, 42H ;选择计数器2的端口 • MOV AL, D0H • OUT DX, AL ;写入计数初值的低8位 • MOV AL, 07H • OUT DX, AL ;写入计数初值的高8位
自8255 PB1
A2 A74043HCSCLK02
CLK1
PC_CLK
CLK2
• 答案: • 8253芯片有6种工作方式,分别是方式0(计数结束中断)、 方式1 (复触发的单稳态触发器)、方式2(频率发生器)、方 式3(方波发生器)、方式4(软件触发选通)和方式5(硬件触 发选通)。 • 计数器2的计数值为 1.19MHz/1KHz = 1190 • MOV AL,0B6H ;控制字也可为 0BCH • OUT 43H,AL ;写控制字 • MOV AX,1190 • OUT 42H,AL ;写计数器初始值 低8位 • MOV AL,AH • OUT 42H,AL ;写入计数初始值 的高8位 • IN AL, 61H • MOV AH, AL • OR AL, 03H • OUT 61H, AL
简述8253芯片的几种工作方式。 若时钟频率2×1.19MHz,8253端 口地址范围为40H~43H,8255的 端口地址范围为60H~63H,编写 程序段使计数器2产生一个1KHz 方波并设计硬件电路。
第7章8253微机原理及应用
(MODE 3) CLOCK
4 3 2 1 0(4) 3 2 1 0(4) 3 2 1 0
OUTPUT
n=4
n=4
n=3
OUTPUT 0(5) 4 3 2 1 0(5) 4 3 2 1 0(5) n=5
OUTPUT n=4
4 3 2 1 0(4) 3 2 1 0
GATE (RESET)
– 选通输入(门控输入)GATE——用于启动或禁止计数器的 操作,以使计数器 和计测对象同步。
• 每个计数器中有四个寄存器;
– ①控制寄存器——初始化时,将控制字寄存器 中的内容写 入该寄存器;
– ②计数初值寄存器——初始化时写入该计数器的初始 值;
– ③减法计数寄存器——计数初值由计数初值寄存器送人减 法计数寄存器,当 计数输入端输入一个计数脉冲时,减法 计数寄存器内容减1,当减到零时,输出 端输出相应信号表 示计数结束。
方式4—软件触发选通(启动计数原理类似于方式0)
• 在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为 低则变为高)。当写入计数值后立即开始计数(相当于软件启动),当 计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停 止计数。这种方式计数也是一次性的,只有在输入新的计数值后,才能 开始新的计数。
– (4)每个计数器有6种工作方式,可由程序 设置和改变。
– (5)所有的输入输出引脚电平都与TTL电平 兼容。
8253的结构和引脚
• 三个计数器中每一个都有三条信号线;
– 计数输入CLK——用于输入定时基准脉冲或计数脉冲;
– 输出信号OUT——以相应的电平指示计数的完成,或输 出脉冲波形; ·
二、8253在IBM-PC/XT机中的应用
8253微机原理
00010000
特点: 1. 计数器只计一遍。当计数到 0 时,并不恢复计数初值,不开始重新 计数,且输出一直保持为高。只有在写入下一个计数值时,OUT 变低,开始新的计数。
特点: 2. 在计数过程中,可由门控信号GATE控制暂停。GATE=0, 计数暂停, GATE变高后,接着计数。
特点: 3. 在计数过程中,可改变计数值。在写入新的计数之后,计数器按新 的值重新开始计数。
开始计数),OUT输出端变低。在整个计数过程中,OUT 都维持为低,直到计数 为 0 时,输出变为高,输出一个单脉冲。
特点: 1. 若设置的计数值为N,则输出的单脉冲宽度即为N个输入脉冲间隔。 2. 当计数到 0 后,可再次由外部触发启动,输出一个同样宽度的 单拍脉冲,而不用再次送计数值。
特点: 3. 在计数过程中,外部可发门控信号进行再触发,在触发脉冲上升沿 后的下一个CLK脉冲的下降沿,计数器将重新开始工作。
0
0 1
1
1 ×
0
0 ×
1
1 ×
0
1 ×
8253的控制字
◆ 8253控制字可以选择计数器、工作方式、计数数制( 2#或 10#——BCD码),以及计数器的读/写方法等。 ◆ 8253控制字格式(8位) :
D7 SC1 D6 SC0 D5 RW1 D4 RW0 D3 M2 D2 M1 D1 M0 D0 BCD
8253操作的控制逻辑
CS 0 0 0 0 0 0 RD 0 0 0 0 1 1 WR 1 1 1 1 0 0 A1 0 0 1 1 0 0 A0 0 1 0 1 0 1 操作说明
计数器0→数据总线 计数器1→数据总线 计数器2→数据总线 非法状态 数据总线→计数器0 数据总线→计数器1 数据总线→计数器2 数据总线→控制寄存器 D7~D0呈高阻状态
微机原理_定时计数器8253
D6 SC0
D5 RL1
D4 RL0
D3 M2
D2 M1
D1 M0
D0 BCD
SC1 SC0 :选择计数器(0#,1#,2#) M2M1M0:设置工作方式(0~5) RL1 RL0 00 01 10 11 设置计数值格式 当前计数值锁存到输出缓冲器 写 / 读计数值的低8位 写 / 读计数值的高8位 写 / 读计数值的16位(先低8位,后高8位)
8253内部有 个完全相同、又相互独立的16位减法 8253内部有3个完全相同、又相互独立的16位减法 内部有3 计数器。 计数器。 可以用二进制或十进制计数。 可以用二进制或十进制计数。 工作方式和计数常数编程设置。 工作方式和计数常数编程设置。
一、内部结构
8253定时 8253定时/计数器的工作原理 定时/ 定时/ 计数器的核心部件为可预置初值计数器。 定时 / 计数器的核心部件为可预置初值计数器 。 预置初值后开始计数, CLK信号每输入一个脉冲 信号每输入一个脉冲, 预置初值后开始计数 , CLK 信号每输入一个脉冲 , 计数值减1 一直减到0 并且OUT OUT脚同时产生相应 计数值减 1 , 一直减到 0 , 并且 OUT 脚同时产生相应 输出信号,该信号可用作中断请求。 输出信号,该信号可用作中断请求。
要注意定时器 的容量即位数
GATE门控 门控 信号 计数脉冲 可预置初值计数器
CLK 输入
OUT 输出
计数初值
说明: 说明: 1、每个计数器各有三根I/O线 每个计数器各有三根I/O线 CLK: CLK:时钟信号输入 OUT: OUT:计数器输出 GATE:门控信号, GATE:门控信号,用于启动或允许计数器工作 2、通过对控制寄存器写操作,来设置工作方式。 通过对控制寄存器写操作,来设置工作方式。 3、有A1A0两条地址线,在PC机中的端口地址是40H~43H。 两条地址线, PC机中的端口地址是 H~43H。 机中的端口地址是40 A1 A0 端口 定义 0 0 40H 40H 0#计数器 0#计数器 0 1 41H 41H 1#计数器 1#计数器 1 0 42H 42H 2#计数器 2#计数器 1 1 43H 43H 控制寄存器
微机原理硬件实验三:8253计数器_定时器的应用
DATA SEGMENT_8NOTE EQU0FFFH;定义八分音符的延时时长(计数)_4NOTE=_8NOTE*2;四分音符_4DNOTE=_4NOTE+_8NOTE ;四分附点音符_2NOTE=_4NOTE*2;二分音符_2DNOTE=_2NOTE+_4NOTE ;二分附点音符_1NOTE=_2NOTE*2;全音符PAUS=04FFH;每个音之间的小间隔CLK EQU32000;时钟频率;B3~C5音所对应的计数初值,由时钟频率/音频率得到B3=CLK/247C4=CLK/262D4=CLK/294E4=CLK/330F4=CLK/349G4=CLK/392A4=CLK/440B4=CLK/494C5=CLK/523;低音XI到高音DO的数码管显示码XI_=63HDO=21HRE=0F4HMI=0F1HFA=39HSO=0D9HLA=0DDHXI=61HDO_P=23HEMPT=10H;休止符-;《送别》音高谱MUSIC DB G4,E4,G4,C5 ,A4,C5,G4 ,G4,C4,D4,E4,D4,C4,D4 ,1;1为无声,休止DB G4,E4,G4,C5 ,B4,A4,C5,G4 ,G4 ,D4,E4,F4,B3,C4 ,1COUNT EQU$-MUSIC;《送别》简谱(数字显示)MUSIC_DISP DB SO,MI,SO,DO_P ,LA,DO_P,SO ,SO,DO,RE,MI,RE,DO,RE ,EMPT DB SO,MI,SO,DO_P ,XI,LA,DO_P,SO ,SO,RE,MI,FA ,XI_,DO ,EMPT;《送别》音长谱MUSIC_T DW _4NOTE,_8NOTE,_8NOTE,_2NOTE,_4NOTE,_4NOTE,_2NOTE DW _4NOTE,_8NOTE,_8NOTE,_4NOTE,_8NOTE,_8NOTE,_2DNOTE,_4NOTEDW _4NOTE,_8NOTE,_8NOTE,_4DNOTE,_8NOTE,_4NOTE,_4NOTE,_2NOTEDW _4NOTE,_8NOTE,_8NOTE,_4DNOTE,_8NOTE,_1NOTE,_2NOTEDATA ENDSSTACK SEGMENT STACK 'STACK'DB200DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKDELAY PROC FAR;延时子程序,时长由DS:[BP]的数据(音长谱)决定PUSHFPUSH CXMOV CX,DS:[BP]LOOP1:PUSH CXMOV CX,_4NOTELOOP2:LOOP LOOP2POP CXLOOP LOOP1POP CXPOPFRETFDELAY ENDPDELAY0 PROC FAR;小间断延时子程序PUSHFPUSH CXMOV DX,0EE23H;重置8253,即停止发音MOV AL,00010110BOUT DX,ALMOV CX,PAUSLOOP3:PUSH CXMOV CX,PAUSLOOP4:LOOP LOOP4POP CXLOOP LOOP3POP CXPOPFRETFDELAY0 ENDPPLAY PROC FAR;播放单音子程序MOV DX,0EE20HMOV AL,DS:[SI];输出DS:[SI](音高谱)作为计数初值OUT DX,ALMOV DX,0EE00HMOV AL,DS:[SI+COUNT];输出对应的数字码,在数码管1位上显示OUT DX,ALRETFPLAY ENDPSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXXOR AX,AXMOV DX,0EE23H;初始化8253MOV AL,00010110B;方式3,二进制计数,分频比小于255OUT DX,ALMOV DX,0EE03H;初始化8255,A,B口均为方式0输出MOV AL,80HOUT DX,ALMOV DX,0EE01H;数码管位选,固定为只有最右边的数码管显示MOV AL,01HOUT DX,ALMOV DX,0EE00H;显示清空MOV AL,00HOUT DX,ALMUS:;Music Start!MOV SI,OFFSET MUSIC ;SI指向音高数据MOV BP,OFFSET MUSIC_T ;BP指向音长数据MOV CX,COUNTRUN:CALL PLAY ;输出计数值播放单音,显示对应的数字CALL DELAY ;延时相应的时长CALL DELAY0 ;小间隔INC SI;SI、BP指向下一个音符ADD BP,2MOV AH,0BH;检测键盘输入INT21HOR AL,AL;按任意键退出JNZ EXITLOOP RUN ;否则继续循环播放JMP MUSEXIT:MOV DX,0EE23H;重置8253MOV AL,00010110BOUT DX,ALMOV AH,4CH;退出INT21HCODE ENDSEND START。
微机原理与接口技术第九章8253
功 能 向CNT 0写入计数初值 读取CNT 0的当前计数值 向CNT 1写入计数初值
0
0 0 0 0
1
0 1 0 1
0
1 0 1 0
0 1
1 0 1 0 1 1 1 1
读取CNT 1的当前计数值
向CNT 2写入计数初值 读取CNT 2的当前计数值 写入控制字
0
1
1
×
1
×
× ×
× ×
数据引脚D7 ~ D0呈高阻
N为奇数,CR内容先减1,再装入CE中, 其他同前(近似方波)
35
(6)工作方式3—方波发生器
CW=16h WR LSB=4
CLK GATE
OUT CE
N
N
N
4
2
4
2
4
2
4
2
4
2
36
(6)工作方式3—方波发生器
CW=16 WR LSB=5
CLK
GATE OUT CE
N
N
N
5
4
2
4
2
5
4
2
4
2
37
65536×55ms = 3600s
计数器1
18÷1.19MHz = 15.08μs
计数器2
1.19MHz÷1331 = 896Hz,驱动后送给扬声器
47
8253端口地址为40H ~ 43H
MOV OUT MOV OUT OUT MOV OUT MOV OUT AL,00110110B ;计数器0初始化 43H,AL ;双字节读写,方式3,二进制 AL,0 40H,AL ;写入低字节 40H,AL ;写入高字节 AL,01010100B ;计数器1初始化 43H,AL ;只读写低字节,方式2,二进制 AL,18 41H,AL ;写入低字节
【微机原理】8253
11、设8253的地址为40~43H ,CLK 输入频率为2.19MHz 。
编写一个程序,使8253芯片通道2工作在方式2,产生1KHz 的定时触发信号。
请给出有关参数的计算过程。
★计数初值(Tc )与输入时钟频率(fCLK )及输出波形频率(fOUT )之间的关系为: Tc= fCLK / fOUT★时间常数=2.19M/1K=2190 。
★根据题目要求,工作方式控制字应为10110100=0B4H 。
通道2的地址为42H 。
参考程序:MOV AL ,0B4HOUT 43H ,AL ;8253初始化MOV AX ,2190OUT 42H ,AL ;输出时间常数MOV AL ,AHOUT 42H ,ALHLT2、设8253的地址为60~63H ,CLK 输入频率为1.19MHz 。
编写一个程序,使8253芯片通道2工作在方式3,产生600Hz的方波信号。
请给出有关参数的计算过程。
★时间常数=1.19M/600=1983 。
根据题目要求,工作方式控制字应为10110110=0B6H。
通道2的地址为62H。
★参考程序:MOV AL,0B6HOUT 63H,AL ;8253初始化MOV AX,1983OUT 62H,AL ;输出时间常数MOV AL,AHOUT 62H,ALHLT3.若8253A中GATE1为高,CLK1的输入是1000Hz的连续输入脉冲,问:⑴要求设置计数初值后,计数器开始计数,当计数为0时,OUT1输出一个输入脉冲周期的负脉冲,此计数器的工作方式是什么方式?⑵若要求每1秒钟输出一个信号,计数初值应为多少?⑶此OUT1信号是否可以作为CPU的中断请求信号?①计数器1的工作方式为方式4②Tc=f CLK/f OUT=1000③此OUT1 信号不能作为CPU 的中断请求信号。
4.某微机系统中8253A占用地址为100H~103H。
初始化程序如下:2MOV DX,103HMOV AL,16HOUT DX,ALSUB DX,3OUT DX,AL试问⑴此段程序是给8253的哪一个计数器初始化?安排工作在哪种工作方式?⑵若该计数器的输入脉冲的频率为1MHZ,则其输出脉冲的频率为多少?⑴此段程序是给8253计数器0初始化,工作在工作方式3⑵45.45KHZ5、某微机系统中8253A中的端口地址为40H~43H。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
1、设8253的地址为40~43H ,CLK 输入频率为2.19MHz 。
编写一个程序,使8253芯片通道2工作在方式2,产生1KHz 的定时触发信号。
请给出有关参数的计算过程。
★计数初值(Tc )与输入时钟频率(fCLK )及输出波形频率(fOUT )之间的关系为: Tc= fCLK / fOUT
★时间常数=2.19M/1K=2190 。
★根据题目要求,工作方式控制字应为10110100=0B4H 。
通道2的地址为42H 。
参考程序:
MOV AL ,0B4H
OUT 43H ,AL ;8253初始化
MOV AX ,2190
OUT 42H ,AL ;输出时间常数
MOV AL ,AH
OUT 42H ,AL
HLT
2、设8253的地址为60~63H ,CLK 输入频率为1.19MHz 。
编写一个程序,使8253
芯
片通道2工作在方式3,产生600Hz的方波信号。
请给出有关参数的计算过程。
★时间常数=1.19M/600=1983 。
根据题目要求,工作方式控制字应为10110110=0B6H。
通道2的地址为62H。
★参考程序:
MOV AL,0B6H
OUT 63H,AL ;8253初始化
MOV AX,1983
OUT 62H,AL ;输出时间常数
MOV AL,AH
OUT 62H,AL
HLT
3.若8253A中GATE1为高,CLK1的输入是1000Hz的连续输入脉冲,问:
⑴要求设置计数初值后,计数器开始计数,当计数为0时,OUT1输出一个输入脉冲周期的负脉冲,此计数器的工作方式是什么方式?
⑵若要求每1秒钟输出一个信号,计数初值应为多少?
⑶此OUT1信号是否可以作为CPU的中断请求信号?
①计数器1的工作方式为方式4
②Tc=f CLK/f OUT=1000
③此OUT1 信号不能作为CPU 的中断请求信号。
4.某微机系统中8253A占用地址为100H~103H。
初始化程序如下:
2
MOV DX,103H
MOV AL,16H
OUT DX,AL
SUB DX,3
OUT DX,AL
试问
⑴此段程序是给8253的哪一个计数器初始化?安排工作在哪种工作方式?
⑵若该计数器的输入脉冲的频率为1MHZ,则其输出脉冲的频率为多少?
⑴此段程序是给8253计数器0初始化,工作在工作方式3
⑵45.45KHZ
5、某微机系统中8253A中的端口地址为40H~43H。
初始化程序如下:
MOV AL,36H
OUT 43H,AL
MOV AX,20000
MOV 40H,AL
MOV AL,AH
MOV 40H,AL
试问:⑴此段程序是给8253A的哪一个计数器初始化?安排工作在哪种工作方式?
⑵若该计数器的输入脉冲的频率为1MHZ,则其输出脉冲的宽度为多少?
⑴此段程序是给8253计数器0初始化,工作在工作方式3
⑵方波频率= 1MHZ /20000=50HZ,方波周期=1/50=20ms
3。