单片机应用技术-定时计数器综合应用

合集下载

单片机原理及应用 第06章定时计数器

单片机原理及应用  第06章定时计数器

20
6.5 定时器/计数器的编程
初始化
1 根据要求给方式寄存器TMOD送一个方式控制 字,以设定定时器的工作方式; 2 根据需要给TH和TL选送初值,以确定需要的 定时时间或计数的初值; 3 根据需要给中断允许寄存器IE送中断控制字, 以开放相应的中断和设定中断优先级;
也可用查询方式来响应定时器。
JBC TF1,RP1 SJMP DEL2
30
6.6.4 长定时时间的产生
例 假设系统时钟为6MHz,编写定时器T0产生 1秒定时的程序。 (1)T0工作方式的确定 定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出: 方式0最长可定时16.384ms;
方式1最长可定时131.072ms; 方式2最长可定时512μs。 选方式1,每隔100ms中断一次,中断10次为1s。
8
6.3 定时/计数器的4种工作方式 方式0、方式1(13位、16位定时计数方式)
T1工作于方式0的等效框图(M1M0=00、01)
GATE=0、A=1、TR1=1 GATE=1、INT1=1、TR1=1。注意定时器初值与定时时间的不同
9
6.3.1 方式0、方式1的说明 定时/计数器T1工作在方式0时,为13位的计数器,由TL1 的低5位和TH1的8位所构成。TL1低5位溢出向TH1进 位,TH1计数溢出置位TCON中的溢出标志位TF1。 GATE位的状态决定定时/计数器运行控制取决于TR1 一个条件还是TR1和INT1引脚这两个条件。 当GATE=0时,A点电位恒为1,则只要TR1被置为1,B 点电位即为1,定时/计数器被控制为允许计数(定时/计 数器的计数控制仅由TR1的状态确定,TR1=1计数, TR1=0停止计数)。 当GATE=1时,B点电位由INT1输入的电平和TR1的状 态确定,当TR1=1,且INT1=1时,B点电平才为1,才 允许定时器/计数器计数(计数控制由TR1和INT1二个条 件控制)。 方式1时,TL1的8位都参与计数,因而属于16位 定时/计数器。其控制方式,等效电路与方式0完全相 10 同。

定时器

定时器

单片机应用技术
一、定时方法概述
定时方法 硬件延时 软件延时 可编程定时 由硬件电路实现延时,长时间延时; 通过执行循环而获得延时,短时间延时; 通过对系统时钟脉冲的计数而获得延时。
二、定时器/计数器的结构和工作原理
1、结构
定时器T1 定时器
计数溢出 置标志位
定时器T0 定时器
设置T0工 设置T0工 作方式 启动/ 启动/停 止T0工作 T0工作
四、定时器/计数器工作方式 定时器 计数器工作方式
注意:定时计数器的计数范围与初值X 注意:定时计数器的计数范围与初值X的计算
1、定时器的计数规律: 、定时器的计数规律: T0从某初值X,对脉冲计数到1111111111111B(213D=8192D)溢出 计数个数:213-X 2、最大计数范围:从初值X=0D,计数到1111111111111B(213D) 、最大计数范围: 3、定时时间: 、定时时间: 计数个数为213-0=8192D
1 (2 − x) × ×12 = 250×10−6 6×106
13
X=8067D=1F83H=0001 1111 1000 0011B 故 TH0= 1 1111 100高8位=FCH 100高 TL0=0000 0011B低5位=03H 0011B低
单片机应用技术
(3) 编写程序。采用查询TF0的状态来控制P1.0输出 编写程序。采用查询TF0的状态来控制P1.0输出 MOV TMOD,#00H TMOD, ;置T0为方式0 ;置T0为方式0 MOV TH0,#0FCH TH0, ;送计数初值 MOV TL0,#03H TL0, SETB TR0 ;启动T0 ;启动T0 LOOP: LOOP: JBC TF0, NEXT TF0, ;查询定时时间到否? ;查询定时时间到否? SJMP LOOP NEXT: NEXT: CLR TF0 ; 对溢出标志位清0 对溢出标志位清0 MOV TH0,#0FCH ;重赋计数初值 TH0, MOV TL0,#03H TL0, CPL P1.0 ;输出取反 SJMP LOOP ; 重复循环 采用查询方式的程序很简单,但在定时器整个计数过程中,CPU要不断查询 采用查询方式的程序很简单,但在定时器整个计数过程中,CPU要不断查询 溢出时标志TF0的状态, 这就占用了CPU工作时间,以致CPU的效率不高。采用 溢出时标志TF0的状态, 这就占用了CPU工作时间,以致CPU的效率不高。采用 定时溢出中断方式,可以提高CPU的效率。 定时溢出中断方式,可以提高CPU的效率。

