单片机原理及应用(C语言版)6_第1页
单片机原理及应用(C语言版)6_第2页
单片机原理及应用(C语言版)6_第3页
单片机原理及应用(C语言版)6_第4页
单片机原理及应用(C语言版)6_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6章章 MCS-51单片机定时器单片机定时器/计数器计数器目目 录录6.1 MCS-51定时器定时器/计数计数器的结构及原理器的结构及原理6.2 定时器定时器T0、T16.3 定时器应用举例定时器应用举例 本章主要讨论本章主要讨论MCS-51单片机定时器单片机定时器/计计数器的逻辑结构和工作原理。内容主要有数器的逻辑结构和工作原理。内容主要有MCS-51单片机定时器单片机定时器T0、T1的逻辑结构,的逻辑结构,工作方式的选择和应用。工作方式的选择和应用。 本章为单片机的主要内容,也是第七章本章为单片机的主要内容,也是第七章串行口的学习的基础。串行口的学习的基础。第第6章章 MCS-51单片

2、机的定时器单片机的定时器/计数器计数器6.1 MCS-51单片机定时器单片机定时器/计数器的结计数器的结构及原理构及原理主要内容主要内容6.1.1 MCS-51单片机定时器的结构单片机定时器的结构6.1.2 MCS-51单片机定时器的工作原理单片机定时器的工作原理6.1.3 定时器定时器/计数器的控制寄存器计数器的控制寄存器6.1.1 MCS-51单片机定时器的结构单片机定时器的结构 MCS-51单片机定时器单片机定时器/计数器逻辑结构图:计数器逻辑结构图: 6.1.1 MCS-51单片机定时器的结构单片机定时器的结构 MCS-51主要由如下构成主要由如下构成: 两个两个16位的可编程定时器位

3、的可编程定时器/计数器:定时计数器:定时器器/计数器计数器0、1。 每个定时器有两部分构成:每个定时器有两部分构成:THx和和TLx 特殊功能寄存器特殊功能寄存器TMOD和和TCON ,主要,主要对对T0和和T1进行控制。进行控制。6.1.1 MCS-51单片机定时器的结构单片机定时器的结构 引脚引脚P3.5、P3.4,输入计数脉冲。,输入计数脉冲。定时器定时器T0、T1是是2个中断源,可以向个中断源,可以向CPU 发出中断请求。发出中断请求。特殊功能寄存器之间通过内部总线和控制特殊功能寄存器之间通过内部总线和控制逻辑电路连接起来逻辑电路连接起来 6.1.2 MCS-51单片机定时器的工作原理

4、单片机定时器的工作原理 定时器定时器/计数器计数器T0、T1 的内部结构简图如的内部结构简图如下图所示。下图所示。C/ /T=0中断请求中断请求振荡器振荡器TLx(8位位)THx(8位位)Tx12分频分频TFxC/ /T=1控制控制TRx6.1.2 MCS-51单片机定时器单片机定时器/计数器的工作原理计数器的工作原理 从上图可以看出:从上图可以看出: 定时器的实质是一个加定时器的实质是一个加1计数器计数器。C/T =0 ,为定时器方式。,为定时器方式。计数信号由片内振荡电路提供,振计数信号由片内振荡电路提供,振荡脉冲荡脉冲12分频送给计数器,每个机器周期计分频送给计数器,每个机器周期计数器值

5、增数器值增1。 例如例如:如果晶振频率为:如果晶振频率为12MHz,则最高,则最高计数频率为计数频率为0.5MHz6.1.2 MCS-51单片机定时器单片机定时器/计数器的工作原理计数器的工作原理 C/T =1 ,为计数方式,为计数方式。计数信号由计数信号由Tx引脚引脚(P3.4、P3.5)输入,输入,每输入一有效信号,相应的计数器中的每输入一有效信号,相应的计数器中的内容进行加内容进行加1。控制信号控制信号TRx=1时,定时器启动时,定时器启动。当定时器由全当定时器由全1加到全加到全0时计满溢出,从时计满溢出,从0开始继续计数,开始继续计数,TFx=1 ,向,向CPU申请中申请中断。断。6.

