单片机原理与接口技术+11233 第6章

上传人:E**** 文档编号:89465233 上传时间:2019-05-25 格式:PPT 页数:34 大小:986KB
返回 下载 相关 举报
单片机原理与接口技术+11233 第6章_第1页
第1页 / 共34页
单片机原理与接口技术+11233 第6章_第2页
第2页 / 共34页
单片机原理与接口技术+11233 第6章_第3页
第3页 / 共34页
单片机原理与接口技术+11233 第6章_第4页
第4页 / 共34页
单片机原理与接口技术+11233 第6章_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《单片机原理与接口技术+11233 第6章》由会员分享,可在线阅读,更多相关《单片机原理与接口技术+11233 第6章(34页珍藏版)》请在金锄头文库上搜索。

1、第6章 MCS-51单片机定时器/计数器, 知识点 定时/计数器的定义 定时/计数器的内部结构 4种工作工作方式的初始化编程 技能点 学会使用定时器/计数器编写计数、定时应用程序的方法。 重点与难点 理解用作定时器或计数器的条件 掌握用中断和查询两种方式编写定时/计数程序,6.1 定时器/计数器的结构及工作原理 6.2 定时器/计数器的工作方式 6.3 典型实例任务解析,第6章 MCS-51单片机定时器/计数器,6.1 定时器/计数器的结构及工作原理,1. 定时/计数器的结构,第6章 MCS-51单片机定时器/计数器,返回,6.1 定时器/计数器的结构及工作原理,2.定时/计数器的工作原理 可

2、编程控制的计数器都是在程序写入控制字后按照控制逻辑的控制进行计数,所以在计数器开始工作前,必须要对定时器进行初始化设置。一般定时器初始化设置的主要内容有定时器的工作方式、计数的初值、中断的设置等。,第6章 MCS-51单片机定时器/计数器,所有设置数据在专用寄存器中保存,通过译码控制逻辑实现对计数器的控制。如果不改变计数器的工作方式,可以一次设置多次使用,当要改变工作方式等设置时,要对需改变的内容重新设置。 当初始化设置完成后,可以直接启动计数器开始计数定时,也可以先暂停计数,在需要时设置启动计数命令,开始计数 。,6.1 定时器/计数器的结构及工作原理,第6章 MCS-51单片机定时器/计数

3、器,6.1 定时器/计数器的结构及工作原理,3.定时/计数器的控制 定时/计数器的功能,工作方式,定时/计数值等的控制是与TMOD,TCON,TH1,TH0,TL1,TL0等特殊功能寄存器相关的。 计数器THx和TLx 两个定时/计数器被分别命名为定时器0(T0)和定时器(T1),其低位计数器分别被称为TL0和TL1,高位计数器分别是TH0和TH1,TL0和TH0组成T0,TL1和TH1组成T1。,第6章 MCS-51单片机定时器/计数器,6.1 定时器/计数器的结构及工作原理,工作方式控制寄存器TMOD TMOD的字节地址为89H,用于控制和选择定时/计数器的工作方式,高4位控制T1,低4位

4、控制T0,注意不能采用位寻址方式。格式如下:,第6章 MCS-51单片机定时器/计数器,6.1 定时器/计数器的结构及工作原理,控制寄存器TCON TCON的字节地址是88H,用于控制定时/计数器的起停,定时/计数器的溢出标志。,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,两个定时器/计数器都有4种工作方式:方式0、方式1、方式2、方式3,分别为13位,16位,可自动重新装入的8位计数器。 1 .工作方式0 当TMOD中的M1M0为00时,定时/计数器工作在方式0。此时的定时/计数器为13位,高8位由THx提供,低5位由 TLx提供。低5位计数溢出后向高位进位计

5、数,高8位计数器计满后置位溢出标志位(TCON中的TFx)。此种方式下计数器的最大计数次数为213=8192,第6章 MCS-51单片机定时器/计数器,返回,6.2 定时器/计数器的工作方式, 作为计数器用,计数值: C=213-计数初值=8192-计数初值 作为定时器用,定时时间: t=(213-计数初值)*机器周期=(8192-计数初值)*(12/fosc),第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,2. 工作方式1 当TMOD中的M1M0为01时,定时/计数器工作在方式1。此时的定时/计数器为16位。高8位由THx提供,低8位由TLx提供。低8位计数溢出

6、后向高位进位计数,高8位计数器计满后置位溢出标志位(TCON中的TFx)。此种方式下计数器的最大计数次数为216=65536,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式, 作为计数器用,计数值: C=216-计数初值=65536-计数初值 作为定时器用,定时时间: t=(216-计数初值)*机器周期=(65536-计数初值)*(12/fosc),第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,3 .工作方式2 当TMOD中的M1M0为10时,定时/计数器工作在方式2。此时的定时/计数器为8位自动重装初值的定时/计数器。使用TLi的8位

7、作为计数器, THi的8位作为预置常数的寄存器。当低8为计数溢出时置位溢出标志位,同时将高8位数据装入低8位计数器,继续计数。此种方式下计数器的最大计数次数为28=256,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式, 作为计数器用,计数值: C=28-计数初值=256-计数初值 作为定时器用,定时时间: t=(28-计数初值)*机器周期=(256-计数初值)*(12/fosc),第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,4. 工作方式3 当TMOD中的M1M0为11时,定时/计数器工作在方式3。方式3只适用于T0,TL0的使用方

8、法与方式0,方式1,方式2相同。方式3下的TH0,只可以用作简单的内部定时器。借用原定时器T1的控制位和溢出标志位TR1和TF1,同时占用了T1的中断源。TH0的启动和关闭仅受TR1的控制:TR1=1,启动定时;TR1=0,停止定时。,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,当T0工作于方式3时,T1一般用作串行口波特率发生器。当设置好工作方式后,定时器T1自动开始运行;若要停止操作,只需要送入一个设置定时器1为方式3的方式控制字。通常把定时器T1设置成方式2作波特率发生器比较方便。,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式

