定时计数器 (3)

上传人:suns****4568 文档编号:93220327 上传时间:2019-07-18 格式:PPT 页数:60 大小:923KB
返回 下载 相关 举报
定时计数器 (3)_第1页
第1页 / 共60页
定时计数器 (3)_第2页
第2页 / 共60页
定时计数器 (3)_第3页
第3页 / 共60页
定时计数器 (3)_第4页
第4页 / 共60页
定时计数器 (3)_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《定时计数器 (3)》由会员分享,可在线阅读,更多相关《定时计数器 (3)(60页珍藏版)》请在金锄头文库上搜索。

1、学 习 目 的,通过对本章的学习,您应该能够达到下列要求: 了解定时基本概念 熟悉可编程计数器/定时器8253的外部特性 熟悉可编程计数器/定时器8253工作模式 熟悉可编程计数器/定时器8253初始化,重 点,8253的外部特性 8253工作模式 8253初始化,9.2 可编程定时/计数器芯片8253,一、概述 无论何种计算机,其工作都是在标准的时钟脉冲控制下 完成的,因此,定时电路是任何计算机系统中必不可少的基 本电路。尤其是在实时计算机测控系统中,常常要为模拟I/O 通道和其它I/O设备提供实时时钟,以实现定时中断、定时监 测、定时扫描和定时显示等定时或延时控制,或者对外部事件 进行计数

2、。,在计算机系统中常常用到定时信号。如微机中的日历 时钟、动态存储器的刷新定时、喇叭的发声都是用定时器 信号来产生。 又如计算机在实时控制和处理系统中,CPU需要每隔一定时间(如水泥厂2S,电容器厂1分钟)对处理对象进行采样,再对采样转换后数据进行处理。这中间,也要用到定时信号。,二、可编程计数器/定时器8253的工作原理 8253的基本功能: 1、有3个独立的16位计数器 2、每个计数器可按照二进制或十进制计数 3、每个计数器计数频率最高为2MHZ 4、每个计数器可选择6种不同的工作方式 5、所有的输入输出与TTL兼容,计数器/定时器的应用: 1、在多任务的分时系统中用来作为中断信号实现程序

3、的 切换。 2、可以往I/O设备输出精确的定时信号。 3、作为一个可编程的波特率发生器。 4、实现时间延迟。,8253外部引脚和内部结构,三个计数器/定时器CT0 CT2 : CLK时钟输入 GATE门脉冲控制输入 OUT输出。 数据总线缓冲器 往计数器设置计数初值 从计数器读取计数值 往控制寄存器设置控制字 读/写逻辑电路,工作原理,计数初值,8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可以进行二进制或十进制(BCD码)计数。 8253是一种减1计数器,因此在开始计数(定时)之前,一定要根据计数(定时)的要求,先算出计数初值(定时常数),并装入计数初值寄存器。

4、定时常数=要求定时的时间/时钟脉冲的周期 定时常数=时钟脉冲的频率/定时器输出脉冲频率,思考题,设8253的工作频率为2.5MHz,利用计数器0产生频率为1KHz的方波,则送入计数器0的计数初值为_? 计数/定时器8253的计数器0工作在方式2,即分频工作方式,CLK0的时钟输入频率为1MHz,计数初值为0064H,则OUT0的输出负脉冲周期为_?,9.2.1 8253/8254的编程,8253加电后的工作方式不确定 8253必须初始化编程,才能正常工作 写入控制字 写入计数初值 读取计数值 8254新增读回命令,1 写入方式控制字,00 计数器0 01 计数器1 10 计数器2 11 非法,

5、00 计数器锁存命令 01 只读写低字节 10 只读写高字节 11 先读写低字节 后读写高字节,000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5,0 二进制 1 十进制,控制字写入控制字I/O地址(A1A011),示例,2 写入计数值,选择二进制时 计数值范围:0000HFFFFH 0000H是最大值,代表65536 选择十进制(BCD码) 计数值范围:00009999 0000代表最大值10000,计数值写入计数器各自的I/O地址,示例,3 读取计数值,对8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,然后读取:

6、向控制字I/O地址:给8253写入锁存命令 从计数器I/O地址:读取锁存的计数值,示例,9.2.2 8253的工作方式,8253有6种工作方式,由方式控制字确定 熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式 每种工作方式的过程类似: 设定工作方式 设定计数初值 硬件启动 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束,9.2.2 8253的工作模式,方式0计数结束产生中断 方式1可重复触发的单稳态触发器 方式2分频器 方式3方波发生器 方式4软件触发的选通信号发生器 方式5硬件触发的选通信号发生器,方式0 计数结束中断, 设 定 工 作 方 式, 设

7、 定 计 数 初 值, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,方式1可重复触发的单稳方式, 设 定 工 作 方 式, 设 定 计 数 初 值, 硬 件 启 动, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,写入控制字以后,OUT输出保持为高(若原为低,则由低变高)。 写入计数初值,OUT无变化,直到外部门控脉冲GATE启动之后的下一个输出CLK脉冲的下降沿开始计数,输出OUT变低。 在整个计数过程中,OUT都维持低,直到计数到0,输出变为高。因此,输出为一个单拍脉冲。 计数结束后,计数值保持FF不变。 GATE上升沿使计数初值自动进入计数执

