计数器定时器8253_第1页
计数器定时器8253_第2页
计数器定时器8253_第3页
计数器定时器8253_第4页
计数器定时器8253_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6章章 常用输入输出接口芯片应用常用输入输出接口芯片应用6.4 计数器计数器/ /定时器定时器8253Page 2教学重点教学重点可编程计数器可编程计数器/定时器的原理定时器的原理8253的工作方式和编程的工作方式和编程8253的应用的应用Page 3教学内容教学内容1 概述概述2 可编程计数器可编程计数器/定时器的工作原理定时器的工作原理3 可编程计数器可编程计数器/定时器定时器8253Page 41 概述概述定时器定时器/计数器的应用举例:计数器的应用举例:Page 5定时信号的获得:定时信号的获得:(1)软件方法)软件方法使用使用延迟子程序延迟子程序MOV CX,1000 L1:LO

2、OP L1 (2)硬件方法)硬件方法使用使用计数器计数器/定时器定时器 Page 62 可编程计数器可编程计数器/定时器的工作原理定时器的工作原理定时器由数字电路中的计数电路构成,通过记定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出录高精度晶振脉冲信号的个数,输出准确的准确的时时间间隔。间间隔。计数电路如果记录外设提供的具有计数电路如果记录外设提供的具有的脉冲信号时,它主要反映的脉冲信号时,它主要反映脉冲的个数脉冲的个数(进而(进而获知外设的某种状态),又称为计数器。获知外设的某种状态),又称为计数器。Page 7 设置设置计数初值计数初值后,计数执行单元随着时钟后,

3、计数执行单元随着时钟CLK开始减开始减1计数,减到零时,从计数,减到零时,从OUT输出输出端输出一个结束信号;端输出一个结束信号; 设置好设置好定时常数定时常数后,计数执行单元随着时后,计数执行单元随着时钟钟CLK开始减开始减1计数,减到零时,从计数,减到零时,从OUT输出输出端输出信号,并按定时常数重复进行,这样不端输出信号,并按定时常数重复进行,这样不断输出定时间隔的信号。断输出定时间隔的信号。Page 8高高8位位 低低8位位GATECLKOUT输出锁存器输出锁存器OL计数初值寄存器计数初值寄存器CR高高8位位 低低8位位计数执行部件计数执行部件CE高高8位位 低低8位位计数器计数器/定

4、时器结构示意图定时器结构示意图Page 9计数器计数器/定时器的用处定时器的用处 在多任务的分时系统中用来作为中断信号在多任务的分时系统中用来作为中断信号实现程序的切换;实现程序的切换; 可以向可以向I/O设备输出精确的定时信号;设备输出精确的定时信号; 作为可编程的波特率发生器;作为可编程的波特率发生器; 实现时间延迟。实现时间延迟。Page 103 可编程计数器可编程计数器/定时器定时器8253. 8253的的. 8253的的. 8253的的. 8253的的. 8253的的Page 11. 8253的内部结构的内部结构计计数数器器0计计数数器器1计计数数器器2Page 12 数据总线缓冲器

5、是一个三态、双向数据总线缓冲器是一个三态、双向8位缓冲器,位缓冲器,用于将用于将8253与系统数据总线与系统数据总线D0D7相连。相连。 CPU通过数据总线缓冲器向通过数据总线缓冲器向8253写入数据和命写入数据和命令,或从数据总线缓冲器读取数据和状态信息。令,或从数据总线缓冲器读取数据和状态信息。数据总线缓冲器有三个数据总线缓冲器有三个:通过编程向通过编程向8253写入工作方式命令字;写入工作方式命令字; 向计数寄存器装入计数值;向计数寄存器装入计数值;读出计数值。读出计数值。数据总线缓冲器数据总线缓冲器Page 13 这是这是8253内部操作的控制部分。按内部操作的控制部分。按CPU发发来

6、的读、写信号和地址信号,选择读出或写入来的读、写信号和地址信号,选择读出或写入寄存器,并且确定数据传输的方向,即是读出寄存器,并且确定数据传输的方向,即是读出还是写入。还是写入。读读/写逻辑电路写逻辑电路控制字寄存器控制字寄存器 在在8253的初始化编程时,由的初始化编程时,由CPU写入控制写入控制字以决定通道的工作方式。此寄存器只能写入字以决定通道的工作方式。此寄存器只能写入而不能读出。而不能读出。Page 14 这是三个独立的定时这是三个独立的定时/计数通道,每个计数通道,每个通道的结构完全相同,每个通道都有一个通道的结构完全相同,每个通道都有一个16位的可预置数值的减法计数器,还有一个对