认识单片机的定时器计数器

认识单片机的定时器计数器

void main(void) { TMOD=0x01;
TH0=-25000/256; TL0=-25000%256; TR0=1; ET0=1; EA=1; while(1); } void timer0(void) interrupt 1 { TH0=-25000/256;
TL0=-25000%256; P10=~P10; }
根据定时时间T,及公式(1)、(2)分别可以求出初 值N为:
方式1: N=216-T×fosc/12
(3)
方式2、方式3 :N=28-T×fosc/12 (4)
如果fosc=12MHZ,以上公式可简化为
方式1: N=216-T
方式2、方式3 :N=28-T
例如:系统的时钟频率是12MHz,在方式1下,如果希望定时 器/计数器T0的定时时间T为10ms,则初值N =216-T=6553610000=55536
任务一、认识单片机的定时器/计数器
一、定时器/计数器及其应用 在单片机应用系统中,定时或计数是必不可少的。例如: 测量一个脉冲信号的频率、周期,或者统计一段时间里 电机转动了多少圈等。常用的定时方法有:
1、软件定时 软件定时是依靠执行一段程序来实现的,这段程序本身 没有具体的意义,通过选择恰当的指令及循环次数实现 所需的定时,由于执行每条指令都需一定的时间,执行 这段程序所需总的时间就是定时时间。 软件定时的特点是无需硬件电路,但定时期间CPU被占 用,增加了CPU的开销,因此定时时间不宜过长,而且 定时期间如果发生中断,定时时间就会出现误差。
led=_crol_(led,1); 满10次变量led左移1位送P0口
P0=led;
}
}
[案例3] 用定时器的计数方式实现外部中断。如图 所示,P0口控制8只发光管轮流点亮,发光管点 亮时间为500ms,单脉冲电路控制发光管的移动 方向,按下单脉冲按钮,发光管左移,再按下发 光管右移 。

单片机实验之定时器计数器应用实验二

单片机实验之定时器计数器应用实验二

、实验目的1 、掌握定时器/计数器计数功能的使用方法。

2 、掌握定时器/计数器的中断、查询使用方法。

3 、掌握Proteus 软件与Keil 软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

、设计要求1 、用Proteus 软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 100个脉冲,则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。

2、用Proteus 软件画出电路原理图,单片机的定时器/计数器以中断方式工 作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲, 则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。

通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD 初值的计 算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。

七、思考题1、利用定时器0,在P1.0 口线上产生周期为200微秒的连续方波,利用定 时器1,对P1.0 口线上波形进行计数,满50个,则取反P1.1 口线状态,在P 1.1 口线上接示波器观察波形。

tJI-JTTALlRSTIPO 1 Z^Cil POiPD 3/jfiD3 IPCLW/MH FD-5/^CB”血P2 O/jtS PNUMa P 2 .2/AJOPI F3JD/RKDP1 且1门池F1 2P1 .3P3^/|NT1 卩11 .4P3.4Z1D P1.5 P3 .5fT1 尸1P3.0AA/RP1I.7 P3.?/RD17三、电路原理图 18HQAT69C52P 2 .4/A12P2 5/A13 P2P2 .7XA1«5蝕丘2Q 37答:程序见程序清单四、实验程序流程框图和程序清单1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,MAIN: MOV IE, #00HMOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1LOOP: JNB TF1, LOOP CLRTF1 CPL P1.0 AJMP LOOP ENDC 语言程序:#in elude <reg52.h> sbit Y=P1A0; void mai n() {EA=0; ET1=0; TMOD=0x60;TH1=0x9C;计数数值初始化中断断 艙化!l[启动 =时器1 器一、r动 启N箱 * 1溢断清计数溢出标志—1 ~ P1.(口线取反TL 仁 0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } }2、定时器/计数器以中断方式工作,对外部连续周期性脉冲信号进行计数, 每计满200个脉冲,则取反P1.0 口线状态。

51单片机定时计数器的工作原理

51单片机定时计数器的工作原理

51单片机定时计数器的工作原理
51单片机是一种常用的微控制器,它具有多个定时计数器,其中包括定时器0和定时器1。

