版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、“单片机原理与应用”课程 第 5 章 51系列单片机的定时器/计数器2022/7/211第5章 51系列单片机的定时/计数器 5.1 定时器/计数器简介5.2 定时器/计数器控制5.3 定时器/计时器的工作模式及控制2022/7/212【基本知识点与要求】(1) 了解51系列单片机定时器/计数器的结构和工作原理。 (2) 掌握51系列单片机定时器/计数器的工作模式、特点及应用【重点与难点】 重点和难点是51系列单片机的定时器/计数器的工作模式、特点及其应用。 在控制系统中,常常要求有定时或延时控制,如定时输出、定时监测、定时扫描等;也常常要求还有计数功能,即能对外部事件进行计数。本章首先介绍定
2、时器/计数器的一般结构和工作原理;其次介绍51系列单片机的定时器/计数器控制;然后介绍51系列单片机定时器/计数器的工作模式及其应用方法。 第5章 51系列单片机的定时/计数器 2022/7/2135.1 定时器/计数器简介5.1.1 定时器/计数器的一般工作方式 实现定时/计数的主要方法有3种:软件定时、硬件定时和可编程定时器/计数器。 软件定时:通过执行一段循环程序而产生延时。这是常用的一种定时方法,主要用于短时定时。其优点是不需要增加硬件设备;缺点是增加了CPU的时间开销,降低了CPU的效率。此外,软件定时的时间随微机时钟频率不同而发生变化 硬件定时:采用硬件电路完成定时,不占用CPU的
3、时间。这种方法定时时间长,但是当要求改变定时时间时,只能通过改变硬件电路中的元件参数来实现,使用不够灵活。2022/7/214 通常微机系统中均采用可编程定时器/计数器。可编程定时器/计数器是由一个N位计数器、计数时钟源控制电路、状态寄存器和控制寄存器等组成。计数器的计数方式有加1计数和减1计数两种。计数的时钟可以使用内部时钟也可以使用外部输入的时钟。 可编程定时器/计数器:综合了软件定时和硬件定时法各自的优点,其最大的灵活性是可以通过软件编程来选择定时或者计数、改变定时时间。其优点是工作方式灵活、占用CPU的时间少。5.1 定时器/计数器简介2022/7/2151定时器方式 定时器方式就是计
4、数器对内部机器周期计数,由于机器周期持续的时间是固定的,所以对机器周期的计数也就是定时功能。计数值乘以机器周期的时间就是定时时间t。定时器/计数器的一般结构5.1 定时器/计数器简介2022/7/216 2计数器方式 计数器方式是对外部输入的时钟计数,其计数的目的是对外部时钟累加统计或是为了测量外部输入脉冲的参数。5.1.2 51系列单片机的定时器/计数器结构与原理 1. 定时器/计数器的结构 AT89S51单片机内部集成了2个16位的可编程定时器计数器,即定时器/计数器0和定时器/计数器1,分别简记为T0和T1。它们既可以实现定时,也可以对外部事件进行计数,T1还可以作为串行接口通信的波特率
5、发生器。 5.1 定时器/计数器简介 AT89S51单片机的定时器/计数器主要由两个16位加1计数器T0、T1、定时器工作模式寄存器TMOD和定时器控制寄存器TCON等四部分组成。2022/7/217 AT89S51定时器/计数器内部结构图 5.1 定时器/计数器简介2022/7/218 定时功能: 定时器/计数器设置为定时功能时,加1计数器对单片机内部的机器周期脉冲进行计数,每过一个机器周期、计数器的数值加1。当计数器加到全为1时,再计入一个脉冲就使计数器发生溢出、并回到零。计数器的溢出使TCON中的溢出标志位(TF0或TF1)置1,表示定时时间已到,向CPU发出中断请求。5.1 定时器/计
6、数器简介 2. 定时器/计数器的工作原理 计数功能: 定时器/计数器设置为计数功能时,是对单片机的T0(P3.4)或T1(P3.5)引脚上输入脉冲的每一个1到0的跳变进行加l计数。单片机在每个机器周期都会对T0和T1引脚的输入电平进行采样,如果前一个机器周期的采样值为1,而下一个机器周期的采样值为0,则加1计数器的值加1。2022/7/219 定时器/计数器的工作模式设定、功能选择和控制是由TMOD和TCON两个特殊功能寄存器来完成的,当单片机系统复位后,两个特殊功能寄存器都被清零。 5.2 定时器/计数器控制5.2.1 定时器/计数器的工作模式寄存器TMOD TMOD用于选择T0和T1的工作
7、模式,是一个逐位定义的8位寄存器,只能字节寻址,字节地址为89H。其格式如下: D7 D6 D5 D4 D3 D2 D1 D0GATE M1 M0GATEC/ T M1 M0TC/2022/7/2110(1)GATE:门控位。 GATE1时,由外部中断引脚输入的电平和定时器/计数器启、停控制位(TR0、TR1)共同来控制定时器。 GATE0时,仅由TR0(TR1)置位或者清零来启动或者停止定时器T0(T1)。(2) :功能选择位。 =1时,选择计数功能,通过引脚T0(P3.4)对外部输入脉冲信号进行计数。 =0时,选择定时功能。计数输入信号是内部时钟脉冲,每个机器周期计数器的值加1。计数频率为
8、时钟频率的112,当采用12MHz的晶振时,计数频率为1MHz。定时器的定时时间与系统的时钟频率fosc、计数器的长度和初始值等有关。 5.2 定时器/计数器控制2022/7/21115.2 定时器/计数器控制(3) M1、M0:工作模式选择位。 M1 M0 工作模式 功能描述 0 0模式013位计数器 0 1模式116位计数器 1 0模式2自动重装入初值8位计数器 1 1模式3定时器0:分成两个8位计数器;定时器1:停止计数5.2.2 定时器/计数器的控制寄存器TCON 控制寄存器TCON是一个逐位定义的8位寄存器,既可字节寻址也可以位寻址,字节地址是88H,位寻址的地址为88H8FH。其格
9、式如下:2022/7/2112 TCON寄存器可分成两部分:高4位用于定时器/计数器的控制,低4位用于外部中断的控制。 (1)TF1(TCON.7位):T1的溢出标志位。T1溢出时,该位由内部硬件自动置位。若中断开放,即向CPU 发出中断申请,响应中断进入中断服务程序后,由硬件自动清0;若中断禁止,TF1位可作溢出查询测试用(判断该位是否为1),此时只能由软件清0。 (2)TR1(TCON.6位):T1的启动、停止控制位。5.2 定时器/计数器控制位地址8FH8EH8DH8CH8BH8AH89H88H位功能TF1TR1TF0TR0IE1IT1IE0IT02022/7/2113 当GATE0时,
10、若使用指令 SETB TR1,则启动T1。若使用指令 CLR TR1,则停止定时器T1工作; 当GATE1时,若使用指令 SETB TR1,且外部中断的引脚输入高电平时才能启动T1工作。(3)TF0(TCON.5位):T0的溢出标志位。 其功能及操作情况与TF1相同。 5.2 定时器/计数器控制(4)TR0(TCON.4):T0的启动、停止控制位。 其功能及操作情况与TR1相同。 5.2.3 定时器/计数器的初始化2022/7/2114 定时器/计数器的初始化:定时器/计数器运行前,CPU必须将一些命令(称为控制字)写入定时器/计数器,这个过程称 之。 初始化的内容主要包括:设置TMOD、中断
11、允许寄存器IE和中断优先级寄存器IP,装入时间常数,启动定时器/计数器工作。 (1)选择定时器/计数器及其工作模式,确定模式控制字,并写入TMOD。 (2)根据需要开启定时器/计数器的中断。 (3)装入定时器/计数器的初值。 (4)设置定时器/计数器的中断优先级。 (5)启动定时器/计数器工作。5.2 定时器/计数器控制定时器/计数器初始化步骤2022/7/21155.2 定时器/计数器控制 (1)选择定时器/计数器及其工作模式,确定模式控制字,并写入TMOD。使用T0,需定义TMOD的低4位,使用T1,需定义TMOD的高4位。定时器/计数器初始化步骤 (2)根据需要开启定时器/计数器的中断。
12、IE中与定时器/计数器中断有关的位为EA、ET0和ET1。 (3)装入定时器/计数器的初值。定时或计数初值就是预先置入定时器/计数器中的计数器的常数,称为定时常数或计数常数,标记为TC (Timer Constant ) 。 (4)设置定时器/计数器的中断优先级。IP中与定时器/计数器优先级有关的位是PT0和PT1位。 2022/7/2116 若需要定时的时间为t,则有下式: (5)启动定时器/计数器工作。置位TR0或TR1,就可以启动定时器/计数器T0或T1。 5.2 定时器/计数器控制2. 定时器/计数器初值计算 式中: t 定时时间 机器周期 单片机时钟频率 L计数器长度,模式0时,L=
13、13;模式1,L=16;模式2或3,L=8。 TC定时器/计数器初值(常数) 2022/7/21173. 定时器/计数器初值装入 不同的工作模式下初值的装入方法有所不同(以T0为例,T1与T0类似) 若工作在计数器方式时,需要的计数值为CC,则计数初值TC的计算如下: TC = 2L计数值(CC) 定时器/计数器的定时或计数初值与工作模式、计数长度之间的关系如下页表5-2 5.2 定时器/计数器控制 模式0是13位定时器/计数器,计数初值的高8位装入TH0,而低5位装入TL0的低5位(TL0的高3位无效,可填0)。 模式1是16位定时器/计数器,计数初值的高8位装入TH0,而低8位装入TL0。
14、 模式2是自动重装入初值8位定时器/计数器,只要装入一次,溢出后就自动装入初值。计数初值既要装入TH0,也要装入TL0。 2022/7/21185.2 定时器/计数器控制工作模式计数长度最大计数值为M 最长定时时间T定时初值TC计数初值 CCf=6MHz模式013M=213=8192=2000HT=213TC =8.192msT=213TC =16.384msTC=213t/TcTC = 213CC)模式116M=216=65536T=216TC =65.536msT=216TC =131.072msTC=216t/TcTC = 216CC)模式28M=28=256T=28TC =0.256m
15、sT=28TC =0.512msTC=28t/TcTC = 28CC)模式3(T0)TL0 8M=28=256T=28TC =0.256msT=28TC =0.512msTC=28t/TcTC = 28CC)TH0 8M=28=256T=28TC =0.256msT=28TC =0.512msTC=28t/TcTC = 28CC)2022/7/21195.3.1 模式0及应用 当TMOD中的M1M0=00时,选定工作模式0。模式0的定时器/计数器逻辑结构如图所示。由TLx中的低5位(高3位未用)和THx中的8位组成13位加1计数器;若TLx中的第5位有进位,直接进到THx的最低位,THx溢出后
16、将TFx置位,并向CPU申请中断。 5.3 定时器/计数器工作模式及应用2022/7/2120 【例题5-1】 已知时钟频率f=12MHz,要求在P1.0引脚上输出周期为2ms的方波。解:(1)题意分析与定时器初始化。 方波的周期为2ms,则需要设定1ms的定时,每隔1ms产生一次定时中断,在中断服务程序中对P1.0引脚输出信号取反,即可达到题目的要求。 选用T0定时功能,使用工作模式0。 TC为7192=1C18H,转换为二进制数TC =0001110000011000B,取低13位,其中高8位为E0H,低5位为18H。 计数初值为7192,定时时间为 5.3 定时器/计数器工作模式及应用2
17、022/7/21215.3 定时器/计数器工作模式及应用TMOD设定 (2)编程 ORG 0000H AJMP MAIN ORG 000BH ;T0中断入口地址 AJMP INQP ORG 0030HMAIN: MOV SP,#60H ;设置堆栈指针2022/7/21225.3 定时器/计数器工作模式及应用 MOV TMOD,#00H ;写入控制字 MOV TH0,#0E0H ;写定时常数(定时1ms) MOV TL0,#18H SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ; 开放CPU中断HERE: AJMP HERE ;等待定时中断INQP: MOV T
18、H0,#0E0H ;重新写入定时常数 MOV TL0,#18H CPL P1.0 ;P1.0变反输出 RETI ;中断返回 END2022/7/21235.3.2 模式1及应用 当TMOD中的M1M0=01时,选定工作模式1。模式1的定时器/计数器逻辑结构如图5-4所示。在模式1下,定时器/计数器是由THx中的8位和TLx中的8位组成一个16位加1计数器。模式1的结构和操作与模式0完全类似,其唯一的差别仅仅在于计数器的位数不同。 5.3 定时器/计数器工作模式及应用2022/7/2124【例题5-2】 已知时钟频率为6MHz,要求在P3.4引脚上产生周期为40ms的方波输出。解:(1)题意分析
19、定时器初始化。 方波的周期为40ms,则需要设定20ms的定时,每隔20ms产生一次定时中断,在中断服务程序中对P3.4引脚输出信号取反,即可达到题目的要求。 时钟频率为6MHz ,选用T0定时功能,若用模式0,其最长定时时间为16.384ms,无法直接实现,所以使用工作模式1。定时时间t=20ms,则初值为: 5.3 定时器/计数器工作模式及应用2022/7/2125 (2)编程 ORG 0000H AJMP MAIN ORG 000BH ;T0中断入口地址 AJMP INQP ORG 0030HMAIN: MOV SP,#60H ;设置堆栈指针5.3 定时器/计数器工作模式及应用TC为55
20、536=DBF0H,其中高8位为0DBH,低8位为0F0H。TMOD的设定 2022/7/2126 MOV TMOD, #01H ;写控制字 MOV TH0, #0DBH ;写定时常数(定时20ms) MOV TL0, #0F0H SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ; 开放CPU中断HERE:AJMP HERE ;等待定时中断INQP: MOV TH0, #0DBH ;重写定时常数 MOV TL0, #0F0H CPL P3.4 ;P3.4变反输出 RETI ;中断返回 END5.3 定时器/计数器工作模式及应用2022/7/2127【例题5-3】
21、 实时时钟的程序设计 1. 设计的基本思想 可以用定时器/计数器来实现实时时钟。时钟的最小计时单位是秒,如何获得1秒的定时呢?从定时器的工作模式可知,如果时钟频率为6MHz,使用定时器模式1,最大的定时时间也只能达到131.072ms,无法直接实现。因此,可以将定时器的定时时间定为100ms,采用中断方式进行定时次数的累计,计满10次为1s。 5.3 定时器/计数器工作模式及应用定时初值的计算如下: TC为15536=3CB0H,其中高8位为3CH,低8位为0B0H。 2022/7/2128 2. 程序设计(1)主程序设计:主程序的主要功能是进行定时器T1的初始化,并启动T1,然后通过反复调用
22、显示子程序,等待100ms定时中断的到来。主程序的流程如图5-5所示。 5.3 定时器/计数器工作模式及应用2022/7/2129(2)中断服务程序设计:中断服务程序的主要功能是实现时、分、秒的计时处理,程序流程如图所示 。5.3 定时器/计数器工作模式及应用2022/7/21305.3.3 模式2及应用 当TMOD中的M1M0=10时,选定工作模式2。该模式下,将16位计数寄存器分为两个8位寄存器,组成一个能自动重装入初值的8位加1计数器,定时器/计数器逻辑结构如图所示。 5.3 定时器/计数器工作模式及应用2022/7/2131 在模式2中,TLx作为8位计数器,THx作为定时初值或计数初
23、值寄存器。当TLx计数溢出时,硬件自动使TFx置位、向CPU申请中断,同时自动将THx的内容重新装入TLx中,继续计数。重新装入不影响THx的内容。 模式0和模式1在每次计数满溢出后,计数器都要置0,要开始新的计数还需要重置计数初值。而模式2具有初值自动装入功能,避免了编成装入初值的麻烦,适合用于较高精度的定时信号发生器,通常作为串行口通信时的波特率发生器使用。 5.3 定时器/计数器工作模式及应用【例题5-4】 已知时钟频率为,当T0(P3.4)引脚输入信号发生从1到0的负跳变时,则从P1.0引脚上输出一个频率为5KHz的方波。2022/7/21325.3 定时器/计数器工作模式及应用 (1
24、)工作模式选择 根据题目的要求,T0(P3.4)引脚的输入信号可视为外部中断源,定时器/计数器T0设置为工作模式1、计数方式,其初值设为0FFFFH,当外部计数输入端T0(P3.4)引脚发生一次负跳变时,计数器T0加1溢出后,使标志位TF0置1,并向CPU发出中断请求,在T0的中断服务子程序中,启动定时器/计数器T1在工作模式2定时,每 产生一次中断,在定时器T1的中断服务子程序中对P1.0取反,使P1.0产生频率为5KHz的方波。 (2)计算T1初值T1的初值计算如下: 2022/7/2133(3)编程 ORG 0000HRESET: LJMP MAIN ;转向主程序 ORG 000BH L
25、JMP IT0P ;转T0中断服务程序 ORG 001BH LJMP IT1P ;转T1中断服务程序 ORG 1000H MAIN: MOV SP,#60H ;主程序,设堆栈指针 MOV TMOD,#25H ;T0为模式1、计数方 ;式,T1为模式 2 MOV TL0,#0FFH ;T0置计数初值 MOV TH0,#0FFH SETB ET0 ;允许T0中断5.3 定时器/计数器工作模式及应用2022/7/2134 MOV TL1,#9CH ;T1置计数初值 MOV TH1,#9CH SETB EA ;CPU开中断 SETB TR0 ;启动T0 HERE: AJMP HERE ORG 1200
26、H ;T0中断服务程序 IT0P: CLR TR0 ;停止T0计数 SETB ET1 ;允许T1中断 SETB TR1 ;启动T1 RETI ORG 1300H ;T1中断服务程序 IT1P: CPL P1.0 ; P1.0位取反 RETI END5.3 定时器/计数器工作模式及应用2022/7/2135 1定时器初值计算: 定时器/计数器T0定时工作模式2,TL0为8位计数器,TH0为预置寄存器。定时360s的初值TC1、 40s的初值TC2 计算如下:5.3 定时器/计数器工作模式及应用【例题5-5】 用定时器/计数器T0、以定时工作模式2,在P1.0输出周期为400s,占空比为9:10的
27、脉冲,如图所示。设 ,请编程实现(查询方式)。 解:由题意可知,P1.0输出高电平持续360s,输出低电平持续40s。 2022/7/21365.3 定时器/计数器工作模式及应用2程序流程设计 2022/7/21373编程实现 5.3 定时器/计数器工作模式及应用 ORG 0000H AJMP MAIN ORG 0040HMAIN:MOV SP,#60H SETB P1.0 MOV TMOD, #02H MOV IE, #00H MOV TL0, #4CH MOV TH0, #0ECHAGAIN:SETB TR0 LOOP:JBC TF0,LOOP1 AJMP LOOP LOOP1:CPL P
28、1.0 JNB P1.0,LOOP2 MOV TH0, #0ECH AJMP LOOP LOOP2: MOV TH0,#4CH AJMP LOOP HERE: SJMP HERE END2022/7/21385.3.4 模式3及应用 TMOD中的M1M0l1时,选定工作模式3。在工作模式3下,T0分为两个独立的8位加1计数器TH0和TL0。其中TL0既可用于定时,也可用于计数;TH0只能用于定时。T1不能在模式3下工作。 5.3 定时器/计数器工作模式及应用1.工作模式3下的定时器/计数器T0 2022/7/21395.3 定时器/计数器工作模式及应用2. T0在工作模式3下时的定时器/计数器
29、T1 TL0:8位定时器计数器,它占用了T0的各控制位、引脚和中断源。即 、GATE、启动停止控制位TR0、T0引脚(P3.4)及计数器溢出标志位TF0和T0的中断服务入口地址(000BH)等。 TH0:作为8位定时器用,它占用了定时器计数器T1的启动停止控制位TR1、计数溢出标志位TF1及T1中断服务入口地址(001BH)。TH0只能对机器周期进行计数,因此,它只能用作内部定时,不能用作对外部脉冲进行计数。 T0工作模式3下时的定时器/计数器T1的逻辑结构如图。T1不能工作在模式3下,只能选模式0、1或2,此时,定时器/计数器T1由 位控制其为定时或计数功能。当计数器溢出时,只能将输出送往串
30、行口。通常作串行口波特率发生器时或不需要中断的地方。定时器/计数器T1的启动和关闭比较特殊,设置好T1的工作模式,就开始计数。若要停止计数,只需要送入一个设置定时器T1为模式3的命令即可。2022/7/21405.3 定时器/计数器工作模式及应用【例题5-6】 设 ,编程实现用AT89S51产生两个方波,一个方波周期为200s,另一个方波周期为400s。 2022/7/2141(2)定时常数计算:TL0时常记为TCL0,需要定时100s;TH0时常记为TCH0,需要定时200s。 (1)工作模式的选择:这时T0采用模式3工作,其中,TL0产生100s定时,由P1.0输出方波1;TH0产生200
31、s定时,由Pl.1输出方波2。 5.3 定时器/计数器工作模式及应用2022/7/2142(3)编程 ORG 0000H AJMP MAIN ORG 000BH AJMP ITL0 ORG 00lBH AJMP ITH0 ORG 0100HMAIN: MOV SP, #60H MOV TMOD,03H MOV TL0,0B3H MOV TH0,66H SETB TR0 SETB TR1SETB ET0 SETB ET1 SETB EA HERE: AJMP HEREITL0: MOV TL0,0B3H CPL P1.0 RETIITH0: MOV TH0,66HCPL P1.1 RETIEND
32、 5.3 定时器/计数器工作模式及应用2022/7/21435.3.5 定时器/计数器门控位的应用 门控位GATE可用作对引脚上输入的高电平持续时间进行计量。一般情况下,设置门控位GATE=0时,定时器/计数器的运行只受TRx的控制。当门控位GATE=1时,定时器/计数器的运行同时受到TRx为和引脚电平的控制。据此,当设置GATE位为“1”、定时器/计数器的启动位TRx为“1”时,定时器/计数器的启/停就完全取决于引脚输入的信号。当引脚电平为“1”时,则启动定时器/计数器工作。当引脚电平为“0”时,则停止定时器/计数器工作。这样,定时器实际记录的时间就是相应引脚上高电平的持续时间。 5.3 定
33、时器/计数器工作模式及应用2022/7/2144【例题5-7】 利用定时器计数器测定图5-12所示波形的高电平持续时间。 5.3 定时器/计数器工作模式及应用解法一(采用查询的方式) 此题目实际上是要测量外部输入正脉冲的宽度。T1作为定时器使用,当门控信号GATE=1、TR1=1时,T1的启动和关闭就由控制。当为高电平时,启动定时器工作直到=0为止,T1停止计数。然后读出T1的计数值,此计数值再乘以机器周期即为外部输入正脉冲的宽度。 2022/7/2145 ORG 0000H LJMP MAIN ORG 1000HMAIN: MOV TMOD,#90H ;设置T1为模式1,GATE位置1 MO
34、V TL1,#00H ;设置定时初值 MOV TH1,#00HLP1: JB P3.3,LP1 ; P3.3为高电平,等待 SETB TR1 ; P3.3为低电平时,置TR1位为1LP2: JNB P3.3,LP2 ; 当P3.3为低电平时,再等待LP3: JB P3.3,LP3 ; 当P3.3为高电平时,启动T1 CLR TR1 ; P3.3为低电平时,高电平脉宽定时结束 MOV R0,TH1 MOV R1,TL1 ;(R0R1)的内容是高电平的宽度HERE: SJMP HERE END5.3 定时器/计数器工作模式及应用2022/7/2146解法二(采用定时器中断的方法): 如果被测脉冲的
35、宽度大于65536个机器周期时,可设一个中断次数计数器R2,每当定时器/计数器记满65536个机器周期而产生溢出中断时,中断次数计数器R2加1,而定时器/计数器清零后重新从0开始计数,直到脉冲信号变为0时结束。 5.3 定时器/计数器工作模式及应用 ORG 0000H AJMP MAIN ;转向主程序 ORG 000BH ;T0中断入口地址 AJMP INQP ORG 0030H MAIN: MOV TMOD,#09H ;T0为模式1,GATE=1 MOV TH0, #00H ;设置定时初值 MOV TL0, #00H 2022/7/2147 MOV IE, #82H ;开放CPU和T0中断
36、MOV R2, #00H ;中断次数计数器清0 LOOP1: JB P3.2,LOOP1 ;等待变成低电平 SETB TR0 ;置TR0为1,为T0启动作准备 LOOP2: JNB P3.2,LOOP2 ;等待变成高电平,启动T0 LOOP3: JB P3.2,LOOP3 ;等待变成低电平,停止定时 CLR TR0 ;停止T0 MOV R0, TL0 ;取出当前的定时时间 MOV R1, TH0 HERE: SJMP HERE INQP: INC R2 ;中断次数计数器加1 RETI END ;(R2)*65536+(R1R0)*机器周期。 5.3 定时器/计数器工作模式及应用2022/7/2
37、148解法三(采用外部输入信号和定时器中断的方法): 设一个定时器中断次数计数器R2,每当定时器/计数器记满65536个机器周期而产生溢出中断时,中断次数计数器R2加1,而定时器/计数器清零后重新从0开始计数,直到输入的脉冲信号变为0时下跳沿申请中断,进入外部 中断服务计算时间。 5.3 定时器/计数器工作模式及应用 ORG 0000H AJMP MAIN ;转向主程序 ORG 0003H ;INT0中断入口地址 AJMP INT0AN ORG 000BH ;T0中断入口地址 AJMP T0AN ORG 0100H MAIN: MOV TMOD,#09H ;T0为模式1,GATE=1 2022
38、/7/2149 MOV TH0, #00H ;设置定时初值 MOV TL0, #00H MOV IE, #83H ;CPU开放、INT0和T0中断 MOV R2, #00H ;中断次数计数器清0 SETB TR0 ;置TR0为1,为T0启动作准备 HERE: SJMP HERE T0AN: INC R2 ;中断次数计数器加1 RETI INT0AN: MOV R0, TL0 ;取出当前的定时时间 MOV R1, TH0 MOV TH0, #00H MOV TL0, #00H 计算处理;(R2)*65536+(R1R0)*机器周期。 RETI END ;5.3 定时器/计数器工作模式及应用2022/7/21505.3.6 看门狗定时器(WDT) 1. 看门狗定时器的组成 AT89S51单片机内部设置了一个看门狗定时器(WDT),它由一个14位计数器和看门狗复位寄存器(WDTRST)构成。主要是为了解决CPU程序运行时可能进入混乱和死循环。外部复位时,WDT默认为关闭状态,要启动WDT,必须按顺序将01EH和0E1H写入看门狗复位寄存器(WDTRST的地址为0A6H)。当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化创意街区发展趋势-洞察分析
- 2024年柳州工程机械集团职工医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 关于车库安装充电桩的协议书(2篇)
- 专题09 阅读理解(应用文记叙文)【考题猜想】-七年级英语上学期期末考点大串讲(沪教版2024)(解析版)
- 2025年牛津上海版九年级地理上册阶段测试试卷
- 《如何支持成本管理》课件
- 2024年华东师大版九年级历史上册月考试卷含答案
- 2024年北师大版八年级生物上册月考试卷含答案
- 风力发电设备运输协议
- 创业指导教练员招聘协议样本
- JC/T 414-2017 硅藻土行业标准
- 组织学与胚胎学课程教学大纲
- 网络传播概论(第5版) 课件 第一章 网络媒介的演变
- 2023-2024学年江西省鹰潭市余江区八年级(上)期末数学试卷(含解析)
- 2023北京西城六年级(上)期末英语试卷含答案
- 珠海金湾区2023-2024学年七年级上学期期末数学达标卷(含答案)
- 京东五力模型分析报告
- XX学校2024年校长务虚会讲话稿范文
- 大学英语四级考试模拟试卷(附答案)
- 广西壮族自治区钦州市浦北县2023-2024学年七年级上学期期末历史试题
- 法律英语 何家弘编 第四版课文翻译(1-20课)
评论
0/150
提交评论