6、1.3 定时器定时器/计数器的方式和控制寄存器计数器的方式和控制寄存器1、T0、T1 工作模式寄存器工作模式寄存器TMOD 功能:确定定时器的工作模式。功能:确定定时器的工作模式。其格式如图其格式如图6-3所示:所示:TMOD(89H)D7D6D5D4D3D2D1D0GATE C/T M1 M0GATEC/TM1M0图图6-3 定时器方式寄存器定时器方式寄存器TMOD GATE外部门控制位。外部门控制位。GATE1,使用外部控制门。,使用外部控制门。 TRx=1,P3.2(P3.3)=1时,启动定时器。时,启动定时器。6.1.3 定时器定时器/计数器的方式和控制寄存器计数器的方式和控制寄存器G

7、ATE0,不使用外部门控制计数器不使用外部门控制计数器 C/T定时或计数方式选择位定时或计数方式选择位 。C/T0时,为定时器时,为定时器C/T1时,为计数器时,为计数器 计数采样:计数采样:CPU在每机器周期的在每机器周期的S5P2期期间,对计数脉冲输入引脚进行采样。间,对计数脉冲输入引脚进行采样。若前一机器周期采样值为若前一机器周期采样值为1,下一机器周期,下一机器周期采样值为采样值为0,则计数器增,则计数器增1,即下降沿计数即下降沿计数。随后的机器周期随后的机器周期S3P1期间,新的计数值装入期间,新的计数值装入计数器。计数器。6.1.3 定时器定时器/计数器的方式和控制寄存器计数器的方

8、式和控制寄存器 M1、M0工作模式选择位。工作模式选择位。如下表所示如下表所示:表表6-1 定时器定时器/计数器的工作模式计数器的工作模式M1M0工作模式工作模式功功 能能00模式模式013位定时器位定时器/计数器计数器 01模式模式116位定时器位定时器/计数器计数器10模式模式28位自动重置定时器位自动重置定时器/计数器计数器11模式模式3定时器定时器0:TL0为为8位定时器位定时器/计计数器,数器,TH0为为8位定时器。位定时器。定时器定时器1:无此方式:无此方式6.1.3 定时器定时器/计数器的方式和控制寄存器计数器的方式和控制寄存器2、T0、T1的控制寄存器的控制寄存器TCONTCO

9、N(88H)D7D6D5D4D3D2D1D0TF1 TR1 TF0 TR0 IE1IT1IE0IT0TF1、TF0:T1、T0的溢出标志位的溢出标志位 计数溢出,计数溢出,TFx=1。 中断方式:中断方式:自动清零;自动清零; 查询方式:查询方式:软件清零。软件清零。6.1.3 定时器定时器/计数器的方式和控制寄存器计数器的方式和控制寄存器TR1、TR0:T1、T0启停控制位启停控制位。 置置1,启动定时器;,启动定时器; 清清0,关闭定时器。,关闭定时器。IE1、IE0:外部中断:外部中断1、0请求标志位请求标志位IT1、IT0:外部中断:外部中断1、0触发方式选择位触发方式选择位注意:注意

10、: GATE=1 ,TRx与与P3.2(P3.3) 的配的配合。合。6.2 定时器定时器T0、T1的工作模式及应用的工作模式及应用主要内容主要内容6.2.1 模式模式16.2.2 模式模式26.2.3 模式模式36.2.4 T0、T1应用应用6.2.1 模式模式1模式模式0与模式与模式1 的区别仅仅是计数器的位的区别仅仅是计数器的位数不同,前者是数不同,前者是13位,后者是位,后者是16位,其它完全位,其它完全相同,现在一般都不使用模式相同,现在一般都不使用模式0,故不讲模式,故不讲模式0 当设置当设置M1M001时,选择模式时,选择模式1,为,为16位定时器位定时器/计数器。计数器。模式模式

11、1原理结构原理结构原理结构如下页图所示,由原理结构如下页图所示,由4部分构成:部分构成:信号源信号源运行控制运行控制计数器计数器溢出标志溢出标志6.2.1 模式模式1的逻辑结构及应用的逻辑结构及应用信号源信号源C/T设为设为1,为计数器,为计数器,用用P3.4引脚脉冲引脚脉冲C/T设为设为0,为定时器,为定时器,用内部脉冲用内部脉冲运行控制运行控制GATE=1,由外部信号控制运行,由外部信号控制运行此时应该设置此时应该设置TR0=1P3.2引脚为高电平,引脚为高电平,T0运行运行GATE=0,由内部设置控制运行,由内部设置控制运行TR0设置为设置为1,T0运行运行6.2.1 模式模式1的逻辑结

