第6章 定时计数器.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 定时计数器

6.1 定时/计数器概述 定时器与计数器的差别在于其用途不同。 定时器:以时钟信号作为计数脉冲的计数器,主要用于产生不同标准的时钟信号或不同频率的连续信号。 计数器:以外部事件产生的脉冲作为计数脉冲的计数器,主要是用于外部事件发生的次数进行计量。 实现定时的三种方法: 1. 软件定时:利用CPU每执行一条指令都需要几个固定的指令周期的原理,运用软件编程的方式进行定时。 例如:MOV CX,××××H HERE:LOOP HERE 优点:简单,不需要专门的硬件设备。 缺点:浪费了宝贵的CPU资源。 适应于简单任务的较短时间的定时。 2.不可编程的硬件定时 6.2可编程定时/计数器8253-5 6.2.2 8253-5的引脚与功能结构 6.2.3 8253-5内部结构 4.计数器 8253-5的3个计数器是相互独立的,其内部结构完全相同,计数器是16位减法计数器。 每个计数器中都有一个时钟输入端CLK、门控输入端GATE和一个输出端OUT。 计数方式可以是二进制或十进制。 在每个计数器的内部都有16位的计数寄存器CR、锁存器OL。 6.2.4 8253的工作方式控制字 作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。作定时器时, 计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:      定时系数=需要定时的时间/时钟脉冲周期 ①设置通道:向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式; ②计数/定时:向通道写入计数值,启动计数操作; ③读取当前的计数值:向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。 ④计数到:当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。 计数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。 锁存器在非锁存状态,其值随计数器的变化而变化;一旦锁存了计数器的当前值,直到锁存器值被读取后才能解除锁存状态。 6.2.4 8253的工作方式控制字 6.2.6 8253-5初始化编程 1、写入方式控制字 使用任一计数器通道,首先要向该通道写入方式控制字,已确定该通道的工作方式。 ?规定计数器的工作方式。无论哪个计数器的控制字,都必须写入同一端口,即控制端口,对应地址A1A0=11。 6.2.6 8253-5初始化编程 2、写入计数初始值 ????? 某个计数器再写入了方式控制字后,任何时候都可以按RL1RL0的规定写入计数初始值。 若控制字规定只写8位,只需写入一次(8位)计数值即可(规定写低8位则高8位自动置0,规定写高8位则低8位自动置0); 规定写16位时必须写两次,先写低8位,后写高8位。当 初值为0时,也要分两写入,因在二进制计数时,“0”表示65336,在BCD码计数时“0”表示10000=104。 注意:在写入计数初始值时,如果方式控制字中的BCD位为1,即为BCD计数,但在写入指令中还必须写成十六进制数。 例题:要求计数器0工作于方式3下,输出方波的重复频率为2KHZ,计数脉冲输入为2.5MHZ, 采用BCD计数,试写出初始化程序段。 ???解答: ?????计算计数初始值:? TC=2.5MHZ/2KHZ=1250 ?????方式控制字为 00 11 011 1=37H ,即计数器0,写16位,方式3,BCD计数。 ?????设8253-5的端口地址为 40H,41H,42H,43H ?????初始化程序段如下: MOV? AL,37H???? ;写入方式控制字 OUT? 83H,AL MOV? AL,50H???? ;写入计数初始值低8位 OUT? 80H,AL MOV? AL,12H???? ;写入计数初始值高8位 OUT? 80H,AL 例:见书【例6.3】。 解:1)确定工作方式 OUT0端输出的是连续方波,所以定时器0应工作在方式3. OUT1端输出的是单拍负脉冲,所以定时器1应工作在方式2. 2)计算计数初值 OUT端的输出信号频率是由CLK端的时钟信号频率经定时器分频得到的,而分频系数就是从计数初值开始减到1时所计的时钟周期数。计数初值N就是定时器的分频系数所对应的数字。 计数初值=分频系数=fCLK/fOUT 定时器0: N= fCLK0/fOUT0 =250000/500=500=01F4H 定时器1: N= fCLK1/fOUT1 =500/50=10=0AH 3)确定控制字 定时器0的控制字为36H。 4)初始化程序段 MOV DX,203H ;写定时器0控制字 MOV AL,36H OUT DX,AL MOV DX,200H ;写定时器0计数初值低8位 MOV AL,0F

文档评论(0)

xiaolan118 + 关注
实名认证
内容提供者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档