收藏 分享(赏)

7-8253定时器.ppt

上传人:hyngb9260 文档编号:8433422 上传时间:2019-06-26 格式:PPT 页数:41 大小:535.50KB
下载 相关 举报
7-8253定时器.ppt_第1页
第1页 / 共41页
7-8253定时器.ppt_第2页
第2页 / 共41页
7-8253定时器.ppt_第3页
第3页 / 共41页
7-8253定时器.ppt_第4页
第4页 / 共41页
7-8253定时器.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、第七章 可编程接口芯片及应用,王东明东南大学移动通信国家重点实验室 ,2019/6/26,王东明 / NCRL,2,学习重点:可编程接口芯片8253 8259, 8255, 8250的结构、编程I/O接口和CPU、外设的连接方法。 学习方法:紧密结合实验与作业,学习I/O通道的设计与编程方法。,第七章 可编程接口芯片及应用,2019/6/26,王东明 / NCRL,3,I/O地址译码方法,地址译码的方法灵活多样高位地址线与CPU的控制信号进行组合,经译码电路产生I/O接口芯片的片选信号CS,实现系统中的接口芯片寻址 低位地址线直接接到I/O接口芯片的地址引脚,进行I/O接口芯片的片内端口寻址,

2、2019/6/26,王东明 / NCRL,4,地址译码,A15A8为 译码器使能,A7A5决定 芯片端口范围,A4A0选择 芯片片内端口,2019/6/26,王东明 / NCRL,5,如何实现定时?,软件方法:用一段程序实现延时 利用程序循环延迟指定的时间 缺点:CPU占用率?延时精度?兼容?硬件方法:定时/计数器电路 利用脉冲计数在设定的时间输出定时信号,灵活性较差?采用可编程定时器计数器 定时时间与计数值可由软件来确定和改变,设定后与CPU并行工作,不占用CPU的时间。,2019/6/26,王东明 / NCRL,6,可编程计数器/定时器8253-5,8253是一种可编程的计数器/定时器接口

3、芯片。内部有三个独立的计数器,通过设置控制字,各计数器可以工作于不同方式。该芯片的最高计数频率为2MHz,可用于产生各种定时波形,也可用于对外部事件计数。,可以实现定时与计数两个功能,可用于: 系统时钟 DRAM刷新定时 定时采样 实时控制 脉冲的计数,2019/6/26,王东明 / NCRL,7,可编程计数器/定时器8253-5,掌握: 引线功能及计数启动方法 6种工作方式及其输出波形 8253的使用: 芯片与系统的连接 芯片的初始化编程,2019/6/26,王东明 / NCRL,8,可编程计数器/定时器8253-5,引脚及其功能内部结构寻址方式控制字格式工作方式编程及应用,2019/6/2

4、6,王东明 / NCRL,9,引脚及其功能,数据线:写控制字,读写计数器的计数值,计数器0的时钟输入端,计数器0的输出端,为低电平的时候,CPU将计数值写入计数器或将控制字写入控制字寄存器,为低电平的时候,CPU读取所选计数器的内容,计数器0的门控信号脉冲输入端,控制计数,2019/6/26,王东明 / NCRL,10,与系统的连接示意图,CLK,GATE,OUT,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,高位地址 A15-A2,8253,共三组,8253占用4个接口地址:计数器0计数器1计数器2控制寄存器,(决定8253的基地址),2019/6/26,