12、构及应用的逻辑结构及应用图图6-6 T0模式模式1原理结构原理结构 MCS-51单片机之所以设计几乎完全一单片机之所以设计几乎完全一 样的方样的方式式0和方式和方式1,是出于与,是出于与 MCS-48单片机的兼容。单片机的兼容。振荡器振荡器1212分频分频TL0(8(8位位) )TH0TF0+T0(P3.4)TR0(P3.2)GATEC/T=0C/T=1中断中断(8(8位位) )01 运行控制运行控制计数器计数器溢出标志溢出标志信号源信号源6.2.2 模式模式2M1 M0 10时,选择模式时,选择模式2,为,为8位定位定时器时器/计数器,且初值自动重装。计数器,且初值自动重装。模式模式2原理结

13、构原理结构原理结构如下页图所示,由原理结构如下页图所示,由4部分构成:部分构成:信号源信号源运行控制运行控制计数器计数器溢出标志溢出标志在能够满足计数要求时,尽可能地选在能够满足计数要求时,尽可能地选择模式择模式2。6.2.2 模式模式2的逻辑结构及应用的逻辑结构及应用图图6-7 T0模式模式2原理结构原理结构振荡器振荡器12分频分频T0 (P3.4)TR0TF0中断中断GATE+C/T=0C/T=1TL0(8位位)TH0(8位位)P3.201 运行控制运行控制计数器计数器溢出标志溢出标志信号源信号源6.2.3 模式模式31、T0模式模式3的结构特点的结构特点 M1 M0 11,选择模式,选择

14、模式3。逻辑结构如图逻辑结构如图6-8和和6-9所示:所示: 结构结构: TL0、TH0分为两个独立的分为两个独立的8位计数器位计数器 TL0: 8位定时器位定时器/计数器计数器使用使用T0所有的资源和控制位所有的资源和控制位 TH0:8位定时器位定时器使用使用T1所有的资源所有的资源(中断向量、中断控制中断向量、中断控制ET1、PT1)和控制位和控制位(TR1、TF1)6.2.3 模式模式3的逻辑结构及应用的逻辑结构及应用图图6-8 模式模式3下下T0的逻辑结构图的逻辑结构图振荡器振荡器12分频分频TR 1振荡器振荡器T0(P3.4)TR0TF1GATE+C/T=0C/T=1TL 0( 8位

15、位 )TH 0( 8位位 )P3.2中断中断中断中断TF012分频分频6.2.4 模式模式3的逻辑结构及应用的逻辑结构及应用2、T0模式模式3时时T1的工作模式的工作模式T1可以模式可以模式0模式模式2工作。工作。T1的结构如图的结构如图6-9所示所示由于由于TF1及中断矢量被及中断矢量被TH0占用,所以占用,所以T1仅用作波特率发生器或其它不用中断的地方。仅用作波特率发生器或其它不用中断的地方。T1作波特率发生器,其计数溢出直接送作波特率发生器,其计数溢出直接送至串行口。至串行口。设置好工作方式,串行口波特率设置好工作方式,串行口波特率发生器开始自动运行。发生器开始自动运行。 TMOD中中T

16、1的的M1M0=11,T1停止工作,停止工作,因为因为T1没有模式没有模式3。6.2.4 模式模式3的逻辑结构及应用的逻辑结构及应用图图6-9 T0模式模式3时时T1的原理结构的原理结构串行口串行口重新装入重新装入C/T=1C/T=0T1(P3.5)振荡器振荡器12分频分频TL 1(8位位)TH 1(8位位) 图图6-9(c) T0模式模式3T1模式模式2时的原理结构时的原理结构6.2.4 T0、T1应用应用1、定时器、定时器/计数器工作模式的选择方法计数器工作模式的选择方法(1)首先计算计数值)首先计算计数值N(2)确定工作模式)确定工作模式原则是尽可能地选择模式原则是尽可能地选择模式2若若

