计算机硬件技术基础7_第1页
计算机硬件技术基础7_第2页
计算机硬件技术基础7_第3页
计算机硬件技术基础7_第4页
计算机硬件技术基础7_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章定时器/计数器电路概述可编程定时器/计数器芯片82548254在PC系列机定时系统中的应用7.1概述在各种计算机系统中,经常要用到定时/延时和计数控制。实现定时/延时的基本方法:软件定时:执行循环程序。CPU利用率低。不可编程硬件定时:采用中小规模集成电路器件实现。单稳/555定时器--外加阻容器件加/减计数器--通过改变初值可改变定时长短电路连接好后,定时值不便控制和改变。可编程硬件定时:用可编程计数器实现。通过编程改变其计数初值和计数脉冲频率即可改变定时长短。27.1概述可编程定时器/计数器典型结构:数据读写复位准备就绪片选端口地址控制字寄存器计数初值寄存器计数器(计数工作单元)输出锁存器状态锁存器状态寄存器CLKGATEOUT控制逻辑3可编程定时器/计数器的主要用途:①以均匀分布的时间间隔中断分时操作系统,以便切换

程序;②向I/O设备输出周期可控的定时信号;③用作可编程波特率发生器;④检测外部事件发生的频率或周期;⑤统计外部某过程中某一事件发生的次数;⑥作为向CPU的定时或定次数中断源;……PC系列微机中普遍采用的可编程定时器/计数器是i8253/8254芯片。7.1概述47.2可编程定时器/计数器芯片i8254/8253

i8254是i8253的改进型,两者的功能基本相同,硬件组成、外部引脚和编程特性完全兼容。差别只在三点:①允许的最高计数频率不同;②8254中有状态寄存器和状态锁存器,而8253没有;③8254有读回命令,而8253没有。7.1概述57.2.18254的基本功能有3个独立的16位计数器通道;每个计数器可按二进制或十进制(BCD)计数;每个计数器可工作于6种不同工作方式;每个计数器允许的最高计数频率为10MHz(8253为2MHz)有读回命令(8253没有),可以读出当前计数单元的内

容和状态寄存器内容。

每个计数器通道的逻辑功能完全相同,既可作定时器用,又可作计数器用。无论用作定时器还是计数器,计数初值寄存器内容都可由CPU预置或修改。67.2.28254内部结构与引脚信号结构图D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND8254+5VWRRDCSA1A0CLK2OUT2GATE2CLK1OUT1GATE11246191213引脚图GATE0GATE28D7~D0RDWRA1A0CS数据总线缓冲器读写控制逻辑控制字寄存器计数器通道0计数器通道1计数器通道2CLK0OUT0CLK1GATE1OUT1CLK2OUT2内部总线○○○77.2.28254内部结构与引脚信号8254各主要组成部分:数据总线缓冲器控制字寄存器——8位只写寄存器,用于存放CPU写入芯片的方式选择控制字或命令字,由它来控制各计数器通道的工作方式。——控制字寄存器为3个计数器通道所共用。——写入控制字时,将同时清除计数初值寄存器内容。8计数器通道(3个):彼此独立,但结构和内容

完全相同。任一通道作计数器或定时器用时,其内部操作完全相同,区别仅在于:7.2.28254内部结构与引脚信号作计数器用时,对CLKi端输入的计数脉冲(间

隔不一定相同)作减1计数,要求计数的次数

可直接作为计数初值预置计数器通道;当减

到0时,OUTi端将输出一信号。作定时器用时,对周期一定的时钟脉冲作减1

计数,计数初值(定时系数)用下式计算

得到:定时系数要求定时的时间时钟脉冲周期=9(1)计数工作单元(CE)不能直接读/写。只能

通过写计数初值寄存器(CR)实现对CE初

值的修改,通过读输出锁存器(OL)实现

对CE内容的读取(先写读回命令,再读OL)。(2)状态寄存器(SR)也不能直接读,只能通

过读状态锁存器(SL)实现(先写读回命

令,再读SL)。(3)CE、CR和OL都是16位,对CR写入和对OL读出

