第三章 可编程定时器 8253

45
第第第 第第第第第第 第第第 第第第第第第 8253 8253 3.1 8253 3.1 8253 的的的的的 的的的的的 3.2 8253 3.2 8253 的的的的的 的的的的的

Upload: roary-spence

Post on 03-Jan-2016

119 views

Category:

Documents


1 download

DESCRIPTION

第三章 可编程定时器 8253. 3.1 8253 的工作原理 3.2 8253 的应用举例. 3.1 8253 的工作原理. 一、 8253 的内部结构和引脚信号 二、初试化编程和门控信号的功能 三、 8253 的工作方式. 一、 8253 的内部结构和引脚信号. 功能: 可编程的定时 / 计数器 内部有 3 个 16 位功能相同独立计数器通道 每个计数器可工作在 6 种方式 计数频率 8253 ( 2MHZ ), 8254 ( 5MHZ ). 内部结构. 数据总线缓冲器. CLK0 GATE0 OUT0. 通道 0. D0~D7. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第三章 可编程定时器 8253

第三章 可编程定时器第三章 可编程定时器 82538253• 3.1 82533.1 8253 的工作原理的工作原理• 3.2 82533.2 8253 的应用举例的应用举例

Page 2: 第三章 可编程定时器 8253

3.1 82533.1 8253 的工作原理的工作原理一、一、 82538253 的内部结构和引脚信号的内部结构和引脚信号二、初试化编程和门控信号的功能二、初试化编程和门控信号的功能三、三、 82538253 的工作方式的工作方式

Page 3: 第三章 可编程定时器 8253

一、一、 82538253 的内部结构和引脚信号的内部结构和引脚信号

• 功能:功能:可编程的定时可编程的定时 // 计数器计数器内部有内部有 33 个个 1616 位功能相同独立计数器通道位功能相同独立计数器通道每个计数器可工作在每个计数器可工作在 66 种方式种方式计数频率计数频率 82538253 (( 2MHZ2MHZ ),), 82548254 (( 5MHZ5MHZ ))

Page 4: 第三章 可编程定时器 8253

• 内部结构内部结构

数据总线缓冲器

读 / 写 控制 电路

控制字寄存器

通道0

通道1

通道 2

CLK0 GATE0 OUT0

CLK1 GATE1 OUT1

CLK2 GATE2 OUT2

D0~D7

RD WR A0 A1 CS

内部总线

Page 5: 第三章 可编程定时器 8253

数据总线缓冲器:用于数据总线缓冲器:用于 82538253 和和 CPUCPU 传送数据信传送数据信息息

信息有:信息有: CPUCPU 向向 82538253 写入的控制字写入的控制字 CPUCPU 向向 82538253 写入的计数初值写入的计数初值 从计数器读出的计数值从计数器读出的计数值

Page 6: 第三章 可编程定时器 8253

读读 // 写控制逻辑:用于接受写控制逻辑:用于接受 CPUCPU 送来的控制信号送来的控制信号CSCS 片选信号,低电平有效,表示片选信号,低电平有效,表示 82538253 被选中。被选中。RDRD 读信号,低电平有效读信号,低电平有效 ,, 表示表示 CPUCPU 正在读取选定正在读取选定的计数器通道中的内容。的计数器通道中的内容。WRWR 写信号,低电平有效,表示写信号,低电平有效,表示 CPUCPU 正在将计数初正在将计数初值写入指定的通道或将控制字写入控制字寄存器。值写入指定的通道或将控制字写入控制字寄存器。A1A0 A1A0 端口选择信号,用于选择端口选择信号,用于选择 82538253 内部内部 33 个计个计

数器数器通道和控制字。通道和控制字。

Page 7: 第三章 可编程定时器 8253

计数器计数器 0~20~2

控制 寄存器

计数初值 寄存器

输出 锁存器

状态 锁存器

计数工作单元

控制逻辑

CLK GATE OUT

定时时间 = 时钟脉冲周期 * 预置计数初值 N

Page 8: 第三章 可编程定时器 8253

控制字寄存器:是一种只写寄存器,由控制字寄存器:是一种只写寄存器,由 CPUCPU 向它向它写入控制字,规定各计数器通道工作方式,读写写入控制字,规定各计数器通道工作方式,读写格式、计数进制。格式、计数进制。

SC1 SC0 RL1 RL0 M2 M1 M0 BCD 1 BCD 码计数