7、位的可预置数值的减法计数器,还有一个对应的锁存寄存器构成。在编程控制下可以把应的锁存寄存器构成。在编程控制下可以把预置的数值锁存到锁存寄存器内。预置的数值锁存到锁存寄存器内。Page 15 在工作过程中,计数器的值不断递减,而锁在工作过程中,计数器的值不断递减,而锁存寄存器的内容不变。存寄存器的内容不变。 计数器内容减为计数器内容减为0时,还可控制锁存寄存器时,还可控制锁存寄存器自动自动将其数值填入计数器内。还可用工作方式将其数值填入计数器内。还可用工作方式字控制计数器将其当前数值锁存到锁存寄存器字控制计数器将其当前数值锁存到锁存寄存器内,以便内,以便读出当前计数值读出当前计数值。 每个计数器

8、都有每个计数器都有六种六种工作方式。工作方式。Page 162. 8253的引脚分配的引脚分配1224121413GND D7D6D5D4D3D2D1D0CLK0OUT0GATE0VCCWRRDCSA1A0CLK2OUT2GATE2CLK1GATE1OUT18253Page 17 地址引脚 端 口 A1 A0 端 口 0 0计数器0 0 1计数器1 1 0计数器2 1 1控制字寄存器8253的内部端口地址引脚的内部端口地址引脚A1、A0Page 18计数器的三个引脚计数器的三个引脚计数器对该引脚输入的脉计数器对该引脚输入的脉冲进行计数,在计数过程中,此引脚上每输入一冲进行计数,在计数过程中,此

9、引脚上每输入一个时钟信号(下降沿),计数器的计数值减个时钟信号(下降沿),计数器的计数值减1。 8253的基本工作方式是对的基本工作方式是对CLK端输入的脉冲进行端输入的脉冲进行计数,计数, CLK端输入的脉冲可以是任何脉冲源提供端输入的脉冲可以是任何脉冲源提供的脉冲的脉冲(只要它的周期不小于只要它的周期不小于380ns即可即可) 。Page 19通过外部控制计数通过外部控制计数器工作,可分成电平控制和上升沿控制两种器工作,可分成电平控制和上升沿控制两种类型,类型由类型,类型由决定。决定。当一次计数过程结当一次计数过程结束(计数值减为束(计数值减为0),),OUT引脚上将产生一引脚上将产生一个

10、输出信号。个输出信号。Page 20基本规则基本规则.控制字写入计数器时,所有的控制逻辑电路控制字写入计数器时,所有的控制逻辑电路立即复位,输出端立即复位,输出端OUT为初始状态(高电平或为初始状态(高电平或低电平);低电平);.初值写入后,要经过初值写入后,要经过1个时钟个时钟CLK的上升沿的上升沿和和1个个下降沿下降沿后,计数执行部件才开始计数;后,计数执行部件才开始计数;3. 8253的工作模式的工作模式Page 21.在在CLK的的时,计数器对门控信号时,计数器对门控信号GATE进行采样,来决定工作状态(计数、触发、停止、进行采样,来决定工作状态(计数、触发、停止、重新置初值);重新置

11、初值);.在在CLK的的时,计数器执行部件从初值开时,计数器执行部件从初值开始作减始作减1计数;计数;。Page 22注意:注意:启动方式(软件启动、硬件启动)启动方式(软件启动、硬件启动);GATE信号的作用,可以启动计数的有效信号的作用,可以启动计数的有效GATE信号信号(高电平、上升沿高电平、上升沿),GATE信号的变化导致计数发生的信号的变化导致计数发生的变化变化;OUT输出波形输出波形;计数期间向计数器写入新的计数值,计数的变化计数期间向计数器写入新的计数值,计数的变化;是否自动重新装入是否自动重新装入Page 23 CW N=4WRCLKGATEOUT N N 4 3 2 1 0

12、FF装控制字装初值计数开始计数结束 作用是用户可在设定时间上产生中断信号模式0:计数结束产生中断Page 24模式模式0的工作特点:的工作特点:门控电路门控电路GATE信号必须为信号必须为1,计数器才能,计数器才能计数;计数;计数时通道输出端计数时通道输出端OUT一直为一直为0;通道计数器计数到通道计数器计数到0后,后,OUT由由0到到1,同,同时计数器停止工作;时计数器停止工作;Page 25作用是输出一个用户事先设定宽度的脉冲,作用是输出一个用户事先设定宽度的脉冲,脉冲宽度脉冲宽度PWNTCLK模式模式1:可编程的单稳态触发器:可编程的单稳态触发器Page 26模式模式1的工作特点:的工作