5、王东明 / NCRL,11,内部结构,编址部件0,编址部件1,编址部件2,编址部件3,2019/6/26,王东明 / NCRL,12,编程结构程序员的观点,计数器(3个)每个包括控制寄存器 存放控制命令字(只写)占用4个地址 3个计数器,1个控制寄存器,16位初值寄存器 16位计数寄存器 16位输出锁存器,(减法计数器),2019/6/26,王东明 / NCRL,13,寻址方式,2019/6/26,王东明 / NCRL,14,控制字格式,2019/6/26,王东明 / NCRL,15,定时/计数的工作过程,设置8253的工作方式: 此时,全部控制逻辑电路复位,输出OUT为初始状态(高电平或低电

6、平); 设置计数初值到初值寄存器 第一个CLK信号使初值寄存器的内容置入计数寄存器 以后每来一个CLK信号 在CLK的上升沿时,计数器对门控信号GATE进行采样,来决定工作状态(计数、触发、停止、重新置初值); 在CLK的下降沿时,计数器执行部件从初值开始作减1计数;其中0是最大初值,1是最小初值; 若以二进制数制计数,则0相当于216=65536;若以BCD(十进制)数制计数,则0相当于104=10000 减到0时,OUT端输出一特殊波形的信号,2019/6/26,王东明 / NCRL,16,工作方式0:计数结束产生中断,在GATE=1时 写入控制字,OUT端输出低电平为起始电平,装入计数初

7、值n,开始计数。 写信号后沿( )经一个CLK( )将n值装入计数器。 每经过一个CLK,在CLK下降沿,计数器减1。 n=0时,计数结束,OUT由低电平变为高电平(可利用该电平变化向CPU发出中断请求),并保持,不开始重新计数。只有写入另一个计数值时,开始新的计数。 在GATE=0时 停止计数,直至GATE恢复高电平,再继续计数,2019/6/26,王东明 / NCRL,17,工作方式0:计数结束产生中断(小结),软件启动,不自动重复计数。装入初值后OUT端变低电平,计数结束OUT输出高电平。计数过程中,GATE端应保持高电平。 每写入一次初值计数一个周期,然后停止计数。 OUT端输出是一个

8、约(n+1) *CLK宽度的负脉冲。 计数过程中可随时修改初值重新开始计数。,2019/6/26,王东明 / NCRL,18,工作方式1:可编程单稳态触发器,写入控制字,OUT端输出高电平为起始电平。装入计数初值n后,必须等待GATE的上升沿来后才转入计数,这时OUT变低,开始计数,每一个计数脉冲,计数器值减1。 计数到0,OUT变成高电平,负脉冲结束,脉冲宽度=tcn(tc为时钟周期)。 在计数过程中,若GATE变低,不影响计数。,方式1的时序图(计数过程中GATE仅有一个上升沿),2019/6/26,王东明 / NCRL,19,工作方式1:可编程单稳态触发器,在计数过程中,若再次产生GAT

9、E的上升沿触发,则要重新装入n值, 在再触发脉冲上升沿之后的一个CLK脉冲的下降沿,计数器重新开始 计数。可以通过该方法改变脉冲的宽度。,方式1的时序图(计数过程中GATE不止产生一个上升沿),2019/6/26,王东明 / NCRL,20,工作方式1:可编程单稳态触发器(小结),硬件启动,不自动重复计数。装入初值后OUT端变高电平,计数开始OUT端变为低电平,计数结束后又变高。门控信号GATE端的跳变触发计数,可重复触发。 若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为两次计数过程之和。 计数过程中写入新初值不影响本次计数。,2019/6/26,王东明 / NCRL,21,工作方式2

10、:分频器,写入控制字,OUT端输出高电平为起始电平,装入计数初值n,开始计数。 每一个计数脉冲下降沿n减1,当n减至1时,OUT变低,n减为0时,OUT变高,产生一个与时钟脉冲周期一样宽的负脉冲。 接着自动装入n连续计数,输出频率为:fclk/n。 计数过程中,允许重新装入新的n值,下一个计数周期按新的n值计数。,在GATE=1时:,方式2的时序图,2019/6/26,王东明 / NCRL,22,工作方式2:分频器,计数过程中,若GATE0,停止计数,并强迫OUT输出高电平,在GATE变为高电平后,重新装入n值,开始计数。,2019/6/26,王东明 / NCRL,23,工作方式2:分频器(小

11、结),软、硬件启动,自动重复计数。装入初值后OUT端变高电平,计数到最后一个CLK时OUT输出负脉冲,并连续重复此过程。GATE为计数的控制信号:GATE变低计数停止,再变高时的下一个CLK下降沿,从初值开始重新计数。 每个计数周期结束时(减到1时),OUT端输出一个CLK宽度的负脉冲。 计数过程自动重复进行。 计数过程中修改初值不影响本轮计数过程。,2019/6/26,王东明 / NCRL,24,工作方式3:方波频率发生器,输出频率为:fclk/n的方波。 写入控制字后,OUT端输出低电平作为起始电平,装入计数值n后,变为高电平。 n为偶数,每个时钟脉冲下降沿n值减1,至n/2后,电平变为低