17、 N 256选择模式选择模式2,否则选择模式,否则选择模式1(3)模式)模式3的选择的选择如果需要增加一个定时器如果需要增加一个定时器/计数器,选择计数器,选择T0以模式以模式3工作工作6.2.4 T0、T1应用应用2、定时器、定时器/计数器初值计数器初值X的计算方法的计算方法因为因为X + N = 28或或216所以所以X = 28或或216-N(1)对定时器)对定时器设定时时间为设定时时间为tN = t/机器周期机器周期所以所以X = 28或或216- t/机器周期机器周期(2)对计数器)对计数器X = 28或或216- N6.2.4 T0、T1应用应用例例6-1 对单片机的定时器对单片机

18、的定时器/计数器计数器0进行编程,进行编程,以模式以模式1工作,用中断方式使工作,用中断方式使P1.0引脚产生周引脚产生周期为期为1000s的方波。设单片机的振荡频率为的方波。设单片机的振荡频率为12MHz。分析:分析:(1)方波产生原理)方波产生原理 将将T0设为定时器,设为定时器,计算机出合适的初值,计算机出合适的初值,定时到了之后对定时到了之后对P1.0引脚取反即可。引脚取反即可。(2)选择工作模式)选择工作模式计算计数值计算计数值N6.2.4 模式模式3的逻辑结构及应用的逻辑结构及应用 定时时间定时时间t:周期为周期为1000s的方波要求的方波要求t =周期周期/2 = 1000/2

19、= 500(s)N = t/机器周期机器周期 = 500/1 = 500 N=500256,所以选择模式,所以选择模式1。 模式字:模式字:TMOD=0000 0001B (3)初值)初值X X = 65536 N = 65036 = FE0CH6.2.4 模式模式3的逻辑结构及应用的逻辑结构及应用汇编语言程序汇编语言程序:ORG0000HSJMPMAINORG000BHLJMPTIME06.2.4 模式模式3的逻辑结构及应用的逻辑结构及应用MAIN:MOV TMOD,#01H;T0模式模式1定时定时MOVTL0,#0CH;置定时初值;置定时初值MOVTH0,#0FEH SETBET0;定时器

20、;定时器T0开中断开中断SETBEA;CPU开中断开中断SETBTR0;启动定时器;启动定时器T0SJMP$;等待定时器溢出;等待定时器溢出TIME0: ;中断服务程序中断服务程序MOV TL0,#0CHMOVTH0,#0FEH;重装定时初值;重装定时初值CPLP1.0 ;P1.0取反取反RETI ;中断返回;中断返回END6.2.4 模式模式 3的逻辑结构及应用的逻辑结构及应用 例例6-2 设单片机的振荡频率为设单片机的振荡频率为12MHz,用定时器用定时器/计数器计数器0编程实现从编程实现从P1.0输出周期输出周期为为500s的方波。的方波。分析:方法同例分析:方法同例6-1定时时间:定时

21、时间: 方波周期为方波周期为500s,定时,定时250s。 模式选择模式选择: 定时器定时器0可以选择模式可以选择模式0、1和和2。模式。模式2最大的定时时间为最大的定时时间为256s,满足,满足250s的定时的定时要求,选择模式要求,选择模式2。6.2.4 模式模式 3的逻辑结构及应用的逻辑结构及应用(1)初值计算)初值计算 (256-X)1s=250s X=6;则则TH0=TL0=6 (2)程序:)程序:采用中断处理方式的程序采用中断处理方式的程序 :6.2.4 模式模式3的逻辑结构及应用的逻辑结构及应用汇编语言程序汇编语言程序:ORG0000HLJMPMAIN ORG000BH;中断处理

22、程序;中断处理程序CPLP1.0RETIORG 0030H;主程序;主程序MAIN:MOV TMOD,#02H MOV TL0,#06HMOV TH0,#06HSETB ET0;允许定时器;允许定时器0中断中断SETB EA;允许;允许CPU中断中断SETB TR0;启动定时器;启动定时器0SJMP $;等待中断;等待中断END6.2.4 模式模式3的逻辑结构及应用的逻辑结构及应用汇编语言程序汇编语言程序:MAIN:MOV TMOD,#02H;主程序;主程序MOVTL0,#06HMOVTH0,#06HSETBTR0LOOP:JNBTF0,$;查询计数溢出;查询计数溢出CLRTF0CPLP1.0