0 2 进制计数000 方式0 001 方式 1 X10 方式 2 X11 方式 3 100 方式 4 101 方式 5

00 通道 0 01 通道 1 10 通道 2

00 计数器锁存,供 CPU 读取 01 只读 / 写计数器低字节 10 只读 / 写计数器高字节 11 先读 / 写低字节, 再读 / 写低字节

Page 9: 第三章 可编程定时器 8253

二、初试化编程和门控信号的功能二、初试化编程和门控信号的功能

• 82538253 的初始化编程步骤的初始化编程步骤** 写入控制字写入控制字** 写入计数初值写入计数初值

Page 10: 第三章 可编程定时器 8253

假如某微机系统,假如某微机系统, 82538253 的的 33 个计数器的端口分别个计数器的端口分别为为 3F0H3F0H ,, 3F2H3F2H ,, 3F4H3F4H ,控制字的端口地址为,控制字的端口地址为3F6H3F6H ,要求,要求 82538253 的通道的通道 00 工作于方式工作于方式 33 ,写入计,写入计数初值数初值 1234H1234H MOV ALMOV AL ,, 00110111B00110111B MOV DXMOV DX ,, 3F6H3F6H OUT DXOUT DX ,, ALAL MOV ALMOV AL ,, 34H34H MOV DXMOV DX ,, 3F0H3F0H OUT DXOUT DX ,, ALAL MOV ALMOV AL ,, 12H12H OUT DXOUT DX ,, ALAL

Page 11: 第三章 可编程定时器 8253

• 门控信号控制功能门控信号控制功能工作方式 GATE 为低电平或下降沿 GATE 上升沿 GATE 高电平

方式 0 禁止计数 —— 允许计数 从初值开始计数, 方式 1 —— 下一个时钟输出 —— 变为低电平 方式 2 禁止计数,输出变高 从初值开始计数 允许计数 方式 3 禁止计数,输出变高 从初值开始计数 允许计数 方式 4 禁止计数 —— 允许计数 方式 5 —— 从初值开始计数 ——

Page 12: 第三章 可编程定时器 8253

三、三、 82538253 的工作方式的工作方式• 方式方式 0——0—— 计数结束中断方式计数结束中断方式写入方式字后,写入方式字后, OUTOUT 信号变低,写入计数初值后,下一个信号变低,写入计数初值后,下一个脉冲开始计数,计到终点(脉冲开始计数,计到终点( 00 ),), OUTOUT 信号变高(作为中信号变高(作为中

断断请求信号)。计数过程中,请求信号)。计数过程中, GATEGATE 信号为高电平信号为高电平

4 3 2 1 0

n=4

m=3

3 2 1 0

CLK

WRn

OUT

WRmGATE

OUT

Page 13: 第三章 可编程定时器 8253

• 方式方式 1——1—— 可编程单稳态输出方式可编程单稳态输出方式写入控制字后,写入控制字后, OUTOUT 信号立即变高,写入计数值后,不立信号立即变高,写入计数值后,不立即计数,由即计数,由 GATEGATE 门低到高触发,并在下一 脉冲的下降沿门低到高触发,并在下一 脉冲的下降沿开始计数,同时开始计数,同时 OUTOUT 信号由高变低,计到信号由高变低,计到 00 ,, OUTOUT 由低变由低变

高高

4 3 2 1 0

4 3 2 4 3 2 1 0

CLK

WRn n=4GATEOUT

GATE

OUT

Page 14: 第三章 可编程定时器 8253

• 方式方式 2——2—— 比率发生器比率发生器写入控制字后,写入控制字后, OUTOUT 变高,写入计数值后下一个脉冲,开变高,写入计数值后下一个脉冲,开

始始计数,计到计数,计到 11 ,, OUTOUT 变低,计到变低,计到 00 ,, OUTOUT 变高(变高( OUTOUT 输输

出一出一个时钟宽度负脉冲),周而复始。个时钟宽度负脉冲),周而复始。

4 3 2 1 0(4) 3 2 1 0OUT(n=4)

3 2 1 0(3) 2 1 0(3)

GATE

OUT(n=3)

CLKWRn

计数过程中 GATE 为高,为低时停止计数,低到高时重新计数

0(3)

Page 15: 第三章 可编程定时器 8253