13、特点:门控电路门控电路GATE是触发信号,上升沿有效,即是触发信号,上升沿有效,即开始计数是由开始计数是由GATE的上升沿触发的;的上升沿触发的;触发后,通道计数器开始计数,输出端触发后,通道计数器开始计数,输出端OUT由由高变低;高变低;计数器计数到计数器计数到0,OUT再由低变高。再由低变高。Page 27工作模式工作模式2:分频器:分频器 CW N=3 N N 3 2 1 3 2 1 3 2 1 3 WRCLKGATEOUT作用作用是把输入信号分频后以脉冲的形式输出,是把输入信号分频后以脉冲的形式输出,而分频系数就是用户事先对通道计数器写入而分频系数就是用户事先对通道计数器写入的初始计数

14、值。的初始计数值。Page 28模式模式2的工作特点:的工作特点: 门控电路门控电路GATE信号必须为信号必须为1,计数器才能对,计数器才能对CLK端上端上的脉冲进行计数;的脉冲进行计数;当计数器计数到当计数器计数到1时,输出端由高变低,再经过一个时,输出端由高变低,再经过一个CLK周期,即计数器计数到周期,即计数器计数到0时,输出端时,输出端OUT又跳变为又跳变为高;高;通道计数器计数到通道计数器计数到0后,自动重新装入计数初值,实后,自动重新装入计数初值,实现循环计数;现循环计数;Page 29工作模式工作模式3:方波发生器:方波发生器说明:特点与方式说明:特点与方式2类似,主要区别:类似

15、,主要区别:输出方波输出方波,其,其占空比占空比q为为当当N为偶数时,为偶数时,q=0.5;当当N为奇数时,为奇数时,q=(N+1)/2N。 CW N=4 N N 4 3 2 1 4 3 2 1 4 3 2 WRCLKGATEOUTPage 30模式模式3的工作特点:的工作特点:门控电路门控电路GATE信号必须为信号必须为1,计数器才能对,计数器才能对CLK端上的脉冲进行计数;端上的脉冲进行计数;当计数器计数到一半时,输出端由高变低,计数当计数器计数到一半时,输出端由高变低,计数器计数到器计数到0时,输出端时,输出端OUT又跳变为高;又跳变为高;通道计数器计数到通道计数器计数到0后,自动重新装

16、入计数初值,后,自动重新装入计数初值,实现循环计数;实现循环计数;Page 31模式模式4:软件触发的选通信号发生器:软件触发的选通信号发生器 CW N=3 N N 3 2 1 0 FF FE 3 2 1 0 FF N=3WRCLKGATEOUT作用作用是是CPU通过指令触发一个选通信号给外设,通过指令触发一个选通信号给外设,选通信号在触发后设定时间点上触发。选通信号在触发后设定时间点上触发。Page 32模式模式4的工作特点:的工作特点:门控电路门控电路GATE信号必须为信号必须为1,计数器才能,计数器才能计数;计数;当计数器计数到当计数器计数到0后,需要重新装入计数值。后,需要重新装入计数

17、值。Page 33模式模式5:硬件触发的选通信号发生器:硬件触发的选通信号发生器 CW N=3 N N 3 2 1 0 FF FE 3 2 1 0 FF WRCLKGATEOUT作用作用是外部通过一个有效沿触发信号,启是外部通过一个有效沿触发信号,启动一个选通信号给外设,选通信号在触发动一个选通信号给外设,选通信号在触发后设定时间点上发出。后设定时间点上发出。Page 34模式模式5的工作特点:的工作特点:门控电路门控电路GATE信号为上升沿触发,计数信号为上升沿触发,计数器才能计数;器才能计数;计数时通道输出端计数时通道输出端OUT一直为一直为1;通道计数器计数到通道计数器计数到0后,后,O

18、UT由由1到到0,同,同时计数器停止工作;时计数器停止工作;Page 358253工作方式小结工作方式小结.方式方式2、4、5的输出波形是相同的,都是宽度为的输出波形是相同的,都是宽度为一个一个CLK周期的负脉冲。周期的负脉冲。 但方式但方式2是是连续工作连续工作,方式方式4由由软件软件(设置计数值)触发启动(设置计数值)触发启动方式方式5由由门控脉冲门控脉冲触发启动触发启动.写入计数值后才能开始计数写入计数值后才能开始计数v 方式方式0、2、3、4在写入计数值后,计数过程就在写入计数值后,计数过程就开始了开始了v 方式方式1、5需要外部触发启动,才开始计数需要外部触发启动,才开始计数Page

