




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章可编程定时器/计数器1.掌握8253的基本功能2.掌握8253的6种工作方式的特点和用法3.掌握8253的硬软件设计方法21.软件定时定时原理:让机器循环执行某一条或一系列指令,这些指令本身并没有具体的执行目的,但由于执行每条指令都需要一定的时间,重复执行这些指令就会占有一段固定的时间。优点:灵活方便,节省费用缺点:CPU的利用率太低8.1概述32.不可编程硬件定时定时原理:利用555定时器加上外接电阻和电容就能构成定时电路优点:电路结构简单,价格便宜,通过改变电阻或电容值,可以在一定的定时范围内改变定时时间缺点:电路在硬件已连接好的情况下,定时时间和范围就不能由程序来控制和改变,而且定时精度也不高43.可编程硬件定时定时原理:利用可编程定时器/计数器芯片附加硬件电路实现定时优点:①灵活方便;②由微处理器的时钟信号提供时间基准,因这种时钟信号由晶体振荡器产生,故计时精确稳定;③不占用CPU的时间,提高了CPU的利用率;④应用广泛58.28253的结构8253芯片有3个独立的16位计数器通道每个计数器通道都可以按照二进制或十进制计数每个通道有6种工作方式,可以由程序设定和改变每个计数器的计数速率可以高达2MHz61.内部的各计数器的结构&CLKGATE16位减一计数器CE16位计数初值寄存器CR16位计数输出锁存器OUT(减1至0时)CRLCRH装入初值OLHOLL锁存后读出当前值16位缓冲器72.8253的引脚83.内部结构9数据总线缓冲器读/写控制逻辑控制字寄存器CLK0GATE0OUT0通道0CLK2GATE2OUT2通道2CLK1GATE1OUT1通道1CSD0-D7内部总线RDWRA0A18796115104321511422132319201821162417128253D0D1D2D3D4D5D6D7/WRRDA0A1/CSVCCGNDCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2面向CPU面向外设101)数据总线缓冲器八位双向三态,用于暂时存放数据,存放的数据有:(1)初时化编程时向8253写入的控制字(2)向某一通道写入的计数值。(3)从某一通道读计数值。
CPU用输入/输出指令对8253进行读/写操作的所有信息都是通过这8条总线传送的。数据总线缓冲器读/写控制逻辑控制字寄存器CLK0GATE0OUT0通道0CLK2GATE2OUT2通道2CLK1GATE1OUT1通道1CSD0-D7内部总线RDWRA0A1112)读/写控制逻辑(1)接受CPU的RD、WR、CS
、A0、A1信号,经组合产生对某一端口的操作。
(2)当片选信号有效,即CS=0时,读/写逻辑才能工作。该控制逻辑根据读/写命令及送来的地址信息,决定三个计数器和控制字寄存器中哪一个工作,并控制内部总线上数据传送的方向。3)控制字寄存器接受CPU的控制字,只能写,不能读,根据控制字决定每个通道的工作方式。数据总线缓冲器读/写控制逻辑控制字寄存器CLK0GATE0OUT0通道0CLK2GATE2OUT2通道2CLK1GATE1OUT1通道1CSD0-D7内部总线RDWRA0A112数据总线三态1XX写控制寄存器011读/写计数器2001读/写计数器1010读/写计数器0000操
作A0A1CS134)三个计数/定时器(0、1、2)
计数器0、1、2是3个16位减1计数器,它们互相独立,内部结构和功能相同。每个计数器有3根信号线,它们是时钟输入CLK、门控输入GATE和输出OUT。计数器从CLK端接收时钟脉冲或事件计数脉冲,在脉冲下降沿按照二进制或十进制从预置的初值开始进行减1计数。当计数值减到零时,从OUT端送出一个信号。计数器在开始计数和计数过程中,都要受到门控信号GATE的控制。数据总线缓冲器读/写控制逻辑控制字寄存器CLK0GATE0OUT0通道0CLK2GATE2OUT2通道2CLK1GATE1OUT1通道1CSD0-D7内部总线RDWRA0A114
每个通道有:(1)有一个16位的预置计数初值寄存器(2)有一个16位的减1计数寄存器,初值为计数初值寄存器的值。当输入端CLK输入一个计数脉冲后,减1计数寄存器的内容减1,当减到0时,输出端OUT输出相应的电平,表示计数结束。(3)当前计数输出寄存器:16位寄存器,供CPU读出当前的计数值。当前计数输出寄存器相当于减1计数寄存器的状态寄存器,它随减1寄存器的内容变化,但由于减1计数寄存器是CPU不能直接读数据的,只能读当前计数输出锁存器的值。158.38253的控制字1.控制字格式方式控制字BCDM0M1M2RW0RW1SC0SC100—
选0号计数器01—
选1号计数器10—
选2号计数器11—
无效00—
锁存计数器01—
低8位操作10—
高8位操作11—
先低后高000—方式0001—方式1X10—方式2X11—方式3100—方式4101—方式50—二进制计数1—BCD计数16
2.8253初始化编程要求(1)8253三个端口有各自独立的地址,控制字分别对各端口的工作方式进行控制(2)对某一个端口设置初值时,先设置控制字(3)设置初值时,要符合D5、D4的规定,分别输入计数值,(16位计数值要用两条指令写入计数值)(4)锁存(D5D4=00)的目的是:在CPU读取计数值前先用锁存命令锁存减1计数器的当前值,否则得不到正确的结果,CPU取走数据后,锁存功能自动失锁(5)编程顺序:先写入控制字到控制寄存器,然后写入计数初值到所确定的计数器端口17
例1:将计数器2初始化为工作方式3,计数初值为533H,为二进制计数方式,设寄存器地址为40H~43H控制字MOV AL,0B6H ;计数器2,先低后高字节OUT 43H,AL ;写命令字MOV AX,533H ;计数初值OUT 42H,AL ;写计数值低位MOV AL,AHOUT 42H,AL ;写计数值高位01101101B6H18
例2:8253工作为计数器1,方式3,初值为4020,十进制计数,设寄存器地址为40H-43H控制字1110111077H MOVAL,77HOUT43H,AL;写计数器1的控制字
MOVAL,20HOUT41H,AL
;写计数器1的低8位初值
MOVAL,40HOUT41H,AL
;写计数器1的高8位初值19
例3:频率为2MHz的时钟信号,利用T1定时2ms,试对8253初始化(方式3)设寄存器地址为304H-307H初值:方式字:76H(二进制计数)
77H(BCD码计数)20MOV DX,307HMOV AL,76HOUT DX,AL;写入方式字MOV DX,305HMOV AX,4000OUT DX,ALMOV AL,AHOUT DX,AL;写入计数初值初始化程序段21
补充:读的方法读初值:按初始化时指定的长度和顺序直接读读当前值:先锁存再读读出上例中初值存入BXMOV DX,305HIN AL,DXMOV BL,AL;读低字节IN AL,DXMOV BH,AL;读高字节读出上例中当前值存入CXMOV DX,307HMOV AL,40HOUT DX,AL;锁存T1MOV DX,305HIN AL,DXMOV CL,AL;读低字节IN AL,DXMOV CH,AL;读高字节228.48253工作方式方式0:计数结束中断方式(软件控制)方式1:可重触发单稳态方式(硬件控制)方式2:速率发生器(分频器)(软硬控制)周期性脉冲输出方式3:方波发生器(软硬控制)周期性方波输出方式4:选通信号发生器(软件触发)单次负脉冲输出方式5:选通信号发生器(硬件触发)单次负脉冲输出软件启动:写入新的计数值,则重新计数硬件启动:GATE上跳沿启动231)写入控制字时所有的控制逻辑电路复位,输出端OUT进入初始化状态2)初值写入后,需经过一个时钟周期,减1计数器才开始工作,时钟脉冲的下降沿使计数器减1计数(GATE必须为高时)。3)对门控信号GATE的采样是在计数脉冲的上升沿进行,所以有电平触发和边沿触发两种方式。4)8253在上电后必须先对其设置控制字六种工作方式均遵循的以下几条原则241.方式0—计数结束中断方式(软件启动)(1)结果特点:计数器减1为0时,OUT升高,向CPU发中断请求(2)过程特点:写入控制字后OUT初始状态:低电平门控信号GATE的作用:①高电平允许计数;②如果在计数过程GATE为低电平,则暂停计数;③GATE回到高电平后,继续往下计数。计数过程中OUT状态:保持低电平计数结束OUT状态:发生由低到高的正跳变,可以发出中断请求信号。计数器回0后,是否重新计数:否应用:用于工业生产中对产品的计数2526方式0:当GATE=0时,计数器暂停计数;当GATE变为1后,就接着计数。27方式0:在计数过程中可改变计数值。如果计数器为8位,在写入新的8位计数值后,计数器将按新的计数值重新开始计数。28
例1:设8253计数器通道0工作于方式0,其计数值为50,十进制,设寄存器地址为40H-43H,初始化程序如下:
MOVAL,00010001B ;设置控制字
OUT43H,AL;写入控制字寄存器
MOVAL,50H;设置计数初值
OUT40H,AL ;写入计数初值寄存器若其计数值为5000,十进制,初始化程序如下:
MOVAL,00110001B ;设置控制字
OUT43H,AL;写入控制字寄存器
MOVAL,00H;设置计数初值低8位
OUT40H,AL ;写入计数初值寄存器
MOVAL,50H;设置计数初值高8位
OUT40H,AL ;写入计数初值寄存器29(1)结果特点:输出单拍负脉冲,脉冲宽度可编程设定(2)过程特点:写入控制字后OUT初始状态:高电平门控信号GATE的作用:①高电平或低电平均不起作用;②只有在GATE发生由低到高的正跳变,输出OUT由高到低跳变,并开始计数;③在计数过程中,若GATE产生负跳变,不影响计数;④在计数器回0之前,GATE又产生由低到高的正跳变,8253又将初始值装入,重新开始计数,使生成脉冲加宽。计数过程中OUT状态:保持低电平计数结束OUT状态:发生由低到高的正跳变。计数器回0后,是否重新计数:否应用:用于定时2.方式1—可重触发单稳态方式30高31方式1:①在计数过程中,外部可发出门控脉冲,进行再触发。这时不管原来计数到何值,计数器将重新开始计数,输出端仍保持低电平。32方式1:②计数过程中改变计数初值不影响本次计数过程。若门控信号再次被触发,则计数器才按新的计数值计数。WRCWNOUTGATE32103210重新装入原来的初值由GATE的上升沿启动新的计数过程改变初值开始计数开始计数计数结束计数结束N33比较方式0和方式1的不同①方式0设置计数初值后立即计数;方式1设置计数初值后不立即计数,直到有外部触发信号后才开始计数。②方式0在计数过程中能用门控信号暂停计数;方式1在计数过程中若有门控脉冲时不停止计数,而是使计数过程重新开始。③方式0在计数过程中改变计数初值时,原计数停止,立即按新的计数初值开始计数;方式1在计数过程中当改变计数初值时,现行计数不受影响,新计数初值在下次启动计数后才起作用。④方式0在一次计数结束后,必须重新设置计数初值才能再次计数,即计数初值只能使用一次,方式1的计数初值在一次计数过程完成后继续有效。34
例2:设计数器通道1工作于方式1,按二进制计数,计数初值为40H,寄存器地址同上,初始化程序
MOV AL,01010010B;工作方式控制字
OUT 43H,AL MOV AL,40H ;送计数初值
OUT 41H,AL;注意计数初值送到该通道计数初值为1234H,它的初始化程序为:
MOV AL,01110010B;工作方式控制字
OUT 43H,AL MOV AL,34H ;送计数初值
OUT 41H,AL;注意顺序
MOV AL,12H ;送计数初值
OUT 41H,AL353.方式2—脉冲频率发生器(1)结果特点:N分频,周期性定时。(2)过程特点写入控制字后OUT初始状态:高电平门控信号GATE的作用:①高电平允许计数;②在计数过程中,若GATE变为低电平时,禁止计数;③当GATE由低变高时,又把预置的计数初值装入计数器,重新开始计数。计数过程中OUT状态:保持高电平计数结束OUT状态:产生一个时钟周期的负脉冲。计数器回0后,是否重新计数:是应用:用于分频36方式2:①计数过程可由门控信号GATE控制。当GATE为0时,暂停计数。当GATE变为1后,下一个CLK脉冲使计数器恢复初值,重新开始计数。计数初值=33213高电平CWLSBCLKWRGATEOUTGATEOUT自动重复计数321禁止计数321重新开始计数37方式2:②在计数过程中可以改变计数初值,这对正在进行的计数过程没有影响。但当计数到1时输出变低,过一个CLK周期输出又变高,计数器将按新的计数值计数。所以对方式2改变计数初值时,在下一次计数有效。计数初值=3321高电平CWN=3CLKWRGATEOUT432新开始计数值14N=438
例3:设8253计数器0工作于方式2,按二进制计数,计数初值为0304H。MOV AL,00110100B ;先读/写低8位;再读写高8位,方式2,二进制。OUT 43H,ALMOV AL,04H;送计数值低字节OUT 40H,ALMOV AL,03H;如为8位,不要这两条指令OUT 40H,AL;送计数值高字节394.方式3—方波发生器(1)结果特点:产生连续方波(2)过程特点:写入控制字后OUT初始状态:高电平门控信号GATE的作用:①高电平允许计数;②在计数过程中,GATE变为低电平时,禁止计数;③当GATE由低变高时,又把预置的计数初值装入计数器,重新开始计数。计数过程中OUT状态:如果计数初值为偶数,则产生占空比为1/2的方波;如果计数初值为奇数,则产生占空比为(n+1)/2:n的方波,n为计数值计数结束OUT状态:继续输出方波计数器回0后,是否重新计数:是应用:用于分频40方式3:①当计数初值N为偶数时,输出端的高低电平持续时间相等,各为N/2个CLK脉冲周期;当计数初值N为奇数时,输出端的高电平持续时间比低电平持续时间多一个脉冲周期,即高电平持续(N+1)/2个脉冲周期。低电平持续(N-1)/2个脉冲周期。CLKWRGATEOUT(N=奇数)OUT(N=偶数高电平1420自动重复计数424(5)20CWLSB42424242(5)41方式3:
②GATE=1,允许计数;GATE=0,停止计数。如果在OUT为低电平期间GATE=0,OUT将立即变高。当GATE变高以后,在下一个CLK脉冲来到时,计数器将重新装入初始值,开始计数。在这种情况下通过门控信号使计数器实现同步,称为硬件同步。CLKWRGATE=1OUT自动重复计数CWLSB42424242OUT42442GATE42方式3:
③在计数期间写入一个新的计数初值,如果在输出信号半周结束之前没有收到GATE脉冲,则要到现行输出半周结束后才按新的计数初值开始计数。CLKWRGATEOUT(N=奇数)OUT高电平1520自动重复计数42NN-1N-2CWNN43方式3:
④在写入新计数初值之后在现行输出半周结束之前GATE=0,OUT立即变为高,计数器停止工作,当GATE=1后,将在下一个CLK脉冲来到时立即装入新的计数初值并开始计数。CLKWRGATEOUT(N=奇数)OUT高电平1520自动重复计数4642CWN=5N=6644例4:设8253计数器2工作在方式3,按十进制计数,计数初值为4,初始化程序如下:MOVAL,10010111B;计数器2,只读/写低8位,工作方式3,十进制OUT43H,AL ;控制字送控制字寄存器MOVAL,4 ;送计数初值OUT42H,AL计数初值为1234,则它的初始化程序如下:MOVAL,10110111B;计数器2,只读/写低8位,工作方式3,十进制OUT43H,AL ;控制字送控制字寄存器MOVAL,34 ;送计数初值低8位OUT42H,ALMOVAL,12 ;送计数初值高8位OUT42H,AL455.方式4—软件触发选通方式(1)结果特点:计数器减1为0时,输出一个时钟周期的负脉冲(2)过程特点:写入控制字后OUT初始状态:高电平门控信号GATE的作用:①高电平允许计数;②在计数过程中,GATE变为低电平时,禁止计数;③当GATE由低变高时,又把预置的计数初值装入计数器,重新开始计数。计数过程中OUT状态:保持高电平计数结束OUT状态:输出一个时钟周期的负脉冲计数器回0后,是否重新计数:否应用:用于软件触发计数的场合46方式4:①当GATE=1时,允许计数;当GATE=0时,禁止计数。所以,要做到软件触发,GATE应保持为1。靠软件将初始值写入后,不要GATE的上升沿高电平1CWN=33210禁止计数33210重新开始计数CLKWRGATEOUTGATEOUT47方式4:②在计数过程中,若改变计数初值,则在本次计数结束,下一周期开始按新的计数初值开始计数。这称为软件再触发。靠软件将初始值写入后,不要GATE的上升沿高电平1CWLSB3210321210重新开始计数CLKWRGATEOUTOUTCWN=3WRN=248例5:设8253计数器1工作于方式4,按二进制计数,计数初值为3,则初始化程序为:MOV AL,01011000B ;设置控制字寄存器OUT 43H,AL ;送控制字MOV AL,3 ;置计数初值OUT 41H,AL ;送计数初值计数初值为1234H,则初始化程序为:MOV AL,01111000B ;设置控制字寄存器OUT 43H,AL ;送控制字MOV AL,34H ;置计数初值低8位OUT 41H,AL ;送计数初值MOV AL,12H ;置计数初值高8位OUT 41H,AL ;送计数初值496.方式5—硬件触发选通方式(1)结果特点:计数器减1为0时,输出一个时钟周期的负脉冲(2)过程特点:写入控制字后OUT初始状态:高电平门控信号GATE的作用:
①高电平或低电平均不起作用;②只有在GATE发生由低到高的正跳变,开始计数;③在计数过程中,若GATE产生负跳变,不影响计数;④在计数器回0之前,GATE又产生由低到高的正跳变,8253又将初始值装入,重新开始计数。计数过程中OUT状态:保持高电平计数结束OUT状态:输出一个时钟周期的负脉冲计数器回0后,是否重新计数:计数器回0后,自动将计数值装入执行部件,当GATE出现正跳变触发脉冲时,又重新计数应用:用于硬件触发计数的场合50方式5:①若设置计数初值为N,则在门控脉冲触发后,经过N个CLK脉冲,才输出一个负脉冲。WRCLKGATEOUTCWN=3321051方式5:②在计数过程中,若GATE端又出现一个脉冲进行触发,则使计数器重新开始计数,但对输出状态没有影响。WRCLKGATEOUTCWN=332302152方式5:③若在计数过程中改变计数值,只要没有门控信号的触发,就不影响本次计数过程。当计数到0后,若有新的门控信号的触发,则按新的计数初值计数。WRCLKGATEOUTCWN=332201N=253方式4和方式5的异同方式5和方式4都产生选通脉冲。这两种方式的区别在于:
(1)方式4每次要靠软件设置计数初值后才能计数(软件触发)。(2)方式5的计数初值只需设置一次,但是每次计数要靠门控信号的触发(硬件触发)。(3)方式4软件更改计数初值后立即起作用,方式5软件更改计数初值后要有新的门控信号的触发才能起作用。54
例6:设8253的通道1工作于方式5,按二进制计数,计数初值为4000H,初始化程序段为:MOVAL,01101010B ;通道1,只读写高字节,OUT43H,AL;方式5,二进制计数。MOVAL,40H;低8位自动补0OUT41H,AL;送计数初值MOVAL,01111011B ;通道1,先读写低字节,OUT43H,AL;后读写高字节,方式5,十进制MOVAL,00H;低8位为0OUT41H,AL;MOVAL,40H;高8位40,OUT41H,AL;送计数初值558253的工作方式小结方式0——
写入CW后,输出即变低,计数结束输出为高,常用该输出信号作为中断源。其余5种方式写入CW后,输出均变高。方式0可用来实现定时或对外部事件进行计数。方式1用来产生单脉冲。方式2用来产生序列负脉冲,每个负脉冲的宽度与CLK的周期相同。方式3用于产生连续的方波。方式2和方式3都实现对CLK的n分频。方式4和方式5的波形相同,都是计数器归0后的1个负脉冲,宽度为1个CLK。568253的工作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位安全培训合同范本
- 写字楼出租三方合同范本
- 北京私人司机合同范本
- 传统文化在小学数学教学中的应用
- 农场蔬菜大棚承包合同范本
- 化学教学中“资料卡片”的应用
- 临时施工押金合同范本
- 探究式教学在小学语文教学中的运用
- 2025年江苏省建筑安全员-A证考试题库附答案
- 2025陕西省建筑安全员C证考试题库
- 人教版六年级上册道德与法治教案(5篇)
- 2024年无人驾驶环卫行业研究报告-通渠有道
- (中职)中职生创新创业能力提升教课件完整版
- 中班健康课件《我不挑食》
- 人教版(2024新版)七年级上册英语各单元重点语法知识点讲义
- 生猪屠宰兽医卫生人员考试题库答案(414道)
- 《完善中国特色社会主义法治体系》课件
- 2025版 高考试题分析-数学-部分4
- 湘教版三年级美术下册教案全册
- 重症监护-ICU的设置、管理与常用监测技术
- 2024版高一上册语文模拟试卷
评论
0/150
提交评论