实验2定时器实验

上传人:ji****n 文档编号:45642221 上传时间:2018-06-18 格式:DOC 页数:8 大小:214.50KB
返回 下载 相关 举报
实验2定时器实验_第1页
第1页 / 共8页
实验2定时器实验_第2页
第2页 / 共8页
实验2定时器实验_第3页
第3页 / 共8页
实验2定时器实验_第4页
第4页 / 共8页
实验2定时器实验_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《实验2定时器实验》由会员分享,可在线阅读,更多相关《实验2定时器实验(8页珍藏版)》请在金锄头文库上搜索。

1、 0755-83142770 /021-52653258 /010-82359258 /028-86283880实验实验 2 定时器实验定时器实验【实验目的实验目的】学习单片机的定时器及中断的使用 学习单片机编程及 keil C 的使用【实验原理实验原理】1 1程序介绍程序介绍 本实验例子通过定时器实现在 P1.0 口输出一个方波实验。 2 2MCS-51MCS-51 定时定时/ /计数器计数器 MCS-51 的单片机内有两个 16 位可编程的 定时/计数器,结构如图 2-1 所示,定时器 T0 由特性功能寄存器 TL0(低 8 位)和 TH0(高 8 位)构成,定时器 T1 由特性功能寄存器

2、 TL1(低 8 位)和 TH1(高 8 位)构成。特殊 功能寄存器 TMOD 控制定时寄存器的工作方式, TCON 则用于控制定时器 T0 和 T1 的启动和停 止计数,同时管理定时器 T0 和 T1 的溢出标 志等。2.12.1TMODTMOD 寄存器介绍寄存器介绍 定时/计数器的方式控制字 TMOD,字节地址为 89H,其格式如表 2-1: 表 2-1 TMOD 寄存器D7D6D5D4D3D2D1D0GATAM1M0GATAM1M0T1 方式字段T0 方式字段低四位是定时/计数器 T0 的方式控制字段,高四位是定时/计数器 T1 的方式控制字段。 其中 M1、M0 为工作方式选择位,为定

3、时器和计数器选择位,GATE 为门控位。MCS-51 的定时/计数器共有四种工作方式,下面我们逐个进行介绍。工作方式工作方式 0 0 当 M1,M0=00 时,定时/计数器处于工作方式 0;在该方式下定时/计数器 0 与定时/ 计数器 1 完全相同,我们以定时/计数器 0 作介绍,工作方式 0 的内部结构如图 2-2 所示。 工作方式 0 是 13 位计数结构的工作方式,其计数器由 TH 的全部 8 位和 TL 的低 5 位构成。 当=0 时,为定时工作方式。当=1 时,为计数工作方式。 不管是定时器还是计数器工作方式,当 TL 的低 5 位溢出时,都会向 TH 进位,而全部 13 位计数器溢

4、出时,则会向定时/计数器溢出标志位 TF0 进位。 GATA 位的状态决定定时器运行控制取决于 TR0 一个条件还是 TR0 和 INT0 这两个条件。 当 GATA=1 时,运行控制由 TR0 控制。当 GATA=0 时,运行控制由 TR0 和 INT0 两个条件共同图 2-1 MCS-51 定时/计数器结构0755-83142770 /021-52653258 /010-82359258 /028-86283880 控制,TR0 是确定定时/计数器的运行控制位,由软件置位或清“0” 。 TF0 是定时/计数器的溢出状态标志,溢出时由硬件置位,TF0 溢出中断被 CPU 响应时, 转入中断时

5、硬件清“0” ,TF0 也可由程序查询和清“0” 。图 2-2 定时/计数器工作方式 0在该工作方式下,计数器的计数值范围是:1 至 8192(213) 当为定时工作方式时,定时时间的计算公式为: (213-计数初值)晶振周期12 或(213-计数初值)机器周期 如果单片机的晶振选为 6.000MHz,则最小定时时间为: 213-(213-1) 1/610-612=210-6(s)=2(us)工作方式工作方式 1 当 M1,M0=01 时,定时/计数器处于工作方式 1,在该方式下定时/计数器 0 与定时/ 计数器 1 完全相同,我们仍以定时/计数器 0 作介绍。工作方式 1 的内部结构如图 2