19、 36.6种方式中只有种方式中只有是连续计数,其他是连续计数,其他4种方种方式都是一次计数,要继续工作需要重新启动,方式都是一次计数,要继续工作需要重新启动,方式式0、4由写入计数值(软件)启动,方式由写入计数值(软件)启动,方式1、5要要由外部信号(硬件)启动。由外部信号(硬件)启动。Page 374. 8253的控制寄存器的格式的控制寄存器的格式计数器选择计数器选择读读/写方式写方式工作模式选择工作模式选择数制数制D7D6D5D4D3D2D1D000 计数器计数器001 计数器计数器110 计数器计数器211 不用不用00 计数器锁存命计数器锁存命令令 01 只读写低字节只读写低字节10

20、只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后读写高字节 (读写(读写16位)位)000 模式模式0001 模式模式110 模式模式211 模式模式3100 模式模式4101 模式模式50 二进制二进制1 BCDPage 38计数值计数值写入计数器各自的写入计数器各自的I/O地址地址计数值范围计数值范围选择二进制时选择二进制时计数值范围:计数值范围:0000H0FFFFH选择十进制(选择十进制(BCD码)码)计数值范围:计数值范围:00009999Page 39锁存命令锁存命令读出命令读出命令8253的编程命令的编程命令Page 40初始化命令初始化命令(1) 对计数器

21、设置初值前必须先写入控制字,对计数器设置初值前必须先写入控制字,用来选择计数器、设定工作模式和计数格式;用来选择计数器、设定工作模式和计数格式;(2) 设置初值命令用来给出计数的初始值,初设置初值命令用来给出计数的初始值,初值可以是值可以是8位,也可以是位,也可以是16位;位;Page 41计数初值为计数初值为8位,则控制字中的位,则控制字中的RW1、RW0应取应取01,初值只写入,初值只写入CR的低的低8位,高位,高8位会自动置位会自动置0;若是若是16位初值,而低位初值,而低8位是位是0,则,则RW1、RW0应取应取10,初值高,初值高8位写入位写入CR的高的高8位,位,CR的低的低8位会

