资源预览内容
第1页 / 共68页
第2页 / 共68页
第3页 / 共68页
第4页 / 共68页
第5页 / 共68页
第6页 / 共68页
第7页 / 共68页
第8页 / 共68页
第9页 / 共68页
第10页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第9章讲义可编程计数器8.1 计数/定时的基本概念1定时与计数 在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行计数。 定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为。*22定时与计数的实现方法(1) 硬件法 专门设计一套电路用以实现定时与计数,特点是需要花费一定硬设备,而且当电路制成之后,定时值及计数范围不能改变。(2) 软件法 利用一段延时子程序来实现定时操作,特点,无需太多的硬件设备,控制比较方便,但在定时期间,CPU不能从事其它工作,降低了机器的利用率。(3) 软、硬件结合法 即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定时期间不影响CPU的正常工作。*33.定时/计数器的作用n生产线上统计产品的数目-计数器n系统的动态存储器刷新-定时器n系统时钟计时-定时器n扬声器的频率源-定时器*48.2 8253的工作原理1.8253的内部结构和引脚信号p8253是Intel公司生产的可编程计数/定时器芯片。 p8253的操作对所在系统没有特殊要求,其通用性强,适用于各种微处理器组成的系统。p它有3个独立的16位减1计数器,每个计数器有6种工作方式,能进行二进制或BCD码计数或定时操作,计数速率可达2MHz,最高信号时钟频率,所有的输入/输出都与TTL电平兼容。p同类型的定时/计数器芯片还有Intel 8254等。*5*68253内部结构o具有三个相互独立的16位计数器通道;o每个通道都可设定以6种工作方式之一进行计数/定时;o每个计数器都可设为按二进制或BCD码计数 ;o具有计数和定时功能,基于减1计数工作;o定时器减为0后,可自动装入定时常数初值,并产生输出信号;o在减1操作中,任何时刻计数器的值都可由CPU经计数输出寄存器读取。*7(1)(1)数据总线缓冲器数据总线缓冲器 数据总线缓冲器是数据总线缓冲器是82538253与与CPUCPU数据总线连接的数据总线连接的8 8位位双向三态缓冲器。双向三态缓冲器。 CPU CPU用输入用输入/ /输出指令对输出指令对82538253进行读进行读/ /写操作的所写操作的所有信息都是通过这有信息都是通过这8 8条总线传送的。条总线传送的。oo CPU CPU在初始化编程时写入在初始化编程时写入82538253的控制字;的控制字;oo CPU CPU向向82538253某一计数器写入的计数初值;某一计数器写入的计数初值;oo CPU CPU从从82538253某一计数读取的计数值;某一计数读取的计数值; *8(2) (2) 读读/ /写逻辑写逻辑 读读/ /写逻辑是写逻辑是82538253内部操作的控制部分。当片内部操作的控制部分。当片选信号有效,选信号有效, 即即 =0 =0时,读时,读/ /写逻辑才能工作写逻辑才能工作。 该控制逻辑根据读该控制逻辑根据读/ /写命令及送来的地址信息写命令及送来的地址信息A A1 1A A0 0,决定三个计数器和控制字寄存器中哪一个工,决定三个计数器和控制字寄存器中哪一个工作,并控制内部总线上数据传送的方向。作,并控制内部总线上数据传送的方向。 *98253的读/写操作82538253的写操作包括写控制字和写计数初值两项内容。具体要求是:的写操作包括写控制字和写计数初值两项内容。具体要求是: 各计数器的控制字都写到同一地址单元,各计数器的控制字都写到同一地址单元, 而各计数初值写到各自而各计数初值写到各自的地址单元中。的地址单元中。 对于每个计数器,必须对于每个计数器,必须先写控制字,后写计数初值。 因为后者的格因为后者的格式是由前者决定的。式是由前者决定的。 写入的计数初值必须符合控制字决定的格式。写入的计数初值必须符合控制字决定的格式。 16 16位数据应先写低位数据应先写低8 8位位,再写高,再写高8 8位。位。 当给多于一个的计数器写入控制字和计数初值时,其顺序有一定的灵当给多于一个的计数器写入控制字和计数初值时,其顺序有一定的灵活性,只要遵循上述要求即可。活性,只要遵循上述要求即可。 *10(3) (3) 控制字寄存器控制字寄存器 在在82538253初始化编程时,由初始化编程时,由CPUCPU向控制字寄存器写入控制字,以决定每向控制字寄存器写入控制字,以决定每个计数器的工作方式。个计数器的工作方式。 此寄存器只能写入而不能读出。此寄存器只能写入而不能读出。 在在82538253工作之前,必须对它进行初始化编程,也就是向工作之前,必须对它进行初始化编程,也就是向82538253的控制字寄存的控制字寄存器写入一个控制字和向计数器赋计数初值。器写入一个控制字和向计数器赋计数初值。 控制字的功能是:选择计数器,确定对计数器的读控制字的功能是:选择计数器,确定对计数器的读/ /写格式,选写格式,选择计数器的工作方式以及确定计数的数制。择计数器的工作方式以及确定计数的数制。 *11*12ppSC1SC1、SC0SC0:计数器选择位。这两位表示这个控制字是对哪一个计数器设置的。:计数器选择位。这两位表示这个控制字是对哪一个计数器设置的。 00 00计数器计数器0 0;0101计数器计数器1 1;1010计数器计数器2 2;1111非法选择。非法选择。 ppRW1RW1、RW0RW0:数据读:数据读/ /写格式选择位。写格式选择位。CPUCPU在对计数器写入初值和读取它们的当前值时,有在对计数器写入初值和读取它们的当前值时,有几种不同的格式,由这两位来决定。几种不同的格式,由这两位来决定。 00 00将计数器当前值锁存于输出锁存器中,以便读出;将计数器当前值锁存于输出锁存器中,以便读出;0101只读只读/ /写计数器的低写计数器的低8 8位,写入时高位,写入时高8 8位自动设置为位自动设置为0 0; 10 10只读只读/ /写计数器的高写计数器的高8 8位,写入时低位,写入时低8 8位自动位自动设置为设置为0 0;1111对对1616位计数器进行两次读位计数器进行两次读/ /写操作,低字节在前,高字节在后,写操作,低字节在前,高字节在后, 两次操作的地址相同。两次操作的地址相同。 ppM2M2、M1M1、M0M0:计数器工作方式选择位。:计数器工作方式选择位。82538253的每个计数通道有的每个计数通道有6 6种不同的工作,工作方种不同的工作,工作方式由这式由这3 3位决定。位决定。000000方式方式0 0;001001方式方式1 1;010010方式方式2 2;011011方式方式3 3;100100方式方式4 4;101101方式方式5 5。 *13ooBCDBCD:数制选择。:数制选择。82538253的每个计数器有两种数制二进制和二的每个计数器有两种数制二进制和二十十进制,由这一位决定选择哪一种。进制,由这一位决定选择哪一种。 BCD=0 BCD=0表示采用二进制计数,写入的初值范围为表示采用二进制计数,写入的初值范围为0000H0000HFFFFHFFFFH,其中,其中0000H0000H是最大值,代表是最大值,代表6553665536;BCD=1BCD=1表示采用二表示采用二十进制计数,写入的十进制计数,写入的初值范围为初值范围为0000000099999999,其中,其中00000000是最大值,代表是最大值,代表10 00010 000。 oo注意:注意:(1 1)82538253内部的三个计数通道共用一个控制寄存器,当前控制字倒底对内部的三个计数通道共用一个控制寄存器,当前控制字倒底对哪一个通道有用是由最高两位决定的。哪一个通道有用是由最高两位决定的。(2 2)用户如果需要读出当前计数器的值,必须先发控制字令计数值锁存;然后用户如果需要读出当前计数器的值,必须先发控制字令计数值锁存;然后在下一条指令才能读回已锁存的计数值。在下一条指令才能读回已锁存的计数值。*14例1o8253工作为计数器 0,方式 0,初值为4,二进制计数,设寄存器地址为40H 、42H、44H、46Ho控制字 0 0 0 1 0 0 0 010H10H编程编程 MOV AL MOV AL,10H10H OUT 46H OUT 46H,AL AL ;写计数器;写计数器 0 0 的控制字的控制字 MOV AL MOV AL,04H04H OUT 40H OUT 40H,AL AL ;写计数器;写计数器 0 0 的初值的初值*15例2o8253工作为计数器 1,方式 3,初值为4020H,十进制计数,设寄存器地址为40H、42H、44H、46Ho控制字 0 1 1 1 0 1 1 177H77H编程编程 MOV AL MOV AL,77H77H OUT 46H OUT 46H,AL AL ;写计数器;写计数器 1 1 的控制字的控制字 MOV AL MOV AL,20H20H OUT 42H OUT 42H,AL AL ;写计数器;写计数器 1 1 的低的低 8 8 位初值位初值 MOV AL MOV AL,40H40H OUT 42H OUT 42H,AL AL ;写计数器;写计数器 1 1 的高的高 8 8 位初值位初值*16例3o8253工作为计数器 2,方式 3,初值为4000H,十进制计数,设寄存器地址为40H 、42H、44H、46Ho控制字 1 0 1 0 0 1 1 1A7HA7H编程编程 MOV AL MOV AL,0A7H0A7H OUT 46H OUT 46H,AL AL ;写计数器;写计数器 2 2 的控制字,的控制字, MOV AL MOV AL,40H40H OUT 44H OUT 44H,AL AL ;仅写计数器;仅写计数器 2 2 的高的高 8 8 位初值位初值 *17(4) (4) 计数器计数器0 0、1 1、2 2pp是是3 3 个个1616位减位减1 1计数器,它们互相独立,内部结构和功能相同。计数器,它们互相独立,内部结构和功能相同。pp每个计数器有每个计数器有3 3根信号线根信号线: :时钟输入时钟输入CLKCLK、门控输入、门控输入GATEGATE和输出和输出OUT;OUT;pp计数器从计数器从CLKCLK端接收时钟脉冲或事件计数脉冲,在脉冲下降沿按照二进制或二端接收时钟脉冲或事件计数脉冲,在脉冲下降沿按照二进制或二十进制从十进制从预置的初值开始进行减预置的初值开始进行减1 1计数计数; ;pp当计数值减到零时,从当计数值减到零时,从OUTOUT端送出一个信号端送出一个信号; ;pp计数器在开始计数和计数过程中,受到门控信号计数器在开始计数和计数过程中,受到门控信号GATEGATE的控制的控制; ;pp在开始计数之前,必须由在开始计数之前,必须由CPUCPU用输出指令预置计数器的初值用输出指令预置计数器的初值; ;pp在计数过程中,在计数过程中,CPUCPU可以随时用指令读取计数器的当前值。可以随时用指令读取计数器的当前值。*188253的引脚信号*1982538253与与CPUCPU的接口的接口 8 8 位数据线:位数据线:D0 D7D0 D7 寻址控制线:寻址控制线:A0A0、A1A1、CSCS 读写控制线:读写控制线:RDRD、WR WR 8253 8253与外设的接口与外设的接口 时钟输入:时钟输入:CLKCLK 输入门控:输入门控:GATEGATE 波形输出:波形输出:OUT OUT CLKCLK:计数脉冲输入端。计数器对该引脚的输入脉冲进行计数。:计数脉冲输入端。计数器对该引脚的输入脉冲进行计数。如果如果CLKCLK信号是周期精确的时钟脉冲,则具有定时作用。信号是周期精确的时钟脉冲,则具有定时作用。*208253寄存器选择表*218253的外部连接特性p8253外部数据线宽度也为8bit,一般也将其
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号