• 方式方式 3——3—— 方波发生器方波发生器写入控制字后,写入控制字后, OUTOUT 变高,写入计数值后下一个脉冲,开变高,写入计数值后下一个脉冲,开

始始计数,计数, OUTOUT 输出是对称的方波或基本对称的矩形波。输出是对称的方波或基本对称的矩形波。

CLK

OUT(4)

OUT(5) 5 4 2 5 2 5 4 2 5 2 5

4 2 4 2 4 2 4 2 4 2 4 2

计数过程中 GATE 为高,为低时停止计数,低到高时重新计数

Page 16: 第三章 可编程定时器 8253

• 方式方式 4——4—— 软件触发选通软件触发选通写入控制字后,写入控制字后, OUTOUT 信号变高,写入计数值后,下一个脉信号变高,写入计数值后,下一个脉冲开始计数,计到冲开始计数,计到 00 ,, OUT OUT 信号变低,经过一个时钟周信号变低,经过一个时钟周

期,期,回到高电平(回到高电平( OUTOUT 形成一个负脉冲)形成一个负脉冲)

4 3 2 1 0

4 3 2 1 04

CLKWROUT

WR

GATE

OUT

计数过程中 GATE 为高,为低时停止计数,低到高时继续计数

Page 17: 第三章 可编程定时器 8253

• 方式方式 5——5—— 硬件触发方式硬件触发方式写入控制字后,写入控制字后, OUTOUT 信号变高,写入计数脉冲,不立即计信号变高,写入计数脉冲,不立即计数,由数,由 GATEGATE 门低到高触发,并在下一 脉冲的下降沿开始计门低到高触发,并在下一 脉冲的下降沿开始计数,数, OUTOUT 信号为计数值计到信号为计数值计到 00 时,产生一个时钟宽度负脉时,产生一个时钟宽度负脉

冲冲

4 3 2 1 0

4 3 2 1 0 4

CLK

GATE

OUT(4)

GATEOUT(4)

Page 18: 第三章 可编程定时器 8253

• 启动方式不同启动方式不同• OUTOUT 波形输出不同波形输出不同• GATEGATE 门控制不同门控制不同

Page 19: 第三章 可编程定时器 8253

3.2 82533.2 8253 的应用举例的应用举例8253 8253 的典型应用:的典型应用:1.1. 用用 82538253 产生各种定时波形产生各种定时波形2.2. 计时器计时器 -------- 时钟时钟3.3. 实现稳定延时实现稳定延时4.4. 和扬声器一起构成发生器和扬声器一起构成发生器5.5. 波特率时钟发生器波特率时钟发生器

Page 20: 第三章 可编程定时器 8253

1.1. 用用 82538253 产生各种定时波形产生各种定时波形例:假如在例:假如在 80868086 系统中使用一块系统中使用一块 82538253 芯片,通芯片,通道的基地址为道的基地址为 310H310H ,所用的时钟频率为,所用的时钟频率为 1MHZ1MHZ ,,要求要求 33 个计数通道完成以下功能个计数通道完成以下功能通道通道 00 工作于方式工作于方式 33 ,输出频率为,输出频率为 2KHZ2KHZ通道通道 11 产生宽度为产生宽度为 480US480US 的负脉冲的负脉冲通道通道 22 用硬件方式触发,计数到输出用硬件方式触发,计数到输出 1CLK1CLK 负脉冲,负脉冲,时间常数为时间常数为 2626

Page 21: 第三章 可编程定时器 8253

G1

G2AG2B

A9A8A7A6A5

A4 A3 A0

CBA

A2A1RDWR

A1 A0 RDWR

D7~D0 D7~D0

8086CPU

M/IO 74LS138CLK0CLK1CLK2

GATE0OUT0

GATE1 OUT1

GATE2OUT2

480US 单脉冲负脉冲

2KHZ 方波+5V

1MHZ 方波

8253

Y4 CS

Page 22: 第三章 可编程定时器 8253

各通道时间常数确定各通道时间常数确定通道通道 00 :: =1MHZ/2KHZ=500=1MHZ/2KHZ=500通道通道 11 :: =480US/1US=480=480US/1US=480通道通道 22 :: =26=26

Page 23: 第三章 可编程定时器 8253