必须分两次进行。若初始化时只写CR一个字

节,则另一字节保持为0。7.2.28254内部结构与引脚信号注意:10读/写控制逻辑:接收系统总线来的地址和读写信号,并变换为内部控制信号。8254各端口读/写控制作用CSRDWRA1A0读/写操作说明00000000011110000011100110010101010010011111××××××写计数通道0的CR写计数通道1的CR写计数通道2的CR写控制寄存器读通道0的OL或状态锁存器读通道1的OL或状态锁存器读通道2的OL或状态锁存器无操作禁止使用无操作7.2.28254内部结构与引脚信号117.2.38254的工作方式各计数器通道均有6种工作方式可供选择:工作于任一方式,都必须先初始化:写控制字至控制寄存器(端口3):选择所

需方式,CR清零,OUT置于规定状态。写计数初值至CR。方式0——计数结束中断方式方式1——硬件可重触发单稳方式方式2——速率波发生器方式方式3——方波方式方式4——软件触发选通方式方式5——硬件触发选通方式127.2.38254的工作方式1.方式0:计数结束中断方式基本功能:写入控制字后,OUT信号变为低电平,并维持低电平至CE的内容到达零时,此后OUT信号变为高电平,并维持高电平至再次写入新的计数值或重新写入控制字。GATE用于开放(“1”)或禁止(“0”)计数。

OUT输出的计数结束信号可作为中断请求信号。13工作特点:计数由软件启动,每次写入计数初值,只启动一次计数。CPU写计数初值到CR后,CR内容并不立即装入CE,而是在其后的下一个CLK脉冲下降沿才CR内容装入CE,对该CLK脉冲不计数。所以,若计数初值为n,则必须在出现n+1个CLK脉冲后,OUT才变高。计数过程中,如果GATE=0则暂停计数,直到GATE=1后再接着计数。计数过程中写入新的计数初值,从写入后下一个时钟脉冲开始,以新的初值计数。14方式0定时波形:7.2.38254的工作方式0152.方式1:硬件可重触发单稳方式基本功能:

计数器相当于一个可编程的单稳态触发电路,触发输入为GATE信号(上升沿),单脉冲输出为OUT信号。7.2.38254的工作方式16工作特点:从GATE上升沿起下一个CLK脉冲使OUT由高变低,直到CE计为0,OUT才恢复为高,形成一个宽度为n倍CLK周期的输出负脉冲。此方式允许多次触发(即具有可重触发性),一旦控制字设置为方式1,并向CR置了初值,在没有新的初值置入前,此初值在CR中保持不变。在OUT未恢复高电平前,若GATE端又出现新的触发信号上升沿,则CE又从初值开始重新计数,其结果将延长OUT输出的负脉冲宽度。17方式1定时波形:7.2.38254的工作方式183.方式2:速率波发生器方式(n分频方式)基本功能:OUT端输出一周期性负脉冲序列,其负脉冲宽度为一个CLK脉冲周期,负脉冲频率为CLK信号频率的1/n(n为CR初值)。7.2.38254的工作方式19工作特点:写入控制字使计数器进入工作方式2后,OUT输出高电平,这时若装入计数初值n,则从其后的下个CLK下降沿起立即开始计数,OUT保持高电平不变;待计数值减到1时,OUT输出宽度为一个CLK周期的负脉冲,至计数值为0时,自动重新装入计数初值n,实现循环计数。可由软件通过写计数初值启动(GATE恒为高电平),也可由GATE上升沿启动(已装入计数初值)。GATE变低电平时停止计数;而当GATE由低重新变高时,重新由初值开始计数。20方式2定时波形:7.2.38254的工作方式214.方式3:方波方式基本功能:OUT输出的是方波(计数初值为偶数时)或近似方波(计数初值为奇数时)信号。其典型用法是作波特率发生器。7.2.38254的工作方式22工作特点:当写入控制字使之进入该方式后,OUT输出低电平;在装入计数初值后的下个CLK下降沿,OUT由低变高,开始减法计数。若计数初值n为偶数,作减2计数,计至0时OUT变低;然后再自动从初值开始作减2计数,计至0时OUT又变高。如此周而复始,OUT输出的是占空比为1/2、周期为n个CLK周期的方波。23若n为奇数,在OUT变高时,初值减1成为偶数,再对CLK作减2计数,减至0时延迟一个CLK脉冲后OUT变低;此时初值再次减1后作减2计数,至0时OUT变高。如此周而复始,OUT端得到的是占空比为,周期为n个CLK周期的近似方波。7.2.38254的工作方式工作特点(续):24计数过程中出现GATE变低时,CE暂停对CLK计数,直到GATE再次由低变高时,重新启动计数过程,从初值n开始计数。要改变输出方波的速率,可在任何时候向CR重新写入新的计数初值n,并从下一个CLK脉冲开始起作用。工作特点(续):25方式3定时波形:7.2.38254的工作方式265.方式4:软件触发选通方式基本功能:由软件通过写计数初值触发(启动),在OUT端产生一个宽度为1个CLK周期的负选通脉冲。7.2.38254的工作方式27工作特点:当写入控制字使之进入方式4后,OUT变高;此后从装入计数初值的下个CLK下降沿开始作减1计数,计至0时,OUT端输出一个宽度为1个CLK周期的负脉冲。计数过程中若GATE变低,则停止计数,直到GATE恢复到高时,重新从初值开始减1计数。计数过程中若改变(重写)计数初值,将从改变之后的下个CLK脉冲起,按新初值重新开始计数。软件装入的计数初值只一次有效。28方式4定时波形:7.2.38254的工作方式296.方式5:硬件触发选通方式基本功能:通过由GATE端引入的硬件触发信号,在OUT端产生一个宽度为1个CLK周期的负选通脉冲。7.2.38254的工作方式30工作特点:当写入控制字使之进入方式5后,OUT输出高电平;装入计数初值后,待GATE端出现触发信号(上升沿),才开始减1计数,计至0时,OUT端输出一个宽度为1个CLK周期的负脉冲。当计数值计到0后,自动重新装入初值n,但并不开始计数,而是待GATE端出现新的上升沿后才重新作减1计数。31CPU可在任何时候用输出指令装入新的计数初值n,但并不影响正在进行的操作过程,要到下一个计数操作周期才按新的初值操作。不过写入新初值后,若计数值到达0之前GATE端加了触发信号(上升沿),则下一个CLK脉冲将使新初值装入CE,并从它开始新的计数。工作特点(续):32方式5定时波形:7.2.38254的工作方式33综上所述,对于不同的工作方式,门控信号GATE端所起的作用各不相同,8254/8253应用中必须正确使用它,才能保证计数通道的正常工作。GATE在各种工作方式中的功能工作方式GATE=0及下降沿GATE上升沿GATE=1方式0(计数结束中断)方式1(可重触发单稳)方式2(速率波发生器)方式3(方波发生器)方式4(软件触发选通)方式5(硬件触发选通)停止计数无意义停止计数停止计数停止计数无意义无意义从初值开始重新计数从初值开始重新计数从初值开始重新计数从初值开始重新计数硬件触发信号允许计数无意义允许计数允许计数允许计数无意义7.2.38254的工作方式347.2.48254的编程下列情况需要对8254编程:工作之前写入控制字,以确定每个计数器通

道的工作方式(写端口3)工作之前写入每个计数器通道计数初值(写

端口0,1,2)工作过程中改变某通道的计数初值写入命令字(包括计数器锁存命令字和读

回命令字,即写端口3),为读某计数通道

的当前CE内容和状态寄存器内容做准备读状态字(读端口0,1,2)读当前CE内容(读端口0,1,2)357.2.48254的编程1.控制字

8254/8253工作前,必须由CPU向它的控制寄存器(端口3)写入方式选择控制字。8254控制字格式D7D6D5D4D3D2D1D0SC1SC0RW1RW0M2M1M0BCD选计数通道00011011选通道0无意义选通道1选通道200011011选读/写格式锁存CE数据只读写低字节只读写高字节先读写低字节再读写高字节选计数码制01二进制数BCD码数000×10001×11100101方式0方式1方式2方式3方式4方式5