6、-3 所示:图 2-3 定时/计数器工作方式 1 方式 1 与方式 0 的区别仅在于计数器的位数不同,方式 0 为 13 位,而方式 1 为 16 位, 由 TH0 作高 8 位,TL0 作低 8 位,有关控制状态字(GATA、TF0、TR0)和方式 0 相同。在该工作方式下,计数器的计数值范围是:1-65536(216) 当为定时工作方式时,定时时间的计算公式为: (216计数初值)晶振周期12 或(216计数初值)机器周期 如果单片机的晶振选为 6.000MHz,则最小定时时间为: 213(2161)1/610-612=210-6(s)=2(us)工作方式工作方式 2 20755-8314

7、2770 /021-52653258 /010-82359258 /028-86283880 当 M1M0=10 时,定时/计数器处于工作方式 2。在该方式下定时/计数器 0 与定时/计数 器 1 完全相同,我们仍以定时/计数器 0 作介绍。工作方式 2 的内部结构如图 2-4 所示:图 2-4 定时/计数器工作方式 2 工作方式 0 和 1 的最大特点就是计数溢出后,计数器为全 0,在循环定时或循环计数 应用时就存在需要反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时 精度。工作方式 2 就针对这个问题而设置,它具有自动重装载功能,即自动加载计数初值。 在这种工作方式中,16

8、位计数器分为两部分,即以 TL0 为计数器,以 TH0 作为预置寄存器, 初始化时把计数初值分别加载至 TL0 和 TH0 中,当计数溢出时,不再象方式 0 和方式 1 那 样需要“人工干预”,由软件重新赋值,而是由预置寄存器 TH 以硬件方法自动给计数器 TL0 重新加载。 程序初始化时,给 TL0 和 TH0 同时赋以初值,当 TL0 计数溢出时,置位 TF0 的同时把 预置寄存器 TH0 中的初值加载给 TL0,TL0 重新计数。如此反复,这样省去了程序不断需给 计数器赋值的麻烦,而且计数准确度也提高了。但这种方式也有其不利的一面,计数值有 限,最大只能到 255。这种工作方式很适合于那

9、些重复计数的应用场合。例如我们可以通 过这样的计数方式产生中断,从而产生一个固定频率的脉冲。也可以当作串行数据通信的 波特率发送器使用。工作方式工作方式 3 3 当 M1M0=11 时,定时/计数器处于工作方式 3,内部结构图如图 2-5 所示。图 2-5 定时/计数器 T0 工作方式 3在该方式下,定时/计数器 0 被拆成两个独立的 8 位计数器 TL0 和 TH0。其中 TL0 既可 以作计数器使用,也可以作为定时器使用,定时/计数器 0 的各控制位和引脚信号全归它使 用。其功能和操作与方式 0 或方式 1 完全相同。TH0 只能作为简单的定时器使用,而且由0755-83142770 /0

10、21-52653258 /010-82359258 /028-86283880 于定时/计数器 0 的控制位已被 TL0 占用,因此只能借用定时/计数器 1 的控制位 TR1 和 TF1,也就是以计数溢出去置位 TF1,TR1 则负责控制 TH0 定时的启动和停止。 由于 TL0 既能作定时器也能作计数器使用,而 TH0 只能作定时器使用而不能作计数器 使用,因此在方式 3 下,定时/计数器 0 可以构成二个定时器或者一个定时器和一个计数器。如果定时/计数器 0 工作于方式 3,那么定时/计数器 1 的工作方式就会受到一定的限 制,因为它的一些控制位已被定时/计数器借用,只能工作在方式 0、方

11、式 1 或方式 2 下, 如图 2-6 所示:图 2-6 定时/计数器 T0 工作方式 3 下 T2 的工作方式在这种情况下,定时/计数器 1 通常作为串行口的波特率发生器使用,以确定串行通信 的速率,因为已没有 TF1 被定时/计数器 0 借用了,只能把计数溢出直接送给串行口。当作 波特率发生器使用时,只需设置好工作方式,即可自动运行。如要停止它的工作,需送入 一个把它设置为方式 3 的方式控制字即可,这是因为定时/计数器 1 本身就不能工作在方式 3,如硬把它设置为方式 3,自然会停止工作。2.22.2 TCONTCON 寄存器介绍寄存器介绍 定时器控制积存器 TCON,字节地址为 88H