9、,【例1】8051单片机定时器作定时和计数时,其计数脉冲分别由谁提供? 答:8051单片机定时器作定时其计数脉冲分别由内部周期性的时钟来提供;8051单片机定时器作计数时,其计数脉冲由外部脉冲提供。,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,【例2】用定时器0,方式2计数,要求每计满100次,将P1.0端取反。 分析:TMOD=00000110B 计数初值:TH0=TL0=28-100=156=9CH,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,程序如下: ORG 1000H START:MOV TMOD,#06H MOV TL

10、0,#9CH MOV TH0,#9CH SETB TR0 LOOP:JBC TF0,DONE ;判计满100次否?若计满则清零TF0且转DONE SJMP LOOP DONE:CPL P1.0 SJMP LOOP,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,【例3】已知单片机晶振频率为12MHZ,要求使用T0定时0.5ms,使单片机p1.0引脚上连续输出周期为1ms的方波。 分析:首先算出机器周期=12/(12MHZ)=1us,所以0.5ms需 要T0计数M次,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,M=0.5ms/1us=5

11、00 2565008192,所以选择方式0 初值N=213-500=7692=1E0CH 因为选用方式0,低8位TL0只使用低5位,其余的均计入高8位TH0的初值 TL0=0CH TH0=0F0H,第6章 MCS-51单片机定时器/计数器,6.2 定时器/计数器的工作方式,程序如下: ORG 0000H RESET:AJMP START ORG 000BH AJMP TOINT ORG 0100H START:MOV SP,#60H MOV TH0,#0F0H MOV TL0,#0CH,第6章 MCS-51单片机定时器/计数器,第6章 MCS-51单片机定时器/计数器,SETB TR0 SET

12、B ET0 SETB EA MAIN:AJMP MAIN TOINT:CPL P1.0 MOV TL0,#0CH MOV TH0,#0F0H RETI,6.2 定时器/计数器的工作方式,6.3 典型实例任务解析,【任务】利用单片机的定时器/计数器可以完成对小灯的控制,有4个小灯,LED1,LED2,LED3,LED4,从LED4开始倒着循环点亮小灯,每个小灯亮1S。,第6章 MCS-51单片机定时器/计数器,返回,6.3 典型实例任务解析,【分析】在实现小灯循环点亮的这个实例中最重要的是定时完成1S的功能。 1. 选择工作方式,第6章 MCS-51单片机定时器/计数器,计数初值: t=(216

13、-计数初值) 机器周期=(65536-计数初值)(12/fosc) 又 50ms=(216-计数初值) 1us=(65536-计数初值)(12/12MHZ) 计数初值=15536=0011110010110000B TH0=00111100B=3CH TL0=10110000B=0B0H,6.3 典型实例任务解析,第6章 MCS-51单片机定时器/计数器,6.3 典型实例任务解析,2. 电路原理和器件选择 89C51:单片机,控制发光二极管的亮灭。 OSC:晶振,在本例中选择12MHZ的立式晶振 C1、C2:晶振电路的起振电容,容值为22PF。 LED1LED4:发光二极管。 R1R4:限流电

14、阻,阻值1K。 74LS00:四与非门,增强端口驱动能力。,第6章 MCS-51单片机定时器/计数器,6.3 典型实例任务解析,第6章 MCS-51单片机定时器/计数器,6.3 典型实例任务解析,3. 地址分配和连接 P1.7P1.4:与74LS00的输入引脚相连。 RESET:单片机复位引脚和复位电路相连。 X1、X2:单片机的晶振引脚,和外接晶振相连。 74LS00的输出:与发光二极管相连。,第6章 MCS-51单片机定时器/计数器,6.3 典型实例任务解析,4. 程序设计 控制单片机I/O端口电平的高低 通过对P1.7P1.4置1和清零,控制P1.7P1.4口的电平高和低。当P1.7P1

15、.4口的电平高时,74LS00的输出为的输出为低,发光二极管两端压差为5V,二极管导通,反之发光二极管则不导通。,第6章 MCS-51单片机定时器/计数器,6.3 典型实例任务解析,ORG 0000H ;复位入口地址 SJMP START ORG 000BH ;T0中断入口地址 SJMP T0SVR ORG 0030H ;主程序 START:MOV SP,#40H MOV P1,#0FH ;初始状态,发光二极管熄灭 MOV A,#1FH MOV TMOD,#01H ;设置T0工作方式1,第6章 MCS-51单片机定时器/计数器,6.3 典型实例任务解析,MOV TH0,#3CH ;设置50ms

16、计数初值 MOV TL0,#0B0H MOV R0,#20 ;计数20个50ms,即1S SETB EA ;开放总中断 SETB ET0 ;开放T0中断 SETB TR0 ;启动T0中断 DISP:MOV P1,A SJMP DISP ;循环显示,第6章 MCS-51单片机定时器/计数器,6.3 典型实例任务解析,;T0中断服务子程序 T0SVR:MOV TL0,#0B0H ;重置计数初值 MOV TH0,#3CH DJNZ R0,QUIT ;1S时间位到 MOV R0,#20 ;1S时间到,重置R0计数初值 ANL A,#0F0H ;L0L3位于P1口的高4位 CLR C RLC A ;将点亮LED循环左移 JNC QUIT MOV A,#10H QUIT:ORL A,#0FH RETI,第6章 MCS-51单

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

当前位置:首页 > 高等教育 > 大学课件

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