常用可编程接口芯片定时器_第1页
常用可编程接口芯片定时器_第2页
常用可编程接口芯片定时器_第3页
常用可编程接口芯片定时器_第4页
常用可编程接口芯片定时器_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

常用可编程接口芯片定时器第1页,课件共54页,创作于2023年2月8.1定时控制接口定时控制具有极为重要的作用微机控制系统中常需要定时中断、定时检测、定时扫描等实时操作系统和多任务操作系统中要定时进行进程调度PC机的日时钟计时、DRAM刷新定时和扬声器音调控制都采用了定时控制技术可编程定时器芯片软硬件相结合、方便灵活的定时电路软件延时方法处理器执行延时子程序第2页,课件共54页,创作于2023年2月8.1.1定时器8253/8254定时器(计数器):由数字电路中的计数电路构成,记录输入脉冲的个数脉冲信号具有一定随机性,往往通过脉冲的个数可以获知外设的状态变化次数(计数)脉冲信号的周期固定(使用高精度晶振产生脉冲信号),个数乘以周期就是时间间隔(定时)Intel8253/8254可编程间隔定时器3个独立的16位计数器通道每个计数器有6种工作方式第3页,课件共54页,创作于2023年2月1.内部结构和引脚与计算机系统总线的接口3个相互独立的计数器通道,结构完全相同计数器0计数器1计数器2第4页,课件共54页,创作于2023年2月第5页,课件共54页,创作于2023年2月每个计数器通道16位减法计数器16位预置寄存器输出锁存器预置寄存器GATECLKOUT减1计数器输出锁存器第6页,课件共54页,创作于2023年2月定时器外设引脚CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号第7页,课件共54页,创作于2023年2月连接处理器引脚D7~D0数据线 A1~A0地址线——注意,当在8086,IA-32构架上使用,一般通过系统数据总线D7~D0传送数据,这时应该使用偶数地址(A0=0)RD*读信号 WR*写信号CS*片选信号,假设A15~A3为0000000001000**0计算机A2A1CS*A1A0I/O地址读操作RD*写操作WR*00000101001140H42H(41H)44H(42H)46H(43H)读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字奇数地址有误第8页,课件共54页,创作于2023年2月可编程计数器/定时器功能功能体现在两个方面:一是:作为计数器。 即在设置好计数初值后,便开始减1计数,减到0时,输出一个信号二是:作为定时器。 即在设置好定时时间常数后,便开始减一计数,并按定时时间常数不断地输出时钟周期整数倍的定时信号。两者之间的差别:计数器只输出一个信号,除非冲服触发定时器输出连续信号(减到0后,自动回复时间常数初值并重新开始计数)。第9页,课件共54页,创作于2023年2月典型用处在多任务的分时系统中作为中断信号实现程序的切换。可往I/O设备输出精确的定时信号。作为一个可编程的波特率发生器。实现时间延迟。第10页,课件共54页,创作于2023年2月基本结构原理原理就是可预置初值的减法计数器。主要组成包括:(1)初值寄存器——接收并保存CPU送来的初值(2)计数寄存器——从初值寄存器接收计数初值,减法计数器。计数脉冲就是时钟输入信号,在门控信号有效时开始计数。(3)控制寄存器——接收CPU的控制信号,选择不同的工作模式等(4)状态寄存器——保存计数器的状态基本原理图如下图第11页,课件共54页,创作于2023年2月第12页,课件共54页,创作于2023年2月2.工作方式8253有6种工作方式,由方式控制字确定每种工作方式的过程类似: ①设定工作方式 ②设定计数初值[③

硬件启动] ④

计数初值进入减1计数器 ⑤每输入一个时钟计数器减1的计数过程 ⑥计数过程结束第13页,课件共54页,创作于2023年2月(1)定时器方式0:计数结束中断①②⑤④⑥GATEOUTCLK