选工作方式362.命令字和状态字8254有两种命令字:计数器锁存命令字和读回命令字。8253只有锁存命令字。锁存命令字:用来将当前的CE内容锁存到输

出锁存器OL,以供CPU读出。其格式为:D7D6D5D4D3D2D1D0SC1SC000××××7.2.48254的编程37读回命令字:用于将计数器通道的CE当前内容锁

存入OL或/和将状态寄存器内容锁存入状态锁存器。和锁存命令不同,读回命令能同时锁存几个计数器通道的当前CE内容和状态寄存器内容。7.2.48254的编程0:锁存当前计数器内容1:选中通道20:锁存状态寄存器内容1:选中通道01:选中通道1读回命令字格式:D7D6D5D4D3D2D1D011COUNTSTATUSCNT2CNT1CNT0038状态字每个计数器通道对应有一个状态寄存器和一个状态锁存器。各通道的状态字格式完全相同。7.2.48254的编程OUT引脚现行状态状态字格式:D7D6D5D4D3D2D1D0OUT

NULLCOUNTRW1RW0M2M1M0BCD1:无效计数0:可读计数读/写格式选工作方式1:BCD码计数0:二进制计数39读当前计数值/状态字的方法和原则:(1)要读当前计数值或/和当前状态,必须先写读

回命令,再读OL或/和SL。(2)对同一通道的计数器或状态寄存器发多次读

回命令,但每次未立即读取CE或SR,则只有

第一次读回命令引起的锁存操作是有效的,

以后读出的值或状态仅是第一次读回命令锁

存的结果。(3)若读回命令同时或先后锁存了同一通道的计数

值和状态,则对该通道第一次读出的结果一定

是状态字(8位),随后的一次或两次读出的

才是计数值(一次还是两次,取决于初始化时

控制字确定的计数值字节数)。7.2.48254的编程40读回命令举例:命令命令作用执行结果次序D7D6D5D4D3D2D1D0123456110000101110010011101100110110001100010011100010读回通道0的计数值和状态读回通道1的状态读回通道2、1的

状态读回通道2的计数值读回通道1的计数

值和状态读回通道0的状态锁存通道0的计数值和状态锁存通道1的状态锁存通道2的状态,但对通道1无效锁存通道2的计数值锁存通道1的计数值,但对状态无效命令无效,通道0的状态早已锁存7.2.48254的编程412.编程方法及举例(1)编程方法包括初始化编程和工作编程。初始化编程必须在8254/8253工作之前进行。对每个用到的通道都要初始化:先向控制寄存器(端口3)写入方式控制字,再以通道地址(端口0,1或2)向CR写入计数初值。如在工作过程中需要读取某通道的当前状态或当前CE值,应先向控制寄存器地址(端口3)写读回命令,再从该通道地址(端口0,1或2)读出相应锁存器内容。7.2.48254的编程42(2)编程举例以8086系统中用8254构成的定时、计数与脉冲发生器系统为例。系统功能:利用通道0完成对外部事件计数功能,计满

100次向CPU发中断请求。利用通道1产生频率为1kHZ的方波。利用通道2作1s标准时钟。7.2.48254的编程43系统的硬件连接:CLK12.5MHZ○○○○8086cpuD7~D0D7~D0RDRDWRWRM/IOA15A3A0=0A2A1INTRCS地址译码A1A08254通道1通道2通道0GATE1OUT11kHZCLK2GATE2OUT2CLK0GATE0OUT0示波器或其它波形接收器外部事件产生源IR0IR1IR2IR78259A▪▪7.2.48254的编程1s44CPU接口侧应注意两个特点:(1)8254的数据线(D7~D0)固定与系统总线的低8

位数据线(D7~D0)相连。(2)8254端口地址线A1、A0与系统地址线A2、A1相

连,系统地址线A0固定为“0”,参加高位地址

