8253定时器解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据线:写控 制字,读写计 数器的计数值
计数器0的时钟 输入端
计数器0的输出端
计数器0的门控信 号脉冲输入端,
控制计数
为低电平的时候,CPU 将计数值写入计数器或将 控制字写入控制字寄存器
为低电平的时候,CPU 读取所选计数器的内容
A1 A0 00 01 10 11
选中端口 计数器0 计数器1 计数器2 控制字寄存器
5
可编程计数器/定时器8253-5
掌握: ➢ 引线功能及计数启动方法 ➢ 6种工作方式及其输出波形 ➢ 8253的使用:
– 芯片与系统的连接 – 芯片的初始化编程
6
可编程计数器/定时器8253-
➢ 引脚及其功能 ➢ 内部结构 ➢ 寻址方式 ➢ 控制字格式 ➢ 工作方式 ➢ 编程及应用
7
引脚及其功能
0 0----选计数器0 0 1----选计数器1 1 0----选计数器2 1 1----无意义
0 0----对计数器进行锁存 0 1----只读/写低8位字节 1 0----只读/写高8位字节 1 1----只读/写低8位字节,
再读/写高8位字节.
M2 M1 M0 000 001 /10 / 11 100 101
2. 计数到0,OUT变成高电平,负脉冲结束,脉冲宽度=tc×n(tc为时钟周期)。 3. 在计数过程中,若GATE变低,不影响计数。
➢ 控制寄存器—— 存放控制命令字(只写)
➢ 占用4个地址— 3个计数器,1个控制寄存器
11
寻址方式
A1
A0
0
0
0
1
1
0
1
1
寻址对象 计数器0(16位) 计数器0(16位) 计数器0(16位) 控制字寄存器(8位)
12
控制字格式
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
1--计数值为BCD码格式 0--计数值为二进制格式
➢ 8253是一种可编程的计数器/定时器接口芯片。内 部有三个独立的计数器,通过设置控制字,各计数 器可以工作于不同方式。该芯片的最高计数频率为 2MHz,可用于产生各种定时波形,也可用于对外 部事件计数。
可以实现定时与计数两个功能,可用于: ➢ 系统时钟 ➢ DRAM刷新定时 ➢ 定时采样 ➢ 实时控制 ➢ 脉冲的计数
– 在CLK的下降沿时,计数器执行部件从初值开始作减1计数;其中0 是最大初值,1是最小初值;
– 若以二进制数制计数,则0相当于216=65536;若以BCD(十进制) 数制计数,则0相当于104=10000
➢ 减到0时,OUT端输出一特殊波形的信号
14
工作方式0:计数结束产生中断
在GATE=1时 1. 写入控制字,OUT端输出低电平为起始电平,装入计数初值n,开始计数。 2. 写信号后沿( )经一个CLK( )将n值装入计数器。 3. 每经过一个CLK,在CLK下降沿,计数器减1。 4. n=0时,计数结束,OUT由低电平变为高电平(可利用该电平变化向CPU发出中断请
8
与系统的连接示意图
8253占用4个接口
地址:
计数器0
DB
计数器1
IOW
计数器2
控制寄存器 IOR
A1
A0
高位地址 A15-A2
(决定8253的基地址)
译码器
8253
D0~D7 WR CLK RD GATE A1 OUT A0
CS
共三组
9
内部结构
~
D0
D7
总线缓
RD
片
WR
内
A0
A1
逻辑
总
CS
线
寄存器
2
地址译码
✓A15~A8为
译码器使能
✓A7~A5决定 芯片端口范围
✓A4~A0选择 芯片片内端口
A15 A14 A13 A12 A11 A10 A9 A8
IO/M
A5 A6 A7 &
&
74LS138
A Y0
B C
Y1 Y2
Y3
G2AY4
Y5
G2B Y6 G1 Y7
3
如何实现定时?
➢ 软件方法:用一段程序实现延时
可编程接口芯片及应用
➢ 学习重点:可编程接口芯片8253 、8259, 8255结 构、编程I/O接口和CPU、外设的连接方法。
➢ 学习方法:紧密结合实验与作业,学习I/O通道的 设计与编程方法。
1
I/O地址译码方法
➢ 地址译码的方法灵活多样 ➢ 高位地址线与CPU的控制信号进行组合,经译码电路
产生I/O接口芯片的片选信号CS,实现系统中的接口 芯片寻址 ➢ 低位地址线直接接到I/O接口芯片的地址引脚,进行I/O 接口芯片的片内端口寻址
– 利用程序循环延迟指定的时间 – 缺点:CPU占用率?延时精度?兼容?
➢ 硬件方法:定时/计数器电路
– 利用脉冲计数在设定的时间输出定时信号,灵活性较差?
➢ 采用可编程定时器/计数器
– 定时时间与计数值可由软件来确定和改变,设定后与CPU并行工 作,不占用CPU的时间。
4
可编程计数器/定时器8253
模式选择 模式0 模式1 模式2 模式3 模式4 模式5
13
定时/计数的工作过程
➢ 设置8253的工作方式:
– 此时,全部控制逻辑电路复位,输出OUT为初始状态(高电平或低 电平);
➢ 设置计数初值到初值寄存器 ➢ 第一个CLK信号使初值寄存器的内容置入计数寄存器 ➢ 以后每来一个CLK信号
– 在CLK的上升沿时,计数器对门控信号GATE进行采样,来决定工 作状态(计数、触发、停止、重新置初值);
求),并保持,不开始重新计数。只有写入另一个计数值时,开始新的计数。ቤተ መጻሕፍቲ ባይዱ在GATE=0时 停止计数,直至GATE恢复高电平,再继续计数
15
工作方式0:计数结束产生中断(小结)
➢ 软件启动,不自动重复计数。 ➢ 装入初值后OUT端变低电平,计数结束OUT输出高电平。 ➢ 计数过程中,GATE端应保持高电平。
编址部件3
编址部件0
计数器 0
CLK 0 GATE 0 OUT 0
计数器 1
CLK 1 GATE 1 OUT1
编址部件1
计数器 2
CLK 2 GATE 2 OUT 2
编址部件2
10
编程结构—程序员的观点
➢ 计数器(3个)——每个包括
16位初值寄存器 16位计数寄存器(减法计数器) 16位输出锁存器
– 每写入一次初值计数一个周期,然后停止计数。 – OUT端输出是一个约(n+1) *CLK宽度的负脉冲。 – 计数过程中可随时修改初值重新开始计数。
16
工作方式1:可编程单稳态触发器
方式1的时序图(计数过程中GATE仅有一个上升沿)
1. 写入控制字,OUT端输出高电平为起始电平。装入计数初值n后,必须等待 GATE的上升沿来后才转入计数,这时OUT变低,开始计数,每一个计数脉冲, 计数器值减1。
计数器0的时钟 输入端
计数器0的输出端
计数器0的门控信 号脉冲输入端,
控制计数
为低电平的时候,CPU 将计数值写入计数器或将 控制字写入控制字寄存器
为低电平的时候,CPU 读取所选计数器的内容
A1 A0 00 01 10 11
选中端口 计数器0 计数器1 计数器2 控制字寄存器
5
可编程计数器/定时器8253-5
掌握: ➢ 引线功能及计数启动方法 ➢ 6种工作方式及其输出波形 ➢ 8253的使用:
– 芯片与系统的连接 – 芯片的初始化编程
6
可编程计数器/定时器8253-
➢ 引脚及其功能 ➢ 内部结构 ➢ 寻址方式 ➢ 控制字格式 ➢ 工作方式 ➢ 编程及应用
7
引脚及其功能
0 0----选计数器0 0 1----选计数器1 1 0----选计数器2 1 1----无意义
0 0----对计数器进行锁存 0 1----只读/写低8位字节 1 0----只读/写高8位字节 1 1----只读/写低8位字节,
再读/写高8位字节.
M2 M1 M0 000 001 /10 / 11 100 101
2. 计数到0,OUT变成高电平,负脉冲结束,脉冲宽度=tc×n(tc为时钟周期)。 3. 在计数过程中,若GATE变低,不影响计数。
➢ 控制寄存器—— 存放控制命令字(只写)
➢ 占用4个地址— 3个计数器,1个控制寄存器
11
寻址方式
A1
A0
0
0
0
1
1
0
1
1
寻址对象 计数器0(16位) 计数器0(16位) 计数器0(16位) 控制字寄存器(8位)
12
控制字格式
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
1--计数值为BCD码格式 0--计数值为二进制格式
➢ 8253是一种可编程的计数器/定时器接口芯片。内 部有三个独立的计数器,通过设置控制字,各计数 器可以工作于不同方式。该芯片的最高计数频率为 2MHz,可用于产生各种定时波形,也可用于对外 部事件计数。
可以实现定时与计数两个功能,可用于: ➢ 系统时钟 ➢ DRAM刷新定时 ➢ 定时采样 ➢ 实时控制 ➢ 脉冲的计数
– 在CLK的下降沿时,计数器执行部件从初值开始作减1计数;其中0 是最大初值,1是最小初值;
– 若以二进制数制计数,则0相当于216=65536;若以BCD(十进制) 数制计数,则0相当于104=10000
➢ 减到0时,OUT端输出一特殊波形的信号
14
工作方式0:计数结束产生中断
在GATE=1时 1. 写入控制字,OUT端输出低电平为起始电平,装入计数初值n,开始计数。 2. 写信号后沿( )经一个CLK( )将n值装入计数器。 3. 每经过一个CLK,在CLK下降沿,计数器减1。 4. n=0时,计数结束,OUT由低电平变为高电平(可利用该电平变化向CPU发出中断请
8
与系统的连接示意图
8253占用4个接口
地址:
计数器0
DB
计数器1
IOW
计数器2
控制寄存器 IOR
A1
A0
高位地址 A15-A2
(决定8253的基地址)
译码器
8253
D0~D7 WR CLK RD GATE A1 OUT A0
CS
共三组
9
内部结构
~
D0
D7
总线缓
RD
片
WR
内
A0
A1
逻辑
总
CS
线
寄存器
2
地址译码
✓A15~A8为
译码器使能
✓A7~A5决定 芯片端口范围
✓A4~A0选择 芯片片内端口
A15 A14 A13 A12 A11 A10 A9 A8
IO/M
A5 A6 A7 &
&
74LS138
A Y0
B C
Y1 Y2
Y3
G2AY4
Y5
G2B Y6 G1 Y7
3
如何实现定时?
➢ 软件方法:用一段程序实现延时
可编程接口芯片及应用
➢ 学习重点:可编程接口芯片8253 、8259, 8255结 构、编程I/O接口和CPU、外设的连接方法。
➢ 学习方法:紧密结合实验与作业,学习I/O通道的 设计与编程方法。
1
I/O地址译码方法
➢ 地址译码的方法灵活多样 ➢ 高位地址线与CPU的控制信号进行组合,经译码电路
产生I/O接口芯片的片选信号CS,实现系统中的接口 芯片寻址 ➢ 低位地址线直接接到I/O接口芯片的地址引脚,进行I/O 接口芯片的片内端口寻址
– 利用程序循环延迟指定的时间 – 缺点:CPU占用率?延时精度?兼容?
➢ 硬件方法:定时/计数器电路
– 利用脉冲计数在设定的时间输出定时信号,灵活性较差?
➢ 采用可编程定时器/计数器
– 定时时间与计数值可由软件来确定和改变,设定后与CPU并行工 作,不占用CPU的时间。
4
可编程计数器/定时器8253
模式选择 模式0 模式1 模式2 模式3 模式4 模式5
13
定时/计数的工作过程
➢ 设置8253的工作方式:
– 此时,全部控制逻辑电路复位,输出OUT为初始状态(高电平或低 电平);
➢ 设置计数初值到初值寄存器 ➢ 第一个CLK信号使初值寄存器的内容置入计数寄存器 ➢ 以后每来一个CLK信号
– 在CLK的上升沿时,计数器对门控信号GATE进行采样,来决定工 作状态(计数、触发、停止、重新置初值);
求),并保持,不开始重新计数。只有写入另一个计数值时,开始新的计数。ቤተ መጻሕፍቲ ባይዱ在GATE=0时 停止计数,直至GATE恢复高电平,再继续计数
15
工作方式0:计数结束产生中断(小结)
➢ 软件启动,不自动重复计数。 ➢ 装入初值后OUT端变低电平,计数结束OUT输出高电平。 ➢ 计数过程中,GATE端应保持高电平。
编址部件3
编址部件0
计数器 0
CLK 0 GATE 0 OUT 0
计数器 1
CLK 1 GATE 1 OUT1
编址部件1
计数器 2
CLK 2 GATE 2 OUT 2
编址部件2
10
编程结构—程序员的观点
➢ 计数器(3个)——每个包括
16位初值寄存器 16位计数寄存器(减法计数器) 16位输出锁存器
– 每写入一次初值计数一个周期,然后停止计数。 – OUT端输出是一个约(n+1) *CLK宽度的负脉冲。 – 计数过程中可随时修改初值重新开始计数。
16
工作方式1:可编程单稳态触发器
方式1的时序图(计数过程中GATE仅有一个上升沿)
1. 写入控制字,OUT端输出高电平为起始电平。装入计数初值n后,必须等待 GATE的上升沿来后才转入计数,这时OUT变低,开始计数,每一个计数脉冲, 计数器值减1。