031244方式0WR①设定工作方式②设定计数初值④计数值送入计数器⑤计数过程⑥计数结束第14页,课件共54页,创作于2023年2月方式0的波形如图所示.当控制字写入控制字寄存器后,输出OUT就变低,当计数值写入计数器后开始计数,在整个计数过程中,OUT保持为低,当计数到0后,OUT变高;GATE的高低电平控制计数过程是否进行。写控制字写计数初值GATE=1计数第15页,课件共54页,创作于2023年2月工作方式0有如下特点:①计数器只计一遍,当计数到0时,不重新开始计数保持为高,直到输入一新的计数值,OUT才变低,开始新的计数;②计数值是在写计数值命令后经过一个输入脉冲,才装入计数器的,下一个脉冲开始计数,因此,如果设置计数器初值为N,则输出OUT在N+1个脉冲后才能变高;③在计数过程中,可由GATE信号控制暂停。当GATE=0时,暂停计数;当GATE=1时,继续计数;第16页,课件共54页,创作于2023年2月④在计数过程中可以改变计数值,且这种改变是立即有效的,分成两种情况:若是8位计数,则写入新值后的下一个脉冲按新值计数;若是16位计数,则在写入第一个字节后,停止计数,写入第二个字节后的下一个脉冲按新值计数。第17页,课件共54页,创作于2023年2月(2)定时器方式1:可编程单稳脉冲①②⑤④⑥①设定工作方式②设定计数初值③③硬件启动④计数值送入计数器⑤计数过程⑥计数结束GATEOUTCLK

031244方式1WR第18页,课件共54页,创作于2023年2月方式1的波形如图所示,CPU向8253写入控制字后OUT变高,并保持,写入计数值后并不立即计数,只有当外界GATE信号启动后(一个正脉冲)的下一个脉冲才开始计数,OUT变低,计数到0后,OUT才变高,此时再来一个GATE正脉冲,计数器又开始重新计数,输出OUT再次变低,….因此输出为一负脉冲,脉冲宽度受计数初值控制,由GATE信号触发。第19页,课件共54页,创作于2023年2月特点①输出OUT宽度为计数初值的单脉冲;②输出受门控信号GATE的控制,分三种情况:计数到0后,再来GATE脉冲,则重新开始计数,OUT变低;在计数过程中来GATE脉冲,则从下一CLK脉冲开始重新计数,OUT保持为低;改变计数值后,只有当GATE脉冲启动后,才按新值计数,否则原计数过程不受影响,仍继续进行,即新值的改变是从下一个GATE开始的。③计数值是多次有效的,每来一个GATE脉冲,就自动装入计数值开始从头计数,因此在初始化时,计数值写入一次即可。第20页,课件共54页,创作于2023年2月(3)方式2分频器方式2的波形如图所示。在这种方式下,CPU输出控制字后,输出OUT就变高,写入计数值后的下一个CLK脉冲开始计数,计数到1后,输出OUT变低,经过一个CLK以后,OUT恢复为高,计数器重新开始计数。因此在这种方式下,只需写入一次计数值,就能连续工作,输出连续相同间隔的负脉冲(前提:GATE保持为高),即周期性地输出,第21页,课件共54页,创作于2023年2月特点①通道可以连续工作;②GATE可以控制计数过程,当GATE为低时暂停计数,恢复为高后重新从初值;(注意:该方式与方式0不同,方式0是继续计数)③重新设置新的计数值即在计数过程中改变计数值,则新的计数值是下次有效的,同方式1。第22页,课件共54页,创作于2023年2月(4)定时器方式3:方波发生器03124GATEOUTCLK