23、 SJMPLOOPEND6.3 定时器应用举例定时器应用举例主要内容主要内容6.3.1 定时器的初始化定时器的初始化6.3.2 定时器应用举例定时器应用举例6.3.1 定时器的初始化定时器的初始化 在使用定时器在使用定时器/计数器前,应首先对其进行初始计数器前,应首先对其进行初始化编程。化编程。一、定时器的初始化步骤一、定时器的初始化步骤1、选择工作模式和工作方式。选择工作模式和工作方式。 设置设置TMOD。2、设置定时器的计数初值、设置定时器的计数初值。 设置设置THx和和TLx。3、中断设置:、中断设置:设置设置IE。4、启动定时器、启动定时器。 设置设置TCON。 可以使用位操作指令。例

24、如:可以使用位操作指令。例如:SETB TRx6.3.1 定时器的初始化定时器的初始化二、定时器二、定时器/计数器初值计算计数器初值计算 根据根据定时器定时器/计数器的模式和方式,计算计数计数器的模式和方式,计算计数初值初值(注意(注意T2)计数器的长度为计数器的长度为n,则计数的最大值为,则计数的最大值为2n 。1、工作于定时方式、工作于定时方式计数脉冲由内部的时钟提供,每个机器周期计数脉冲由内部的时钟提供,每个机器周期进行加进行加1。设晶振频率为设晶振频率为fosc,则计数脉冲的频率为,则计数脉冲的频率为fosc/12,计数脉冲周期,计数脉冲周期T=1/(fosc/12)。)。6.3.1

25、定时器的初始化定时器的初始化如果进行定时时间为如果进行定时时间为t,计数初值为,计数初值为X,则:,则:t=( 2n - X)12/fosc2、工作于计数方式、工作于计数方式 当工作在计数方式时,对外部脉冲计数。当工作在计数方式时,对外部脉冲计数。利用计数器计数结束产生溢出的特性,来计利用计数器计数结束产生溢出的特性,来计算初值算初值X 。则有:。则有:X= 2n - -计数次数计数次数6.3.2 定时器的应用举例定时器的应用举例例例6-3 利用定时器利用定时器T1的模式的模式2对外部信号进行对外部信号进行计数,要求每计满计数,要求每计满100次,将次,将P1.0端取反。端取反。分析:分析:T

26、1工作在计数方式。脉冲数工作在计数方式。脉冲数100。1、选择工作模式、计算初值、选择工作模式、计算初值计数值计数值N=100256选择模式选择模式2模式字模式字:TMOD=0110B=60H初值:初值:X= 28-100=156D=9CH6.3.2 定时器的应用举例定时器的应用举例3、汇编语言程序:、汇编语言程序:MAIN:MOV SP,#0DFH;设置堆栈指针设置堆栈指针 MOV TMOD,#60H;T1模式模式2, 计数计数MOVTL1,#9CH;装入计数初值装入计数初值MOVTH1, #9CH;装入计数(重装)初值装入计数(重装)初值MOVIE,#88H;允许定时器中断允许定时器中断S

27、ETBTR1;启动定时器启动定时器SJMP $;等待中断等待中断中断服务程序中断服务程序:ORG 001BH;中断服务程序入口地址中断服务程序入口地址CPLP1.0;对对P1.0引脚信号取反引脚信号取反RETI;中断返回中断返回6.3.2 定时器的应用举例定时器的应用举例 例例6-4 某一应用系统需要对某一应用系统需要对INT0引脚的正脉引脚的正脉冲测试其脉冲宽度。冲测试其脉冲宽度。分析:分析:可以设置定时器可以设置定时器/计数器计数器0为定时方式,为定时方式,工作在模式工作在模式1,且置位,且置位GATE位为位为1,将外部需测,将外部需测试的脉冲从试的脉冲从INT0引脚输入,设机器周期为引脚

28、输入,设机器周期为1s。6.3.2 定时器的应用举例定时器的应用举例汇编语言程序汇编语言程序:INT00: MOV TMOD,#09H MOV TL0,#00H;设置计数初值设置计数初值MOV TH0,#00HLOP1: JBP3.2,LOP1;等待等待P3.2变低电平变低电平6.3.2 定时器的应用举例定时器的应用举例 SETB TR0;启动启动T0计数计数LOP2: JNB P3.2,LOP2;等待等待P3.2变成高电平变成高电平LOP3: JB P3.2,LOP3; 等待等待P3.2变成低电平变成低电平 CLR TR0;停止停止T0计数计数 MOV A,TL0 ;计数器计数器TL0中的内