通道通道 00 初试化程序初试化程序 MOV DXMOV DX ,, 316H316H MOV ALMOV AL ,, 00110111B00110111B OUT DXOUT DX ,, ALAL MOV DXMOV DX ,, 310H310H MOV ALMOV AL ,, 0000 OUT DXOUT DX ,, ALAL MOV ALMOV AL ,, 05H05H OUT DXOUT DX ,, AL AL

Page 24: 第三章 可编程定时器 8253

通道通道 11 初试化程序初试化程序 MOV DXMOV DX ,, 316H316H MOV ALMOV AL ,, 01110011B 01110011B OUT DXOUT DX ,, ALAL MOV DXMOV DX ,, 312H312H MOV ALMOV AL ,, 80H80H OUT DXOUT DX ,, ALAL MOV ALMOV AL ,, 04H04H OUT DXOUT DX ,, ALAL

Page 25: 第三章 可编程定时器 8253

通道通道 22 初试化程序初试化程序 MOV DXMOV DX ,, 316H316H MOV ALMOV AL ,, 10011011B10011011B OUT DXOUT DX ,, ALAL MOV DXMOV DX ,, 314H314H MOV ALMOV AL ,, 26H26H OUT DXOUT DX ,, ALAL

Page 26: 第三章 可编程定时器 8253

2.2. 用用 82538253 设计实时时钟。设计实时时钟。(( 11 )要求:统计时、分、秒并放于固定)要求:统计时、分、秒并放于固定 RAMRAM 中供中供 CPUCPU 显显

示。示。(( 22 )分析:)分析:• 需要确定计时单位,假定需要确定计时单位,假定 82538253 计数器计数器 00 的时钟为的时钟为 5MHZ5MHZ 。。

当当 82538253 工作在方式工作在方式 33 时,可以在时,可以在 OUTOUT 引脚上输出周期性引脚上输出周期性的方波,且具有自动重载计数初值的功能。的方波,且具有自动重载计数初值的功能。

• 如果用如果用 OUTOUT 脚输出的方波做新的计时单位,为了编程方便,脚输出的方波做新的计时单位,为了编程方便,可以使方波的周期为可以使方波的周期为 10ms.10ms.

• 硬件连接可以选择图硬件连接可以选择图 3.103.10 的设计。即的设计。即 82538253 的的 OUTOUT 引脚每引脚每经过经过 10ms10ms 向向 CPUCPU 申请一次中断。在中断子程序中统计申请一次中断。在中断子程序中统计 1010msms 的个数,到达的个数,到达 100100 个则个则 11 秒时间到,秒计数器加秒时间到,秒计数器加 11 。并。并判断秒计数器的值是否为判断秒计数器的值是否为 6060 ,是,则分计数器加,是,则分计数器加 11 。依次。依次类推,实现时分秒计数器的更新。到达类推,实现时分秒计数器的更新。到达 2424 小时后,所有计小时后,所有计数器清零,新的一天的计时开始。数器清零,新的一天的计时开始。

Page 27: 第三章 可编程定时器 8253

GATE

CLK0

D Q QCP

+5V

PCLK

OUT0

状态= 000

总线控制器

S2 S1 S0

INTR

8254 8259A

IR0

INTA

D0~7

INT

D0~7

S2 S1 S0

CPU

IRQ0

T=10MS

Page 28: 第三章 可编程定时器 8253

初始化程序段如下:初始化程序段如下: Count_10msCount_10ms DBDB 00 Count_scendCount_scend DBDB 00 Count_minutCount_minut DBDB 00 Count_hourCount_hour DBDB 00……………….. MOVMOV AL,0 AL,0

MOVMOV Count_10ms,AL Count_10ms,AL ;初期上电,;初期上电, RAMRAMMOVMOV Count_scend,AL Count_scend,AL ;清零。;清零。MOVMOV Count_minut,AL Count_minut,ALMOVMOV Count_hour,AL Count_hour,AL

Page 29: 第三章 可编程定时器 8253

MOVMOV DX,307HDX,307H

MOVMOV AL,00110110BAL,00110110BOUTOUT DX,ALDX,AL ;; 初始化初始化 82538253MOVMOV DX,304HDX,304HMOVMOV AL,50HAL,50H ;送计数初值低位;送计数初值低位OUTOUT DX,ALDX,ALMOVMOV AL,0C3HAL,0C3H ;送计数初值高位;送计数初值高位OUTOUT DX,ALDX,AL

Page 30: 第三章 可编程定时器 8253

