第八章可编程计数器定时器8253_第1页
第八章可编程计数器定时器8253_第2页
第八章可编程计数器定时器8253_第3页
第八章可编程计数器定时器8253_第4页
第八章可编程计数器定时器8253_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、一、一、8253结构及引脚功能结构及引脚功能二、二、8253工作方式工作方式三、三、8253初始化初始化 定时定时/ /计数器的作用计数器的作用 生产线上统计产品的数目生产线上统计产品的数目-计数器计数器 系统的动态存储器刷新系统的动态存储器刷新-定时器定时器 系统时钟计时系统时钟计时-定时器定时器 扬声器的频率源扬声器的频率源-定时器定时器 如何定时如何定时 软件定时,由软件定时,由cpucpu执行指令序列所花费的时间来构成执行指令序列所花费的时间来构成一定的时间间隔,从而达到定时的目的。优点是节省一定的时间间隔,从而达到定时的目的。优点是节省硬件;缺点是执行程序期间硬件;缺点是执行程序期间

2、cpucpu一直被占一直被占 用,降低用,降低了了cpucpu效率。效率。 例如:例如:mov cx , mov cx , h h here: loop here here: loop here 硬件定时,要用额外的硬件硬件定时,要用额外的硬件计数计数/ /定时器,但可提定时器,但可提高高cpucpu的利用率。的利用率。一、一、82538253结构及引脚功能结构及引脚功能1.1.结构:由四部分组成。结构:由四部分组成。数据总线缓冲器数据总线缓冲器8d0d7内部总线内部总线clk0计数器计数器0gate0out0计数器计数器1clk1gate1out1计数器计数器2clk2gate2out2读读

3、/写逻辑写逻辑a0a1wrrdcs控制字寄存器控制字寄存器(1) 数据总线缓冲器数据总线缓冲器u 这是这是82538253与与cpucpu的数据总线的数据总线(d(dd d) )连接的连接的8 8位双向三态缓冲器。位双向三态缓冲器。u cpucpu用输入输出指令对用输入输出指令对82538253进行读写操作时的所有信息都通过这个缓冲器进行读写操作时的所有信息都通过这个缓冲器传送。传送。(2) 读读/写逻辑写逻辑u 这是这是82538253内部操作的控制电路,它从系统控制总线上接收输入信号,然内部操作的控制电路,它从系统控制总线上接收输入信号,然后转换成后转换成82538253内部操作的各种控制

4、信号。内部操作的各种控制信号。(3)控制字寄存器)控制字寄存器u 当地址信号当地址信号a1a1和和a0a0都为都为1 1时,访问控制字寄存器。时,访问控制字寄存器。u 控制字寄存器从数据总线上接收控制字寄存器从数据总线上接收cpucpu送来的控制字,并由控制字的送来的控制字,并由控制字的d7d7、d6d6两位的编码决定控制字写入哪个通道的控制寄存器中去。两位的编码决定控制字写入哪个通道的控制寄存器中去。u 由寄存在每个通道内的控制寄存器的内容决定该通道的工作方式,选择计由寄存在每个通道内的控制寄存器的内容决定该通道的工作方式,选择计数器是按二进制还是数器是按二进制还是bcdbcd数计数,并确定

5、每个计数器初值的写入顺序。数计数,并确定每个计数器初值的写入顺序。(4) 计数器计数器0、计数器、计数器1、计数器、计数器2u 这是三个计数器这是三个计数器/ /定时器通道,每一个都由定时器通道,每一个都由1616位的可设置计数初值的减法位的可设置计数初值的减法计数器构成。计数器构成。u 三个通道的操作是完全独立的。每个通道都有两个输入引脚三个通道的操作是完全独立的。每个通道都有两个输入引脚clkclk和和gategate以以及一个输出引脚及一个输出引脚outout。每个通道(计数器)是每个通道(计数器)是16位二进制计数器,每个计数器中有位二进制计数器,每个计数器中有3个寄存器。个寄存器。(

6、1)初值寄存器:初始化时写入该计数器的初始值。)初值寄存器:初始化时写入该计数器的初始值。(2)减一计数器:初值寄存器写入减一计数器,减)减一计数器:初值寄存器写入减一计数器,减1到到0为止。为止。(3)计数值锁存器:在计数器工作的过程中,跟随计数值的)计数值锁存器:在计数器工作的过程中,跟随计数值的变化,在接收到变化,在接收到cpu发来的读计数值命令时,用以锁存计发来的读计数值命令时,用以锁存计数值,供数值,供cpu读取,读取完毕之后,输出锁存器又跟随减读取,读取完毕之后,输出锁存器又跟随减1计数器变化。计数器变化。 &clkgate16位当前计数值锁存器位当前计数值锁存器16位减一