29、容送中的内容送A MOV B, TH0 ;计数器计数器TH0中的内容送中的内容送B 6.3.2 定时器的应用举例定时器的应用举例例例6-5 某应用系统要求通过某应用系统要求通过P1.0和和P1.1口口分别输出周期为分别输出周期为200s和和400s的方波,设的方波,设fosc=6MHz。 分析:分析:需要两个定时器需要两个定时器。可以选择使用定。可以选择使用定时器时器/计数器计数器0,设置为定时模式,设置为定时模式,工作模式工作模式3,分成两个分成两个8位的定时器。位的定时器。1、计算定时初值。、计算定时初值。t=(256 -X)12/fosc初值分别为初值分别为206和和156(0CEH和和

30、9CH)6.3.2 定时器的应用举例定时器的应用举例3、汇编语言程序:、汇编语言程序:主程序:主程序:ORG0000HLJMPMAIN6.3.2 定时器的应用举例定时器的应用举例ORG000BHLJMPT0SORG001BHLJMPT1SMAIN:MOVTMOD,#03H; 设置设置T0定时,模式定时,模式3MOVTL0,#0CEH;设置设置TL0计数初值,产计数初值,产生生200s方波方波MOVTH0, #9CH;设置设置TH0计数初值,产计数初值,产生生400s方波方波6.3.2 定时器的应用举例定时器的应用举例SETBEA;设置总中断允许位设置总中断允许位SETBET0;允许定时器允许定

31、时器0中断中断SETBET1;允许定时器允许定时器1中断中断SETBTR0;启动定时器启动定时器T0SETBTR1;启动定时器启动定时器T1SJMP$T0中断服务程序中断服务程序:T0S:MOVTL0,#0CEH;重置初值重置初值CPLP1.0;P1.0口输出取反口输出取反RETI6.4.2 定时器的应用举例定时器的应用举例T1中断服务程序中断服务程序:T1S:MOVTH0,#9CH ;重新设置定时初值重新设置定时初值CPL P1.1 ;P1.1口输出取反口输出取反RETI ;中断返回中断返回例例6-6 利用定时器精确定时利用定时器精确定时1s控制控制LED以以秒为单位闪烁。已知秒为单位闪烁。

32、已知fosc=12MHz。分析:分析:定时器定时器/计数器在定时方式下,各个计数器在定时方式下,各个模式最大定时时间分别为:模式最大定时时间分别为:6.3.2 定时器应用举例定时器应用举例 定时器定时器0=(8192-0)12/fosc=8.192ms 定时器定时器1=(65536-0)12/fosc=65.536ms 定时器定时器2=(256-0)12/fosc=0.256ms 选择模式选择模式1。定时时间为。定时时间为10ms,当,当10ms的的定时时间到,定时时间到,TF1=1,连续定时,连续定时100次,调用次,调用亮灯函数;再连续定时亮灯函数;再连续定时100次,调用灭灯函数。次,调

33、用灭灯函数。循环工作,即达到循环工作,即达到1s闪烁闪烁1次的效果。次的效果。1、初值计算:、初值计算:(65536-X)12/fosc=10ms初值初值X=55536=0D8F0H6.3.2 定时器应用举例定时器应用举例汇编语言程序汇编语言程序:选择硬件定时选择硬件定时10ms,设置一计数单元,存,设置一计数单元,存放计数值放计数值100,循环定时,循环定时100次。次。ORG0000HLJMPMAINORG001BHLJMPTIMERMAIN:MOVR0,#100 ;存放计数值存放计数值100MOVTMOD,#10H6.3.2 定时器应用举例定时器应用举例MOVTL1,#0F0HMOVTH