12、,位地址为 88H8FH,其格式如表 2-2 所示:表 2-2 TCON 寄存器D7D6D5D4D3D2D1D0 TCON TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTF1:定时器 T1 的溢出中断申请位。T1 被允许计数后,从初值开始加 1,当产生溢 出时 TF1=1,向 CPU 请求中断,直到 CPU 响应该中断时才由硬件清 0(也可由查询程序清 0).TR1: TF0:定时器 T0 的溢出中断申请位。T0 被允许计数后,从初值开始加 1,当产生溢 出时 TF0=1,向 CPU 请求中断,直到 CPU 响应该中断时才由硬件清 0(

13、也可由查询程序清 0).TR0:0755-83142770 /021-52653258 /010-82359258 /028-86283880 IE1:外部边沿触发中断 1 请求标志,其功能和操作类似于 TF0。 IT1:外部中断 1 类型控制位,通过软件设置或清楚,用于控制外中断的触发信号类 型。IT1=1,边沿触发。IT=0 是电平触发。 IE0:外部边沿触发中断 0 请求标志,其功能和操作类似于 IE1。 IT0:外部中断 0 类型控制位,通过软件设置或清楚,用于控制外中断的触发信号类 型。其功能和操作类似于 IE1。 3MCS-51 的中断系统的中断系统 中断是指计算机在执行某一程序的

14、过程中, 由于计算机系统内、 外的某种原因, 而必 须中止原程序的执行,转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止 的原程序的过程。3.1MCS-51 的中断结构的中断结构 由图 2-7 可知,MCS-51 有 5 个中断源,两个中断优先级控制,可实现两个中断服务嵌 套。当 CPU 支持中断屏蔽指令后,可将一部分或所有的中断关断,只有打开相应的中断控 制位后,方可接收相应的中断请求。程序设置中断的允许或屏蔽,也可设置中断的优先级。图 2-7 MCS-51 中断系统结构3.2 MCS-51 的中断源的中断源 8051 有 5 个中断源,两个外部中断 INT0(P3.2)和

15、INT1(P3.3)、三个内部中断 (两个片内定时/计数器溢出中断 TF0 和 TF1,一个串行口中断 TI 或 RI),这几个中断源 由 TCON 和 SCON 两个特殊功能寄存器进行控制。 TCON 寄存器我们在上面已经介绍,SCON 是串行口控制寄存器,结构如表 2-3 所示: 表 2-3 SCON 寄存器D7D6D5D4D3D2D1D0 SCON -TIRI位地址99H98HTI:MCS-51 串行口的发送中断标志,在串行口以方式 0 发送时,每当发送完 8 位数 据,由硬件置位。如果以方式 1、方式 2 或方式 3 发送时,在发送停止位的开始时 TI 被置0755-83142770

16、/021-52653258 /010-82359258 /028-86283880 1,TI=1 表示串行发送器正向 CPU 发出中断请求,向串行口的数据缓冲器 SBUF 写入一个数 据后就立即启动发送器继续发送。但是 CPU 响应中断请求后,转向执行中断服务程序时, 并不清零 TI,TI 必须由用户的中断服务程序清“0”,即中断服务程序必须有“CLR TI” 或“ANL SCON, #0FDH”等指令来清零 TI。 RI:串行口接收中断标志.若串行口接收器允许接收,并以方式 0 工作,每当接收到 8 位数据时,RI 被置 1,若以方式 1、2、3 方式工作,当接收到半个停止位时,TI 被置 1,当 串行口一方式 2 或 3 方式工作,且当 SM2=1 时,仅当接收到第 9 位数据 RB8 为 1 后,同时 还要在接收到半个停止位时,RI 被置 1。RI 为 1 表示串行口接收器正向 CPU 申请中断。同 样 RI 标志由用户的软件清“0”。 3.33.3 中断处理流程中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号