7、计数器位减一计数器16位计数初值寄存器位计数初值寄存器out(减(减1至至0时)时)msblsb装入初值装入初值lsbmsb锁存后读锁存后读出当前值出当前值u因因82538253是减计数器,故计数初值越大,则计数减至是减计数器,故计数初值越大,则计数减至0 0所用时所用时间(即定时时间)就越长,但由于间(即定时时间)就越长,但由于82538253是先减是先减1 1,再判是否,再判是否到到0 0,故最长的定时时间是设置计数初值为,故最长的定时时间是设置计数初值为0 0,代表,代表6553665536。u十进制计数时范围是十进制计数时范围是000100011000010000,其中当计数初值寄存器

8、,其中当计数初值寄存器为为0000h0000h代表十进制数代表十进制数1000010000。 u计数取值范围在二进制计数时是计数取值范围在二进制计数时是0001h0001h10000h10000h,其中,其中10000h10000h代表代表6553665536,在计数初值寄存器中的值是,在计数初值寄存器中的值是0000h0000h。 u可以从可以从82538253中读出当前计数值,但其读出过程是:先将当中读出当前计数值,但其读出过程是:先将当前计数初值写入到输出锁存器,然后再从输出锁存器中读前计数初值写入到输出锁存器,然后再从输出锁存器中读出,同时,出,同时,82538253还在不停地进行减计

9、数,虽然输出锁存器还在不停地进行减计数,虽然输出锁存器中的值不变,但减计数单元却在不断地减计数,因此,从中的值不变,但减计数单元却在不断地减计数,因此,从输出锁存器中读出的值并不一定是真正的当前计数值。输出锁存器中读出的值并不一定是真正的当前计数值。2.2.引脚引脚3.功能功能 (1)(1)具有三个独立的具有三个独立的1616位计数通道;位计数通道; (2)(2)每个计数通道可按二进制或二十进制计数;每个计数通道可按二进制或二十进制计数; (3)(3)具有计数和定时功能,基于减具有计数和定时功能,基于减1 1计数工作;计数工作; (4)(4)定时器减为定时器减为0 0后,可自动装入定时常数初值

10、,并产生输出后,可自动装入定时常数初值,并产生输出信号;信号; (5)(5)每个计数通道有六种工作方式;每个计数通道有六种工作方式; (6)8253(6)8253实质上是计数器,但计数器的脉冲输入端如果送定时实质上是计数器,但计数器的脉冲输入端如果送定时脉冲就可以做定时器用。作为计数器时减到脉冲就可以做定时器用。作为计数器时减到0 0之后输出一个信之后输出一个信号,此时计数过程结束;作为定时器时,减到号,此时计数过程结束;作为定时器时,减到0 0后输出一个信后输出一个信号接着自动装入计数初值并开始下一个周期的计时。号接着自动装入计数初值并开始下一个周期的计时。二、初始化二、初始化在使用在使用8

11、253时都要由时都要由cpu对对8253写入控制字,以确定写入控制字,以确定8253的的工作方式,这个设置过程称为初始化。工作方式,这个设置过程称为初始化。初始化有两个控制命令字:方式选择控制字和计数常数字。初始化有两个控制命令字:方式选择控制字和计数常数字。方式选择字写入控制口,计数常数字写入相应通道内。方式选择字写入控制口,计数常数字写入相应通道内。例例1 1:将计数器:将计数器2 2初始化为工作方式初始化为工作方式3 3,计数初值为,计数初值为533h533h,为二进,为二进制计数方式,设寄存器地址为制计数方式,设寄存器地址为40h-43h40h-43h。控制字:控制字:10110110