这些定时计数器是通过内部时
钟源提供的脉冲进行计数的。

定时器0和定时器1是独立的计数器,它们可以用于不同
的应用。

这里我们将主要关注定时器0的工作原理。

定时器0
由一个八位计数器和一个控制寄存器组成。

当定时器0启动时,它会根据时钟源提供的脉冲进行计数,每个脉冲会使计数器的值增加1。

定时器0的计数范围为0-255,即八位二进制数。

通过控制寄存器,我们可以设置定时器0的工作模式、计
数器的初始值以及时钟源的频率。

定时器0可以以不同的方式工作,包括定时模式和计数模式。

在定时模式下,我们可以设置一个初始值,并在每次计数
器增加到该值时产生一个中断。

这样就可以实现精确的定时功能。

定时器0的中断服务程序可以完成各种操作,例如控制其他外设、延时等。

在计数模式下,定时器0将简单地计数外部触发信号的脉
冲次数。

这可以用于测量外部事件的时间间隔或频率。

需要注意的是,定时器0的工作需要通过编程来完成。


们可以使用汇编语言或C语言来配置定时器0的寄存器,并
设计相应的中断服务程序。

51单片机定时器的工作原理是通过定时器0和定时器1实
现计数功能。

定时器0可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。

编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。

《单片机应用技术》000-9(周君芝)课件 项目三 中断系统与定时计数器的应用

《单片机应用技术》000-9(周君芝)课件 项目三  中断系统与定时计数器的应用

3.1.3 中断系统的结构
IE0: 外部中断 INT0 的请求标志位。当CPU检测到外部中断请求时,该标志位置“1”;当
CPU转向中断服务程序时,由硬件自动置“0”(只适用于边沿触发方式)。 IT1和IE1:
外部中断 INT1 的触发方式控制位和请求标志位,其含义与IT0和IE0相同。
3.1.3 中断系统的结构
在电平触发方式中,当CPU转向中断服务程序时,不能自 动清除IE标志位,也不能由软件进行清除。因此应在中断返回 前撤销引脚上的低电平,否则就会产生CPU多次响应一次中断 的错误。
3.1.2 中断的特点
中断的特点主要 有分时操作、实 时处理、故障处
理等。
分时操作 实时处理
故障处理
只有当服务对象向CPU发出中断请求时,CPU才去 为它服务,无中断请求时CPU正常工作,这样单片机可 以为多个对象服务,从而大大地提高了CPU的工作效率。
利用中断技术,各个服务对象可以根据需要随时 向CPU发出中断请求,CPU可及时发现和处理中断请 求并为之服务,以满足实时控制的要求。
位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
功能
用于定时/计数器
用于中断
TCON的位名称、位地址及功能
IT0: 外部中断 INT0 的触发方式控制位,由软件进行置“1”和置“0”。当IT0=1时,为
边沿触发方式(即当引脚P3.2出现下降沿脉冲信号时,中断请求有效);当IT0=0时, 为电平触发方式(即当引脚P3.2为低电平信号时,中断请求有效)。
1.中断源
向CPU发出中断请求的信号称为中断源。51系列单片机中有5个中断源,其中2个外部中 断源,3个内部中断源,具体如下。
INT0 外部中断,由引脚

8051单片机定时器及应用课件

8051单片机定时器及应用课件
M1、M0设置为00 ,为13位计数器,以T1为例, 其框图如下:
计数脉 冲输入
加1计数器
19
6.3 定时器的工作方式——方式0
TH1
D12 D11 D10 D9 D8 D7 D6 D6
TL1
× × × D4 D3 D2 D1 D0
在这种方式下,16位寄存器TH1和TL1只用13位, 由TH1的8位和TL1的低6位组成。TL1的高3位不定。
15
16
第6章 定时器/计数器及其应用
➢ 6.3 定时器的工作方式
17
6.3 定时器的工作方式 MCS-51的定时器T0有4种工作方式:
即:方式0,方式1,方式2,方式3。 MCS-51的定时器T1有3种工作方式:
即:方式0,方式1,方式2。
18
6.3 定时器的工作方式——方式0
6.2.1 方式0
其定时时间为: (216-初值)×振荡周期×12
例如:若晶振频率为12MHz,则最长的定时时间为 (216-0)×(1/12)×12us=66.636ms
24
6.3 定时器的工作方式——方式2
6.3.3 方式2
M1、M0=10 ,为自动恢复初值的8位计数器,等效框图如 下: TLx作为8位计数器,THx作为重置初值的缓冲器。
数的是MCS-51内部产生的标准脉冲,通过 计数脉冲个数实现定时。 所以,定时器和计数器本质上是一致的,在 以后的叙述中将定时器/计数器笼统称为定 时器。
2
3
第6章 定时器/计数器及其应用
6.1 定时器的结构及工作原理 6.2 定时器的TMOD和TCON寄存器 6.3 定时器的工作方式
6.3.1 方式0 6.3.2 方式1 6.3.3 方式2 6.3.4 方式3

