单片机电子钟程序及电路图设计 第5页
方式2如同一个n分频计数器,若计数初值为n,则每到n个时钟CLK脉冲就输出一个脉冲。因此,这种方式可以作为一个脉冲分频器或用于产生实时中断。
计数过程中,可用门控脉冲GATE重新启动计数。当GATE变低时,现行计数暂停,变高后,下一个CLK输入脉冲使减一计数器恢复计数初值重新开始计数,所以可用一个外部控制逻辑来控制GATE,从而达到同步计数的作用。
4) 方式3(方波发生器)
软硬件启动,自动重复计数。装入初值后输出端变高,输出对称方波。波形图如下:
计数值为偶数
计数值为奇数
在计数过程中,可以改变计数初值,新的初值写入也分两种情况讨论:一种是GATE为高电平时在计数执行过程中新值写入,并不影响现行计数过程,只是在下一个计数过程中按新值进行计数。第二种是在计数执行过程中加入一个GATE负脉冲信号,停止现行计数过程,在门控信号上升沿后的第一个时钟周期的下降沿按新值开始计数。
5) 方式4(软件触发的选通信号发生器)
软件启动,不自动重复计数。装入初值后输出端变高,计数结束后输出一个CLK宽度的低电平。波形图如下:
在计数过程中GATE变低,则停止计数,待GATE变高时,减一计数器重新从技术初值开始计数。
在计数过程中,改变技术初值是立即有效的,他将立即按新的计数值继续重新开始计数。如果计数值是双字节,则在写入第一个字节时停止计数,在写入第二个字节后,按照新计数值开始计数。
利用方式4可以完成定时功能,定时时间为n个CLK周期,这种工作方式也可完成计数功能,将计数脉冲从CLK输入,使减一计数器减到0,由OUT输出负脉冲表示计数次数到,当然也可利用OUT作为中断请求信号,工作方式4和工作方式0很相似。
5)方式5(硬件触发选通信号发生器)
硬件启动,不自动重复计数。波形图如下:
当门控信号GATE上升沿到来后,开始计数。在计数过程中,又来一个门控信号的上升沿,立即终止现行的计数过程,在下一个时钟的下降沿又从初值开始计数,如果在计数过程结束后来一个门控信号上升沿,计数器也会在下一个时钟的下降沿从上一个初值开始减一计数,即只要门控信号的上升沿到来,就会马上触发下一个技术的过程。
2.2.3 控制字
8253只有一个控制字,其格式和含义如下图所示
D7,D6两位用来选择计数器,D5,D4两位用来规定读写格式,D3,D2,D1三位用来选择工作方式,D0用来表示使用二进制表示还是使用十进制表示。
8253的控制寄存器和3个计数器分别具有独立的编程地址,并且控制字本身的内容又确定了所控制的寄存器序号,所以对8253的编程没有太多严格的顺序规定,使用非常灵活。但是,编程有3条原则必须严格遵守:
1)在选择任何一种工作方式下,都必须先向8253写入控制字,控制字还起复位作用,它使OUT端变为工作方式中规定的状态和对计数初值寄存器清零。
2)对计数器设置初值前必须先写控制字。计数初值设置时,要符合控制字中的格式规定,控制字中一旦规定,具体初始值设定时就要一致。
3)读取当前计数值时,必须设置锁存操作控制字。由于8253对外的数据线只有8根,对16位计数器进行写入或读取当前计数值时,需要分两次进行。由于两次读之间存在时间间隔,这期间可能恰好有计数脉冲,所以读出的值带有随机性,为了使CPU能获得计数器某一时刻准确的值,8253设置了锁存操作。当控制字的D5,D4位为00时,表示锁存。当锁存命令到来时,减一计数器记到某一个值,因为锁存器是跟随减一计数器工作的,所以,锁存器中为同一个值,此时,这一数值被锁住,当CPU将此锁定值之后,锁存器自动失锁,于是又跟随计数器变化。
2.3 8259A中断器
8259A是一种可由软件进行控制的中断控制器。8259A使用于各种不同环境,具有很强的中断管理功能。
8259A主要功能有:
1) 每片8259A可管理8级优先权中断源,在基于不增加其他电路的情况下,通过8259A的级联,最多可管理64级优先级的中断源。
2) 对任何一个级别的中断源都可以单独进行屏蔽,使该级中断请求暂时被禁止,直到取消屏蔽时为止。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
单片机电子钟程序及电路图设计 第5页下载如图片无法显示或论文不完整,请联系qq752018766