12、 b6h10110110 b6h mov mov al al,0b6h0b6h ;计数器;计数器2 2,先低后高字节,先低后高字节 outout 43h 43h,alal;写命令字;写命令字 movmov ax ax,533h533h ;计数初值;计数初值 outout 42h 42h,alal;写计数值低位;写计数值低位 movmov al al,ahah out out 42h 42h,alal;写计数值高位;写计数值高位例例2 2:82538253工作为计数器工作为计数器1 1,方式,方式3 3,初值为,初值为4020d4020d,设寄存器地,设寄存器地址为址为40h-43h40h-43

13、h。控制字:控制字:01110111 77h01110111 77h mov al mov al,77h77h out 43h out 43h,al al ;写计数器;写计数器 1 1 的控制字的控制字 mov almov al,20h20h out 41h out 41h,al al ;写计数器;写计数器 1 1 的低的低 8 8 位初值位初值 mov almov al,40h40h out 41h out 41h,al al ;写计数器;写计数器 1 1 的高的高 8 8 位初值位初值例例3 3:计数器:计数器0 0,工作在模式,工作在模式2 2,计数初值和输出锁存器仅使用低,计数初值和输

14、出锁存器仅使用低8 8位,初值为位,初值为100100,计数值为二进制格式,设寄存器地址为,计数值为二进制格式,设寄存器地址为70h-73h70h-73h。 mov almov al,00010100b 00010100b ;控制字;控制字 out 73hout 73h,alal mov al mov al,100 100 ;计数初值;计数初值 out 70hout 70h,alal 例例4 4:计数器:计数器1 1,工作在模式,工作在模式1 1,初值为,初值为12341234,先写入低,先写入低8 8位,再位,再写高写高8 8位,计数值为二进制,设寄存器地址为位,计数值为二进制,设寄存器地址

15、为70h-73h70h-73h。 mov almov al,01110010b01110010b;控制字;控制字 out 73hout 73h,al al mov axmov ax,1234h1234h ;12341234装入装入axax转换二进制转换二进制 out 71hout 71h,alal ;计数初值低;计数初值低8 8位位 mov almov al,ahah out 71hout 71h,alal ;计数初值高;计数初值高8 8位位 例例5 5:读取:读取82538253通道中的计数值通道中的计数值 82538253可用控制命令来读取相应通道的计数值,由于计数值是可用控制命令来读取相

16、应通道的计数值,由于计数值是1616位的,而读取的瞬时值,要分两次读取,所以在读取计数位的,而读取的瞬时值,要分两次读取,所以在读取计数值之前,要用锁存命令,将相应通道的计数值锁存在锁存器值之前,要用锁存命令,将相应通道的计数值锁存在锁存器中,然后分两次读入,先读低字节,后读高字节。中,然后分两次读入,先读低字节,后读高字节。 当控制字中,当控制字中,d5d5、d4=00d4=00时,控制字的作用是将相应通道的时,控制字的作用是将相应通道的计数值锁存的命令,锁存计数值在读取完成之后,自动解锁。计数值锁存的命令,锁存计数值在读取完成之后,自动解锁。 如要读通道如要读通道1 1的的1616位计数器

17、,编程如下:地址位计数器,编程如下:地址f8hf8hfehfeh。 mov almov al,40h40h; out 0fehout 0feh,al al ;锁存计数值;锁存计数值 in alin al,0fah0fah mov clmov cl,alal;低八位;低八位 in alin al,0fah0fah; mov chmov ch,alal;高八位;高八位三、工作方式三、工作方式8253输出(软件控制)输出(软件控制)u方式方式1:重复触发的单稳输出(硬件控制):重复触发的单稳输出(硬件控制)u方式方式2:分频器(软件控制):分频器(软件控制)u方式方式3:方波发生器(软件控制):方波