第3次《单片机原理与应用》-定时计数器

第3次《单片机原理与应用》-定时计数器

定时器初始化编程:
使用定时器工作之前,先写入控制寄存器, 确定好定时器工作方式。 初始化编程格式:
MOV TMOD,# 方式字 MOV THx,#XH MOV TLx,#XL (SETB EA ) (SETB ETx) SETB TRx ;选择方式 ;装入Tx时间常数 ;开Tx中断 ;启动Tx定时器
TMOD,#01H ;设置T0为方式1定时
ACALL PT0M0
HERE: AJMP HERE
;调用初始化子程序PT0M0
;原地循环,等待中断
22
PT0M0: MOV
TL0,#0CH
;T0初始化,装初值的低8位
MOV
TH0,#0FEH
;装初值的高8位
;允许T0中断 ;总中断允许 ;启动T0 ;中断子程序,T0重装初值 ;P1.0的状态取反
本例,主程序用一条转至自身的短跳转指令来代替。
21
参考程序如下:
ORG 0000H ;程序入口 ;转主程序 ;T0中断入口 ;转T0中断处理程序IT0P ;主程序入口 ;设堆栈指针
RESET: AJMP MAIN ORG 000BH
AJMP IT0P ORG MAIN: MOV MOV 0100H SP,#60H
2)中断方式:初始化后执行其它任务,中断服务程序处理溢出。 ORG 0000H LJMP MAIN ORG 000BH(001BH) ;Tx中断入口 LJMP PTS MAIN: … ;初始化后执行其他程序 PTS: … ;溢出中断服务程序 MOV THx,#XH ;重装时间常数 MOV TLx,#XL RETI
即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务 子程序中对P1.0取反。为此要做如下几步工作。

单片机定时器计数器的应用(附图)

单片机定时器计数器的应用(附图)

定时器的应用一、普通模式和CTC模式1、利用T/C0的普通模式,从PA0引脚输出一个频率为10KHz的方波。

(假设系统时钟为4MHZ)设计思路:10KHz的周期为100us,故需要定时的时间为50 us,即每50 us进入溢出中断,对PA0取反一次。

时钟源取系统时钟的8分频,f=4MHZ/8=500KHZ,T时钟源=2us,所以计数的次数n=50us/2us=25,根据普通模式的特点,计数的初值N=256-25=231。

#include <mega16.h>interrupt [10] void tim0_isr(void){TCNT0=231;PORTA.0=~PORTA.0;}void main(void){DDRA.0=1;PORTA.0=0;TCNT0=231;TCCR0=0B00000010;TIMSK=0X01;SREG.7=1;while(1);}2、利用T/C0的CTC模式,从PA0引脚输出一个频率为10KHz的方波。

(假设系统时钟为4MHZ)设计思路:同上,计数的次数n=50us/2us=25,根据CTC模式计数的特点(从0开始计到OCR0,然后进入匹配中断),OCR0的值N=n=25,且不会被改变,无需重装。

#include <mega16.h>interrupt [20] void tim0_isr(void){PORTA.0=~PORTA.0; //OCR0的值没必要重装}void main(void){DDRA.0=1;PORTA.0=0;OCR0=25;TCCR0=0B00001010;TIMSK=0X02;SREG.7=1;while(1);}3、利用T/C0的CTC模式,从OC0引脚输出一个频率为10KHz的方波。

(假设系统时钟为4MHZ)设计思路:根据CTC的特点和题意,得:f OC0=f clki/o/(2N(1+0CR0))=4M/(2N(1+OCR0))=10K,取N=1,OCR0=199。

《单片机原理及应用》第5章 定时器及应用

《单片机原理及应用》第5章 定时器及应用