中断服务程序:中断服务程序: 有启动标志有启动标志 10MS10MS 单元计数单元计数 100100 次到否?次到否? 秒单元计数秒单元计数 6060 次到否?次到否? 秒单元清秒单元清 00 分单元计数分单元计数 6060 次到否?次到否? 分单元清分单元清 00 返回返回

N

N

N

N

Page 31: 第三章 可编程定时器 8253

系统中的日时钟原理介绍:系统中的日时钟原理介绍:(( 11 )系统中)系统中 82538253 的时钟为的时钟为 1.1931816MHZ1.1931816MHZ 。。(( 22 )) 82538253 工作在方式工作在方式 33 ,计数初值设为最大-,计数初值设为最大- 6553665536 。。

(设选用(设选用 82538253 的计数器的计数器 00 ))(( 33 )) OUT0OUT0 引脚输出的方波频率:引脚输出的方波频率: 1.1931816MHZ/65531.1931816MHZ/6553

6=18.2HZ6=18.2HZ周期为周期为 1/18.2HZ×1000ms=54.945ms.1/18.2HZ×1000ms=54.945ms.

(( 44 )计时单位: )计时单位: 54.945ms54.945ms 为一个基准单位,且准确。则:为一个基准单位,且准确。则:11 天=天= 24×60×60×1000ms/54.954ms24×60×60×1000ms/54.954ms == 15730401573040 (个计时单位);(个计时单位);11 小时= 小时= 60×60×1000ms/54.954ms60×60×1000ms/54.954ms == 6554365543 (个计时单位);(个计时单位);11 分钟= 分钟= 60×1000ms/54.954ms60×1000ms/54.954ms == 10921092 (个计时单位);(个计时单位);11 秒= 秒= 1000ms/54.954ms1000ms/54.954ms == 18.218.2 (个计时单位)(个计时单位)

Page 32: 第三章 可编程定时器 8253

(( 55 )新的计时单位的计数机构:)新的计时单位的计数机构: 利用利用 OUT0OUT0 引脚向引脚向 82598259 申请中断,在中断程序 中进行加申请中断,在中断程序 中进行加 11操作,实现对新的计时单位的累计,完成对一天计时的任务。操作,实现对新的计时单位的累计,完成对一天计时的任务。

实现方法:在实现方法:在 BIOSBIOS 数据区开辟两个双字的存储单元作为每数据区开辟两个双字的存储单元作为每次加次加 11操作的操作的 RAMRAM 。则该双字。则该双字 RAMRAM 中存放的就是当前的中存放的就是当前的时间。当低位字=时间。当低位字= 00B0H,00B0H, 高位字=高位字= 0018H0018H 时,则计满时,则计满 2424小时,然后清零,重新加小时,然后清零,重新加 11操作,开始第二天的计时。操作,开始第二天的计时。

注:如果要得到当前时间要进行下列计算:注:如果要得到当前时间要进行下列计算:AA 、小时数=、小时数= RAMRAM 中的值除以中的值除以 6554365543;;BB 、分钟数= 、分钟数= AA 的余数除以的余数除以 10921092;;CC 、秒数= 、秒数= BB 的余数再除以的余数再除以 18.218.2

Page 33: 第三章 可编程定时器 8253

使用系统时钟使用系统时钟方法方法 11 :: 82538253 通道通道 00 接入接入 82598259 的的 IRQ0IRQ0 (类型码为(类型码为 88 ),),中断服务入口存在中断服务入口存在 00 :: 3232 起的起的 44 字节。字节。方法方法 22 :利用中断类型:利用中断类型 1CH1CH ,系统定时器,系统定时器 00 的中断处的中断处理程序要调用理程序要调用 INT 1CHINT 1CH ,, 1CH1CH 的处理程序只有一条的处理程序只有一条IRETIRET方法方法 3: 3: 使用使用 DOS DOS 调用调用 ( INT 21H ( INT 21H 中中 2CH,2DH)2CH,2DH) BIOSBIOS调用调用 (1AH)(1AH)

Page 34: 第三章 可编程定时器 8253

3.3. 稳定延时稳定延时(( 11 )要求:利用系统硬件定时器延时)要求:利用系统硬件定时器延时 55 秒秒(( 22 )分析:)分析:AA 、利用定时器每秒中断、利用定时器每秒中断 18.218.2此速率不变的特性,通过调用此速率不变的特性,通过调用