4方式3031240312403124WR第23页,课件共54页,创作于2023年2月方式3的波形如图所示,这种方式下的输出与方式2都是周期性的,不同的是:输出的是方波。当计数值N是偶数,输出正负脉冲宽度N/2的方波当计数值N是奇数,正脉冲宽度(N+1)/2,负脉冲宽度(N-1)/2。第24页,课件共54页,创作于2023年2月特点①通道可以连续工作;②关于计数值的奇偶,若为偶数,则输出标准方波,高低电平各为N/2个;若为奇数,则正脉冲宽度(N+1)/2个CLK周期,负脉冲宽度(N-1)/2个CLK周期;③GATE信号能使计数过程重新开始,当GATE=0时,停止计数,当GATE变高后,计数器重新装入初值开始计数,尤其是当GATE=0时,若OUT此时为低,则立即变高,其它动作同上;④在计数期间改变计数值不影响现行的计数过程,一般情况下,新的计数值是在现行半周结束后才装入计数器。但若中间遇到有GATE脉冲,则在此脉冲后即装入新值开始计数。第25页,课件共54页,创作于2023年2月(5)定时器方式4:软件触发选通信号GATEOUTCLK031244方式42233310WR第26页,课件共54页,创作于2023年2月方式4的波形如图所示。CPU写入控制字后,OUT立即变高,写入计数值开始计数,当计数到0后,OUT变低,经过一个CLK脉冲后,OUT变高,这种计数是一次性的(与方式0有相似之处),只有当写入新的计数值后才开始下一次计数。第27页,课件共54页,创作于2023年2月①当计数值为N时,则间隔N+1个CLK脉冲输出一个负脉冲(计数一次有效);②GATE=0时,禁止计数,GATE=1时,恢复继续计数;③在计数过程中重新装入新的计数值,则该值是立即有效的(若为16位计数值,则装入第一个字节时停止计数,装入第二个字节后开始按新值计数)。第28页,课件共54页,创作于2023年2月(6)定时器方式5:硬件触发选通信号GATEOUTCLK031244方式522333110WR第29页,课件共54页,创作于2023年2月当控制字写入后,OUT立刻变高,写入计数值后并不立即开始计数,而是由GATE的上升沿触发启动计数的,当计数到0时,输出变低,经过一个CLK之后,输出恢复为高,计数停止,若再有GATE脉冲来,则重新装入计数值开始计数,上述过程重复。第30页,课件共54页,创作于2023年2月特点①在这种方式下,若设置的计数值是N,则在GATE脉冲后,经过(N+1)个CLK才一个负脉冲;②若在计数过程中又来一个GATE脉冲,则重新装入初值开始计数,输出不变,即计数值多次有效;③若在计数过程中修改计数值,则该计数值在下一个GATE脉冲后装入开始按此值计数。第31页,课件共54页,创作于2023年2月3.8253/8254的编程8253是可编程接口芯片8253/8254需要处理器对他进行初始化编程,才能正确工作。编程指的是设置控制字设置时间常数等第32页,课件共54页,创作于2023年2月(1)控制寄存器与控制字有两个——模式设置寄存器和读出控制寄存器①模式设置控制字(a)BCD——计数初值格式,=0,二进制

=1,BCD码地址:最高端口——控制端口第33页,课件共54页,创作于2023年2月(b)M2,M1,M0——模式选择

000 模式0 001 模式1 X10 模式2 X11 模式3 100 模式4 101 模式5(c)WR1,WR0——读/写指示位。

00 对计数器进行锁存,以便读出

01 只读/写低8位

10 只读/写高8位

11 先读/写低8位,后读/写高8位第34页,课件共54页,创作于2023年2月(d)SC1,SC0计数器选择

00 选择计数器0 01 选择计数器1 10 选择计数器2 11 读出控制字的标识码,只要该2位=0,写入的是读出模式控制字第35页,课件共54页,创作于2023年2月控制字写入控制字I/O地址:A1A0=11计数器读写格式工作方式数制D7D6D5D4D3D2D1D000计数器001计数器110计数器211非法(8253)11读回命令(8254)00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节000方式0001方式1*10方式2*11方式3100方式4101方式50二进制1十进制第36页,课件共54页,创作于2023年2月设置模式设置控制字举例假设8253端口:80H,82H,84H,86H,通道0使用二进制计数,工作在模式0,通道1使用BCD计数,模式1,通道2使用二进制计数,模式2,全部通道16位计数器,先写低8位,后写高8位。通道0模式控制字:00110000B通道1模式控制字:01110011B通道2模式控制字:10110110BMOV DX,86H;MOV AL,30H;控制字OUT DX,ALMOV AL,73H;OUT DX,ALMOV AL,0B6HOUT DX,AL第37页,课件共54页,创作于2023年2月②.读出控制字D7,D6,=11,为读出模式控制字,这时D0=0D5:=0,将所选定的计数器当前计数值锁存,以便后面读取D4:=0,将所选定的计数器的状态进行锁存,……D3,D2,D1:分别对应3个计数通道,=1,选中通道被锁存 可以同时锁存多个通道的计数器的计数值 但不能同时锁存多个计数器的状态地址:最高端口——控制端口写第38页,课件共54页,创作于2023年2月(2)状态寄存器只有8254有状态端口,8253无该端口。D7:输出端OUT的状态D6:表示初值是否已装入计数器,=0:已装入,=1未装入D5~D0:与模式寄存器含义相同第39页,课件共54页,创作于2023年2月(3)编程命令与初始化编程编程原则:①设置初值前必须先写模式控制字②初值设置要符合控制字中的格式规定③要读取计数器的当前值(或读取状态字),必须用控制字先锁定,再读取。编程命令有两类:①写入命令②读出命令第40页,课件共54页,创作于2023年2月写入命令——3个有三个(1)设置模式控制字命令设置工作模式等。(2)设置初始值命令