计数工作方式
通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。 当输入脉冲信号产生由1至0的下降沿时定时器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,故最高计 数频率为振荡频率的1/24。 为了确保某个电平在变化之前被采样一次,要求电平保持 时间至少是一个完整的机器周期。 对输入脉冲信号的基本要求如图5-2所示。
外部事件
计数电路 时间单位脉冲 单片机 计数完成信号
5.2 89C51定时器概述
• 89C51有两个16位的定时器/计数器,即定时器0(T0)和 定时器1(T1)。它们实际上都是16位加1计数器。 • T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1 和TL1构成。
• 每个定时器都可由软件设置为定时工作方式或计数工作方
• 例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个 500μs的同步脉冲。请编程序实现该功能。查询方式, fosc=6MHz。
解:(1)模式选择 选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生 负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为 500μs定时工作方式,并使P1.0输出由1变为0。T0定时到产生 溢出,使P1.0输出恢复高电平,T0又恢复外部事件计数方式。
T0的低5位:01100B=0CH即(TL0)=0CH T0的高8位:11110000B=F0H即(TH0)=F0H
(2)计算最大定时时间T
T0的最大定时时间对应于初值为0. 则:T=213×1/6 × 10-6×12=16.384ms
例2:利用T0的工作模式0产生1ms定时,在P1.0引脚输出 周期为2ms的方波。设单片机晶振频率fosc=12MHz。编 程实现其功能。 解:要在P1.0引脚输出周期为2ms的方波,只要使P1.0每隔 1ms取反一次即可。 (1)选择工作模式 T0的模式字为TMOD=00H,即 M1M0=00,C/T=0,GATE=0,其余位为0。 (2)计算1ms定时时T0的初值

单片机原理第5章定时、计数器

单片机原理第5章定时、计数器

5.2.2 控制寄存器 控制寄存器TCON
5,控制寄存器TCON初始化设置 ,控制寄存器 初始化设置
0
0 1
0
1 0 1
0
0
0
0
复位时, 的所有位被清0. 复位时,TCON的所有位被清 的所有位被清 要启动,关闭 , 要启动,关闭TI, T0,需对 ,需对TR1,TR0用 , 用 软件设置: 软件设置: SETB TRx;启动 ; CRL TRx;关闭 ; 也可以用传送指令 MOV TCON,#50H , 同时启动T0, 同时 同时启动 ,T1同时 使用电平触发方式. 使用电平触发方式.
时钟 振荡 ÷12
2,脉冲计数 , 每来1个脉冲,计 每来 个脉冲, 个脉冲 数器加1. 数器加 .
C P U
T0 TL0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
溢 出 启动 TH0 工作 方式
TCON
TMOD
中断
5.1 定时器的结构及工作原理
1,计数脉冲来源 ,
(P3.4)
INT0(INTI)=1 指令 SETB TR0(TR1) 启动定时/计数器 启动定时 计数器T0(T1) 计数器
1
5.2.2 控制寄存器 控制寄存器TCON
1,溢出标志位 TFx
0 1
TFl(TCON.7):T1溢出标志位.当T1溢出时由硬 : 溢出标志位 溢出标志位. 溢出时由硬 件自动使中断触发器TFl置1,并向 申请中断. 件自动使中断触发器 置 ,并向CPU申请中断. 申请中断 响应进入中断服务程序后, 当CPU响应进入中断服务程序后,TFl又被硬件 响应进入中断服务程序后 又被硬件 自动清0. TFl也可以用软件清 . 自动清 . 也可以用软件清0. 也可以用软件清 TF0(TCON.5):T0溢出标志位.其功能和操作同 : 溢出标志位 其功能和操作同TFl 溢出标志位.

定时计数器和中断系统的综合应用实验报告收获与体会

定时计数器和中断系统的综合应用实验报告收获与体会

定时计数器和中断系统的综合应用实验报告收获与体会这是一个比较开放性的问题,我尝试给出一个比较全面的回答,希望能够帮到你。

一、实验目的通过对定时计数器和中断系统的综合应用实验,掌握以下技能:1. 掌握定时计数器和中断系统的原理及其在嵌入式系统中的应用。

2. 熟悉51单片机中定时器的使用方法。

3. 熟悉51单片机中中断系统的使用方法。

4. 熟悉C语言中的定时器和中断编程。

二、实验内容1. 实验原理定时计数器是嵌入式系统中非常重要的一个部分,它可以周期性的计时,通过计数值的比较输出指定的脉冲信号。

51单片机中的定时器有4个,分别为Timer0、Timer1、Timer2、Timer3。

不同的定时器有不同的计数器位数和工作模式,可以根据应用场景进行选择。