18、发生器(软件控制)u方式方式4:选通信号发生器(软件触发):选通信号发生器(软件触发)u方式方式5:选通信号发生器(硬件触发):选通信号发生器(硬件触发) 方式方式2 2:分频器:分频器u计数器减到计数器减到1 1时,时,outout仅输出一个仅输出一个clkclk脉宽的低电平,然后自脉宽的低电平,然后自动装入重新计数。动装入重新计数。ugategate由低变高会重新装入初值。由低变高会重新装入初值。u新初值在下次计数才起作用。新初值在下次计数才起作用。特点:特点:(1 1)不用重新设置计数值,通道可以连续工作。)不用重新设置计数值,通道可以连续工作。 (2 2)以)以gategate信号停止

19、计数。在信号停止计数。在gategate变成高电平后的下一个变成高电平后的下一个clkclk脉冲,计数器恢复原来的初值,重新计数。脉冲,计数器恢复原来的初值,重新计数。 (3 3)改变计数值不是立即有效,)改变计数值不是立即有效,只有当计数值减至只有当计数值减至0 0时,下一时,下一轮计数过程按新初值进行。轮计数过程按新初值进行。方式方式2 2的初始化:设计数器工作于方式的初始化:设计数器工作于方式2 2,二进制计数,计数初,二进制计数,计数初值值0304h0304h。端口地址。端口地址0e0h0e0h0e3h0e3h。2.2.方式方式3 3:方波发生器:方波发生器u 与方式与方式2 2类似,

20、但其输出方波或准方波。类似,但其输出方波或准方波。u 计数值完成一半时,使计数值完成一半时,使outout变低,直到计数任务全部完成为止,变低,直到计数任务全部完成为止,outout恢恢复为高。复为高。u 初值为偶数时,每次减初值为偶数时,每次减1 1,直至,直至n/2n/2时时outout输出变为低电平,然后又从输出变为低电平,然后又从初值开始,每次减初值开始,每次减1 1,直至,直至n/2n/2时时outout输出变为高电平。输出变为高电平。u 初值为奇数时,每次减初值为奇数时,每次减1 1,减,减(n+1)/2(n+1)/2次时,次时, outout输出变为低电平,然输出变为低电平,然后

21、从后从(n-1)/2(n-1)/2开始,每次减开始,每次减1 1,直至为,直至为0 0,所以有,所以有(n+1)/2(n+1)/2个脉宽的高电个脉宽的高电平平,(n-1)/2,(n-1)/2个脉宽的低电平。个脉宽的低电平。u gategate由低变高时,重新开始计数。由低变高时,重新开始计数。特点:特点:(1 1)gategate信号由低变高可以使计数过程重新开始。信号由低变高可以使计数过程重新开始。 (2 2)改变计数初值并不影响现行的计数过程。)改变计数初值并不影响现行的计数过程。方式方式3 3的初始化:计数器的初始化:计数器0 0工作于方式工作于方式3 3,二进制计数,初值为,二进制计数

22、,初值为4 4。端口地址为。端口地址为0e0h0e0h0e3h0e3h。movmovalal,16h16h;控制字;控制字outout0e3h0e3h,alalmovmovalal,4 4;初值;初值outout0e0h0e0h,alal方式方式2 2与方式与方式3 3的比较(波形输出)的比较(波形输出) 相同点相同点均输出连续周期波形,预置初值可自动重装入均输出连续周期波形,预置初值可自动重装入 不同点不同点方式方式 2 2 输出连续负脉冲周期波形输出连续负脉冲周期波形方式方式 3 3 输出连续方波周期波形输出连续方波周期波形方式方式3 3方式方式2 2用通道用通道0 0产生周期为产生周期为

23、1ms1ms的方波,其时钟输入端输入的方波,其时钟输入端输入1mhz1mhz的方波脉冲信号。的方波脉冲信号。设设82538253端口地址为端口地址为210h-213h210h-213h,写出初始化程序段。,写出初始化程序段。clk0clk0计数脉冲的周期为计数脉冲的周期为1/1mhz=1s1/1mhz=1s计数值计数值=1ms/1s=1000=1ms/1s=1000初始化程序:初始化程序:mov al, 00110110bmov al, 00110110bmov dx, 213hmov dx, 213hout dx, alout dx, almov ax, 1000mov ax, 1000mov dx, 210hmov dx, 210hout dx, alout dx, almov al, ahmov al, ahout dx, alout dx, al电子钟电子钟82538253初始化

温馨提示

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

评论

0/150

提交评论