34、1, #0D8HSETBET1SETBEASETBTR1CLRP1.0SJMP$TIMER: MOVTL1,#0F0HMOVTH1,#0D8HDJNZR0,NEXTMOVR0,#100CPLP1.0NEXT: RETIEND例例6-7:晶体频率为晶体频率为6MHz,试用试用T0(工作模式工作模式2),),在在P1.2输出矩形波。矩形波的高电平宽输出矩形波。矩形波的高电平宽50us,低电平宽为低电平宽为350us。分析:分析:1、初值计算、初值计算 (256-x)2=50 X=231=E7H 6.3.2 定时器应用举例定时器应用举例2、源程序、源程序 ORG 0000H AJMP MAIN MA

35、IN:MOV TMOD ,#02H MOV TH0,#E7H MOV TL0,#E7H SETB TR0 RESP1:CLR P1.2 MOV R0,#07H LOOP1:JBC TF0,RESP2 SJMP LOOP1 RESP2:DJNZ R0,LOOP1 SETB P1.2 LOOP2:JBC TF0,LOOP3 SJMP LOOP2 LOOP3:SJMP RESP1 END实时时钟的设计实时时钟的设计 1 1实时时钟实现的基本思想实时时钟实现的基本思想如何获得如何获得1 1秒的定时,秒的定时,可把可把定时时间定为定时时间定为100ms100ms,采用中断方,采用中断方式进行溢出次数的累

36、计,式进行溢出次数的累计,计满计满1010次次,即得到秒计时。,即得到秒计时。片内片内RAMRAM中规定中规定3 3个单元个单元作作为秒、分、时单元为秒、分、时单元,具体安排如下:,具体安排如下: 42H42H:“秒秒”单元单元 ;41H41H:“分分”单元;单元;40H40H:“时时”单元单元从秒到分,从分到时从秒到分,从分到时是通过是通过软件累加并进行比较软件累加并进行比较的方法来实的方法来实现的。现的。 2 2程序设计程序设计 (1 1)主程序的设计)主程序的设计流程如流程如图图6-176-17所示。所示。 6.3.2 定时器的应用举例定时器的应用举例(2 2)中断服务程序的设计)中断服

37、务程序的设计中断服务程序主要功能是实现秒、中断服务程序主要功能是实现秒、分、时的计时处理。参考程序略。分、时的计时处理。参考程序略。图图6-176-17图图6-186-18 ORGORG0000H0000H AJMPAJMPMAINMAIN; ;上电上电, , 跳向主程序跳向主程序 ORG ORG 000BH000BH;T0;T0的中断入口的中断入口 AJMP AJMP IT0PIT0PMAIN:MAIN:MOV MOV TMOD,#01HTMOD,#01H; ;设设T0T0为方式为方式1 1 MOV MOV 20H, #0AH 20H, #0AH ; ;装入中断次数装入中断次数 CLR CL

38、R A A MOV MOV 40H, A40H, A;“;“时时”单元清单元清“0”0” MOV MOV 41H, A41H, A;“;“分分”单元清单元清“0”0” MOV MOV 42H, A42H, A;“;“秒秒”单元清单元清“0”0” SETB ET0SETB ET0; ;允许允许T0T0申请中断申请中断SETB EASETB EA; ;总中断允许总中断允许 MOV MOV TH0,#3CHTH0,#3CH; ;给给T0T0装入计数初值装入计数初值MOV MOV TL0,#0B0HTL0,#0B0H SETB TR0SETB TR0; ;启动启动T0T0HERE: SJMP HERE

39、HERE: SJMP HERE; ;等待中断(也可调用显示子程序)等待中断(也可调用显示子程序)IT0P:IT0P: PUSH PSWPUSH PSW;T0;T0中断服务子程序入口中断服务子程序入口, , 保护现场保护现场 PUSH AccPUSH Acc MOV MOV TH0,#3CHTH0,#3CH; ;重新装入初值重新装入初值 MOV MOV TL0,#0B0HTL0,#0B0H DJNZ 20H,RETURNDJNZ 20H,RETURN;1;1秒未到秒未到, , 返回返回 MOV MOV 20H, #0AH 20H, #0AH ; ;重置中断次数重置中断次数 MOV MOV A, #01HA, #01H;“;“秒秒”单元增单元增1 1 ADD ADD A,42HA,42H DA DA A A;“;“秒秒”单元十进制调整单元十进制调整 MOV MOV 42H,A42H,A ;“ ;“秒秒” ” BCDBCD码存回码存回“

温馨提示

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

评论

0/150

提交评论