中断系统是嵌入式系统中另一个非常重要的部分,可以在特定的条件下自动触发,优先处理中断事件。

在51单片机中,中断分为外部中断和定时器中断。

通过中断系统,可以高效地实现对各种外部事件的实时响应。

2. 实验步骤本实验分为两个阶段,第一阶段设计一个定时计数器程序,通过P1口的LED灯输出定时器的计数值,第二阶段在第一阶段的基础上,结合中断系统,设计一个定时器中断程序,通过P0口的LED灯输出中断事件的计数值。

第一阶段:(1)配置定时器,设置定时器的工作模式和计数器初值。

(2)在定时器的中断处理函数中,实现计数器值的输出。

(3)通过P1口连接LED灯,输出计数器值。

第二阶段:(1)配置定时器和中断系统,设置定时器的工作模式和计数器初值,以及中断的优先级和中断处理函数。

(2)在中断处理函数中,实现计数器值的输出和中断事件计数值的计算。

(3)通过P0口连接LED灯,输出中断事件的计数值。

三、实验结果通过实验,我掌握了51单片机中定时计数器和中断系统的使用方法,熟悉了C语言中的定时器和中断编程。

在第一阶段的实验中,我成功地输出了定时器的计数值,通过LED灯显示在P1口。

单片机实验五-定时计数器查询方式应用

单片机实验五-定时计数器查询方式应用

实验五定时/计数器查询方式应用一、定时器工作方式0、1、2的应用(工程文件名:05定时器方式012.DSN)已知单片机晶体振荡器频率为12MHz,使用定时器编制延时程序,采用查询溢出方式控制红灯D1交替闪烁,将定时器工作方式分别设置为方式0、方式1和方式2,实现上述功能。

