并行接口及定时计数控制讲述.pptx
第7章 并行接口及定时计数控制 1n“大禹 圣者,乃惜寸阴,至於众人,当惜分阴。”晋书陶侃传第1页/共92页第7章 并行接口及定时计数控制 2古代计时工古代计时工具具现代计时工具日常生活的计时工具及计时概念第2页/共92页第7章 并行接口及定时计数控制 3 CPU的总指挥-晶振:电路及实物晶振也分有源及无源有源晶振怎么用?无源晶振怎么用?CPU的计时工具及计时概念 晶振的频率与指令执行的时间第3页/共92页第7章 并行接口及定时计数控制 41 并行接口8255A2 计数器/定时器8253/8254【知识点】【主要内容主要内容】n8255并行接口电路n8253计数器/定时器第4页/共92页第7章 并行接口及定时计数控制 5【主要内容主要内容】n8255并行接口电路n8253计数器/定时器第5页/共92页第7章 并行接口及定时计数控制 6n 8253的引脚和六种工作方式n 8253的编程n 8253在IBM PC系列机上的应用学习重点7.2 计数器/定时器 8253学习目标n 熟悉定时器的工作方式n 熟练掌握初始化编程,即配置定时器的寄存器n 掌握简单的定时或计数程序设计第6页/共92页第7章 并行接口及定时计数控制 7定时与计数的关系定时与计数的关系什么是计数?什么是计数?7计数就是计算事件的发生计数就是计算事件的发生次数次数。霍尔开关每当车轮霍尔开关每当车轮转过一圈时磁铁接近一次转过一圈时磁铁接近一次霍尔开关,于是就会输出霍尔开关,于是就会输出一个脉冲。如果把这个脉一个脉冲。如果把这个脉冲输入冲输入微微机,机,微微机可以在机可以在每次脉冲到来时计一个数,每次脉冲到来时计一个数,假设假设60秒内秒内微微机的计数值机的计数值为为n,于是车轮每转过一圈,于是车轮每转过一圈的时间,即脉冲的周期为:的时间,即脉冲的周期为:如果车轮的半径为如果车轮的半径为r,于是车轮,于是车轮的周长为的周长为C=2r,得自行车的行,得自行车的行驶速度为:驶速度为:第7页/共92页第7章 并行接口及定时计数控制 8定时与计数的关系定时与计数的关系什么是定时?什么是定时?8设定加热一只鸡的时间为设定加热一只鸡的时间为15分钟分钟(900s),启动后微波炉开始倒计时,),启动后微波炉开始倒计时,并在显示屏上显示剩余时间。图示当前并在显示屏上显示剩余时间。图示当前剩余时间为剩余时间为5分分45秒(秒(345s)。单片机只)。单片机只需要每过需要每过1s 更新一次显示时间,当更新更新一次显示时间,当更新显示显示900次(次(900s)后就让微波炉停止加)后就让微波炉停止加热即可。所以定时过程可视为热即可。所以定时过程可视为CPU计算计算单位时间(可以是单位时间(可以是1s、1ms、1s)的个)的个数,当计时完成后,把单位时间乘以个数,当计时完成后,把单位时间乘以个数就得到了定时的时间长度。数就得到了定时的时间长度。第8页/共92页第7章 并行接口及定时计数控制 9定时控制在微机系统中具有极为重要的作用,计数是许多过定时控制在微机系统中具有极为重要的作用,计数是许多过程控制领域常用的功能程控制领域常用的功能它们都是由数字电路中的计数电路构成它们都是由数字电路中的计数电路构成定时器由数字电路中的计数电路构成,通过记录高精度晶振定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔脉冲信号的个数,输出准确的时间间隔计数电路是记录外设提供的具有一定随机性的脉冲信号时,计数电路是记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器称为计数器7.2 计数器/定时器 8253定时和计数本质上没有区别,定时就是计数。第9页/共92页定时器与计数器标准部件标准部件 外部功能引脚外部功能引脚 定时器定时器/计数器计数器 内部内部时钟源时钟源 计数周期未知,计数周期未知,甚至不具有周期性甚至不具有周期性 计数周期固定为计数周期固定为一个机器周期一个机器周期 当选择外部引脚事件源,称作计数器当选择外部引脚事件源,称作计数器 当选择内部精密时钟源时,称作定时器当选择内部精密时钟源时,称作定时器 第10页/共92页第7章 并行接口及定时计数控制 11定时功能的实现方法定时功能的实现方法:(1)软件延时利用微处理器执行一个延时程序段实现利用微处理器执行一个延时程序段实现不用硬件,但占用不用硬件,但占用CPU时间、定时精度不高,随系统时钟时间、定时精度不高,随系统时钟频率改变频率改变(2)不可编程的硬件定时采用分频器、单稳电路或简易定时电路控制定时时间采用分频器、单稳电路或简易定时电路控制定时时间定时电路简单、定时时间可以在一定范围改变定时电路简单、定时时间可以在一定范围改变(3)可编程的硬件定时软件硬件相结合、用可编程定时器芯片构成一个方便灵活软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路的定时电路具有多种工作方式、能够输出多种控制信号具有多种工作方式、能够输出多种控制信号7.2 计数器/定时器 8253推荐的方法:可以定时定时到了发通知通知的形式多种多样也是大家比较熟悉的方法:555芯片第11页/共92页第7章 并行接口及定时计数控制 12定时计数器3个独立的个独立的16位计数器通道位计数器通道每个计数器有每个计数器有6种工作方式种工作方式按二进制按二进制(FFFF)或十进制(或十进制(BCD码)码)(9999)计数计数8254是8253的改进型7.2 计数器/定时器 8253三个闹钟独立工作定时或计数的范围可选每个闹钟有六种工作模式第12页/共92页第7章 并行接口及定时计数控制 13(1)8253/8254的内部结构和引脚D7D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT27.2 计数器/定时器 8253定时计数器计数通道 数据总线缓冲器 读写控制电路 和82558255一样,我们先了解一下它内部结构 第13页/共92页第7章 并行接口及定时计数控制 14(2)计数器(都是16位)预置寄存器GATECLKOUT减1计数器输出锁存器q计数初值存于预置寄存器;计数初值存于预置寄存器;q在计数过程中,减法计数器的值不断递减,直到为在计数过程中,减法计数器的值不断递减,直到为0q而预置寄存器中的预置不变。而预置寄存器中的预置不变。q输出锁存器用于写入锁存命令时,锁定当前计数值输出锁存器用于写入锁存命令时,锁定当前计数值定时计数器首先要明白这些“器”的作用图虽然简单,但内涵丰富;理解了这个图,8253的工作原理就OK了。工作过程描述有什么作用?请大家思考:当计数值为0100H时,继续计数可能有什么问题第14页/共92页第7章 并行接口及定时计数控制 15计数器的计数器的3个引脚说明:个引脚说明:(1)CLK时钟输入信号时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减沿),计数器的计数值减1(2)GATE门控输入信号门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种控制计数器工作,可分成电平控制和上升沿控制两种类型类型(3)OUT计数器输出信号计数器输出信号当一次计数过程结束(计数值减为当一次计数过程结束(计数值减为0),),OUT引脚上引脚上将产生一个输出信号,工作方式不同,输出信号方式将产生一个输出信号,工作方式不同,输出信号方式也不同。也不同。定时计数器第15页/共92页第7章 并行接口及定时计数控制 16(3)与处理器接口D0 D7数据线A0 A1地址线CS*片选信号RD*读信号WR*写信号CS*A1 A0I/O地址读操作RD*写操作WR*0 0 00 0 10 1 00 1 140H41H42H43H读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字定时计数器第16页/共92页第7章 并行接口及定时计数控制 17注意:小结8253作分频器:工作于定时器方式:CLK输入是连续的、周期精确的时钟脉冲,OUT输出必定是频率降低的、周期精确的时钟脉冲。8253作计数器:CLK输入只是脉冲的数量,不是脉冲的时间间隔,CLK可以输入周期不定的脉冲,也可以输入周期确定的脉冲。当计数到预置的初值后,从OUT端输出一个脉冲。CLK的脉冲周期不定,OUT输出的脉冲周期也不确定。8253的基本工作方式:对外部输入到CLK引脚上的脉冲进行计数。定时方式还是计数方式,取决于输入脉冲的性质和用户的需要。第17页/共92页第7章 并行接口及定时计数控制 18的工作方式q8253有有6种工作方式,由种工作方式,由方式控制字方式控制字确定确定q每种工作方式的过程类似:每种工作方式的过程类似:设定工作方式设定工作方式-写方式控制字写方式控制字 设定计数初值设定计数初值-写入预置计数器写入预置计数器 硬件启动硬件启动-方式方式1&方式方式5或软件启动或软件启动 计数初值进入减计数初值进入减1计数器计数器 每输入一个每输入一个CLK计数器减计数器减1的计数过程的计数过程 计数过程结束计数过程结束-OUT端有电平变化端有电平变化7.2 计数器/定时器 8253熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式这种变化的不同就构成了不同的工作方式第18页/共92页第7章 并行接口及定时计数控制 198253的工作方式6种工作方式:方式0方式5区别:OUT输出的波形不同;计数过程中GATE信号对计数操作的影响不同;启动计数器的触发方式不同第19页/共92页第7章 并行接口及定时计数控制 20(1)方式0:计数结束中断GATEOUTCLK 031244方式0WR设定工作方式设定计数初值计数值送入计数器计数过程计数结束的工作方式初值为4为什么记了5个CLK脉冲第20页/共92页第7章 并行接口及定时计数控制 21GATE=1初值N,OUT在写入命令执行后为低,第N+1个CLK脉冲之后,变为高电平1方式0计数结束时中断方式(Interrupt on Terminal Count)第21页/共92页第7章 并行接口及定时计数控制 221方式0计数结束时中断方式(Interrupt on Terminal Count)(b)方式0GATE作用恢复GATE后从刚才停的值又开始减第22页/共92页第7章 并行接口及定时计数控制 231方式0计数结束时中断方式(Interrupt on Terminal Count)第23页/共92页第7章 并行接口及定时计数控制 241)计数器写完计数值时,开始计数,相应的输出信号OUT就开始为低电平。当计数器减到零时,OUT立即输出高电平。2)门控信号GATE位高电平时,计数器工作;为低电平时,计数器停止工作,计数值保持不变。3)在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数值重新工作。方式0 小节-Interrupt on terminal count第24页/共92页第7章 并行接口及定时计数控制 25(2)方式1:可编程单稳脉冲设定工作方式设定计数初值硬件启动计数值送入计数器计数过程计数结束GATEOUTCLK 031244方式1WR的工作方式什么是单稳电路?第25页/共92页第7章 并行接口及定时计数控制 262方式1可编程单稳态触发器(Programmable Oneshort)Any problem?第26页/共92页第7章 并行接口及定时计数控制 272方式1可编程单稳态触发器(Programmable Oneshort)Any problem?恢复GATE后从预置值重新开始第27页/共92页第7章 并行接口及定时计数控制 282方式1可编程单稳态触发器(Programmable Oneshort)Any problem?第28页/共92页第7章 并行接口及定时计数控制 29(1)写入计数初值后,计数器并不立即开始工作;门控信号GATE上升沿有效,才开始工作,使输出OUT变成低电平;直到计数器值减到零后,输出才变高电平。(2)在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数。(3)如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作。方式1Hardware Retriggerable one-shot可编程的单稳态工作方式可编程的单稳态工作方式第29页/共92页第7章 并行接口及定时计数控制 30(3)方式2:频率发生器(分频器)03124GATEOUTCLK 4方式2031240312403124WR的工作方式什么是分频器?分谁的频?第30页/共92页第7章 并行接口及定时计数控制 313方式2速率发生器、分频器(Rate Generator)N分频计数器第31页/共92页第7章 并行接口及定时计数控制 323方式2速率发生器、分频器(Rate Generator)第32页/共92页第7章 并行接口及定时计数控制 333方式2速率发生器、分频器(Rate Generator)第33页/共92页第7章 并行接口及定时计数控制 34方式2是一种具有自动装入时间常数(计数初 值N)的 N分频器。特点特点:一次设置计数初值,计数器可:一次设置计数初值,计数器可自动重复自动重复进行减进行减“1”计数计数操作,减操作,减“1”计数回计数回“0”,可从输出端输出一负脉冲信号。,可从输出端输出一负脉冲信号。周周而复始而复始方式2Rate Generator 频率发生器(1)写入计数初值后,GATE为高开始工作,计数器为0时,OUT输出一个时钟脉宽的负脉冲后自动恢复高电平;同时自动重新装入原计数初值,反复计数。(2)如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零后,才按新写入的计数初值开始工作。(3)在计数器工作期间,当GATE为低则停止计数,待GATE恢复后计数器重新装入原计数初值并重新开始计数。第34页/共92页第7章 并行接口及定时计数控制 35(4)方式3:方波发生器03124GATEOUTCLK 4方式3031240312403124WR的工作方式第35页/共92页第7章 并行接口及定时计数控制 364方式3方波发生器(Square Wave Generator)对称方波(偶数);近似对称方波(奇数)第36页/共92页第7章 并行接口及定时计数控制 374方式3方波发生器(Square Wave Generator)第37页/共92页第7章 并行接口及定时计数控制 384方式3方波发生器(Square Wave Generator)第38页/共92页第7章 并行接口及定时计数控制 394方式3方波发生器(Square Wave Generator)第39页/共92页第7章 并行接口及定时计数控制 40 方式3工作方式与方式2基本相同,也具有自动装入时间常数(计数初值)的功能.不同之处在于:不同之处在于:工作在3方式,引脚OUT输出的不是一个时钟周期的负脉冲,而是占空比为1:1或近似1:1的方波;当计数初值为偶数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平;为奇数时高电平比低电平宽一个时钟脉冲。方式方式3-Square ware Mode 周期性方波输出周期性方波输出第40页/共92页第7章 并行接口及定时计数控制 41(5)方式4:软件触发选通信号GATEOUTCLK031244方式4223331 0WR的工作方式1什么是选通信号?第41页/共92页第7章 并行接口及定时计数控制 425方式4软件触发选通方式(Software Triggered Strobe)第42页/共92页第7章 并行接口及定时计数控制 435方式4软件触发选通方式(Software Triggered Strobe)第43页/共92页第7章 并行接口及定时计数控制 445方式4软件触发选通方(Software Triggered Strobe)第44页/共92页第7章 并行接口及定时计数控制 45方式4是一种由软件启动的计数方式。1)此方式设定后,输出OUT就开始变为高电平,GATE为高时,当写完计数值后开始计数。当计数器减到零后,OUT输出一个宽度为一个时钟脉冲的负脉冲,然后恢复高电平,并一直保持高电平。2)门控信号GATE为高电平时,计数器工作;为低电平时,计数器停止工作;恢复为高电平后计数器又从原装入的计数初值开始减1工作。3)在计数器工作期间,如果重新写入新的计数值,不影响当前计数状态;仅当当前计数值计完后,计数器才按新写入的计数值工作。方式4-Software triggered strobe 单次负脉冲输出第45页/共92页第7章 并行接口及定时计数控制 46(6)方式5:硬件触发选通信号GATEOUTCLK031244方式52233311 0WR的工作方式第46页/共92页第7章 并行接口及定时计数控制 476方式5硬件触发选通方式(Hardware Triggered Strobe)硬件触发计数方式,即门控信号GATE上升沿触发计数。第47页/共92页第7章 并行接口及定时计数控制 486方式5硬件触发选通方式(Hardware Triggered Strobe)第48页/共92页第7章 并行接口及定时计数控制 496方式5硬件触发选通方式(Hardware Triggered Strobe)第49页/共92页第7章 并行接口及定时计数控制 50方式5工作特点是由GATE上升沿触发计数器开始工作。(1)在方式5工作方式下,当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数。(2)在计数过程中(或者计数结束后),如果门控再次出现上升沿,计数器将从原装入的计数初值重新计数。方式方式5 -Hardware triggered strobe 单次负脉冲输出单次负脉冲输出第50页/共92页第7章 并行接口及定时计数控制 51(7)各种工作方式的输出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N1 0N1 0讨论:计数开始的时刻?输出波形的形状?的工作方式第51页/共92页第7章 并行接口及定时计数控制 52 8253的工作方式小结 8253 8253的六种工作方式可归为两类,一个是充当频率发生器,另一类主要是作计数器来使用。下面我们就从这个角度来讨论总结OUTOUT和GATEGATE门的作用。第52页/共92页第7章 并行接口及定时计数控制 53与频率发生器有关的工作方式与频率发生器有关的工作方式82538253有两种方式与频率发生器有关,即方式2 2和发生3 3,对OUTOUT端,方式2 2提供给用户的是负脉冲,方式3 3提供给用户的是方波。在这个两种方式下,GATEGATE信号要始终保持为高,而且都是软启动,都是Auto Reload。第53页/共92页第7章 并行接口及定时计数控制 54与计数器有关的工作方式与计数器有关的工作方式 对于计数器类,有方式0 0、1 1和方式4 4、5 5。启动计数器的方式有两种,一种是CPUCPU把时间常数写入相应通道后,计数器就开始工作,我们可以称之为软件启动方式,在这种启动方式下,GATEGATE要始终保持为高电平,所以方式0 0和方式4 4可以称为软件启动方式。另一种是硬件启动计数器,即CPUCPU把时间常数写入计数器后,即使GATEGATE为高电平,计数器并不工作。只有GATEGATE发生跳变,其上升沿启动计数器工作,所以方式1 1和方式5 5就可以称为硬件启动方式。计数器溢出时,OUTOUT有两种输出形式,要么是电平,要么是负脉冲。前者有方式0 0方式1 1,后者有方式4 4和方式5 5。第54页/共92页第7章 并行接口及定时计数控制 55方方式式门控信号(门控信号(GATE引脚)输入状态的控制功能引脚)输入状态的控制功能OUT引脚输出状态引脚输出状态低电平低电平下降沿下降沿上升沿上升沿高电平高电平0 0禁止计数禁止计数禁止计禁止计数数GATEGATE的上升沿继续计数的上升沿继续计数允许计数允许计数计数过程为低,计数到计数过程为低,计数到0 0输出为输出为高(单次)高(单次)1 1不影响计不影响计数数不影响不影响计计数数启动计数;重新开始计数启动计数;重新开始计数不影响计不影响计数数输出宽度为输出宽度为N N个个CLKCLK周期的低电平周期的低电平(单次)(单次)2 2禁止计数禁止计数禁止计禁止计数数重新写入计数初值;重新重新写入计数初值;重新开始计数开始计数允许计数允许计数输出周期为输出周期为N N个个CLKCLK,宽度为,宽度为1 1个个CLKCLK的负脉冲(重复波形)的负脉冲(重复波形)3 3禁止计数禁止计数禁止计禁止计数数重新写入计数初值;重新重新写入计数初值;重新开始计数开始计数允许计数允许计数输出周期为输出周期为N N个个CLKCLK的对称方波的对称方波(重复波形)(重复波形)4 4禁止计数禁止计数禁止计禁止计数数重新写入计数初值;重新重新写入计数初值;重新开始计数开始计数允许计数允许计数初态为高,计数到初态为高,计数到0 0,输出宽度,输出宽度为为1 1个个CLKCLK的负脉冲(单次)的负脉冲(单次)5 5不影响计不影响计数数不影响不影响计计数数启动计数;重新写入计数启动计数;重新写入计数初值并重新开始计数初值并重新开始计数不影响计不影响计数数初态为高,计数到初态为高,计数到0 0,输出宽度,输出宽度为为1 1个个CLKCLK的负脉冲(单次)的负脉冲(单次)各方式中各方式中GATE信号的控制作用与输出波形信号的控制作用与输出波形第55页/共92页第7章 并行接口及定时计数控制 56的编程(1)8253加电后的工作方式不确定(2)8253必须初始化编程,才能正常工作写入控制字写入控制字写入计数初值写入计数初值读取计数值读取计数值(可选)可选)D7D6D5D4D3D2D1D07.2 计数器/定时器 8253第56页/共92页第7章 并行接口及定时计数控制 57(1)写入方式控制字计数器读写格式工作方式数制D7D6D5D4D3D2D1D000 计数器001 计数器110 计数器211 非法000 方式0001 方式1010 方式2011 方式3100 方式4101 方式50 二进制1 十进制控制字写入控制字I/O地址(A1A011)的工作方式第57页/共92页第7章 并行接口及定时计数控制 58(2)写入计数值(a)选择二进制计数值范围:计数值范围:0000HFFFFH0000H是最大值,代表是最大值,代表65536(b)选择十进制(BCD码)计数值范围:计数值范围:000099990000代表最大值代表最大值10000计数值写入计数器各自的I/O地址的工作方式第58页/共92页第7章 并行接口及定时计数控制 59(3)读取计数值(1)对对8位数据线,读取位数据线,读取16位计数值需分两次位计数值需分两次(2)计数在不断进行,应该将当前计数值先行锁存,然)计数在不断进行,应该将当前计数值先行锁存,然后读取:后读取:向控制字向控制字I/O地址:给地址:给8253写入锁存命令写入锁存命令从计数器从计数器I/O地址:读取锁存的计数值地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制的工作方式第59页/共92页第7章 并行接口及定时计数控制 60(4)计数初值的计算的工作方式时间常数的计算时间常数的计算TC=CLK/OUT例:例:8253在方式在方式3下,输出周期性方波,可作定时单位。设下,输出周期性方波,可作定时单位。设计数初值为计数初值为0000,计数个数,计数个数=65536,当,当CLK=1.1931816M时时,输出方波频率为输出方波频率为18.2HZ.周期为周期为54.954MS.则一天则一天=24X60X60X1000MS/54.954MS=1573040,或或1800B0H,且一小时且一小时=65543,一分钟一分钟=1092,一秒呢一秒呢?在电脑中就是利用上述原理完成计时的。在电脑中就是利用上述原理完成计时的。为什么计数初值为0,计数的次数却是65536对一个定时器来说,了解最大,最小的定时间隔是非常重要的8253的应用还有一个限制,就是时钟的上限频率为2M第60页/共92页第7章 并行接口及定时计数控制 61在IBM PC系列机上的应用7.2 计数器/定时器 8253A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至DMA控制器接至扬声器驱动器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS第61页/共92页第7章 并行接口及定时计数控制 62(1)定时中断和定时刷新n阅读初始化程序段阅读初始化程序段n看计数器看计数器0作为定时中断的作用作为定时中断的作用n将计数器将计数器1作为定时刷新作为定时刷新n看如何编写初始化程序段看如何编写初始化程序段在IBM PC系列机上的应用第62页/共92页第7章 并行接口及定时计数控制 63(a)计数器0:初始化程序mov al,36h;36H00 11 011 0B;计数器0为方式3,采用二进制计数;先低后高写入计数值out 43h,al;写入方式控制字mov al,0;计数值为0out 40h,al;写入低字节计数值out 40h,al;写入高字节计数值在IBM PC系列机上的应用(1)定时中断和定时刷新第63页/共92页第7章 并行接口及定时计数控制 64(b)计数器0:定时中断(1)计数器)计数器0:方式:方式3,计数值:,计数值:65536,输出频率为,输出频率为1.19318MHz6553618.206Hz的方波的方波(2)门控为常启状态,这个方波信号不断产生)门控为常启状态,这个方波信号不断产生(3)OUT0端接端接8259A的的IRQ0,用作中断请求信号,用作中断请求信号(4)每秒产生)每秒产生18.206次中断请求,或说每隔次中断请求,或说每隔55ms(54.925493ms)申请一次中断)申请一次中断(5)DOS系统利用计数器系统利用计数器0的这个特点,通过的这个特点,通过08号中断号中断服务程序实现了时钟计时功能服务程序实现了时钟计时功能在IBM PC系列机上的应用第64页/共92页第7章 并行接口及定时计数控制 65(c)计数器1:定时刷新(1)需要重复不断提出刷新请求)需要重复不断提出刷新请求门控总为高,选择方式2或3(2)2ms内刷新内刷新128次,即次,即15.6 s刷新一次刷新一次计数初值为18在IBM PC系列机上的应用第65页/共92页第7章 并行接口及定时计数控制 66(d)计数器1:初始化程序mov al,54h;54H01 01 010 0 B;计数器1为方式2,采用二进制计数;只写低8位计数值out 43h,al;写入方式控制字mov al,18;计数初值为18out 41h,al;写入计数值在IBM PC系列机上的应用第66页/共92页第7章 并行接口及定时计数控制 67(2)扬声器控制(1)计数器)计数器2的输出控制扬声器的发声音调的输出控制扬声器的发声音调(2)计数器)计数器2只能工作在方式只能工作在方式3,才能输出一定频率的,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发方波,经滤波后得到近似的正弦波,进而推动扬声器发声声(3)扬声器还受控于并行接口()扬声器还受控于并行接口(8255芯片)芯片)(4)必须使)必须使PB0和和PB1同时为高电平,扬声器才能发出同时为高电平,扬声器才能发出预先设定频率的声音预先设定频率的声音在IBM PC系列机上的应用第67页/共92页第7章 并行接口及定时计数控制 68(a)发音频率设置子程序;入口参数AX1.1931810的6次方发音频率speakerprocpush axmov al,0b6h;b6h10110110bout 43h,al;写入控制字pop axout 42h,al;写入低8位计数值mov al,ahout 42h,al;写入高8位计数值retspeakerendp在IBM PC系列机上的应用(2)扬声器控制人耳听力的频率范围?第68页/共92页第7章 并行接口及定时计数控制 69(b)扬声器开子程序speakonprocpush axin al,61h;PB端口的地址为61Hor al,03h;D1D0PB1PB011B,其他位不变out 61h,alpop axretspeakonendp在IBM PC系列机上的应用第69页/共92页第7章 并行接口及定时计数控制 70(c)扬声器关子程序speakoffprocpush axin al,61h;PB端口的地址为61Hand al,0fch;D1D0PB1PB000B,其他位不变out 61h,alpop axretspeakoffendp在IBM PC系列机上的应用第70页/共92页第7章 并行接口及定时计数控制 71例题:扬声器声音的控制;数据段freqdw 1193180/600;代码段mov ax,freqcall speaker;设置扬声器音调call speakon;打开扬声器声音mov ah,1;等待按键int 21h;按键后call speakoff;关闭扬声器声音在IBM PC系列机上的应用第71页/共92页第7章 并行接口及定时计数控制 72六、8253应用举例 例1 1:现有一个高精密晶体振荡电路,输出信号是脉冲波,频率为1MHz1MHz。要求利用82538253做一个秒信号发生器,其输出接一发光二极管,以0.50.5秒点亮,0.50.5秒熄灭的方式闪烁指示。设82538253的通道地址为80H80H87H87H第72页/共92页第7章 并行接口及定时计数控制 73解:1 1、时间常数计算 这个例子要求用82538253作一个分频电路,而且其输出应该是方波,否则发光二极管不可能等间隔闪烁指示。频率为1MHz1MHz信号的周期为1 1微妙,而1Hz1Hz信号的周期为1 1秒,所以分频系数N=N=?第73页/共92页第7章 并行接口及定时计数控制 74 由于82538253一个通道最大的计数值是6553665536,所以对于N N10000001000000这样的大数,一个通道是不可能完成上述分频要求的。取两个计数器,采用级联方式。2 2、电路注意是乘不是加第74页/共92页第7章 并行接口及定时计数控制 75 3、工作方式选择 由于通道1 1要输出方波信号推动发光二极管,所以通道1 1应选工作方式3 3。对于通道0 0,只要能起分频作用就行,对输出波形不做要求,所以方式2 2和方式3 3都可以选用。这样对于通道0 0,我们取工作方式2 2,BCDBCD计数;对于通道1 1,我们取工作方式3 3,二进制计数(当然也可选BCDBCD计数)第75页/共92页第7章 并行接口及定时计数控制 76 4、程序mov al,00110101b;通道0控制字out 86h,almov al,00;通道0初始计数值out 80h,almov al,10hout 80h,almov al,01110110b;通道1控制字out 86h,al mov al,0e8h;通 道 1初 始 计 数 值,03E8H=1000BCDout 82h,almov al,03hout 82h,al第76页/共92页第7章 并行接口及定时计数控制 77例2:计件系统。计件系统的功能就是记录 脉冲的个数。一个脉冲代表一个事件,比如交通道路检测系统中通过检测点的车辆,工业控制系统中流水线上已加工好的工件。要求在计件过程中,PCPC机可以显示当前计数器的内容,当完成1000010000个工件记录后,系统发出1KHz1KHz信号推动喇叭发音通知用户。第77页/共92页第7章 并行接口及定时计数控制 78 解:1 1、电路。需要两个通道,一个作为计数,选用通道0。另一个产生1KHz信号,选用通道1。工作原理如下,传感器电路把物理事件转换为脉冲信号输入到通道0 0计数,当记录1000010000个事件后,通道0 0计数器溢出,GATEGATE端输出高电平,这时通道1 1开始工作,产生1KHz1KHz信号推动喇叭发音。第78页/共92页第7章 并行接口及定时计数控制 79 2 2、工作方式选择 对于通道1 1,由于要产生1KHz信号,故选用工作方 式3。对于通道0,要求初始计数值写入计数通道后,计数器就可以工作,则通道0的启动方式应是软件启动。另外由于要求计数溢出后产生一个信号来启动一个事件,即喇叭发音,故可选的工作方式为方式0和方式4,对于图所示方案,通道1的GATE信号由通道0的OUT信号产生,这个OUT信号应该是电平型的,所以通道0应选用方式0。第79页/共92页第7章 并行接口及定时计数控制 803、时间常数 N010004、程序(见书)第80页/共92页第7章 并行接口及定时计数控制 81Intel 8253Intel 8253的应用举例的应用举例【例7-3】用8253(地址40H43H)将5MHz的脉冲变为1Hz的脉冲。例例7-37-3系统连接图系统连接图分分析析:可可采采用用方方式式2分分频频器器完完成成,但但初初值值=FCLK/FOUT=5MHz/1Hz=510665536,怎么办?,怎么办?解解决决的的办办法法是是:需需要要2个个T/C(定定时时器器/计计数数器器通通道道)级级联联,T/C0采采用用方方式式3产产生生连连续续分分频频方方波波,做做T/C1的的CLK,T/C1采采用用方方式式2产产生生1Hz脉冲。两个脉冲。两个T/C的的GATE统一控制。系统连接如图所示。统一控制。系统连接如图所示。以下选读:以下选读:第81页/共92页第7章 并行接口及定时计数控制 82Intel 8253Intel 8253的应用举例的应用举例例例7-37-3程序如下:程序如下:MOV AL,00110111B;T/C0控制字 OUT 43H,ALMOV AX,5000H;T/C0 初值OUT 40H,ALMOV AL,AHOUT 40H,ALMOV AL,01110101B ;T/C1 控制字 OUT 43H,AL MOV AX,1000H ;T/C1初值OUT 41H,ALMOV AL,AHOUT 41H,AL第82页/共92页第7章 并行接口及定时计数控制 83Intel 8253Intel 8253的应用举例的应用举例【例7-4】8253的CLK0的时钟频率是8KHz,在系统如图的连接方式下,编程使其能产生周期为9s,占空比为5:4的方波,同时计算T/C0最大定时时间是多少?例例7-47-4系统连接图系统连接图第83页/共92页第7章 并行接口及定时计数控制 84【例例7-47-4】分析:分析:1 1 在在CLKCLK0 0已知的情况下,可算出其周期,最大定时时间与已知的情况下,可算出其周期,最大定时时间与CLKCLK周期周期及计数初值的最大值有关。及计数初值的最大值有关。2 2 根据系统连接图,可分析出根据系统连接图,可分析出Intel 8253Intel 8253端口地址为端口地址为90H90H、92H92H、94H94H和和96H96H,同时,可将,同时,可将T/CT/C0 0 设置为方式设置为方式3 3,使其产生,使其产生1Hz1Hz;T/CT/C1 1设设置为方式置为方式3 3,产生周期为,产生周期为9 9秒,占空比为秒,占空比为5:45:4的方波。的方波。Intel 8253Intel 8253的应用举例的应用举例第84页/共92页第7章 并行接口及定时计数控制 85Intel 8253Intel 8253的应用举例的应用