(3)锁存命令

与读出命令配合,在读出前,要先锁存第41页,课件共54页,创作于2023年2月读出命令——2个(1)读取计数器当前的值。 要先锁定,然后再读出。(2)对8254,还可读取状态字要先锁定,然后再读出。例如要读出通道2的计数值,先向读出控制寄存器写锁定命令端口地址:70H,72H,74H,76H例如要读出通道2的11

011000

第42页,课件共54页,创作于2023年2月读出控制字D7,D6,=11,为读出模式控制字,这时D0=0D5:=0,将所选定的计数器当前计数值锁存,以便后面读取D4:=0,将所选定的计数器的状态进行锁存,……D3,D2,D1:分别对应3个计数通道,=1,选中通道被锁存 可以同时锁存多个通道的计数器的计数值 但不能同时锁存多个计数器的状态地址:最高端口——控制端口写第43页,课件共54页,创作于2023年2月方式控制字编程示例

;8253的计数器0、1、2端口和控制端口地址:

40H~43H ;设置其中计数器0为方式0 ;采用二进制计数,先低后高写入计数值

moval,30h

;方式控制字:30H=00110000B

out

43h,al

;写入控制端口:43H第44页,课件共54页,创作于2023年2月3.编程:写入计数值选择二进制时计数值范围:0000H~FFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:0000~99990000代表最大值10000计数值写入计数器各自的I/O地址按方式控制字规定的读写格式进行第45页,课件共54页,创作于2023年2月计数值编程示例

;8253的计数器0、1、2端口和控制端口地址:40H~43H ;设置计数器0采用二进制计数

;写入计数初值:1024(=400H)

movax,1024

;计数初值:1024(=400H)

;写入计数器0地址:40H

out40h,al ;写入低字节计数初值

moval,ah out

40h,al ;写入高字节计数初值第46页,课件共54页,创作于2023年2月8.1.2定时器的应用——(1)方波脉冲要求利用8253在OUT2输出2KHZ方波编写相应的程序第47页,课件共54页,创作于2023年2月地址:1000000*****XX0(没有使用的地址信号,0和1都可以,这里使用0比较方便)通道0数据寄存器:8000H通道1数据寄存器:8002H通道2数据寄存器:8004H控制寄存器 :8006H方波:通道3选择方式3,2MHz-->2KHz分频系数1000,使用二进制,控制字: 10110110其它通道不用 时间常数:1000——03E8H如果要求输出脉冲宽度为1个时钟周期的分频脉冲而不是方波脉冲,就选用方式2第48页,课件共54页,创作于2023年2月 CODESEGMENT

ASSUMECS:CODE,DS:DATASTART: MOV DX,8006H ;控制字端口 MOV AL,0B6H ;控制字 OUT DX,AL MOV DX,8004H ;通道2时间常数端口 MOV AL,0E8H ;低8位时间常数 OUT DX,AL MOV AL,03H ;高8位时间常数 OUT DX,AL JMP$ ;没有其他工作,只产生脉冲,故

;完成设置后,在此死循环 CODEENDS ENDSTART第49页,课件共54页,创作于2023年2月(2)定时中断

moval,36h ;计数器0为方式3,二进制计数

;先低后高写入计数值

out43h,al ;写入方式控制字

moval,0 ;计数值为0

out40h,al ;写入低字节计数值

out40h,al

;写入高字节计数值计数器0:方式3,计数值:65536,输出方波 频率:1.19318MHz÷65536=18.206Hz,不断产生OUT0端接8259A的IRQ0,每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能第50页,课件共54页,创作于2023年2月(3)定时刷新需要重复不断提出刷新请求

门控总为高,选择方式2或32ms内刷新128次,即15.6

s刷新

温馨提示

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

评论

0/150

提交评论