译码,以形成对8254的片选信号CS。(目的

是保证4个端口地址均为偶数地址。为什么?)这两点对初始化编程和工作编程有直接影响。7.2.48254的编程45初始化程序:先应根据硬件连接和系统要求,确定各计数通道的工作方式和计数初值。STT:MOVDX,port3;定义通道0工作于方式0

MOVAL,10HOUTDX,ALMOVDX,port0;给通道0送计数初值

MOVAL,64HOUTDX,ALMOVDX,port3;定义通道1为方式3

MOVAL,76HOUTDX,ALMOVDX,port1;给通道1送计数初值

MOVAX,09C4HOUTDX,AL;先送低字节(C4H)MOVAL,AH

7.2.48254的编程46初始化程序:(续)OUTDX,AL;再送高字节(09H)MOVDX,port3;定义通道2为方式3

MOVAL,B7HOUTDX,ALMOVDX,port2;给通道2送计数初值

MOVAX,03E8HOUTDX,AL;先送低字节(E8H)MOVAL,AHOUTDX,AL;再送高字节(03H)MOVDX,8259A偶地址端口;对8259A初始化,先写入ICW1、ICW2;ICW4和OCW1。定义8254通道0和通道2的;中断类型代码分别为50H和52H。MOVAL,13H;写ICW1OUTDX,ALMOVDX,8259A奇地址端口

MOVAL,50H;写ICW2

7.2.48254的编程47初始化程序:(续)7.2.48254的编程OUTDX,ALMOVAL,03H;写ICW4OUTDX,ALMOVAL,0FAH;写OCW1OUTDX,ALSTI487.38254在PC系列机定时系统中的应用PC系列机定时系统包括两部分:CPU内部控制时序产生电路:主要用于内部

指令执行过程。I/O接口芯片的定时产生电路:由8254负责。

以PC/AT机为例则:日历时钟由通道0完成DRAM刷新由通道1完成音频信号产生(驱动扬声器)由通道2完成497.38254在PC系列机定时系统中的应用8254各通道在AT定时系统中的作用及信号规定:计数器通道0计数器通道1计数器通道2功能GATECLKOUT时钟信号发生器刷新请求发生器音频信号发生器+5V程控+5V1.1931816MHz1.1931816MHz1.1931816MHz8259AIRQ08237DREQ0扬声器50PC/AT机定时系统结构框图7.38254在PC系列机定时系统中的应用PCLKDQCLRQRESET+5VDACK0(来自8257)⃘⃘⃘⃘⃘⃘⃘⃘来自8255PB0(端口0061H)IORIOWT/CCSA1A0D7~D0来自8255PB1(端口0061H)GATE0CLK0GATE1CLK1CLK2GATE2RDWRCSA1A0D7~D0OUT0OUT1OUT28254DSQCLR+5VIRQ0(到8259A)DRAM刷新请求&SPK(去扬声器)功放与低通滤波....518254三个通道在PC/AT机中的使用原理通道0:工作于方式3,计数初值(即65536)。

用作实时时钟信号发生器,每输出一

个方波,产生一次0级中断,调用

INT8H一次。INT8H中断服务程序的功能:完成日时钟计时;实现软驱马达开启时间管理,使其开启一段

时间完成数据存取操作后,自动延时关停;进行INT1CH软中断调用,为用户提供

可用的定时操作服务程序入口。7.38254在PC系列机定时系统中的应用52通道1:工作于方式2,计数初值为18(即

0012H)。每隔15.08μs产生一负脉

冲,用作DRAM刷新时的定时控制。通道2:工作于方式3,计数初值为0533H输出频

率约为900HZ的方波,为扬声器发声提

供音频信号。利用通道2的配置,可实现软件控制发声,也可实现硬件控制发声。软件控制发声:CPU控制8255A的PB1(即端口61H的D1

位)的电平变化使扬声器发声。这时需要将8254的

OUT2置于高电平,以允许来自PB1的音频信号通过与门。硬件控制发声:利用8254通道2工作于方式3输出音频

信号来使扬声器发声。这是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论