22、自位会自动置动置0;若是一般若是一般16位初值,则位初值,则RW1、RW0应取应取11,应分,应分两次写入初值,两次写入初值,先写低先写低8位、再写入高位、再写入高8位(此顺序位(此顺序不能反)不能反)计数初始值写入计数初始值写入对应计数器的计数初值寄存器对应计数器的计数初值寄存器 ;设置计数初始值的说明设置计数初始值的说明Page 42写模式控制字写模式控制字写计数低字节写计数低字节写计数高字节写计数高字节写模式控制字(计数器写模式控制字(计数器0)写模式控制字(计数器写模式控制字(计数器1)写模式控制字(计数器写模式控制字(计数器2)写计数低字节(计数器写计数低字节(计数器0)写计数高字节

23、(计数器写计数高字节(计数器0)写计数低字节(计数器写计数低字节(计数器1)写计数高字节(计数器写计数高字节(计数器1)写计数低字节(计数器写计数低字节(计数器2)写计数高字节(计数器写计数高字节(计数器2)初始化流程初始化流程先写入工作模式控制字,接着写入计数初始值先写入工作模式控制字,接着写入计数初始值Page 43计数器的顺序是任意的,不必一定按照计数计数器的顺序是任意的,不必一定按照计数器器0、l、2的顺序初始化;的顺序初始化;可先写所有计数器的工作模式控制字,再装可先写所有计数器的工作模式控制字,再装入各计数器的计数值(但入各计数器的计数值(但先控制字再计数值先控制字再计数值的顺序的

24、顺序不能错);不能错);计数值先写低再写高的顺序不能错;计数值先写低再写高的顺序不能错;其他顺序无关紧要其他顺序无关紧要 初始化流程的注意问题初始化流程的注意问题Page 44例例1 对对8253计数器计数器1编程,让其工作在方式编程,让其工作在方式2,计,计数值是二进制的数值是二进制的2000H。(思考题)。(思考题)计数器计数器 1二进制数二进制数方式方式 2先写低先写低8位位,后写高后写高8位位 控制字为:控制字为: 0 1 1 1 0 1 0 0 B = 74 HPage 45 MOV AL,74H ;控制字;控制字 MOV DX,123H ;控制字寄存器地址;控制字寄存器地址 OUT

25、 DX,AL MOV DX,121H ;计数器;计数器 1 地址地址 MOV AL,00H ;低;低8位字节送位字节送AL OUT DX,AL ;输出到计数器;输出到计数器 MOV AL,20H ;高;高8位字节送位字节送AL OUT DX,AL ;输出到计数器;输出到计数器Page 46例例2 设设8253的端口地址为的端口地址为80308036H(偶地址偶地址),要,要求设定计数器求设定计数器0的工作在模式的工作在模式0下,采用二进制计数方下,采用二进制计数方式,计数初值为式,计数初值为1000;计数器;计数器1的工作在模式的工作在模式2下,采下,采用用BCD码计数方式,计数初值为码计数方

26、式,计数初值为1000;试写出;试写出8253初始化程序。初始化程序。Page 47MOV DX, 8036HMOV AL, OUT DX, ALMOV DX, MOV AL, OUT DX, ALMOV AL, OUT DX, ALMOV DX, 8036HMOV AL, OUT DX, ALMOV DX, MOV AL, OUT DX, ALMOV AL, OUT DX, AL初始化程序初始化程序Page 48 读到的是执行输入指令瞬间计数器的现读到的是执行输入指令瞬间计数器的现行值。行值。16位计数值要位计数值要分两次分两次读至读至CPU,故必,故必须将数据锁存。须将数据锁存。 利用外加

27、控制信号利用外加控制信号 GATE使计数器暂停计使计数器暂停计数,然后按照工作方式控制字中数,然后按照工作方式控制字中RL1RL0的规的规定读取规定字节定读取规定字节读取计数值命令读取计数值命令Page 49 CPU向向8253发出锁存命令字发出锁存命令字(SC1SC0)锁存锁存计数器的当前计数值计数器的当前计数值(当前计数值锁存在输出当前计数值锁存在输出锁存器锁存器,而减而减1计数器可以继续计数计数器可以继续计数),再读取输再读取输出锁存器的计数值。出锁存器的计数值。当当CPU读取了规定的字节数后,输出锁存器读取了规定的字节数后,输出锁存器自动解除锁存状态,其值又跟随计数器而变自动解除锁存状

28、态,其值又跟随计数器而变化。化。Page 50MOV DX, 8036HMOV AL, 80HOUT DX, ALMOV DX, 8034HIN AL, DXMOV CL, ALIN AL, DXMOV CH, AL例例3 8253的端口地址为的端口地址为80308036H,要求将,要求将计数器计数器2的当前计数值读出并送到的当前计数值读出并送到CX中。中。Page 51例:例:现有一个高精密晶体振荡电路,输出信号现有一个高精密晶体振荡电路,输出信号是脉冲信号,频率为是脉冲信号,频率为1MHz。要求利用。要求利用8253做做一个一个,其输出接一发光二极管,其输出接一发光二极管,以以0.5秒点亮

29、,秒点亮,0.5秒熄灭秒熄灭的方式闪烁指示。设的方式闪烁指示。设8253的通道地址为的通道地址为80H86H(偶地址偶地址)。5. 8253的的应用举例应用举例Page 52OUT0GATE0CLK01MHz8253通 道 0 5VOUT1GATE1CLK11KHz8253通 道 1Page 53 经过分析可知:要求用经过分析可知:要求用8253做一个分频电路,做一个分频电路,而且其输出应该是而且其输出应该是方波方波,否则二极管不可能,否则二极管不可能等间隔闪烁指示,则分频系数为:等间隔闪烁指示,则分频系数为:分析步骤分析步骤1000000z1z1000000z1z121NNHKHHMHNPa

30、ge 54 由于由于8253一个通道最大的计数值是一个通道最大的计数值是65536,而对于,而对于N1000000这样一个数,一个通道显然是不可能这样一个数,一个通道显然是不可能完成上述分频要求,故本题采用了如图所示的通完成上述分频要求,故本题采用了如图所示的通道计数器级联的方法来实现分频系数超过道计数器级联的方法来实现分频系数超过65536的的分频要求。分频要求。 分析电路图可知:通道分析电路图可知:通道0首先将首先将1MHz信号信号1000分分频,产生频,产生1KHz信号;通道信号;通道1再把再把1KHz信号信号1000分分频,得到频,得到1Hz的方波信号来控制二极管的输出。的方波信号来控制二极管的输出。Page 55 经过分析可知:通道经过分析可知:通道1要输出方波信号推动要输出方波信号推动发光二极管,所以通道发光二极管,所以通道1应选工作方式应选工作方式3;对;对于通道于通道0,它只要能起分频作用就行,对输,它只要能起分频作用就行,对输出波形不作要求,所以方式出波形不作要求,所以方式2和方式和方式3都可以都可以选用。选用。Page 56通道通道0的控制字为的控制字为00110101B,即,即16位读写方位读写方式,式,

温馨提示

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

评论

0/150

提交评论