1.1定时器工作方式0(文件名:05定时器方式0.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV TMOD,# 00 H ; 定时器0,工作方式0(13位计数值)MOV TH0,#00H ; 计数初值MOV TL0,#01HSETB TR0; 启动T0,从1开始增1计数,计满溢出LP1: JBC TF0, LP2;查询定时器0是否计满溢出,溢出转LP2处理SJMP LP1LP2: CPL P1_0 ;溢出P1.0取反,灯明暗变化MOV TH0,#00H ; 重装定时器计数初值MOV TL0,#01HSJMP LP1END1.2定时器工作方式1(文件名:05定时器方式1.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV TMOD,# 01 H ; 定时器0,工作方式1(16位)MOV TH0,#00H ; 计数初值MOV TL0,#010HSETB TR0 ; 启动T0,从16开始增1计数,计满2^16=65536溢出LP1: JBC TF0, LP2 ;查询定时器0是否计满溢出,若溢出转LP2处理SJMP LP1LP2:CPL P1_0 ; P1.0取反,灯明暗变化MOV TH0,#00H; 重新赋计数初值MOV TL0,#010HSJMP LP1END1.3定时器工作方式2(文件名:05定时器方式2.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV R1,#250MOV TMOD,# 02 H ; 定时器0,工作方式2(8位重装初值)MOV TH0,#01H ; 计数初值MOV TL0,#01HSETB TR0; 启动T0,定时器0从1开始增1计数,满2^8=256溢出LP1: JBC TF0, LP2;查询定时器值是否计满溢出,若溢出转JP2处理SJMP LP1LP2: DJNZ R1,LP1;有无溢出250次,若没有,继续查询是否溢出;若有执行下一句,改变灯的明暗CPL P1_0; 溢出250次P1.0取反,灯明暗变化SJMP LP1END二、计数器工作方式0、1、2的应用(文件名:计数器方式012.DSN)已知单片机晶体振荡器频率为12MHz,使用计数器编制延时程序,采用查询溢出方式控制红灯D1交替闪烁,将计数器工作方式分别设置为方式0、方式1和方式2,实现上述功能。

单片机定时器计数器应用

单片机定时器计数器应用

为了获得1秒时间,T0中断需要发生200次。程序包含主函
数,T0的初始化函数和T0中断服务函数,显示语句放在中
断服务函数内,程序如下:
/******************************************************************/ #include<reg51.h> code unsigned char seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char cp,i; //声明全局变量 void timer0_isr(void) interrupt 1 // timer0中断服务函数 { TR0 = 0; //停止计数 TL0 = 0x78; // TL0重新预置 TH0 = 0xec; // TH0重新预置 TR0 = 0; //开始计数 cp++; // timer0中断1次,变量cp加1 if(cp == 200) //中断200次,时间刚好为1秒 { cp = 0; i ++; }
项目5 单片机定时器/计数器应用
5.1任务说明
任务:利用单片机内部定时器/计数器中断实现一个数码管 的秒记数,重点学习定时器/计数器的工作方式以及
其控制寄存器TMOD、TCON的功能,在程序实现
过程中掌握定时器/计数器中断的一般步骤。
5.2 单片机的定时/计数器结构
51单片机内部含有两个定时器/计数器,分别是T0和 T1,在增强型51系列单片机中,如STC89C51RC,内部出了 含有T0和T1外,还有T2定时器/计数器。定时器/计数器主 要由于精确的定时,也可用于对外部脉冲进行计数以及为

单片机定时器,计数器

单片机定时器,计数器

第六章定时器/计数器第一节概述8051内部提供两个十六位的定时器/计数器T0和T1,它们既可以用作硬件定时,也可以对外部脉冲计数。

1.计数功能:所谓计数功能是指对外部脉冲进行计数。

外部事件的发生以输入脉冲下降沿有效,从单片机芯片T0(P3.4)和T1(P3.5)两个引脚输入,最高计数脉冲频率为晶振频率的1/24。

2.定时功能:以定时方式工作时,每个机器周期使计数器加1,由于一个机器周期等于12个振荡脉冲周期,因此如单片机采用12MHz晶振,则计数频率为12MHz/12=1MHz。

即每微秒计数器加1。

这样就可以根据计数器中设置的初值计算出定时时间。

第二节定时器/计数器的基本结构、工作方式及应用一、定时器/计数器基本结构定时器/计数器的基本结构如图6-1。

T0由TH0和TL0两个八位二进制加法计数器组成十六位二进制加法计数器;T1由TH1和TL1两个八位二进制加法计数器组成十六位二进制加法计数器。

图6-1 定时器/计数器基本组成110二、定时器/计数器控制寄存器1.定时器方式控制寄存器TMOD定时器方式控制寄存器地址89H,不可位寻址。

TMOD寄存器中高4位定义T1,低4位定义T0。

其中M1,M0用来确定所选工作方式如表6—1:定时/计数器T1 定时/计数器T0111定时器控制寄存器TCON地址88H,可以位寻址,TCON主要用于控制定时器的操作及中断控制。

有关中断内容在第四章已说明。

此处只对定时控制功能加以介绍。

表6—2给出了TCON有关控制位功能:系统复位时,TMOD和TCON寄存器的每一位都清零。

112113三、工作方式及应用用户可通过编程对专用寄存器TMOD 中的M1,M0位的设置,选择四种操作方式。

(一)方式0(以T0为例)在此方式中,定时寄存器由TH0的8位和TL0的5位(其余位不用)组成一个13位计数器。

当GATE=0时,只要TCON 中的TR0为1,13位计数器就开始计;当GATE=1以及TR0=1时,13位计数器是否计数取决于INT0引脚信号,当INT0由0变1时开始计数,当INT0由1变为0时停止计数。

单片机原理及应用教程c语言版第6章mcs51单片机的定时器计数器

单片机原理及应用教程c语言版第6章mcs51单片机的定时器计数器

方波周期T
定时时间t:
周期为1000µs的方波要求 t =周期/2 = 1000/2 = 500(µs)
定时时间t
对应计数值:N = t/机器周期 = 500/1 = 500
N=500>256,所以选择模式1。
模式字:
TMOD=0000 0001B = 0x01 (3)计算初值X
X = 65536 – N = 65036 = 0xfe0c
6.1.2 MCS-51单片机定时器/计数器的工作原理
• 控制信号TRx=1时,定时器启动。 • 当定时器由全1加到全0时计满溢出,TFx=1,
向CPU申请中断;同时,定时器从0开始继续 计数。
6.2 定时器/计数器T0、T1
主要内容
6.2.1 T0、T1的特殊功能寄存器 6.2.2 T0、T1的工作模式 6.2.3 T0、T1的使用方法
计数信号由片内振荡电路提供,振荡脉冲n分 频送给计数器,每个机器周期计数器值增1。 • C/T =1 ,为计数器
计数信号由Tx引脚、和P1.0)输入,每输入一有 效信号,相应的计数器中的内容进行加1
计数器的最高计数频率为:fosc/24 1)每1个输入脉冲的下降沿使计数器计1个数 2)每1个机器周期对引脚采样1次,当上1个机器 周期采样为高、本机器周期采样为低为1个下降沿。
6.2.2 T0、T1的工作模式
信号源
振荡器 12分频 C/T=0
0
T0(P3.4)
TR0 GATE (P3.2)
C/T=1 1
& +
运行控制
TL0 TH0 (8位) (8位)
计数器
TF0 中断
溢出中断
图6-6 T0模式1原理结构
6.2.2 T0、T1的工作模式