12、电平,并继续减1计数至0,然后改变OUT电平,重新装入n,开始计数。 n为奇数,输出高电平宽度为(n+1)/2,低电平宽度为(n-1)/2的方波。 GATE=0 停止计数,并强迫OUT输出高电平,在GATE变高后,重新将n装入,开始计数。 注:GATE功能同方式2,GATE=1,2019/6/26,王东明 / NCRL,25,工作方式3:方波频率发生器(小结),软、硬件启动,自动重复计数。装入初值后OUT端变高电平,然后OUT连续输出对称方波: 前 N/2或(N+1)/2 个CLK,OUT为高 后N/2或(N-1)/2 个CLK, OUT为低。 计数过程中修改初值不影响本半轮计数过程。 其余的

13、与方式2 类似。,2019/6/26,王东明 / NCRL,26,工作方式4:软件触发选通脉冲,写入控制字后,OUT端变为高电平,写入初始值后,计数器作减1计数,OUT电平保持不变。 计数器减至0时,OUT端输出一个脉冲周期的负脉冲,然后停止计数,只有输入新的计数值后,才能开始新的计数。 计数过程中,若GATE变低电平,停止计数,在其变高后,重新将n装入,开始计数。,2019/6/26,王东明 / NCRL,27,工作方式4:软件触发选通脉冲(小结),软件启动,不自动重复计数。装入初值后输出端变高电平,计数结束输出一个CLK宽度的负脉冲 计数过程中,GATE端应保持高电平。 每写入一次初值,计

14、数一个周期,然后停止计数。 每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。 计数过程中修改初值不影响本轮计数过程。,2019/6/26,王东明 / NCRL,28,工作方式5:硬件触发选通脉冲,写入控制字后,OUT端变为高电平,写入初始值n后,必须等待GATE的上升沿触发才转入计数。 计数器减至0时,OUT端输出一个脉冲周期的负脉冲。然后n值自动装入计数器,但要等GATE的上升沿来后才再次开始计数。 计数过程中,若GATE变低电平,不影响计数,但其上升沿将使得n重新装入计数器,开始计数。,2019/6/26,王东明 / NCRL,29,工作方式5:硬件触发选通脉冲,硬件

15、启动,不自动重复计数。OUT端波形与方式4相同 写入初值时,GATE端应保持低电平。 GATE每出现一次正脉冲,计数一个周期,然后停止计数。 每个计数周期结束时(减到0时),OUT端输出一个CLK宽度的负脉冲。 计数过程中修改初值不影响本轮计数过程。,2019/6/26,王东明 / NCRL,30,编程及应用,在使用8253芯片时,首先要对其进行初始化编程。 初始化编程包括写入控制字和写入计数值两个步骤。,第一步,写入控制字。任一计数器的控制字都要从8253的控制口地址写入,控制哪个计数器由控制字的D7D6位来决定。,第二步,写入计数初始值。计数初始值经由各计数器的端口地址写入。 若控制字里规

16、定只写低八位,则写入低八位,高8位自动置0 若控制字里规定只写高八位,则写入高八位,低8位自动置0。 若是16位计数值,则分两次写入,先写入低8位,再写入高八位。,写入顺序: 可按计数器分别写入控制字和初值。 也可先写所有计数器控制字,再写入它们的初值,2019/6/26,王东明 / NCRL,31,编程及应用,三个计数器端口地址为:40H,41H,42H,控制寄存器端口地址为:43H 计数器0:输出与8259的IRQ0相连,每隔一定时间向系统日历时钟提供定时中断,产生一个恒定的时间基准。 计数器1:每隔一定时间向DMA控制器发出一个动态RAM刷新请求信号。 计数器2:产生控制扬声器发声的方波