BIOSBIOS 的软中断的软中断 INT1AHINT1AH 的的 00 号功能,读取时间计数器的号功能,读取时间计数器的当前值。当前值。

BB 、将延时时间换算成计时单位(即多少个、将延时时间换算成计时单位(即多少个 54.954ms54.954ms )加)加上时间计数器的当前值,作为定时器的目标值。上时间计数器的当前值,作为定时器的目标值。

CC 、利用、利用 INT1AHINT1AH 的的 00 号功能调用,不断读取时间计数器的号功能调用,不断读取时间计数器的值并与目标值比较。相等则定时时间到,不等则继续延时。值并与目标值比较。相等则定时时间到,不等则继续延时。

DD 、这样延时的好处在于:定时时间与、这样延时的好处在于:定时时间与 CPUCPU 的主频无关,的主频无关,只与只与 82538253 的时钟频率有关。延时较稳定。的时钟频率有关。延时较稳定。

Page 35: 第三章 可编程定时器 8253

(( 33 )设计)设计AA 、利用系统资源,硬件不需改动。、利用系统资源,硬件不需改动。BB 、软件编程、软件编程 (( 延时延时 55 秒时,折合成计时单位=秒时,折合成计时单位= 91)91)

MOVMOV AH,0HAH,0HINT 1AHINT 1AH ; ; 中断调用,读取日时钟中断调用,读取日时钟ADDADD DX,91DX,91MOVMOV BX,DXBX,DX

REP: MOV AH,0HREP: MOV AH,0HINT 1AHINT 1AHCMPCMP DX,BXDX,BX ;;与目标值比较与目标值比较

JNZJNZ REPREP ; ; 不等,继续延时,相等,延不等,继续延时,相等,延时时 结束,程序向下执行 结束,程序向下执行

Page 36: 第三章 可编程定时器 8253

4.4. 发声器发声器原理还是利用原理还是利用 82538253 的工作方式的工作方式 33 ,不断输,不断输

出一定频率的方波,将此方波接至扬声器,控制出一定频率的方波,将此方波接至扬声器,控制发声,方波的频率不同,则扬声器的声音频率就发声,方波的频率不同,则扬声器的声音频率就不同。不同。

Page 37: 第三章 可编程定时器 8253

5.5. 波特率时钟发生器波特率时钟发生器(( 11 )要求: )要求: 设计一个波特率时钟发生器,其输入时钟设计一个波特率时钟发生器,其输入时钟 CIKCIK

=1.19318MHz=1.19318MHz ,波特率因子,波特率因子 facbr=16facbr=16 ,输出的波特率,输出的波特率为为 88档,它们分别是档,它们分别是 110b110b// ss ,, 150b150b// ss ,, 300b300b// ss ,,600b600b// ss ,, 1200b1200b// ss ,, 2400b2400b// ss ,, 4800b4800b// ss ,, 99600b600b// ss 。要求利用人。要求利用人 -- 机对话方式选择波特率。按机对话方式选择波特率。按 EscEsc键,退出。键,退出。

Page 38: 第三章 可编程定时器 8253

(( 22 )分析: )分析: AA 、、波特率的概念:每秒钟传输的二进制数的位数。波特率的概念:每秒钟传输的二进制数的位数。BB 、波特率因子、波特率因子 的概念: 的概念:每传输每传输 11 位所需要的时钟脉冲个数,叫做波特位所需要的时钟脉冲个数,叫做波特

率因子率因子 。 。CC 、传输原理:在实际传输中,发送、传输原理:在实际传输中,发送 11 位或接收位或接收 11 位数据,是在时钟脉位数据,是在时钟脉

冲作用下,进行移位来实现的。发送时,用发送时钟,从发送器移出;冲作用下,进行移位来实现的。发送时,用发送时钟,从发送器移出;接收时,用接收时钟,向接收器移入接收时,用接收时钟,向接收器移入

DD 、、 82538253 定时常数的计算:定时常数的计算:由波特率及波特率因子的概念可得:由波特率及波特率因子的概念可得:

串行传输的频率串行传输的频率 TxCTxC=波特率=波特率 Baud×Baud× 波特率因子波特率因子 FactorFactor;;设计要求:串行传输的频率设计要求:串行传输的频率 TxCTxC== OUTOUT 输出的频率,因此输出的频率,因此