8、行部件,OUT信号重新为低,并开始新一轮计数。,方式2 频率发生器(分频器),方式3 方波发生器,方式4 软件触发选通信号,方式5 硬件触发选通信号,计数/定时器8253小结,8253是一个可编程计数/定时器,首先对各个通道初始化的设置,然后设置一个时间常数,而8253接到这个时间常数以后,就开始在这个时间常数的基础上进行减1计数。计数到了0的时候,它就开始在OUT线上输出一个特殊的波形,而这个特殊的波形,跟我们设置的工作方式有关。,计数开始的时刻,需要注意: 处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送

9、到减1计数器。 从第二个CLK信号的下降沿,计数器才真正开始减1计数。,9.2.3 8253在IBM PC系列机上的应用,(1) 定时中断和定时刷新,从阅读初始化程序段 看计数器0作为定时中断的作用,将计数器1作为定时刷新 看如何编写初始化程序段,定时中断,mov al,36h ;计数器0为方式3,采用二进制计数, ;先低后高写入计数值 out 43h,al ;写入方式控制字 mov al,0 ;计数值为0 out 40h,al ;写入低字节计数值 out 40h,al ;写入高字节计数值,8253初始化,计数器0:定时中断,计数器0:方式3,计数值:65536,输出频率为1.19318MHz

10、6553618.206Hz的方波 门控为常启状态,这个方波信号不断产生 OUT0端接8259A的IRQ0,用作中断请求信号 每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断 DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能,计数器1:定时刷新,需要重复不断提出刷新请求,门控总为高,选择方式2或3,2ms内刷新128次,即15.6s刷新一次,计数初值为18,定时刷新,mov al,54h ;计数器1为方式2,采用二进制计数,只写低8位计数值 out 43h,al ;写入方式控制字 mov al,18 ;计数初值为18 out 41

11、h,al ;写入计数值,8253初始化,(2) 扬声器控制,计数器2的输出控制扬声器的发声音调 计数器2只能工作在方式3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声 扬声器还受控于并行接口(8255芯片) 必须使PB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音,频率设置,speaker proc push ax mov al,0b6h out 43h,al ;写入控制字 pop ax out 42h,al ;写入低8位计数值 mov al,ah out 42h,al ;写入高8位计数值 ret speaker endp,扬声器控制,扬声器开,speakon

12、 proc push ax in al,61h or al,03h ;D1D0PB1PB011B,其他位不变 out 61h,al pop ax ret speakon endp,扬声器控制,扬声器关,speakoff proc push ax in al,61h and al,0fch ;D1D0PB1PB000B,其他位不变 out 61h,al pop ax ret speakoff endp,扬声器控制,主程序,;数据段 freq dw 1193180/600 ;代码段 mov ax,freq call speaker ;设置扬声器音调 call speakon ;打开扬声器声音 mo

13、v ah,1 ;等待按键 int 21h call speakoff ;关闭扬声器声音,扬声器控制,8253初始化方法: 控制字 计数初值: 已知:CLK 的频率fc与定时的时间t. 计数初值: n= fc t 例1: fc=1MHZ,最大计数初值:65536 一个定时器最大定时时间: N/fc=65536/ 106 =0.065536s,9.2.4 8253应用举例,例2:设定时器0、定时器1工作于方式2,外部提供一个时钟,频率f=2MHZ。要求定时器1每5ms产生一个脉冲,定时器0每5s产生一个脉冲。 1) 一个定时器的最大定时时间: 65536/(2*106)=0.032768 s=32

14、.768ms 2) 将定时器1的CLK1接2MHZ时钟,计数初值: 3) 将定时器1的OUT1端接到定时器0的CLK0端,定时器0的计数初值:,例3: 定时/计数器 8253与 8086/8088CPU 相连构成完整的定时、计数或脉冲发生器系统。要求能完成的功能是: 1)利用通道0完成对外部事件计数功能,计满100次向CPU发中断请求。 2)利用通道1产生频率为1KHz的方波。 3)利用通道2作标准时钟,定时1秒,输出接IR2。,(1)通道0定义为工作方式0,完成计数. 通道0的计数初值应为: n0= 100 控制字: 00 01 0000=10H (2)将通道1定义为工作方式3, 控制字=0

15、111 0110=76H, 从CLK1输入2.5MHz的时钟脉冲, OUT1输出频率为1KHz的方波,而输出方波的周期1ms。 通道1的计数初值: n1= f1*t1= 2.5106 1 10-3 =2500=09C4H。,(3)通道2应定义为方式0, 控制字=1011 0001=0B1H,每秒钟利用OUT2向CPU发出一次中断请求,由于输入时钟频率为1KHz,计数初值应为: n2=f2*t2=1000*1=1000。 8253的控制端口地址:66H 通道0的端口地址:60H 通道1的端口地址:62H 通道2的端口地址:64H 8253-0 EQU 60H 8253-1 EQU 62H 825

16、3-2 EQU 64H 8253-C EQU 66H,STT: MOV DX,8253-C ;8253控制口地址 MOV AL,10H OUT DX,AL ;通道0工作在方式0 MOV DX,8253-0 ;8253通道0地址 MOV AL,64H OUT DX,AL ;给通道0送计数值 MOV DX,8253-C MOV AL,76H OUT DX,AL ;通道1工作在方式3 MOV DX,8253-1 ;8253通道1地址 MOV AX,09C4H OUT DX,AL ;给通道1送计数初值低8位 MOV AL,AH OUT DX,A ;给通道1送计数值高位 MOV DX,8253-C MOV AL,0B1H OUT DX,AL ;通道2工作在方式0,MOV DX,8253-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号