17、。,RESETDRV,接外设时钟,接DMA控制器,如8237,产生动态RAM刷新请求信号DRQ0,OUT1的上升沿使其置1,生请求,DMA控制器接受刷新请求后送回的应答信号,用于复位U21,2019/6/26,王东明 / NCRL,32,编程及应用,计数器0:电子时钟基准 工作于方式3,计数器值预置为0(即65536),即输出的方波频率为:1.19/65536=18.21Hz,即每隔55ms产生 一次中断请求。 程序: MOV AL, 36H ;36H=00110110B OUT 43H, AL ;写控制字 MOV AL, 0 ;预置计数值 OUT 40H, AL ;先写低字节 OUT 40H

18、, AL ;再写高字节,2019/6/26,王东明 / NCRL,33,编程及应用,计数器1:动态RAM定时刷新 工作于方式2,计数器值预置为18,即输出的频率为:1.19/18=66.1kHz,即每隔15.1s产生一次动态刷新请求信号。 程序: MOV AL, 54H ;54H=01010100B OUT 43H, AL ;写控制字 MOV AL, 12H ;预置计数值 OUT 41H, AL ;写低字节,2019/6/26,王东明 / NCRL,34,编程及应用,计数器2:扬声器音调 工作于方式3,计数器值预置为1331(533H),即输出的频率为:1.19/1331=894Hz。 程序:

19、 MOV AL, B6H ;B6H=10110110B OUT 43H, AL ;写控制字 MOV AL, 33H ;预置计数值 OUT 42H, AL ;先写低字节 MOV AL, 05H ;预置计数值 OUT 42H, AL ;再写高字节,2019/6/26,王东明 / NCRL,35,8253应用举例,下图是用8253监视的一个生产流水线示意图,每通过50个工件扬声器响5秒钟,频率为2000Hz。,2019/6/26,王东明 / NCRL,36,编程及应用,计数器0工作于方式2分频方式,每隔50个CLK0产生一个中断INT;方式控制字为:00010101B(15H),即方式2,只装低8位

20、,BCD数制,初值为50(H)。 计数器1工作于方式3方波方式,产生2000Hz喇叭音调,方式控制字为:01110111B(77H),即方式3,先低后高,BCD数制;,初值(分频比)=(1.4106)/2000=700(H)。,2019/6/26,王东明 / NCRL,37,主程序段:,MOV AL,15H ;置计数器0方式 OUT 43H,AL ; MOV AL,50H ;装初值 OUT 40H,AL ; MOV AL,00H ;关8255的PC0 OUT 63H,AL ; MOV AL,77H ;置计数器1方式 OUT 43H,AL ; MOV AL,00H ;装初值 OUT 41H,AL

21、 ; MOV AL,07H ; OUT 41H,AL ; STI; LOP: NOP; JMP LOP;,2019/6/26,王东明 / NCRL,38,中断服务程序:,INTP: MOV AL,01H ;开8255的PC0 OUT 63H,AL ; CALL DLY5S ;调5S延迟子程序 MOV AL,00H ;关8255的PC0 OUT 63H,AL ; IRET;,(说明:在装入8253计数器的初值时,不管是二进制数制还是BCD数制,初值后均要加“H”。),2019/6/26,王东明 / NCRL,39,扩展定时/计数范围,当定时长度不够时,可把2个或3个计数通道串联起来使用,甚至可把

22、多个8253串联起来使用。例如:CLK频率为2MHz,要求在OUT1端产生频率2Hz的脉冲。这时可将计数器0、1串联,工作方式都均为方式3,计数初值为1000和1000。连接方法见下页。,2019/6/26,王东明 / NCRL,40,扩展定时/计数范围,8253,OUT1,GATE1,CLK1,OUT0,GATE0,CLK0,+5V,+5V,2MHz,2KHz,2Hz,2019/6/26,王东明 / NCRL,41,8253小结,包含3个16位计数器通道 4个编址部件:计数器0/1/2和控制寄存器 每个计数器通道工作前必须初始化: 控制字和计数初值 6种工作方式 每种工作方式:启动方式、输出波形、是否可重复计数等各不相同,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报