有:有: OUTOUT== CLK/Tc=Baud×FactorCLK/Tc=Baud×Factor ;; 所以:定时常数所以:定时常数 TcTc== CLK/Baud×FactorCLK/Baud×Factor 由此可计算出上述由此可计算出上述 88 种波特率下的定时常数分别为:种波特率下的定时常数分别为: 678678 、、 497497 、、

249249 、、 124124 、、 6262 、、 3131 、、 1616 、、 88 。。

Page 39: 第三章 可编程定时器 8253

(( 33 )设计)设计AA 、硬件设计:、硬件设计:波特率时钟发生器的硬件包括定时/计数器波特率时钟发生器的硬件包括定时/计数器

82538253 、并行接口芯片、并行接口芯片 8255A8255A及及 I/OI/O 端口地址译码电路等,端口地址译码电路等,如图如图 33.. 1414 所示。所示。

BB 、软件编程:图、软件编程:图 3.153.15

Page 40: 第三章 可编程定时器 8253

PC6

三总线

OSC ÷12

74LS92

OUT2

8253

8255A

PC 总线插槽

至 8251 的 TXC,RXC

波特率时钟发生器电路

CLK2

GATE2

Page 41: 第三章 可编程定时器 8253

8253 在 IBM PC/XT 机中的应用。

5 V8255

PB1

1.19 MHz

8253

GATE0OUT0

CLK0

A1

74LS138

A

B

C

G1AEN

A9

IRQ0(8259A)

D

CLK

DRQ0

&

75477

PB0

GATE1

GATE2

5 V

Q

2A 2Y

5 V

OUT1

OUT2

2Y

D7~ D0 D0~ D7

CLK1

CLK2

A0

CS

WR

RD

2AG

2BG

1

A8

A7

A6

A5

A1

A0

IOW

IOR

Page 42: 第三章 可编程定时器 8253

PC 机内部计数器结构

CLK OUTCLK OUT

GATEGATE

CLK OUTCLK OUT

GATEGATE

CLK OUTCLK OUT

GATEGATE

I/O PORT 61H BIT0/O PORT 61H BIT0

驱动喇叭驱动喇叭

系统存储器刷新系统存储器刷新

系统计时时间系统计时时间通道通道 00

通道通道 11

通道通道 22

CLK=1.19MHZCLK=1.19MHZ

+5V+5V

+5V+5V

通道通道 0 400 40HH

通道通道 1 411 41HH

通道通道 2 422 42HH

控制字 控制字 43H43H

Page 43: 第三章 可编程定时器 8253

通道通道 00 :用来做系统一般定时器用,其门控:用来做系统一般定时器用,其门控信号接至高电平,使得计数器信号接至高电平,使得计数器 00 一直工作。一直工作。通道通道 00 的输出接至系统中断控制器的输出接至系统中断控制器 92599259 的的IRQ0IRQ0 输入,输入, BIOSBIOS 设定为方式设定为方式 33 方波产生器,方波产生器,初值栽入为初值栽入为 00 ,因此正常情况下每秒产生,因此正常情况下每秒产生18.218.2 的中断,的中断, BIOSBIOS 即利用此周期性的中断来即利用此周期性的中断来维持电脑的时间计数维持电脑的时间计数

Page 44: 第三章 可编程定时器 8253

通道通道 11 :用来做系统存储器刷新,门控信号:用来做系统存储器刷新,门控信号输入接高电平,计数器工作一直有效,输入接高电平,计数器工作一直有效, PCPC的的 BIOSBIOS 在启动时设定此通道工作于方式在启动时设定此通道工作于方式 22做比率产生器用,计数器每做比率产生器用,计数器每 15US15US 产生一次产生一次存储器刷新信号,此通道的计数器不允许存储器刷新信号,此通道的计数器不允许被使用者加以利用被使用者加以利用

Page 45: 第三章 可编程定时器 8253

通道通道 22 :用做喇叭驱动,门控输入可以由输:用做喇叭驱动,门控输入可以由输出口(出口( I/OI/O 地址地址 61H61H )的位)的位 00 加以控制启动加以控制启动或关闭。若启动,设定为工作方式或关闭。若启动,设定为工作方式 33 做方波做方波产生器可以持续地由此通道送出固定频率产生器可以持续地由此通道送出固定频率的方波 信号至喇叭,驱动喇叭发出声音的方波 信号至喇叭,驱动喇叭发出声音