




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章第七章 定时器定时器/ /计数器电路计数器电路q概述概述q可编程定时器可编程定时器/ /计数器芯片计数器芯片82548254q82548254在在PCPC系列机定时系统中的应用系列机定时系统中的应用27.1 7.1 概概 述述 在各种计算机系统中,经常要用到定时在各种计算机系统中,经常要用到定时/ /延时和计数控制。延时和计数控制。q实现定时实现定时/ /延时的基本方法:延时的基本方法:v软件定时:软件定时:执行循环程序。执行循环程序。CPUCPU利用率低。利用率低。v不可编程硬件定时:不可编程硬件定时:采用中小规模集成电路器采用中小规模集成电路器 件实现。件实现。q单稳单稳/555/5
2、55定时器定时器-外加阻容器件外加阻容器件q加加/ /减计数器减计数器-通过改变初值可改变定时长短通过改变初值可改变定时长短电路连接好后,定时值不便控制和改变。电路连接好后,定时值不便控制和改变。v可编程硬件定时:可编程硬件定时:用可编程计数器实现。通过编程用可编程计数器实现。通过编程 改变其计数初值和计数脉冲频率即可改变定时长短。改变其计数初值和计数脉冲频率即可改变定时长短。37.1 7.1 概述概述q可编程定时器可编程定时器/ /计数器典型结构:计数器典型结构:数据数据读读写写复位复位准备就绪准备就绪片选片选端口地址端口地址控制字寄存器控制字寄存器计数初值寄存器计数初值寄存器计数器(计数工
3、作单元)计数器(计数工作单元)输出锁存器输出锁存器状态锁存器状态锁存器状态寄存器状态寄存器CLKGATEOUT控控 制制 逻逻 辑辑4q可编程定时器可编程定时器/ /计数器的主要用途:计数器的主要用途:以均匀分布的时间间隔中断分时操作系统,以便切换以均匀分布的时间间隔中断分时操作系统,以便切换 程序;程序;向向I/OI/O设备输出周期可控的定时信号;设备输出周期可控的定时信号;用作可编程波特率发生器;用作可编程波特率发生器;检测外部事件发生的频率或周期;检测外部事件发生的频率或周期;统计外部某过程中某一事件发生的次数;统计外部某过程中某一事件发生的次数;作为向作为向CPUCPU的定时或定次数中
4、断源;的定时或定次数中断源;qPCPC系列微机中普遍采用的可编程定时器系列微机中普遍采用的可编程定时器/ /计数器是计数器是i8253/8254i8253/8254芯片。芯片。7.1 7.1 概述概述57.2 7.2 可编程定时器可编程定时器/ /计数器芯片计数器芯片i8254/8253i8254/8253 i8254i8254是是i8253i8253的改进型,两者的功能基的改进型,两者的功能基本相同,硬件组成、外部引脚和编程特性完本相同,硬件组成、外部引脚和编程特性完全兼容。差别只在三点:全兼容。差别只在三点:允许的最高计数频率不同;允许的最高计数频率不同;82548254中有状态寄存器和状
5、态锁存器,而中有状态寄存器和状态锁存器,而82538253没有;没有;82548254有读回命令,而有读回命令,而82538253没有。没有。7.1 7.1 概述概述67.2.1 82547.2.1 8254的基本功能的基本功能q有有3 3个独立的个独立的1616位计数器通道;位计数器通道;q每个计数器可按二进制或十进制(每个计数器可按二进制或十进制(BCDBCD)计数;计数;q每个计数器可工作于每个计数器可工作于6 6种不同工作方式;种不同工作方式;q每个计数器允许的最高计数频率为每个计数器允许的最高计数频率为1010MHzMHz(82538253为为2 2MHzMHz)q有读回命令(有读回
6、命令(82538253没有),可以读出当前计数单元的内没有),可以读出当前计数单元的内 容和状态寄存器内容。容和状态寄存器内容。 每个计数器通道的逻辑功能完全相同,既可作定时器每个计数器通道的逻辑功能完全相同,既可作定时器用,又可作计数器用。无论用作定时器还是计数器,计数用,又可作计数器用。无论用作定时器还是计数器,计数初值寄存器内容都可由初值寄存器内容都可由CPUCPU预置或修改。预置或修改。77.2.2 82547.2.2 8254内部结构与引脚信号内部结构与引脚信号 结构图结构图D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0CLK0CLK0OUT0OUT0GATE0GA
7、TE0GNDGND82548254+5+5V VWRWRRDRDCSCSA1A1A0A0CLK2CLK2OUT2OUT2GATE2GATE2CLK1CLK1OUT1OUT1GATE1GATE11 124246 619191212 1313引脚图引脚图GATE0GATE0GATE2GATE28 8D7D7D0D0RDRDWRWRA1A1A0A0CSCS数据总数据总线缓冲线缓冲器器读写读写控制控制逻辑逻辑控制字控制字寄存器寄存器计数计数器通器通道道0 0计数计数器通器通道道1 1计数计数器通器通道道2 2CLK0CLK0OUT0OUT0CLK1CLK1GATE1GATE1OUT1OUT1CLK2C
8、LK2OUT2OUT2内部总线内部总线87.2.2 82547.2.2 8254内部结构与引脚信号内部结构与引脚信号82548254各主要组成部分:各主要组成部分:v数据总线缓冲器数据总线缓冲器v控制字寄存器控制字寄存器 8 8位只写寄存器,用于存放位只写寄存器,用于存放CPUCPU写入芯片的写入芯片的方式选择控制字或命令字,由它来控制各计数器通方式选择控制字或命令字,由它来控制各计数器通道的工作方式。道的工作方式。 控制字寄存器为控制字寄存器为3 3个计数器通道所共用。个计数器通道所共用。 写入控制字时,将同时清除计数初值寄存写入控制字时,将同时清除计数初值寄存器内容。器内容。9v计数器通道
9、(计数器通道(3 3个)个): :彼此独立,但结构和内容彼此独立,但结构和内容 完全相同。完全相同。 任一通道作计数器或定时器用时,其内部操任一通道作计数器或定时器用时,其内部操作完全相同,区别仅在于:作完全相同,区别仅在于:7.2.2 82547.2.2 8254内部结构与引脚信号内部结构与引脚信号作计数器用时,对作计数器用时,对CLKiCLKi端输入的计数脉冲(间端输入的计数脉冲(间 隔不一定相同)作减隔不一定相同)作减1 1计数,要求计数的次数计数,要求计数的次数 可直接作为计数初值预置计数器通道;当减可直接作为计数初值预置计数器通道;当减 到到0 0时,时,OUTiOUTi端将输出一信
10、号。端将输出一信号。作定时器用时,对周期一定的时钟脉冲作减作定时器用时,对周期一定的时钟脉冲作减1 1 计数,计数初值(定时系数)用下式计算计数,计数初值(定时系数)用下式计算 得到:得到:定时系数定时系数要求定时的时间要求定时的时间时钟脉冲周期时钟脉冲周期=10(1 1)计数工作单元()计数工作单元(CECE)不能直接读不能直接读/ /写。只能写。只能 通过写计数初值寄存器(通过写计数初值寄存器(CRCR)实现对实现对CECE初初 值的修改,通过读输出锁存器(值的修改,通过读输出锁存器(OLOL)实现实现 对对CECE内容的读取(先写读回命令,再读内容的读取(先写读回命令,再读OLOL)。)
11、。(2 2)状态寄存器()状态寄存器(SRSR)也不能直接读,只能通也不能直接读,只能通 过读状态锁存器(过读状态锁存器(SLSL)实现(先写读回命实现(先写读回命 令,再读令,再读SLSL)。)。(3 3)CECE、CRCR和和OLOL都是都是1616位,对位,对CRCR写入和对写入和对OLOL读出读出 必须分两次进行。若初始化时只写必须分两次进行。若初始化时只写CRCR一个字一个字 节,则另一字节保持为节,则另一字节保持为0 0。7.2.2 82547.2.2 8254内部结构与引脚信号内部结构与引脚信号注意:注意:11v读读/ /写控制逻辑:写控制逻辑:接收系统总线来的地址和读写接收系统
12、总线来的地址和读写 信号,并变换为内部控制信号。信号,并变换为内部控制信号。82548254各端口读各端口读/ /写控制作用写控制作用CSCSRDRDWRWRA1A1A0A0读读/ /写操作说明写操作说明0 00 00 00 00 00 00 00 00 01 11 11 11 10 00 00 00 00 01 11 11 10 00 01 11 10 00 01 10 01 10 01 10 01 10 00 01 10 00 01 11 11 11 11 1写计数通道写计数通道0 0的的CRCR写计数通道写计数通道1 1的的CRCR写计数通道写计数通道2 2的的CRCR写控制寄存器写控制
13、寄存器读通道读通道0 0的的OLOL或状态锁存器或状态锁存器读通道读通道1 1的的OLOL或状态锁存器或状态锁存器读通道读通道2 2的的OLOL或状态锁存器或状态锁存器无操作无操作禁止使用禁止使用无操作无操作7.2.2 82547.2.2 8254内部结构与引脚信号内部结构与引脚信号127.2.3 82547.2.3 8254的工作方式的工作方式各计数器通道均有各计数器通道均有6 6种工作方式可供选择:种工作方式可供选择:工作于任一方式,都必须先初始化:工作于任一方式,都必须先初始化:v写控制字至控制寄存器(端口写控制字至控制寄存器(端口3 3):):选择所选择所 需方式,需方式,CRCR清零
14、,清零,OUTOUT置于规定状态。置于规定状态。v写计数初值至写计数初值至CRCR。q方式方式0 0计数结束中断方式计数结束中断方式q方式方式1 1硬件可重触发单稳方式硬件可重触发单稳方式q方式方式2 2速率波发生器方式速率波发生器方式q方式方式3 3方波方式方波方式q方式方式4 4软件触发选通方式软件触发选通方式q方式方式5 5硬件触发选通方式硬件触发选通方式137.2.3 82547.2.3 8254的工作方式的工作方式1.1.方式方式0 0:计数结束中断方式:计数结束中断方式q基本功能:基本功能: 写入控制字后,写入控制字后,OUTOUT信号变为低电平,并信号变为低电平,并维持低电平至维
15、持低电平至CECE的内容到达零时,此后的内容到达零时,此后OUTOUT信信号变为高电平,并维持高电平至再次写入新的号变为高电平,并维持高电平至再次写入新的计数值或重新写入控制字。计数值或重新写入控制字。 GATE GATE用于开放(用于开放(“1”)“1”)或禁止(或禁止(“0”)“0”)计计数。数。 OUTOUT输出的计数结束信号可作为中断请求输出的计数结束信号可作为中断请求信号。信号。14q工作特点:工作特点:v计数由软件启动,每次写入计数初值,只启计数由软件启动,每次写入计数初值,只启 动一次计数。动一次计数。vCPUCPU写计数初值到写计数初值到CRCR后,后,CRCR内容并不立即装入
16、内容并不立即装入 CE CE,而是在其后的下一个而是在其后的下一个CLKCLK脉冲下降沿才脉冲下降沿才CRCR 内容装入内容装入CECE,对该对该CLKCLK脉冲不计数。所以,若脉冲不计数。所以,若 计数初值为计数初值为n n,则必须在出现则必须在出现n+1n+1个个CLKCLK脉冲后,脉冲后, OUT OUT才变高。才变高。v计数过程中,如果计数过程中,如果GATE=0GATE=0则暂停计数,直到则暂停计数,直到 GATE=1 GATE=1后再接着计数。后再接着计数。v计数过程中写入新的计数初值,从写入后下一计数过程中写入新的计数初值,从写入后下一 个时钟脉冲开始,以新的初值计数。个时钟脉冲
17、开始,以新的初值计数。15q方式方式0 0定时波形:定时波形:7.2.3 82547.2.3 8254的工作方式的工作方式0 0162.2.方式方式1 1:硬件可重触发单稳方式:硬件可重触发单稳方式q基本功能:基本功能: 计数器相当于一个可编程的单稳态触发计数器相当于一个可编程的单稳态触发电路,触发输入为电路,触发输入为GATEGATE信号(上升沿),单信号(上升沿),单脉冲输出为脉冲输出为OUTOUT信号。信号。7.2.3 82547.2.3 8254的工作方式的工作方式17q工作特点:工作特点:v从从GATEGATE上升沿起下一个上升沿起下一个CLKCLK脉冲使脉冲使OUTOUT由高变低由
18、高变低, , 直到直到CECE计为计为0 0,OUTOUT才恢复为高,形成一个宽度才恢复为高,形成一个宽度 为为n n倍倍CLKCLK周期的输出负脉冲。周期的输出负脉冲。v此方式允许多次触发(即具有可重触发性),此方式允许多次触发(即具有可重触发性), 一旦控制字设置为方式一旦控制字设置为方式1 1,并向,并向CRCR置了初值,在置了初值,在 没有新的初值置入前,此初值在没有新的初值置入前,此初值在CRCR中保持不变。中保持不变。v在在OUTOUT未恢复高电平前,若未恢复高电平前,若GATEGATE端又出现新的触端又出现新的触 发信号上升沿,则发信号上升沿,则CECE又从初值开始重新计数,又从
19、初值开始重新计数, 其结果将延长其结果将延长OUTOUT输出的负脉冲宽度。输出的负脉冲宽度。18q方式方式1 1定时波形:定时波形:7.2.3 82547.2.3 8254的工作方式的工作方式193.3.方式方式2 2:速率波发生器方式(:速率波发生器方式(n n分频方式)分频方式)q基本功能:基本功能: OUT OUT端输出一周期性负脉冲序列,其负端输出一周期性负脉冲序列,其负脉冲宽度为一个脉冲宽度为一个CLKCLK脉冲周期,负脉冲频率脉冲周期,负脉冲频率为为CLKCLK信号频率的信号频率的1/1/n n(n n为为CRCR初值)。初值)。7.2.3 82547.2.3 8254的工作方式的
20、工作方式20q工作特点:工作特点:v写入控制字使计数器进入工作方式后写入控制字使计数器进入工作方式后, ,OUTOUT 输出高电平,这时若装入计数初值输出高电平,这时若装入计数初值n n,则从其则从其 后的下个后的下个CLKCLK下降沿起立即开始计数,下降沿起立即开始计数,OUTOUT保保 持高电平不变;待计数值减到持高电平不变;待计数值减到1 1时时, ,OUTOUT输出宽输出宽 度为一个度为一个CLKCLK周期的负脉冲周期的负脉冲, ,至计数值为至计数值为0 0时时 , , 自动重新装入计数初值自动重新装入计数初值n,n,实现循环计数。实现循环计数。v可由软件通过写计数初值启动可由软件通过
21、写计数初值启动( (GATEGATE恒为高电平恒为高电平),), 也可由也可由GATEGATE上升沿启动上升沿启动( (已装入计数初值已装入计数初值) )。vGATEGATE变低电平时停止计数变低电平时停止计数; ;而当而当GATEGATE由低重新变由低重新变 高时高时, ,重新由初值开始计数。重新由初值开始计数。21q方式方式2 2定时波形:定时波形:7.2.3 82547.2.3 8254的工作方式的工作方式22. .方式方式: :方波方式方波方式q基本功能:基本功能: OUT OUT输出的是方波输出的是方波( (计数初值为偶数计数初值为偶数时时) )或近似方波或近似方波( (计数初值为奇
22、数时计数初值为奇数时) )信号。信号。其典型用法是作波特率发生器。其典型用法是作波特率发生器。7.2.3 82547.2.3 8254的工作方式的工作方式23q工作特点:工作特点:v当写入控制字使之进入该方式后,当写入控制字使之进入该方式后,OUTOUT输出低输出低 电平;在装入计数初值后的下个电平;在装入计数初值后的下个CLKCLK下降沿,下降沿, OUT OUT由低变由低变 高,开始减法计数。高,开始减法计数。v若计数初值若计数初值n n为偶数,作减为偶数,作减2 2计数,计至计数,计至0 0时时OUTOUT 变低;然后再自动从初值开始作减变低;然后再自动从初值开始作减2 2计数,计计数,
23、计 至至0 0时时OUTOUT又变高。如此周而复始,又变高。如此周而复始,OUTOUT输出的输出的 是占空比为是占空比为1/21/2、周期为、周期为n n个个CLKCLK周期的方波。周期的方波。24v若若n n为奇数,在为奇数,在OUTOUT变高时,初值减变高时,初值减1 1成为偶数,成为偶数, 再对再对CLKCLK作减作减2 2计数,减至计数,减至0 0时延迟一个时延迟一个CLKCLK脉冲脉冲 后后OUTOUT变低;此时初值再次减变低;此时初值再次减1 1后作减后作减2 2计数,计数, 至至0 0时时OUTOUT变高。如此周而复始,变高。如此周而复始,OUTOUT端得到的端得到的 是占空比为
24、是占空比为 , ,1212nn周期为周期为n n个个CLKCLK周期的近似方波。周期的近似方波。7.2.3 82547.2.3 8254的工作方式的工作方式q工作特点(续):工作特点(续):25v计数过程中出现计数过程中出现GATEGATE变低时,变低时,CECE暂停对暂停对CLKCLK计计 数,直到数,直到GATEGATE再次由低变高时,重新启动计数再次由低变高时,重新启动计数 过程,过程, 从初值从初值n n开始计数。开始计数。v要改变输出方波的速率,可在任何时候向要改变输出方波的速率,可在任何时候向CRCR重重 新写入新的计数初值新写入新的计数初值n n,并从下一个并从下一个CLKCLK
25、脉冲开脉冲开 始起作用。始起作用。q工作特点(续):工作特点(续):26q方式方式3 3定时波形:定时波形:7.2.3 82547.2.3 8254的工作方式的工作方式275.5.方式方式4:4:软件触发选通方式软件触发选通方式q基本功能:基本功能: 由软件通过写计数初值触发由软件通过写计数初值触发( (启动启动) ),在在OUTOUT端产生一个宽度为端产生一个宽度为1 1个个CLKCLK周期的负周期的负选通脉冲。选通脉冲。7.2.3 82547.2.3 8254的工作方式的工作方式28q工作特点:工作特点:v当写入控制字使之进入方式当写入控制字使之进入方式4 4后,后,OUTOUT变高;此变
26、高;此 后从装入计数初值的下个后从装入计数初值的下个CLKCLK下降沿开始作减下降沿开始作减 1 1计数,计至计数,计至0 0时,时,OUTOUT端输出一个宽度为端输出一个宽度为1 1个个 CLK CLK周期的负脉冲。周期的负脉冲。v计数过程中若计数过程中若GATEGATE变低,则停止计数,直到变低,则停止计数,直到GATEGATE 恢复到高时,重新从初值开始减恢复到高时,重新从初值开始减1 1计数。计数。v计数过程中若改变计数过程中若改变( (重写重写) )计数初值,将从改变计数初值,将从改变 之后的下个之后的下个CLKCLK脉冲起,按新初值重新开始计数。脉冲起,按新初值重新开始计数。v软件
27、装入的计数初值只一次有效。软件装入的计数初值只一次有效。29q方式方式4 4定时波形:定时波形:7.2.3 82547.2.3 8254的工作方式的工作方式306.6.方式方式5 5:硬件触发选通方式:硬件触发选通方式q基本功能:基本功能: 通过由通过由GATEGATE端引入的硬件触发信号,端引入的硬件触发信号,在在OUTOUT端产生一个宽度为端产生一个宽度为1 1个个CLKCLK周期的负周期的负选通脉冲。选通脉冲。7.2.3 82547.2.3 8254的工作方式的工作方式31q工作特点:工作特点:v当写入控制字使之进入方式当写入控制字使之进入方式5 5后,后,OUTOUT输出高电平;输出高
28、电平; 装入计数初值后,待装入计数初值后,待GATEGATE端出现触发信号端出现触发信号( (上升沿上升沿 ) ),才开始减,才开始减1 1计数,计至计数,计至0 0时,时,OUTOUT端输出一个宽端输出一个宽 度为度为1 1个个CLKCLK周期的负脉冲。周期的负脉冲。v当计数值计到当计数值计到0 0后,自动重新装入初值后,自动重新装入初值n n,但并不开但并不开 始计数,而是待始计数,而是待GATEGATE端出现新的上升沿后才重新端出现新的上升沿后才重新 作减作减1 1计数。计数。32vCPUCPU可在任何时候用输出指令装入新的计数可在任何时候用输出指令装入新的计数 初值初值n n,但并不影
29、响正在进行的操作过程,但并不影响正在进行的操作过程, 要到下一个计数操作周期才按新的初值操要到下一个计数操作周期才按新的初值操 作。不过写入新初值后,若计数值到达作。不过写入新初值后,若计数值到达0 0之之 前前GATEGATE端加了触发信号端加了触发信号( (上升沿上升沿) ),则下一个,则下一个 CLK CLK脉冲将使新初值装入脉冲将使新初值装入CECE,并从它开始新并从它开始新 的计数。的计数。q工作特点工作特点( (续)续):33q方式方式5 5定时波形:定时波形:7.2.3 82547.2.3 8254的工作方式的工作方式34 综上所述,对于不同的工作方式,门控信号综上所述,对于不同
30、的工作方式,门控信号GATEGATE端所起的作用各不相同,端所起的作用各不相同,8254/82538254/8253应用中必应用中必须正确使用它,才能保证计数通道的正常工作。须正确使用它,才能保证计数通道的正常工作。GATEGATE在各种工作方式中的功能在各种工作方式中的功能工作方式工作方式GATE=0GATE=0及下降沿及下降沿GATEGATE上升沿上升沿GATE=1GATE=1方式方式0(0(计数结束中断计数结束中断) )方式方式1(1(可重触发单稳可重触发单稳) )方式方式2(2(速率波发生器速率波发生器) )方式方式3(3(方波发生器方波发生器) )方式方式4(4(软件触发选通软件触发
31、选通) )方式方式5(5(硬件触发选通硬件触发选通) )停止计数停止计数无意义无意义停止计数停止计数停止计数停止计数停止计数停止计数无意义无意义无意义无意义从初值开始重新计数从初值开始重新计数从初值开始重新计数从初值开始重新计数从初值开始重新计数从初值开始重新计数从初值开始重新计数从初值开始重新计数硬件触发信号硬件触发信号允许计数允许计数无意义无意义允许计数允许计数允许计数允许计数允许计数允许计数无意义无意义7.2.3 82547.2.3 8254的工作方式的工作方式357.2.4 82547.2.4 8254的编程的编程下列情况需要对下列情况需要对82548254编程:编程:v工作之前写入控
32、制字,以确定每个计数器通工作之前写入控制字,以确定每个计数器通 道的工作方式(写端口道的工作方式(写端口3 3)v工作之前写入每个计数器通道计数初值(写工作之前写入每个计数器通道计数初值(写 端口端口0 0,1 1,2 2)v工作过程中改变某通道的计数初值工作过程中改变某通道的计数初值v写入命令字(包括计数器锁存命令字和读写入命令字(包括计数器锁存命令字和读 回命令字,即写端口回命令字,即写端口3 3),为读某计数通道),为读某计数通道 的当前的当前CECE内容和状态寄存器内容做准备内容和状态寄存器内容做准备v读状态字(读端口读状态字(读端口0 0,1 1,2 2)v读当前读当前CECE内容(
33、读端口内容(读端口0 0,1 1,2 2)367.2.4 82547.2.4 8254的编程的编程1.1.控制字控制字 8254/82538254/8253工作前,必须由工作前,必须由CPUCPU向它的控制寄向它的控制寄存器(端口存器(端口3 3)写入方式选择控制字。)写入方式选择控制字。82548254控制字格式控制字格式D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0SC1SC1SC0 SC0 RW1 RW1 RW0 RW0 M2 M2 M1 M1 M0 M0 BCD BCD 选计数通道选计数通道0000010110101111选通道选通道0 0无意义无意义选通道选通道1
34、1选通道选通道2 20000010110101111选读选读/ /写格式写格式锁存锁存CECE数据数据只读写低字节只读写低字节只读写高字节只读写高字节先读写低字节先读写低字节再读写高字节再读写高字节选计数码制选计数码制0 01 1二进制数二进制数BCDBCD码数码数00000010100010011111100100101101方式方式0 0方式方式1 1方式方式2 2方式方式3 3方式方式4 4方式方式5 5 选工作方式选工作方式372.2.命令字和状态字命令字和状态字 8254 8254有两种命令字:计数器锁存命令字有两种命令字:计数器锁存命令字和读回命令字。和读回命令字。82538253
35、只有锁存命令字。只有锁存命令字。v锁存命令字:锁存命令字:用来将当前的用来将当前的CECE内容锁存到输内容锁存到输 出锁存器出锁存器OLOL,以供以供CPUCPU读出。读出。其格式为:其格式为:D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0SC1SC1SC0 SC0 0 0 0 0 7.2.4 82547.2.4 8254的编程的编程38v读回命令字:读回命令字:用于将计数器通道的用于将计数器通道的CECE当前内容锁当前内容锁 存入存入OLOL或或/ /和将状态寄存器内容锁存入状态锁存器。和将状态寄存器内容锁存入状态锁存器。 和锁存命令不同,读回命令能同时锁存几个和锁存命令不
36、同,读回命令能同时锁存几个计数器通道的当前计数器通道的当前CECE内容和状态寄存器内容。内容和状态寄存器内容。7.2.4 82547.2.4 8254的编程的编程0:0:锁存当前计数锁存当前计数器内容器内容 1:1:选中通道选中通道2 20:0:锁存状态寄存器内容锁存状态寄存器内容1:1:选中通道选中通道0 01:1:选中通道选中通道1 1 读回命令字格式读回命令字格式: :D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D01 11 1COUNT COUNT STATUSSTATUSCNT2CNT2CNT1CNT1CNT0CNT00 039v状态字状态字 每个计数器通道对应有一个
37、状态寄存器和一每个计数器通道对应有一个状态寄存器和一个状态锁存器。各通道的状态字格式完全相同。个状态锁存器。各通道的状态字格式完全相同。7.2.4 82547.2.4 8254的编程的编程OUTOUT引脚引脚现行状态现行状态状态字格式状态字格式: :D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0OUTOUT NULLNULLCOUNTCOUNTRW1RW1 RW0RW0M2 M2 M1M1M0M0BCDBCD1:1:无效计数无效计数0:0:可读计数可读计数读读/ /写格式写格式选工作方式选工作方式1:1:BCDBCD码计数码计数0:0:二进制计数二进制计数40v读当前计数值读
38、当前计数值/ /状态字的方法和原则:状态字的方法和原则:(1 1)要读当前计数值或)要读当前计数值或/ /和当前状态,必须先写读和当前状态,必须先写读 回命令,再读回命令,再读OLOL或或/ /和和SLSL。(2 2)对同一通道的计数器或状态寄存器发多次读)对同一通道的计数器或状态寄存器发多次读 回命令,但每次未立即读取回命令,但每次未立即读取CECE或或SRSR,则只有则只有 第一次读回命令引起的锁存操作是有效的,第一次读回命令引起的锁存操作是有效的, 以后读出的值或状态仅是第一次读回命令锁以后读出的值或状态仅是第一次读回命令锁 存的结果。存的结果。(3 3)若读回命令同时或先后锁存了同一通
39、道的计数)若读回命令同时或先后锁存了同一通道的计数 值和状态,则对该通道第一次读出的结果一定值和状态,则对该通道第一次读出的结果一定 是状态字(是状态字(8 8位),随后的一次或两次读出的位),随后的一次或两次读出的 才是计数值(一次还是两次,取决于初始化时才是计数值(一次还是两次,取决于初始化时 控制字确定的计数值字节数)。控制字确定的计数值字节数)。7.2.4 82547.2.4 8254的编程的编程41v读回命令举例:读回命令举例:命命 令令命令作用命令作用执行结果执行结果次序次序D7D6D5D4D3D2D1D01 12 23 34 45 56 61 1 0 0 0 0 1 01 1 1
40、 0 0 1 0 01 1 1 0 1 1 0 01 1 0 1 1 0 0 01 1 0 0 0 1 0 01 1 1 0 0 0 1 0读回通道读回通道0 0的计的计数值和状态数值和状态读回通道读回通道1 1的状态的状态读回通道读回通道2 2、1 1的的状态状态读回通道读回通道2 2的计数值的计数值读回通道读回通道1 1的计数的计数值和状态值和状态读回通道读回通道0 0的状态的状态锁存通道锁存通道0 0的计数值的计数值和状态和状态锁存通道锁存通道1 1的状态的状态锁存通道锁存通道2 2的状态,的状态,但对通道但对通道1 1无效无效锁存通道锁存通道2 2的计数值的计数值锁存通道锁存通道1 1
41、的计数的计数值,但对状态无效值,但对状态无效命令无效,通道命令无效,通道0 0的状态早已锁存的状态早已锁存7.2.4 82547.2.4 8254的编程的编程422.2.编程方法及举例编程方法及举例(1 1)编程方法)编程方法包括初始化编程和工作编程。包括初始化编程和工作编程。q初始化编程必须在初始化编程必须在8254/82538254/8253工作之前进行。工作之前进行。q对每个用到的通道都要初始化:先向控制寄对每个用到的通道都要初始化:先向控制寄存器(端口存器(端口3 3)写入方式控制字,再以通道地址)写入方式控制字,再以通道地址(端口(端口0 0,1 1或或2 2)向)向CRCR写入计数
42、初值。写入计数初值。q如在工作过程中需要读取某通道的当前状态或如在工作过程中需要读取某通道的当前状态或当前当前CECE值,应先向控制寄存器地址(端口值,应先向控制寄存器地址(端口3 3)写读)写读回命令,再从该通道地址(端口回命令,再从该通道地址(端口0 0,1 1或或2 2)读出相)读出相应锁存器内容。应锁存器内容。7.2.4 82547.2.4 8254的编程的编程43(2 2)编程举例)编程举例 以以80868086系统中用系统中用82548254构成的定时、计数构成的定时、计数与脉冲发生器系统为例。与脉冲发生器系统为例。q系统功能:系统功能:v利用通道利用通道0 0完成对外部事件计数功
43、能完成对外部事件计数功能, ,计满计满 100 100次向次向CPUCPU发中断请求。发中断请求。v利用通道利用通道1 1产生频率为产生频率为1 1kHZkHZ的方波。的方波。v利用通道利用通道2 2作作1 1s s标准时钟。标准时钟。7.2.4 82547.2.4 8254的编程的编程44q系统的硬件连接:系统的硬件连接:CLK1 2.5MHZCLK1 2.5MHZ8086cpuD7D7D0D0D7D7D0D0RDRDRDRDWRWRWRWRM/IOM/IOA15A15A3A3A0=0A0=0A2A2A1A1INTRINTRCSCS地址地址译码译码A1A1A0A082548254通道通道1
44、1通通道道2 2通通道道0 0GATE1GATE1OUT1OUT11 1kHZkHZCLK2CLK2GATE2GATE2OUT2OUT2CLK0CLK0GATE0GATE0OUT0OUT0示波器或其它示波器或其它波形接收器波形接收器外部事件外部事件产生源产生源IR0IR0IR1IR1IR2IR2IR7IR782598259A A 7.2.4 82547.2.4 8254的编程的编程1 1s s45qCPUCPU接口侧应注意两个特点:接口侧应注意两个特点:(1 1)82548254的数据线(的数据线(D7D7D0D0)固定与系统总线的低固定与系统总线的低8 8 位数据线(位数据线(D7D7D0D
45、0)相连。相连。(2 2)82548254端口地址线端口地址线A1A1、A0A0与系统地址线与系统地址线A2A2、A1A1相相 连,系统地址线连,系统地址线A0A0固定为固定为“0”“0”,参加高位地址,参加高位地址 译码,以形成对译码,以形成对82548254的片选信号的片选信号CSCS。(。(目的目的 是保证是保证4 4个端口地址均为偶数地址。为什么?)个端口地址均为偶数地址。为什么?)这两点对初始化编程和工作编程有直接影响。这两点对初始化编程和工作编程有直接影响。7.2.4 82547.2.4 8254的编程的编程46q初始化程序:初始化程序: 先应根据硬件连接和系统要求,确定各计数先应
46、根据硬件连接和系统要求,确定各计数通道的工作方式和计数初值。通道的工作方式和计数初值。STTSTT:MOV DXMOV DX,port3 port3 ;定义通道定义通道0 0工作于方式工作于方式0 0 MOV ALMOV AL,10H10H OUT DX OUT DX,ALAL MOV DX MOV DX,port0 port0 ;给通道给通道0 0送计数初值送计数初值 MOV ALMOV AL,64H64H OUT DX OUT DX,ALAL MOV DX MOV DX,port3 port3 ;定义通道定义通道1 1为方式为方式3 3 MOV ALMOV AL,76H76H OUT DX
47、 OUT DX,ALAL MOV DX MOV DX,port1 port1 ;给通道给通道1 1送计数初值送计数初值 MOV AXMOV AX,09C4H09C4H OUT DX OUT DX,AL AL ;先送低字节(先送低字节(C4HC4H) MOV AL MOV AL,AHAH 7.2.4 82547.2.4 8254的编程的编程47q初始化程序:初始化程序:( (续)续) OUT DX OUT DX,AL AL ;再送高字节(再送高字节(0909H H) MOV DX MOV DX,port3 port3 ;定义通道定义通道2 2为方式为方式3 3 MOV ALMOV AL,B7HB
48、7H OUT DX OUT DX,ALAL MOV DX MOV DX,port2 port2 ;给通道给通道2 2送计数初值送计数初值 MOV AXMOV AX,03E8H03E8H OUT DX OUT DX,AL AL ;先送低字节(先送低字节(E8HE8H) MOV AL MOV AL,AHAH OUT DX OUT DX,AL AL ;再送高字节(再送高字节(0303H H) MOV DX MOV DX,8259A8259A偶地址端口;对偶地址端口;对82598259A A初始化,先写入初始化,先写入ICW1ICW1、ICW2ICW2 ;ICW4 ;ICW4和和OCW1OCW1。定义
49、定义82548254通道通道0 0和通道和通道2 2的的 ;中断类型代码分别为;中断类型代码分别为5050H H和和5252H H。 MOV AL MOV AL,13H 13H ;写写ICW1ICW1 OUT DX OUT DX,ALAL MOV DX MOV DX,8259A8259A奇地址端口奇地址端口 MOV ALMOV AL,50H 50H ;写写ICW2ICW2 7.2.4 82547.2.4 8254的编程的编程48q初始化程序:初始化程序:( (续)续)7.2.4 82547.2.4 8254的编程的编程 OUT DX OUT DX,ALAL MOV AL MOV AL,03H
50、03H ;写写ICW4ICW4 OUT DX OUT DX,ALAL MOV AL MOV AL,0FAH 0FAH ;写写OCW1OCW1 OUT DX OUT DX,ALAL STI STI 497.3 82547.3 8254在在PCPC系列机定时系统中的应用系列机定时系统中的应用qPCPC系列机定时系统包括两部分:系列机定时系统包括两部分:vCPUCPU内部控制时序产生电路:内部控制时序产生电路:主要用于内部主要用于内部 指令执行过程。指令执行过程。vI/OI/O接口芯片的定时产生电路:接口芯片的定时产生电路:由由82548254负责。负责。 以以PC/ATPC/AT机为例则:机为例则
51、:日历时钟由通道日历时钟由通道0 0完成完成DRAMDRAM刷新由通道刷新由通道1 1完成完成音频信号产生(驱动扬声器音频信号产生(驱动扬声器) )由通道由通道2 2完成完成507.3 82547.3 8254在在PCPC系列机定时系统中的应用系列机定时系统中的应用82548254各通道在各通道在ATAT定时系统中的作用及信号规定:定时系统中的作用及信号规定:计数器通道计数器通道0 0计数器通道计数器通道1 1计数器通道计数器通道2 2功能功能GATEGATECLKCLKOUTOUT时钟信号发生器时钟信号发生器 刷新请求发生器刷新请求发生器 音频信号发生器音频信号发生器+5+5V V程控程控+
52、5+5V V1.193 181 61.193 181 6MHzMHz1.193 181 61.193 181 6MHzMHz 1.193 181 61.193 181 6MHzMHz82598259A IRQ0A IRQ08237 8237 DREQ0DREQ0扬声器扬声器51qPC/ATPC/AT机定时系统结构框图机定时系统结构框图7.3 82547.3 8254在在PCPC系列机定时系统中的应用系列机定时系统中的应用PCLKPCLKD DQ QCLRCLRQ QRESETRESET+5+5V VDACK0(DACK0(来自来自82578257)来自来自82558255PB0(PB0(端口端
53、口00610061H)H)IORIORIOWIOWT/CCST/CCSA1A1A0A0D7D7D0D0来自来自82558255PB1(PB1(端口端口00610061H)H)GATE0GATE0CLK0CLK0GATE1GATE1CLK1CLK1CLK2CLK2GATE2GATE2RDRDWRWRCSCSA1A1A0A0D7D7D0D0OUT0OUT0OUT1OUT1OUT2OUT282548254D DS SQ QCLRCLR+5+5V VIRQ0(IRQ0(到到82598259A A)DRAMDRAM刷新请刷新请求求& &SPK(SPK(去扬声器去扬声器) )功放功放与低与
54、低通滤通滤波波. . . . .52q82548254三个通道在三个通道在PC/ATPC/AT机中的使用原理机中的使用原理v通道通道0 0:工作于方式工作于方式3 3,计数初值(即,计数初值(即6553665536)。)。 用作实时时钟信号发生器,每输出一用作实时时钟信号发生器,每输出一 个方波,产生一次个方波,产生一次0 0级中断,调用级中断,调用 INT 8HINT 8H一次。一次。INT 8HINT 8H中断服务程序的功能:中断服务程序的功能:完成日时钟计时;完成日时钟计时;实现软驱马达开启时间管理实现软驱马达开启时间管理, ,使其开启一段使其开启一段 时间完成数据存取操作后,自动延时关
55、停;时间完成数据存取操作后,自动延时关停;进行进行INT 1CHINT 1CH软中断调用,为用户提供软中断调用,为用户提供 可用的定时操作服务程序入口。可用的定时操作服务程序入口。7.3 82547.3 8254在在PCPC系列机定时系统中的应用系列机定时系统中的应用53v通道通道1 1:工作于方式工作于方式2 2,计数初值为,计数初值为1818(即(即 0012 0012H H)。)。每隔每隔15.0815.08ss产生一负脉产生一负脉 冲,用作冲,用作DRAMDRAM刷新时的定时控制。刷新时的定时控制。v通道通道 2 2:工作于方式工作于方式3 3,计数初值为,计数初值为05330533H H输出频输出频 率约为率约为900900HZHZ的方波,为扬声器发声提的方波,为扬声器发声提 供音频信号。供音
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论