单片机定时器-计数器实验总结

单片机定时器-计数器实验总结

单片机定时器-计数器实验总结单片机定时器/计数器实验总结篇一:单片机实验之定时器计数器应用实验一一、实验目的1、掌握定时器/计数器定时功能的使用方法。

2、掌握定时器/计数器的中断、查询使用方法。

3、掌握Prteus软件与Keil软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

二、设计要求1、用Prteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P1.0口线上接示波器观察波形。

2、用Prteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P1.1口线上接示波器观察波形。

三、电路原理图六、实验总结通过这次实验,对定时器/计数器的查询工作方式有了比较深刻的理解,并能熟练运用。

掌握定时器/计数器的中断、查询使用方法。

对于思考题能够运用三种不同思路进行编程。

七、思考题1、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波。

答:程序见程序清单。

四、实验程序流程框图和程序清单1、以查询方式工作,在P1.0 RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #02H MV TH0, #9CH MV TL0, #9CH SETB TR0 LP: JNB TF0, LP CLR TF0 CPL P1.0 AJMP LP END2、以中断方式工作,在P1.1 RG 0000H START: LJMP MAIN RG 000BH LJMP TTC0 RG 0100H MAIN: MV TMD, #02H MV TH0, #88H MV TL0, #88H SETB EA SETB ET0 SETB TR0 HERE: LJMP HERE RG 0200H TTC0: CPL P1.1 RETI END3、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波 RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #20H MV TH1, #38H MV TL1, #38H MV TH0, #0F6H MV TL0, #14H LP1: SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CLR TR1 CPL P1.0 SETB TR0 LP3: JNB TF0, LP3 MV TH0, #0F6H MV TL0, #14H CLR TF0 CLR TR0 CPL P1.0 LJMP LP1 END RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #20H MV TH1, #38H MV TL1, #38H MV TH0, #0F0H MV TL0, #0CH SETB TR0 LP1: SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CLR TR1 CPL P1.0 SETB TR0 LP3: JNB TF0, LP3 CLR TF0 MV TH0, #0F0H MV TL0, #0CH CPL P1.0 LJMP LP1 END RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #00H LP1: MV TH1, #0F9H MV TL1, #18H SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CPL P1.0 MV TH1, #0F6H MV TL1, #14H LP3: JNB TF1, LP3 CLR TF1 CPL P1.0 LJMP LP1 END五、实验结果(波形图)篇二:单片机实验-定时器计数器应用实验一定时器/计数器应用实验一一、实验目的和要求1、掌握定时器/计数器定时功能的使用方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目五定时/计数器综合应用
课时(学时)8学时
终极目标 1.能完成单片机的定时器/计数器相关电路的设计;
2.能应用C语言程序完成单片机定时器初始化及相关编程控制,实现对
定时器应用于相关电路的设计、运行及调试。

促成目标 1.掌握定时器/计数器的基本工作原理;
2.掌握定时器/计数器的基本结构及相关寄存器的设置;
3.掌握C语言关于定时器的相关编程;
4.会利用单片机的定时器/计数器实现定时和计数功能。

教学重点 1.定时器/计数器的基本结构;
2.定时器/计数器工作方式;
3.定时器/计数器有关寄存器;
4.C语言关于定时器的相关编程;
5.霓虹灯控制系统设计与实现。

教学难点 1. 定时器/计数器工作方式;
2.霓虹灯控制系统设计与实现;
3. 电子钟设计与实现。

教学内容一、工作模块12 生产线自动打包系统
1.认识定时器/计数器;
2.生产线自动打包控制电路;
3.生产线自动打包控制程序;
二、工作模块13 霓虹灯控制系统
1.定时器/计数器工作方式;
2.定时器/计数器有关寄存器;
3.霓虹灯控制系统设计与实现;
三、工作模块14 电子钟设计与实现
1.电子钟电路设计;
2.电子钟程序设计。

教学手段多媒体演示及实训练习相结合
教学方法设计 1.项目驱动
2.教学做一体。

相关文档
最新文档